From fb361b0e3ccfa660d00151315803b25093eb63d1 Mon Sep 17 00:00:00 2001
From: Marcos B <15697303+gmarcosb@users.noreply.github.com>
Date: Wed, 18 Sep 2024 11:49:42 -0600
Subject: [PATCH 01/20] Update .gitignore

Exclude self-symlinks
---
 .gitignore | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/.gitignore b/.gitignore
index 1c2d1430263594..51fa685a63ac50 100644
--- a/.gitignore
+++ b/.gitignore
@@ -85,3 +85,5 @@ examples/*/esp32/dependencies.lock
 # jupyter temporary files
 .ipynb_checkpoints
 
+# Symlinks
+**/third_party/connectedhomeip/**

From 98a9897adf567eaf6ad6347e2ee52a5b55004c31 Mon Sep 17 00:00:00 2001
From: marcos <marcosb@google.com>
Date: Wed, 18 Sep 2024 15:41:35 -0600
Subject: [PATCH 02/20] Start of camera clusters

---
 docs/zap_clusters.md                          | 262 +++++++++---------
 src/app/zap-templates/zcl/data-model/all.xml  |  13 +-
 .../camera-av-stream-management-cluster.xml   |   0
 3 files changed, 143 insertions(+), 132 deletions(-)
 create mode 100644 src/app/zap-templates/zcl/data-model/draft/camera-av-stream-management-cluster.xml

diff --git a/docs/zap_clusters.md b/docs/zap_clusters.md
index 93e37131626379..15502804329020 100644
--- a/docs/zap_clusters.md
+++ b/docs/zap_clusters.md
@@ -10,131 +10,137 @@ Generally regenerate using one of:
 
 ## List of currently defined ZAP clusters
 
-| Code (dec) | Code (hex) | Name                                                    |
-| ---------- | ---------- | ------------------------------------------------------- |
-|          3 |       0x03 | Identify                                                |
-|          4 |       0x04 | Groups                                                  |
-|          6 |       0x06 | OnOff                                                   |
-|          7 |       0x07 | OnOffSwitchConfiguration                                |
-|          8 |       0x08 | LevelControl                                            |
-|         15 |       0x0F | BinaryInputBasic                                        |
-|         28 |       0x1C | PulseWidthModulation                                    |
-|         29 |       0x1D | Descriptor                                              |
-|         30 |       0x1E | Binding                                                 |
-|         31 |       0x1F | AccessControl                                           |
-|         37 |       0x25 | Actions                                                 |
-|         40 |       0x28 | BasicInformation                                        |
-|         41 |       0x29 | OtaSoftwareUpdateProvider                               |
-|         42 |       0x2A | OtaSoftwareUpdateRequestor                              |
-|         43 |       0x2B | LocalizationConfiguration                               |
-|         44 |       0x2C | TimeFormatLocalization                                  |
-|         45 |       0x2D | UnitLocalization                                        |
-|         46 |       0x2E | PowerSourceConfiguration                                |
-|         47 |       0x2F | PowerSource                                             |
-|         48 |       0x30 | GeneralCommissioning                                    |
-|         49 |       0x31 | NetworkCommissioning                                    |
-|         50 |       0x32 | DiagnosticLogs                                          |
-|         51 |       0x33 | GeneralDiagnostics                                      |
-|         52 |       0x34 | SoftwareDiagnostics                                     |
-|         53 |       0x35 | ThreadNetworkDiagnostics                                |
-|         54 |       0x36 | WiFiNetworkDiagnostics                                  |
-|         55 |       0x37 | EthernetNetworkDiagnostics                              |
-|         56 |       0x38 | TimeSynchronization                                     |
-|         57 |       0x39 | BridgedDeviceBasicInformation                           |
-|         59 |       0x3B | Switch                                                  |
-|         60 |       0x3C | AdministratorCommissioning                              |
-|         62 |       0x3E | OperationalCredentials                                  |
-|         63 |       0x3F | GroupKeyManagement                                      |
-|         64 |       0x40 | FixedLabel                                              |
-|         65 |       0x41 | UserLabel                                               |
-|         66 |       0x42 | ProxyConfiguration                                      |
-|         67 |       0x43 | ProxyDiscovery                                          |
-|         68 |       0x44 | ProxyValid                                              |
-|         69 |       0x45 | BooleanState                                            |
-|         70 |       0x46 | IcdManagement                                           |
-|         71 |       0x47 | Timer                                                   |
-|         72 |       0x48 | OvenCavityOperationalState                              |
-|         73 |       0x49 | OvenMode                                                |
-|         74 |       0x4A | LaundryDryerControls                                    |
-|         80 |       0x50 | ModeSelect                                              |
-|         81 |       0x51 | LaundryWasherMode                                       |
-|         82 |       0x52 | RefrigeratorAndTemperatureControlledCabinetMode         |
-|         83 |       0x53 | LaundryWasherControls                                   |
-|         84 |       0x54 | RvcRunMode                                              |
-|         85 |       0x55 | RvcCleanMode                                            |
-|         86 |       0x56 | TemperatureControl                                      |
-|         87 |       0x57 | RefrigeratorAlarm                                       |
-|         89 |       0x59 | DishwasherMode                                          |
-|         91 |       0x5B | AirQuality                                              |
-|         92 |       0x5C | SmokeCoAlarm                                            |
-|         93 |       0x5D | DishwasherAlarm                                         |
-|         94 |       0x5E | MicrowaveOvenMode                                       |
-|         95 |       0x5F | MicrowaveOvenControl                                    |
-|         96 |       0x60 | OperationalState                                        |
-|         97 |       0x61 | RvcOperationalState                                     |
-|         98 |       0x62 | ScenesManagement                                        |
-|        113 |       0x71 | HepaFilterMonitoring                                    |
-|        114 |       0x72 | ActivatedCarbonFilterMonitoring                         |
-|        128 |       0x80 | BooleanStateConfiguration                               |
-|        129 |       0x81 | ValveConfigurationAndControl                            |
-|        144 |       0x90 | ElectricalPowerMeasurement                              |
-|        145 |       0x91 | ElectricalEnergyMeasurement                             |
-|        148 |       0x94 | WaterHeaterManagement                                   |
-|        150 |       0x96 | DemandResponseLoadControl                               |
-|        151 |       0x97 | Messages                                                |
-|        152 |       0x98 | DeviceEnergyManagement                                  |
-|        153 |       0x99 | EnergyEvse                                              |
-|        155 |       0x9B | EnergyPreference                                        |
-|        156 |       0x9C | PowerTopology                                           |
-|        157 |       0x9D | EnergyEvseMode                                          |
-|        158 |       0x9E | WaterHeaterMode                                         |
-|        159 |       0x9F | DeviceEnergyManagementMode                              |
-|        257 |      0x101 | DoorLock                                                |
-|        258 |      0x102 | WindowCovering                                          |
-|        259 |      0x103 | BarrierControl                                          |
-|        336 |      0x150 | ServiceArea                                             |
-|        512 |      0x200 | PumpConfigurationAndControl                             |
-|        513 |      0x201 | Thermostat                                              |
-|        514 |      0x202 | FanControl                                              |
-|        516 |      0x204 | ThermostatUserInterfaceConfiguration                    |
-|        768 |      0x300 | ColorControl                                            |
-|        769 |      0x301 | BallastConfiguration                                    |
-|       1024 |      0x400 | IlluminanceMeasurement                                  |
-|       1026 |      0x402 | TemperatureMeasurement                                  |
-|       1027 |      0x403 | PressureMeasurement                                     |
-|       1028 |      0x404 | FlowMeasurement                                         |
-|       1029 |      0x405 | RelativeHumidityMeasurement                             |
-|       1030 |      0x406 | OccupancySensing                                        |
-|       1036 |      0x40C | CarbonMonoxideConcentrationMeasurement                  |
-|       1037 |      0x40D | CarbonDioxideConcentrationMeasurement                   |
-|       1043 |      0x413 | NitrogenDioxideConcentrationMeasurement                 |
-|       1045 |      0x415 | OzoneConcentrationMeasurement                           |
-|       1066 |      0x42A | Pm25ConcentrationMeasurement                            |
-|       1067 |      0x42B | FormaldehydeConcentrationMeasurement                    |
-|       1068 |      0x42C | Pm1ConcentrationMeasurement                             |
-|       1069 |      0x42D | Pm10ConcentrationMeasurement                            |
-|       1070 |      0x42E | TotalVolatileOrganicCompoundsConcentrationMeasurement   |
-|       1071 |      0x42F | RadonConcentrationMeasurement                           |
-|       1105 |      0x451 | WiFiNetworkManagement                                   |
-|       1106 |      0x452 | ThreadBorderRouterManagement                            |
-|       1107 |      0x453 | ThreadNetworkDirectory                                  |
-|       1283 |      0x503 | WakeOnLan                                               |
-|       1284 |      0x504 | Channel                                                 |
-|       1285 |      0x505 | TargetNavigator                                         |
-|       1286 |      0x506 | MediaPlayback                                           |
-|       1287 |      0x507 | MediaInput                                              |
-|       1288 |      0x508 | LowPower                                                |
-|       1289 |      0x509 | KeypadInput                                             |
-|       1290 |      0x50A | ContentLauncher                                         |
-|       1291 |      0x50B | AudioOutput                                             |
-|       1292 |      0x50C | ApplicationLauncher                                     |
-|       1293 |      0x50D | ApplicationBasic                                        |
-|       1294 |      0x50E | AccountLogin                                            |
-|       1295 |      0x50F | ContentControl                                          |
-|       1296 |      0x510 | ContentAppObserver                                      |
-|       1872 |      0x750 | EcosystemInformation                                    |
-|       1873 |      0x751 | CommissionerControl                                     |
-|       2820 |      0xB04 | ElectricalMeasurement                                   |
-| 4294048773 | 0xFFF1FC05 | UnitTesting                                             |
-| 4294048774 | 0xFFF1FC06 | FaultInjection                                          |
-| 4294048800 | 0xFFF1FC20 | SampleMei                                               |
+| Code (dec) | Code (hex) | Name                                                  |
+|-----------:|-----------:|-------------------------------------------------------|
+|          3 |       0x03 | Identify                                              |
+|          4 |       0x04 | Groups                                                |
+|          6 |       0x06 | OnOff                                                 |
+|          7 |       0x07 | OnOffSwitchConfiguration                              |
+|          8 |       0x08 | LevelControl                                          |
+|         15 |       0x0F | BinaryInputBasic                                      |
+|         28 |       0x1C | PulseWidthModulation                                  |
+|         29 |       0x1D | Descriptor                                            |
+|         30 |       0x1E | Binding                                               |
+|         31 |       0x1F | AccessControl                                         |
+|         37 |       0x25 | Actions                                               |
+|         40 |       0x28 | BasicInformation                                      |
+|         41 |       0x29 | OtaSoftwareUpdateProvider                             |
+|         42 |       0x2A | OtaSoftwareUpdateRequestor                            |
+|         43 |       0x2B | LocalizationConfiguration                             |
+|         44 |       0x2C | TimeFormatLocalization                                |
+|         45 |       0x2D | UnitLocalization                                      |
+|         46 |       0x2E | PowerSourceConfiguration                              |
+|         47 |       0x2F | PowerSource                                           |
+|         48 |       0x30 | GeneralCommissioning                                  |
+|         49 |       0x31 | NetworkCommissioning                                  |
+|         50 |       0x32 | DiagnosticLogs                                        |
+|         51 |       0x33 | GeneralDiagnostics                                    |
+|         52 |       0x34 | SoftwareDiagnostics                                   |
+|         53 |       0x35 | ThreadNetworkDiagnostics                              |
+|         54 |       0x36 | WiFiNetworkDiagnostics                                |
+|         55 |       0x37 | EthernetNetworkDiagnostics                            |
+|         56 |       0x38 | TimeSynchronization                                   |
+|         57 |       0x39 | BridgedDeviceBasicInformation                         |
+|         59 |       0x3B | Switch                                                |
+|         60 |       0x3C | AdministratorCommissioning                            |
+|         62 |       0x3E | OperationalCredentials                                |
+|         63 |       0x3F | GroupKeyManagement                                    |
+|         64 |       0x40 | FixedLabel                                            |
+|         65 |       0x41 | UserLabel                                             |
+|         66 |       0x42 | ProxyConfiguration                                    |
+|         67 |       0x43 | ProxyDiscovery                                        |
+|         68 |       0x44 | ProxyValid                                            |
+|         69 |       0x45 | BooleanState                                          |
+|         70 |       0x46 | IcdManagement                                         |
+|         71 |       0x47 | Timer                                                 |
+|         72 |       0x48 | OvenCavityOperationalState                            |
+|         73 |       0x49 | OvenMode                                              |
+|         74 |       0x4A | LaundryDryerControls                                  |
+|         80 |       0x50 | ModeSelect                                            |
+|         81 |       0x51 | LaundryWasherMode                                     |
+|         82 |       0x52 | RefrigeratorAndTemperatureControlledCabinetMode       |
+|         83 |       0x53 | LaundryWasherControls                                 |
+|         84 |       0x54 | RvcRunMode                                            |
+|         85 |       0x55 | RvcCleanMode                                          |
+|         86 |       0x56 | TemperatureControl                                    |
+|         87 |       0x57 | RefrigeratorAlarm                                     |
+|         89 |       0x59 | DishwasherMode                                        |
+|         91 |       0x5B | AirQuality                                            |
+|         92 |       0x5C | SmokeCoAlarm                                          |
+|         93 |       0x5D | DishwasherAlarm                                       |
+|         94 |       0x5E | MicrowaveOvenMode                                     |
+|         95 |       0x5F | MicrowaveOvenControl                                  |
+|         96 |       0x60 | OperationalState                                      |
+|         97 |       0x61 | RvcOperationalState                                   |
+|         98 |       0x62 | ScenesManagement                                      |
+|        113 |       0x71 | HepaFilterMonitoring                                  |
+|        114 |       0x72 | ActivatedCarbonFilterMonitoring                       |
+|        128 |       0x80 | BooleanStateConfiguration                             |
+|        129 |       0x81 | ValveConfigurationAndControl                          |
+|        144 |       0x90 | ElectricalPowerMeasurement                            |
+|        145 |       0x91 | ElectricalEnergyMeasurement                           |
+|        148 |       0x94 | WaterHeaterManagement                                 |
+|        150 |       0x96 | DemandResponseLoadControl                             |
+|        151 |       0x97 | Messages                                              |
+|        152 |       0x98 | DeviceEnergyManagement                                |
+|        153 |       0x99 | EnergyEvse                                            |
+|        155 |       0x9B | EnergyPreference                                      |
+|        156 |       0x9C | PowerTopology                                         |
+|        157 |       0x9D | EnergyEvseMode                                        |
+|        158 |       0x9E | WaterHeaterMode                                       |
+|        159 |       0x9F | DeviceEnergyManagementMode                            |
+|        160 |       0xA0 | CameraAvStreamManagement                              |
+|        161 |       0xA1 | CameraAvSettingsUserLevelManagement                   |
+|        162 |       0xA2 | WebRtcTransportProvider                               |
+|        163 |       0xA3 | WebRtcTransportRequester                              |
+|        164 |       0xA4 | PushAvStreamTransport                                 |
+|        164 |       0xA5 | Chime                                                 |
+|        257 |      0x101 | DoorLock                                              |
+|        258 |      0x102 | WindowCovering                                        |
+|        259 |      0x103 | BarrierControl                                        |
+|        336 |      0x150 | ServiceArea                                           |
+|        512 |      0x200 | PumpConfigurationAndControl                           |
+|        513 |      0x201 | Thermostat                                            |
+|        514 |      0x202 | FanControl                                            |
+|        516 |      0x204 | ThermostatUserInterfaceConfiguration                  |
+|        768 |      0x300 | ColorControl                                          |
+|        769 |      0x301 | BallastConfiguration                                  |
+|       1024 |      0x400 | IlluminanceMeasurement                                |
+|       1026 |      0x402 | TemperatureMeasurement                                |
+|       1027 |      0x403 | PressureMeasurement                                   |
+|       1028 |      0x404 | FlowMeasurement                                       |
+|       1029 |      0x405 | RelativeHumidityMeasurement                           |
+|       1030 |      0x406 | OccupancySensing                                      |
+|       1036 |      0x40C | CarbonMonoxideConcentrationMeasurement                |
+|       1037 |      0x40D | CarbonDioxideConcentrationMeasurement                 |
+|       1043 |      0x413 | NitrogenDioxideConcentrationMeasurement               |
+|       1045 |      0x415 | OzoneConcentrationMeasurement                         |
+|       1066 |      0x42A | Pm25ConcentrationMeasurement                          |
+|       1067 |      0x42B | FormaldehydeConcentrationMeasurement                  |
+|       1068 |      0x42C | Pm1ConcentrationMeasurement                           |
+|       1069 |      0x42D | Pm10ConcentrationMeasurement                          |
+|       1070 |      0x42E | TotalVolatileOrganicCompoundsConcentrationMeasurement |
+|       1071 |      0x42F | RadonConcentrationMeasurement                         |
+|       1105 |      0x451 | WiFiNetworkManagement                                 |
+|       1106 |      0x452 | ThreadBorderRouterManagement                          |
+|       1107 |      0x453 | ThreadNetworkDirectory                                |
+|       1283 |      0x503 | WakeOnLan                                             |
+|       1284 |      0x504 | Channel                                               |
+|       1285 |      0x505 | TargetNavigator                                       |
+|       1286 |      0x506 | MediaPlayback                                         |
+|       1287 |      0x507 | MediaInput                                            |
+|       1288 |      0x508 | LowPower                                              |
+|       1289 |      0x509 | KeypadInput                                           |
+|       1290 |      0x50A | ContentLauncher                                       |
+|       1291 |      0x50B | AudioOutput                                           |
+|       1292 |      0x50C | ApplicationLauncher                                   |
+|       1293 |      0x50D | ApplicationBasic                                      |
+|       1294 |      0x50E | AccountLogin                                          |
+|       1295 |      0x50F | ContentControl                                        |
+|       1296 |      0x510 | ContentAppObserver                                    |
+|       1872 |      0x750 | EcosystemInformation                                  |
+|       1873 |      0x751 | CommissionerControl                                   |
+|       2820 |      0xB04 | ElectricalMeasurement                                 |
+| 4294048773 | 0xFFF1FC05 | UnitTesting                                           |
+| 4294048774 | 0xFFF1FC06 | FaultInjection                                        |
+| 4294048800 | 0xFFF1FC20 | SampleMei                                             |
diff --git a/src/app/zap-templates/zcl/data-model/all.xml b/src/app/zap-templates/zcl/data-model/all.xml
index 265e80c079e161..e33f2a83d7bb39 100644
--- a/src/app/zap-templates/zcl/data-model/all.xml
+++ b/src/app/zap-templates/zcl/data-model/all.xml
@@ -36,7 +36,7 @@
    <xi:include href="chip/door-lock-cluster.xml" />
    <xi:include href="chip/ecosystem-information-cluster.xml" />
    <xi:include href="chip/energy-evse-cluster.xml" />
-   <xi:include href="chip/energy-evse-mode-cluster.xml" />   
+   <xi:include href="chip/energy-evse-mode-cluster.xml" />
    <xi:include href="chip/energy-preference-cluster.xml" />
    <xi:include href="chip/ethernet-network-diagnostics-cluster.xml" />
    <xi:include href="chip/electrical-energy-measurement-cluster.xml" />
@@ -63,7 +63,7 @@
    <xi:include href="chip/low-power-cluster.xml" />
    <xi:include href="chip/media-input-cluster.xml" />
    <xi:include href="chip/media-playback-cluster.xml" />
-   <xi:include href="chip/messages-cluster.xml" />   
+   <xi:include href="chip/messages-cluster.xml" />
    <xi:include href="chip/mode-base-cluster.xml" />
    <xi:include href="chip/mode-select-cluster.xml" />
    <xi:include href="chip/semantic-tag-namespace-enums.xml" />
@@ -88,7 +88,6 @@
    <xi:include href="chip/relative-humidity-measurement-cluster.xml" />
    <xi:include href="chip/rvc-clean-mode-cluster.xml"  />
    <xi:include href="chip/rvc-run-mode-cluster.xml" />
-   <xi:include href="chip/replacable-monitoring-cluster.xml.xml" />
    <xi:include href="chip/resource-monitoring-cluster.xml" />
    <xi:include href="chip/scene.xml" />
    <xi:include href="chip/service-area-cluster.xml" />
@@ -120,9 +119,15 @@
    <xi:include href="chip/temperature-control-cluster.xml" />
    <xi:include href="chip/refrigerator-alarm.xml" />
    <xi:include href="chip/matter-devices.xml" />
-   <xi:include href="draft/barrier-control.xml" />
+   <xi:include href="draft/barrier-control-cluster.xml" />
    <xi:include href="draft/electrical-measurement-cluster.xml" />
    <xi:include href="draft/input-output-value-clusters.xml" />
    <xi:include href="draft/onoff-switch-configuration-cluster.xml" />
+   <xi:include href="draft/camera-av-stream-management-cluster.xml" />
+   <xi:include href="draft/camera-av-settings-user-level-management-cluster.xml" />
+   <xi:include href="draft/web-rtc-transport-provider-cluster.xml" />
+   <xi:include href="draft/web-rtc-transport-requester-cluster.xml" />
+   <xi:include href="draft/push-av-stream-transport-cluster.xml" />
+   <xi:include href="draft/chime.xml" />
    <xi:include href="chip/sample-mei-cluster.xml" />
 </all>
diff --git a/src/app/zap-templates/zcl/data-model/draft/camera-av-stream-management-cluster.xml b/src/app/zap-templates/zcl/data-model/draft/camera-av-stream-management-cluster.xml
new file mode 100644
index 00000000000000..e69de29bb2d1d6

From 6022db1cf0277e813f78dead0a36d9f90263bd23 Mon Sep 17 00:00:00 2001
From: marcos <15697303+gmarcosb@users.noreply.github.com>
Date: Wed, 18 Sep 2024 15:49:23 -0600
Subject: [PATCH 03/20] Revert "Update .gitignore"

This reverts commit fb361b0e3ccfa660d00151315803b25093eb63d1.
---
 .gitignore | 2 --
 1 file changed, 2 deletions(-)

diff --git a/.gitignore b/.gitignore
index 51fa685a63ac50..1c2d1430263594 100644
--- a/.gitignore
+++ b/.gitignore
@@ -85,5 +85,3 @@ examples/*/esp32/dependencies.lock
 # jupyter temporary files
 .ipynb_checkpoints
 
-# Symlinks
-**/third_party/connectedhomeip/**

From 9611a953c3e14649323275a9c7c49f09192a92f3 Mon Sep 17 00:00:00 2001
From: marcos <15697303+gmarcosb@users.noreply.github.com>
Date: Fri, 20 Sep 2024 11:01:47 -0600
Subject: [PATCH 04/20] Add missing schema definitions referenced in existing
 XML files & elements referenced in python_testing

---
 src/app/zap-templates/zcl/zcl.xsd | 65 ++++++++++++++++++++++++-------
 1 file changed, 52 insertions(+), 13 deletions(-)

diff --git a/src/app/zap-templates/zcl/zcl.xsd b/src/app/zap-templates/zcl/zcl.xsd
index a00a9e48cb87c7..2224d0f84d32b9 100644
--- a/src/app/zap-templates/zcl/zcl.xsd
+++ b/src/app/zap-templates/zcl/zcl.xsd
@@ -18,8 +18,8 @@ This schema describes the format of the XML files, that describe the ZCL specifi
     <xs:attribute name="id" use="required" type="xs:string"/>
     <xs:attribute name="name" use="required" type="xs:string"/>
     <xs:attribute name="type" use="required" type="xs:string"/>
-    <xs:attribute name="array" use="optional" type="xs:boolean"/>
-    <xs:attribute name="isNullable" use="optional" type="xs:boolean"/>
+    <xs:attribute name="array" type="xs:boolean"/>
+    <xs:attribute name="isNullable" type="xs:boolean"/>
   </xs:complexType>
   <xs:complexType name="tag">
     <xs:attribute name="name" use="required" type="xs:string"/>
@@ -38,7 +38,7 @@ This schema describes the format of the XML files, that describe the ZCL specifi
     <xs:attribute name="presentIf" type="xs:string"/>
     <xs:attribute name="optional" type="xs:integer"/>
     <xs:attribute name="fieldId" type="xs:integer"/>
-    <xs:attribute name="countArg" type="xs:string" use="optional"/>
+    <xs:attribute name="countArg" type="xs:string" />
     <xs:attribute name="isNullable" type="xs:boolean"/>
   </xs:complexType>
   <xs:complexType name="clusterRef">
@@ -245,7 +245,7 @@ This schema describes the format of the XML files, that describe the ZCL specifi
     <xs:complexType>
       <xs:sequence>
         <xs:element minOccurs="0" maxOccurs="unbounded" name="cluster"/>
-        <xs:element minOccurs="1" maxOccurs="unbounded" ref="field"/>
+        <xs:element maxOccurs="unbounded" ref="field"/>
       </xs:sequence>
       <xs:attribute name="name" use="required" type="xs:string"/>
       <xs:attribute name="type" use="required" type="xs:string"/>
@@ -269,6 +269,12 @@ This schema describes the format of the XML files, that describe the ZCL specifi
       <xs:attribute name="value" use="required" type="xs:string"/>
     </xs:complexType>
   </xs:element>
+  <xs:element name="optionalConform">
+    <xs:complexType>
+      <xs:attribute name="choice" type="xs:string"/>
+      <xs:attribute name="more" type="xs:boolean"/>
+    </xs:complexType>
+  </xs:element>
   <xs:element name="cluster">
     <xs:complexType>
       <xs:sequence>
@@ -285,10 +291,28 @@ This schema describes the format of the XML files, that describe the ZCL specifi
         <xs:element minOccurs="0" maxOccurs="unbounded" ref="attribute"/>
         <xs:element minOccurs="0" maxOccurs="unbounded" ref="command"/>
         <xs:element minOccurs="0" maxOccurs="unbounded" ref="event"/>
+        <xs:element minOccurs="0" name="features">
+          <xs:complexType>
+          <xs:sequence>
+            <xs:element maxOccurs="unbounded" name="feature">
+              <xs:complexType>
+                <xs:choice>
+                  <xs:element ref="optionalConform"/>
+                </xs:choice>
+                <xs:attribute name="bit" use="required" type="xs:integer" />
+                <xs:attribute name="code" use="required" type="xs:string" />
+                <xs:attribute name="name" type="xs:string" />
+                <xs:attribute name="summary" type="xs:string" />
+              </xs:complexType>
+            </xs:element>
+          </xs:sequence>
+          </xs:complexType>
+        </xs:element>
       </xs:sequence>
       <xs:attribute name="introducedIn" type="xs:string"/>
       <xs:attribute name="manufacturerCode" type="zclCode"/>
       <xs:attribute name="singleton" type="xs:boolean"/>
+      <xs:attribute name="apiMaturity" type = "zclApiMaturity" />
     </xs:complexType>
   </xs:element>
   <xs:element name="code" type="zclCode"/>
@@ -344,6 +368,7 @@ This schema describes the format of the XML files, that describe the ZCL specifi
       </xs:sequence>
       <xs:attribute name="length" type="xs:integer"/>
       <xs:attribute name="name" use="required" type="xs:string"/>
+      <xs:attribute name="apiMaturity" type = "zclApiMaturity" />
     </xs:complexType>
   </xs:element>
   <xs:element name="callback">
@@ -377,19 +402,25 @@ This schema describes the format of the XML files, that describe the ZCL specifi
   <xs:element name="name" type="xs:string"/>
   <xs:element name="tag" type="tag"/>
   <xs:element name="domain">
-    <xs:complexType mixed="true">
-      <xs:sequence>
-        <xs:element minOccurs="0" maxOccurs="unbounded" ref="older"/>
-      </xs:sequence>
-      <xs:attribute name="dependsOn" type="zclSpecVersion"/>
-      <xs:attribute name="name"/>
-      <xs:attribute name="spec" type="zclSpecVersion"/>
-      <xs:attribute name="certifiable" type="xs:boolean"/>
+    <xs:complexType>
+      <!-- TODO: Remove the mixed once all XML files properly use name instead
+      of putting the name in the content -->
+      <xs:complexContent>
+        <xs:extension base="xs:string" >
+          <xs:sequence>
+            <xs:element minOccurs="0" ref="older"/>
+          </xs:sequence>
+          <xs:attribute name="dependsOn" type="zclSpecVersion"/>
+          <xs:attribute name="name" type="xs:string" />
+          <xs:attribute name="spec" type="zclSpecVersion"/>
+          <xs:attribute name="certifiable" type="xs:boolean"/>
+        </xs:extension>
+      </xs:complexContent>
     </xs:complexType>
   </xs:element>
   <xs:element name="older">
     <xs:complexType>
-      <xs:attribute name="dependsOn" use="optional" type="xs:string"/>
+      <xs:attribute name="dependsOn" type="xs:string"/>
       <xs:attribute name="spec" use="required" type="xs:string"/>
       <xs:attribute name="certifiable" type="xs:boolean"/>
     </xs:complexType>
@@ -489,6 +520,14 @@ This schema describes the format of the XML files, that describe the ZCL specifi
       <xs:enumeration value="either"/>
     </xs:restriction>
   </xs:simpleType>
+  <xs:simpleType name="zclApiMaturity">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="stable"/>
+      <xs:enumeration value="provisional"/>
+      <xs:enumeration value="internal"/>
+      <xs:enumeration value="deprecated"/>
+    </xs:restriction>
+  </xs:simpleType>
   <xs:element name="mapping">
     <xs:complexType>
       <xs:attribute name="code" type="xs:string"/>

From 3fc73db3a4b6183621b1bbe7d36a07708f03171d Mon Sep 17 00:00:00 2001
From: marcos <15697303+gmarcosb@users.noreply.github.com>
Date: Fri, 20 Sep 2024 11:03:33 -0600
Subject: [PATCH 05/20] Update TODO

---
 src/app/zap-templates/zcl/zcl.xsd | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/app/zap-templates/zcl/zcl.xsd b/src/app/zap-templates/zcl/zcl.xsd
index 2224d0f84d32b9..9081d038534efd 100644
--- a/src/app/zap-templates/zcl/zcl.xsd
+++ b/src/app/zap-templates/zcl/zcl.xsd
@@ -403,8 +403,8 @@ This schema describes the format of the XML files, that describe the ZCL specifi
   <xs:element name="tag" type="tag"/>
   <xs:element name="domain">
     <xs:complexType>
-      <!-- TODO: Remove the mixed once all XML files properly use name instead
-      of putting the name in the content -->
+      <!-- TODO: Remove the string extension once all XML files properly use
+      name attribute instead of putting the name in the content -->
       <xs:complexContent>
         <xs:extension base="xs:string" >
           <xs:sequence>

From 13b2c843ea2ae6f75b3575207f3fce4dbb06db53 Mon Sep 17 00:00:00 2001
From: marcos <15697303+gmarcosb@users.noreply.github.com>
Date: Fri, 20 Sep 2024 12:47:16 -0600
Subject: [PATCH 06/20] Update TODO

---
 src/app/zap-templates/zcl/zcl.xsd | 55 ++++++++++++++++++++++---------
 1 file changed, 40 insertions(+), 15 deletions(-)

diff --git a/src/app/zap-templates/zcl/zcl.xsd b/src/app/zap-templates/zcl/zcl.xsd
index 9081d038534efd..6638730bd7dbac 100644
--- a/src/app/zap-templates/zcl/zcl.xsd
+++ b/src/app/zap-templates/zcl/zcl.xsd
@@ -8,6 +8,11 @@ This schema describes the format of the XML files, that describe the ZCL specifi
 (c) Copyright 2012, 2021, Silicon Laboratories Inc.
   </xs:documentation>
   </xs:annotation>
+  <xs:simpleType name="integerWithHex">
+    <xs:restriction base="xs:string">
+      <xs:pattern value="0x[0-9A-Fa-f]+|[0-9]+"/>
+    </xs:restriction>
+  </xs:simpleType>
   <xs:complexType name="access">
     <xs:attribute name="op" type="xs:string"/>
     <xs:attribute name="role" type="xs:string"/>
@@ -20,12 +25,18 @@ This schema describes the format of the XML files, that describe the ZCL specifi
     <xs:attribute name="type" use="required" type="xs:string"/>
     <xs:attribute name="array" type="xs:boolean"/>
     <xs:attribute name="isNullable" type="xs:boolean"/>
+    <xs:attribute name="optional" type="xs:boolean" default="false"/>
+    <xs:attribute name="min" type="integerWithHex"/>
+    <xs:attribute name="max" type="integerWithHex"/>
   </xs:complexType>
   <xs:complexType name="tag">
     <xs:attribute name="name" use="required" type="xs:string"/>
     <xs:attribute name="description" use="required" type="xs:string"/>
   </xs:complexType>
   <xs:complexType name="arg">
+    <xs:attribute name="id" type="integerWithHex" />
+    <xs:attribute name="min" type="integerWithHex"/>
+    <xs:attribute name="max" type="integerWithHex"/>
     <xs:attribute name="arrayLength" type="xs:boolean"/>
     <xs:attribute name="array" type="xs:boolean"/>
     <xs:attribute name="default" type="xs:string"/>
@@ -36,8 +47,8 @@ This schema describes the format of the XML files, that describe the ZCL specifi
     <xs:attribute name="type" use="required"/>
     <xs:attribute name="length" type="xs:int"/>
     <xs:attribute name="presentIf" type="xs:string"/>
-    <xs:attribute name="optional" type="xs:integer"/>
-    <xs:attribute name="fieldId" type="xs:integer"/>
+    <xs:attribute name="optional" type="integerWithHex"/>
+    <xs:attribute name="fieldId" type="integerWithHex"/>
     <xs:attribute name="countArg" type="xs:string" />
     <xs:attribute name="isNullable" type="xs:boolean"/>
   </xs:complexType>
@@ -51,12 +62,15 @@ This schema describes the format of the XML files, that describe the ZCL specifi
     <xs:attribute name="value" type="xs:string"/>
     <xs:attribute name="array" type="xs:boolean"/>
     <xs:attribute name="enum" type="xs:boolean"/>
-    <xs:attribute name="fieldId" type="xs:integer"/>
+    <xs:attribute name="fieldId" type="integerWithHex"/>
+    <xs:attribute name="min" type="integerWithHex"/>
+    <xs:attribute name="max" type="integerWithHex"/>
+    <xs:attribute name="default" type="xs:string"/>
     <xs:attribute name="isNullable" type="xs:boolean"/>
   </xs:complexType>
   <xs:complexType name="featureBit" mixed="true">
     <xs:attribute name="tag" use="required" type="xs:string"/>
-    <xs:attribute name="bit" use="required" type="xs:integer"/>
+    <xs:attribute name="bit" use="required" type="integerWithHex"/>
   </xs:complexType>
   <xs:element name="cli">
     <xs:complexType>
@@ -134,6 +148,15 @@ This schema describes the format of the XML files, that describe the ZCL specifi
         </xs:choice>
       </xs:sequence>
     </xs:complexType>
+
+    <xs:unique name="structNameKey">
+      <xs:selector xpath="./struct|enum" />
+      <xs:field xpath="@name" />
+    </xs:unique>
+    <xs:keyref name="attributeEntryTypeStructRef" refer="structNameKey">
+      <xs:selector xpath="./cluster/attribute" />
+      <xs:field xpath="@entryType" />
+    </xs:keyref>
   </xs:element>
   <xs:element name="deviceType">
     <xs:complexType>
@@ -231,7 +254,7 @@ This schema describes the format of the XML files, that describe the ZCL specifi
       <xs:attribute name="id" use="required" type="xs:string"/>
       <xs:attribute name="name" use="required" type="xs:string"/>
       <xs:attribute name="description" use="required" type="xs:string"/>
-      <xs:attribute name="size" type="xs:integer"/>
+      <xs:attribute name="size" type="integerWithHex"/>
       <xs:attribute name="discrete" type="xs:boolean"/>
       <xs:attribute name="signed" type="xs:boolean"/>
       <xs:attribute name="string" type="xs:boolean"/>
@@ -256,7 +279,7 @@ This schema describes the format of the XML files, that describe the ZCL specifi
       <xs:attribute name="mask" use="required" type="xs:string"/>
       <xs:attribute name="name" use="required" type="xs:string"/>
       <xs:attribute name="introducedIn" type="zclSpecVersion"/>
-      <xs:attribute name="fieldId" type="xs:integer"/>
+      <xs:attribute name="fieldId" type="integerWithHex"/>
     </xs:complexType>
   </xs:element>
   <xs:element name="globalAttribute">
@@ -277,7 +300,7 @@ This schema describes the format of the XML files, that describe the ZCL specifi
   </xs:element>
   <xs:element name="cluster">
     <xs:complexType>
-      <xs:sequence>
+      <xs:choice maxOccurs="unbounded">
         <xs:element ref="name"/>
         <xs:element ref="domain"/>
         <xs:element ref="description"/>
@@ -299,7 +322,7 @@ This schema describes the format of the XML files, that describe the ZCL specifi
                 <xs:choice>
                   <xs:element ref="optionalConform"/>
                 </xs:choice>
-                <xs:attribute name="bit" use="required" type="xs:integer" />
+                <xs:attribute name="bit" use="required" type="integerWithHex" />
                 <xs:attribute name="code" use="required" type="xs:string" />
                 <xs:attribute name="name" type="xs:string" />
                 <xs:attribute name="summary" type="xs:string" />
@@ -308,7 +331,7 @@ This schema describes the format of the XML files, that describe the ZCL specifi
           </xs:sequence>
           </xs:complexType>
         </xs:element>
-      </xs:sequence>
+      </xs:choice>
       <xs:attribute name="introducedIn" type="xs:string"/>
       <xs:attribute name="manufacturerCode" type="zclCode"/>
       <xs:attribute name="singleton" type="xs:boolean"/>
@@ -366,7 +389,7 @@ This schema describes the format of the XML files, that describe the ZCL specifi
         <xs:element minOccurs="0" maxOccurs="unbounded" name="cluster" type="clusterRef"/>
         <xs:element minOccurs="0" maxOccurs="unbounded" name="item" type="item"/>
       </xs:sequence>
-      <xs:attribute name="length" type="xs:integer"/>
+      <xs:attribute name="length" type="integerWithHex"/>
       <xs:attribute name="name" use="required" type="xs:string"/>
       <xs:attribute name="apiMaturity" type = "zclApiMaturity" />
     </xs:complexType>
@@ -427,15 +450,16 @@ This schema describes the format of the XML files, that describe the ZCL specifi
   </xs:element>
   <xs:element name="event">
     <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="description"/>
+      <xs:choice maxOccurs="unbounded">
+        <xs:element ref="description" minOccurs="1" maxOccurs="1"/>
         <xs:element minOccurs="0" maxOccurs="unbounded" name="access" type="access"/>
         <xs:element minOccurs="0" maxOccurs="unbounded" name="field" type="eventField"/>
-      </xs:sequence>
+      </xs:choice>
       <xs:attribute name="code" type="xs:string"/>
       <xs:attribute name="name" type="xs:string"/>
       <xs:attribute name="side" use="required" type="zclSide"/>
       <xs:attribute name="priority" type="xs:string"/>
+      <xs:attribute name="optional" type="xs:boolean" default="false"/>
     </xs:complexType>
   </xs:element>
   <xs:element name="command">
@@ -471,14 +495,14 @@ This schema describes the format of the XML files, that describe the ZCL specifi
       <xs:attribute name="default"/>
       <xs:attribute name="define" use="required" type="zclAttributeDefine"/>
       <xs:attribute name="introducedIn" type="zclSpecVersion"/>
-      <xs:attribute name="length" type="xs:integer"/>
+      <xs:attribute name="length" type="integerWithHex"/>
       <xs:attribute name="manufacturerCode" type="zclCode"/>
       <xs:attribute name="max" type="xs:anySimpleType"/>
       <xs:attribute name="min" type="xs:anySimpleType"/>
       <xs:attribute name="reportMaxInterval" type="xs:anySimpleType"/>
       <xs:attribute name="reportMinInterval" type="xs:anySimpleType"/>
       <xs:attribute name="reportableChange" type="xs:anySimpleType"/>
-      <xs:attribute name="optional" use="required" type="xs:boolean"/>
+      <xs:attribute name="optional" type="xs:boolean" default="false"/>
       <xs:attribute name="side" use="required" type="zclSide"/>
       <xs:attribute name="type" use="required" type="xs:string"/>
       <xs:attribute name="readable" type="xs:boolean"/>
@@ -486,6 +510,7 @@ This schema describes the format of the XML files, that describe the ZCL specifi
       <xs:attribute name="reportable" type="xs:boolean"/>
       <xs:attribute name="array" type="xs:boolean"/>
       <xs:attribute name="isNullable" type="xs:boolean"/>
+      <xs:attribute name="entryType" type="xs:string" />
     </xs:complexType>
   </xs:element>
   <xs:element name="description">

From 9b36eb181c2bc0c0e926137319ffdbeb4c778ab5 Mon Sep 17 00:00:00 2001
From: marcos <15697303+gmarcosb@users.noreply.github.com>
Date: Fri, 20 Sep 2024 12:47:54 -0600
Subject: [PATCH 07/20] Additional schema updates to match existing XML files

---
 src/app/zap-templates/zcl/zcl.xsd | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/app/zap-templates/zcl/zcl.xsd b/src/app/zap-templates/zcl/zcl.xsd
index 6638730bd7dbac..7a1e0edc31ab69 100644
--- a/src/app/zap-templates/zcl/zcl.xsd
+++ b/src/app/zap-templates/zcl/zcl.xsd
@@ -451,7 +451,7 @@ This schema describes the format of the XML files, that describe the ZCL specifi
   <xs:element name="event">
     <xs:complexType>
       <xs:choice maxOccurs="unbounded">
-        <xs:element ref="description" minOccurs="1" maxOccurs="1"/>
+        <xs:element ref="description" />
         <xs:element minOccurs="0" maxOccurs="unbounded" name="access" type="access"/>
         <xs:element minOccurs="0" maxOccurs="unbounded" name="field" type="eventField"/>
       </xs:choice>

From a8b4a5ee411e3281b2f435be8d77700b40886723 Mon Sep 17 00:00:00 2001
From: marcos <15697303+gmarcosb@users.noreply.github.com>
Date: Fri, 20 Sep 2024 13:53:52 -0600
Subject: [PATCH 08/20] Additional schema updates to match existing XML files

---
 src/app/zap-templates/zcl/zcl.xsd | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/app/zap-templates/zcl/zcl.xsd b/src/app/zap-templates/zcl/zcl.xsd
index 7a1e0edc31ab69..e34ee4d59f055c 100644
--- a/src/app/zap-templates/zcl/zcl.xsd
+++ b/src/app/zap-templates/zcl/zcl.xsd
@@ -47,7 +47,7 @@ This schema describes the format of the XML files, that describe the ZCL specifi
     <xs:attribute name="type" use="required"/>
     <xs:attribute name="length" type="xs:int"/>
     <xs:attribute name="presentIf" type="xs:string"/>
-    <xs:attribute name="optional" type="integerWithHex"/>
+    <xs:attribute name="optional" type="xs:boolean"/>
     <xs:attribute name="fieldId" type="integerWithHex"/>
     <xs:attribute name="countArg" type="xs:string" />
     <xs:attribute name="isNullable" type="xs:boolean"/>

From 48e0d3f7b9eec5661d2f26133a8cce4a1191c82d Mon Sep 17 00:00:00 2001
From: marcos <15697303+gmarcosb@users.noreply.github.com>
Date: Fri, 20 Sep 2024 14:02:39 -0600
Subject: [PATCH 09/20] Start of camera clusters

Generated using Alchemy: https://github.com/project-chip/alchemy
---
 .github/workflows/tests.yaml                  |   6 +
 docs/zap_clusters.md                          |  12 +-
 scripts/rules.matterlint                      |   6 +
 src/app/zap-templates/zcl/data-model/all.xml  |   4 +-
 .../zcl/data-model/chip/global-enums.xml      |  52 +-
 ...settings-user-level-management-cluster.xml |  87 +++
 .../camera-av-stream-management-cluster.xml   | 571 ++++++++++++++++++
 .../zcl/data-model/draft/chime-cluster.xml    |  48 ++
 .../push-av-stream-transport-cluster.xml      | 216 +++++++
 .../draft/web-rtc-provider-cluster.xml        | 135 +++++
 .../draft/web-rtc-requestor-cluster.xml       |  62 ++
 .../zcl/zcl-with-test-extensions.json         | 117 +++-
 src/app/zap-templates/zcl/zcl.json            | 117 +++-
 src/app/zap_cluster_list.json                 | 354 ++++++++---
 14 files changed, 1646 insertions(+), 141 deletions(-)
 create mode 100644 src/app/zap-templates/zcl/data-model/draft/camera-av-settings-user-level-management-cluster.xml
 create mode 100644 src/app/zap-templates/zcl/data-model/draft/chime-cluster.xml
 create mode 100644 src/app/zap-templates/zcl/data-model/draft/push-av-stream-transport-cluster.xml
 create mode 100644 src/app/zap-templates/zcl/data-model/draft/web-rtc-provider-cluster.xml
 create mode 100644 src/app/zap-templates/zcl/data-model/draft/web-rtc-requestor-cluster.xml

diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml
index 3a9bca19317216..1191afb123d7cd 100644
--- a/.github/workflows/tests.yaml
+++ b/.github/workflows/tests.yaml
@@ -91,9 +91,13 @@ jobs:
                       --no-print \
                       --log-level info \
                       src/app/zap-templates/zcl/data-model/chip/global-attributes.xml \
+                      src/app/zap-templates/zcl/data-model/chip/camera-av-settings-user-level-management-cluster.xml \
+                      src/app/zap-templates/zcl/data-model/chip/camera-av-stream-management-cluster.xml \
+                      src/app/zap-templates/zcl/data-model/chip/chime-cluster.xml \
                       src/app/zap-templates/zcl/data-model/chip/global-bitmaps.xml \
                       src/app/zap-templates/zcl/data-model/chip/global-enums.xml \
                       src/app/zap-templates/zcl/data-model/chip/global-structs.xml \
+                      src/app/zap-templates/zcl/data-model/chip/push-av-stream-transport-cluster.xml \
                       src/app/zap-templates/zcl/data-model/chip/semantic-tag-namespace-enums.xml \
                       src/app/zap-templates/zcl/data-model/chip/access-control-definitions.xml \
                       src/app/zap-templates/zcl/data-model/chip/access-control-cluster.xml \
@@ -197,6 +201,8 @@ jobs:
                       src/app/zap-templates/zcl/data-model/chip/wake-on-lan-cluster.xml \
                       src/app/zap-templates/zcl/data-model/chip/washer-controls-cluster.xml \
                       src/app/zap-templates/zcl/data-model/chip/water-heater-management-cluster.xml \
+                      src/app/zap-templates/zcl/data-model/chip/web-rtc-provider-cluster.xml \
+                      src/app/zap-templates/zcl/data-model/chip/web-rtc-requestor-cluster.xml \
                       src/app/zap-templates/zcl/data-model/chip/wifi-network-diagnostics-cluster.xml \
                       src/app/zap-templates/zcl/data-model/chip/wifi-network-management-cluster.xml \
                       src/app/zap-templates/zcl/data-model/chip/window-covering.xml \
diff --git a/docs/zap_clusters.md b/docs/zap_clusters.md
index 15502804329020..9171d07c2ad3f8 100644
--- a/docs/zap_clusters.md
+++ b/docs/zap_clusters.md
@@ -89,12 +89,6 @@ Generally regenerate using one of:
 |        157 |       0x9D | EnergyEvseMode                                        |
 |        158 |       0x9E | WaterHeaterMode                                       |
 |        159 |       0x9F | DeviceEnergyManagementMode                            |
-|        160 |       0xA0 | CameraAvStreamManagement                              |
-|        161 |       0xA1 | CameraAvSettingsUserLevelManagement                   |
-|        162 |       0xA2 | WebRtcTransportProvider                               |
-|        163 |       0xA3 | WebRtcTransportRequester                              |
-|        164 |       0xA4 | PushAvStreamTransport                                 |
-|        164 |       0xA5 | Chime                                                 |
 |        257 |      0x101 | DoorLock                                              |
 |        258 |      0x102 | WindowCovering                                        |
 |        259 |      0x103 | BarrierControl                                        |
@@ -138,6 +132,12 @@ Generally regenerate using one of:
 |       1294 |      0x50E | AccountLogin                                          |
 |       1295 |      0x50F | ContentControl                                        |
 |       1296 |      0x510 | ContentAppObserver                                    |
+|       1361 |      0x551 | CameraAvStreamManagement                              |
+|       1362 |      0x552 | CameraAvSettingsUserLevelManagement                   |
+|       1363 |      0x553 | WebRtcTransportProvider                               |
+|       1364 |      0x554 | WebRtcTransportRequestor                              |
+|       1365 |      0x555 | PushAvStreamTransport                                 |
+|       1366 |      0x556 | Chime                                                 |
 |       1872 |      0x750 | EcosystemInformation                                  |
 |       1873 |      0x751 | CommissionerControl                                   |
 |       2820 |      0xB04 | ElectricalMeasurement                                 |
diff --git a/scripts/rules.matterlint b/scripts/rules.matterlint
index 16c1fa56e1de1e..9b4dead3bcbf29 100644
--- a/scripts/rules.matterlint
+++ b/scripts/rules.matterlint
@@ -14,7 +14,10 @@ load "../src/app/zap-templates/zcl/data-model/chip/binding-cluster.xml";
 load "../src/app/zap-templates/zcl/data-model/chip/boolean-state-cluster.xml";
 load "../src/app/zap-templates/zcl/data-model/chip/actions-cluster.xml";
 load "../src/app/zap-templates/zcl/data-model/chip/bridged-device-basic-information.xml";
+load "../src/app/zap-templates/zcl/data-model/chip/camera-av-settings-user-level-management-cluster.xml";
+load "../src/app/zap-templates/zcl/data-model/chip/camera-av-stream-management-cluster.xml";
 load "../src/app/zap-templates/zcl/data-model/chip/channel-cluster.xml";
+load "../src/app/zap-templates/zcl/data-model/chip/chime-cluster.xml";
 load "../src/app/zap-templates/zcl/data-model/chip/chip-ota.xml";
 load "../src/app/zap-templates/zcl/data-model/chip/chip-types.xml";
 load "../src/app/zap-templates/zcl/data-model/chip/clusters-extensions.xml";
@@ -63,6 +66,7 @@ load "../src/app/zap-templates/zcl/data-model/chip/media-playback-cluster.xml";
 load "../src/app/zap-templates/zcl/data-model/chip/messages-cluster.xml";
 load "../src/app/zap-templates/zcl/data-model/chip/mode-base-cluster.xml";
 load "../src/app/zap-templates/zcl/data-model/chip/mode-select-cluster.xml";
+load "../src/app/zap-templates/zcl/data-model/chip/push-av-stream-transport-cluster.xml";
 load "../src/app/zap-templates/zcl/data-model/chip/semantic-tag-namespace-enums.xml";
 load "../src/app/zap-templates/zcl/data-model/chip/network-commissioning-cluster.xml";
 load "../src/app/zap-templates/zcl/data-model/chip/occupancy-sensing-cluster.xml";
@@ -107,6 +111,8 @@ load "../src/app/zap-templates/zcl/data-model/chip/wake-on-lan-cluster.xml";
 load "../src/app/zap-templates/zcl/data-model/chip/washer-controls-cluster.xml";
 load "../src/app/zap-templates/zcl/data-model/chip/water-heater-management-cluster.xml";
 load "../src/app/zap-templates/zcl/data-model/chip/water-heater-mode-cluster.xml";
+load "../src/app/zap-templates/zcl/data-model/chip/web-rtc-provider-cluster.xml";
+load "../src/app/zap-templates/zcl/data-model/chip/web-rtc-requestor-cluster.xml";
 load "../src/app/zap-templates/zcl/data-model/chip/wifi-network-diagnostics-cluster.xml";
 load "../src/app/zap-templates/zcl/data-model/chip/wifi-network-management-cluster.xml";
 load "../src/app/zap-templates/zcl/data-model/chip/window-covering.xml";
diff --git a/src/app/zap-templates/zcl/data-model/all.xml b/src/app/zap-templates/zcl/data-model/all.xml
index e33f2a83d7bb39..a6146759040ec5 100644
--- a/src/app/zap-templates/zcl/data-model/all.xml
+++ b/src/app/zap-templates/zcl/data-model/all.xml
@@ -125,8 +125,8 @@
    <xi:include href="draft/onoff-switch-configuration-cluster.xml" />
    <xi:include href="draft/camera-av-stream-management-cluster.xml" />
    <xi:include href="draft/camera-av-settings-user-level-management-cluster.xml" />
-   <xi:include href="draft/web-rtc-transport-provider-cluster.xml" />
-   <xi:include href="draft/web-rtc-transport-requester-cluster.xml" />
+   <xi:include href="draft/web-rtc-provider-cluster.xml" />
+   <xi:include href="draft/web-rtc-requestor-cluster.xml" />
    <xi:include href="draft/push-av-stream-transport-cluster.xml" />
    <xi:include href="draft/chime.xml" />
    <xi:include href="chip/sample-mei-cluster.xml" />
diff --git a/src/app/zap-templates/zcl/data-model/chip/global-enums.xml b/src/app/zap-templates/zcl/data-model/chip/global-enums.xml
index 54f38c1b6933e8..08032f9acb2af3 100644
--- a/src/app/zap-templates/zcl/data-model/chip/global-enums.xml
+++ b/src/app/zap-templates/zcl/data-model/chip/global-enums.xml
@@ -14,16 +14,13 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
 <!--
 TODO: Make these structures global rather than defining them for each cluster.
  This depends on the ability to define global structs via XML tags.
  see: https://github.com/project-chip/connectedhomeip/issues/29818
 -->
-
 <configurator>
   <domain name="CHIP"/>
-
   <enum name="AtomicRequestTypeEnum" type="enum8">
     <item name="BeginWrite" value="0x00"/>
     <item name="CommitWrite" value="0x01"/>
@@ -34,10 +31,59 @@ TODO: Make these structures global rather than defining them for each cluster.
     These are test global items (no cluster attached) for testing only.
     Their usage is defined for UnitTestCluster only.
   -->
+  <enum name="MeasurementTypeEnum" type="enum16">
+    <item name="Unspecified" value="0x0000"/>
+    <item name="Voltage" value="0x0001"/>
+    <item name="ActiveCurrent" value="0x0002"/>
+    <item name="ReactiveCurrent" value="0x0003"/>
+    <item name="ApparentCurrent" value="0x0004"/>
+    <item name="ActivePower" value="0x0005"/>
+    <item name="ReactivePower" value="0x0006"/>
+    <item name="ApparentPower" value="0x0007"/>
+    <item name="RMSVoltage" value="0x0008"/>
+    <item name="RMSCurrent" value="0x0009"/>
+    <item name="RMSPower" value="0x000A"/>
+    <item name="Frequency" value="0x000B"/>
+    <item name="PowerFactor" value="0x000C"/>
+    <item name="NeutralCurrent" value="0x000D"/>
+    <item name="ElectricalEnergy" value="0x000E"/>
+  </enum>
+
+  <enum name="ServerAttributionContextInformation" type="enum8">
+    <item name="ServerAutomationRule" value="0x0B"/>
+    <item name="ServerSchedule" value="0x0C"/>
+    <item name="ServerTimer" value="0x0D"/>
+    <item name="Security" value="0x0D"/>
+    <item name="DemandResponseEventOrSimilarServiceProviderSignalling" value="0x0E"/>
+    <item name="PhysicalInteractionOnDevice" value="0x0F"/>
+    <item name="InteractionViaAProtocolNotDefinedInThisSpecification" value="0x10"/>
+  </enum>
+
+  <enum name="SoftwareVersionCertificationStatusEnum" type="enum8">
+    <item name="dev-test" value="0x00"/>
+    <item name="provisional" value="0x01"/>
+    <item name="certified" value="0x02"/>
+    <item name="revoked" value="0x03"/>
+  </enum>
+
+  <enum name="SuppliedAttributionContextInformation" type="enum8">
+    <item name="DefaultClientAction" value="0x00"/>
+    <item name="UserInteraction" value="0x01"/>
+    <item name="ClientAutomationRule" value="0x02"/>
+    <item name="ClientSchedule" value="0x03"/>
+    <item name="ClientTimer" value="0x04"/>
+  </enum>
+
   <enum name="TestGlobalEnum" type="enum8">
     <item name="SomeValue" value="0x00"/>
     <item name="SomeOtherValue" value="0x01"/>
     <item name="FinalValue" value="0x02"/>
   </enum>
 
+  <enum name="ThreeLevelAutoEnum" type="enum8">
+    <item name="Low" value="0x00"/>
+    <item name="Medium" value="0x01"/>
+    <item name="High" value="0x02"/>
+    <item name="Auto" value="0x03"/>
+  </enum>
 </configurator>
diff --git a/src/app/zap-templates/zcl/data-model/draft/camera-av-settings-user-level-management-cluster.xml b/src/app/zap-templates/zcl/data-model/draft/camera-av-settings-user-level-management-cluster.xml
new file mode 100644
index 00000000000000..eaec626bd297e1
--- /dev/null
+++ b/src/app/zap-templates/zcl/data-model/draft/camera-av-settings-user-level-management-cluster.xml
@@ -0,0 +1,87 @@
+<?xml version="1.0"?>
+<!--
+Copyright (c) 2024 Project CHIP Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<!--
+XML generated by Alchemy; DO NOT EDIT.
+Source: src/app_clusters/CameraAVSettingsUserLevelManagement.adoc
+Parameters: in-progress 
+Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
+-->
+<configurator xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:noNamespaceSchemaLocation="../../zcl.xsd">
+  <domain name="General"/>
+  <struct name="MPTZStruct" apiMaturity="provisional">
+    <cluster code="0x0552"/>
+    <item fieldId="0" name="MPan" type="int16s" isNullable="true" optional="true" default="0" min="-180" max="179"/>
+    <item fieldId="1" name="MTilt" type="int8s" isNullable="true" optional="true" default="0" min="-90" max="90"/>
+    <item fieldId="2" name="MZoom" type="int16u" isNullable="true" optional="true" default="1"/>
+  </struct>
+
+  <cluster apiMaturity="provisional">
+    <domain name="General" />
+    <name>Camera AV Settings User Level Management</name>
+    <code>0x0552</code>
+    <define>CAMERA_AV_SETTINGS_USER_LEVEL_MANAGEMENT_CLUSTER</define>
+    <description/>
+    <client init="false" tick="false">true</client>
+    <features>
+      <feature bit="0" code="MPTZ" name="MechanicalPTZ" summary="Mechanical PTZ supported">
+        <optionalConform choice="a" more="true" min="1"/>
+      </feature>
+      <feature bit="1" code="DPTZ" name="DigitalPTZ" summary="Digital PTZ supported">
+        <optionalConform choice="a" more="true" min="1"/>
+      </feature>
+    </features>
+    <server init="false" tick="false">true</server>
+    <globalAttribute code="0xFFFD" side="either" value="1"/>
+    <attribute code="0x0000" side="server" define="MPTZ" type="MPTZStruct" optional="true">Mptz</attribute>
+    <attribute code="0x0001" side="server" define="MAX_PRESETS" type="int8u" optional="true">MaxPresets</attribute>
+    <attribute code="0x0002" side="server" define="PRESET_MPTZ_TABLE" type="array" entryType="MPTZStruct" optional="true">PresetMptzTable</attribute>
+    <attribute code="0x0003" side="server" define="MPTZ_RELATIVE_MOVE" type="boolean" optional="true">MptzRelativeMove</attribute>
+    <attribute code="0x0004" side="server" define="DPTZ_RELATIVE_MOVE" type="array" entryType="PerStreamStruct" optional="true">DptzRelativeMove</attribute>
+    <command code="0x00" source="client" name="MptzSet" optional="true">
+      <description>This command SHALL set the values for the pan, tilt, and zoom in the mechanical PTZ.</description>
+      <arg id="0" name="NewPTZ" type="MPTZStruct" optional="true"/>
+      <arg id="1" name="PresetID" type="int8u" optional="true"/>
+    </command>
+
+    <command code="0x01" source="client" name="MptzRelativeMove" optional="true">
+      <description>This command SHALL move the device by the values for pan, tilt, and zoom relative to the currently defined position.</description>
+      <arg id="0" name="Pan" type="int16s" default="0" min="-359" max="359"/>
+      <arg id="1" name="Tilt" type="int16s" default="0" min="-180" max="180"/>
+      <arg id="2" name="Zoom" type="int16s" default="0" min="-100" max="100"/>
+    </command>
+
+    <command code="0x02" source="client" name="SetAsPreset" optional="true">
+      <description>This command SHALL set the next available index in the PresetMptzTable to the current, known, values of pan, tilt, and zoom on the camera.</description>
+    </command>
+
+    <command code="0x03" source="client" name="DptzSetViewport" optional="true">
+      <description>This command SHALL set the viewport in the digital PTZ for a specific Video Stream.</description>
+      <arg id="0" name="VideoStreamID" type="VideoStreamID"/>
+      <arg id="1" name="Viewport" type="ViewportStruct"/>
+    </command>
+
+    <command code="0x04" source="client" name="DptzRelativeMove" optional="true">
+      <description>This command SHALL change the viewports location by the amount specified in a relative fashion.</description>
+      <arg id="0" name="VideoStreamID" type="VideoStreamID"/>
+      <arg id="1" name="Pan" type="int16s" default="0"/>
+      <arg id="2" name="Tilt" type="int16s" default="0"/>
+      <arg id="3" name="Zoom" type="int8s" default="0" min="-100" max="100"/>
+    </command>
+
+  </cluster>
+</configurator>
diff --git a/src/app/zap-templates/zcl/data-model/draft/camera-av-stream-management-cluster.xml b/src/app/zap-templates/zcl/data-model/draft/camera-av-stream-management-cluster.xml
index e69de29bb2d1d6..bf1fd4bdda8b25 100644
--- a/src/app/zap-templates/zcl/data-model/draft/camera-av-stream-management-cluster.xml
+++ b/src/app/zap-templates/zcl/data-model/draft/camera-av-stream-management-cluster.xml
@@ -0,0 +1,571 @@
+<?xml version="1.0"?>
+<!--
+Copyright (c) 2024 Project CHIP Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<!--
+XML generated by Alchemy; DO NOT EDIT.
+Source: src/app_clusters/CameraAVStreamManagement.adoc
+Parameters: in-progress 
+Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
+-->
+<configurator xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../zcl.xsd">
+  <domain name="General"/>
+  <enum name="AudioCodecEnum" type="enum8">
+    <cluster code="0x0551"/>
+    <item name="OPUS" value="0x00"/>
+    <item name="AAC-LC" value="0x01"/>
+  </enum>
+
+  <enum name="ImageCodecEnum" type="enum8">
+    <cluster code="0x0551"/>
+    <item name="JPEG" value="0x00"/>
+  </enum>
+
+  <enum name="StreamTypeEnum" type="enum8">
+    <cluster code="0x0551"/>
+    <cluster code="0x0553"/>
+    <cluster code="0x0554"/>
+    <cluster code="0x0555"/>
+    <item name="Internal" value="0x00"/>
+    <item name="Recording" value="0x01"/>
+    <item name="Analysis" value="0x02"/>
+    <item name="LiveView" value="0x03"/>
+  </enum>
+
+  <enum name="TriStateAuto" type="enum8">
+    <cluster code="0x0551"/>
+    <item name="Off" value="0x00"/>
+    <item name="On" value="0x01"/>
+    <item name="Auto" value="0x02"/>
+  </enum>
+
+  <enum name="TwowayTalkSupportTypeEnum" type="enum8">
+    <cluster code="0x0551"/>
+    <item name="NotSupported" value="0x00"/>
+    <item name="HalfDuplex" value="0x01"/>
+    <item name="FullDuplex" value="0x02"/>
+  </enum>
+
+  <enum name="VideoCodecEnum" type="enum8">
+    <cluster code="0x0551"/>
+    <item name="H264" value="0x00"/>
+    <item name="HEVC" value="0x01"/>
+    <item name="VVC" value="0x02"/>
+    <item name="AV1" value="0x03"/>
+  </enum>
+
+  <struct name="AudioCapabilitiesStruct" apiMaturity="provisional">
+    <cluster code="0x0551"/>
+    <item fieldId="0" name="MaxNumberOfChannels" type="int8u"/>
+    <item fieldId="1" name="SupportedCodecs" array="true" type="AudioCodecEnum"/>
+    <item fieldId="2" name="SupportedSampleRates" array="true" type="int32u"/>
+    <item fieldId="3" name="SupportedBitDepths" array="true" type="int32u"/>
+  </struct>
+
+  <struct name="AudioStreamStruct" apiMaturity="provisional">
+    <cluster code="0x0551"/>
+    <item fieldId="0" name="AudioStreamID" type="AudioStreamID"/>
+    <item fieldId="1" name="StreamType" type="StreamTypeEnum" min="0x00" max="0x03"/>
+    <item fieldId="2" name="AudioCodec" type="AudioCodecEnum" min="0x00" max="0x01"/>
+    <item fieldId="3" name="ChannelCount" type="int8u"/>
+    <item fieldId="4" name="SampleRate" type="int32u"/>
+    <item fieldId="5" name="BitRate" type="int32u"/>
+    <item fieldId="6" name="BitDepth" type="int8u"/>
+    <item fieldId="7" name="ReferenceCount" type="int8u"/>
+  </struct>
+
+  <struct name="PerStreamStruct" apiMaturity="provisional">
+    <cluster code="0x0551"/>
+    <cluster code="0x0552"/>
+    <item fieldId="0" name="StreamID" type="unit8"/>
+    <item fieldId="1" name="OnOff" type="boolean"/>
+  </struct>
+
+  <struct name="RateDistortionTradeOffPointsStruct" apiMaturity="provisional">
+    <cluster code="0x0551"/>
+    <item fieldId="0" name="Codec" type="VideoCodecEnum" min="0x00" max="0x03"/>
+    <item fieldId="1" name="Resolution" type="DimensionStruct"/>
+    <item fieldId="2" name="MinBitRate" type="int32u"/>
+  </struct>
+
+  <struct name="SnapshotParamsStruct" apiMaturity="provisional">
+    <cluster code="0x0551"/>
+    <item fieldId="0" name="Resolution" type="DimensionStruct"/>
+    <item fieldId="1" name="MaxFrameRate" type="int16u"/>
+    <item fieldId="2" name="ImageCodec" type="ImageCodecEnum" min="0x00" max="0x00"/>
+  </struct>
+
+  <struct name="SnapshotStreamStruct" apiMaturity="provisional">
+    <cluster code="0x0551"/>
+    <item fieldId="0" name="SnapshotStreamID" type="SnapshotStreamID"/>
+    <item fieldId="1" name="ImageCodec" type="ImageCodecEnum" min="0x00" max="0x00"/>
+    <item fieldId="2" name="FrameRate" type="int16u"/>
+    <item fieldId="3" name="BitRate" type="int32u"/>
+    <item fieldId="4" name="MinResolution" type="DimensionStruct"/>
+    <item fieldId="5" name="MaxResolution" type="DimensionStruct"/>
+    <item fieldId="6" name="Quality" type="int8u" min="1" max="100"/>
+    <item fieldId="7" name="ReferenceCount" type="int8u"/>
+  </struct>
+
+  <struct name="VideoSensorParamsStruct" apiMaturity="provisional">
+    <cluster code="0x0551"/>
+    <item fieldId="0" name="SensorWidth" type="int16u"/>
+    <item fieldId="1" name="SensorHeight" type="int16u"/>
+    <item fieldId="2" name="HDRCapable" type="boolean"/>
+    <item fieldId="3" name="MaxFPS" type="int16u"/>
+    <item fieldId="4" name="MaxHDRFPS" type="int16u"/>
+  </struct>
+
+  <struct name="VideoStreamStruct" apiMaturity="provisional">
+    <cluster code="0x0551"/>
+    <item fieldId="0" name="VideoStreamID" type="VideoStreamID"/>
+    <item fieldId="1" name="StreamType" type="StreamTypeEnum" min="0x00" max="0x03"/>
+    <item fieldId="2" name="VideoCodec" type="VideoCodecEnum" min="0x00" max="0x03"/>
+    <item fieldId="3" name="MinFrameRate" type="int16u"/>
+    <item fieldId="4" name="MaxFrameRate" type="int16u"/>
+    <item fieldId="5" name="MinResolution" type="DimensionStruct"/>
+    <item fieldId="6" name="MaxResolution" type="DimensionStruct"/>
+    <item fieldId="7" name="MinBitRate" type="int16u"/>
+    <item fieldId="8" name="MaxBitRate" type="int16u"/>
+    <item fieldId="9" name="MinFragmentLen" type="int16u"/>
+    <item fieldId="10" name="MaxFragmentLen" type="int16u"/>
+    <item fieldId="11" name="ReferenceCount" type="int8u"/>
+  </struct>
+
+  <struct name="ViewportStruct" apiMaturity="provisional">
+    <cluster code="0x0551"/>
+    <cluster code="0x0552"/>
+    <item fieldId="0" name="X1" type="int16u" default="0"/>
+    <item fieldId="1" name="Y1" type="int16u" default="0"/>
+    <item fieldId="2" name="X2" type="int16u" default="0"/>
+    <item fieldId="3" name="Y2" type="int16u" default="0"/>
+  </struct>
+
+  <cluster>
+    <domain name="General"/>
+    <name>Camera AV Stream Management</name>
+    <code>0x0551</code>
+    <define>CAMERA_AV_STREAM_MANAGEMENT_CLUSTER</define>
+    <description/>
+    <client init="false" tick="false">true</client>
+    <features>
+      <feature bit="0" code="PRIV" name="Privacy" summary="Privacy supported">
+        <optionalConform/>
+      </feature>
+      <feature bit="1" code="SCTL" name="SensorControl" summary="Sensor control supported">
+        <optionalConform/>
+      </feature>
+      <feature bit="2" code="ADO" name="Audio" summary="Audio Stream supported">
+        <optionalConform/>
+      </feature>
+      <feature bit="3" code="ICTL" name="ImageControl" summary="Image control supported">
+        <optionalConform/>
+      </feature>
+      <feature bit="4" code="VDO" name="Video" summary="Video Stream supported">
+        <optionalConform/>
+      </feature>
+      <feature bit="5" code="SNP" name="Snapshot" summary="Snapshot stream supported">
+        <optionalConform/>
+      </feature>
+      <feature bit="6" code="STOR" name="LocalStorage" summary="Local Storage available">
+        <optionalConform/>
+      </feature>
+    </features>
+    <server init="false" tick="false">true</server>
+    <globalAttribute code="0xFFFD" side="either" value="1"/>
+    <attribute code="0x0000" side="server" define="MAX_CONCURRENT_VIDEO_ENCODERS" type="int8u" reportable="true" optional="true">
+      <description>MaxConcurrentVideoEncoders</description>
+      <access op="read" privilege="administer"/>
+    </attribute>
+    <attribute code="0x0001" side="server" define="MAX_ENCODED_PIXEL_RATE" type="int32u" reportable="true" optional="true">
+      <description>MaxEncodedPixelRate</description>
+      <access op="read" privilege="administer"/>
+    </attribute>
+    <attribute code="0x0002" side="server" define="VIDEO_SENSOR_PARAMS" type="VideoSensorParamsStruct" reportable="true" optional="true">
+      <description>VideoSensorParams</description>
+      <access op="read" privilege="administer"/>
+    </attribute>
+    <attribute code="0x0003" side="server" define="NIGHT_VISION_CAPABLE" type="boolean" reportable="true" optional="true">
+      <description>NightVisionCapable</description>
+      <access op="read" privilege="administer"/>
+    </attribute>
+    <attribute code="0x0004" side="server" define="MIN_VIEW_PORT_WIDTH" type="DimensionStruct" reportable="true" optional="true">
+      <description>MinViewPortWidth</description>
+      <access op="read" privilege="administer"/>
+    </attribute>
+    <attribute code="0x0005" side="server" define="MIN_VIEW_PORT_HEIGHT" type="DimensionStruct" reportable="true" optional="true">
+      <description>MinViewPortHeight</description>
+      <access op="read" privilege="administer"/>
+    </attribute>
+    <attribute code="0x0006" side="server" define="RATE_DISTORTION_TRADE_OFF_POINTS" type="array" entryType="RateDistortionTradeOffPointsStruct" reportable="true" optional="true">
+      <description>RateDistortionTradeOffPoints</description>
+      <access op="read" privilege="administer"/>
+    </attribute>
+    <attribute code="0x0007" side="server" define="MAX_PRE_ROLL_BUFFER_SIZE" type="int32u" reportable="true" optional="true">
+      <description>MaxPreRollBufferSize</description>
+      <access op="read" privilege="administer"/>
+    </attribute>
+    <attribute code="0x0008" side="server" define="MICROPHONE_CAPABILITIES" type="AudioCapabilitiesStruct" reportable="true" optional="true">
+      <description>MicrophoneCapabilities</description>
+      <access op="read" privilege="administer"/>
+    </attribute>
+    <attribute code="0x0009" side="server" define="SPEAKER_CAPABILITIES" type="AudioCapabilitiesStruct" reportable="true" optional="true">
+      <description>SpeakerCapabilities</description>
+      <access op="read" privilege="administer"/>
+    </attribute>
+    <attribute code="0x000A" side="server" define="TWO_WAY_TALK_SUPPORT" type="TwowayTalkSupportTypeEnum" reportable="true" min="0x00" max="0x02" optional="true">
+      <description>TwoWayTalkSupport</description>
+      <access op="read" privilege="administer"/>
+    </attribute>
+    <attribute code="0x000B" side="server" define="SUPPORTED_SNAPSHOT_PARAMS" type="array" entryType="SnapshotParamsStruct" reportable="true" optional="true">
+      <description>SupportedSnapshotParams</description>
+      <access op="read" privilege="administer"/>
+    </attribute>
+    <attribute code="0x000C" side="server" define="HDRCAPABLE" type="boolean" reportable="true" default="0" optional="true">
+      <description>HDRCapable</description>
+      <access op="read" privilege="administer"/>
+    </attribute>
+    <attribute code="0x000D" side="server" define="MAX_NETWORK_BANDWIDTH" type="int32u" reportable="true">
+      <description>MaxNetworkBandwidth</description>
+      <access op="read" privilege="administer"/>
+    </attribute>
+    <attribute code="0x000E" side="server" define="CURRENT_FRAME_RATE" type="int16u" reportable="true" optional="true">
+      <description>CurrentFrameRate</description>
+      <access op="read" privilege="administer"/>
+    </attribute>
+    <attribute code="0x000F" side="server" define="HDRMODE" type="boolean" writable="true" optional="true">
+      <description>HDRMode</description>
+      <access op="read" privilege="administer"/>
+      <access op="write" privilege="administer"/>
+    </attribute>
+    <attribute code="0x0010" side="server" define="CURRENT_VIDEO_CODECS" type="array" entryType="VideoCodecEnum" reportable="true" optional="true">
+      <description>CurrentVideoCodecs</description>
+      <access op="read" privilege="administer"/>
+    </attribute>
+    <attribute code="0x0011" side="server" define="CURRENT_SNAPSHOT_CONFIG" type="SnapshotParamsStruct" reportable="true" optional="true">
+      <description>CurrentSnapshotConfig</description>
+      <access op="read" privilege="administer"/>
+    </attribute>
+    <attribute code="0x0012" side="server" define="FABRICS_USING_CAMERA" type="array" entryType="fabric_idx" reportable="true">
+      <description>FabricsUsingCamera</description>
+      <access op="read" privilege="administer"/>
+    </attribute>
+    <attribute code="0x0013" side="server" define="ALLOCATED_VIDEO_STREAMS" type="array" entryType="VideoStreamStruct" reportable="true" optional="true">
+      <description>AllocatedVideoStreams</description>
+      <access op="read" privilege="administer"/>
+    </attribute>
+    <attribute code="0x0014" side="server" define="ALLOCATED_AUDIO_STREAMS" type="array" entryType="AudioStreamStruct" reportable="true" optional="true">
+      <description>AllocatedAudioStreams</description>
+      <access op="read" privilege="administer"/>
+    </attribute>
+    <attribute code="0x0015" side="server" define="ALLOCATED_SNAPSHOT_STREAMS" type="array" entryType="SnapshotStreamStruct" reportable="true" optional="true">
+      <description>AllocatedSnapshotStreams</description>
+      <access op="read" privilege="administer"/>
+    </attribute>
+    <attribute code="0x0016" side="server" define="RANKED_VIDEO_STREAM_PRIORITIES_LIST" type="array" entryType="StreamTypeEnum" reportable="true" writable="true" optional="true">
+      <description>RankedVideoStreamPrioritiesList</description>
+      <access op="read" privilege="administer"/>
+      <access op="write" privilege="administer"/>
+    </attribute>
+    <attribute code="0x0017" side="server" define="SOFT_RECORDING_PRIVACY_MODE_SETTING" type="boolean" writable="true" optional="true">
+      <description>SoftRecordingPrivacyModeSetting</description>
+      <access op="read" privilege="administer"/>
+      <access op="write" privilege="administer"/>
+    </attribute>
+    <attribute code="0x0018" side="server" define="SOFT_LIVESTREAM_PRIVACY_MODE_SETTING" type="boolean" writable="true" optional="true">
+      <description>SoftLivestreamPrivacyModeSetting</description>
+      <access op="read" privilege="administer"/>
+      <access op="write" privilege="administer"/>
+    </attribute>
+    <attribute code="0x0019" side="server" define="HARD_PRIVACY_MODE" type="boolean" reportable="true" optional="true">
+      <description>HardPrivacyMode</description>
+      <access op="read" privilege="administer"/>
+    </attribute>
+    <attribute code="0x001A" side="server" define="NIGHT_VISION" type="TriStateAuto" min="0x00" max="0x02" writable="true" optional="true">
+      <description>NightVision</description>
+      <access op="read" privilege="administer"/>
+      <access op="write" privilege="administer"/>
+    </attribute>
+    <attribute code="0x001B" side="server" define="NIGHT_VISION_ILLUM" type="TriStateAuto" min="0x00" max="0x02" writable="true" optional="true">
+      <description>NightVisionIllum</description>
+      <access op="read" privilege="administer"/>
+      <access op="write" privilege="administer"/>
+    </attribute>
+    <attribute code="0x001C" side="server" define="AWB" type="boolean" writable="true" optional="true">
+      <description>AWB</description>
+      <access op="read" privilege="administer"/>
+      <access op="write" privilege="administer"/>
+    </attribute>
+    <attribute code="0x001D" side="server" define="SHUTTER_SPEED" type="boolean" writable="true" optional="true">
+      <description>ShutterSpeed</description>
+      <access op="read" privilege="administer"/>
+      <access op="write" privilege="administer"/>
+    </attribute>
+    <attribute code="0x001E" side="server" define="ISO" type="boolean" writable="true" optional="true">
+      <description>ISO</description>
+      <access op="read" privilege="administer"/>
+      <access op="write" privilege="administer"/>
+    </attribute>
+    <attribute code="0x001F" side="server" define="VIEWPORT" type="ViewportStruct" optional="true">
+      <description>Viewport</description>
+      <access op="read" privilege="administer"/>
+    </attribute>
+    <attribute code="0x0020" side="server" define="SPKR_ON_OFF" type="boolean" writable="true" optional="true">
+      <description>SpkrOnOff</description>
+      <access op="read" privilege="administer"/>
+      <access op="write" privilege="administer"/>
+    </attribute>
+    <attribute code="0x0021" side="server" define="SPKR_VOLUME_LEVEL" type="int8u" max="254" writable="true" optional="true">
+      <description>SpkrVolumeLevel</description>
+      <access op="read" privilege="administer"/>
+      <access op="write" privilege="administer"/>
+    </attribute>
+    <attribute code="0x0022" side="server" define="SPKR_MAX_LEVEL" type="int8u" max="254" writable="true" optional="true">
+      <description>SpkrMaxLevel</description>
+      <access op="read" privilege="administer"/>
+      <access op="write" privilege="administer"/>
+    </attribute>
+    <attribute code="0x0023" side="server" define="SPKR_MIN_LEVEL" type="int8u" max="254" writable="true" optional="true">
+      <description>SpkrMinLevel</description>
+      <access op="read" privilege="administer"/>
+      <access op="write" privilege="administer"/>
+    </attribute>
+    <attribute code="0x0024" side="server" define="MIC_ON_OFF" type="boolean" writable="true" optional="true">
+      <description>MicOnOff</description>
+      <access op="read" privilege="administer"/>
+      <access op="write" privilege="administer"/>
+    </attribute>
+    <attribute code="0x0025" side="server" define="MIC_CURRENT_LEVEL" type="int8u" max="254" writable="true" optional="true">
+      <description>MicCurrentLevel</description>
+      <access op="read" privilege="administer"/>
+      <access op="write" privilege="administer"/>
+    </attribute>
+    <attribute code="0x0026" side="server" define="MIC_MAX_LEVEL" type="int8u" max="254" writable="true" optional="true">
+      <description>MicMaxLevel</description>
+      <access op="read" privilege="administer"/>
+      <access op="write" privilege="administer"/>
+    </attribute>
+    <attribute code="0x0027" side="server" define="MIC_MIN_LEVEL" type="int8u" max="254" writable="true" optional="true">
+      <description>MicMinLevel</description>
+      <access op="read" privilege="administer"/>
+      <access op="write" privilege="administer"/>
+    </attribute>
+    <attribute code="0x0028" side="server" define="MIC_AGC" type="boolean" writable="true" optional="true">
+      <description>MicAGC</description>
+      <access op="read" privilege="administer"/>
+      <access op="write" privilege="administer"/>
+    </attribute>
+    <attribute code="0x0029" side="server" define="IMAGE_ROTATION" type="int16u" max="359" optional="true">
+      <description>ImageRotation</description>
+      <access op="read" privilege="administer"/>
+    </attribute>
+    <attribute code="0x002A" side="server" define="IMAGE_FLIP_HORIZONTAL" type="boolean" optional="true">
+      <description>ImageFlipHorizontal</description>
+      <access op="read" privilege="administer"/>
+    </attribute>
+    <attribute code="0x002B" side="server" define="IMAGE_FLIP_VERTICAL" type="boolean" optional="true">
+      <description>ImageFlipVertical</description>
+      <access op="read" privilege="administer"/>
+    </attribute>
+    <attribute code="0x002C" side="server" define="LOCAL_VIDEO_RECORDING_ENABLED" type="boolean" writable="true" optional="true">
+      <description>LocalVideoRecordingEnabled</description>
+      <access op="read" privilege="administer"/>
+      <access op="write" privilege="administer"/>
+    </attribute>
+    <attribute code="0x002D" side="server" define="LOCAL_SNAPSHOT_RECORDING_ENABLED" type="boolean" writable="true" optional="true">
+      <description>LocalSnapshotRecordingEnabled</description>
+      <access op="read" privilege="administer"/>
+      <access op="write" privilege="administer"/>
+    </attribute>
+    <attribute code="0x002E" side="server" define="STATUS_LIGHT" type="boolean" writable="true" optional="true">
+      <description>StatusLight</description>
+      <access op="read" privilege="administer"/>
+      <access op="write" privilege="administer"/>
+    </attribute>
+    <attribute code="0x002F" side="server" define="STATUS_LIGHT_BRIGHTNESS" type="ThreeLevelAutoEnum" min="0x00" max="0x03" writable="true" optional="true">
+      <description>StatusLightBrightness</description>
+      <access op="read" privilege="administer"/>
+      <access op="write" privilege="administer"/>
+    </attribute>
+    <attribute code="0x0030" side="server" define="DEPTH_SENSOR_STATUS" type="TriStateAuto" min="0x00" max="0x02" writable="true" optional="true">
+      <description>DepthSensorStatus</description>
+      <access op="read" privilege="administer"/>
+      <access op="write" privilege="administer"/>
+    </attribute>
+    <attribute code="0x0031" side="server" define="WATERMARK_ENABLED" type="array" entryType="PerStreamStruct" writable="true" optional="true">
+      <description>WatermarkEnabled</description>
+      <access op="read" privilege="administer"/>
+      <access op="write" privilege="administer"/>
+    </attribute>
+    <attribute code="0x0032" side="server" define="OSDENABLED" type="array" entryType="PerStreamStruct" writable="true" optional="true">
+      <description>OSDEnabled</description>
+      <access op="read" privilege="administer"/>
+      <access op="write" privilege="administer"/>
+    </attribute>
+    <command code="0x00" source="client" name="AudioStreamAllocate" optional="true" response="AudioStreamAllocateResponse">
+      <description>This command SHALL allocate an audio stream on the camera and return an allocated audio stream identifier.</description>
+      <access op="invoke" privilege="administer"/>
+      <arg id="0" name="StreamType" type="StreamTypeEnum" min="0x00" max="0x03"/>
+      <arg id="1" name="AudioCodec" type="AudioCodecEnum" min="0x00" max="0x01"/>
+      <arg id="2" name="ChannelCount" type="int8u" default="1"/>
+      <arg id="3" name="SampleRate" type="int32u"/>
+      <arg id="4" name="BitRate" type="int32u"/>
+      <arg id="5" name="BitDepth" type="int8u"/>
+    </command>
+
+    <command code="0x01" source="server" name="AudioStreamAllocateResponse" optional="true" disableDefaultResponse="true">
+      <description>This command SHALL be sent by the camera in response to the AudioStreamAllocate command, carrying the newly allocated audio stream identifier.</description>
+      <arg id="0" name="AudioStreamID" type="AudioStreamID"/>
+    </command>
+
+    <command code="0x02" source="client" name="AudioStreamDeallocate" optional="true">
+      <description>This command SHALL deallocate an audio stream on the camera, corresponding to the given audio stream identifier.</description>
+      <access op="invoke" privilege="administer"/>
+      <arg id="0" name="AudioStreamID" type="AudioStreamID"/>
+    </command>
+
+    <command code="0x03" source="client" name="VideoStreamAllocate" optional="true" response="VideoStreamAllocateResponse">
+      <description>This command SHALL allocate a video stream on the camera and return an allocated video stream identifier.</description>
+      <access op="invoke" privilege="administer"/>
+      <arg id="1" name="StreamType" type="StreamTypeEnum" min="0x00" max="0x03"/>
+      <arg id="2" name="VideoCodec" type="VideoCodecEnum" min="0x00" max="0x03"/>
+      <arg id="3" name="MinFrameRate" type="int16u"/>
+      <arg id="4" name="MaxFrameRate" type="int16u"/>
+      <arg id="5" name="MinResolution" type="DimensionStruct"/>
+      <arg id="6" name="MaxResolution" type="DimensionStruct"/>
+      <arg id="7" name="MinBitRate" type="int32u"/>
+      <arg id="8" name="MaxBitRate" type="int32u"/>
+      <arg id="9" name="MinFragmentLen" type="int16u"/>
+      <arg id="10" name="MaxFragmentLen" type="int16u"/>
+    </command>
+
+    <command code="0x04" source="server" name="VideoStreamAllocateResponse" optional="true" disableDefaultResponse="true">
+      <description>This command SHALL be sent by the camera in response to the VideoStreamAllocate command, carrying the newly allocated video stream identifier.</description>
+      <arg id="0" name="VideoStreamID" type="VideoStreamID"/>
+    </command>
+
+    <command code="0x05" source="client" name="VideoStreamModify" optional="true">
+      <description>This command SHALL be used to modify the resolution of a stream specified by the VideoStreamID.</description>
+      <access op="invoke" privilege="administer"/>
+      <arg id="0" name="VideoStreamID" type="VideoStreamID"/>
+      <arg id="1" name="Resolution" type="DimensionStruct"/>
+    </command>
+
+    <command code="0x06" source="client" name="VideoStreamDeallocate" optional="true">
+      <description>This command SHALL deallocate a video stream on the camera, corresponding to the given video stream identifier.</description>
+      <access op="invoke" privilege="administer"/>
+      <arg id="0" name="VideoStreamID" type="VideoStreamID"/>
+    </command>
+
+    <command code="0x07" source="client" name="SnapshotStreamAllocate" optional="true" response="SnapshotStreamAllocateResponse">
+      <description>This command SHALL allocate a snapshot stream on the device and return an allocated snapshot stream identifier.</description>
+      <access op="invoke" privilege="administer"/>
+      <arg id="1" name="ImageCodec" type="ImageCodecEnum" min="0x00" max="0x00"/>
+      <arg id="2" name="FrameRate" type="int16u"/>
+      <arg id="3" name="BitRate" type="int32u"/>
+      <arg id="4" name="MinResolution" type="DimensionStruct"/>
+      <arg id="5" name="MaxResolution" type="DimensionStruct"/>
+      <arg id="6" name="Quality" type="int8u" min="1" max="100"/>
+    </command>
+
+    <command code="0x08" source="server" name="SnapshotStreamAllocateResponse" optional="true" disableDefaultResponse="true">
+      <description>This command SHALL be sent by the device in response to the SnapshotStreamAllocate command, carrying the newly allocated snapshot stream identifier.</description>
+      <arg id="0" name="SnapshotStreamID" type="SnapshotStreamID"/>
+    </command>
+
+    <command code="0x09" source="client" name="SnapshotStreamDeallocate" optional="true">
+      <description>This command SHALL deallocate an snapshot stream on the camera, corresponding to the given snapshot stream identifier.</description>
+      <access op="invoke" privilege="administer"/>
+      <arg id="0" name="SnapshotStreamID" type="SnapshotStreamID"/>
+    </command>
+
+    <command code="0x0A" source="client" name="SetStreamPriority" optional="false">
+      <description/>
+      <access op="invoke" privilege="administer"/>
+    </command>
+
+    <command code="0x0B" source="client" name="CaptureSnapshot" optional="true">
+      <description>This command SHALL return a Snapshot from the camera.</description>
+      <access op="invoke" privilege="administer"/>
+      <arg id="0" name="SnapshotStreamID" type="SnapshotStreamID"/>
+      <arg id="1" name="RequestedResolution" type="DimensionStruct"/>
+    </command>
+
+    <command code="0x0C" source="server" name="CaptureSnapshotResponse" optional="true" disableDefaultResponse="true">
+      <description>This command SHALL be sent by the device in response to the CaptureSnapshot command, carrying the requested snapshot.</description>
+      <arg id="0" name="Data" type="octet_string"/>
+      <arg id="1" name="ImageCodec" type="ImageCodecEnum" min="0x00" max="0x00"/>
+      <arg id="2" name="Resolution" type="DimensionStruct"/>
+    </command>
+
+    <command code="0x0D" source="client" name="SetViewport" optional="true">
+      <description>This command SHALL set the viewport in all video streams.</description>
+      <arg id="0" name="Viewport" type="ViewportStruct"/>
+    </command>
+
+    <command code="0x0E" source="client" name="SetImageRotation" optional="true">
+      <description>The data fields for this command SHALL be as follows: </description>
+      <arg id="0" name="Angle" type="int16u" default="0" min="0" max="359"/>
+    </command>
+
+    <command code="0x0F" source="client" name="SetImageFlipHorizontal" optional="true">
+      <description>The data fields for this command SHALL be as follows: </description>
+      <arg id="0" name="OnOff" type="boolean"/>
+    </command>
+
+    <command code="0x10" source="client" name="SetImageFlipVertical" optional="true">
+      <description>The data fields for this command SHALL be as follows: </description>
+      <arg id="0" name="OnOff" type="boolean"/>
+    </command>
+
+    <event code="0x0000" name="VideoStreamChanged" priority="info" side="server" optional="true">
+      <field id="0" name="VideoStreamID" type="VideoStreamID"/>
+      <field id="1" name="StreamType" type="StreamTypeEnum" optional="true" min="0x00" max="0x03"/>
+      <field id="2" name="VideoCodec" type="VideoCodecEnum" optional="true" min="0x00" max="0x03"/>
+      <field id="3" name="MinFrameRate" type="int16u" optional="true"/>
+      <field id="4" name="MaxFrameRate" type="int16u" optional="true"/>
+      <field id="5" name="MinResolution" type="DimensionStruct" optional="true"/>
+      <field id="6" name="MaxResolution" type="DimensionStruct" optional="true"/>
+      <field id="7" name="MinBitRate" type="int16u" optional="true"/>
+      <field id="8" name="MaxBitRate" type="int16u" optional="true"/>
+      <field id="9" name="MinFragmentLen" type="int16u" optional="true"/>
+      <field id="10" name="MaxFragmentLen" type="int16u" optional="true"/>
+      <description>This event SHALL be generated when there is a modification in the corresponding video stream.</description>
+    </event>
+
+    <event code="0x0001" name="AudioStreamChanged" priority="info" side="server" optional="true">
+      <field id="0" name="AudioStreamID" type="AudioStreamID"/>
+      <field id="1" name="StreamType" type="StreamTypeEnum" optional="true" min="0x00" max="0x03"/>
+      <field id="2" name="AudioCodec" type="AudioCodecEnum" optional="true" min="0x00" max="0x01"/>
+      <field id="3" name="ChannelCount" type="int8u" optional="true"/>
+      <field id="4" name="SampleRate" type="int32u" optional="true"/>
+      <field id="5" name="BitRate" type="int32u" optional="true"/>
+      <field id="6" name="BitDepth" type="int8u" optional="true"/>
+      <description>This event SHALL be generated when there is a modification in the corresponding audio stream.</description>
+    </event>
+
+    <event code="0x0002" name="SnapshotStreamChanged" priority="info" side="server" optional="true">
+      <field id="0" name="SnapshotStreamID" type="SnapshotStreamID"/>
+      <field id="1" name="ImageCodec" type="ImageCodecEnum" optional="true" min="0x00" max="0x00"/>
+      <field id="2" name="FrameRate" type="int16u" optional="true"/>
+      <field id="3" name="BitRate" type="int32u" optional="true"/>
+      <field id="4" name="MinResolution" type="DimensionStruct" optional="true"/>
+      <field id="5" name="MaxResolution" type="DimensionStruct" optional="true"/>
+      <field id="6" name="Quality" type="int8u" optional="true" min="1" max="100"/>
+      <description>This event SHALL be generated when there is a modification in the corresponding snapshot stream.</description>
+    </event>
+
+  </cluster>
+</configurator>
diff --git a/src/app/zap-templates/zcl/data-model/draft/chime-cluster.xml b/src/app/zap-templates/zcl/data-model/draft/chime-cluster.xml
new file mode 100644
index 00000000000000..7f89310a2531b3
--- /dev/null
+++ b/src/app/zap-templates/zcl/data-model/draft/chime-cluster.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<!--
+Copyright (c) 2024 Project CHIP Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<!--
+XML generated by Alchemy; DO NOT EDIT.
+Source: src/app_clusters/Chime.adoc
+Parameters: in-progress 
+Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
+-->
+<configurator xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../zcl.xsd">
+  <domain name="General"/>
+  <struct name="ChimeSoundStruct" apiMaturity="provisional">
+    <cluster code="0x0556"/>
+    <item fieldId="0" name="ChimeId" type="int8u"/>
+    <item fieldId="1" name="Name" type="char_string" length="48"/>
+  </struct>
+
+  <cluster>
+    <domain name="General"/>
+    <name>Chime</name>
+    <code>0x0556</code>
+    <define>CHIME_CLUSTER</define>
+    <description/>
+    <client init="false" tick="false">true</client>
+    <server init="false" tick="false">true</server>
+    <globalAttribute code="0xFFFD" side="either" value="1"/>
+    <attribute code="0x0000" side="server" define="INSTALLED_CHIME_SOUNDS" type="array" entryType="ChimeSoundStruct">InstalledChimeSounds</attribute>
+    <attribute code="0x0001" side="server" define="ACTIVE_CHIME_SOUND_ID" type="int8u" min="0" max="255" default="0" writable="true">ActiveChimeSoundId</attribute>
+    <attribute code="0x0002" side="server" define="ENABLED" type="boolean" default="1" writable="true">Enabled</attribute>
+    <command code="0x00" source="client" name="PlayChimeSound" optional="false">
+      <description/>
+    </command>
+
+  </cluster>
+</configurator>
diff --git a/src/app/zap-templates/zcl/data-model/draft/push-av-stream-transport-cluster.xml b/src/app/zap-templates/zcl/data-model/draft/push-av-stream-transport-cluster.xml
new file mode 100644
index 00000000000000..3370ef124f30ad
--- /dev/null
+++ b/src/app/zap-templates/zcl/data-model/draft/push-av-stream-transport-cluster.xml
@@ -0,0 +1,216 @@
+<?xml version="1.0"?>
+<!--
+Copyright (c) 2024 Project CHIP Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<!--
+XML generated by Alchemy; DO NOT EDIT.
+Source: src/app_clusters/PushAVStreamTransport.adoc
+Parameters: in-progress 
+Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
+-->
+<configurator xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../zcl.xsd">
+  <domain name="General"/>
+  <bitmap name="PushAVStreamTransportSupportedContainerFormatsBitmap" type="bitmap8">
+    <cluster code="0x0555"/>
+    <field name="CMAF" mask="0x01"/>
+  </bitmap>
+
+  <bitmap name="PushAVStreamTransportSupportedIngestMethodsBitmap" type="bitmap8">
+    <cluster code="0x0555"/>
+    <field name="CMAFIngest" mask="0x01"/>
+  </bitmap>
+
+  <enum name="PushAVStreamTransportContainerFormatEnum" type="enum8">
+    <cluster code="0x0555"/>
+    <item name="CMAF" value="0x00"/>
+  </enum>
+
+  <enum name="PushAVStreamTransportIngestMethodEnum" type="enum8">
+    <cluster code="0x0555"/>
+    <item name="CMAFIngest" value="0x00"/>
+  </enum>
+
+  <enum name="PushAVStreamTransportStatusEnum" type="enum8">
+    <cluster code="0x0555"/>
+    <item name="Active" value="0x00"/>
+    <item name="Inactive" value="0x01"/>
+  </enum>
+
+  <enum name="PushAVStreamTransportStreamMultiplexingEnum" type="enum8">
+    <cluster code="0x0555"/>
+    <item name="Interleaved" value="0x00"/>
+  </enum>
+
+  <enum name="PushAVStreamTransportTriggerActivationReasonEnum" type="enum8">
+    <cluster code="0x0555"/>
+    <item name="UserInitiated" value="0x00"/>
+    <item name="Automation" value="0x01"/>
+    <item name="Emergency" value="0x02"/>
+  </enum>
+
+  <enum name="PushAVStreamTransportTriggerTypeEnum" type="enum8">
+    <cluster code="0x0555"/>
+    <item name="Command" value="0x00"/>
+    <item name="Motion" value="0x01"/>
+    <item name="Continuous" value="0x02"/>
+  </enum>
+
+  <enum name="StatusCodeEnum" type="enum8">
+    <cluster code="0x0555"/>
+    <item name="ALLOCATION_NOT_PERMITTED" value="0x02"/>
+    <item name="INVALID_PARAMETERS" value="0x03"/>
+    <item name="INVALID_URL" value="0x04"/>
+    <item name="INVALID_TRIGGER_OPTIONS" value="0x05"/>
+    <item name="UNSUPPORTED_CONTAINER_FORMAT" value="0x06"/>
+    <item name="UNSUPPORTED_INGEST_METHOD" value="0x07"/>
+    <item name="PAVST_NOT_IN_USE" value="0x08"/>
+    <item name="INVALID_TRIGGER_FORMAT" value="0x09"/>
+    <item name="INVALID_TRANSPORT_STATUS" value="0x10"/>
+  </enum>
+
+  <struct name="PushAVStreamConfigurationStruct" apiMaturity="provisional">
+    <cluster code="0x0555"/>
+    <item fieldId="0" name="ConnectionID" type="PushTransportConnectionID"/>
+    <item fieldId="1" name="StreamTransportStatus" type="PushAVStreamTransportStatusEnum" min="0x00" max="0x01"/>
+    <item fieldId="2" name="StreamTransportOptions" type="PushAVStreamTransportOptionsStruct"/>
+  </struct>
+
+  <struct name="PushAVStreamTransportCMAFContainerOptionsStruct" apiMaturity="provisional">
+    <cluster code="0x0555"/>
+    <item fieldId="0" name="ChunkDuration" type="int16u" default="4"/>
+    <item fieldId="1" name="CENCKey" type="octet_string" isNullable="true" optional="true"/>
+  </struct>
+
+  <struct name="PushAVStreamTransportContainerOptionsStruct" apiMaturity="provisional">
+    <cluster code="0x0555"/>
+    <item fieldId="0" name="ContainerType" type="PushAVStreamTransportContainerFormatEnum" min="0x00" max="0x00"/>
+    <item fieldId="1" name="CMAFContainerOptions" type="PushAVStreamTransportCMAFContainerOptionsStruct" isNullable="true" optional="true"/>
+  </struct>
+
+  <struct name="PushAVStreamTransportMetadataOptionsStruct" apiMaturity="provisional">
+    <cluster code="0x0555"/>
+    <item fieldId="0" name="Multiplexing" type="PushAVStreamTransportStreamMultiplexingEnum" min="0x00" max="0x00"/>
+    <item fieldId="1" name="IncludeMotionZones" type="boolean"/>
+    <item fieldId="2" name="EnableMetadataPrivacySensitive" type="boolean"/>
+  </struct>
+
+  <struct name="PushAVStreamTransportMotionTriggerTimeControlStruct" apiMaturity="provisional">
+    <cluster code="0x0555"/>
+    <item fieldId="0" name="InitialDuration" type="int16u" default="10" min="1"/>
+    <item fieldId="1" name="AugmentationDuration" type="int16u" default="5"/>
+    <item fieldId="2" name="MaxDuration" type="int32u" default="30" min="1"/>
+    <item fieldId="3" name="BlindDuration" type="int16u" default="30"/>
+  </struct>
+
+  <struct name="PushAVStreamTransportOptionsStruct" apiMaturity="provisional">
+    <cluster code="0x0555"/>
+    <item fieldId="0" name="StreamType" type="StreamTypeEnum" min="0x00" max="0x03"/>
+    <item fieldId="1" name="VideoStreamID" type="VideoStreamID" isNullable="true" optional="true"/>
+    <item fieldId="2" name="AudioStreamID" type="AudioStreamID" isNullable="true" optional="true"/>
+    <item fieldId="3" name="TLSEndpointID" type="TLSEndpointID"/>
+    <item fieldId="4" name="URL" type="long_char_string" length="256"/>
+    <item fieldId="5" name="TriggerOptions" type="PushAVStreamTransportTriggerOptionsStruct"/>
+    <item fieldId="6" name="ContainerFormat" type="PushAVStreamTransportContainerFormatEnum" min="0x00" max="0x00"/>
+    <item fieldId="7" name="IngestMethod" type="PushAVStreamTransportIngestMethodEnum" min="0x00" max="0x00"/>
+    <item fieldId="8" name="ContainerOptions" type="PushAVStreamTransportContainerOptionsStruct"/>
+    <item fieldId="9" name="MetadataOptions" type="PushAVStreamTransportMetadataOptionsStruct" isNullable="true" optional="true"/>
+    <item fieldId="10" name="ExpiryTime" type="int32u" isNullable="true" optional="true"/>
+  </struct>
+
+  <struct name="PushAVStreamTransportTriggerOptionsStruct" apiMaturity="provisional">
+    <cluster code="0x0555"/>
+    <item fieldId="0" name="TriggerType" type="PushAVStreamTransportTriggerTypeEnum" min="0x00" max="0x02"/>
+    <item fieldId="1" name="MotionZones" array="true" type="ZoneID" isNullable="true" optional="true"/>
+    <item fieldId="2" name="MotionSensitivity" type="int8u" isNullable="true" optional="true" default="5" min="1" max="10"/>
+    <item fieldId="3" name="MotionTimeControl" type="PushAVStreamTransportMotionTriggerTimeControlStruct" isNullable="true" optional="true"/>
+    <item fieldId="4" name="ActivationReason" type="PushAVStreamTransportTriggerActivationReasonEnum" isNullable="true" optional="true" min="0x00" max="0x02"/>
+  </struct>
+
+  <cluster>
+    <domain name="General"/>
+    <name>Push AV Stream Transport</name>
+    <code>0x0555</code>
+    <define>PUSH_AV_STREAM_TRANSPORT_CLUSTER</define>
+    <description/>
+    <client init="false" tick="false">true</client>
+    <server init="false" tick="false">true</server>
+    <globalAttribute code="0xFFFD" side="either" value="1"/>
+    <attribute code="0x0000" side="server" define="SUPPORTED_CONTAINER_FORMATS" type="PushAVStreamTransportSupportedContainerFormatsBitmap" min="0x00" max="0x01">SupportedContainerFormats</attribute>
+    <attribute code="0x0001" side="server" define="SUPPORTED_INGEST_METHODS" type="PushAVStreamTransportSupportedIngestMethodsBitmap" min="0x00" max="0x01">SupportedIngestMethods</attribute>
+    <attribute code="0x0002" side="server" define="CURRENT_CONNECTIONS" type="array" entryType="PushTransportConnectionID" default="0">CurrentConnections</attribute>
+    <command code="0x00" source="client" name="AllocatePushTransport" optional="false" response="AllocatePushTransportResponse">
+      <description>This command SHALL allocate a transport and return a PushTransportConnectionID.</description>
+      <access op="invoke" privilege="administer"/>
+      <arg id="0" name="StreamTransportOptions" type="PushAVStreamTransportOptionsStruct"/>
+    </command>
+
+    <command code="0x01" source="server" name="AllocatePushTransportResponse" optional="false" disableDefaultResponse="true">
+      <description>This command SHALL be generated in response to an AllocatePushTransport command.</description>
+      <arg id="0" name="ConnectionID" type="PushTransportConnectionID"/>
+      <arg id="1" name="StreamTransportOptions" type="PushAVStreamTransportOptionsStruct"/>
+      <arg id="2" name="TransportStatus" type="PushAVStreamTransportStatusEnum" min="0x00" max="0x01"/>
+    </command>
+
+    <command code="0x02" source="client" name="DeallocatePushTransport" optional="false">
+      <description>This command SHALL be generated to request the Node deallocates the specified transport.</description>
+      <access op="invoke" privilege="administer"/>
+      <arg id="0" name="ConnectionID" type="PushTransportConnectionID"/>
+    </command>
+
+    <command code="0x03" source="client" name="ModifyPushTransport" optional="false">
+      <description>This command is used to request the Node modifies the configuration of the specified push transport.</description>
+      <access op="invoke" privilege="administer"/>
+      <arg id="0" name="ConnectionID" type="PushTransportConnectionID"/>
+      <arg id="1" name="StreamTransportOptions" type="PushAVStreamTransportOptionsStruct"/>
+    </command>
+
+    <command code="0x04" source="client" name="SetTransportStatus" optional="false">
+      <description>This command SHALL be generated to request the Node modifies the Transport Status of the transport.</description>
+      <access op="invoke" privilege="administer"/>
+      <arg id="0" name="ConnectionID" type="PushTransportConnectionID" isNullable="true"/>
+      <arg id="1" name="StreamTransportStatus" type="PushAVStreamTransportStatusEnum" min="0x00" max="0x01"/>
+    </command>
+
+    <command code="0x05" source="client" name="ManuallyTriggerTransport" optional="false">
+      <description>This command SHALL be generated to request the Node to manually start the specified push transport.</description>
+      <access op="invoke" privilege="administer"/>
+      <arg id="0" name="ConnectionID" type="PushTransportConnectionID"/>
+      <arg id="1" name="ActivationReason" type="PushAVStreamTransportTriggerActivationReasonEnum" isNullable="true" min="0x00" max="0x02"/>
+      <arg id="2" name="TimeControl" type="PushAVStreamTransportMotionTriggerTimeControlStruct" optional="true" isNullable="true"/>
+    </command>
+
+    <command code="0x06" source="client" name="FindStreamConfiguration" optional="false" response="FindStreamConfigurationResponse">
+      <description>This command SHALL return the Stream Options Configuration for the specified push transport.</description>
+      <access op="invoke" privilege="administer"/>
+      <arg id="0" name="ConnectionID" type="PushTransportConnectionID" optional="true" isNullable="true"/>
+    </command>
+
+    <command code="0x07" source="server" name="FindStreamConfigurationResponse" optional="false" disableDefaultResponse="true">
+      <description>This command SHALL be generated in response to a FindStreamConfiguration command.</description>
+      <arg id="0" name="StreamConfigurations" array="true" type="PushAVStreamConfigurationStruct"/>
+    </command>
+
+    <event code="0x0000" name="PushTransportBegin" priority="info" side="server">
+      <description/>
+    </event>
+
+    <event code="0x0001" name="PushTransportEnd" priority="info" side="server">
+      <field id="0" name="ConnectionID" type="PushTransportConnectionID"/>
+      <field id="1" name="TriggerDetails" type="PushAVStreamTransportTriggerOptionsStruct"/>
+      <description>This event SHALL indicate a push transport transmission has ended.</description>
+    </event>
+
+  </cluster>
+</configurator>
diff --git a/src/app/zap-templates/zcl/data-model/draft/web-rtc-provider-cluster.xml b/src/app/zap-templates/zcl/data-model/draft/web-rtc-provider-cluster.xml
new file mode 100644
index 00000000000000..a677b5cf45898c
--- /dev/null
+++ b/src/app/zap-templates/zcl/data-model/draft/web-rtc-provider-cluster.xml
@@ -0,0 +1,135 @@
+<?xml version="1.0"?>
+<!--
+Copyright (c) 2024 Project CHIP Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<!--
+XML generated by Alchemy; DO NOT EDIT.
+Source: src/app_clusters/WebRTC_Provider.adoc
+Parameters: in-progress 
+Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
+-->
+<configurator xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../zcl.xsd">
+  <domain name="General"/>
+  <bitmap name="WebRTCMetadataOptions" type="bitmap8">
+    <cluster code="0x0553"/>
+    <cluster code="0x0554"/>
+    <field name="DataTLV" mask="0x01"/>
+  </bitmap>
+
+  <enum name="WebRTCEndReasonEnum" type="enum8">
+    <cluster code="0x0553"/>
+    <cluster code="0x0554"/>
+    <item name="ICE_FAILED" value="0x01"/>
+    <item name="ICE_TIMEOUT" value="0x02"/>
+    <item name="USER_HANGUP" value="0x03"/>
+    <item name="USER_BUSY" value="0x04"/>
+    <item name="REPLACED" value="0x05"/>
+    <item name="NO_USER_MEDIA" value="0x06"/>
+    <item name="INVITE_TIMEOUT" value="0x07"/>
+    <item name="ANSWERED_ELSEWHERE" value="0x08"/>
+    <item name="OUT_OF_RESOURCES" value="0x09"/>
+    <item name="MEDIA_TIMEOUT" value="0x0A"/>
+    <item name="LOW_POWER." value="0x0B"/>
+    <item name="UNKNOWN_ERROR" value="0x0C"/>
+  </enum>
+
+  <struct name="ICEServerStruct" apiMaturity="provisional">
+    <cluster code="0x0553"/>
+    <cluster code="0x0554"/>
+    <item fieldId="1" name="urls" array="true" type="char_string"/>
+    <item fieldId="2" name="username" type="char_string" optional="true"/>
+    <item fieldId="3" name="credential" type="char_string" optional="true"/>
+    <item fieldId="4" name="CAID" type="int16u" optional="true"/>
+  </struct>
+
+  <struct name="WebRTCSessionStruct" apiMaturity="provisional">
+    <cluster code="0x0553"/>
+    <cluster code="0x0554"/>
+    <item fieldId="1" name="ID" type="WebRTCSessionID"/>
+    <item fieldId="2" name="PeerNodeId" type="node_id"/>
+    <item fieldId="3" name="PeerFabricIndex" type="fabric_idx"/>
+    <item fieldId="4" name="StreamType" type="StreamTypeEnum" min="0x00" max="0x03"/>
+    <item fieldId="5" name="VideoStreamID" type="VideoStreamID" isNullable="true"/>
+    <item fieldId="6" name="AudioStreamID" type="AudioStreamID" isNullable="true"/>
+    <item fieldId="7" name="MetadataOptions" type="WebRTCMetadataOptions" default="0x00" min="0x00" max="0x01"/>
+  </struct>
+
+  <cluster>
+    <domain name="General"/>
+    <name>WebRTC Transport Provider</name>
+    <code>0x0553</code>
+    <define>WEB_RTC_TRANSPORT_PROVIDER_CLUSTER</define>
+    <description>The following process SHALL be followed when the server receives this command:</description>
+    <client init="false" tick="false">true</client>
+    <server init="false" tick="false">true</server>
+    <globalAttribute code="0xFFFD" side="either" value="1"/>
+    <attribute code="0x0000" side="server" define="CURRENT_SESSIONS" type="array" entryType="WebRTCSessionStruct" default="0">CurrentSessions</attribute>
+    <command code="0x01" source="client" name="WebRTCSolicitOffer" optional="false" response="WebRTCSolicitOfferResponse">
+      <description>Requests that the Provider initiates a new session with the Offer / Answer flow in a way that allows for options to be passed and work with devices needing the standby flow.</description>
+      <arg id="1" name="StreamType" type="StreamTypeEnum" min="0x00" max="0x03"/>
+      <arg id="2" name="VideoStreamID" type="VideoStreamID" optional="true" isNullable="true"/>
+      <arg id="3" name="AudioStreamID" type="AudioStreamID" optional="true" isNullable="true"/>
+      <arg id="4" name="ICEServers" array="true" type="ICEServerStruct" optional="true"/>
+      <arg id="5" name="ICETransportPolicy" type="char_string" optional="true"/>
+      <arg id="6" name="MetadataOptions" type="WebRTCMetadataOptions" optional="true" min="0x00" max="0x01"/>
+    </command>
+
+    <command code="0x02" source="server" name="WebRTCSolicitOfferResponse" optional="false" disableDefaultResponse="true">
+      <description>This command SHALL be generated in response to a WebRTCSolicitOffer command.</description>
+      <arg id="1" name="WebRTCSessionID" type="WebRTCSessionID"/>
+      <arg id="2" name="DeferredOffer" type="boolean"/>
+      <arg id="3" name="VideoStreamID" type="VideoStreamID" optional="true" isNullable="true"/>
+      <arg id="4" name="AudioStreamID" type="AudioStreamID" optional="true" isNullable="true"/>
+    </command>
+
+    <command code="0x03" source="client" name="WebRTCProvideOffer" optional="false" response="WebRTCProvideOfferResponse">
+      <description>This command allows an SDP Offer to be set and start a new session.</description>
+      <arg id="1" name="WebRTCSessionID" type="WebRTCSessionID" isNullable="true"/>
+      <arg id="2" name="SDP" type="char_string"/>
+      <arg id="3" name="StreamType" type="StreamTypeEnum" min="0x00" max="0x03"/>
+      <arg id="4" name="VideoStreamID" type="VideoStreamID" optional="true" isNullable="true"/>
+      <arg id="5" name="AudioStreamID" type="AudioStreamID" optional="true" isNullable="true"/>
+      <arg id="6" name="ICEServers" array="true" type="ICEServerStruct" optional="true"/>
+      <arg id="7" name="ICETransportPolicy" type="char_string" optional="true"/>
+      <arg id="8" name="MetadataOptions" type="WebRTCMetadataOptions" optional="true" min="0x00" max="0x01"/>
+    </command>
+
+    <command code="0x04" source="server" name="WebRTCProvideOfferResponse" optional="false" disableDefaultResponse="true">
+      <description>This command contains information about the stream created as a response to the requestor&apos;s offer.</description>
+      <arg id="1" name="WebRTCSessionID" type="WebRTCSessionID"/>
+      <arg id="2" name="VideoStreamID" type="VideoStreamID"/>
+      <arg id="3" name="AudioStreamID" type="AudioStreamID"/>
+    </command>
+
+    <command code="0x05" source="client" name="WebRTCProvideAnswer" optional="false">
+      <description>This command will be initiated from a local Node as a response to an offer that was previously provided by the remote peer.</description>
+      <arg id="1" name="WebRTCSessionID" type="WebRTCSessionID"/>
+      <arg id="2" name="SDP" type="char_string"/>
+    </command>
+
+    <command code="0x06" source="client" name="WebRTCProvideICECandidate" optional="false">
+      <description>This command allows for https://www.rfc-editor.org/rfc/rfc8839#section-4.2.1.2 nominated after the initial Offer / Answer exchange to be added to a session during the gathering phase.</description>
+      <arg id="1" name="WebRTCSessionID" type="WebRTCSessionID"/>
+      <arg id="2" name="ICECandidate" type="char_string"/>
+    </command>
+
+    <command code="0x07" source="client" name="WebRTCEndSession" optional="false">
+      <description>This command instructs the stream provider to end the WebRTC session.</description>
+      <arg id="1" name="WebRTCSessionID" type="WebRTCSessionID"/>
+      <arg id="2" name="Reason" type="WebRTCEndReasonEnum" min="0x00" max="0x0C"/>
+    </command>
+
+  </cluster>
+</configurator>
diff --git a/src/app/zap-templates/zcl/data-model/draft/web-rtc-requestor-cluster.xml b/src/app/zap-templates/zcl/data-model/draft/web-rtc-requestor-cluster.xml
new file mode 100644
index 00000000000000..a3c24bf4cb7db7
--- /dev/null
+++ b/src/app/zap-templates/zcl/data-model/draft/web-rtc-requestor-cluster.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0"?>
+<!--
+Copyright (c) 2024 Project CHIP Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<!--
+XML generated by Alchemy; DO NOT EDIT.
+Source: src/app_clusters/WebRTC_Requestor.adoc
+Parameters: in-progress 
+Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
+-->
+<configurator xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../zcl.xsd">
+  <domain name="General"/>
+  <cluster>
+    <domain name="General"/>
+    <name>WebRTC Transport Requestor</name>
+    <code>0x0554</code>
+    <define>WEB_RTC_TRANSPORT_REQUESTOR_CLUSTER</define>
+    <description>The process below SHALL be followed by the server when receiving this command:</description>
+    <client init="false" tick="false">true</client>
+    <server init="false" tick="false">true</server>
+    <globalAttribute code="0xFFFD" side="either" value="1"/>
+    <attribute code="0x0000" side="server" define="CURRENT_SESSIONS" type="array" entryType="WebRTCSessionStruct" default="0">CurrentSessions</attribute>
+    <command code="0x01" source="client" name="WebRTCOffer" optional="false">
+      <description>This command provides the stream requestor with WebRTC session details.</description>
+      <arg id="1" name="WebRTCSessionID" type="WebRTCSessionID"/>
+      <arg id="2" name="SDP" type="char_string"/>
+      <arg id="3" name="ICEServers" array="true" type="ICEServerStruct" optional="true"/>
+      <arg id="4" name="ICETransportPolicy" type="char_string" optional="true"/>
+    </command>
+
+    <command code="0x02" source="client" name="WebRTCAnswer" optional="false">
+      <description>This command provides the stream requestor with the WebRTC session details (i.e.</description>
+      <arg id="1" name="WebRTCSessionID" type="WebRTCSessionID"/>
+      <arg id="2" name="SDP" type="char_string"/>
+    </command>
+
+    <command code="0x03" source="client" name="WebRTCICECandidate" optional="false">
+      <description>This command provides an ICE candidate to the stream requestor in a WebRTC session.</description>
+      <arg id="1" name="WebRTCSessionID" type="WebRTCSessionID"/>
+      <arg id="2" name="ICECandidate" type="char_string"/>
+    </command>
+
+    <command code="0x04" source="client" name="WebRTCEnd" optional="false">
+      <description>This command notifies the stream requestor that the provider has ended the WebRTC session.</description>
+      <arg id="1" name="WebRTCSessionID" type="WebRTCSessionID"/>
+      <arg id="2" name="Reason" type="WebRTCEndReasonEnum" min="0x00" max="0x0C"/>
+    </command>
+
+  </cluster>
+</configurator>
diff --git a/src/app/zap-templates/zcl/zcl-with-test-extensions.json b/src/app/zap-templates/zcl/zcl-with-test-extensions.json
index 46f78a177874f6..bccd77c0c1f750 100644
--- a/src/app/zap-templates/zcl/zcl-with-test-extensions.json
+++ b/src/app/zap-templates/zcl/zcl-with-test-extensions.json
@@ -29,6 +29,9 @@
         "boolean-state-configuration-cluster.xml",
         "actions-cluster.xml",
         "bridged-device-basic-information.xml",
+        "camera-av-settings-user-level-management-cluster.xml",
+        "camera-av-stream-management-cluster.xml",
+        "chime-cluster.xml",
         "chip-ota.xml",
         "channel-cluster.xml",
         "clusters-extensions.xml",
@@ -85,6 +88,7 @@
         "mode-base-cluster.xml",
         "mode-select-cluster.xml",
         "mode-select-extensions.xml",
+        "push-av-stream-transport-cluster.xml",
         "semantic-tag-namespace-enums.xml",
         "network-commissioning-cluster.xml",
         "occupancy-sensing-cluster.xml",
@@ -135,6 +139,8 @@
         "washer-controls-cluster.xml",
         "water-heater-management-cluster.xml",
         "water-heater-mode-cluster.xml",
+        "web-rtc-provider-cluster.xml",
+        "web-rtc-requestor-cluster.xml",
         "wifi-network-diagnostics-cluster.xml",
         "wifi-network-management-cluster.xml",
         "window-covering.xml",
@@ -147,9 +153,15 @@
     "manufacturersXml": "../../../../src/app/zap-templates/zcl/data-model/manufacturers.xml",
     "options": {
         "text": {
-            "defaultResponsePolicy": ["Always", "Conditional", "Never"]
+            "defaultResponsePolicy": [
+                "Always",
+                "Conditional",
+                "Never"
+            ]
         },
-        "bool": ["commandDiscovery"]
+        "bool": [
+            "commandDiscovery"
+        ]
     },
     "defaults": {
         "text": {
@@ -195,8 +207,13 @@
             "SpecificationVersion",
             "MaxPathsPerInvoke"
         ],
-        "Bridged Device Basic Information": ["ProductAppearance"],
-        "Descriptor": ["ClusterRevision", "FeatureMap"],
+        "Bridged Device Basic Information": [
+            "ProductAppearance"
+        ],
+        "Descriptor": [
+            "ClusterRevision",
+            "FeatureMap"
+        ],
         "Device Energy Management": [
             "ESAType",
             "ESACanGenerate",
@@ -248,7 +265,11 @@
             "SessionEnergyDischarged",
             "FeatureMap"
         ],
-        "Energy EVSE Mode": ["SupportedModes", "CurrentMode", "FeatureMap"],
+        "Energy EVSE Mode": [
+            "SupportedModes",
+            "CurrentMode",
+            "FeatureMap"
+        ],
         "Ethernet Network Diagnostics": [
             "PHYRate",
             "FullDuplex",
@@ -293,7 +314,11 @@
             "ClientsSupportedPerFabric",
             "MaximumCheckInBackOff"
         ],
-        "Occupancy Sensing": ["HoldTimeLimits", "HoldTime", "FeatureMap"],
+        "Occupancy Sensing": [
+            "HoldTimeLimits",
+            "HoldTime",
+            "FeatureMap"
+        ],
         "Operational Credentials": [
             "SupportedFabrics",
             "CommissionedFabrics",
@@ -400,14 +425,21 @@
             "CurrentMaxRate",
             "OverrunCount"
         ],
-        "Channel": ["Lineup", "CurrentChannel"],
+        "Channel": [
+            "Lineup",
+            "CurrentChannel"
+        ],
         "Media Playback": [
             "SampledPosition",
             "ActiveAudioTrack",
             "ActiveTextTrack"
         ],
-        "Application Launcher": ["CurrentApp"],
-        "Application Basic": ["Application"],
+        "Application Launcher": [
+            "CurrentApp"
+        ],
+        "Application Basic": [
+            "Application"
+        ],
         "Time Synchronization": [
             "TrustedTimeSource",
             "DefaultNTP",
@@ -419,7 +451,9 @@
             "TimeZoneListMaxSize",
             "DSTOffsetListMaxSize"
         ],
-        "Temperature Control": ["SupportedTemperatureLevels"],
+        "Temperature Control": [
+            "SupportedTemperatureLevels"
+        ],
         "Dishwasher Mode": [
             "SupportedModes",
             "CurrentMode",
@@ -427,7 +461,11 @@
             "OnMode",
             "FeatureMap"
         ],
-        "Microwave Oven Mode": ["SupportedModes", "CurrentMode", "FeatureMap"],
+        "Microwave Oven Mode": [
+            "SupportedModes",
+            "CurrentMode",
+            "FeatureMap"
+        ],
         "Microwave Oven Control": [
             "CookTime",
             "MaxCookTime",
@@ -454,8 +492,16 @@
             "OnMode",
             "FeatureMap"
         ],
-        "RVC Clean Mode": ["SupportedModes", "CurrentMode", "FeatureMap"],
-        "RVC Run Mode": ["SupportedModes", "CurrentMode", "FeatureMap"],
+        "RVC Clean Mode": [
+            "SupportedModes",
+            "CurrentMode",
+            "FeatureMap"
+        ],
+        "RVC Run Mode": [
+            "SupportedModes",
+            "CurrentMode",
+            "FeatureMap"
+        ],
         "Operational State": [
             "OperationalState",
             "OperationalError",
@@ -632,7 +678,10 @@
             "LevelValue",
             "FeatureMap"
         ],
-        "Air Quality": ["AirQuality", "FeatureMap"],
+        "Air Quality": [
+            "AirQuality",
+            "FeatureMap"
+        ],
         "Electrical Energy Measurement": [
             "Accuracy",
             "CumulativeEnergyImported",
@@ -664,9 +713,15 @@
             "NeutralCurrent",
             "FeatureMap"
         ],
-        "Power Topology": ["FeatureMap"],
-        "Valve Configuration and Control": ["RemainingDuration"],
-        "Boolean State Configuration": ["CurrentSensitivityLevel"],
+        "Power Topology": [
+            "FeatureMap"
+        ],
+        "Valve Configuration and Control": [
+            "RemainingDuration"
+        ],
+        "Boolean State Configuration": [
+            "CurrentSensitivityLevel"
+        ],
         "Water Heater Management": [
             "HeaterTypes",
             "HeatDemand",
@@ -677,17 +732,35 @@
             "FeatureMap",
             "ClusterRevision"
         ],
-        "Water Heater Mode": ["SupportedModes", "CurrentMode", "FeatureMap"],
-        "Wi-Fi Network Management": ["SSID", "PassphraseSurrogate"],
+        "Water Heater Mode": [
+            "SupportedModes",
+            "CurrentMode",
+            "FeatureMap"
+        ],
+        "Wi-Fi Network Management": [
+            "SSID",
+            "PassphraseSurrogate"
+        ],
         "Thread Network Directory": [
             "PreferredExtendedPanID",
             "ThreadNetworks",
             "ThreadNetworkTableSize"
         ],
-        "Service Area": ["CurrentArea", "EstimatedEndTime", "FeatureMap"]
+        "Service Area": [
+            "CurrentArea",
+            "EstimatedEndTime",
+            "FeatureMap"
+        ]
     },
     "defaultReportingPolicy": "mandatory",
-    "ZCLDataTypes": ["ARRAY", "BITMAP", "ENUM", "NUMBER", "STRING", "STRUCT"],
+    "ZCLDataTypes": [
+        "ARRAY",
+        "BITMAP",
+        "ENUM",
+        "NUMBER",
+        "STRING",
+        "STRUCT"
+    ],
     "fabricHandling": {
         "automaticallyCreateFields": true,
         "indexFieldId": 254,
@@ -697,4 +770,4 @@
     "uiOptions": {
         "showProfileId": false
     }
-}
+}
\ No newline at end of file
diff --git a/src/app/zap-templates/zcl/zcl.json b/src/app/zap-templates/zcl/zcl.json
index de81dc8ba31c99..0e84ef8cb41dc6 100644
--- a/src/app/zap-templates/zcl/zcl.json
+++ b/src/app/zap-templates/zcl/zcl.json
@@ -28,6 +28,9 @@
         "boolean-state-configuration-cluster.xml",
         "actions-cluster.xml",
         "bridged-device-basic-information.xml",
+        "camera-av-settings-user-level-management-cluster.xml",
+        "camera-av-stream-management-cluster.xml",
+        "chime-cluster.xml",
         "chip-ota.xml",
         "channel-cluster.xml",
         "clusters-extensions.xml",
@@ -82,6 +85,7 @@
         "messages-cluster.xml",
         "mode-base-cluster.xml",
         "mode-select-cluster.xml",
+        "push-av-stream-transport-cluster.xml",
         "semantic-tag-namespace-enums.xml",
         "network-commissioning-cluster.xml",
         "occupancy-sensing-cluster.xml",
@@ -133,6 +137,8 @@
         "washer-controls-cluster.xml",
         "water-heater-management-cluster.xml",
         "water-heater-mode-cluster.xml",
+        "web-rtc-provider-cluster.xml",
+        "web-rtc-requestor-cluster.xml",
         "wifi-network-diagnostics-cluster.xml",
         "wifi-network-management-cluster.xml",
         "window-covering.xml",
@@ -145,9 +151,15 @@
     "manufacturersXml": "../../../../src/app/zap-templates/zcl/data-model/manufacturers.xml",
     "options": {
         "text": {
-            "defaultResponsePolicy": ["Always", "Conditional", "Never"]
+            "defaultResponsePolicy": [
+                "Always",
+                "Conditional",
+                "Never"
+            ]
         },
-        "bool": ["commandDiscovery"]
+        "bool": [
+            "commandDiscovery"
+        ]
     },
     "defaults": {
         "text": {
@@ -193,8 +205,13 @@
             "SpecificationVersion",
             "MaxPathsPerInvoke"
         ],
-        "Bridged Device Basic Information": ["ProductAppearance"],
-        "Descriptor": ["ClusterRevision", "FeatureMap"],
+        "Bridged Device Basic Information": [
+            "ProductAppearance"
+        ],
+        "Descriptor": [
+            "ClusterRevision",
+            "FeatureMap"
+        ],
         "Device Energy Management": [
             "ESAType",
             "ESACanGenerate",
@@ -246,7 +263,11 @@
             "SessionEnergyDischarged",
             "FeatureMap"
         ],
-        "Energy EVSE Mode": ["SupportedModes", "CurrentMode", "FeatureMap"],
+        "Energy EVSE Mode": [
+            "SupportedModes",
+            "CurrentMode",
+            "FeatureMap"
+        ],
         "Ethernet Network Diagnostics": [
             "PHYRate",
             "FullDuplex",
@@ -291,7 +312,11 @@
             "ClientsSupportedPerFabric",
             "MaximumCheckInBackOff"
         ],
-        "Occupancy Sensing": ["HoldTimeLimits", "HoldTime", "FeatureMap"],
+        "Occupancy Sensing": [
+            "HoldTimeLimits",
+            "HoldTime",
+            "FeatureMap"
+        ],
         "Operational Credentials": [
             "SupportedFabrics",
             "CommissionedFabrics",
@@ -398,14 +423,21 @@
             "CurrentMaxRate",
             "OverrunCount"
         ],
-        "Channel": ["Lineup", "CurrentChannel"],
+        "Channel": [
+            "Lineup",
+            "CurrentChannel"
+        ],
         "Media Playback": [
             "SampledPosition",
             "ActiveAudioTrack",
             "ActiveTextTrack"
         ],
-        "Application Launcher": ["CurrentApp"],
-        "Application Basic": ["Application"],
+        "Application Launcher": [
+            "CurrentApp"
+        ],
+        "Application Basic": [
+            "Application"
+        ],
         "Time Synchronization": [
             "TrustedTimeSource",
             "DefaultNTP",
@@ -417,7 +449,9 @@
             "TimeZoneListMaxSize",
             "DSTOffsetListMaxSize"
         ],
-        "Temperature Control": ["SupportedTemperatureLevels"],
+        "Temperature Control": [
+            "SupportedTemperatureLevels"
+        ],
         "Dishwasher Mode": [
             "SupportedModes",
             "CurrentMode",
@@ -425,7 +459,11 @@
             "OnMode",
             "FeatureMap"
         ],
-        "Microwave Oven Mode": ["SupportedModes", "CurrentMode", "FeatureMap"],
+        "Microwave Oven Mode": [
+            "SupportedModes",
+            "CurrentMode",
+            "FeatureMap"
+        ],
         "Microwave Oven Control": [
             "CookTime",
             "MaxCookTime",
@@ -452,8 +490,16 @@
             "OnMode",
             "FeatureMap"
         ],
-        "RVC Clean Mode": ["SupportedModes", "CurrentMode", "FeatureMap"],
-        "RVC Run Mode": ["SupportedModes", "CurrentMode", "FeatureMap"],
+        "RVC Clean Mode": [
+            "SupportedModes",
+            "CurrentMode",
+            "FeatureMap"
+        ],
+        "RVC Run Mode": [
+            "SupportedModes",
+            "CurrentMode",
+            "FeatureMap"
+        ],
         "Operational State": [
             "OperationalState",
             "OperationalError",
@@ -630,7 +676,10 @@
             "LevelValue",
             "FeatureMap"
         ],
-        "Air Quality": ["AirQuality", "FeatureMap"],
+        "Air Quality": [
+            "AirQuality",
+            "FeatureMap"
+        ],
         "Electrical Energy Measurement": [
             "Accuracy",
             "CumulativeEnergyImported",
@@ -662,9 +711,15 @@
             "NeutralCurrent",
             "FeatureMap"
         ],
-        "Power Topology": ["FeatureMap"],
-        "Valve Configuration and Control": ["RemainingDuration"],
-        "Boolean State Configuration": ["CurrentSensitivityLevel"],
+        "Power Topology": [
+            "FeatureMap"
+        ],
+        "Valve Configuration and Control": [
+            "RemainingDuration"
+        ],
+        "Boolean State Configuration": [
+            "CurrentSensitivityLevel"
+        ],
         "Water Heater Management": [
             "HeaterTypes",
             "HeatDemand",
@@ -675,17 +730,35 @@
             "FeatureMap",
             "ClusterRevision"
         ],
-        "Water Heater Mode": ["SupportedModes", "CurrentMode", "FeatureMap"],
-        "Wi-Fi Network Management": ["SSID", "PassphraseSurrogate"],
+        "Water Heater Mode": [
+            "SupportedModes",
+            "CurrentMode",
+            "FeatureMap"
+        ],
+        "Wi-Fi Network Management": [
+            "SSID",
+            "PassphraseSurrogate"
+        ],
         "Thread Network Directory": [
             "PreferredExtendedPanID",
             "ThreadNetworks",
             "ThreadNetworkTableSize"
         ],
-        "Service Area": ["CurrentArea", "EstimatedEndTime", "FeatureMap"]
+        "Service Area": [
+            "CurrentArea",
+            "EstimatedEndTime",
+            "FeatureMap"
+        ]
     },
     "defaultReportingPolicy": "mandatory",
-    "ZCLDataTypes": ["ARRAY", "BITMAP", "ENUM", "NUMBER", "STRING", "STRUCT"],
+    "ZCLDataTypes": [
+        "ARRAY",
+        "BITMAP",
+        "ENUM",
+        "NUMBER",
+        "STRING",
+        "STRUCT"
+    ],
     "fabricHandling": {
         "automaticallyCreateFields": true,
         "indexFieldId": 254,
@@ -695,4 +768,4 @@
     "uiOptions": {
         "showProfileId": false
     }
-}
+}
\ No newline at end of file
diff --git a/src/app/zap_cluster_list.json b/src/app/zap_cluster_list.json
index e5f0ea9e2e892a..8f1f19cd7b082b 100644
--- a/src/app/zap_cluster_list.json
+++ b/src/app/zap_cluster_list.json
@@ -18,9 +18,12 @@
         "BOOLEAN_STATE_CLUSTER": [],
         "BOOLEAN_STATE_CONFIGURATION_CLUSTER": [],
         "BRIDGED_DEVICE_BASIC_INFORMATION_CLUSTER": [],
+        "CAMERA_AV_SETTINGS_USER_LEVEL_MANAGEMENT_CLUSTER": [],
+        "CAMERA_AV_STREAM_MANAGEMENT_CLUSTER": [],
         "CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER": [],
         "CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER": [],
         "CHANNEL_CLUSTER": [],
+        "CHIME_CLUSTER": [],
         "CLIENT_MONITORING_CLUSTER": [],
         "COLOR_CONTROL_CLUSTER": [],
         "COMMISSIONER_CONTROL_CLUSTER": [],
@@ -70,6 +73,7 @@
         "MESSAGES_CLUSTER": [],
         "MODE_SELECT_CLUSTER": [],
         "NETWORK_COMMISSIONING_CLUSTER": [],
+        "PUSH_AV_STREAM_TRANSPORT_CLUSTER": [],
         "SAMPLE_MEI_CLUSTER": [],
         "NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER": [],
         "OCCUPANCY_SENSING_CLUSTER": [],
@@ -115,7 +119,9 @@
         "TARGET_NAVIGATOR_CLUSTER": [],
         "TEMPERATURE_CONTROL_CLUSTER": [],
         "TEMPERATURE_MEASUREMENT_CLUSTER": [],
-        "THERMOSTAT_CLUSTER": ["thermostat-client"],
+        "THERMOSTAT_CLUSTER": [
+            "thermostat-client"
+        ],
         "THERMOSTAT_USER_INTERFACE_CONFIGURATION_CLUSTER": [],
         "THREAD_BORDER_ROUTER_MANAGEMENT_CLUSTER": [],
         "THREAD_NETWORK_DIAGNOSTICS_CLUSTER": [],
@@ -135,13 +141,19 @@
         "LAUNDRY_DRYER_CONTROLS_CLUSTER": [],
         "WATER_HEATER_MANAGEMENT_CLUSTER": [],
         "WATER_HEATER_MODE_CLUSTER": [],
+        "WEB_RTC_PROVIDER_CLUSTER": [],
+        "WEB_RTC_REQUESTOR_CLUSTER": [],
         "WIFI_NETWORK_DIAGNOSTICS_CLUSTER": [],
         "WINDOW_COVERING_CLUSTER": [],
         "ZLL_COMMISSIONING_CLUSTER": []
     },
     "ServerDirectories": {
-        "ACCESS_CONTROL_CLUSTER": ["access-control-server"],
-        "ACCOUNT_LOGIN_CLUSTER": ["account-login-server"],
+        "ACCESS_CONTROL_CLUSTER": [
+            "access-control-server"
+        ],
+        "ACCOUNT_LOGIN_CLUSTER": [
+            "account-login-server"
+        ],
         "ACTIONS_CLUSTER": [],
         "ACTIVATED_CARBON_FILTER_MONITORING_CLUSTER": [
             "resource-monitoring-server"
@@ -149,16 +161,30 @@
         "ADMINISTRATOR_COMMISSIONING_CLUSTER": [
             "administrator-commissioning-server"
         ],
-        "AIR_QUALITY_CLUSTER": ["air-quality-server"],
+        "AIR_QUALITY_CLUSTER": [
+            "air-quality-server"
+        ],
         "ALARM_CLUSTER": [],
-        "APPLICATION_BASIC_CLUSTER": ["application-basic-server"],
-        "APPLICATION_LAUNCHER_CLUSTER": ["application-launcher-server"],
-        "AUDIO_OUTPUT_CLUSTER": ["audio-output-server"],
+        "APPLICATION_BASIC_CLUSTER": [
+            "application-basic-server"
+        ],
+        "APPLICATION_LAUNCHER_CLUSTER": [
+            "application-launcher-server"
+        ],
+        "AUDIO_OUTPUT_CLUSTER": [
+            "audio-output-server"
+        ],
         "BALLAST_CONFIGURATION_CLUSTER": [],
-        "BARRIER_CONTROL_CLUSTER": ["barrier-control-server"],
-        "BASIC_INFORMATION_CLUSTER": ["basic-information"],
+        "BARRIER_CONTROL_CLUSTER": [
+            "barrier-control-server"
+        ],
+        "BASIC_INFORMATION_CLUSTER": [
+            "basic-information"
+        ],
         "BINARY_INPUT_BASIC_CLUSTER": [],
-        "BINDING_CLUSTER": ["bindings"],
+        "BINDING_CLUSTER": [
+            "bindings"
+        ],
         "BOOLEAN_STATE_CLUSTER": [],
         "BOOLEAN_STATE_CONFIGURATION_CLUSTER": [
             "boolean-state-configuration-server"
@@ -166,29 +192,62 @@
         "BRIDGED_DEVICE_BASIC_INFORMATION_CLUSTER": [
             "bridged-device-basic-information-server"
         ],
+        "CAMERA_AV_SETTINGS_USER_LEVEL_MANAGEMENT_CLUSTER": [],
+        "CAMERA_AV_STREAM_MANAGEMENT_CLUSTER": [],
         "CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER": [
             "concentration-measurement-server"
         ],
         "CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER": [
             "concentration-measurement-server"
         ],
-        "CHANNEL_CLUSTER": ["channel-server"],
-        "COLOR_CONTROL_CLUSTER": ["color-control-server"],
-        "COMMISSIONER_CONTROL_CLUSTER": ["commissioner-control-server"],
+        "CHANNEL_CLUSTER": [
+            "channel-server"
+        ],
+        "CHIME_CLUSTER": [],
+        "COLOR_CONTROL_CLUSTER": [
+            "color-control-server"
+        ],
+        "COMMISSIONER_CONTROL_CLUSTER": [
+            "commissioner-control-server"
+        ],
         "COMMISSIONING_CLUSTER": [],
-        "CONTENT_LAUNCHER_CLUSTER": ["content-launch-server"],
-        "CONTENT_CONTROL_CLUSTER": ["content-control-server"],
-        "CONTENT_APP_OBSERVER_CLUSTER": ["content-app-observer"],
-        "DESCRIPTOR_CLUSTER": ["descriptor"],
-        "DEVICE_ENERGY_MANAGEMENT_CLUSTER": ["device-energy-management-server"],
-        "DEVICE_ENERGY_MANAGEMENT_MODE_CLUSTER": ["mode-base-server"],
+        "CONTENT_LAUNCHER_CLUSTER": [
+            "content-launch-server"
+        ],
+        "CONTENT_CONTROL_CLUSTER": [
+            "content-control-server"
+        ],
+        "CONTENT_APP_OBSERVER_CLUSTER": [
+            "content-app-observer"
+        ],
+        "DESCRIPTOR_CLUSTER": [
+            "descriptor"
+        ],
+        "DEVICE_ENERGY_MANAGEMENT_CLUSTER": [
+            "device-energy-management-server"
+        ],
+        "DEVICE_ENERGY_MANAGEMENT_MODE_CLUSTER": [
+            "mode-base-server"
+        ],
         "DEVICE_TEMP_CLUSTER": [],
-        "DIAGNOSTIC_LOGS_CLUSTER": ["diagnostic-logs-server"],
-        "DISHWASHER_ALARM_CLUSTER": ["dishwasher-alarm-server"],
-        "DISHWASHER_MODE_CLUSTER": ["mode-base-server"],
-        "MICROWAVE_OVEN_MODE_CLUSTER": ["mode-base-server"],
-        "DOOR_LOCK_CLUSTER": ["door-lock-server"],
-        "ECOSYSTEM_INFORMATION_CLUSTER": ["ecosystem-information-server"],
+        "DIAGNOSTIC_LOGS_CLUSTER": [
+            "diagnostic-logs-server"
+        ],
+        "DISHWASHER_ALARM_CLUSTER": [
+            "dishwasher-alarm-server"
+        ],
+        "DISHWASHER_MODE_CLUSTER": [
+            "mode-base-server"
+        ],
+        "MICROWAVE_OVEN_MODE_CLUSTER": [
+            "mode-base-server"
+        ],
+        "DOOR_LOCK_CLUSTER": [
+            "door-lock-server"
+        ],
+        "ECOSYSTEM_INFORMATION_CLUSTER": [
+            "ecosystem-information-server"
+        ],
         "ELECTRICAL_ENERGY_MEASUREMENT_CLUSTER": [
             "electrical-energy-measurement-server"
         ],
@@ -196,57 +255,126 @@
         "ELECTRICAL_POWER_MEASUREMENT_CLUSTER": [
             "electrical-power-measurement-server"
         ],
-        "ENERGY_EVSE_CLUSTER": ["energy-evse-server"],
-        "ENERGY_EVSE_MODE_CLUSTER": ["mode-base-server"],
+        "ENERGY_EVSE_CLUSTER": [
+            "energy-evse-server"
+        ],
+        "ENERGY_EVSE_MODE_CLUSTER": [
+            "mode-base-server"
+        ],
         "ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER": [
             "ethernet-network-diagnostics-server"
         ],
-        "ENERGY_PREFERENCE_CLUSTER": ["energy-preference-server"],
-        "FAN_CONTROL_CLUSTER": ["fan-control-server"],
-        "FAULT_INJECTION_CLUSTER": ["fault-injection-server"],
-        "FIXED_LABEL_CLUSTER": ["fixed-label-server"],
+        "ENERGY_PREFERENCE_CLUSTER": [
+            "energy-preference-server"
+        ],
+        "FAN_CONTROL_CLUSTER": [
+            "fan-control-server"
+        ],
+        "FAULT_INJECTION_CLUSTER": [
+            "fault-injection-server"
+        ],
+        "FIXED_LABEL_CLUSTER": [
+            "fixed-label-server"
+        ],
         "FLOW_MEASUREMENT_CLUSTER": [],
         "FORMALDEHYDE_CONCENTRATION_MEASUREMENT_CLUSTER": [
             "concentration-measurement-server"
         ],
-        "GENERAL_COMMISSIONING_CLUSTER": ["general-commissioning-server"],
-        "GENERAL_DIAGNOSTICS_CLUSTER": ["general-diagnostics-server"],
-        "GROUPS_CLUSTER": ["groups-server"],
-        "HEPA_FILTER_MONITORING_CLUSTER": ["resource-monitoring-server"],
-        "GROUP_KEY_MANAGEMENT_CLUSTER": ["group-key-mgmt-server"],
+        "GENERAL_COMMISSIONING_CLUSTER": [
+            "general-commissioning-server"
+        ],
+        "GENERAL_DIAGNOSTICS_CLUSTER": [
+            "general-diagnostics-server"
+        ],
+        "GROUPS_CLUSTER": [
+            "groups-server"
+        ],
+        "HEPA_FILTER_MONITORING_CLUSTER": [
+            "resource-monitoring-server"
+        ],
+        "GROUP_KEY_MANAGEMENT_CLUSTER": [
+            "group-key-mgmt-server"
+        ],
         "IAS_ZONE_CLUSTER": [],
-        "ICD_MANAGEMENT_CLUSTER": ["icd-management-server"],
-        "IDENTIFY_CLUSTER": ["identify-server"],
+        "ICD_MANAGEMENT_CLUSTER": [
+            "icd-management-server"
+        ],
+        "IDENTIFY_CLUSTER": [
+            "identify-server"
+        ],
         "ILLUMINANCE_MEASUREMENT_CLUSTER": [],
-        "KEYPAD_INPUT_CLUSTER": ["keypad-input-server"],
-        "LAUNDRY_WASHER_MODE_CLUSTER": ["mode-base-server"],
-        "LEVEL_CONTROL_CLUSTER": ["level-control"],
+        "KEYPAD_INPUT_CLUSTER": [
+            "keypad-input-server"
+        ],
+        "LAUNDRY_WASHER_MODE_CLUSTER": [
+            "mode-base-server"
+        ],
+        "LEVEL_CONTROL_CLUSTER": [
+            "level-control"
+        ],
         "LOCALIZATION_CONFIGURATION_CLUSTER": [
             "localization-configuration-server"
         ],
-        "LOW_POWER_CLUSTER": ["low-power-server"],
-        "MEDIA_INPUT_CLUSTER": ["media-input-server"],
-        "MEDIA_PLAYBACK_CLUSTER": ["media-playback-server"],
-        "MICROWAVE_OVEN_CONTROL_CLUSTER": ["microwave-oven-control-server"],
-        "MESSAGES_CLUSTER": ["messages-server"],
-        "MODE_SELECT_CLUSTER": ["mode-select-server"],
-        "NETWORK_COMMISSIONING_CLUSTER": ["network-commissioning"],
+        "LOW_POWER_CLUSTER": [
+            "low-power-server"
+        ],
+        "MEDIA_INPUT_CLUSTER": [
+            "media-input-server"
+        ],
+        "MEDIA_PLAYBACK_CLUSTER": [
+            "media-playback-server"
+        ],
+        "MICROWAVE_OVEN_CONTROL_CLUSTER": [
+            "microwave-oven-control-server"
+        ],
+        "MESSAGES_CLUSTER": [
+            "messages-server"
+        ],
+        "MODE_SELECT_CLUSTER": [
+            "mode-select-server"
+        ],
+        "NETWORK_COMMISSIONING_CLUSTER": [
+            "network-commissioning"
+        ],
         "NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER": [
             "concentration-measurement-server"
         ],
-        "SAMPLE_MEI_CLUSTER": ["sample-mei-server"],
-        "OCCUPANCY_SENSING_CLUSTER": ["occupancy-sensor-server"],
-        "ON_OFF_CLUSTER": ["on-off-server"],
-        "POWER_TOPOLOGY_CLUSTER": ["power-topology-server"],
+        "PUSH_AV_STREAM_TRANSPORT_CLUSTER": [],
+        "SAMPLE_MEI_CLUSTER": [
+            "sample-mei-server"
+        ],
+        "OCCUPANCY_SENSING_CLUSTER": [
+            "occupancy-sensor-server"
+        ],
+        "ON_OFF_CLUSTER": [
+            "on-off-server"
+        ],
+        "POWER_TOPOLOGY_CLUSTER": [
+            "power-topology-server"
+        ],
         "ON_OFF_SWITCH_CONFIGURATION_CLUSTER": [],
-        "OPERATIONAL_CREDENTIALS_CLUSTER": ["operational-credentials-server"],
-        "OPERATIONAL_STATE_CLUSTER": ["operational-state-server"],
-        "OPERATIONAL_STATE_OVEN_CLUSTER": ["operational-state-server"],
-        "OPERATIONAL_STATE_RVC_CLUSTER": ["operational-state-server"],
+        "OPERATIONAL_CREDENTIALS_CLUSTER": [
+            "operational-credentials-server"
+        ],
+        "OPERATIONAL_STATE_CLUSTER": [
+            "operational-state-server"
+        ],
+        "OPERATIONAL_STATE_OVEN_CLUSTER": [
+            "operational-state-server"
+        ],
+        "OPERATIONAL_STATE_RVC_CLUSTER": [
+            "operational-state-server"
+        ],
         "OTA_BOOTLOAD_CLUSTER": [],
-        "OTA_SOFTWARE_UPDATE_PROVIDER_CLUSTER": ["ota-provider"],
-        "OTA_SOFTWARE_UPDATE_REQUESTOR_CLUSTER": ["ota-requestor"],
-        "OVEN_MODE_CLUSTER": ["mode-base-server"],
+        "OTA_SOFTWARE_UPDATE_PROVIDER_CLUSTER": [
+            "ota-provider"
+        ],
+        "OTA_SOFTWARE_UPDATE_REQUESTOR_CLUSTER": [
+            "ota-requestor"
+        ],
+        "OVEN_MODE_CLUSTER": [
+            "mode-base-server"
+        ],
         "OZONE_CONCENTRATION_MEASUREMENT_CLUSTER": [
             "concentration-measurement-server"
         ],
@@ -262,7 +390,9 @@
         "POLL_CONTROL_CLUSTER": [],
         "POWER_CONFIG_CLUSTER": [],
         "POWER_PROFILE_CLUSTER": [],
-        "POWER_SOURCE_CLUSTER": ["power-source-server"],
+        "POWER_SOURCE_CLUSTER": [
+            "power-source-server"
+        ],
         "POWER_SOURCE_CONFIGURATION_CLUSTER": [
             "power-source-configuration-server"
         ],
@@ -277,22 +407,44 @@
         "RADON_CONCENTRATION_MEASUREMENT_CLUSTER": [
             "concentration-measurement-server"
         ],
-        "REFRIGERATOR_ALARM_CLUSTER": ["refrigerator-alarm-server"],
+        "REFRIGERATOR_ALARM_CLUSTER": [
+            "refrigerator-alarm-server"
+        ],
         "REFRIGERATOR_AND_TEMPERATURE_CONTROLLED_CABINET_MODE_CLUSTER": [
             "mode-base-server"
         ],
         "RELATIVE_HUMIDITY_MEASUREMENT_CLUSTER": [],
-        "RVC_CLEAN_MODE_CLUSTER": ["mode-base-server"],
-        "RVC_RUN_MODE_CLUSTER": ["mode-base-server"],
-        "SCENES_CLUSTER": ["scenes-server"],
-        "SERVICE_AREA_CLUSTER": ["service-area-server"],
-        "SMOKE_CO_ALARM_CLUSTER": ["smoke-co-alarm-server"],
-        "SOFTWARE_DIAGNOSTICS_CLUSTER": ["software-diagnostics-server"],
-        "SWITCH_CLUSTER": ["switch-server"],
-        "TARGET_NAVIGATOR_CLUSTER": ["target-navigator-server"],
-        "TEMPERATURE_CONTROL_CLUSTER": ["temperature-control-server"],
+        "RVC_CLEAN_MODE_CLUSTER": [
+            "mode-base-server"
+        ],
+        "RVC_RUN_MODE_CLUSTER": [
+            "mode-base-server"
+        ],
+        "SCENES_CLUSTER": [
+            "scenes-server"
+        ],
+        "SERVICE_AREA_CLUSTER": [
+            "service-area-server"
+        ],
+        "SMOKE_CO_ALARM_CLUSTER": [
+            "smoke-co-alarm-server"
+        ],
+        "SOFTWARE_DIAGNOSTICS_CLUSTER": [
+            "software-diagnostics-server"
+        ],
+        "SWITCH_CLUSTER": [
+            "switch-server"
+        ],
+        "TARGET_NAVIGATOR_CLUSTER": [
+            "target-navigator-server"
+        ],
+        "TEMPERATURE_CONTROL_CLUSTER": [
+            "temperature-control-server"
+        ],
         "TEMPERATURE_MEASUREMENT_CLUSTER": [],
-        "THERMOSTAT_CLUSTER": ["thermostat-server"],
+        "THERMOSTAT_CLUSTER": [
+            "thermostat-server"
+        ],
         "THERMOSTAT_USER_INTERFACE_CONFIGURATION_CLUSTER": [
             "thermostat-user-interface-configuration-server"
         ],
@@ -302,28 +454,58 @@
         "THREAD_NETWORK_DIAGNOSTICS_CLUSTER": [
             "thread-network-diagnostics-server"
         ],
-        "THREAD_NETWORK_DIRECTORY_CLUSTER": ["thread-network-directory-server"],
+        "THREAD_NETWORK_DIRECTORY_CLUSTER": [
+            "thread-network-directory-server"
+        ],
         "TIME_CLUSTER": [],
-        "TIME_FORMAT_LOCALIZATION_CLUSTER": ["time-format-localization-server"],
-        "TIME_SYNCHRONIZATION_CLUSTER": ["time-synchronization-server"],
-        "TIMER_CLUSTER": ["timer-server"],
+        "TIME_FORMAT_LOCALIZATION_CLUSTER": [
+            "time-format-localization-server"
+        ],
+        "TIME_SYNCHRONIZATION_CLUSTER": [
+            "time-synchronization-server"
+        ],
+        "TIMER_CLUSTER": [
+            "timer-server"
+        ],
         "TVOC_CONCENTRATION_MEASUREMENT_CLUSTER": [
             "concentration-measurement-server"
         ],
         "UNIT_LOCALIZATION_CLUSTER": [],
-        "UNIT_TESTING_CLUSTER": ["test-cluster-server"],
-        "USER_LABEL_CLUSTER": ["user-label-server"],
+        "UNIT_TESTING_CLUSTER": [
+            "test-cluster-server"
+        ],
+        "USER_LABEL_CLUSTER": [
+            "user-label-server"
+        ],
         "VALVE_CONFIGURATION_AND_CONTROL_CLUSTER": [
             "valve-configuration-and-control-server"
         ],
-        "WAKE_ON_LAN_CLUSTER": ["wake-on-lan-server"],
-        "LAUNDRY_WASHER_CONTROLS_CLUSTER": ["laundry-washer-controls-server"],
-        "LAUNDRY_DRYER_CONTROLS_CLUSTER": ["laundry-dryer-controls-server"],
-        "WIFI_NETWORK_DIAGNOSTICS_CLUSTER": ["wifi-network-diagnostics-server"],
-        "WIFI_NETWORK_MANAGEMENT_CLUSTER": ["wifi-network-management-server"],
-        "WINDOW_COVERING_CLUSTER": ["window-covering-server"],
-        "WATER_HEATER_MANAGEMENT_CLUSTER": ["water-heater-management-server"],
-        "WATER_HEATER_MODE_CLUSTER": ["mode-base-server"],
+        "WAKE_ON_LAN_CLUSTER": [
+            "wake-on-lan-server"
+        ],
+        "LAUNDRY_WASHER_CONTROLS_CLUSTER": [
+            "laundry-washer-controls-server"
+        ],
+        "LAUNDRY_DRYER_CONTROLS_CLUSTER": [
+            "laundry-dryer-controls-server"
+        ],
+        "WEB_RTC_PROVIDER_CLUSTER": [],
+        "WEB_RTC_REQUESTOR_CLUSTER": [],
+        "WIFI_NETWORK_DIAGNOSTICS_CLUSTER": [
+            "wifi-network-diagnostics-server"
+        ],
+        "WIFI_NETWORK_MANAGEMENT_CLUSTER": [
+            "wifi-network-management-server"
+        ],
+        "WINDOW_COVERING_CLUSTER": [
+            "window-covering-server"
+        ],
+        "WATER_HEATER_MANAGEMENT_CLUSTER": [
+            "water-heater-management-server"
+        ],
+        "WATER_HEATER_MODE_CLUSTER": [
+            "mode-base-server"
+        ],
         "ZLL_COMMISSIONING_CLUSTER": []
     }
-}
+}
\ No newline at end of file

From 01c4f87c3467db3c36b65cc5b5f6c7cb698e92b8 Mon Sep 17 00:00:00 2001
From: marcos <15697303+gmarcosb@users.noreply.github.com>
Date: Fri, 20 Sep 2024 14:40:39 -0600
Subject: [PATCH 10/20] Fixes to reflect updated spec

---
 .../zcl/data-model/chip/global-bitmaps.xml    | 22 ++++--
 .../zcl/data-model/chip/global-structs.xml    | 73 ++++++++++++++++---
 .../draft/web-rtc-provider-cluster.xml        | 20 +----
 .../draft/web-rtc-requestor-cluster.xml       |  2 +-
 4 files changed, 83 insertions(+), 34 deletions(-)

diff --git a/src/app/zap-templates/zcl/data-model/chip/global-bitmaps.xml b/src/app/zap-templates/zcl/data-model/chip/global-bitmaps.xml
index fc70c0bf5143a9..89ba1a810c00b0 100644
--- a/src/app/zap-templates/zcl/data-model/chip/global-bitmaps.xml
+++ b/src/app/zap-templates/zcl/data-model/chip/global-bitmaps.xml
@@ -14,23 +14,35 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
 <!--
 TODO: Make these structures global rather than defining them for each cluster.
  This depends on the ability to define global structs via XML tags.
  see: https://github.com/project-chip/connectedhomeip/issues/29818
 -->
-
 <configurator>
   <domain name="CHIP"/>
-
   <!--
     These are test global items (no cluster attached) for testing only.
     Their usage is defined for UnitTestCluster only.
   -->
   <bitmap name="TestGlobalBitmap" type="bitmap32">
-    <field mask="0x01" name="FirstBit" />
-    <field mask="0x02" name="SecondBit" />
+    <field mask="0x00000002" name="FirstBit"/>
+    <field mask="0x00000004" name="SecondBit"/>
   </bitmap>
 
+  <bitmap name="WebRTCMetadataOptions" type="bitmap8">
+    <field name="DataTLV" mask="0x01"/>
+  </bitmap>
+
+  <bitmap name="WildcardPathFlagsBitmap" type="bitmap8">
+    <field name="WildcardSkipRootNode" mask="0x01"/>
+    <field name="WildcardSkipGlobalAttributes" mask="0x02"/>
+    <field name="WildcardSkipAttributeList" mask="0x04"/>
+    <field name="Reserved" mask="0x08"/>
+    <field name="WildcardSkipCommandLists" mask="0x10"/>
+    <field name="WildcardSkipCustomElements" mask="0x20"/>
+    <field name="WildcardSkipFixedAttributes" mask="0x40"/>
+    <field name="WildcardSkipChangesOmittedAttributes" mask="0x80"/>
+    <field name="WildcardSkipDiagnosticsClusters" mask="0x100"/>
+  </bitmap>
 </configurator>
diff --git a/src/app/zap-templates/zcl/data-model/chip/global-structs.xml b/src/app/zap-templates/zcl/data-model/chip/global-structs.xml
index 743fdf366b724b..9afe9918b56b20 100644
--- a/src/app/zap-templates/zcl/data-model/chip/global-structs.xml
+++ b/src/app/zap-templates/zcl/data-model/chip/global-structs.xml
@@ -14,29 +14,84 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
 <configurator>
   <domain name="CHIP"/>
-
   <struct name="AtomicAttributeStatusStruct">
-    <item fieldId="0" name="AttributeID" type="attrib_id" />
+    <item fieldId="0" name="AttributeID" type="attrib_id"/>
     <item fieldId="1" name="StatusCode" type="status"/>
   </struct>
 
+  <struct name="AttributionData" apiMaturity="provisional" isFabricScoped="true">
+    <item fieldId="0" name="ContextInformation" type="enum8"/>
+    <item fieldId="1" name="SourceContext" type="int32u" optional="true" isFabricSensitive="true"/>
+    <item fieldId="2" name="NodeID" type="node_id" optional="true" isFabricSensitive="true"/>
+    <item fieldId="3" name="GroupD" type="group_id" optional="true" isFabricSensitive="true"/>
+    <item fieldId="4" name="SystemTimeStamp" type="systime_ms" optional="true"/>
+    <item fieldId="5" name="EpochTimeStamp" type="posix_ms" optional="true"/>
+    <item fieldId="254" name="FabricIndex" type="fabric_idx" isNullable="true"/>
+  </struct>
+
+  <struct name="Date" apiMaturity="provisional">
+    <item fieldId="0" name="Year" type="int8u" isNullable="true"/>
+    <item fieldId="1" name="Month" type="int8u" isNullable="true" min="1" max="12"/>
+    <item fieldId="2" name="Day" type="int8u" isNullable="true" min="1" max="31"/>
+    <item fieldId="3" name="DayOfWeek" type="int8u" isNullable="true" min="1" max="7"/>
+  </struct>
+
   <struct name="LocationDescriptorStruct">
-    <item fieldId="0" name="LocationName"    type="char_string" length="128" isNullable="false" optional="false"/>
-    <item fieldId="1" name="FloorNumber"     type="int16s"                   isNullable="true"  optional="false"/>
-    <item fieldId="2" name="AreaType"        type="AreaTypeTag"              isNullable="true"  optional="false"/>
+    <item fieldId="0" name="LocationName" type="char_string" length="128"/>
+    <item fieldId="1" name="FloorNumber" type="int16s" isNullable="true"/>
+    <item fieldId="2" name="AreaType" type="tag" isNullable="true"/>
   </struct>
 
   <!--
     These are test global items (no cluster attached) for testing only.
     Their usage is defined for UnitTestCluster only.
   -->
-  
+  <struct name="MeasurementAccuracyRangeStruct" apiMaturity="provisional">
+    <item fieldId="0" name="RangeMin" type="int64s" min="-4611686018427387904" max="4611686018427387904"/>
+    <item fieldId="1" name="RangeMax" type="int64s" min="-4611686018427387904" max="4611686018427387904"/>
+    <item fieldId="2" name="PercentMax" type="percent100ths" optional="true"/>
+    <item fieldId="3" name="PercentMin" type="percent100ths" optional="true"/>
+    <item fieldId="4" name="PercentTypical" type="percent100ths" optional="true"/>
+    <item fieldId="5" name="FixedMax" type="int64u" optional="true" max="4611686018427387903"/>
+    <item fieldId="6" name="FixedMin" type="int64u" optional="true" max="4611686018427387903"/>
+    <item fieldId="7" name="FixedTypical" type="int64u" optional="true" max="4611686018427387903"/>
+  </struct>
+
+  <struct name="MeasurementAccuracyStruct" apiMaturity="provisional">
+    <item fieldId="0" name="MeasurementType" type="MeasurementTypeEnum" min="0x0000" max="0x000E"/>
+    <item fieldId="1" name="Measured" type="boolean" default="0"/>
+    <item fieldId="2" name="MinMeasuredValue" type="int64s" min="-4611686018427387904" max="4611686018427387904"/>
+    <item fieldId="3" name="MaxMeasuredValue" type="int64s" min="-4611686018427387904" max="4611686018427387904"/>
+    <item fieldId="4" name="AccuracyRanges" array="true" type="MeasurementAccuracyRangeStruct" minLength="1"/>
+  </struct>
+
+  <struct name="SemanticTagStruct" apiMaturity="provisional">
+    <item fieldId="0" name="MfgCode" type="vendor_id" isNullable="true"/>
+    <item fieldId="1" name="NamespaceID" type="namespace"/>
+    <item fieldId="2" name="Tag" type="tag"/>
+    <item fieldId="3" name="Label" type="char_string" isNullable="true" optional="true" length="64"/>
+  </struct>
+
+  <struct name="SuppliedAttributionData" apiMaturity="provisional" isFabricScoped="true">
+    <item fieldId="0" name="ContextInformation" type="enum8"/>
+    <item fieldId="1" name="SourceContext" type="int32u" optional="true"/>
+  </struct>
+
   <struct name="TestGlobalStruct">
-    <item fieldId="0" name="Name" type="char_string" length="128" isNullable="false" optional="false"/>
-    <item fieldId="1" name="MyBitmap" type="TestGlobalBitmap" isNullable="true" optional="false"/>
+    <item fieldId="0" name="Name" type="char_string" length="128"/>
+    <item fieldId="1" name="MyBitmap" type="TestGlobalBitmap" isNullable="true"/>
     <item fieldId="2" name="MyEnum" type="TestGlobalEnum" isNullable="true" optional="true"/>
   </struct>
+
+  <struct name="WebRTCSessionStruct" apiMaturity="provisional">
+    <item fieldId="1" name="ID" type="WebRTCSessionID"/>
+    <item fieldId="2" name="PeerNodeId" type="node_id"/>
+    <item fieldId="3" name="PeerFabricIndex" type="fabric_idx"/>
+    <item fieldId="4" name="StreamType" type="StreamTypeEnum" min="0x00" max="0x03"/>
+    <item fieldId="5" name="VideoStreamID" type="VideoStreamID" isNullable="true"/>
+    <item fieldId="6" name="AudioStreamID" type="AudioStreamID" isNullable="true"/>
+    <item fieldId="7" name="MetadataOptions" type="WebRTCMetadataOptions" default="0x00" min="0x00" max="0x01"/>
+  </struct>
 </configurator>
diff --git a/src/app/zap-templates/zcl/data-model/draft/web-rtc-provider-cluster.xml b/src/app/zap-templates/zcl/data-model/draft/web-rtc-provider-cluster.xml
index a677b5cf45898c..8bdd8f0d4f047a 100644
--- a/src/app/zap-templates/zcl/data-model/draft/web-rtc-provider-cluster.xml
+++ b/src/app/zap-templates/zcl/data-model/draft/web-rtc-provider-cluster.xml
@@ -18,16 +18,10 @@ limitations under the License.
 XML generated by Alchemy; DO NOT EDIT.
 Source: src/app_clusters/WebRTC_Provider.adoc
 Parameters: in-progress 
-Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
+Git: 0.7-fall2024-ncr-1156-g1517df816-dirty
 -->
 <configurator xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../zcl.xsd">
   <domain name="General"/>
-  <bitmap name="WebRTCMetadataOptions" type="bitmap8">
-    <cluster code="0x0553"/>
-    <cluster code="0x0554"/>
-    <field name="DataTLV" mask="0x01"/>
-  </bitmap>
-
   <enum name="WebRTCEndReasonEnum" type="enum8">
     <cluster code="0x0553"/>
     <cluster code="0x0554"/>
@@ -54,18 +48,6 @@ Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
     <item fieldId="4" name="CAID" type="int16u" optional="true"/>
   </struct>
 
-  <struct name="WebRTCSessionStruct" apiMaturity="provisional">
-    <cluster code="0x0553"/>
-    <cluster code="0x0554"/>
-    <item fieldId="1" name="ID" type="WebRTCSessionID"/>
-    <item fieldId="2" name="PeerNodeId" type="node_id"/>
-    <item fieldId="3" name="PeerFabricIndex" type="fabric_idx"/>
-    <item fieldId="4" name="StreamType" type="StreamTypeEnum" min="0x00" max="0x03"/>
-    <item fieldId="5" name="VideoStreamID" type="VideoStreamID" isNullable="true"/>
-    <item fieldId="6" name="AudioStreamID" type="AudioStreamID" isNullable="true"/>
-    <item fieldId="7" name="MetadataOptions" type="WebRTCMetadataOptions" default="0x00" min="0x00" max="0x01"/>
-  </struct>
-
   <cluster>
     <domain name="General"/>
     <name>WebRTC Transport Provider</name>
diff --git a/src/app/zap-templates/zcl/data-model/draft/web-rtc-requestor-cluster.xml b/src/app/zap-templates/zcl/data-model/draft/web-rtc-requestor-cluster.xml
index a3c24bf4cb7db7..2894baad2fba6f 100644
--- a/src/app/zap-templates/zcl/data-model/draft/web-rtc-requestor-cluster.xml
+++ b/src/app/zap-templates/zcl/data-model/draft/web-rtc-requestor-cluster.xml
@@ -18,7 +18,7 @@ limitations under the License.
 XML generated by Alchemy; DO NOT EDIT.
 Source: src/app_clusters/WebRTC_Requestor.adoc
 Parameters: in-progress 
-Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
+Git: 0.7-fall2024-ncr-1156-g1517df816-dirty
 -->
 <configurator xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../zcl.xsd">
   <domain name="General"/>

From 91e8c747d81465b758ec73944a762358421a1b1d Mon Sep 17 00:00:00 2001
From: marcos <15697303+gmarcosb@users.noreply.github.com>
Date: Fri, 20 Sep 2024 14:42:12 -0600
Subject: [PATCH 11/20] Remove keyref - though ideal, complexity across files &
 allowance of fabric_idx constant make it difficult to have this in XSD

---
 src/app/zap-templates/zcl/zcl.xsd | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/src/app/zap-templates/zcl/zcl.xsd b/src/app/zap-templates/zcl/zcl.xsd
index e34ee4d59f055c..990bff01d9da4c 100644
--- a/src/app/zap-templates/zcl/zcl.xsd
+++ b/src/app/zap-templates/zcl/zcl.xsd
@@ -153,10 +153,6 @@ This schema describes the format of the XML files, that describe the ZCL specifi
       <xs:selector xpath="./struct|enum" />
       <xs:field xpath="@name" />
     </xs:unique>
-    <xs:keyref name="attributeEntryTypeStructRef" refer="structNameKey">
-      <xs:selector xpath="./cluster/attribute" />
-      <xs:field xpath="@entryType" />
-    </xs:keyref>
   </xs:element>
   <xs:element name="deviceType">
     <xs:complexType>

From 1a71742ce25dedbe9de6631d800883cdc396a043 Mon Sep 17 00:00:00 2001
From: marcos <15697303+gmarcosb@users.noreply.github.com>
Date: Fri, 20 Sep 2024 14:46:55 -0600
Subject: [PATCH 12/20] Additional schema fixes

---
 src/app/zap-templates/zcl/zcl.xsd | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/app/zap-templates/zcl/zcl.xsd b/src/app/zap-templates/zcl/zcl.xsd
index 990bff01d9da4c..6dd72aa31e0a25 100644
--- a/src/app/zap-templates/zcl/zcl.xsd
+++ b/src/app/zap-templates/zcl/zcl.xsd
@@ -10,7 +10,7 @@ This schema describes the format of the XML files, that describe the ZCL specifi
   </xs:annotation>
   <xs:simpleType name="integerWithHex">
     <xs:restriction base="xs:string">
-      <xs:pattern value="0x[0-9A-Fa-f]+|[0-9]+"/>
+      <xs:pattern value="-?0x[0-9A-Fa-f]+|[0-9]+"/>
     </xs:restriction>
   </xs:simpleType>
   <xs:complexType name="access">
@@ -67,6 +67,7 @@ This schema describes the format of the XML files, that describe the ZCL specifi
     <xs:attribute name="max" type="integerWithHex"/>
     <xs:attribute name="default" type="xs:string"/>
     <xs:attribute name="isNullable" type="xs:boolean"/>
+    <xs:attribute name="optional" type="xs:boolean" default="false"/>
   </xs:complexType>
   <xs:complexType name="featureBit" mixed="true">
     <xs:attribute name="tag" use="required" type="xs:string"/>
@@ -263,7 +264,11 @@ This schema describes the format of the XML files, that describe the ZCL specifi
   <xs:element name="bitmap">
     <xs:complexType>
       <xs:sequence>
-        <xs:element minOccurs="0" maxOccurs="unbounded" name="cluster"/>
+        <xs:element minOccurs="0" maxOccurs="unbounded" name="cluster">
+          <xs:complexType>
+            <xs:attribute name="code" type="integerWithHex"/>
+          </xs:complexType>
+        </xs:element>
         <xs:element maxOccurs="unbounded" ref="field"/>
       </xs:sequence>
       <xs:attribute name="name" use="required" type="xs:string"/>

From 54b56c92d4d0e9b1949901b26a0c42865b5b653d Mon Sep 17 00:00:00 2001
From: marcos <15697303+gmarcosb@users.noreply.github.com>
Date: Fri, 20 Sep 2024 14:53:22 -0600
Subject: [PATCH 13/20] Additional schema fixes

---
 src/app/zap-templates/zcl/zcl.xsd | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/app/zap-templates/zcl/zcl.xsd b/src/app/zap-templates/zcl/zcl.xsd
index 6dd72aa31e0a25..6bdc5bbc14cd3c 100644
--- a/src/app/zap-templates/zcl/zcl.xsd
+++ b/src/app/zap-templates/zcl/zcl.xsd
@@ -10,7 +10,7 @@ This schema describes the format of the XML files, that describe the ZCL specifi
   </xs:annotation>
   <xs:simpleType name="integerWithHex">
     <xs:restriction base="xs:string">
-      <xs:pattern value="-?0x[0-9A-Fa-f]+|[0-9]+"/>
+      <xs:pattern value="[-+]?0x[0-9A-Fa-f]+|[0-9]+"/>
     </xs:restriction>
   </xs:simpleType>
   <xs:complexType name="access">
@@ -65,6 +65,7 @@ This schema describes the format of the XML files, that describe the ZCL specifi
     <xs:attribute name="fieldId" type="integerWithHex"/>
     <xs:attribute name="min" type="integerWithHex"/>
     <xs:attribute name="max" type="integerWithHex"/>
+    <xs:attribute name="length" type="integerWithHex"/>
     <xs:attribute name="default" type="xs:string"/>
     <xs:attribute name="isNullable" type="xs:boolean"/>
     <xs:attribute name="optional" type="xs:boolean" default="false"/>
@@ -297,6 +298,7 @@ This schema describes the format of the XML files, that describe the ZCL specifi
     <xs:complexType>
       <xs:attribute name="choice" type="xs:string"/>
       <xs:attribute name="more" type="xs:boolean"/>
+      <xs:attribute name="min" type="integerWithHex"/>
     </xs:complexType>
   </xs:element>
   <xs:element name="cluster">

From 8e50828cc9cef769c232ff3d5cae429d426b793a Mon Sep 17 00:00:00 2001
From: marcos <15697303+gmarcosb@users.noreply.github.com>
Date: Fri, 20 Sep 2024 14:55:35 -0600
Subject: [PATCH 14/20] Fix file references

---
 src/app/zap-templates/zcl/data-model/all.xml | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/src/app/zap-templates/zcl/data-model/all.xml b/src/app/zap-templates/zcl/data-model/all.xml
index a6146759040ec5..87f566b6d69a75 100644
--- a/src/app/zap-templates/zcl/data-model/all.xml
+++ b/src/app/zap-templates/zcl/data-model/all.xml
@@ -27,10 +27,8 @@
    <xi:include href="chip/diagnostic-logs-cluster.xml" />
    <xi:include href="chip/dishwasher-alarm-cluster.xml" />
    <xi:include href="chip/dishwasher-mode-cluster.xml" />
-   <xi:include href="chip/drlc.xml" />
    <xi:include href="chip/electrical-energy-measurement-cluster.xml" />
    <xi:include href="chip/electrical-power-measurement-cluster.xml" />
-   <xi:include href="chip/meas-and-sense.xml" />
    <xi:include href="chip/microwave-oven-mode-cluster.xml" />
    <xi:include href="chip/microwave-oven-control-cluster.xml" />
    <xi:include href="chip/door-lock-cluster.xml" />
@@ -128,6 +126,6 @@
    <xi:include href="draft/web-rtc-provider-cluster.xml" />
    <xi:include href="draft/web-rtc-requestor-cluster.xml" />
    <xi:include href="draft/push-av-stream-transport-cluster.xml" />
-   <xi:include href="draft/chime.xml" />
+   <xi:include href="draft/chime-cluster.xml" />
    <xi:include href="chip/sample-mei-cluster.xml" />
 </all>

From 1c78f6444f82e6c350d3c192a65d86aa8562a04c Mon Sep 17 00:00:00 2001
From: marcos <15697303+gmarcosb@users.noreply.github.com>
Date: Fri, 20 Sep 2024 14:55:52 -0600
Subject: [PATCH 15/20] Fix negative int pattern

---
 src/app/zap-templates/zcl/zcl.xsd | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/app/zap-templates/zcl/zcl.xsd b/src/app/zap-templates/zcl/zcl.xsd
index 6bdc5bbc14cd3c..64950b0424f3c7 100644
--- a/src/app/zap-templates/zcl/zcl.xsd
+++ b/src/app/zap-templates/zcl/zcl.xsd
@@ -10,7 +10,7 @@ This schema describes the format of the XML files, that describe the ZCL specifi
   </xs:annotation>
   <xs:simpleType name="integerWithHex">
     <xs:restriction base="xs:string">
-      <xs:pattern value="[-+]?0x[0-9A-Fa-f]+|[0-9]+"/>
+      <xs:pattern value="[-+]?(0x[0-9A-Fa-f]+|[0-9]+)"/>
     </xs:restriction>
   </xs:simpleType>
   <xs:complexType name="access">

From e772ad17a8cf5eb6803680af96c99736cafa8995 Mon Sep 17 00:00:00 2001
From: marcos <15697303+gmarcosb@users.noreply.github.com>
Date: Fri, 20 Sep 2024 15:37:42 -0600
Subject: [PATCH 16/20] ZCL JSON changes for camera

---
 .../zcl/zcl-with-test-extensions.json         | 76 +++++++++++++++++++
 src/app/zap-templates/zcl/zcl.json            | 76 +++++++++++++++++++
 2 files changed, 152 insertions(+)

diff --git a/src/app/zap-templates/zcl/zcl-with-test-extensions.json b/src/app/zap-templates/zcl/zcl-with-test-extensions.json
index bccd77c0c1f750..566c3ff3d541db 100644
--- a/src/app/zap-templates/zcl/zcl-with-test-extensions.json
+++ b/src/app/zap-templates/zcl/zcl-with-test-extensions.json
@@ -750,6 +750,82 @@
             "CurrentArea",
             "EstimatedEndTime",
             "FeatureMap"
+        ],
+        "Camera AV Settings User Level Management": [
+            "Mptz",
+            "MaxPresets",
+            "PresetMptzTable",
+            "MptzRelativeMove",
+            "DptzRelativeMove"
+        ],
+        "Camera AV Stream Management": [
+            "MaxConcurrentVideoEncoders",
+            "MaxEncodedPixelRate",
+            "VideoSensorParams",
+            "NightVisionCapable",
+            "MinViewPortWidth",
+            "MinViewPortHeight",
+            "RateDistortionTradeOffPoints",
+            "MaxPreRollBufferSize",
+            "MicrophoneCapabilities",
+            "SpeakerCapabilities",
+            "TwoWayTalkSupport",
+            "SupportedSnapshotParams",
+            "HDRCapable",
+            "MaxNetworkBandwidth",
+            "CurrentFrameRate",
+            "HDRMode",
+            "CurrentVideoCodecs",
+            "CurrentSnapshotConfig",
+            "FabricsUsingCamera",
+            "AllocatedVideoStreams",
+            "AllocatedAudioStreams",
+            "AllocatedSnapshotStreams",
+            "RankedVideoStreamPrioritiesList",
+            "SoftRecordingPrivacyModeSetting",
+            "SoftLivestreamPrivacyModeSetting",
+            "HardPrivacyMode",
+            "NightVision",
+            "NightVisionIllum",
+            "AWB",
+            "ShutterSpeed",
+            "ISO",
+            "Viewport",
+            "SpkrOnOff",
+            "SpkrVolumeLevel",
+            "SpkrMaxLevel",
+            "SpkrMinLevel",
+            "MicOnOff",
+            "MicCurrentLevel",
+            "MicMaxLevel",
+            "MicMinLevel",
+            "MicAGC",
+            "ImageRotation",
+            "ImageFlipHorizontal",
+            "ImageFlipVertical",
+            "LocalVideoRecordingEnabled",
+            "LocalSnapshotRecordingEnabled",
+            "StatusLight",
+            "StatusLightBrightness",
+            "DepthSensorStatus",
+            "WatermarkEnabled",
+            "OSDEnabled"
+        ],
+        "Chime": [
+            "InstalledChimeSounds",
+            "ActiveChimeSoundId",
+            "Enabled"
+        ],
+        "Push AV Stream Transport": [
+            "SupportedContainerFormats",
+            "SupportedIngestMethods",
+            "CurrentConnections"
+        ],
+        "WebRTC Transport Provider": [
+            "CurrentSessions"
+        ],
+        "WebRTC Transport Requestor": [
+            "CurrentSessions"
         ]
     },
     "defaultReportingPolicy": "mandatory",
diff --git a/src/app/zap-templates/zcl/zcl.json b/src/app/zap-templates/zcl/zcl.json
index 0e84ef8cb41dc6..a73c8d2ca2824c 100644
--- a/src/app/zap-templates/zcl/zcl.json
+++ b/src/app/zap-templates/zcl/zcl.json
@@ -748,6 +748,82 @@
             "CurrentArea",
             "EstimatedEndTime",
             "FeatureMap"
+        ],
+        "Camera AV Settings User Level Management": [
+            "Mptz",
+            "MaxPresets",
+            "PresetMptzTable",
+            "MptzRelativeMove",
+            "DptzRelativeMove"
+        ],
+        "Camera AV Stream Management": [
+            "MaxConcurrentVideoEncoders",
+            "MaxEncodedPixelRate",
+            "VideoSensorParams",
+            "NightVisionCapable",
+            "MinViewPortWidth",
+            "MinViewPortHeight",
+            "RateDistortionTradeOffPoints",
+            "MaxPreRollBufferSize",
+            "MicrophoneCapabilities",
+            "SpeakerCapabilities",
+            "TwoWayTalkSupport",
+            "SupportedSnapshotParams",
+            "HDRCapable",
+            "MaxNetworkBandwidth",
+            "CurrentFrameRate",
+            "HDRMode",
+            "CurrentVideoCodecs",
+            "CurrentSnapshotConfig",
+            "FabricsUsingCamera",
+            "AllocatedVideoStreams",
+            "AllocatedAudioStreams",
+            "AllocatedSnapshotStreams",
+            "RankedVideoStreamPrioritiesList",
+            "SoftRecordingPrivacyModeSetting",
+            "SoftLivestreamPrivacyModeSetting",
+            "HardPrivacyMode",
+            "NightVision",
+            "NightVisionIllum",
+            "AWB",
+            "ShutterSpeed",
+            "ISO",
+            "Viewport",
+            "SpkrOnOff",
+            "SpkrVolumeLevel",
+            "SpkrMaxLevel",
+            "SpkrMinLevel",
+            "MicOnOff",
+            "MicCurrentLevel",
+            "MicMaxLevel",
+            "MicMinLevel",
+            "MicAGC",
+            "ImageRotation",
+            "ImageFlipHorizontal",
+            "ImageFlipVertical",
+            "LocalVideoRecordingEnabled",
+            "LocalSnapshotRecordingEnabled",
+            "StatusLight",
+            "StatusLightBrightness",
+            "DepthSensorStatus",
+            "WatermarkEnabled",
+            "OSDEnabled"
+        ],
+        "Chime": [
+            "InstalledChimeSounds",
+            "ActiveChimeSoundId",
+            "Enabled"
+        ],
+        "Push AV Stream Transport": [
+            "SupportedContainerFormats",
+            "SupportedIngestMethods",
+            "CurrentConnections"
+        ],
+        "WebRTC Transport Provider": [
+            "CurrentSessions"
+        ],
+        "WebRTC Transport Requestor": [
+            "CurrentSessions"
         ]
     },
     "defaultReportingPolicy": "mandatory",

From 338137c6c48e7bf11718ef0d4dcf330615edb93a Mon Sep 17 00:00:00 2001
From: marcos <15697303+gmarcosb@users.noreply.github.com>
Date: Mon, 23 Sep 2024 11:27:57 -0600
Subject: [PATCH 17/20] Revert "Fixes to reflect updated spec"

This reverts commit 01c4f87c3467db3c36b65cc5b5f6c7cb698e92b8.
---
 .../zcl/data-model/chip/global-bitmaps.xml    | 22 ++----
 .../zcl/data-model/chip/global-structs.xml    | 73 +++----------------
 .../draft/web-rtc-provider-cluster.xml        | 20 ++++-
 .../draft/web-rtc-requestor-cluster.xml       |  2 +-
 4 files changed, 34 insertions(+), 83 deletions(-)

diff --git a/src/app/zap-templates/zcl/data-model/chip/global-bitmaps.xml b/src/app/zap-templates/zcl/data-model/chip/global-bitmaps.xml
index 89ba1a810c00b0..fc70c0bf5143a9 100644
--- a/src/app/zap-templates/zcl/data-model/chip/global-bitmaps.xml
+++ b/src/app/zap-templates/zcl/data-model/chip/global-bitmaps.xml
@@ -14,35 +14,23 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
+
 <!--
 TODO: Make these structures global rather than defining them for each cluster.
  This depends on the ability to define global structs via XML tags.
  see: https://github.com/project-chip/connectedhomeip/issues/29818
 -->
+
 <configurator>
   <domain name="CHIP"/>
+
   <!--
     These are test global items (no cluster attached) for testing only.
     Their usage is defined for UnitTestCluster only.
   -->
   <bitmap name="TestGlobalBitmap" type="bitmap32">
-    <field mask="0x00000002" name="FirstBit"/>
-    <field mask="0x00000004" name="SecondBit"/>
+    <field mask="0x01" name="FirstBit" />
+    <field mask="0x02" name="SecondBit" />
   </bitmap>
 
-  <bitmap name="WebRTCMetadataOptions" type="bitmap8">
-    <field name="DataTLV" mask="0x01"/>
-  </bitmap>
-
-  <bitmap name="WildcardPathFlagsBitmap" type="bitmap8">
-    <field name="WildcardSkipRootNode" mask="0x01"/>
-    <field name="WildcardSkipGlobalAttributes" mask="0x02"/>
-    <field name="WildcardSkipAttributeList" mask="0x04"/>
-    <field name="Reserved" mask="0x08"/>
-    <field name="WildcardSkipCommandLists" mask="0x10"/>
-    <field name="WildcardSkipCustomElements" mask="0x20"/>
-    <field name="WildcardSkipFixedAttributes" mask="0x40"/>
-    <field name="WildcardSkipChangesOmittedAttributes" mask="0x80"/>
-    <field name="WildcardSkipDiagnosticsClusters" mask="0x100"/>
-  </bitmap>
 </configurator>
diff --git a/src/app/zap-templates/zcl/data-model/chip/global-structs.xml b/src/app/zap-templates/zcl/data-model/chip/global-structs.xml
index 9afe9918b56b20..743fdf366b724b 100644
--- a/src/app/zap-templates/zcl/data-model/chip/global-structs.xml
+++ b/src/app/zap-templates/zcl/data-model/chip/global-structs.xml
@@ -14,84 +14,29 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
+
 <configurator>
   <domain name="CHIP"/>
+
   <struct name="AtomicAttributeStatusStruct">
-    <item fieldId="0" name="AttributeID" type="attrib_id"/>
+    <item fieldId="0" name="AttributeID" type="attrib_id" />
     <item fieldId="1" name="StatusCode" type="status"/>
   </struct>
 
-  <struct name="AttributionData" apiMaturity="provisional" isFabricScoped="true">
-    <item fieldId="0" name="ContextInformation" type="enum8"/>
-    <item fieldId="1" name="SourceContext" type="int32u" optional="true" isFabricSensitive="true"/>
-    <item fieldId="2" name="NodeID" type="node_id" optional="true" isFabricSensitive="true"/>
-    <item fieldId="3" name="GroupD" type="group_id" optional="true" isFabricSensitive="true"/>
-    <item fieldId="4" name="SystemTimeStamp" type="systime_ms" optional="true"/>
-    <item fieldId="5" name="EpochTimeStamp" type="posix_ms" optional="true"/>
-    <item fieldId="254" name="FabricIndex" type="fabric_idx" isNullable="true"/>
-  </struct>
-
-  <struct name="Date" apiMaturity="provisional">
-    <item fieldId="0" name="Year" type="int8u" isNullable="true"/>
-    <item fieldId="1" name="Month" type="int8u" isNullable="true" min="1" max="12"/>
-    <item fieldId="2" name="Day" type="int8u" isNullable="true" min="1" max="31"/>
-    <item fieldId="3" name="DayOfWeek" type="int8u" isNullable="true" min="1" max="7"/>
-  </struct>
-
   <struct name="LocationDescriptorStruct">
-    <item fieldId="0" name="LocationName" type="char_string" length="128"/>
-    <item fieldId="1" name="FloorNumber" type="int16s" isNullable="true"/>
-    <item fieldId="2" name="AreaType" type="tag" isNullable="true"/>
+    <item fieldId="0" name="LocationName"    type="char_string" length="128" isNullable="false" optional="false"/>
+    <item fieldId="1" name="FloorNumber"     type="int16s"                   isNullable="true"  optional="false"/>
+    <item fieldId="2" name="AreaType"        type="AreaTypeTag"              isNullable="true"  optional="false"/>
   </struct>
 
   <!--
     These are test global items (no cluster attached) for testing only.
     Their usage is defined for UnitTestCluster only.
   -->
-  <struct name="MeasurementAccuracyRangeStruct" apiMaturity="provisional">
-    <item fieldId="0" name="RangeMin" type="int64s" min="-4611686018427387904" max="4611686018427387904"/>
-    <item fieldId="1" name="RangeMax" type="int64s" min="-4611686018427387904" max="4611686018427387904"/>
-    <item fieldId="2" name="PercentMax" type="percent100ths" optional="true"/>
-    <item fieldId="3" name="PercentMin" type="percent100ths" optional="true"/>
-    <item fieldId="4" name="PercentTypical" type="percent100ths" optional="true"/>
-    <item fieldId="5" name="FixedMax" type="int64u" optional="true" max="4611686018427387903"/>
-    <item fieldId="6" name="FixedMin" type="int64u" optional="true" max="4611686018427387903"/>
-    <item fieldId="7" name="FixedTypical" type="int64u" optional="true" max="4611686018427387903"/>
-  </struct>
-
-  <struct name="MeasurementAccuracyStruct" apiMaturity="provisional">
-    <item fieldId="0" name="MeasurementType" type="MeasurementTypeEnum" min="0x0000" max="0x000E"/>
-    <item fieldId="1" name="Measured" type="boolean" default="0"/>
-    <item fieldId="2" name="MinMeasuredValue" type="int64s" min="-4611686018427387904" max="4611686018427387904"/>
-    <item fieldId="3" name="MaxMeasuredValue" type="int64s" min="-4611686018427387904" max="4611686018427387904"/>
-    <item fieldId="4" name="AccuracyRanges" array="true" type="MeasurementAccuracyRangeStruct" minLength="1"/>
-  </struct>
-
-  <struct name="SemanticTagStruct" apiMaturity="provisional">
-    <item fieldId="0" name="MfgCode" type="vendor_id" isNullable="true"/>
-    <item fieldId="1" name="NamespaceID" type="namespace"/>
-    <item fieldId="2" name="Tag" type="tag"/>
-    <item fieldId="3" name="Label" type="char_string" isNullable="true" optional="true" length="64"/>
-  </struct>
-
-  <struct name="SuppliedAttributionData" apiMaturity="provisional" isFabricScoped="true">
-    <item fieldId="0" name="ContextInformation" type="enum8"/>
-    <item fieldId="1" name="SourceContext" type="int32u" optional="true"/>
-  </struct>
-
+  
   <struct name="TestGlobalStruct">
-    <item fieldId="0" name="Name" type="char_string" length="128"/>
-    <item fieldId="1" name="MyBitmap" type="TestGlobalBitmap" isNullable="true"/>
+    <item fieldId="0" name="Name" type="char_string" length="128" isNullable="false" optional="false"/>
+    <item fieldId="1" name="MyBitmap" type="TestGlobalBitmap" isNullable="true" optional="false"/>
     <item fieldId="2" name="MyEnum" type="TestGlobalEnum" isNullable="true" optional="true"/>
   </struct>
-
-  <struct name="WebRTCSessionStruct" apiMaturity="provisional">
-    <item fieldId="1" name="ID" type="WebRTCSessionID"/>
-    <item fieldId="2" name="PeerNodeId" type="node_id"/>
-    <item fieldId="3" name="PeerFabricIndex" type="fabric_idx"/>
-    <item fieldId="4" name="StreamType" type="StreamTypeEnum" min="0x00" max="0x03"/>
-    <item fieldId="5" name="VideoStreamID" type="VideoStreamID" isNullable="true"/>
-    <item fieldId="6" name="AudioStreamID" type="AudioStreamID" isNullable="true"/>
-    <item fieldId="7" name="MetadataOptions" type="WebRTCMetadataOptions" default="0x00" min="0x00" max="0x01"/>
-  </struct>
 </configurator>
diff --git a/src/app/zap-templates/zcl/data-model/draft/web-rtc-provider-cluster.xml b/src/app/zap-templates/zcl/data-model/draft/web-rtc-provider-cluster.xml
index 8bdd8f0d4f047a..a677b5cf45898c 100644
--- a/src/app/zap-templates/zcl/data-model/draft/web-rtc-provider-cluster.xml
+++ b/src/app/zap-templates/zcl/data-model/draft/web-rtc-provider-cluster.xml
@@ -18,10 +18,16 @@ limitations under the License.
 XML generated by Alchemy; DO NOT EDIT.
 Source: src/app_clusters/WebRTC_Provider.adoc
 Parameters: in-progress 
-Git: 0.7-fall2024-ncr-1156-g1517df816-dirty
+Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
 -->
 <configurator xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../zcl.xsd">
   <domain name="General"/>
+  <bitmap name="WebRTCMetadataOptions" type="bitmap8">
+    <cluster code="0x0553"/>
+    <cluster code="0x0554"/>
+    <field name="DataTLV" mask="0x01"/>
+  </bitmap>
+
   <enum name="WebRTCEndReasonEnum" type="enum8">
     <cluster code="0x0553"/>
     <cluster code="0x0554"/>
@@ -48,6 +54,18 @@ Git: 0.7-fall2024-ncr-1156-g1517df816-dirty
     <item fieldId="4" name="CAID" type="int16u" optional="true"/>
   </struct>
 
+  <struct name="WebRTCSessionStruct" apiMaturity="provisional">
+    <cluster code="0x0553"/>
+    <cluster code="0x0554"/>
+    <item fieldId="1" name="ID" type="WebRTCSessionID"/>
+    <item fieldId="2" name="PeerNodeId" type="node_id"/>
+    <item fieldId="3" name="PeerFabricIndex" type="fabric_idx"/>
+    <item fieldId="4" name="StreamType" type="StreamTypeEnum" min="0x00" max="0x03"/>
+    <item fieldId="5" name="VideoStreamID" type="VideoStreamID" isNullable="true"/>
+    <item fieldId="6" name="AudioStreamID" type="AudioStreamID" isNullable="true"/>
+    <item fieldId="7" name="MetadataOptions" type="WebRTCMetadataOptions" default="0x00" min="0x00" max="0x01"/>
+  </struct>
+
   <cluster>
     <domain name="General"/>
     <name>WebRTC Transport Provider</name>
diff --git a/src/app/zap-templates/zcl/data-model/draft/web-rtc-requestor-cluster.xml b/src/app/zap-templates/zcl/data-model/draft/web-rtc-requestor-cluster.xml
index 2894baad2fba6f..a3c24bf4cb7db7 100644
--- a/src/app/zap-templates/zcl/data-model/draft/web-rtc-requestor-cluster.xml
+++ b/src/app/zap-templates/zcl/data-model/draft/web-rtc-requestor-cluster.xml
@@ -18,7 +18,7 @@ limitations under the License.
 XML generated by Alchemy; DO NOT EDIT.
 Source: src/app_clusters/WebRTC_Requestor.adoc
 Parameters: in-progress 
-Git: 0.7-fall2024-ncr-1156-g1517df816-dirty
+Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
 -->
 <configurator xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../zcl.xsd">
   <domain name="General"/>

From f1a09078fb28d609e18b0efaa16914d42612f2be Mon Sep 17 00:00:00 2001
From: marcos <15697303+gmarcosb@users.noreply.github.com>
Date: Mon, 23 Sep 2024 11:31:47 -0600
Subject: [PATCH 18/20] Remove automated alchemy changes for shared structures
 included elsewhere

---
 .../zcl/data-model/chip/global-enums.xml      | 52 ++-----------------
 .../zcl/data-model/chip/global-structs.xml    | 10 ++++
 2 files changed, 13 insertions(+), 49 deletions(-)

diff --git a/src/app/zap-templates/zcl/data-model/chip/global-enums.xml b/src/app/zap-templates/zcl/data-model/chip/global-enums.xml
index 08032f9acb2af3..54f38c1b6933e8 100644
--- a/src/app/zap-templates/zcl/data-model/chip/global-enums.xml
+++ b/src/app/zap-templates/zcl/data-model/chip/global-enums.xml
@@ -14,13 +14,16 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
+
 <!--
 TODO: Make these structures global rather than defining them for each cluster.
  This depends on the ability to define global structs via XML tags.
  see: https://github.com/project-chip/connectedhomeip/issues/29818
 -->
+
 <configurator>
   <domain name="CHIP"/>
+
   <enum name="AtomicRequestTypeEnum" type="enum8">
     <item name="BeginWrite" value="0x00"/>
     <item name="CommitWrite" value="0x01"/>
@@ -31,59 +34,10 @@ TODO: Make these structures global rather than defining them for each cluster.
     These are test global items (no cluster attached) for testing only.
     Their usage is defined for UnitTestCluster only.
   -->
-  <enum name="MeasurementTypeEnum" type="enum16">
-    <item name="Unspecified" value="0x0000"/>
-    <item name="Voltage" value="0x0001"/>
-    <item name="ActiveCurrent" value="0x0002"/>
-    <item name="ReactiveCurrent" value="0x0003"/>
-    <item name="ApparentCurrent" value="0x0004"/>
-    <item name="ActivePower" value="0x0005"/>
-    <item name="ReactivePower" value="0x0006"/>
-    <item name="ApparentPower" value="0x0007"/>
-    <item name="RMSVoltage" value="0x0008"/>
-    <item name="RMSCurrent" value="0x0009"/>
-    <item name="RMSPower" value="0x000A"/>
-    <item name="Frequency" value="0x000B"/>
-    <item name="PowerFactor" value="0x000C"/>
-    <item name="NeutralCurrent" value="0x000D"/>
-    <item name="ElectricalEnergy" value="0x000E"/>
-  </enum>
-
-  <enum name="ServerAttributionContextInformation" type="enum8">
-    <item name="ServerAutomationRule" value="0x0B"/>
-    <item name="ServerSchedule" value="0x0C"/>
-    <item name="ServerTimer" value="0x0D"/>
-    <item name="Security" value="0x0D"/>
-    <item name="DemandResponseEventOrSimilarServiceProviderSignalling" value="0x0E"/>
-    <item name="PhysicalInteractionOnDevice" value="0x0F"/>
-    <item name="InteractionViaAProtocolNotDefinedInThisSpecification" value="0x10"/>
-  </enum>
-
-  <enum name="SoftwareVersionCertificationStatusEnum" type="enum8">
-    <item name="dev-test" value="0x00"/>
-    <item name="provisional" value="0x01"/>
-    <item name="certified" value="0x02"/>
-    <item name="revoked" value="0x03"/>
-  </enum>
-
-  <enum name="SuppliedAttributionContextInformation" type="enum8">
-    <item name="DefaultClientAction" value="0x00"/>
-    <item name="UserInteraction" value="0x01"/>
-    <item name="ClientAutomationRule" value="0x02"/>
-    <item name="ClientSchedule" value="0x03"/>
-    <item name="ClientTimer" value="0x04"/>
-  </enum>
-
   <enum name="TestGlobalEnum" type="enum8">
     <item name="SomeValue" value="0x00"/>
     <item name="SomeOtherValue" value="0x01"/>
     <item name="FinalValue" value="0x02"/>
   </enum>
 
-  <enum name="ThreeLevelAutoEnum" type="enum8">
-    <item name="Low" value="0x00"/>
-    <item name="Medium" value="0x01"/>
-    <item name="High" value="0x02"/>
-    <item name="Auto" value="0x03"/>
-  </enum>
 </configurator>
diff --git a/src/app/zap-templates/zcl/data-model/chip/global-structs.xml b/src/app/zap-templates/zcl/data-model/chip/global-structs.xml
index 743fdf366b724b..77058f82e62653 100644
--- a/src/app/zap-templates/zcl/data-model/chip/global-structs.xml
+++ b/src/app/zap-templates/zcl/data-model/chip/global-structs.xml
@@ -29,6 +29,16 @@ limitations under the License.
     <item fieldId="2" name="AreaType"        type="AreaTypeTag"              isNullable="true"  optional="false"/>
   </struct>
 
+  <struct name="WebRTCSessionStruct" apiMaturity="provisional">
+    <item fieldId="1" name="ID" type="WebRTCSessionID"/>
+    <item fieldId="2" name="PeerNodeId" type="node_id"/>
+    <item fieldId="3" name="PeerFabricIndex" type="fabric_idx"/>
+    <item fieldId="4" name="StreamType" type="StreamTypeEnum" min="0x00" max="0x03"/>
+    <item fieldId="5" name="VideoStreamID" type="VideoStreamID" isNullable="true"/>
+    <item fieldId="6" name="AudioStreamID" type="AudioStreamID" isNullable="true"/>
+    <item fieldId="7" name="MetadataOptions" type="WebRTCMetadataOptions" default="0x00" min="0x00" max="0x01"/>
+  </struct>
+
   <!--
     These are test global items (no cluster attached) for testing only.
     Their usage is defined for UnitTestCluster only.

From 71f4926c4314f72333b3788d4b02fea3edade68a Mon Sep 17 00:00:00 2001
From: marcos <15697303+gmarcosb@users.noreply.github.com>
Date: Tue, 24 Sep 2024 16:45:55 -0600
Subject: [PATCH 19/20] Cleanup & fixing of type references so that ZAP
 generation works

---
 .../zcl/data-model/chip/global-bitmaps.xml    | 13 ++--
 .../zcl/data-model/chip/global-enums.xml      | 17 +++++-
 .../zcl/data-model/chip/global-structs.xml    | 26 ++++++--
 ...settings-user-level-management-cluster.xml |  6 +-
 .../camera-av-stream-management-cluster.xml   | 40 ++++++------
 .../zcl/data-model/draft/chime-cluster.xml    |  4 +-
 .../push-av-stream-transport-cluster.xml      | 28 ++++-----
 .../draft/web-rtc-provider-cluster.xml        | 61 ++++++-------------
 .../draft/web-rtc-requestor-cluster.xml       | 12 ++--
 9 files changed, 103 insertions(+), 104 deletions(-)

diff --git a/src/app/zap-templates/zcl/data-model/chip/global-bitmaps.xml b/src/app/zap-templates/zcl/data-model/chip/global-bitmaps.xml
index fc70c0bf5143a9..538c0914541fbc 100644
--- a/src/app/zap-templates/zcl/data-model/chip/global-bitmaps.xml
+++ b/src/app/zap-templates/zcl/data-model/chip/global-bitmaps.xml
@@ -14,23 +14,26 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
 <!--
 TODO: Make these structures global rather than defining them for each cluster.
  This depends on the ability to define global structs via XML tags.
  see: https://github.com/project-chip/connectedhomeip/issues/29818
 -->
-
 <configurator>
   <domain name="CHIP"/>
 
+  <bitmap name="WebRTCMetadataOptions" type="bitmap8">
+    <cluster code="0x0553"/>
+    <cluster code="0x0554"/>
+    <field name="DataTLV" mask="0x01"/>
+  </bitmap>
+
   <!--
     These are test global items (no cluster attached) for testing only.
     Their usage is defined for UnitTestCluster only.
   -->
   <bitmap name="TestGlobalBitmap" type="bitmap32">
-    <field mask="0x01" name="FirstBit" />
-    <field mask="0x02" name="SecondBit" />
+    <field mask="0x00000001" name="FirstBit"/>
+    <field mask="0x00000002" name="SecondBit"/>
   </bitmap>
-
 </configurator>
diff --git a/src/app/zap-templates/zcl/data-model/chip/global-enums.xml b/src/app/zap-templates/zcl/data-model/chip/global-enums.xml
index 54f38c1b6933e8..9f71a0d08090d3 100644
--- a/src/app/zap-templates/zcl/data-model/chip/global-enums.xml
+++ b/src/app/zap-templates/zcl/data-model/chip/global-enums.xml
@@ -14,13 +14,11 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
 <!--
 TODO: Make these structures global rather than defining them for each cluster.
  This depends on the ability to define global structs via XML tags.
  see: https://github.com/project-chip/connectedhomeip/issues/29818
 -->
-
 <configurator>
   <domain name="CHIP"/>
 
@@ -30,6 +28,21 @@ TODO: Make these structures global rather than defining them for each cluster.
     <item name="RollbackWrite" value="0x02"/>
   </enum>
 
+  <enum name="StreamTypeEnum" type="enum8">
+    <cluster code="0x0553"/>
+    <cluster code="0x0554"/>
+    <item name="Internal" value="0x00"/>
+    <item name="Recording" value="0x01"/>
+    <item name="Analysis" value="0x02"/>
+    <item name="LiveView" value="0x03"/>
+  </enum>
+
+  <enum name="ThreeLevelAutoEnum" type="enum8">
+    <item name="Low" value="0x00"/>
+    <item name="Medium" value="0x01"/>
+    <item name="High" value="0x02"/>
+    <item name="Automatic" value="0x03"/>
+  </enum>
   <!--
     These are test global items (no cluster attached) for testing only.
     Their usage is defined for UnitTestCluster only.
diff --git a/src/app/zap-templates/zcl/data-model/chip/global-structs.xml b/src/app/zap-templates/zcl/data-model/chip/global-structs.xml
index 77058f82e62653..2516b1a1e2e6d9 100644
--- a/src/app/zap-templates/zcl/data-model/chip/global-structs.xml
+++ b/src/app/zap-templates/zcl/data-model/chip/global-structs.xml
@@ -17,7 +17,6 @@ limitations under the License.
 
 <configurator>
   <domain name="CHIP"/>
-
   <struct name="AtomicAttributeStatusStruct">
     <item fieldId="0" name="AttributeID" type="attrib_id" />
     <item fieldId="1" name="StatusCode" type="status"/>
@@ -30,20 +29,37 @@ limitations under the License.
   </struct>
 
   <struct name="WebRTCSessionStruct" apiMaturity="provisional">
-    <item fieldId="1" name="ID" type="WebRTCSessionID"/>
+    <cluster code="0x0553"/>
+    <cluster code="0x0554"/>
+    <item fieldId="1" name="ID" type="int16u"/>
     <item fieldId="2" name="PeerNodeId" type="node_id"/>
     <item fieldId="3" name="PeerFabricIndex" type="fabric_idx"/>
     <item fieldId="4" name="StreamType" type="StreamTypeEnum" min="0x00" max="0x03"/>
-    <item fieldId="5" name="VideoStreamID" type="VideoStreamID" isNullable="true"/>
-    <item fieldId="6" name="AudioStreamID" type="AudioStreamID" isNullable="true"/>
+    <item fieldId="5" name="VideoStreamID" type="int16u" isNullable="true"/>
+    <item fieldId="6" name="AudioStreamID" type="int16u" isNullable="true"/>
     <item fieldId="7" name="MetadataOptions" type="WebRTCMetadataOptions" default="0x00" min="0x00" max="0x01"/>
   </struct>
 
+  <struct name="ICEServerStruct" apiMaturity="provisional">
+    <cluster code="0x0553"/>
+    <cluster code="0x0554"/>
+    <item fieldId="1" name="urls" array="true" type="char_string"/>
+    <item fieldId="2" name="username" type="char_string" optional="true"/>
+    <item fieldId="3" name="credential" type="char_string" optional="true"/>
+    <item fieldId="4" name="CAID" type="int16u" optional="true"/>
+  </struct>
+
+  <struct name="PerStreamStruct" apiMaturity="provisional">
+    <cluster code="0x0551"/>
+    <cluster code="0x0552"/>
+    <item fieldId="0" name="StreamID" type="int16u"/>
+    <item fieldId="1" name="OnOff" type="boolean"/>
+  </struct>
   <!--
     These are test global items (no cluster attached) for testing only.
     Their usage is defined for UnitTestCluster only.
   -->
-  
+
   <struct name="TestGlobalStruct">
     <item fieldId="0" name="Name" type="char_string" length="128" isNullable="false" optional="false"/>
     <item fieldId="1" name="MyBitmap" type="TestGlobalBitmap" isNullable="true" optional="false"/>
diff --git a/src/app/zap-templates/zcl/data-model/draft/camera-av-settings-user-level-management-cluster.xml b/src/app/zap-templates/zcl/data-model/draft/camera-av-settings-user-level-management-cluster.xml
index eaec626bd297e1..3556cb650d4d01 100644
--- a/src/app/zap-templates/zcl/data-model/draft/camera-av-settings-user-level-management-cluster.xml
+++ b/src/app/zap-templates/zcl/data-model/draft/camera-av-settings-user-level-management-cluster.xml
@@ -35,7 +35,7 @@ Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
     <name>Camera AV Settings User Level Management</name>
     <code>0x0552</code>
     <define>CAMERA_AV_SETTINGS_USER_LEVEL_MANAGEMENT_CLUSTER</define>
-    <description/>
+    <description>This cluster provides an interface into controls associated with the operation of a device that provides pan, tilt, and zoom functions, either mechanically, or against a digital image.</description>
     <client init="false" tick="false">true</client>
     <features>
       <feature bit="0" code="MPTZ" name="MechanicalPTZ" summary="Mechanical PTZ supported">
@@ -71,13 +71,13 @@ Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
 
     <command code="0x03" source="client" name="DptzSetViewport" optional="true">
       <description>This command SHALL set the viewport in the digital PTZ for a specific Video Stream.</description>
-      <arg id="0" name="VideoStreamID" type="VideoStreamID"/>
+      <arg id="0" name="VideoStreamID" type="int16u"/>
       <arg id="1" name="Viewport" type="ViewportStruct"/>
     </command>
 
     <command code="0x04" source="client" name="DptzRelativeMove" optional="true">
       <description>This command SHALL change the viewports location by the amount specified in a relative fashion.</description>
-      <arg id="0" name="VideoStreamID" type="VideoStreamID"/>
+      <arg id="0" name="VideoStreamID" type="int16u"/>
       <arg id="1" name="Pan" type="int16s" default="0"/>
       <arg id="2" name="Tilt" type="int16s" default="0"/>
       <arg id="3" name="Zoom" type="int8s" default="0" min="-100" max="100"/>
diff --git a/src/app/zap-templates/zcl/data-model/draft/camera-av-stream-management-cluster.xml b/src/app/zap-templates/zcl/data-model/draft/camera-av-stream-management-cluster.xml
index bf1fd4bdda8b25..642926a42b7fa4 100644
--- a/src/app/zap-templates/zcl/data-model/draft/camera-av-stream-management-cluster.xml
+++ b/src/app/zap-templates/zcl/data-model/draft/camera-av-stream-management-cluster.xml
@@ -76,7 +76,7 @@ Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
 
   <struct name="AudioStreamStruct" apiMaturity="provisional">
     <cluster code="0x0551"/>
-    <item fieldId="0" name="AudioStreamID" type="AudioStreamID"/>
+    <item fieldId="0" name="AudioStreamID" type="int16u"/>
     <item fieldId="1" name="StreamType" type="StreamTypeEnum" min="0x00" max="0x03"/>
     <item fieldId="2" name="AudioCodec" type="AudioCodecEnum" min="0x00" max="0x01"/>
     <item fieldId="3" name="ChannelCount" type="int8u"/>
@@ -86,13 +86,6 @@ Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
     <item fieldId="7" name="ReferenceCount" type="int8u"/>
   </struct>
 
-  <struct name="PerStreamStruct" apiMaturity="provisional">
-    <cluster code="0x0551"/>
-    <cluster code="0x0552"/>
-    <item fieldId="0" name="StreamID" type="unit8"/>
-    <item fieldId="1" name="OnOff" type="boolean"/>
-  </struct>
-
   <struct name="RateDistortionTradeOffPointsStruct" apiMaturity="provisional">
     <cluster code="0x0551"/>
     <item fieldId="0" name="Codec" type="VideoCodecEnum" min="0x00" max="0x03"/>
@@ -109,7 +102,7 @@ Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
 
   <struct name="SnapshotStreamStruct" apiMaturity="provisional">
     <cluster code="0x0551"/>
-    <item fieldId="0" name="SnapshotStreamID" type="SnapshotStreamID"/>
+    <item fieldId="0" name="SnapshotStreamID" type="int16u"/>
     <item fieldId="1" name="ImageCodec" type="ImageCodecEnum" min="0x00" max="0x00"/>
     <item fieldId="2" name="FrameRate" type="int16u"/>
     <item fieldId="3" name="BitRate" type="int32u"/>
@@ -130,7 +123,7 @@ Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
 
   <struct name="VideoStreamStruct" apiMaturity="provisional">
     <cluster code="0x0551"/>
-    <item fieldId="0" name="VideoStreamID" type="VideoStreamID"/>
+    <item fieldId="0" name="VideoStreamID" type="int16u"/>
     <item fieldId="1" name="StreamType" type="StreamTypeEnum" min="0x00" max="0x03"/>
     <item fieldId="2" name="VideoCodec" type="VideoCodecEnum" min="0x00" max="0x03"/>
     <item fieldId="3" name="MinFrameRate" type="int16u"/>
@@ -153,12 +146,13 @@ Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
     <item fieldId="3" name="Y2" type="int16u" default="0"/>
   </struct>
 
-  <cluster>
+  <cluster apiMaturity="provisional">
     <domain name="General"/>
     <name>Camera AV Stream Management</name>
     <code>0x0551</code>
     <define>CAMERA_AV_STREAM_MANAGEMENT_CLUSTER</define>
-    <description/>
+    <description>This cluster is used to allow clients to manage, control, and configure various
+      audio, video, and snapshot streams on a camera.</description>
     <client init="false" tick="false">true</client>
     <features>
       <feature bit="0" code="PRIV" name="Privacy" summary="Privacy supported">
@@ -427,13 +421,13 @@ Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
 
     <command code="0x01" source="server" name="AudioStreamAllocateResponse" optional="true" disableDefaultResponse="true">
       <description>This command SHALL be sent by the camera in response to the AudioStreamAllocate command, carrying the newly allocated audio stream identifier.</description>
-      <arg id="0" name="AudioStreamID" type="AudioStreamID"/>
+      <arg id="0" name="AudioStreamID" type="int16u"/>
     </command>
 
     <command code="0x02" source="client" name="AudioStreamDeallocate" optional="true">
       <description>This command SHALL deallocate an audio stream on the camera, corresponding to the given audio stream identifier.</description>
       <access op="invoke" privilege="administer"/>
-      <arg id="0" name="AudioStreamID" type="AudioStreamID"/>
+      <arg id="0" name="AudioStreamID" type="int16u"/>
     </command>
 
     <command code="0x03" source="client" name="VideoStreamAllocate" optional="true" response="VideoStreamAllocateResponse">
@@ -453,20 +447,20 @@ Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
 
     <command code="0x04" source="server" name="VideoStreamAllocateResponse" optional="true" disableDefaultResponse="true">
       <description>This command SHALL be sent by the camera in response to the VideoStreamAllocate command, carrying the newly allocated video stream identifier.</description>
-      <arg id="0" name="VideoStreamID" type="VideoStreamID"/>
+      <arg id="0" name="VideoStreamID" type="int16u"/>
     </command>
 
     <command code="0x05" source="client" name="VideoStreamModify" optional="true">
       <description>This command SHALL be used to modify the resolution of a stream specified by the VideoStreamID.</description>
       <access op="invoke" privilege="administer"/>
-      <arg id="0" name="VideoStreamID" type="VideoStreamID"/>
+      <arg id="0" name="VideoStreamID" type="int16u"/>
       <arg id="1" name="Resolution" type="DimensionStruct"/>
     </command>
 
     <command code="0x06" source="client" name="VideoStreamDeallocate" optional="true">
       <description>This command SHALL deallocate a video stream on the camera, corresponding to the given video stream identifier.</description>
       <access op="invoke" privilege="administer"/>
-      <arg id="0" name="VideoStreamID" type="VideoStreamID"/>
+      <arg id="0" name="VideoStreamID" type="int16u"/>
     </command>
 
     <command code="0x07" source="client" name="SnapshotStreamAllocate" optional="true" response="SnapshotStreamAllocateResponse">
@@ -482,13 +476,13 @@ Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
 
     <command code="0x08" source="server" name="SnapshotStreamAllocateResponse" optional="true" disableDefaultResponse="true">
       <description>This command SHALL be sent by the device in response to the SnapshotStreamAllocate command, carrying the newly allocated snapshot stream identifier.</description>
-      <arg id="0" name="SnapshotStreamID" type="SnapshotStreamID"/>
+      <arg id="0" name="SnapshotStreamID" type="int16u"/>
     </command>
 
     <command code="0x09" source="client" name="SnapshotStreamDeallocate" optional="true">
       <description>This command SHALL deallocate an snapshot stream on the camera, corresponding to the given snapshot stream identifier.</description>
       <access op="invoke" privilege="administer"/>
-      <arg id="0" name="SnapshotStreamID" type="SnapshotStreamID"/>
+      <arg id="0" name="SnapshotStreamID" type="int16u"/>
     </command>
 
     <command code="0x0A" source="client" name="SetStreamPriority" optional="false">
@@ -499,7 +493,7 @@ Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
     <command code="0x0B" source="client" name="CaptureSnapshot" optional="true">
       <description>This command SHALL return a Snapshot from the camera.</description>
       <access op="invoke" privilege="administer"/>
-      <arg id="0" name="SnapshotStreamID" type="SnapshotStreamID"/>
+      <arg id="0" name="SnapshotStreamID" type="int16u"/>
       <arg id="1" name="RequestedResolution" type="DimensionStruct"/>
     </command>
 
@@ -531,7 +525,7 @@ Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
     </command>
 
     <event code="0x0000" name="VideoStreamChanged" priority="info" side="server" optional="true">
-      <field id="0" name="VideoStreamID" type="VideoStreamID"/>
+      <field id="0" name="VideoStreamID" type="int16u"/>
       <field id="1" name="StreamType" type="StreamTypeEnum" optional="true" min="0x00" max="0x03"/>
       <field id="2" name="VideoCodec" type="VideoCodecEnum" optional="true" min="0x00" max="0x03"/>
       <field id="3" name="MinFrameRate" type="int16u" optional="true"/>
@@ -546,7 +540,7 @@ Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
     </event>
 
     <event code="0x0001" name="AudioStreamChanged" priority="info" side="server" optional="true">
-      <field id="0" name="AudioStreamID" type="AudioStreamID"/>
+      <field id="0" name="AudioStreamID" type="int16u"/>
       <field id="1" name="StreamType" type="StreamTypeEnum" optional="true" min="0x00" max="0x03"/>
       <field id="2" name="AudioCodec" type="AudioCodecEnum" optional="true" min="0x00" max="0x01"/>
       <field id="3" name="ChannelCount" type="int8u" optional="true"/>
@@ -557,7 +551,7 @@ Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
     </event>
 
     <event code="0x0002" name="SnapshotStreamChanged" priority="info" side="server" optional="true">
-      <field id="0" name="SnapshotStreamID" type="SnapshotStreamID"/>
+      <field id="0" name="SnapshotStreamID" type="int16u"/>
       <field id="1" name="ImageCodec" type="ImageCodecEnum" optional="true" min="0x00" max="0x00"/>
       <field id="2" name="FrameRate" type="int16u" optional="true"/>
       <field id="3" name="BitRate" type="int32u" optional="true"/>
diff --git a/src/app/zap-templates/zcl/data-model/draft/chime-cluster.xml b/src/app/zap-templates/zcl/data-model/draft/chime-cluster.xml
index 7f89310a2531b3..bbf7a9f9198a70 100644
--- a/src/app/zap-templates/zcl/data-model/draft/chime-cluster.xml
+++ b/src/app/zap-templates/zcl/data-model/draft/chime-cluster.xml
@@ -28,12 +28,12 @@ Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
     <item fieldId="1" name="Name" type="char_string" length="48"/>
   </struct>
 
-  <cluster>
+  <cluster apiMaturity="provisional">
     <domain name="General"/>
     <name>Chime</name>
     <code>0x0556</code>
     <define>CHIME_CLUSTER</define>
-    <description/>
+    <description>This cluster provides facilities to configure and play Chime sounds, such as those used in a doorbell.</description>
     <client init="false" tick="false">true</client>
     <server init="false" tick="false">true</server>
     <globalAttribute code="0xFFFD" side="either" value="1"/>
diff --git a/src/app/zap-templates/zcl/data-model/draft/push-av-stream-transport-cluster.xml b/src/app/zap-templates/zcl/data-model/draft/push-av-stream-transport-cluster.xml
index 3370ef124f30ad..c90ae7909320a4 100644
--- a/src/app/zap-templates/zcl/data-model/draft/push-av-stream-transport-cluster.xml
+++ b/src/app/zap-templates/zcl/data-model/draft/push-av-stream-transport-cluster.xml
@@ -82,7 +82,7 @@ Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
 
   <struct name="PushAVStreamConfigurationStruct" apiMaturity="provisional">
     <cluster code="0x0555"/>
-    <item fieldId="0" name="ConnectionID" type="PushTransportConnectionID"/>
+    <item fieldId="0" name="ConnectionID" type="int16u"/>
     <item fieldId="1" name="StreamTransportStatus" type="PushAVStreamTransportStatusEnum" min="0x00" max="0x01"/>
     <item fieldId="2" name="StreamTransportOptions" type="PushAVStreamTransportOptionsStruct"/>
   </struct>
@@ -117,9 +117,9 @@ Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
   <struct name="PushAVStreamTransportOptionsStruct" apiMaturity="provisional">
     <cluster code="0x0555"/>
     <item fieldId="0" name="StreamType" type="StreamTypeEnum" min="0x00" max="0x03"/>
-    <item fieldId="1" name="VideoStreamID" type="VideoStreamID" isNullable="true" optional="true"/>
-    <item fieldId="2" name="AudioStreamID" type="AudioStreamID" isNullable="true" optional="true"/>
-    <item fieldId="3" name="TLSEndpointID" type="TLSEndpointID"/>
+    <item fieldId="1" name="VideoStreamID" type="int16u" isNullable="true" optional="true"/>
+    <item fieldId="2" name="AudioStreamID" type="int16u" isNullable="true" optional="true"/>
+    <item fieldId="3" name="TLSEndpointID" type="int16u"/>
     <item fieldId="4" name="URL" type="long_char_string" length="256"/>
     <item fieldId="5" name="TriggerOptions" type="PushAVStreamTransportTriggerOptionsStruct"/>
     <item fieldId="6" name="ContainerFormat" type="PushAVStreamTransportContainerFormatEnum" min="0x00" max="0x00"/>
@@ -132,7 +132,7 @@ Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
   <struct name="PushAVStreamTransportTriggerOptionsStruct" apiMaturity="provisional">
     <cluster code="0x0555"/>
     <item fieldId="0" name="TriggerType" type="PushAVStreamTransportTriggerTypeEnum" min="0x00" max="0x02"/>
-    <item fieldId="1" name="MotionZones" array="true" type="ZoneID" isNullable="true" optional="true"/>
+    <item fieldId="1" name="MotionZones" array="true" type="int16u" isNullable="true" optional="true"/>
     <item fieldId="2" name="MotionSensitivity" type="int8u" isNullable="true" optional="true" default="5" min="1" max="10"/>
     <item fieldId="3" name="MotionTimeControl" type="PushAVStreamTransportMotionTriggerTimeControlStruct" isNullable="true" optional="true"/>
     <item fieldId="4" name="ActivationReason" type="PushAVStreamTransportTriggerActivationReasonEnum" isNullable="true" optional="true" min="0x00" max="0x02"/>
@@ -143,13 +143,13 @@ Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
     <name>Push AV Stream Transport</name>
     <code>0x0555</code>
     <define>PUSH_AV_STREAM_TRANSPORT_CLUSTER</define>
-    <description/>
+    <description>This cluster implements the upload of Audio and Video streams from the Camera AV Stream Management Cluster using suitable push-based transports.</description>
     <client init="false" tick="false">true</client>
     <server init="false" tick="false">true</server>
     <globalAttribute code="0xFFFD" side="either" value="1"/>
     <attribute code="0x0000" side="server" define="SUPPORTED_CONTAINER_FORMATS" type="PushAVStreamTransportSupportedContainerFormatsBitmap" min="0x00" max="0x01">SupportedContainerFormats</attribute>
     <attribute code="0x0001" side="server" define="SUPPORTED_INGEST_METHODS" type="PushAVStreamTransportSupportedIngestMethodsBitmap" min="0x00" max="0x01">SupportedIngestMethods</attribute>
-    <attribute code="0x0002" side="server" define="CURRENT_CONNECTIONS" type="array" entryType="PushTransportConnectionID" default="0">CurrentConnections</attribute>
+    <attribute code="0x0002" side="server" define="CURRENT_CONNECTIONS" type="array" entryType="int16u" default="0">CurrentConnections</attribute>
     <command code="0x00" source="client" name="AllocatePushTransport" optional="false" response="AllocatePushTransportResponse">
       <description>This command SHALL allocate a transport and return a PushTransportConnectionID.</description>
       <access op="invoke" privilege="administer"/>
@@ -158,7 +158,7 @@ Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
 
     <command code="0x01" source="server" name="AllocatePushTransportResponse" optional="false" disableDefaultResponse="true">
       <description>This command SHALL be generated in response to an AllocatePushTransport command.</description>
-      <arg id="0" name="ConnectionID" type="PushTransportConnectionID"/>
+      <arg id="0" name="ConnectionID" type="int16u"/>
       <arg id="1" name="StreamTransportOptions" type="PushAVStreamTransportOptionsStruct"/>
       <arg id="2" name="TransportStatus" type="PushAVStreamTransportStatusEnum" min="0x00" max="0x01"/>
     </command>
@@ -166,27 +166,27 @@ Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
     <command code="0x02" source="client" name="DeallocatePushTransport" optional="false">
       <description>This command SHALL be generated to request the Node deallocates the specified transport.</description>
       <access op="invoke" privilege="administer"/>
-      <arg id="0" name="ConnectionID" type="PushTransportConnectionID"/>
+      <arg id="0" name="ConnectionID" type="int16u"/>
     </command>
 
     <command code="0x03" source="client" name="ModifyPushTransport" optional="false">
       <description>This command is used to request the Node modifies the configuration of the specified push transport.</description>
       <access op="invoke" privilege="administer"/>
-      <arg id="0" name="ConnectionID" type="PushTransportConnectionID"/>
+      <arg id="0" name="ConnectionID" type="int16u"/>
       <arg id="1" name="StreamTransportOptions" type="PushAVStreamTransportOptionsStruct"/>
     </command>
 
     <command code="0x04" source="client" name="SetTransportStatus" optional="false">
       <description>This command SHALL be generated to request the Node modifies the Transport Status of the transport.</description>
       <access op="invoke" privilege="administer"/>
-      <arg id="0" name="ConnectionID" type="PushTransportConnectionID" isNullable="true"/>
+      <arg id="0" name="ConnectionID" type="int16u" isNullable="true"/>
       <arg id="1" name="StreamTransportStatus" type="PushAVStreamTransportStatusEnum" min="0x00" max="0x01"/>
     </command>
 
     <command code="0x05" source="client" name="ManuallyTriggerTransport" optional="false">
       <description>This command SHALL be generated to request the Node to manually start the specified push transport.</description>
       <access op="invoke" privilege="administer"/>
-      <arg id="0" name="ConnectionID" type="PushTransportConnectionID"/>
+      <arg id="0" name="ConnectionID" type="int16u"/>
       <arg id="1" name="ActivationReason" type="PushAVStreamTransportTriggerActivationReasonEnum" isNullable="true" min="0x00" max="0x02"/>
       <arg id="2" name="TimeControl" type="PushAVStreamTransportMotionTriggerTimeControlStruct" optional="true" isNullable="true"/>
     </command>
@@ -194,7 +194,7 @@ Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
     <command code="0x06" source="client" name="FindStreamConfiguration" optional="false" response="FindStreamConfigurationResponse">
       <description>This command SHALL return the Stream Options Configuration for the specified push transport.</description>
       <access op="invoke" privilege="administer"/>
-      <arg id="0" name="ConnectionID" type="PushTransportConnectionID" optional="true" isNullable="true"/>
+      <arg id="0" name="ConnectionID" type="int16u" optional="true" isNullable="true"/>
     </command>
 
     <command code="0x07" source="server" name="FindStreamConfigurationResponse" optional="false" disableDefaultResponse="true">
@@ -207,7 +207,7 @@ Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
     </event>
 
     <event code="0x0001" name="PushTransportEnd" priority="info" side="server">
-      <field id="0" name="ConnectionID" type="PushTransportConnectionID"/>
+      <field id="0" name="ConnectionID" type="int16u"/>
       <field id="1" name="TriggerDetails" type="PushAVStreamTransportTriggerOptionsStruct"/>
       <description>This event SHALL indicate a push transport transmission has ended.</description>
     </event>
diff --git a/src/app/zap-templates/zcl/data-model/draft/web-rtc-provider-cluster.xml b/src/app/zap-templates/zcl/data-model/draft/web-rtc-provider-cluster.xml
index a677b5cf45898c..3f3fe4f5dd5670 100644
--- a/src/app/zap-templates/zcl/data-model/draft/web-rtc-provider-cluster.xml
+++ b/src/app/zap-templates/zcl/data-model/draft/web-rtc-provider-cluster.xml
@@ -18,16 +18,10 @@ limitations under the License.
 XML generated by Alchemy; DO NOT EDIT.
 Source: src/app_clusters/WebRTC_Provider.adoc
 Parameters: in-progress 
-Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
+Git: 0.7-fall2024-ncr-1157-gf55e3cb01-dirty
 -->
 <configurator xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../zcl.xsd">
   <domain name="General"/>
-  <bitmap name="WebRTCMetadataOptions" type="bitmap8">
-    <cluster code="0x0553"/>
-    <cluster code="0x0554"/>
-    <field name="DataTLV" mask="0x01"/>
-  </bitmap>
-
   <enum name="WebRTCEndReasonEnum" type="enum8">
     <cluster code="0x0553"/>
     <cluster code="0x0554"/>
@@ -45,33 +39,12 @@ Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
     <item name="UNKNOWN_ERROR" value="0x0C"/>
   </enum>
 
-  <struct name="ICEServerStruct" apiMaturity="provisional">
-    <cluster code="0x0553"/>
-    <cluster code="0x0554"/>
-    <item fieldId="1" name="urls" array="true" type="char_string"/>
-    <item fieldId="2" name="username" type="char_string" optional="true"/>
-    <item fieldId="3" name="credential" type="char_string" optional="true"/>
-    <item fieldId="4" name="CAID" type="int16u" optional="true"/>
-  </struct>
-
-  <struct name="WebRTCSessionStruct" apiMaturity="provisional">
-    <cluster code="0x0553"/>
-    <cluster code="0x0554"/>
-    <item fieldId="1" name="ID" type="WebRTCSessionID"/>
-    <item fieldId="2" name="PeerNodeId" type="node_id"/>
-    <item fieldId="3" name="PeerFabricIndex" type="fabric_idx"/>
-    <item fieldId="4" name="StreamType" type="StreamTypeEnum" min="0x00" max="0x03"/>
-    <item fieldId="5" name="VideoStreamID" type="VideoStreamID" isNullable="true"/>
-    <item fieldId="6" name="AudioStreamID" type="AudioStreamID" isNullable="true"/>
-    <item fieldId="7" name="MetadataOptions" type="WebRTCMetadataOptions" default="0x00" min="0x00" max="0x01"/>
-  </struct>
-
-  <cluster>
+  <cluster apiMaturity="provisional">
     <domain name="General"/>
     <name>WebRTC Transport Provider</name>
     <code>0x0553</code>
     <define>WEB_RTC_TRANSPORT_PROVIDER_CLUSTER</define>
-    <description>The following process SHALL be followed when the server receives this command:</description>
+    <description>The WebRTC transport provider cluster provides a way for stream providers (e.g. Cameras) to stream or receive their data through WebRTC.</description>
     <client init="false" tick="false">true</client>
     <server init="false" tick="false">true</server>
     <globalAttribute code="0xFFFD" side="either" value="1"/>
@@ -79,8 +52,8 @@ Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
     <command code="0x01" source="client" name="WebRTCSolicitOffer" optional="false" response="WebRTCSolicitOfferResponse">
       <description>Requests that the Provider initiates a new session with the Offer / Answer flow in a way that allows for options to be passed and work with devices needing the standby flow.</description>
       <arg id="1" name="StreamType" type="StreamTypeEnum" min="0x00" max="0x03"/>
-      <arg id="2" name="VideoStreamID" type="VideoStreamID" optional="true" isNullable="true"/>
-      <arg id="3" name="AudioStreamID" type="AudioStreamID" optional="true" isNullable="true"/>
+      <arg id="2" name="VideoStreamID" type="int16u" optional="true" isNullable="true"/>
+      <arg id="3" name="AudioStreamID" type="int16u" optional="true" isNullable="true"/>
       <arg id="4" name="ICEServers" array="true" type="ICEServerStruct" optional="true"/>
       <arg id="5" name="ICETransportPolicy" type="char_string" optional="true"/>
       <arg id="6" name="MetadataOptions" type="WebRTCMetadataOptions" optional="true" min="0x00" max="0x01"/>
@@ -88,19 +61,19 @@ Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
 
     <command code="0x02" source="server" name="WebRTCSolicitOfferResponse" optional="false" disableDefaultResponse="true">
       <description>This command SHALL be generated in response to a WebRTCSolicitOffer command.</description>
-      <arg id="1" name="WebRTCSessionID" type="WebRTCSessionID"/>
+      <arg id="1" name="WebRTCSessionID" type="int16u"/>
       <arg id="2" name="DeferredOffer" type="boolean"/>
-      <arg id="3" name="VideoStreamID" type="VideoStreamID" optional="true" isNullable="true"/>
-      <arg id="4" name="AudioStreamID" type="AudioStreamID" optional="true" isNullable="true"/>
+      <arg id="3" name="VideoStreamID" type="int16u" optional="true" isNullable="true"/>
+      <arg id="4" name="AudioStreamID" type="int16u" optional="true" isNullable="true"/>
     </command>
 
     <command code="0x03" source="client" name="WebRTCProvideOffer" optional="false" response="WebRTCProvideOfferResponse">
       <description>This command allows an SDP Offer to be set and start a new session.</description>
-      <arg id="1" name="WebRTCSessionID" type="WebRTCSessionID" isNullable="true"/>
+      <arg id="1" name="WebRTCSessionID" type="int16u" isNullable="true"/>
       <arg id="2" name="SDP" type="char_string"/>
       <arg id="3" name="StreamType" type="StreamTypeEnum" min="0x00" max="0x03"/>
-      <arg id="4" name="VideoStreamID" type="VideoStreamID" optional="true" isNullable="true"/>
-      <arg id="5" name="AudioStreamID" type="AudioStreamID" optional="true" isNullable="true"/>
+      <arg id="4" name="VideoStreamID" type="int16u" optional="true" isNullable="true"/>
+      <arg id="5" name="AudioStreamID" type="int16u" optional="true" isNullable="true"/>
       <arg id="6" name="ICEServers" array="true" type="ICEServerStruct" optional="true"/>
       <arg id="7" name="ICETransportPolicy" type="char_string" optional="true"/>
       <arg id="8" name="MetadataOptions" type="WebRTCMetadataOptions" optional="true" min="0x00" max="0x01"/>
@@ -108,26 +81,26 @@ Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
 
     <command code="0x04" source="server" name="WebRTCProvideOfferResponse" optional="false" disableDefaultResponse="true">
       <description>This command contains information about the stream created as a response to the requestor&apos;s offer.</description>
-      <arg id="1" name="WebRTCSessionID" type="WebRTCSessionID"/>
-      <arg id="2" name="VideoStreamID" type="VideoStreamID"/>
-      <arg id="3" name="AudioStreamID" type="AudioStreamID"/>
+      <arg id="1" name="WebRTCSessionID" type="int16u"/>
+      <arg id="2" name="VideoStreamID" type="int16u"/>
+      <arg id="3" name="AudioStreamID" type="int16u"/>
     </command>
 
     <command code="0x05" source="client" name="WebRTCProvideAnswer" optional="false">
       <description>This command will be initiated from a local Node as a response to an offer that was previously provided by the remote peer.</description>
-      <arg id="1" name="WebRTCSessionID" type="WebRTCSessionID"/>
+      <arg id="1" name="WebRTCSessionID" type="int16u"/>
       <arg id="2" name="SDP" type="char_string"/>
     </command>
 
     <command code="0x06" source="client" name="WebRTCProvideICECandidate" optional="false">
       <description>This command allows for https://www.rfc-editor.org/rfc/rfc8839#section-4.2.1.2 nominated after the initial Offer / Answer exchange to be added to a session during the gathering phase.</description>
-      <arg id="1" name="WebRTCSessionID" type="WebRTCSessionID"/>
+      <arg id="1" name="WebRTCSessionID" type="int16u"/>
       <arg id="2" name="ICECandidate" type="char_string"/>
     </command>
 
     <command code="0x07" source="client" name="WebRTCEndSession" optional="false">
       <description>This command instructs the stream provider to end the WebRTC session.</description>
-      <arg id="1" name="WebRTCSessionID" type="WebRTCSessionID"/>
+      <arg id="1" name="WebRTCSessionID" type="int16u"/>
       <arg id="2" name="Reason" type="WebRTCEndReasonEnum" min="0x00" max="0x0C"/>
     </command>
 
diff --git a/src/app/zap-templates/zcl/data-model/draft/web-rtc-requestor-cluster.xml b/src/app/zap-templates/zcl/data-model/draft/web-rtc-requestor-cluster.xml
index a3c24bf4cb7db7..55c713399751ef 100644
--- a/src/app/zap-templates/zcl/data-model/draft/web-rtc-requestor-cluster.xml
+++ b/src/app/zap-templates/zcl/data-model/draft/web-rtc-requestor-cluster.xml
@@ -22,19 +22,19 @@ Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
 -->
 <configurator xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../zcl.xsd">
   <domain name="General"/>
-  <cluster>
+  <cluster apiMaturity="provisional">
     <domain name="General"/>
     <name>WebRTC Transport Requestor</name>
     <code>0x0554</code>
     <define>WEB_RTC_TRANSPORT_REQUESTOR_CLUSTER</define>
-    <description>The process below SHALL be followed by the server when receiving this command:</description>
+    <description>The WebRTC transport requestor cluster provides a way for stream consumers (e.g. Matter Stream Viewer) to establish a WebRTC connection with a stream provider that implements the WebRTC Transport Provider Cluster</description>
     <client init="false" tick="false">true</client>
     <server init="false" tick="false">true</server>
     <globalAttribute code="0xFFFD" side="either" value="1"/>
     <attribute code="0x0000" side="server" define="CURRENT_SESSIONS" type="array" entryType="WebRTCSessionStruct" default="0">CurrentSessions</attribute>
     <command code="0x01" source="client" name="WebRTCOffer" optional="false">
       <description>This command provides the stream requestor with WebRTC session details.</description>
-      <arg id="1" name="WebRTCSessionID" type="WebRTCSessionID"/>
+      <arg id="1" name="WebRTCSessionID" type="int16u"/>
       <arg id="2" name="SDP" type="char_string"/>
       <arg id="3" name="ICEServers" array="true" type="ICEServerStruct" optional="true"/>
       <arg id="4" name="ICETransportPolicy" type="char_string" optional="true"/>
@@ -42,19 +42,19 @@ Git: 0.7-fall2024-ncr-1155-g78ec59e8a-dirty
 
     <command code="0x02" source="client" name="WebRTCAnswer" optional="false">
       <description>This command provides the stream requestor with the WebRTC session details (i.e.</description>
-      <arg id="1" name="WebRTCSessionID" type="WebRTCSessionID"/>
+      <arg id="1" name="WebRTCSessionID" type="int16u"/>
       <arg id="2" name="SDP" type="char_string"/>
     </command>
 
     <command code="0x03" source="client" name="WebRTCICECandidate" optional="false">
       <description>This command provides an ICE candidate to the stream requestor in a WebRTC session.</description>
-      <arg id="1" name="WebRTCSessionID" type="WebRTCSessionID"/>
+      <arg id="1" name="WebRTCSessionID" type="int16u"/>
       <arg id="2" name="ICECandidate" type="char_string"/>
     </command>
 
     <command code="0x04" source="client" name="WebRTCEnd" optional="false">
       <description>This command notifies the stream requestor that the provider has ended the WebRTC session.</description>
-      <arg id="1" name="WebRTCSessionID" type="WebRTCSessionID"/>
+      <arg id="1" name="WebRTCSessionID" type="int16u"/>
       <arg id="2" name="Reason" type="WebRTCEndReasonEnum" min="0x00" max="0x0C"/>
     </command>
 

From dcf6140f778e0df2e1f49ab7f52dda149c25d33c Mon Sep 17 00:00:00 2001
From: marcos <15697303+gmarcosb@users.noreply.github.com>
Date: Tue, 24 Sep 2024 16:51:19 -0600
Subject: [PATCH 20/20] Generated via ./scripts/tools/zap_regen_all.py

---
 docs/zap_clusters.md                          |   268 +-
 .../air-purifier-app.matter                   |     7 +
 .../air-quality-sensor-app.matter             |     7 +
 .../all-clusters-app.matter                   |     7 +
 .../all-clusters-minimal-app.matter           |     7 +
 .../bridge-common/bridge-app.matter           |     7 +
 ...p_rootnode_dimmablelight_bCwGYSDpoe.matter |     7 +
 .../rootnode_airpurifier_73a6fe2651.matter    |     7 +
 ...umiditysensor_thermostat_56de3d5f45.matter |     7 +
 ...ootnode_airqualitysensor_e63187f6c9.matter |     7 +
 ...ootnode_basicvideoplayer_0ff86e943b.matter |     7 +
 ...de_colortemperaturelight_hbUnzYVeyn.matter |     7 +
 .../rootnode_contactsensor_27f76aeaf5.matter  |     7 +
 .../rootnode_contactsensor_lFAGG1bfRO.matter  |     7 +
 .../rootnode_dimmablelight_bCwGYSDpoe.matter  |     7 +
 ...tnode_dimmablepluginunit_f8a9a0b9d4.matter |     7 +
 .../rootnode_dishwasher_cc105034fe.matter     |     7 +
 .../rootnode_doorlock_aNKYAreMXE.matter       |     7 +
 ...tnode_extendedcolorlight_8lcaaYJVAa.matter |     7 +
 .../devices/rootnode_fan_7N2TobIlOX.matter    |     7 +
 .../rootnode_flowsensor_1zVxHedlaV.matter     |     7 +
 .../rootnode_genericswitch_2dfff6e516.matter  |     7 +
 .../rootnode_genericswitch_9866e35d0b.matter  |     7 +
 ...tnode_heatingcoolingunit_ncdGai1E5a.matter |     7 +
 .../rootnode_humiditysensor_Xyj4gda6Hb.matter |     7 +
 .../rootnode_laundrywasher_fb10d238c8.matter  |     7 +
 .../rootnode_lightsensor_lZQycTFcJK.matter    |     7 +
 ...rootnode_occupancysensor_iHyVgifZuo.matter |     7 +
 .../rootnode_onofflight_bbs1b7IaOV.matter     |     7 +
 .../rootnode_onofflight_samplemei.matter      |     7 +
 ...ootnode_onofflightswitch_FsPlMr090Q.matter |     7 +
 ...rootnode_onoffpluginunit_Wtf8ss5EBY.matter |     7 +
 .../rootnode_pressuresensor_s0qC9wLH4k.matter |     7 +
 .../devices/rootnode_pump_5f904818cc.matter   |     7 +
 .../devices/rootnode_pump_a811bb33a0.matter   |     7 +
 ...eraturecontrolledcabinet_ffdb696680.matter |     7 +
 ...ode_roboticvacuumcleaner_1807ff0c49.matter |     7 +
 ...tnode_roomairconditioner_9cf3607804.matter |     7 +
 .../rootnode_smokecoalarm_686fe0dcb8.matter   |     7 +
 .../rootnode_speaker_RpzeXdimqA.matter        |     7 +
 ...otnode_temperaturesensor_Qy1zkNW7c3.matter |     7 +
 .../rootnode_thermostat_bm3fb8dhYi.matter     |     7 +
 ...otnode_waterleakdetector_0b067acfa3.matter |     7 +
 .../rootnode_windowcovering_RLCxaGi9Yx.matter |     7 +
 .../contact-sensor-app.matter                 |     7 +
 .../nxp/zap-lit/contact-sensor-app.matter     |     7 +
 .../nxp/zap-sit/contact-sensor-app.matter     |     7 +
 .../dishwasher-common/dishwasher-app.matter   |     7 +
 .../energy-management-app.matter              |     7 +
 .../fabric-bridge-app.matter                  |     7 +
 .../nxp/zap/laundry-washer-app.matter         |     7 +
 .../light-switch-app.matter                   |     7 +
 .../light-switch-app/qpg/zap/switch.matter    |     7 +
 .../lighting-common/lighting-app.matter       |     7 +
 .../data_model/lighting-app-ethernet.matter   |     7 +
 .../data_model/lighting-app-thread.matter     |     7 +
 .../data_model/lighting-app-wifi.matter       |     7 +
 .../lighting-common/lighting-app.matter       |     7 +
 .../nxp/zap/lighting-on-off.matter            |     7 +
 examples/lighting-app/qpg/zap/light.matter    |     7 +
 .../data_model/lighting-thread-app.matter     |     7 +
 .../data_model/lighting-wifi-app.matter       |     7 +
 .../lit-icd-common/lit-icd-server-app.matter  |     7 +
 examples/lock-app/lock-common/lock-app.matter |     7 +
 examples/lock-app/nxp/zap/lock-app.matter     |     7 +
 examples/lock-app/qpg/zap/lock.matter         |     7 +
 .../log-source-common/log-source-app.matter   |     7 +
 .../microwave-oven-app.matter                 |     7 +
 .../network-manager-app.matter                |     7 +
 .../ota-provider-app.matter                   |     7 +
 .../ota-requestor-app.matter                  |     7 +
 .../placeholder/linux/apps/app1/config.matter |     7 +
 .../placeholder/linux/apps/app2/config.matter |     7 +
 examples/pump-app/pump-common/pump-app.matter |     7 +
 .../silabs/data_model/pump-thread-app.matter  |     7 +
 .../silabs/data_model/pump-wifi-app.matter    |     7 +
 .../pump-controller-app.matter                |     7 +
 .../refrigerator-app.matter                   |     7 +
 examples/rvc-app/rvc-common/rvc-app.matter    |     7 +
 .../smoke-co-alarm-app.matter                 |     7 +
 .../temperature-measurement.matter            |     7 +
 .../nxp/zap/thermostat_matter_thread.matter   |     7 +
 .../nxp/zap/thermostat_matter_wifi.matter     |     7 +
 .../qpg/zap/thermostaticRadiatorValve.matter  |     7 +
 .../thermostat-common/thermostat.matter       |     7 +
 .../thread-br-common/thread-br-app.matter     |     7 +
 examples/tv-app/tv-common/tv-app.matter       |     7 +
 .../tv-casting-common/tv-casting-app.matter   |     7 +
 .../virtual-device-app.matter                 |     7 +
 examples/window-app/common/window-app.matter  |     7 +
 .../data_model/controller-clusters.matter     |   832 +
 .../chip/devicecontroller/ChipClusters.java   |  4252 +++++
 .../devicecontroller/ChipEventStructs.java    |   557 +
 .../chip/devicecontroller/ChipStructs.java    |  2424 +++
 .../devicecontroller/ClusterIDMapping.java    |  1248 ++
 .../devicecontroller/ClusterInfoMapping.java  | 12999 ++++++++------
 .../devicecontroller/ClusterReadMapping.java  |  1042 ++
 .../devicecontroller/ClusterWriteMapping.java |   540 +
 .../chip/devicecontroller/cluster/files.gni   |    28 +
 .../java/matter/controller/cluster/files.gni  |    34 +
 .../CHIPAttributeTLVValueDecoder.cpp          |  3250 ++++
 .../CHIPEventTLVValueDecoder.cpp              |   921 +
 .../python/chip/clusters/CHIPClusters.py      |   975 ++
 .../python/chip/clusters/Objects.py           |  3529 ++++
 .../MTRAttributeSpecifiedCheck.mm             |   372 +
 .../MTRAttributeTLVValueDecoder.mm            |  1275 ++
 .../CHIP/zap-generated/MTRBaseClusters.h      |  1204 ++
 .../CHIP/zap-generated/MTRBaseClusters.mm     |  5287 ++++++
 .../CHIP/zap-generated/MTRClusterConstants.h  |   181 +
 .../CHIP/zap-generated/MTRClusterNames.mm     |   566 +
 .../CHIP/zap-generated/MTRClusters.h          |   449 +
 .../CHIP/zap-generated/MTRClusters.mm         |  1759 ++
 .../zap-generated/MTRCommandPayloadsObjc.h    |  1290 ++
 .../zap-generated/MTRCommandPayloadsObjc.mm   |  4483 +++++
 .../MTRCommandPayloads_Internal.h             |   252 +
 .../zap-generated/MTRCommandTimedCheck.mm     |    72 +
 .../zap-generated/MTREventTLVValueDecoder.mm  |   428 +
 .../CHIP/zap-generated/MTRStructsObjc.h       |   255 +
 .../CHIP/zap-generated/MTRStructsObjc.mm      |  1112 ++
 .../zap-generated/attributes/Accessors.cpp    |   597 +
 .../zap-generated/attributes/Accessors.h      |   108 +
 .../app-common/zap-generated/callback.h       |   464 +
 .../zap-generated/cluster-enums-check.h       |   222 +
 .../app-common/zap-generated/cluster-enums.h  |   291 +
 .../zap-generated/cluster-objects.cpp         |  3669 +++-
 .../zap-generated/cluster-objects.h           |  3856 +++++
 .../app-common/zap-generated/ids/Attributes.h |   436 +
 .../app-common/zap-generated/ids/Clusters.h   |    18 +
 .../app-common/zap-generated/ids/Commands.h   |   204 +
 .../app-common/zap-generated/ids/Events.h     |    32 +
 .../zap-generated/cluster/Commands.h          |  5895 +++++--
 .../cluster/ComplexArgumentParser.cpp         |  1059 ++
 .../cluster/ComplexArgumentParser.h           |   125 +
 .../cluster/logging/DataModelLogger.cpp       | 14391 +++++++++-------
 .../cluster/logging/DataModelLogger.h         |   110 +
 .../cluster/logging/EntryToText.cpp           |   401 +
 .../zap-generated/cluster/Commands.h          | 13144 ++++++++++++++
 137 files changed, 83770 insertions(+), 13759 deletions(-)

diff --git a/docs/zap_clusters.md b/docs/zap_clusters.md
index 9171d07c2ad3f8..7abf30317e7ea4 100644
--- a/docs/zap_clusters.md
+++ b/docs/zap_clusters.md
@@ -10,137 +10,137 @@ Generally regenerate using one of:
 
 ## List of currently defined ZAP clusters
 
-| Code (dec) | Code (hex) | Name                                                  |
-|-----------:|-----------:|-------------------------------------------------------|
-|          3 |       0x03 | Identify                                              |
-|          4 |       0x04 | Groups                                                |
-|          6 |       0x06 | OnOff                                                 |
-|          7 |       0x07 | OnOffSwitchConfiguration                              |
-|          8 |       0x08 | LevelControl                                          |
-|         15 |       0x0F | BinaryInputBasic                                      |
-|         28 |       0x1C | PulseWidthModulation                                  |
-|         29 |       0x1D | Descriptor                                            |
-|         30 |       0x1E | Binding                                               |
-|         31 |       0x1F | AccessControl                                         |
-|         37 |       0x25 | Actions                                               |
-|         40 |       0x28 | BasicInformation                                      |
-|         41 |       0x29 | OtaSoftwareUpdateProvider                             |
-|         42 |       0x2A | OtaSoftwareUpdateRequestor                            |
-|         43 |       0x2B | LocalizationConfiguration                             |
-|         44 |       0x2C | TimeFormatLocalization                                |
-|         45 |       0x2D | UnitLocalization                                      |
-|         46 |       0x2E | PowerSourceConfiguration                              |
-|         47 |       0x2F | PowerSource                                           |
-|         48 |       0x30 | GeneralCommissioning                                  |
-|         49 |       0x31 | NetworkCommissioning                                  |
-|         50 |       0x32 | DiagnosticLogs                                        |
-|         51 |       0x33 | GeneralDiagnostics                                    |
-|         52 |       0x34 | SoftwareDiagnostics                                   |
-|         53 |       0x35 | ThreadNetworkDiagnostics                              |
-|         54 |       0x36 | WiFiNetworkDiagnostics                                |
-|         55 |       0x37 | EthernetNetworkDiagnostics                            |
-|         56 |       0x38 | TimeSynchronization                                   |
-|         57 |       0x39 | BridgedDeviceBasicInformation                         |
-|         59 |       0x3B | Switch                                                |
-|         60 |       0x3C | AdministratorCommissioning                            |
-|         62 |       0x3E | OperationalCredentials                                |
-|         63 |       0x3F | GroupKeyManagement                                    |
-|         64 |       0x40 | FixedLabel                                            |
-|         65 |       0x41 | UserLabel                                             |
-|         66 |       0x42 | ProxyConfiguration                                    |
-|         67 |       0x43 | ProxyDiscovery                                        |
-|         68 |       0x44 | ProxyValid                                            |
-|         69 |       0x45 | BooleanState                                          |
-|         70 |       0x46 | IcdManagement                                         |
-|         71 |       0x47 | Timer                                                 |
-|         72 |       0x48 | OvenCavityOperationalState                            |
-|         73 |       0x49 | OvenMode                                              |
-|         74 |       0x4A | LaundryDryerControls                                  |
-|         80 |       0x50 | ModeSelect                                            |
-|         81 |       0x51 | LaundryWasherMode                                     |
-|         82 |       0x52 | RefrigeratorAndTemperatureControlledCabinetMode       |
-|         83 |       0x53 | LaundryWasherControls                                 |
-|         84 |       0x54 | RvcRunMode                                            |
-|         85 |       0x55 | RvcCleanMode                                          |
-|         86 |       0x56 | TemperatureControl                                    |
-|         87 |       0x57 | RefrigeratorAlarm                                     |
-|         89 |       0x59 | DishwasherMode                                        |
-|         91 |       0x5B | AirQuality                                            |
-|         92 |       0x5C | SmokeCoAlarm                                          |
-|         93 |       0x5D | DishwasherAlarm                                       |
-|         94 |       0x5E | MicrowaveOvenMode                                     |
-|         95 |       0x5F | MicrowaveOvenControl                                  |
-|         96 |       0x60 | OperationalState                                      |
-|         97 |       0x61 | RvcOperationalState                                   |
-|         98 |       0x62 | ScenesManagement                                      |
-|        113 |       0x71 | HepaFilterMonitoring                                  |
-|        114 |       0x72 | ActivatedCarbonFilterMonitoring                       |
-|        128 |       0x80 | BooleanStateConfiguration                             |
-|        129 |       0x81 | ValveConfigurationAndControl                          |
-|        144 |       0x90 | ElectricalPowerMeasurement                            |
-|        145 |       0x91 | ElectricalEnergyMeasurement                           |
-|        148 |       0x94 | WaterHeaterManagement                                 |
-|        150 |       0x96 | DemandResponseLoadControl                             |
-|        151 |       0x97 | Messages                                              |
-|        152 |       0x98 | DeviceEnergyManagement                                |
-|        153 |       0x99 | EnergyEvse                                            |
-|        155 |       0x9B | EnergyPreference                                      |
-|        156 |       0x9C | PowerTopology                                         |
-|        157 |       0x9D | EnergyEvseMode                                        |
-|        158 |       0x9E | WaterHeaterMode                                       |
-|        159 |       0x9F | DeviceEnergyManagementMode                            |
-|        257 |      0x101 | DoorLock                                              |
-|        258 |      0x102 | WindowCovering                                        |
-|        259 |      0x103 | BarrierControl                                        |
-|        336 |      0x150 | ServiceArea                                           |
-|        512 |      0x200 | PumpConfigurationAndControl                           |
-|        513 |      0x201 | Thermostat                                            |
-|        514 |      0x202 | FanControl                                            |
-|        516 |      0x204 | ThermostatUserInterfaceConfiguration                  |
-|        768 |      0x300 | ColorControl                                          |
-|        769 |      0x301 | BallastConfiguration                                  |
-|       1024 |      0x400 | IlluminanceMeasurement                                |
-|       1026 |      0x402 | TemperatureMeasurement                                |
-|       1027 |      0x403 | PressureMeasurement                                   |
-|       1028 |      0x404 | FlowMeasurement                                       |
-|       1029 |      0x405 | RelativeHumidityMeasurement                           |
-|       1030 |      0x406 | OccupancySensing                                      |
-|       1036 |      0x40C | CarbonMonoxideConcentrationMeasurement                |
-|       1037 |      0x40D | CarbonDioxideConcentrationMeasurement                 |
-|       1043 |      0x413 | NitrogenDioxideConcentrationMeasurement               |
-|       1045 |      0x415 | OzoneConcentrationMeasurement                         |
-|       1066 |      0x42A | Pm25ConcentrationMeasurement                          |
-|       1067 |      0x42B | FormaldehydeConcentrationMeasurement                  |
-|       1068 |      0x42C | Pm1ConcentrationMeasurement                           |
-|       1069 |      0x42D | Pm10ConcentrationMeasurement                          |
-|       1070 |      0x42E | TotalVolatileOrganicCompoundsConcentrationMeasurement |
-|       1071 |      0x42F | RadonConcentrationMeasurement                         |
-|       1105 |      0x451 | WiFiNetworkManagement                                 |
-|       1106 |      0x452 | ThreadBorderRouterManagement                          |
-|       1107 |      0x453 | ThreadNetworkDirectory                                |
-|       1283 |      0x503 | WakeOnLan                                             |
-|       1284 |      0x504 | Channel                                               |
-|       1285 |      0x505 | TargetNavigator                                       |
-|       1286 |      0x506 | MediaPlayback                                         |
-|       1287 |      0x507 | MediaInput                                            |
-|       1288 |      0x508 | LowPower                                              |
-|       1289 |      0x509 | KeypadInput                                           |
-|       1290 |      0x50A | ContentLauncher                                       |
-|       1291 |      0x50B | AudioOutput                                           |
-|       1292 |      0x50C | ApplicationLauncher                                   |
-|       1293 |      0x50D | ApplicationBasic                                      |
-|       1294 |      0x50E | AccountLogin                                          |
-|       1295 |      0x50F | ContentControl                                        |
-|       1296 |      0x510 | ContentAppObserver                                    |
-|       1361 |      0x551 | CameraAvStreamManagement                              |
-|       1362 |      0x552 | CameraAvSettingsUserLevelManagement                   |
-|       1363 |      0x553 | WebRtcTransportProvider                               |
-|       1364 |      0x554 | WebRtcTransportRequestor                              |
-|       1365 |      0x555 | PushAvStreamTransport                                 |
-|       1366 |      0x556 | Chime                                                 |
-|       1872 |      0x750 | EcosystemInformation                                  |
-|       1873 |      0x751 | CommissionerControl                                   |
-|       2820 |      0xB04 | ElectricalMeasurement                                 |
-| 4294048773 | 0xFFF1FC05 | UnitTesting                                           |
-| 4294048774 | 0xFFF1FC06 | FaultInjection                                        |
-| 4294048800 | 0xFFF1FC20 | SampleMei                                             |
+| Code (dec) | Code (hex) | Name                                                    |
+| ---------- | ---------- | ------------------------------------------------------- |
+|          3 |       0x03 | Identify                                                |
+|          4 |       0x04 | Groups                                                  |
+|          6 |       0x06 | OnOff                                                   |
+|          7 |       0x07 | OnOffSwitchConfiguration                                |
+|          8 |       0x08 | LevelControl                                            |
+|         15 |       0x0F | BinaryInputBasic                                        |
+|         28 |       0x1C | PulseWidthModulation                                    |
+|         29 |       0x1D | Descriptor                                              |
+|         30 |       0x1E | Binding                                                 |
+|         31 |       0x1F | AccessControl                                           |
+|         37 |       0x25 | Actions                                                 |
+|         40 |       0x28 | BasicInformation                                        |
+|         41 |       0x29 | OtaSoftwareUpdateProvider                               |
+|         42 |       0x2A | OtaSoftwareUpdateRequestor                              |
+|         43 |       0x2B | LocalizationConfiguration                               |
+|         44 |       0x2C | TimeFormatLocalization                                  |
+|         45 |       0x2D | UnitLocalization                                        |
+|         46 |       0x2E | PowerSourceConfiguration                                |
+|         47 |       0x2F | PowerSource                                             |
+|         48 |       0x30 | GeneralCommissioning                                    |
+|         49 |       0x31 | NetworkCommissioning                                    |
+|         50 |       0x32 | DiagnosticLogs                                          |
+|         51 |       0x33 | GeneralDiagnostics                                      |
+|         52 |       0x34 | SoftwareDiagnostics                                     |
+|         53 |       0x35 | ThreadNetworkDiagnostics                                |
+|         54 |       0x36 | WiFiNetworkDiagnostics                                  |
+|         55 |       0x37 | EthernetNetworkDiagnostics                              |
+|         56 |       0x38 | TimeSynchronization                                     |
+|         57 |       0x39 | BridgedDeviceBasicInformation                           |
+|         59 |       0x3B | Switch                                                  |
+|         60 |       0x3C | AdministratorCommissioning                              |
+|         62 |       0x3E | OperationalCredentials                                  |
+|         63 |       0x3F | GroupKeyManagement                                      |
+|         64 |       0x40 | FixedLabel                                              |
+|         65 |       0x41 | UserLabel                                               |
+|         66 |       0x42 | ProxyConfiguration                                      |
+|         67 |       0x43 | ProxyDiscovery                                          |
+|         68 |       0x44 | ProxyValid                                              |
+|         69 |       0x45 | BooleanState                                            |
+|         70 |       0x46 | IcdManagement                                           |
+|         71 |       0x47 | Timer                                                   |
+|         72 |       0x48 | OvenCavityOperationalState                              |
+|         73 |       0x49 | OvenMode                                                |
+|         74 |       0x4A | LaundryDryerControls                                    |
+|         80 |       0x50 | ModeSelect                                              |
+|         81 |       0x51 | LaundryWasherMode                                       |
+|         82 |       0x52 | RefrigeratorAndTemperatureControlledCabinetMode         |
+|         83 |       0x53 | LaundryWasherControls                                   |
+|         84 |       0x54 | RvcRunMode                                              |
+|         85 |       0x55 | RvcCleanMode                                            |
+|         86 |       0x56 | TemperatureControl                                      |
+|         87 |       0x57 | RefrigeratorAlarm                                       |
+|         89 |       0x59 | DishwasherMode                                          |
+|         91 |       0x5B | AirQuality                                              |
+|         92 |       0x5C | SmokeCoAlarm                                            |
+|         93 |       0x5D | DishwasherAlarm                                         |
+|         94 |       0x5E | MicrowaveOvenMode                                       |
+|         95 |       0x5F | MicrowaveOvenControl                                    |
+|         96 |       0x60 | OperationalState                                        |
+|         97 |       0x61 | RvcOperationalState                                     |
+|         98 |       0x62 | ScenesManagement                                        |
+|        113 |       0x71 | HepaFilterMonitoring                                    |
+|        114 |       0x72 | ActivatedCarbonFilterMonitoring                         |
+|        128 |       0x80 | BooleanStateConfiguration                               |
+|        129 |       0x81 | ValveConfigurationAndControl                            |
+|        144 |       0x90 | ElectricalPowerMeasurement                              |
+|        145 |       0x91 | ElectricalEnergyMeasurement                             |
+|        148 |       0x94 | WaterHeaterManagement                                   |
+|        150 |       0x96 | DemandResponseLoadControl                               |
+|        151 |       0x97 | Messages                                                |
+|        152 |       0x98 | DeviceEnergyManagement                                  |
+|        153 |       0x99 | EnergyEvse                                              |
+|        155 |       0x9B | EnergyPreference                                        |
+|        156 |       0x9C | PowerTopology                                           |
+|        157 |       0x9D | EnergyEvseMode                                          |
+|        158 |       0x9E | WaterHeaterMode                                         |
+|        159 |       0x9F | DeviceEnergyManagementMode                              |
+|        257 |      0x101 | DoorLock                                                |
+|        258 |      0x102 | WindowCovering                                          |
+|        259 |      0x103 | BarrierControl                                          |
+|        336 |      0x150 | ServiceArea                                             |
+|        512 |      0x200 | PumpConfigurationAndControl                             |
+|        513 |      0x201 | Thermostat                                              |
+|        514 |      0x202 | FanControl                                              |
+|        516 |      0x204 | ThermostatUserInterfaceConfiguration                    |
+|        768 |      0x300 | ColorControl                                            |
+|        769 |      0x301 | BallastConfiguration                                    |
+|       1024 |      0x400 | IlluminanceMeasurement                                  |
+|       1026 |      0x402 | TemperatureMeasurement                                  |
+|       1027 |      0x403 | PressureMeasurement                                     |
+|       1028 |      0x404 | FlowMeasurement                                         |
+|       1029 |      0x405 | RelativeHumidityMeasurement                             |
+|       1030 |      0x406 | OccupancySensing                                        |
+|       1036 |      0x40C | CarbonMonoxideConcentrationMeasurement                  |
+|       1037 |      0x40D | CarbonDioxideConcentrationMeasurement                   |
+|       1043 |      0x413 | NitrogenDioxideConcentrationMeasurement                 |
+|       1045 |      0x415 | OzoneConcentrationMeasurement                           |
+|       1066 |      0x42A | Pm25ConcentrationMeasurement                            |
+|       1067 |      0x42B | FormaldehydeConcentrationMeasurement                    |
+|       1068 |      0x42C | Pm1ConcentrationMeasurement                             |
+|       1069 |      0x42D | Pm10ConcentrationMeasurement                            |
+|       1070 |      0x42E | TotalVolatileOrganicCompoundsConcentrationMeasurement   |
+|       1071 |      0x42F | RadonConcentrationMeasurement                           |
+|       1105 |      0x451 | WiFiNetworkManagement                                   |
+|       1106 |      0x452 | ThreadBorderRouterManagement                            |
+|       1107 |      0x453 | ThreadNetworkDirectory                                  |
+|       1283 |      0x503 | WakeOnLan                                               |
+|       1284 |      0x504 | Channel                                                 |
+|       1285 |      0x505 | TargetNavigator                                         |
+|       1286 |      0x506 | MediaPlayback                                           |
+|       1287 |      0x507 | MediaInput                                              |
+|       1288 |      0x508 | LowPower                                                |
+|       1289 |      0x509 | KeypadInput                                             |
+|       1290 |      0x50A | ContentLauncher                                         |
+|       1291 |      0x50B | AudioOutput                                             |
+|       1292 |      0x50C | ApplicationLauncher                                     |
+|       1293 |      0x50D | ApplicationBasic                                        |
+|       1294 |      0x50E | AccountLogin                                            |
+|       1295 |      0x50F | ContentControl                                          |
+|       1296 |      0x510 | ContentAppObserver                                      |
+|       1361 |      0x551 | CameraAvStreamManagement                                |
+|       1362 |      0x552 | CameraAvSettingsUserLevelManagement                     |
+|       1363 |      0x553 | WebRTCTransportProvider                                 |
+|       1364 |      0x554 | WebRTCTransportRequestor                                |
+|       1365 |      0x555 | PushAvStreamTransport                                   |
+|       1366 |      0x556 | Chime                                                   |
+|       1872 |      0x750 | EcosystemInformation                                    |
+|       1873 |      0x751 | CommissionerControl                                     |
+|       2820 |      0xB04 | ElectricalMeasurement                                   |
+| 4294048773 | 0xFFF1FC05 | UnitTesting                                             |
+| 4294048774 | 0xFFF1FC06 | FaultInjection                                          |
+| 4294048800 | 0xFFF1FC20 | SampleMei                                               |
diff --git a/examples/air-purifier-app/air-purifier-common/air-purifier-app.matter b/examples/air-purifier-app/air-purifier-common/air-purifier-app.matter
index ef3be8e5f2e630..dbcd306f440fd4 100644
--- a/examples/air-purifier-app/air-purifier-common/air-purifier-app.matter
+++ b/examples/air-purifier-app/air-purifier-common/air-purifier-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/air-quality-sensor-app/air-quality-sensor-common/air-quality-sensor-app.matter b/examples/air-quality-sensor-app/air-quality-sensor-common/air-quality-sensor-app.matter
index 408754950cdf6b..dd9a87d59d6b5d 100644
--- a/examples/air-quality-sensor-app/air-quality-sensor-common/air-quality-sensor-app.matter
+++ b/examples/air-quality-sensor-app/air-quality-sensor-common/air-quality-sensor-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter b/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter
index 8debb1a4930f33..d46e0b405f6865 100644
--- a/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter
+++ b/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter
index 7c209b80465f18..0f3b3daa91e933 100644
--- a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter
+++ b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/bridge-app/bridge-common/bridge-app.matter b/examples/bridge-app/bridge-common/bridge-app.matter
index f1cdf949a70524..b6366cb6139420 100644
--- a/examples/bridge-app/bridge-common/bridge-app.matter
+++ b/examples/bridge-app/bridge-common/bridge-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter b/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter
index b837d4bbb6423a..591975a8c890c6 100644
--- a/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter
+++ b/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_airpurifier_73a6fe2651.matter b/examples/chef/devices/rootnode_airpurifier_73a6fe2651.matter
index a9706c7fb0fd64..b3162e9f7d76d6 100644
--- a/examples/chef/devices/rootnode_airpurifier_73a6fe2651.matter
+++ b/examples/chef/devices/rootnode_airpurifier_73a6fe2651.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_airpurifier_airqualitysensor_temperaturesensor_humiditysensor_thermostat_56de3d5f45.matter b/examples/chef/devices/rootnode_airpurifier_airqualitysensor_temperaturesensor_humiditysensor_thermostat_56de3d5f45.matter
index 2af9aa19a2f1f5..7bf66875f8c6b0 100644
--- a/examples/chef/devices/rootnode_airpurifier_airqualitysensor_temperaturesensor_humiditysensor_thermostat_56de3d5f45.matter
+++ b/examples/chef/devices/rootnode_airpurifier_airqualitysensor_temperaturesensor_humiditysensor_thermostat_56de3d5f45.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_airqualitysensor_e63187f6c9.matter b/examples/chef/devices/rootnode_airqualitysensor_e63187f6c9.matter
index ef127a4ba46cde..d81688a99ba773 100644
--- a/examples/chef/devices/rootnode_airqualitysensor_e63187f6c9.matter
+++ b/examples/chef/devices/rootnode_airqualitysensor_e63187f6c9.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_basicvideoplayer_0ff86e943b.matter b/examples/chef/devices/rootnode_basicvideoplayer_0ff86e943b.matter
index 60e29aeeb5f96b..408046fbd8ce14 100644
--- a/examples/chef/devices/rootnode_basicvideoplayer_0ff86e943b.matter
+++ b/examples/chef/devices/rootnode_basicvideoplayer_0ff86e943b.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_colortemperaturelight_hbUnzYVeyn.matter b/examples/chef/devices/rootnode_colortemperaturelight_hbUnzYVeyn.matter
index b09fc6ffc012ab..dd7237f308d14d 100644
--- a/examples/chef/devices/rootnode_colortemperaturelight_hbUnzYVeyn.matter
+++ b/examples/chef/devices/rootnode_colortemperaturelight_hbUnzYVeyn.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_contactsensor_27f76aeaf5.matter b/examples/chef/devices/rootnode_contactsensor_27f76aeaf5.matter
index 8b30190553c843..ff9aa001faeb8e 100644
--- a/examples/chef/devices/rootnode_contactsensor_27f76aeaf5.matter
+++ b/examples/chef/devices/rootnode_contactsensor_27f76aeaf5.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.matter b/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.matter
index 3e3a4eaa84963f..d7b9a30a1d52ba 100644
--- a/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.matter
+++ b/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter b/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter
index 4c659dcce73dee..3002172a40945b 100644
--- a/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter
+++ b/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_dimmablepluginunit_f8a9a0b9d4.matter b/examples/chef/devices/rootnode_dimmablepluginunit_f8a9a0b9d4.matter
index 92b02371029b94..80704d8103d287 100644
--- a/examples/chef/devices/rootnode_dimmablepluginunit_f8a9a0b9d4.matter
+++ b/examples/chef/devices/rootnode_dimmablepluginunit_f8a9a0b9d4.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_dishwasher_cc105034fe.matter b/examples/chef/devices/rootnode_dishwasher_cc105034fe.matter
index 07232aa02be8e1..78a02cf9bc2e2b 100644
--- a/examples/chef/devices/rootnode_dishwasher_cc105034fe.matter
+++ b/examples/chef/devices/rootnode_dishwasher_cc105034fe.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter b/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter
index 2b27a22610f7b4..ec1a2ade8463ec 100644
--- a/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter
+++ b/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter b/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter
index 265dc262215921..c0fdf502f9d125 100644
--- a/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter
+++ b/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_fan_7N2TobIlOX.matter b/examples/chef/devices/rootnode_fan_7N2TobIlOX.matter
index 19e0d8a149ea9b..c0ac027b0c11fe 100644
--- a/examples/chef/devices/rootnode_fan_7N2TobIlOX.matter
+++ b/examples/chef/devices/rootnode_fan_7N2TobIlOX.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.matter b/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.matter
index eb578e77f624d1..70caacbe21ce44 100644
--- a/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.matter
+++ b/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_genericswitch_2dfff6e516.matter b/examples/chef/devices/rootnode_genericswitch_2dfff6e516.matter
index 9c8d9477b2c0ef..f030729087b959 100644
--- a/examples/chef/devices/rootnode_genericswitch_2dfff6e516.matter
+++ b/examples/chef/devices/rootnode_genericswitch_2dfff6e516.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_genericswitch_9866e35d0b.matter b/examples/chef/devices/rootnode_genericswitch_9866e35d0b.matter
index a083afc80331bc..d02fea2b003623 100644
--- a/examples/chef/devices/rootnode_genericswitch_9866e35d0b.matter
+++ b/examples/chef/devices/rootnode_genericswitch_9866e35d0b.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter b/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter
index 84675efc397ef9..b65d24c99a49bb 100644
--- a/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter
+++ b/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.matter b/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.matter
index 00f7af07eed1b9..0d6e30091f74c0 100644
--- a/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.matter
+++ b/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_laundrywasher_fb10d238c8.matter b/examples/chef/devices/rootnode_laundrywasher_fb10d238c8.matter
index 42e7362bde656d..61459fa58ac12f 100644
--- a/examples/chef/devices/rootnode_laundrywasher_fb10d238c8.matter
+++ b/examples/chef/devices/rootnode_laundrywasher_fb10d238c8.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.matter b/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.matter
index 902658e2ffd476..a334755a2344ce 100644
--- a/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.matter
+++ b/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.matter b/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.matter
index 65a0c9cce398a4..2c28f0a57d5af8 100644
--- a/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.matter
+++ b/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter b/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter
index 6cbdac26fa5923..e1826d6434d0ae 100644
--- a/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter
+++ b/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_onofflight_samplemei.matter b/examples/chef/devices/rootnode_onofflight_samplemei.matter
index 35addbe1b2cac6..c7690c5693df78 100644
--- a/examples/chef/devices/rootnode_onofflight_samplemei.matter
+++ b/examples/chef/devices/rootnode_onofflight_samplemei.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.matter b/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.matter
index 7c82c5b9b53516..a07b0dbbbdbf7e 100644
--- a/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.matter
+++ b/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.matter b/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.matter
index 5fe0482fb1e137..b8abd216e517ae 100644
--- a/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.matter
+++ b/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.matter b/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.matter
index 44ad0bfb504d30..d5124644b62f56 100644
--- a/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.matter
+++ b/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_pump_5f904818cc.matter b/examples/chef/devices/rootnode_pump_5f904818cc.matter
index e8141a4d66db35..5c36b42df1794a 100644
--- a/examples/chef/devices/rootnode_pump_5f904818cc.matter
+++ b/examples/chef/devices/rootnode_pump_5f904818cc.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_pump_a811bb33a0.matter b/examples/chef/devices/rootnode_pump_a811bb33a0.matter
index bb889d64c319e1..a9aba56bc2affd 100644
--- a/examples/chef/devices/rootnode_pump_a811bb33a0.matter
+++ b/examples/chef/devices/rootnode_pump_a811bb33a0.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_refrigerator_temperaturecontrolledcabinet_temperaturecontrolledcabinet_ffdb696680.matter b/examples/chef/devices/rootnode_refrigerator_temperaturecontrolledcabinet_temperaturecontrolledcabinet_ffdb696680.matter
index 13d8b98e93f7f0..3f06a676a34a02 100644
--- a/examples/chef/devices/rootnode_refrigerator_temperaturecontrolledcabinet_temperaturecontrolledcabinet_ffdb696680.matter
+++ b/examples/chef/devices/rootnode_refrigerator_temperaturecontrolledcabinet_temperaturecontrolledcabinet_ffdb696680.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_roboticvacuumcleaner_1807ff0c49.matter b/examples/chef/devices/rootnode_roboticvacuumcleaner_1807ff0c49.matter
index 2922ddca5d7ace..5c4823c4aefeb9 100644
--- a/examples/chef/devices/rootnode_roboticvacuumcleaner_1807ff0c49.matter
+++ b/examples/chef/devices/rootnode_roboticvacuumcleaner_1807ff0c49.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_roomairconditioner_9cf3607804.matter b/examples/chef/devices/rootnode_roomairconditioner_9cf3607804.matter
index 654c955586b685..0f0c1815a5c906 100644
--- a/examples/chef/devices/rootnode_roomairconditioner_9cf3607804.matter
+++ b/examples/chef/devices/rootnode_roomairconditioner_9cf3607804.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_smokecoalarm_686fe0dcb8.matter b/examples/chef/devices/rootnode_smokecoalarm_686fe0dcb8.matter
index 1057b859f6abf3..ac7a3da3952a7a 100644
--- a/examples/chef/devices/rootnode_smokecoalarm_686fe0dcb8.matter
+++ b/examples/chef/devices/rootnode_smokecoalarm_686fe0dcb8.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter b/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter
index a4fe9d839c4a48..b68dd3b397399d 100644
--- a/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter
+++ b/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter b/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter
index 60aacfe955c687..a0d4b68bd5141c 100644
--- a/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter
+++ b/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter b/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter
index c38c38b0a1d88c..5a9592ddf0995f 100644
--- a/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter
+++ b/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_waterleakdetector_0b067acfa3.matter b/examples/chef/devices/rootnode_waterleakdetector_0b067acfa3.matter
index dec13bdf452e45..22c1b4f88fdc05 100644
--- a/examples/chef/devices/rootnode_waterleakdetector_0b067acfa3.matter
+++ b/examples/chef/devices/rootnode_waterleakdetector_0b067acfa3.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.matter b/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.matter
index a57c946cfa0f93..fb0a50a38af47e 100644
--- a/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.matter
+++ b/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/contact-sensor-app/contact-sensor-common/contact-sensor-app.matter b/examples/contact-sensor-app/contact-sensor-common/contact-sensor-app.matter
index 60e67e4c4a7c46..01f72c0d44e271 100644
--- a/examples/contact-sensor-app/contact-sensor-common/contact-sensor-app.matter
+++ b/examples/contact-sensor-app/contact-sensor-common/contact-sensor-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/contact-sensor-app/nxp/zap-lit/contact-sensor-app.matter b/examples/contact-sensor-app/nxp/zap-lit/contact-sensor-app.matter
index 5e877d10e662a1..52dfad274527ef 100644
--- a/examples/contact-sensor-app/nxp/zap-lit/contact-sensor-app.matter
+++ b/examples/contact-sensor-app/nxp/zap-lit/contact-sensor-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/contact-sensor-app/nxp/zap-sit/contact-sensor-app.matter b/examples/contact-sensor-app/nxp/zap-sit/contact-sensor-app.matter
index e60ea683965225..bbf9333d9b9b27 100644
--- a/examples/contact-sensor-app/nxp/zap-sit/contact-sensor-app.matter
+++ b/examples/contact-sensor-app/nxp/zap-sit/contact-sensor-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/dishwasher-app/dishwasher-common/dishwasher-app.matter b/examples/dishwasher-app/dishwasher-common/dishwasher-app.matter
index 0df498ea2952f4..391a06bc07e217 100644
--- a/examples/dishwasher-app/dishwasher-common/dishwasher-app.matter
+++ b/examples/dishwasher-app/dishwasher-common/dishwasher-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/energy-management-app/energy-management-common/energy-management-app.matter b/examples/energy-management-app/energy-management-common/energy-management-app.matter
index 9b9bf1476e0f0e..dd4b588d26821e 100644
--- a/examples/energy-management-app/energy-management-common/energy-management-app.matter
+++ b/examples/energy-management-app/energy-management-common/energy-management-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/fabric-bridge-app/fabric-bridge-common/fabric-bridge-app.matter b/examples/fabric-bridge-app/fabric-bridge-common/fabric-bridge-app.matter
index 0b4cb214b5f3be..ed7b86037fa8d2 100644
--- a/examples/fabric-bridge-app/fabric-bridge-common/fabric-bridge-app.matter
+++ b/examples/fabric-bridge-app/fabric-bridge-common/fabric-bridge-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/laundry-washer-app/nxp/zap/laundry-washer-app.matter b/examples/laundry-washer-app/nxp/zap/laundry-washer-app.matter
index adc4fe3de8065e..e67b943f2affb4 100644
--- a/examples/laundry-washer-app/nxp/zap/laundry-washer-app.matter
+++ b/examples/laundry-washer-app/nxp/zap/laundry-washer-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/light-switch-app/light-switch-common/light-switch-app.matter b/examples/light-switch-app/light-switch-common/light-switch-app.matter
index a18f0c9724cda2..88863ac77a1043 100644
--- a/examples/light-switch-app/light-switch-common/light-switch-app.matter
+++ b/examples/light-switch-app/light-switch-common/light-switch-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/light-switch-app/qpg/zap/switch.matter b/examples/light-switch-app/qpg/zap/switch.matter
index 23033c78bffda8..32ef2b925ecaf4 100644
--- a/examples/light-switch-app/qpg/zap/switch.matter
+++ b/examples/light-switch-app/qpg/zap/switch.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/lighting-app-data-mode-no-unique-id/lighting-common/lighting-app.matter b/examples/lighting-app-data-mode-no-unique-id/lighting-common/lighting-app.matter
index c19c7d7bf8e67a..055f2500df9c94 100644
--- a/examples/lighting-app-data-mode-no-unique-id/lighting-common/lighting-app.matter
+++ b/examples/lighting-app-data-mode-no-unique-id/lighting-common/lighting-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/lighting-app/bouffalolab/data_model/lighting-app-ethernet.matter b/examples/lighting-app/bouffalolab/data_model/lighting-app-ethernet.matter
index c51e6ee8ca0d7f..1d439eb8a9136b 100644
--- a/examples/lighting-app/bouffalolab/data_model/lighting-app-ethernet.matter
+++ b/examples/lighting-app/bouffalolab/data_model/lighting-app-ethernet.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/lighting-app/bouffalolab/data_model/lighting-app-thread.matter b/examples/lighting-app/bouffalolab/data_model/lighting-app-thread.matter
index 33d68c727dba51..0f3f2cf221a77b 100644
--- a/examples/lighting-app/bouffalolab/data_model/lighting-app-thread.matter
+++ b/examples/lighting-app/bouffalolab/data_model/lighting-app-thread.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/lighting-app/bouffalolab/data_model/lighting-app-wifi.matter b/examples/lighting-app/bouffalolab/data_model/lighting-app-wifi.matter
index 78eed27958bc67..40948cfc9d9ee0 100644
--- a/examples/lighting-app/bouffalolab/data_model/lighting-app-wifi.matter
+++ b/examples/lighting-app/bouffalolab/data_model/lighting-app-wifi.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/lighting-app/lighting-common/lighting-app.matter b/examples/lighting-app/lighting-common/lighting-app.matter
index 16e722d746b3d1..82c0d7f713a8f9 100644
--- a/examples/lighting-app/lighting-common/lighting-app.matter
+++ b/examples/lighting-app/lighting-common/lighting-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/lighting-app/nxp/zap/lighting-on-off.matter b/examples/lighting-app/nxp/zap/lighting-on-off.matter
index 0bca04dad59429..99a3c51c4111a5 100644
--- a/examples/lighting-app/nxp/zap/lighting-on-off.matter
+++ b/examples/lighting-app/nxp/zap/lighting-on-off.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/lighting-app/qpg/zap/light.matter b/examples/lighting-app/qpg/zap/light.matter
index 6509c9202d54b8..a352d37dbb0997 100644
--- a/examples/lighting-app/qpg/zap/light.matter
+++ b/examples/lighting-app/qpg/zap/light.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/lighting-app/silabs/data_model/lighting-thread-app.matter b/examples/lighting-app/silabs/data_model/lighting-thread-app.matter
index 03373bfdda8668..9adf073d9ae9e9 100644
--- a/examples/lighting-app/silabs/data_model/lighting-thread-app.matter
+++ b/examples/lighting-app/silabs/data_model/lighting-thread-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/lighting-app/silabs/data_model/lighting-wifi-app.matter b/examples/lighting-app/silabs/data_model/lighting-wifi-app.matter
index ae68bac12e3e61..9491cc517d9d34 100644
--- a/examples/lighting-app/silabs/data_model/lighting-wifi-app.matter
+++ b/examples/lighting-app/silabs/data_model/lighting-wifi-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/lit-icd-app/lit-icd-common/lit-icd-server-app.matter b/examples/lit-icd-app/lit-icd-common/lit-icd-server-app.matter
index 6c5e4af56cbee4..96e6d9c4059258 100644
--- a/examples/lit-icd-app/lit-icd-common/lit-icd-server-app.matter
+++ b/examples/lit-icd-app/lit-icd-common/lit-icd-server-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/lock-app/lock-common/lock-app.matter b/examples/lock-app/lock-common/lock-app.matter
index 2f2b9dd40850d8..6a714d7fd300d1 100644
--- a/examples/lock-app/lock-common/lock-app.matter
+++ b/examples/lock-app/lock-common/lock-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/lock-app/nxp/zap/lock-app.matter b/examples/lock-app/nxp/zap/lock-app.matter
index 347ad97fbe2946..d9a10d969dff6d 100644
--- a/examples/lock-app/nxp/zap/lock-app.matter
+++ b/examples/lock-app/nxp/zap/lock-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/lock-app/qpg/zap/lock.matter b/examples/lock-app/qpg/zap/lock.matter
index 303b079b910cac..ae95486d93f920 100644
--- a/examples/lock-app/qpg/zap/lock.matter
+++ b/examples/lock-app/qpg/zap/lock.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/log-source-app/log-source-common/log-source-app.matter b/examples/log-source-app/log-source-common/log-source-app.matter
index 18f096a55eddfb..3da4e2a7ec49c4 100644
--- a/examples/log-source-app/log-source-common/log-source-app.matter
+++ b/examples/log-source-app/log-source-common/log-source-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/microwave-oven-app/microwave-oven-common/microwave-oven-app.matter b/examples/microwave-oven-app/microwave-oven-common/microwave-oven-app.matter
index 0ac59afb131cd9..6ed9c10e503084 100644
--- a/examples/microwave-oven-app/microwave-oven-common/microwave-oven-app.matter
+++ b/examples/microwave-oven-app/microwave-oven-common/microwave-oven-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/network-manager-app/network-manager-common/network-manager-app.matter b/examples/network-manager-app/network-manager-common/network-manager-app.matter
index 273b523ce5060f..2408caaaaeb519 100644
--- a/examples/network-manager-app/network-manager-common/network-manager-app.matter
+++ b/examples/network-manager-app/network-manager-common/network-manager-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/ota-provider-app/ota-provider-common/ota-provider-app.matter b/examples/ota-provider-app/ota-provider-common/ota-provider-app.matter
index 5958192ce981e1..85f62e500506fc 100644
--- a/examples/ota-provider-app/ota-provider-common/ota-provider-app.matter
+++ b/examples/ota-provider-app/ota-provider-common/ota-provider-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.matter b/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.matter
index c61a4908d01f1f..0d44285e3a9d98 100644
--- a/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.matter
+++ b/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/placeholder/linux/apps/app1/config.matter b/examples/placeholder/linux/apps/app1/config.matter
index bf5e6d6b75af16..54fbdc84d0a815 100644
--- a/examples/placeholder/linux/apps/app1/config.matter
+++ b/examples/placeholder/linux/apps/app1/config.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/placeholder/linux/apps/app2/config.matter b/examples/placeholder/linux/apps/app2/config.matter
index 26651684750454..836855f536b30e 100644
--- a/examples/placeholder/linux/apps/app2/config.matter
+++ b/examples/placeholder/linux/apps/app2/config.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/pump-app/pump-common/pump-app.matter b/examples/pump-app/pump-common/pump-app.matter
index 7031fc2ecf3d26..fc30273ac010bb 100644
--- a/examples/pump-app/pump-common/pump-app.matter
+++ b/examples/pump-app/pump-common/pump-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/pump-app/silabs/data_model/pump-thread-app.matter b/examples/pump-app/silabs/data_model/pump-thread-app.matter
index 7dca9cc390c4af..c45e6dcfb8a2b3 100644
--- a/examples/pump-app/silabs/data_model/pump-thread-app.matter
+++ b/examples/pump-app/silabs/data_model/pump-thread-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/pump-app/silabs/data_model/pump-wifi-app.matter b/examples/pump-app/silabs/data_model/pump-wifi-app.matter
index 7dca9cc390c4af..c45e6dcfb8a2b3 100644
--- a/examples/pump-app/silabs/data_model/pump-wifi-app.matter
+++ b/examples/pump-app/silabs/data_model/pump-wifi-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/pump-controller-app/pump-controller-common/pump-controller-app.matter b/examples/pump-controller-app/pump-controller-common/pump-controller-app.matter
index 0207abc4600cef..43d27b44e15fce 100644
--- a/examples/pump-controller-app/pump-controller-common/pump-controller-app.matter
+++ b/examples/pump-controller-app/pump-controller-common/pump-controller-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/refrigerator-app/refrigerator-common/refrigerator-app.matter b/examples/refrigerator-app/refrigerator-common/refrigerator-app.matter
index 892012082c0d71..a505667ce3ac15 100644
--- a/examples/refrigerator-app/refrigerator-common/refrigerator-app.matter
+++ b/examples/refrigerator-app/refrigerator-common/refrigerator-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/rvc-app/rvc-common/rvc-app.matter b/examples/rvc-app/rvc-common/rvc-app.matter
index 974c0dc73a689c..88c30958d39dd7 100644
--- a/examples/rvc-app/rvc-common/rvc-app.matter
+++ b/examples/rvc-app/rvc-common/rvc-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/smoke-co-alarm-app/smoke-co-alarm-common/smoke-co-alarm-app.matter b/examples/smoke-co-alarm-app/smoke-co-alarm-common/smoke-co-alarm-app.matter
index 1af9ccc34b0422..f0dc18fd1ef19e 100644
--- a/examples/smoke-co-alarm-app/smoke-co-alarm-common/smoke-co-alarm-app.matter
+++ b/examples/smoke-co-alarm-app/smoke-co-alarm-common/smoke-co-alarm-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/temperature-measurement-app/temperature-measurement-common/temperature-measurement.matter b/examples/temperature-measurement-app/temperature-measurement-common/temperature-measurement.matter
index cf4d7159fdbf52..343116094ec56c 100644
--- a/examples/temperature-measurement-app/temperature-measurement-common/temperature-measurement.matter
+++ b/examples/temperature-measurement-app/temperature-measurement-common/temperature-measurement.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/thermostat/nxp/zap/thermostat_matter_thread.matter b/examples/thermostat/nxp/zap/thermostat_matter_thread.matter
index 179a2c5bf19a90..849a177ec57626 100644
--- a/examples/thermostat/nxp/zap/thermostat_matter_thread.matter
+++ b/examples/thermostat/nxp/zap/thermostat_matter_thread.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/thermostat/nxp/zap/thermostat_matter_wifi.matter b/examples/thermostat/nxp/zap/thermostat_matter_wifi.matter
index 820bd331ad6a6d..a80844948a73c6 100644
--- a/examples/thermostat/nxp/zap/thermostat_matter_wifi.matter
+++ b/examples/thermostat/nxp/zap/thermostat_matter_wifi.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/thermostat/qpg/zap/thermostaticRadiatorValve.matter b/examples/thermostat/qpg/zap/thermostaticRadiatorValve.matter
index d88d6ec1feee1a..6d1a8f3f8bf29b 100644
--- a/examples/thermostat/qpg/zap/thermostaticRadiatorValve.matter
+++ b/examples/thermostat/qpg/zap/thermostaticRadiatorValve.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/thermostat/thermostat-common/thermostat.matter b/examples/thermostat/thermostat-common/thermostat.matter
index 6feefe3bba1c14..8f037e9317e64a 100644
--- a/examples/thermostat/thermostat-common/thermostat.matter
+++ b/examples/thermostat/thermostat-common/thermostat.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/thread-br-app/thread-br-common/thread-br-app.matter b/examples/thread-br-app/thread-br-common/thread-br-app.matter
index 9498dee8be25d3..1244a52ce863f7 100644
--- a/examples/thread-br-app/thread-br-common/thread-br-app.matter
+++ b/examples/thread-br-app/thread-br-common/thread-br-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/tv-app/tv-common/tv-app.matter b/examples/tv-app/tv-common/tv-app.matter
index bd2f29d653067b..a4855f056b63ae 100644
--- a/examples/tv-app/tv-common/tv-app.matter
+++ b/examples/tv-app/tv-common/tv-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter b/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter
index 3e4fe7fa47bc06..8347a4c77d9399 100644
--- a/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter
+++ b/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/virtual-device-app/virtual-device-common/virtual-device-app.matter b/examples/virtual-device-app/virtual-device-common/virtual-device-app.matter
index 07baa25e19ebc3..1d175e1fa025f0 100644
--- a/examples/virtual-device-app/virtual-device-common/virtual-device-app.matter
+++ b/examples/virtual-device-app/virtual-device-common/virtual-device-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/examples/window-app/common/window-app.matter b/examples/window-app/common/window-app.matter
index 61a8208e0cb4bf..3bbb0f7a720d94 100644
--- a/examples/window-app/common/window-app.matter
+++ b/examples/window-app/common/window-app.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
diff --git a/src/controller/data_model/controller-clusters.matter b/src/controller/data_model/controller-clusters.matter
index ea7ab01b39d2dd..1a25a80b17613c 100644
--- a/src/controller/data_model/controller-clusters.matter
+++ b/src/controller/data_model/controller-clusters.matter
@@ -212,6 +212,13 @@ enum TestGlobalEnum : enum8 {
   kFinalValue = 2;
 }
 
+enum ThreeLevelAutoEnum : enum8 {
+  kLow = 0;
+  kMedium = 1;
+  kHigh = 2;
+  kAutomatic = 3;
+}
+
 bitmap TestGlobalBitmap : bitmap32 {
   kFirstBit = 0x1;
   kSecondBit = 0x2;
@@ -9376,6 +9383,831 @@ provisional cluster ContentAppObserver = 1296 {
   command ContentAppMessage(ContentAppMessageRequest): ContentAppMessageResponse = 0;
 }
 
+/** This cluster is used to allow clients to manage, control, and configure various
+      audio, video, and snapshot streams on a camera. */
+provisional cluster CameraAvStreamManagement = 1361 {
+  revision 1;
+
+  enum AudioCodecEnum : enum8 {
+    kOPUS = 0;
+    kAACLC = 1;
+  }
+
+  enum ImageCodecEnum : enum8 {
+    kJPEG = 0;
+  }
+
+  enum StreamTypeEnum : enum8 {
+    kInternal = 0;
+    kRecording = 1;
+    kAnalysis = 2;
+    kLiveView = 3;
+  }
+
+  enum TriStateAuto : enum8 {
+    kOff = 0;
+    kOn = 1;
+    kAuto = 2;
+  }
+
+  enum TwowayTalkSupportTypeEnum : enum8 {
+    kNotSupported = 0;
+    kHalfDuplex = 1;
+    kFullDuplex = 2;
+  }
+
+  enum VideoCodecEnum : enum8 {
+    kH264 = 0;
+    kHEVC = 1;
+    kVVC = 2;
+    kAV1 = 3;
+  }
+
+  bitmap Feature : bitmap32 {
+    kPrivacy = 0x1;
+    kSensorControl = 0x2;
+    kAudio = 0x4;
+    kImageControl = 0x8;
+    kVideo = 0x10;
+    kSnapshot = 0x20;
+    kLocalStorage = 0x40;
+  }
+
+  struct AudioCapabilitiesStruct {
+    int8u maxNumberOfChannels = 0;
+    AudioCodecEnum supportedCodecs[] = 1;
+    int32u supportedSampleRates[] = 2;
+    int32u supportedBitDepths[] = 3;
+  }
+
+  struct AudioStreamStruct {
+    int16u audioStreamID = 0;
+    StreamTypeEnum streamType = 1;
+    AudioCodecEnum audioCodec = 2;
+    int8u channelCount = 3;
+    int32u sampleRate = 4;
+    int32u bitRate = 5;
+    int8u bitDepth = 6;
+    int8u referenceCount = 7;
+  }
+
+  struct PerStreamStruct {
+    int16u streamID = 0;
+    boolean onOff = 1;
+  }
+
+  struct RateDistortionTradeOffPointsStruct {
+    VideoCodecEnum codec = 0;
+    DimensionStruct resolution = 1;
+    int32u minBitRate = 2;
+  }
+
+  struct SnapshotParamsStruct {
+    DimensionStruct resolution = 0;
+    int16u maxFrameRate = 1;
+    ImageCodecEnum imageCodec = 2;
+  }
+
+  struct SnapshotStreamStruct {
+    int16u snapshotStreamID = 0;
+    ImageCodecEnum imageCodec = 1;
+    int16u frameRate = 2;
+    int32u bitRate = 3;
+    DimensionStruct minResolution = 4;
+    DimensionStruct maxResolution = 5;
+    int8u quality = 6;
+    int8u referenceCount = 7;
+  }
+
+  struct VideoSensorParamsStruct {
+    int16u sensorWidth = 0;
+    int16u sensorHeight = 1;
+    boolean HDRCapable = 2;
+    int16u maxFPS = 3;
+    int16u maxHDRFPS = 4;
+  }
+
+  struct VideoStreamStruct {
+    int16u videoStreamID = 0;
+    StreamTypeEnum streamType = 1;
+    VideoCodecEnum videoCodec = 2;
+    int16u minFrameRate = 3;
+    int16u maxFrameRate = 4;
+    DimensionStruct minResolution = 5;
+    DimensionStruct maxResolution = 6;
+    int16u minBitRate = 7;
+    int16u maxBitRate = 8;
+    int16u minFragmentLen = 9;
+    int16u maxFragmentLen = 10;
+    int8u referenceCount = 11;
+  }
+
+  struct ViewportStruct {
+    int16u x1 = 0;
+    int16u y1 = 1;
+    int16u x2 = 2;
+    int16u y2 = 3;
+  }
+
+  info event VideoStreamChanged = 0 {
+    int16u videoStreamID = 0;
+    optional StreamTypeEnum streamType = 1;
+    optional VideoCodecEnum videoCodec = 2;
+    optional int16u minFrameRate = 3;
+    optional int16u maxFrameRate = 4;
+    optional DimensionStruct minResolution = 5;
+    optional DimensionStruct maxResolution = 6;
+    optional int16u minBitRate = 7;
+    optional int16u maxBitRate = 8;
+    optional int16u minFragmentLen = 9;
+    optional int16u maxFragmentLen = 10;
+  }
+
+  info event AudioStreamChanged = 1 {
+    int16u audioStreamID = 0;
+    optional StreamTypeEnum streamType = 1;
+    optional AudioCodecEnum audioCodec = 2;
+    optional int8u channelCount = 3;
+    optional int32u sampleRate = 4;
+    optional int32u bitRate = 5;
+    optional int8u bitDepth = 6;
+  }
+
+  info event SnapshotStreamChanged = 2 {
+    int16u snapshotStreamID = 0;
+    optional ImageCodecEnum imageCodec = 1;
+    optional int16u frameRate = 2;
+    optional int32u bitRate = 3;
+    optional DimensionStruct minResolution = 4;
+    optional DimensionStruct maxResolution = 5;
+    optional int8u quality = 6;
+  }
+
+  readonly attribute access(read: administer) optional int8u maxConcurrentVideoEncoders = 0;
+  readonly attribute access(read: administer) optional int32u maxEncodedPixelRate = 1;
+  readonly attribute access(read: administer) optional VideoSensorParamsStruct videoSensorParams = 2;
+  readonly attribute access(read: administer) optional boolean nightVisionCapable = 3;
+  readonly attribute access(read: administer) optional DimensionStruct minViewPortWidth = 4;
+  readonly attribute access(read: administer) optional DimensionStruct minViewPortHeight = 5;
+  readonly attribute access(read: administer) optional RateDistortionTradeOffPointsStruct rateDistortionTradeOffPoints[] = 6;
+  readonly attribute access(read: administer) optional int32u maxPreRollBufferSize = 7;
+  readonly attribute access(read: administer) optional AudioCapabilitiesStruct microphoneCapabilities = 8;
+  readonly attribute access(read: administer) optional AudioCapabilitiesStruct speakerCapabilities = 9;
+  readonly attribute access(read: administer) optional TwowayTalkSupportTypeEnum twoWayTalkSupport = 10;
+  readonly attribute access(read: administer) optional SnapshotParamsStruct supportedSnapshotParams[] = 11;
+  readonly attribute access(read: administer) optional boolean HDRCapable = 12;
+  readonly attribute access(read: administer) int32u maxNetworkBandwidth = 13;
+  readonly attribute access(read: administer) optional int16u currentFrameRate = 14;
+  attribute access(read: administer, write: administer) optional boolean HDRMode = 15;
+  readonly attribute access(read: administer) optional VideoCodecEnum currentVideoCodecs[] = 16;
+  readonly attribute access(read: administer) optional SnapshotParamsStruct currentSnapshotConfig = 17;
+  readonly attribute access(read: administer) fabric_idx fabricsUsingCamera[] = 18;
+  readonly attribute access(read: administer) optional VideoStreamStruct allocatedVideoStreams[] = 19;
+  readonly attribute access(read: administer) optional AudioStreamStruct allocatedAudioStreams[] = 20;
+  readonly attribute access(read: administer) optional SnapshotStreamStruct allocatedSnapshotStreams[] = 21;
+  attribute access(read: administer, write: administer) optional StreamTypeEnum rankedVideoStreamPrioritiesList[] = 22;
+  attribute access(read: administer, write: administer) optional boolean softRecordingPrivacyModeSetting = 23;
+  attribute access(read: administer, write: administer) optional boolean softLivestreamPrivacyModeSetting = 24;
+  readonly attribute access(read: administer) optional boolean hardPrivacyMode = 25;
+  attribute access(read: administer, write: administer) optional TriStateAuto nightVision = 26;
+  attribute access(read: administer, write: administer) optional TriStateAuto nightVisionIllum = 27;
+  attribute access(read: administer, write: administer) optional boolean awb = 28;
+  attribute access(read: administer, write: administer) optional boolean shutterSpeed = 29;
+  attribute access(read: administer, write: administer) optional boolean iso = 30;
+  readonly attribute access(read: administer) optional ViewportStruct viewport = 31;
+  attribute access(read: administer, write: administer) optional boolean spkrOnOff = 32;
+  attribute access(read: administer, write: administer) optional int8u spkrVolumeLevel = 33;
+  attribute access(read: administer, write: administer) optional int8u spkrMaxLevel = 34;
+  attribute access(read: administer, write: administer) optional int8u spkrMinLevel = 35;
+  attribute access(read: administer, write: administer) optional boolean micOnOff = 36;
+  attribute access(read: administer, write: administer) optional int8u micCurrentLevel = 37;
+  attribute access(read: administer, write: administer) optional int8u micMaxLevel = 38;
+  attribute access(read: administer, write: administer) optional int8u micMinLevel = 39;
+  attribute access(read: administer, write: administer) optional boolean micAGC = 40;
+  readonly attribute access(read: administer) optional int16u imageRotation = 41;
+  readonly attribute access(read: administer) optional boolean imageFlipHorizontal = 42;
+  readonly attribute access(read: administer) optional boolean imageFlipVertical = 43;
+  attribute access(read: administer, write: administer) optional boolean localVideoRecordingEnabled = 44;
+  attribute access(read: administer, write: administer) optional boolean localSnapshotRecordingEnabled = 45;
+  attribute access(read: administer, write: administer) optional boolean statusLight = 46;
+  attribute access(read: administer, write: administer) optional ThreeLevelAutoEnum statusLightBrightness = 47;
+  attribute access(read: administer, write: administer) optional TriStateAuto depthSensorStatus = 48;
+  attribute access(read: administer, write: administer) optional PerStreamStruct watermarkEnabled[] = 49;
+  attribute access(read: administer, write: administer) optional PerStreamStruct OSDEnabled[] = 50;
+  readonly attribute command_id generatedCommandList[] = 65528;
+  readonly attribute command_id acceptedCommandList[] = 65529;
+  readonly attribute event_id eventList[] = 65530;
+  readonly attribute attrib_id attributeList[] = 65531;
+  readonly attribute bitmap32 featureMap = 65532;
+  readonly attribute int16u clusterRevision = 65533;
+
+  request struct AudioStreamAllocateRequest {
+    StreamTypeEnum streamType = 0;
+    AudioCodecEnum audioCodec = 1;
+    int8u channelCount = 2;
+    int32u sampleRate = 3;
+    int32u bitRate = 4;
+    int8u bitDepth = 5;
+  }
+
+  response struct AudioStreamAllocateResponse = 1 {
+    int16u audioStreamID = 0;
+  }
+
+  request struct AudioStreamDeallocateRequest {
+    int16u audioStreamID = 0;
+  }
+
+  request struct VideoStreamAllocateRequest {
+    StreamTypeEnum streamType = 0;
+    VideoCodecEnum videoCodec = 1;
+    int16u minFrameRate = 2;
+    int16u maxFrameRate = 3;
+    DimensionStruct minResolution = 4;
+    DimensionStruct maxResolution = 5;
+    int32u minBitRate = 6;
+    int32u maxBitRate = 7;
+    int16u minFragmentLen = 8;
+    int16u maxFragmentLen = 9;
+  }
+
+  response struct VideoStreamAllocateResponse = 4 {
+    int16u videoStreamID = 0;
+  }
+
+  request struct VideoStreamModifyRequest {
+    int16u videoStreamID = 0;
+    DimensionStruct resolution = 1;
+  }
+
+  request struct VideoStreamDeallocateRequest {
+    int16u videoStreamID = 0;
+  }
+
+  request struct SnapshotStreamAllocateRequest {
+    ImageCodecEnum imageCodec = 0;
+    int16u frameRate = 1;
+    int32u bitRate = 2;
+    DimensionStruct minResolution = 3;
+    DimensionStruct maxResolution = 4;
+    int8u quality = 5;
+  }
+
+  response struct SnapshotStreamAllocateResponse = 8 {
+    int16u snapshotStreamID = 0;
+  }
+
+  request struct SnapshotStreamDeallocateRequest {
+    int16u snapshotStreamID = 0;
+  }
+
+  request struct CaptureSnapshotRequest {
+    int16u snapshotStreamID = 0;
+    DimensionStruct requestedResolution = 1;
+  }
+
+  response struct CaptureSnapshotResponse = 12 {
+    octet_string data = 0;
+    ImageCodecEnum imageCodec = 1;
+    DimensionStruct resolution = 2;
+  }
+
+  request struct SetViewportRequest {
+    ViewportStruct viewport = 0;
+  }
+
+  request struct SetImageRotationRequest {
+    int16u angle = 0;
+  }
+
+  request struct SetImageFlipHorizontalRequest {
+    boolean onOff = 0;
+  }
+
+  request struct SetImageFlipVerticalRequest {
+    boolean onOff = 0;
+  }
+
+  /** This command SHALL allocate an audio stream on the camera and return an allocated audio stream identifier. */
+  command access(invoke: administer) AudioStreamAllocate(AudioStreamAllocateRequest): AudioStreamAllocateResponse = 0;
+  /** This command SHALL deallocate an audio stream on the camera, corresponding to the given audio stream identifier. */
+  command access(invoke: administer) AudioStreamDeallocate(AudioStreamDeallocateRequest): DefaultSuccess = 2;
+  /** This command SHALL allocate a video stream on the camera and return an allocated video stream identifier. */
+  command access(invoke: administer) VideoStreamAllocate(VideoStreamAllocateRequest): VideoStreamAllocateResponse = 3;
+  /** This command SHALL be used to modify the resolution of a stream specified by the VideoStreamID. */
+  command access(invoke: administer) VideoStreamModify(VideoStreamModifyRequest): DefaultSuccess = 5;
+  /** This command SHALL deallocate a video stream on the camera, corresponding to the given video stream identifier. */
+  command access(invoke: administer) VideoStreamDeallocate(VideoStreamDeallocateRequest): DefaultSuccess = 6;
+  /** This command SHALL allocate a snapshot stream on the device and return an allocated snapshot stream identifier. */
+  command access(invoke: administer) SnapshotStreamAllocate(SnapshotStreamAllocateRequest): SnapshotStreamAllocateResponse = 7;
+  /** This command SHALL deallocate an snapshot stream on the camera, corresponding to the given snapshot stream identifier. */
+  command access(invoke: administer) SnapshotStreamDeallocate(SnapshotStreamDeallocateRequest): DefaultSuccess = 9;
+  command access(invoke: administer) SetStreamPriority(): DefaultSuccess = 10;
+  /** This command SHALL return a Snapshot from the camera. */
+  command access(invoke: administer) CaptureSnapshot(CaptureSnapshotRequest): DefaultSuccess = 11;
+  /** This command SHALL set the viewport in all video streams. */
+  command SetViewport(SetViewportRequest): DefaultSuccess = 13;
+  /** The data fields for this command SHALL be as follows: */
+  command SetImageRotation(SetImageRotationRequest): DefaultSuccess = 14;
+  /** The data fields for this command SHALL be as follows: */
+  command SetImageFlipHorizontal(SetImageFlipHorizontalRequest): DefaultSuccess = 15;
+  /** The data fields for this command SHALL be as follows: */
+  command SetImageFlipVertical(SetImageFlipVerticalRequest): DefaultSuccess = 16;
+}
+
+/** This cluster provides an interface into controls associated with the operation of a device that provides pan, tilt, and zoom functions, either mechanically, or against a digital image. */
+provisional cluster CameraAvSettingsUserLevelManagement = 1362 {
+  revision 1;
+
+  bitmap Feature : bitmap32 {
+    kMechanicalPTZ = 0x1;
+    kDigitalPTZ = 0x2;
+  }
+
+  struct MPTZStruct {
+    optional nullable int16s MPan = 0;
+    optional nullable int8s MTilt = 1;
+    optional nullable int16u MZoom = 2;
+  }
+
+  struct PerStreamStruct {
+    int16u streamID = 0;
+    boolean onOff = 1;
+  }
+
+  struct ViewportStruct {
+    int16u x1 = 0;
+    int16u y1 = 1;
+    int16u x2 = 2;
+    int16u y2 = 3;
+  }
+
+  readonly attribute optional MPTZStruct mptz = 0;
+  readonly attribute optional int8u maxPresets = 1;
+  readonly attribute optional MPTZStruct presetMptzTable[] = 2;
+  readonly attribute optional boolean mptzRelativeMove = 3;
+  readonly attribute optional PerStreamStruct dptzRelativeMove[] = 4;
+  readonly attribute command_id generatedCommandList[] = 65528;
+  readonly attribute command_id acceptedCommandList[] = 65529;
+  readonly attribute event_id eventList[] = 65530;
+  readonly attribute attrib_id attributeList[] = 65531;
+  readonly attribute bitmap32 featureMap = 65532;
+  readonly attribute int16u clusterRevision = 65533;
+
+  request struct MptzSetRequest {
+    optional MPTZStruct newPTZ = 0;
+    optional int8u presetID = 1;
+  }
+
+  request struct MptzRelativeMoveRequest {
+    int16s pan = 0;
+    int16s tilt = 1;
+    int16s zoom = 2;
+  }
+
+  request struct DptzSetViewportRequest {
+    int16u videoStreamID = 0;
+    ViewportStruct viewport = 1;
+  }
+
+  request struct DptzRelativeMoveRequest {
+    int16u videoStreamID = 0;
+    int16s pan = 1;
+    int16s tilt = 2;
+    int8s zoom = 3;
+  }
+
+  /** This command SHALL set the values for the pan, tilt, and zoom in the mechanical PTZ. */
+  command MptzSet(MptzSetRequest): DefaultSuccess = 0;
+  /** This command SHALL move the device by the values for pan, tilt, and zoom relative to the currently defined position. */
+  command MptzRelativeMove(MptzRelativeMoveRequest): DefaultSuccess = 1;
+  /** This command SHALL set the next available index in the PresetMptzTable to the current, known, values of pan, tilt, and zoom on the camera. */
+  command SetAsPreset(): DefaultSuccess = 2;
+  /** This command SHALL set the viewport in the digital PTZ for a specific Video Stream. */
+  command DptzSetViewport(DptzSetViewportRequest): DefaultSuccess = 3;
+  /** This command SHALL change the viewports location by the amount specified in a relative fashion. */
+  command DptzRelativeMove(DptzRelativeMoveRequest): DefaultSuccess = 4;
+}
+
+/** The WebRTC transport provider cluster provides a way for stream providers (e.g. Cameras) to stream or receive their data through WebRTC. */
+provisional cluster WebRTCTransportProvider = 1363 {
+  revision 1;
+
+  enum StreamTypeEnum : enum8 {
+    kInternal = 0;
+    kRecording = 1;
+    kAnalysis = 2;
+    kLiveView = 3;
+  }
+
+  enum StreamTypeEnum : enum8 {
+    kInternal = 0;
+    kRecording = 1;
+    kAnalysis = 2;
+    kLiveView = 3;
+  }
+
+  enum WebRTCEndReasonEnum : enum8 {
+    kICEFAILED = 1;
+    kICETIMEOUT = 2;
+    kUSERHANGUP = 3;
+    kUSERBUSY = 4;
+    kREPLACED = 5;
+    kNOUSERMEDIA = 6;
+    kINVITETIMEOUT = 7;
+    kANSWEREDELSEWHERE = 8;
+    kOUTOFRESOURCES = 9;
+    kMEDIATIMEOUT = 10;
+    kLOWPOWER = 11;
+    kUNKNOWNERROR = 12;
+  }
+
+  bitmap WebRTCMetadataOptions : bitmap8 {
+    kDataTLV = 0x1;
+  }
+
+  struct ICEServerStruct {
+    char_string urls[] = 1;
+    optional char_string username = 2;
+    optional char_string credential = 3;
+    optional int16u caid = 4;
+  }
+
+  struct WebRTCSessionStruct {
+    int16u id = 1;
+    node_id peerNodeId = 2;
+    fabric_idx peerFabricIndex = 3;
+    StreamTypeEnum streamType = 4;
+    nullable int16u videoStreamID = 5;
+    nullable int16u audioStreamID = 6;
+    WebRTCMetadataOptions metadataOptions = 7;
+  }
+
+  readonly attribute WebRTCSessionStruct currentSessions[] = 0;
+  readonly attribute command_id generatedCommandList[] = 65528;
+  readonly attribute command_id acceptedCommandList[] = 65529;
+  readonly attribute event_id eventList[] = 65530;
+  readonly attribute attrib_id attributeList[] = 65531;
+  readonly attribute bitmap32 featureMap = 65532;
+  readonly attribute int16u clusterRevision = 65533;
+
+  request struct WebRTCSolicitOfferRequest {
+    StreamTypeEnum streamType = 0;
+    optional nullable int16u videoStreamID = 1;
+    optional nullable int16u audioStreamID = 2;
+    optional ICEServerStruct ICEServers[] = 3;
+    optional char_string ICETransportPolicy = 4;
+    optional WebRTCMetadataOptions metadataOptions = 5;
+  }
+
+  response struct WebRTCSolicitOfferResponse = 2 {
+    int16u webRTCSessionID = 0;
+    boolean deferredOffer = 1;
+    optional nullable int16u videoStreamID = 2;
+    optional nullable int16u audioStreamID = 3;
+  }
+
+  request struct WebRTCProvideOfferRequest {
+    nullable int16u webRTCSessionID = 0;
+    char_string sdp = 1;
+    StreamTypeEnum streamType = 2;
+    optional nullable int16u videoStreamID = 3;
+    optional nullable int16u audioStreamID = 4;
+    optional ICEServerStruct ICEServers[] = 5;
+    optional char_string ICETransportPolicy = 6;
+    optional WebRTCMetadataOptions metadataOptions = 7;
+  }
+
+  response struct WebRTCProvideOfferResponse = 4 {
+    int16u webRTCSessionID = 0;
+    int16u videoStreamID = 1;
+    int16u audioStreamID = 2;
+  }
+
+  request struct WebRTCProvideAnswerRequest {
+    int16u webRTCSessionID = 0;
+    char_string sdp = 1;
+  }
+
+  request struct WebRTCProvideICECandidateRequest {
+    int16u webRTCSessionID = 0;
+    char_string ICECandidate = 1;
+  }
+
+  request struct WebRTCEndSessionRequest {
+    int16u webRTCSessionID = 0;
+    WebRTCEndReasonEnum reason = 1;
+  }
+
+  /** Requests that the Provider initiates a new session with the Offer / Answer flow in a way that allows for options to be passed and work with devices needing the standby flow. */
+  command WebRTCSolicitOffer(WebRTCSolicitOfferRequest): WebRTCSolicitOfferResponse = 1;
+  /** This command allows an SDP Offer to be set and start a new session. */
+  command WebRTCProvideOffer(WebRTCProvideOfferRequest): WebRTCProvideOfferResponse = 3;
+  /** This command will be initiated from a local Node as a response to an offer that was previously provided by the remote peer. */
+  command WebRTCProvideAnswer(WebRTCProvideAnswerRequest): DefaultSuccess = 5;
+  /** This command allows for https://www.rfc-editor.org/rfc/rfc8839#section-4.2.1.2 nominated after the initial Offer / Answer exchange to be added to a session during the gathering phase. */
+  command WebRTCProvideICECandidate(WebRTCProvideICECandidateRequest): DefaultSuccess = 6;
+  /** This command instructs the stream provider to end the WebRTC session. */
+  command WebRTCEndSession(WebRTCEndSessionRequest): DefaultSuccess = 7;
+}
+
+/** The WebRTC transport requestor cluster provides a way for stream consumers (e.g. Matter Stream Viewer) to establish a WebRTC connection with a stream provider that implements the WebRTC Transport Provider Cluster */
+provisional cluster WebRTCTransportRequestor = 1364 {
+  revision 1;
+
+  enum StreamTypeEnum : enum8 {
+    kInternal = 0;
+    kRecording = 1;
+    kAnalysis = 2;
+    kLiveView = 3;
+  }
+
+  enum StreamTypeEnum : enum8 {
+    kInternal = 0;
+    kRecording = 1;
+    kAnalysis = 2;
+    kLiveView = 3;
+  }
+
+  enum WebRTCEndReasonEnum : enum8 {
+    kICEFAILED = 1;
+    kICETIMEOUT = 2;
+    kUSERHANGUP = 3;
+    kUSERBUSY = 4;
+    kREPLACED = 5;
+    kNOUSERMEDIA = 6;
+    kINVITETIMEOUT = 7;
+    kANSWEREDELSEWHERE = 8;
+    kOUTOFRESOURCES = 9;
+    kMEDIATIMEOUT = 10;
+    kLOWPOWER = 11;
+    kUNKNOWNERROR = 12;
+  }
+
+  bitmap WebRTCMetadataOptions : bitmap8 {
+    kDataTLV = 0x1;
+  }
+
+  struct ICEServerStruct {
+    char_string urls[] = 1;
+    optional char_string username = 2;
+    optional char_string credential = 3;
+    optional int16u caid = 4;
+  }
+
+  struct WebRTCSessionStruct {
+    int16u id = 1;
+    node_id peerNodeId = 2;
+    fabric_idx peerFabricIndex = 3;
+    StreamTypeEnum streamType = 4;
+    nullable int16u videoStreamID = 5;
+    nullable int16u audioStreamID = 6;
+    WebRTCMetadataOptions metadataOptions = 7;
+  }
+
+  readonly attribute WebRTCSessionStruct currentSessions[] = 0;
+  readonly attribute command_id generatedCommandList[] = 65528;
+  readonly attribute command_id acceptedCommandList[] = 65529;
+  readonly attribute event_id eventList[] = 65530;
+  readonly attribute attrib_id attributeList[] = 65531;
+  readonly attribute bitmap32 featureMap = 65532;
+  readonly attribute int16u clusterRevision = 65533;
+
+  request struct WebRTCOfferRequest {
+    int16u webRTCSessionID = 0;
+    char_string sdp = 1;
+    optional ICEServerStruct ICEServers[] = 2;
+    optional char_string ICETransportPolicy = 3;
+  }
+
+  request struct WebRTCAnswerRequest {
+    int16u webRTCSessionID = 0;
+    char_string sdp = 1;
+  }
+
+  request struct WebRTCICECandidateRequest {
+    int16u webRTCSessionID = 0;
+    char_string ICECandidate = 1;
+  }
+
+  request struct WebRTCEndRequest {
+    int16u webRTCSessionID = 0;
+    WebRTCEndReasonEnum reason = 1;
+  }
+
+  /** This command provides the stream requestor with WebRTC session details. */
+  command WebRTCOffer(WebRTCOfferRequest): DefaultSuccess = 1;
+  /** This command provides the stream requestor with the WebRTC session details (i.e. */
+  command WebRTCAnswer(WebRTCAnswerRequest): DefaultSuccess = 2;
+  /** This command provides an ICE candidate to the stream requestor in a WebRTC session. */
+  command WebRTCICECandidate(WebRTCICECandidateRequest): DefaultSuccess = 3;
+  /** This command notifies the stream requestor that the provider has ended the WebRTC session. */
+  command WebRTCEnd(WebRTCEndRequest): DefaultSuccess = 4;
+}
+
+/** This cluster implements the upload of Audio and Video streams from the Camera AV Stream Management Cluster using suitable push-based transports. */
+cluster PushAvStreamTransport = 1365 {
+  revision 1;
+
+  enum PushAVStreamTransportContainerFormatEnum : enum8 {
+    kCMAF = 0;
+  }
+
+  enum PushAVStreamTransportIngestMethodEnum : enum8 {
+    kCMAFIngest = 0;
+  }
+
+  enum PushAVStreamTransportStatusEnum : enum8 {
+    kActive = 0;
+    kInactive = 1;
+  }
+
+  enum PushAVStreamTransportStreamMultiplexingEnum : enum8 {
+    kInterleaved = 0;
+  }
+
+  enum PushAVStreamTransportTriggerActivationReasonEnum : enum8 {
+    kUserInitiated = 0;
+    kAutomation = 1;
+    kEmergency = 2;
+  }
+
+  enum PushAVStreamTransportTriggerTypeEnum : enum8 {
+    kCommand = 0;
+    kMotion = 1;
+    kContinuous = 2;
+  }
+
+  enum StatusCodeEnum : enum8 {
+    kALLOCATIONNOTPERMITTED = 2;
+    kINVALIDPARAMETERS = 3;
+    kINVALIDURL = 4;
+    kINVALIDTRIGGEROPTIONS = 5;
+    kUNSUPPORTEDCONTAINERFORMAT = 6;
+    kUNSUPPORTEDINGESTMETHOD = 7;
+    kPAVSTNOTINUSE = 8;
+    kINVALIDTRIGGERFORMAT = 9;
+    kINVALIDTRANSPORTSTATUS = 16;
+  }
+
+  enum StreamTypeEnum : enum8 {
+    kInternal = 0;
+    kRecording = 1;
+    kAnalysis = 2;
+    kLiveView = 3;
+  }
+
+  bitmap PushAVStreamTransportSupportedContainerFormatsBitmap : bitmap8 {
+    kCMAF = 0x1;
+  }
+
+  bitmap PushAVStreamTransportSupportedIngestMethodsBitmap : bitmap8 {
+    kCMAFIngest = 0x1;
+  }
+
+  struct PushAVStreamTransportMotionTriggerTimeControlStruct {
+    int16u initialDuration = 0;
+    int16u augmentationDuration = 1;
+    int32u maxDuration = 2;
+    int16u blindDuration = 3;
+  }
+
+  struct PushAVStreamTransportMetadataOptionsStruct {
+    PushAVStreamTransportStreamMultiplexingEnum multiplexing = 0;
+    boolean includeMotionZones = 1;
+    boolean enableMetadataPrivacySensitive = 2;
+  }
+
+  struct PushAVStreamTransportTriggerOptionsStruct {
+    PushAVStreamTransportTriggerTypeEnum triggerType = 0;
+    optional nullable int16u motionZones[] = 1;
+    optional nullable int8u motionSensitivity = 2;
+    optional nullable PushAVStreamTransportMotionTriggerTimeControlStruct motionTimeControl = 3;
+    optional nullable PushAVStreamTransportTriggerActivationReasonEnum activationReason = 4;
+  }
+
+  struct PushAVStreamTransportCMAFContainerOptionsStruct {
+    int16u chunkDuration = 0;
+    optional nullable octet_string CENCKey = 1;
+  }
+
+  struct PushAVStreamTransportContainerOptionsStruct {
+    PushAVStreamTransportContainerFormatEnum containerType = 0;
+    optional nullable PushAVStreamTransportCMAFContainerOptionsStruct CMAFContainerOptions = 1;
+  }
+
+  struct PushAVStreamTransportOptionsStruct {
+    StreamTypeEnum streamType = 0;
+    optional nullable int16u videoStreamID = 1;
+    optional nullable int16u audioStreamID = 2;
+    int16u TLSEndpointID = 3;
+    long_char_string<256> url = 4;
+    PushAVStreamTransportTriggerOptionsStruct triggerOptions = 5;
+    PushAVStreamTransportContainerFormatEnum containerFormat = 6;
+    PushAVStreamTransportIngestMethodEnum ingestMethod = 7;
+    PushAVStreamTransportContainerOptionsStruct containerOptions = 8;
+    optional nullable PushAVStreamTransportMetadataOptionsStruct metadataOptions = 9;
+    optional nullable int32u expiryTime = 10;
+  }
+
+  struct PushAVStreamConfigurationStruct {
+    int16u connectionID = 0;
+    PushAVStreamTransportStatusEnum streamTransportStatus = 1;
+    PushAVStreamTransportOptionsStruct streamTransportOptions = 2;
+  }
+
+  info event PushTransportBegin = 0 {
+  }
+
+  info event PushTransportEnd = 1 {
+    int16u connectionID = 0;
+    PushAVStreamTransportTriggerOptionsStruct triggerDetails = 1;
+  }
+
+  readonly attribute PushAVStreamTransportSupportedContainerFormatsBitmap supportedContainerFormats = 0;
+  readonly attribute PushAVStreamTransportSupportedIngestMethodsBitmap supportedIngestMethods = 1;
+  readonly attribute int16u currentConnections[] = 2;
+  readonly attribute command_id generatedCommandList[] = 65528;
+  readonly attribute command_id acceptedCommandList[] = 65529;
+  readonly attribute event_id eventList[] = 65530;
+  readonly attribute attrib_id attributeList[] = 65531;
+  readonly attribute bitmap32 featureMap = 65532;
+  readonly attribute int16u clusterRevision = 65533;
+
+  request struct AllocatePushTransportRequest {
+    PushAVStreamTransportOptionsStruct streamTransportOptions = 0;
+  }
+
+  response struct AllocatePushTransportResponse = 1 {
+    int16u connectionID = 0;
+    PushAVStreamTransportOptionsStruct streamTransportOptions = 1;
+    PushAVStreamTransportStatusEnum transportStatus = 2;
+  }
+
+  request struct DeallocatePushTransportRequest {
+    int16u connectionID = 0;
+  }
+
+  request struct ModifyPushTransportRequest {
+    int16u connectionID = 0;
+    PushAVStreamTransportOptionsStruct streamTransportOptions = 1;
+  }
+
+  request struct SetTransportStatusRequest {
+    nullable int16u connectionID = 0;
+    PushAVStreamTransportStatusEnum streamTransportStatus = 1;
+  }
+
+  request struct ManuallyTriggerTransportRequest {
+    int16u connectionID = 0;
+    nullable PushAVStreamTransportTriggerActivationReasonEnum activationReason = 1;
+    optional nullable PushAVStreamTransportMotionTriggerTimeControlStruct timeControl = 2;
+  }
+
+  request struct FindStreamConfigurationRequest {
+    optional nullable int16u connectionID = 0;
+  }
+
+  response struct FindStreamConfigurationResponse = 7 {
+    PushAVStreamConfigurationStruct streamConfigurations[] = 0;
+  }
+
+  /** This command SHALL allocate a transport and return a PushTransportConnectionID. */
+  command access(invoke: administer) AllocatePushTransport(AllocatePushTransportRequest): AllocatePushTransportResponse = 0;
+  /** This command SHALL be generated to request the Node deallocates the specified transport. */
+  command access(invoke: administer) DeallocatePushTransport(DeallocatePushTransportRequest): DefaultSuccess = 2;
+  /** This command is used to request the Node modifies the configuration of the specified push transport. */
+  command access(invoke: administer) ModifyPushTransport(ModifyPushTransportRequest): DefaultSuccess = 3;
+  /** This command SHALL be generated to request the Node modifies the Transport Status of the transport. */
+  command access(invoke: administer) SetTransportStatus(SetTransportStatusRequest): DefaultSuccess = 4;
+  /** This command SHALL be generated to request the Node to manually start the specified push transport. */
+  command access(invoke: administer) ManuallyTriggerTransport(ManuallyTriggerTransportRequest): DefaultSuccess = 5;
+  /** This command SHALL return the Stream Options Configuration for the specified push transport. */
+  command access(invoke: administer) FindStreamConfiguration(FindStreamConfigurationRequest): FindStreamConfigurationResponse = 6;
+}
+
+/** This cluster provides facilities to configure and play Chime sounds, such as those used in a doorbell. */
+provisional cluster Chime = 1366 {
+  revision 1;
+
+  struct ChimeSoundStruct {
+    int8u chimeId = 0;
+    char_string<48> name = 1;
+  }
+
+  readonly attribute ChimeSoundStruct installedChimeSounds[] = 0;
+  attribute int8u activeChimeSoundId = 1;
+  attribute boolean enabled = 2;
+  readonly attribute command_id generatedCommandList[] = 65528;
+  readonly attribute command_id acceptedCommandList[] = 65529;
+  readonly attribute event_id eventList[] = 65530;
+  readonly attribute attrib_id attributeList[] = 65531;
+  readonly attribute bitmap32 featureMap = 65532;
+  readonly attribute int16u clusterRevision = 65533;
+
+  command PlayChimeSound(): DefaultSuccess = 0;
+}
+
 /** Provides extended device information for all the logical devices represented by a Bridged Node. */
 provisional cluster EcosystemInformation = 1872 {
   revision 1;
diff --git a/src/controller/java/generated/java/chip/devicecontroller/ChipClusters.java b/src/controller/java/generated/java/chip/devicecontroller/ChipClusters.java
index ce3d602f1f89b6..58447771bb80ad 100644
--- a/src/controller/java/generated/java/chip/devicecontroller/ChipClusters.java
+++ b/src/controller/java/generated/java/chip/devicecontroller/ChipClusters.java
@@ -60783,6 +60783,4258 @@ public void onSuccess(byte[] tlv) {
     }
   }
 
+  public static class CameraAvStreamManagementCluster extends BaseChipCluster {
+    public static final long CLUSTER_ID = 1361L;
+
+    private static final long MAX_CONCURRENT_VIDEO_ENCODERS_ATTRIBUTE_ID = 0L;
+    private static final long MAX_ENCODED_PIXEL_RATE_ATTRIBUTE_ID = 1L;
+    private static final long VIDEO_SENSOR_PARAMS_ATTRIBUTE_ID = 2L;
+    private static final long NIGHT_VISION_CAPABLE_ATTRIBUTE_ID = 3L;
+    private static final long MIN_VIEW_PORT_WIDTH_ATTRIBUTE_ID = 4L;
+    private static final long MIN_VIEW_PORT_HEIGHT_ATTRIBUTE_ID = 5L;
+    private static final long RATE_DISTORTION_TRADE_OFF_POINTS_ATTRIBUTE_ID = 6L;
+    private static final long MAX_PRE_ROLL_BUFFER_SIZE_ATTRIBUTE_ID = 7L;
+    private static final long MICROPHONE_CAPABILITIES_ATTRIBUTE_ID = 8L;
+    private static final long SPEAKER_CAPABILITIES_ATTRIBUTE_ID = 9L;
+    private static final long TWO_WAY_TALK_SUPPORT_ATTRIBUTE_ID = 10L;
+    private static final long SUPPORTED_SNAPSHOT_PARAMS_ATTRIBUTE_ID = 11L;
+    private static final long HDR_CAPABLE_ATTRIBUTE_ID = 12L;
+    private static final long MAX_NETWORK_BANDWIDTH_ATTRIBUTE_ID = 13L;
+    private static final long CURRENT_FRAME_RATE_ATTRIBUTE_ID = 14L;
+    private static final long HDR_MODE_ATTRIBUTE_ID = 15L;
+    private static final long CURRENT_VIDEO_CODECS_ATTRIBUTE_ID = 16L;
+    private static final long CURRENT_SNAPSHOT_CONFIG_ATTRIBUTE_ID = 17L;
+    private static final long FABRICS_USING_CAMERA_ATTRIBUTE_ID = 18L;
+    private static final long ALLOCATED_VIDEO_STREAMS_ATTRIBUTE_ID = 19L;
+    private static final long ALLOCATED_AUDIO_STREAMS_ATTRIBUTE_ID = 20L;
+    private static final long ALLOCATED_SNAPSHOT_STREAMS_ATTRIBUTE_ID = 21L;
+    private static final long RANKED_VIDEO_STREAM_PRIORITIES_LIST_ATTRIBUTE_ID = 22L;
+    private static final long SOFT_RECORDING_PRIVACY_MODE_SETTING_ATTRIBUTE_ID = 23L;
+    private static final long SOFT_LIVESTREAM_PRIVACY_MODE_SETTING_ATTRIBUTE_ID = 24L;
+    private static final long HARD_PRIVACY_MODE_ATTRIBUTE_ID = 25L;
+    private static final long NIGHT_VISION_ATTRIBUTE_ID = 26L;
+    private static final long NIGHT_VISION_ILLUM_ATTRIBUTE_ID = 27L;
+    private static final long AWB_ATTRIBUTE_ID = 28L;
+    private static final long SHUTTER_SPEED_ATTRIBUTE_ID = 29L;
+    private static final long ISO_ATTRIBUTE_ID = 30L;
+    private static final long VIEWPORT_ATTRIBUTE_ID = 31L;
+    private static final long SPKR_ON_OFF_ATTRIBUTE_ID = 32L;
+    private static final long SPKR_VOLUME_LEVEL_ATTRIBUTE_ID = 33L;
+    private static final long SPKR_MAX_LEVEL_ATTRIBUTE_ID = 34L;
+    private static final long SPKR_MIN_LEVEL_ATTRIBUTE_ID = 35L;
+    private static final long MIC_ON_OFF_ATTRIBUTE_ID = 36L;
+    private static final long MIC_CURRENT_LEVEL_ATTRIBUTE_ID = 37L;
+    private static final long MIC_MAX_LEVEL_ATTRIBUTE_ID = 38L;
+    private static final long MIC_MIN_LEVEL_ATTRIBUTE_ID = 39L;
+    private static final long MIC_AGC_ATTRIBUTE_ID = 40L;
+    private static final long IMAGE_ROTATION_ATTRIBUTE_ID = 41L;
+    private static final long IMAGE_FLIP_HORIZONTAL_ATTRIBUTE_ID = 42L;
+    private static final long IMAGE_FLIP_VERTICAL_ATTRIBUTE_ID = 43L;
+    private static final long LOCAL_VIDEO_RECORDING_ENABLED_ATTRIBUTE_ID = 44L;
+    private static final long LOCAL_SNAPSHOT_RECORDING_ENABLED_ATTRIBUTE_ID = 45L;
+    private static final long STATUS_LIGHT_ATTRIBUTE_ID = 46L;
+    private static final long STATUS_LIGHT_BRIGHTNESS_ATTRIBUTE_ID = 47L;
+    private static final long DEPTH_SENSOR_STATUS_ATTRIBUTE_ID = 48L;
+    private static final long WATERMARK_ENABLED_ATTRIBUTE_ID = 49L;
+    private static final long OSD_ENABLED_ATTRIBUTE_ID = 50L;
+    private static final long GENERATED_COMMAND_LIST_ATTRIBUTE_ID = 65528L;
+    private static final long ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID = 65529L;
+    private static final long EVENT_LIST_ATTRIBUTE_ID = 65530L;
+    private static final long ATTRIBUTE_LIST_ATTRIBUTE_ID = 65531L;
+    private static final long FEATURE_MAP_ATTRIBUTE_ID = 65532L;
+    private static final long CLUSTER_REVISION_ATTRIBUTE_ID = 65533L;
+
+    public CameraAvStreamManagementCluster(long devicePtr, int endpointId) {
+      super(devicePtr, endpointId, CLUSTER_ID);
+    }
+
+    @Override
+    @Deprecated
+    public long initWithDevice(long devicePtr, int endpointId) {
+      return 0L;
+    }
+
+    public void audioStreamAllocate(AudioStreamAllocateResponseCallback callback, Integer streamType, Integer audioCodec, Integer channelCount, Long sampleRate, Long bitRate, Integer bitDepth) {
+      audioStreamAllocate(callback, streamType, audioCodec, channelCount, sampleRate, bitRate, bitDepth, 0);
+    }
+
+    public void audioStreamAllocate(AudioStreamAllocateResponseCallback callback, Integer streamType, Integer audioCodec, Integer channelCount, Long sampleRate, Long bitRate, Integer bitDepth, int timedInvokeTimeoutMs) {
+      final long commandId = 0L;
+
+      ArrayList<StructElement> elements = new ArrayList<>();
+      final long streamTypeFieldID = 0L;
+      BaseTLVType streamTypetlvValue = new UIntType(streamType);
+      elements.add(new StructElement(streamTypeFieldID, streamTypetlvValue));
+
+      final long audioCodecFieldID = 1L;
+      BaseTLVType audioCodectlvValue = new UIntType(audioCodec);
+      elements.add(new StructElement(audioCodecFieldID, audioCodectlvValue));
+
+      final long channelCountFieldID = 2L;
+      BaseTLVType channelCounttlvValue = new UIntType(channelCount);
+      elements.add(new StructElement(channelCountFieldID, channelCounttlvValue));
+
+      final long sampleRateFieldID = 3L;
+      BaseTLVType sampleRatetlvValue = new UIntType(sampleRate);
+      elements.add(new StructElement(sampleRateFieldID, sampleRatetlvValue));
+
+      final long bitRateFieldID = 4L;
+      BaseTLVType bitRatetlvValue = new UIntType(bitRate);
+      elements.add(new StructElement(bitRateFieldID, bitRatetlvValue));
+
+      final long bitDepthFieldID = 5L;
+      BaseTLVType bitDepthtlvValue = new UIntType(bitDepth);
+      elements.add(new StructElement(bitDepthFieldID, bitDepthtlvValue));
+
+      StructType commandArgs = new StructType(elements);
+      invoke(new InvokeCallbackImpl(callback) {
+          @Override
+          public void onResponse(StructType invokeStructValue) {
+          final long audioStreamIDFieldID = 0L;
+          Integer audioStreamID = null;
+          for (StructElement element: invokeStructValue.value()) {
+            if (element.contextTagNum() == audioStreamIDFieldID) {
+              if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+                UIntType castingValue = element.value(UIntType.class);
+                audioStreamID = castingValue.value(Integer.class);
+              }
+            }
+          }
+          callback.onSuccess(audioStreamID);
+        }}, commandId, commandArgs, timedInvokeTimeoutMs);
+    }
+
+    public void audioStreamDeallocate(DefaultClusterCallback callback, Integer audioStreamID) {
+      audioStreamDeallocate(callback, audioStreamID, 0);
+    }
+
+    public void audioStreamDeallocate(DefaultClusterCallback callback, Integer audioStreamID, int timedInvokeTimeoutMs) {
+      final long commandId = 2L;
+
+      ArrayList<StructElement> elements = new ArrayList<>();
+      final long audioStreamIDFieldID = 0L;
+      BaseTLVType audioStreamIDtlvValue = new UIntType(audioStreamID);
+      elements.add(new StructElement(audioStreamIDFieldID, audioStreamIDtlvValue));
+
+      StructType commandArgs = new StructType(elements);
+      invoke(new InvokeCallbackImpl(callback) {
+          @Override
+          public void onResponse(StructType invokeStructValue) {
+          callback.onSuccess();
+        }}, commandId, commandArgs, timedInvokeTimeoutMs);
+    }
+
+    public void videoStreamAllocate(VideoStreamAllocateResponseCallback callback, Integer streamType, Integer videoCodec, Integer minFrameRate, Integer maxFrameRate, Object minResolution, Object maxResolution, Long minBitRate, Long maxBitRate, Integer minFragmentLen, Integer maxFragmentLen) {
+      videoStreamAllocate(callback, streamType, videoCodec, minFrameRate, maxFrameRate, minResolution, maxResolution, minBitRate, maxBitRate, minFragmentLen, maxFragmentLen, 0);
+    }
+
+    public void videoStreamAllocate(VideoStreamAllocateResponseCallback callback, Integer streamType, Integer videoCodec, Integer minFrameRate, Integer maxFrameRate, Object minResolution, Object maxResolution, Long minBitRate, Long maxBitRate, Integer minFragmentLen, Integer maxFragmentLen, int timedInvokeTimeoutMs) {
+      final long commandId = 3L;
+
+      ArrayList<StructElement> elements = new ArrayList<>();
+      final long streamTypeFieldID = 0L;
+      BaseTLVType streamTypetlvValue = new UIntType(streamType);
+      elements.add(new StructElement(streamTypeFieldID, streamTypetlvValue));
+
+      final long videoCodecFieldID = 1L;
+      BaseTLVType videoCodectlvValue = new UIntType(videoCodec);
+      elements.add(new StructElement(videoCodecFieldID, videoCodectlvValue));
+
+      final long minFrameRateFieldID = 2L;
+      BaseTLVType minFrameRatetlvValue = new UIntType(minFrameRate);
+      elements.add(new StructElement(minFrameRateFieldID, minFrameRatetlvValue));
+
+      final long maxFrameRateFieldID = 3L;
+      BaseTLVType maxFrameRatetlvValue = new UIntType(maxFrameRate);
+      elements.add(new StructElement(maxFrameRateFieldID, maxFrameRatetlvValue));
+
+      final long minResolutionFieldID = 4L;
+      BaseTLVType minResolutiontlvValue = new AnyType(minResolution);
+      elements.add(new StructElement(minResolutionFieldID, minResolutiontlvValue));
+
+      final long maxResolutionFieldID = 5L;
+      BaseTLVType maxResolutiontlvValue = new AnyType(maxResolution);
+      elements.add(new StructElement(maxResolutionFieldID, maxResolutiontlvValue));
+
+      final long minBitRateFieldID = 6L;
+      BaseTLVType minBitRatetlvValue = new UIntType(minBitRate);
+      elements.add(new StructElement(minBitRateFieldID, minBitRatetlvValue));
+
+      final long maxBitRateFieldID = 7L;
+      BaseTLVType maxBitRatetlvValue = new UIntType(maxBitRate);
+      elements.add(new StructElement(maxBitRateFieldID, maxBitRatetlvValue));
+
+      final long minFragmentLenFieldID = 8L;
+      BaseTLVType minFragmentLentlvValue = new UIntType(minFragmentLen);
+      elements.add(new StructElement(minFragmentLenFieldID, minFragmentLentlvValue));
+
+      final long maxFragmentLenFieldID = 9L;
+      BaseTLVType maxFragmentLentlvValue = new UIntType(maxFragmentLen);
+      elements.add(new StructElement(maxFragmentLenFieldID, maxFragmentLentlvValue));
+
+      StructType commandArgs = new StructType(elements);
+      invoke(new InvokeCallbackImpl(callback) {
+          @Override
+          public void onResponse(StructType invokeStructValue) {
+          final long videoStreamIDFieldID = 0L;
+          Integer videoStreamID = null;
+          for (StructElement element: invokeStructValue.value()) {
+            if (element.contextTagNum() == videoStreamIDFieldID) {
+              if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+                UIntType castingValue = element.value(UIntType.class);
+                videoStreamID = castingValue.value(Integer.class);
+              }
+            }
+          }
+          callback.onSuccess(videoStreamID);
+        }}, commandId, commandArgs, timedInvokeTimeoutMs);
+    }
+
+    public void videoStreamModify(DefaultClusterCallback callback, Integer videoStreamID, Object resolution) {
+      videoStreamModify(callback, videoStreamID, resolution, 0);
+    }
+
+    public void videoStreamModify(DefaultClusterCallback callback, Integer videoStreamID, Object resolution, int timedInvokeTimeoutMs) {
+      final long commandId = 5L;
+
+      ArrayList<StructElement> elements = new ArrayList<>();
+      final long videoStreamIDFieldID = 0L;
+      BaseTLVType videoStreamIDtlvValue = new UIntType(videoStreamID);
+      elements.add(new StructElement(videoStreamIDFieldID, videoStreamIDtlvValue));
+
+      final long resolutionFieldID = 1L;
+      BaseTLVType resolutiontlvValue = new AnyType(resolution);
+      elements.add(new StructElement(resolutionFieldID, resolutiontlvValue));
+
+      StructType commandArgs = new StructType(elements);
+      invoke(new InvokeCallbackImpl(callback) {
+          @Override
+          public void onResponse(StructType invokeStructValue) {
+          callback.onSuccess();
+        }}, commandId, commandArgs, timedInvokeTimeoutMs);
+    }
+
+    public void videoStreamDeallocate(DefaultClusterCallback callback, Integer videoStreamID) {
+      videoStreamDeallocate(callback, videoStreamID, 0);
+    }
+
+    public void videoStreamDeallocate(DefaultClusterCallback callback, Integer videoStreamID, int timedInvokeTimeoutMs) {
+      final long commandId = 6L;
+
+      ArrayList<StructElement> elements = new ArrayList<>();
+      final long videoStreamIDFieldID = 0L;
+      BaseTLVType videoStreamIDtlvValue = new UIntType(videoStreamID);
+      elements.add(new StructElement(videoStreamIDFieldID, videoStreamIDtlvValue));
+
+      StructType commandArgs = new StructType(elements);
+      invoke(new InvokeCallbackImpl(callback) {
+          @Override
+          public void onResponse(StructType invokeStructValue) {
+          callback.onSuccess();
+        }}, commandId, commandArgs, timedInvokeTimeoutMs);
+    }
+
+    public void snapshotStreamAllocate(SnapshotStreamAllocateResponseCallback callback, Integer imageCodec, Integer frameRate, Long bitRate, Object minResolution, Object maxResolution, Integer quality) {
+      snapshotStreamAllocate(callback, imageCodec, frameRate, bitRate, minResolution, maxResolution, quality, 0);
+    }
+
+    public void snapshotStreamAllocate(SnapshotStreamAllocateResponseCallback callback, Integer imageCodec, Integer frameRate, Long bitRate, Object minResolution, Object maxResolution, Integer quality, int timedInvokeTimeoutMs) {
+      final long commandId = 7L;
+
+      ArrayList<StructElement> elements = new ArrayList<>();
+      final long imageCodecFieldID = 0L;
+      BaseTLVType imageCodectlvValue = new UIntType(imageCodec);
+      elements.add(new StructElement(imageCodecFieldID, imageCodectlvValue));
+
+      final long frameRateFieldID = 1L;
+      BaseTLVType frameRatetlvValue = new UIntType(frameRate);
+      elements.add(new StructElement(frameRateFieldID, frameRatetlvValue));
+
+      final long bitRateFieldID = 2L;
+      BaseTLVType bitRatetlvValue = new UIntType(bitRate);
+      elements.add(new StructElement(bitRateFieldID, bitRatetlvValue));
+
+      final long minResolutionFieldID = 3L;
+      BaseTLVType minResolutiontlvValue = new AnyType(minResolution);
+      elements.add(new StructElement(minResolutionFieldID, minResolutiontlvValue));
+
+      final long maxResolutionFieldID = 4L;
+      BaseTLVType maxResolutiontlvValue = new AnyType(maxResolution);
+      elements.add(new StructElement(maxResolutionFieldID, maxResolutiontlvValue));
+
+      final long qualityFieldID = 5L;
+      BaseTLVType qualitytlvValue = new UIntType(quality);
+      elements.add(new StructElement(qualityFieldID, qualitytlvValue));
+
+      StructType commandArgs = new StructType(elements);
+      invoke(new InvokeCallbackImpl(callback) {
+          @Override
+          public void onResponse(StructType invokeStructValue) {
+          final long snapshotStreamIDFieldID = 0L;
+          Integer snapshotStreamID = null;
+          for (StructElement element: invokeStructValue.value()) {
+            if (element.contextTagNum() == snapshotStreamIDFieldID) {
+              if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+                UIntType castingValue = element.value(UIntType.class);
+                snapshotStreamID = castingValue.value(Integer.class);
+              }
+            }
+          }
+          callback.onSuccess(snapshotStreamID);
+        }}, commandId, commandArgs, timedInvokeTimeoutMs);
+    }
+
+    public void snapshotStreamDeallocate(DefaultClusterCallback callback, Integer snapshotStreamID) {
+      snapshotStreamDeallocate(callback, snapshotStreamID, 0);
+    }
+
+    public void snapshotStreamDeallocate(DefaultClusterCallback callback, Integer snapshotStreamID, int timedInvokeTimeoutMs) {
+      final long commandId = 9L;
+
+      ArrayList<StructElement> elements = new ArrayList<>();
+      final long snapshotStreamIDFieldID = 0L;
+      BaseTLVType snapshotStreamIDtlvValue = new UIntType(snapshotStreamID);
+      elements.add(new StructElement(snapshotStreamIDFieldID, snapshotStreamIDtlvValue));
+
+      StructType commandArgs = new StructType(elements);
+      invoke(new InvokeCallbackImpl(callback) {
+          @Override
+          public void onResponse(StructType invokeStructValue) {
+          callback.onSuccess();
+        }}, commandId, commandArgs, timedInvokeTimeoutMs);
+    }
+
+    public void setStreamPriority(DefaultClusterCallback callback) {
+      setStreamPriority(callback, 0);
+    }
+
+    public void setStreamPriority(DefaultClusterCallback callback, int timedInvokeTimeoutMs) {
+      final long commandId = 10L;
+
+      ArrayList<StructElement> elements = new ArrayList<>();
+      StructType commandArgs = new StructType(elements);
+      invoke(new InvokeCallbackImpl(callback) {
+          @Override
+          public void onResponse(StructType invokeStructValue) {
+          callback.onSuccess();
+        }}, commandId, commandArgs, timedInvokeTimeoutMs);
+    }
+
+    public void captureSnapshot(DefaultClusterCallback callback, Integer snapshotStreamID, Object requestedResolution) {
+      captureSnapshot(callback, snapshotStreamID, requestedResolution, 0);
+    }
+
+    public void captureSnapshot(DefaultClusterCallback callback, Integer snapshotStreamID, Object requestedResolution, int timedInvokeTimeoutMs) {
+      final long commandId = 11L;
+
+      ArrayList<StructElement> elements = new ArrayList<>();
+      final long snapshotStreamIDFieldID = 0L;
+      BaseTLVType snapshotStreamIDtlvValue = new UIntType(snapshotStreamID);
+      elements.add(new StructElement(snapshotStreamIDFieldID, snapshotStreamIDtlvValue));
+
+      final long requestedResolutionFieldID = 1L;
+      BaseTLVType requestedResolutiontlvValue = new AnyType(requestedResolution);
+      elements.add(new StructElement(requestedResolutionFieldID, requestedResolutiontlvValue));
+
+      StructType commandArgs = new StructType(elements);
+      invoke(new InvokeCallbackImpl(callback) {
+          @Override
+          public void onResponse(StructType invokeStructValue) {
+          callback.onSuccess();
+        }}, commandId, commandArgs, timedInvokeTimeoutMs);
+    }
+
+    public void setViewport(DefaultClusterCallback callback, ChipStructs.CameraAvStreamManagementClusterViewportStruct viewport) {
+      setViewport(callback, viewport, 0);
+    }
+
+    public void setViewport(DefaultClusterCallback callback, ChipStructs.CameraAvStreamManagementClusterViewportStruct viewport, int timedInvokeTimeoutMs) {
+      final long commandId = 13L;
+
+      ArrayList<StructElement> elements = new ArrayList<>();
+      final long viewportFieldID = 0L;
+      BaseTLVType viewporttlvValue = viewport.encodeTlv();
+      elements.add(new StructElement(viewportFieldID, viewporttlvValue));
+
+      StructType commandArgs = new StructType(elements);
+      invoke(new InvokeCallbackImpl(callback) {
+          @Override
+          public void onResponse(StructType invokeStructValue) {
+          callback.onSuccess();
+        }}, commandId, commandArgs, timedInvokeTimeoutMs);
+    }
+
+    public void setImageRotation(DefaultClusterCallback callback, Integer angle) {
+      setImageRotation(callback, angle, 0);
+    }
+
+    public void setImageRotation(DefaultClusterCallback callback, Integer angle, int timedInvokeTimeoutMs) {
+      final long commandId = 14L;
+
+      ArrayList<StructElement> elements = new ArrayList<>();
+      final long angleFieldID = 0L;
+      BaseTLVType angletlvValue = new UIntType(angle);
+      elements.add(new StructElement(angleFieldID, angletlvValue));
+
+      StructType commandArgs = new StructType(elements);
+      invoke(new InvokeCallbackImpl(callback) {
+          @Override
+          public void onResponse(StructType invokeStructValue) {
+          callback.onSuccess();
+        }}, commandId, commandArgs, timedInvokeTimeoutMs);
+    }
+
+    public void setImageFlipHorizontal(DefaultClusterCallback callback, Boolean onOff) {
+      setImageFlipHorizontal(callback, onOff, 0);
+    }
+
+    public void setImageFlipHorizontal(DefaultClusterCallback callback, Boolean onOff, int timedInvokeTimeoutMs) {
+      final long commandId = 15L;
+
+      ArrayList<StructElement> elements = new ArrayList<>();
+      final long onOffFieldID = 0L;
+      BaseTLVType onOfftlvValue = new BooleanType(onOff);
+      elements.add(new StructElement(onOffFieldID, onOfftlvValue));
+
+      StructType commandArgs = new StructType(elements);
+      invoke(new InvokeCallbackImpl(callback) {
+          @Override
+          public void onResponse(StructType invokeStructValue) {
+          callback.onSuccess();
+        }}, commandId, commandArgs, timedInvokeTimeoutMs);
+    }
+
+    public void setImageFlipVertical(DefaultClusterCallback callback, Boolean onOff) {
+      setImageFlipVertical(callback, onOff, 0);
+    }
+
+    public void setImageFlipVertical(DefaultClusterCallback callback, Boolean onOff, int timedInvokeTimeoutMs) {
+      final long commandId = 16L;
+
+      ArrayList<StructElement> elements = new ArrayList<>();
+      final long onOffFieldID = 0L;
+      BaseTLVType onOfftlvValue = new BooleanType(onOff);
+      elements.add(new StructElement(onOffFieldID, onOfftlvValue));
+
+      StructType commandArgs = new StructType(elements);
+      invoke(new InvokeCallbackImpl(callback) {
+          @Override
+          public void onResponse(StructType invokeStructValue) {
+          callback.onSuccess();
+        }}, commandId, commandArgs, timedInvokeTimeoutMs);
+    }
+
+    public interface AudioStreamAllocateResponseCallback extends BaseClusterCallback {
+      void onSuccess(Integer audioStreamID);
+    }
+
+    public interface VideoStreamAllocateResponseCallback extends BaseClusterCallback {
+      void onSuccess(Integer videoStreamID);
+    }
+
+    public interface SnapshotStreamAllocateResponseCallback extends BaseClusterCallback {
+      void onSuccess(Integer snapshotStreamID);
+    }
+
+    public interface VideoSensorParamsAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(ChipStructs.CameraAvStreamManagementClusterVideoSensorParamsStruct value);
+    }
+
+    public interface MinViewPortWidthAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(Object value);
+    }
+
+    public interface MinViewPortHeightAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(Object value);
+    }
+
+    public interface RateDistortionTradeOffPointsAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<ChipStructs.CameraAvStreamManagementClusterRateDistortionTradeOffPointsStruct> value);
+    }
+
+    public interface MicrophoneCapabilitiesAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(ChipStructs.CameraAvStreamManagementClusterAudioCapabilitiesStruct value);
+    }
+
+    public interface SpeakerCapabilitiesAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(ChipStructs.CameraAvStreamManagementClusterAudioCapabilitiesStruct value);
+    }
+
+    public interface SupportedSnapshotParamsAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<ChipStructs.CameraAvStreamManagementClusterSnapshotParamsStruct> value);
+    }
+
+    public interface CurrentVideoCodecsAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<Integer> value);
+    }
+
+    public interface CurrentSnapshotConfigAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(ChipStructs.CameraAvStreamManagementClusterSnapshotParamsStruct value);
+    }
+
+    public interface FabricsUsingCameraAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<Integer> value);
+    }
+
+    public interface AllocatedVideoStreamsAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<ChipStructs.CameraAvStreamManagementClusterVideoStreamStruct> value);
+    }
+
+    public interface AllocatedAudioStreamsAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<ChipStructs.CameraAvStreamManagementClusterAudioStreamStruct> value);
+    }
+
+    public interface AllocatedSnapshotStreamsAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<ChipStructs.CameraAvStreamManagementClusterSnapshotStreamStruct> value);
+    }
+
+    public interface RankedVideoStreamPrioritiesListAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<Integer> value);
+    }
+
+    public interface ViewportAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(ChipStructs.CameraAvStreamManagementClusterViewportStruct value);
+    }
+
+    public interface WatermarkEnabledAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<ChipStructs.CameraAvStreamManagementClusterPerStreamStruct> value);
+    }
+
+    public interface OSDEnabledAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<ChipStructs.CameraAvStreamManagementClusterPerStreamStruct> value);
+    }
+
+    public interface GeneratedCommandListAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<Long> value);
+    }
+
+    public interface AcceptedCommandListAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<Long> value);
+    }
+
+    public interface EventListAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<Long> value);
+    }
+
+    public interface AttributeListAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<Long> value);
+    }
+
+    public void readMaxConcurrentVideoEncodersAttribute(
+        IntegerAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MAX_CONCURRENT_VIDEO_ENCODERS_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, MAX_CONCURRENT_VIDEO_ENCODERS_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeMaxConcurrentVideoEncodersAttribute(
+        IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MAX_CONCURRENT_VIDEO_ENCODERS_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, MAX_CONCURRENT_VIDEO_ENCODERS_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readMaxEncodedPixelRateAttribute(
+        LongAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MAX_ENCODED_PIXEL_RATE_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Long value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, MAX_ENCODED_PIXEL_RATE_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeMaxEncodedPixelRateAttribute(
+        LongAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MAX_ENCODED_PIXEL_RATE_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Long value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, MAX_ENCODED_PIXEL_RATE_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readVideoSensorParamsAttribute(
+        VideoSensorParamsAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, VIDEO_SENSOR_PARAMS_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            ChipStructs.CameraAvStreamManagementClusterVideoSensorParamsStruct value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, VIDEO_SENSOR_PARAMS_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeVideoSensorParamsAttribute(
+        VideoSensorParamsAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, VIDEO_SENSOR_PARAMS_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            ChipStructs.CameraAvStreamManagementClusterVideoSensorParamsStruct value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, VIDEO_SENSOR_PARAMS_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readNightVisionCapableAttribute(
+        BooleanAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, NIGHT_VISION_CAPABLE_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, NIGHT_VISION_CAPABLE_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeNightVisionCapableAttribute(
+        BooleanAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, NIGHT_VISION_CAPABLE_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, NIGHT_VISION_CAPABLE_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readMinViewPortWidthAttribute(
+        MinViewPortWidthAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MIN_VIEW_PORT_WIDTH_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Object value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, MIN_VIEW_PORT_WIDTH_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeMinViewPortWidthAttribute(
+        MinViewPortWidthAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MIN_VIEW_PORT_WIDTH_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Object value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, MIN_VIEW_PORT_WIDTH_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readMinViewPortHeightAttribute(
+        MinViewPortHeightAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MIN_VIEW_PORT_HEIGHT_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Object value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, MIN_VIEW_PORT_HEIGHT_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeMinViewPortHeightAttribute(
+        MinViewPortHeightAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MIN_VIEW_PORT_HEIGHT_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Object value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, MIN_VIEW_PORT_HEIGHT_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readRateDistortionTradeOffPointsAttribute(
+        RateDistortionTradeOffPointsAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, RATE_DISTORTION_TRADE_OFF_POINTS_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<ChipStructs.CameraAvStreamManagementClusterRateDistortionTradeOffPointsStruct> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, RATE_DISTORTION_TRADE_OFF_POINTS_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeRateDistortionTradeOffPointsAttribute(
+        RateDistortionTradeOffPointsAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, RATE_DISTORTION_TRADE_OFF_POINTS_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<ChipStructs.CameraAvStreamManagementClusterRateDistortionTradeOffPointsStruct> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, RATE_DISTORTION_TRADE_OFF_POINTS_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readMaxPreRollBufferSizeAttribute(
+        LongAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MAX_PRE_ROLL_BUFFER_SIZE_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Long value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, MAX_PRE_ROLL_BUFFER_SIZE_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeMaxPreRollBufferSizeAttribute(
+        LongAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MAX_PRE_ROLL_BUFFER_SIZE_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Long value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, MAX_PRE_ROLL_BUFFER_SIZE_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readMicrophoneCapabilitiesAttribute(
+        MicrophoneCapabilitiesAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MICROPHONE_CAPABILITIES_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            ChipStructs.CameraAvStreamManagementClusterAudioCapabilitiesStruct value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, MICROPHONE_CAPABILITIES_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeMicrophoneCapabilitiesAttribute(
+        MicrophoneCapabilitiesAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MICROPHONE_CAPABILITIES_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            ChipStructs.CameraAvStreamManagementClusterAudioCapabilitiesStruct value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, MICROPHONE_CAPABILITIES_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readSpeakerCapabilitiesAttribute(
+        SpeakerCapabilitiesAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SPEAKER_CAPABILITIES_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            ChipStructs.CameraAvStreamManagementClusterAudioCapabilitiesStruct value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, SPEAKER_CAPABILITIES_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeSpeakerCapabilitiesAttribute(
+        SpeakerCapabilitiesAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SPEAKER_CAPABILITIES_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            ChipStructs.CameraAvStreamManagementClusterAudioCapabilitiesStruct value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, SPEAKER_CAPABILITIES_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readTwoWayTalkSupportAttribute(
+        IntegerAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, TWO_WAY_TALK_SUPPORT_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, TWO_WAY_TALK_SUPPORT_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeTwoWayTalkSupportAttribute(
+        IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, TWO_WAY_TALK_SUPPORT_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, TWO_WAY_TALK_SUPPORT_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readSupportedSnapshotParamsAttribute(
+        SupportedSnapshotParamsAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SUPPORTED_SNAPSHOT_PARAMS_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<ChipStructs.CameraAvStreamManagementClusterSnapshotParamsStruct> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, SUPPORTED_SNAPSHOT_PARAMS_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeSupportedSnapshotParamsAttribute(
+        SupportedSnapshotParamsAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SUPPORTED_SNAPSHOT_PARAMS_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<ChipStructs.CameraAvStreamManagementClusterSnapshotParamsStruct> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, SUPPORTED_SNAPSHOT_PARAMS_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readHDRCapableAttribute(
+        BooleanAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, HDR_CAPABLE_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, HDR_CAPABLE_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeHDRCapableAttribute(
+        BooleanAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, HDR_CAPABLE_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, HDR_CAPABLE_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readMaxNetworkBandwidthAttribute(
+        LongAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MAX_NETWORK_BANDWIDTH_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Long value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, MAX_NETWORK_BANDWIDTH_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeMaxNetworkBandwidthAttribute(
+        LongAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MAX_NETWORK_BANDWIDTH_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Long value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, MAX_NETWORK_BANDWIDTH_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readCurrentFrameRateAttribute(
+        IntegerAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CURRENT_FRAME_RATE_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, CURRENT_FRAME_RATE_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeCurrentFrameRateAttribute(
+        IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CURRENT_FRAME_RATE_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, CURRENT_FRAME_RATE_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readHDRModeAttribute(
+        BooleanAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, HDR_MODE_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, HDR_MODE_ATTRIBUTE_ID, true);
+    }
+
+    public void writeHDRModeAttribute(DefaultClusterCallback callback, Boolean value) {
+      writeHDRModeAttribute(callback, value, 0);
+    }
+
+    public void writeHDRModeAttribute(DefaultClusterCallback callback, Boolean value, int timedWriteTimeoutMs) {
+      BaseTLVType tlvValue = new BooleanType(value);
+      writeAttribute(new WriteAttributesCallbackImpl(callback), HDR_MODE_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+    }
+
+    public void subscribeHDRModeAttribute(
+        BooleanAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, HDR_MODE_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, HDR_MODE_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readCurrentVideoCodecsAttribute(
+        CurrentVideoCodecsAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CURRENT_VIDEO_CODECS_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Integer> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, CURRENT_VIDEO_CODECS_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeCurrentVideoCodecsAttribute(
+        CurrentVideoCodecsAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CURRENT_VIDEO_CODECS_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Integer> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, CURRENT_VIDEO_CODECS_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readCurrentSnapshotConfigAttribute(
+        CurrentSnapshotConfigAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CURRENT_SNAPSHOT_CONFIG_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            ChipStructs.CameraAvStreamManagementClusterSnapshotParamsStruct value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, CURRENT_SNAPSHOT_CONFIG_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeCurrentSnapshotConfigAttribute(
+        CurrentSnapshotConfigAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CURRENT_SNAPSHOT_CONFIG_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            ChipStructs.CameraAvStreamManagementClusterSnapshotParamsStruct value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, CURRENT_SNAPSHOT_CONFIG_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readFabricsUsingCameraAttribute(
+        FabricsUsingCameraAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, FABRICS_USING_CAMERA_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Integer> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, FABRICS_USING_CAMERA_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeFabricsUsingCameraAttribute(
+        FabricsUsingCameraAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, FABRICS_USING_CAMERA_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Integer> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, FABRICS_USING_CAMERA_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readAllocatedVideoStreamsAttribute(
+        AllocatedVideoStreamsAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ALLOCATED_VIDEO_STREAMS_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<ChipStructs.CameraAvStreamManagementClusterVideoStreamStruct> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, ALLOCATED_VIDEO_STREAMS_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeAllocatedVideoStreamsAttribute(
+        AllocatedVideoStreamsAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ALLOCATED_VIDEO_STREAMS_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<ChipStructs.CameraAvStreamManagementClusterVideoStreamStruct> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, ALLOCATED_VIDEO_STREAMS_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readAllocatedAudioStreamsAttribute(
+        AllocatedAudioStreamsAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ALLOCATED_AUDIO_STREAMS_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<ChipStructs.CameraAvStreamManagementClusterAudioStreamStruct> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, ALLOCATED_AUDIO_STREAMS_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeAllocatedAudioStreamsAttribute(
+        AllocatedAudioStreamsAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ALLOCATED_AUDIO_STREAMS_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<ChipStructs.CameraAvStreamManagementClusterAudioStreamStruct> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, ALLOCATED_AUDIO_STREAMS_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readAllocatedSnapshotStreamsAttribute(
+        AllocatedSnapshotStreamsAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ALLOCATED_SNAPSHOT_STREAMS_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<ChipStructs.CameraAvStreamManagementClusterSnapshotStreamStruct> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, ALLOCATED_SNAPSHOT_STREAMS_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeAllocatedSnapshotStreamsAttribute(
+        AllocatedSnapshotStreamsAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ALLOCATED_SNAPSHOT_STREAMS_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<ChipStructs.CameraAvStreamManagementClusterSnapshotStreamStruct> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, ALLOCATED_SNAPSHOT_STREAMS_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readRankedVideoStreamPrioritiesListAttribute(
+        RankedVideoStreamPrioritiesListAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, RANKED_VIDEO_STREAM_PRIORITIES_LIST_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Integer> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, RANKED_VIDEO_STREAM_PRIORITIES_LIST_ATTRIBUTE_ID, true);
+    }
+
+    public void writeRankedVideoStreamPrioritiesListAttribute(DefaultClusterCallback callback, ArrayList<Integer> value) {
+      writeRankedVideoStreamPrioritiesListAttribute(callback, value, 0);
+    }
+
+    public void writeRankedVideoStreamPrioritiesListAttribute(DefaultClusterCallback callback, ArrayList<Integer> value, int timedWriteTimeoutMs) {
+      BaseTLVType tlvValue = ArrayType.generateArrayType(value, (elementvalue) -> new UIntType(elementvalue));
+      writeAttribute(new WriteAttributesCallbackImpl(callback), RANKED_VIDEO_STREAM_PRIORITIES_LIST_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+    }
+
+    public void subscribeRankedVideoStreamPrioritiesListAttribute(
+        RankedVideoStreamPrioritiesListAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, RANKED_VIDEO_STREAM_PRIORITIES_LIST_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Integer> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, RANKED_VIDEO_STREAM_PRIORITIES_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readSoftRecordingPrivacyModeSettingAttribute(
+        BooleanAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SOFT_RECORDING_PRIVACY_MODE_SETTING_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, SOFT_RECORDING_PRIVACY_MODE_SETTING_ATTRIBUTE_ID, true);
+    }
+
+    public void writeSoftRecordingPrivacyModeSettingAttribute(DefaultClusterCallback callback, Boolean value) {
+      writeSoftRecordingPrivacyModeSettingAttribute(callback, value, 0);
+    }
+
+    public void writeSoftRecordingPrivacyModeSettingAttribute(DefaultClusterCallback callback, Boolean value, int timedWriteTimeoutMs) {
+      BaseTLVType tlvValue = new BooleanType(value);
+      writeAttribute(new WriteAttributesCallbackImpl(callback), SOFT_RECORDING_PRIVACY_MODE_SETTING_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+    }
+
+    public void subscribeSoftRecordingPrivacyModeSettingAttribute(
+        BooleanAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SOFT_RECORDING_PRIVACY_MODE_SETTING_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, SOFT_RECORDING_PRIVACY_MODE_SETTING_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readSoftLivestreamPrivacyModeSettingAttribute(
+        BooleanAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SOFT_LIVESTREAM_PRIVACY_MODE_SETTING_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, SOFT_LIVESTREAM_PRIVACY_MODE_SETTING_ATTRIBUTE_ID, true);
+    }
+
+    public void writeSoftLivestreamPrivacyModeSettingAttribute(DefaultClusterCallback callback, Boolean value) {
+      writeSoftLivestreamPrivacyModeSettingAttribute(callback, value, 0);
+    }
+
+    public void writeSoftLivestreamPrivacyModeSettingAttribute(DefaultClusterCallback callback, Boolean value, int timedWriteTimeoutMs) {
+      BaseTLVType tlvValue = new BooleanType(value);
+      writeAttribute(new WriteAttributesCallbackImpl(callback), SOFT_LIVESTREAM_PRIVACY_MODE_SETTING_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+    }
+
+    public void subscribeSoftLivestreamPrivacyModeSettingAttribute(
+        BooleanAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SOFT_LIVESTREAM_PRIVACY_MODE_SETTING_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, SOFT_LIVESTREAM_PRIVACY_MODE_SETTING_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readHardPrivacyModeAttribute(
+        BooleanAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, HARD_PRIVACY_MODE_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, HARD_PRIVACY_MODE_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeHardPrivacyModeAttribute(
+        BooleanAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, HARD_PRIVACY_MODE_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, HARD_PRIVACY_MODE_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readNightVisionAttribute(
+        IntegerAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, NIGHT_VISION_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, NIGHT_VISION_ATTRIBUTE_ID, true);
+    }
+
+    public void writeNightVisionAttribute(DefaultClusterCallback callback, Integer value) {
+      writeNightVisionAttribute(callback, value, 0);
+    }
+
+    public void writeNightVisionAttribute(DefaultClusterCallback callback, Integer value, int timedWriteTimeoutMs) {
+      BaseTLVType tlvValue = new UIntType(value);
+      writeAttribute(new WriteAttributesCallbackImpl(callback), NIGHT_VISION_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+    }
+
+    public void subscribeNightVisionAttribute(
+        IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, NIGHT_VISION_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, NIGHT_VISION_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readNightVisionIllumAttribute(
+        IntegerAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, NIGHT_VISION_ILLUM_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, NIGHT_VISION_ILLUM_ATTRIBUTE_ID, true);
+    }
+
+    public void writeNightVisionIllumAttribute(DefaultClusterCallback callback, Integer value) {
+      writeNightVisionIllumAttribute(callback, value, 0);
+    }
+
+    public void writeNightVisionIllumAttribute(DefaultClusterCallback callback, Integer value, int timedWriteTimeoutMs) {
+      BaseTLVType tlvValue = new UIntType(value);
+      writeAttribute(new WriteAttributesCallbackImpl(callback), NIGHT_VISION_ILLUM_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+    }
+
+    public void subscribeNightVisionIllumAttribute(
+        IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, NIGHT_VISION_ILLUM_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, NIGHT_VISION_ILLUM_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readAwbAttribute(
+        BooleanAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, AWB_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, AWB_ATTRIBUTE_ID, true);
+    }
+
+    public void writeAwbAttribute(DefaultClusterCallback callback, Boolean value) {
+      writeAwbAttribute(callback, value, 0);
+    }
+
+    public void writeAwbAttribute(DefaultClusterCallback callback, Boolean value, int timedWriteTimeoutMs) {
+      BaseTLVType tlvValue = new BooleanType(value);
+      writeAttribute(new WriteAttributesCallbackImpl(callback), AWB_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+    }
+
+    public void subscribeAwbAttribute(
+        BooleanAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, AWB_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, AWB_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readShutterSpeedAttribute(
+        BooleanAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SHUTTER_SPEED_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, SHUTTER_SPEED_ATTRIBUTE_ID, true);
+    }
+
+    public void writeShutterSpeedAttribute(DefaultClusterCallback callback, Boolean value) {
+      writeShutterSpeedAttribute(callback, value, 0);
+    }
+
+    public void writeShutterSpeedAttribute(DefaultClusterCallback callback, Boolean value, int timedWriteTimeoutMs) {
+      BaseTLVType tlvValue = new BooleanType(value);
+      writeAttribute(new WriteAttributesCallbackImpl(callback), SHUTTER_SPEED_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+    }
+
+    public void subscribeShutterSpeedAttribute(
+        BooleanAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SHUTTER_SPEED_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, SHUTTER_SPEED_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readIsoAttribute(
+        BooleanAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ISO_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, ISO_ATTRIBUTE_ID, true);
+    }
+
+    public void writeIsoAttribute(DefaultClusterCallback callback, Boolean value) {
+      writeIsoAttribute(callback, value, 0);
+    }
+
+    public void writeIsoAttribute(DefaultClusterCallback callback, Boolean value, int timedWriteTimeoutMs) {
+      BaseTLVType tlvValue = new BooleanType(value);
+      writeAttribute(new WriteAttributesCallbackImpl(callback), ISO_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+    }
+
+    public void subscribeIsoAttribute(
+        BooleanAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ISO_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, ISO_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readViewportAttribute(
+        ViewportAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, VIEWPORT_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            ChipStructs.CameraAvStreamManagementClusterViewportStruct value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, VIEWPORT_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeViewportAttribute(
+        ViewportAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, VIEWPORT_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            ChipStructs.CameraAvStreamManagementClusterViewportStruct value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, VIEWPORT_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readSpkrOnOffAttribute(
+        BooleanAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SPKR_ON_OFF_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, SPKR_ON_OFF_ATTRIBUTE_ID, true);
+    }
+
+    public void writeSpkrOnOffAttribute(DefaultClusterCallback callback, Boolean value) {
+      writeSpkrOnOffAttribute(callback, value, 0);
+    }
+
+    public void writeSpkrOnOffAttribute(DefaultClusterCallback callback, Boolean value, int timedWriteTimeoutMs) {
+      BaseTLVType tlvValue = new BooleanType(value);
+      writeAttribute(new WriteAttributesCallbackImpl(callback), SPKR_ON_OFF_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+    }
+
+    public void subscribeSpkrOnOffAttribute(
+        BooleanAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SPKR_ON_OFF_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, SPKR_ON_OFF_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readSpkrVolumeLevelAttribute(
+        IntegerAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SPKR_VOLUME_LEVEL_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, SPKR_VOLUME_LEVEL_ATTRIBUTE_ID, true);
+    }
+
+    public void writeSpkrVolumeLevelAttribute(DefaultClusterCallback callback, Integer value) {
+      writeSpkrVolumeLevelAttribute(callback, value, 0);
+    }
+
+    public void writeSpkrVolumeLevelAttribute(DefaultClusterCallback callback, Integer value, int timedWriteTimeoutMs) {
+      BaseTLVType tlvValue = new UIntType(value);
+      writeAttribute(new WriteAttributesCallbackImpl(callback), SPKR_VOLUME_LEVEL_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+    }
+
+    public void subscribeSpkrVolumeLevelAttribute(
+        IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SPKR_VOLUME_LEVEL_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, SPKR_VOLUME_LEVEL_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readSpkrMaxLevelAttribute(
+        IntegerAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SPKR_MAX_LEVEL_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, SPKR_MAX_LEVEL_ATTRIBUTE_ID, true);
+    }
+
+    public void writeSpkrMaxLevelAttribute(DefaultClusterCallback callback, Integer value) {
+      writeSpkrMaxLevelAttribute(callback, value, 0);
+    }
+
+    public void writeSpkrMaxLevelAttribute(DefaultClusterCallback callback, Integer value, int timedWriteTimeoutMs) {
+      BaseTLVType tlvValue = new UIntType(value);
+      writeAttribute(new WriteAttributesCallbackImpl(callback), SPKR_MAX_LEVEL_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+    }
+
+    public void subscribeSpkrMaxLevelAttribute(
+        IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SPKR_MAX_LEVEL_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, SPKR_MAX_LEVEL_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readSpkrMinLevelAttribute(
+        IntegerAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SPKR_MIN_LEVEL_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, SPKR_MIN_LEVEL_ATTRIBUTE_ID, true);
+    }
+
+    public void writeSpkrMinLevelAttribute(DefaultClusterCallback callback, Integer value) {
+      writeSpkrMinLevelAttribute(callback, value, 0);
+    }
+
+    public void writeSpkrMinLevelAttribute(DefaultClusterCallback callback, Integer value, int timedWriteTimeoutMs) {
+      BaseTLVType tlvValue = new UIntType(value);
+      writeAttribute(new WriteAttributesCallbackImpl(callback), SPKR_MIN_LEVEL_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+    }
+
+    public void subscribeSpkrMinLevelAttribute(
+        IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SPKR_MIN_LEVEL_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, SPKR_MIN_LEVEL_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readMicOnOffAttribute(
+        BooleanAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MIC_ON_OFF_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, MIC_ON_OFF_ATTRIBUTE_ID, true);
+    }
+
+    public void writeMicOnOffAttribute(DefaultClusterCallback callback, Boolean value) {
+      writeMicOnOffAttribute(callback, value, 0);
+    }
+
+    public void writeMicOnOffAttribute(DefaultClusterCallback callback, Boolean value, int timedWriteTimeoutMs) {
+      BaseTLVType tlvValue = new BooleanType(value);
+      writeAttribute(new WriteAttributesCallbackImpl(callback), MIC_ON_OFF_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+    }
+
+    public void subscribeMicOnOffAttribute(
+        BooleanAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MIC_ON_OFF_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, MIC_ON_OFF_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readMicCurrentLevelAttribute(
+        IntegerAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MIC_CURRENT_LEVEL_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, MIC_CURRENT_LEVEL_ATTRIBUTE_ID, true);
+    }
+
+    public void writeMicCurrentLevelAttribute(DefaultClusterCallback callback, Integer value) {
+      writeMicCurrentLevelAttribute(callback, value, 0);
+    }
+
+    public void writeMicCurrentLevelAttribute(DefaultClusterCallback callback, Integer value, int timedWriteTimeoutMs) {
+      BaseTLVType tlvValue = new UIntType(value);
+      writeAttribute(new WriteAttributesCallbackImpl(callback), MIC_CURRENT_LEVEL_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+    }
+
+    public void subscribeMicCurrentLevelAttribute(
+        IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MIC_CURRENT_LEVEL_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, MIC_CURRENT_LEVEL_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readMicMaxLevelAttribute(
+        IntegerAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MIC_MAX_LEVEL_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, MIC_MAX_LEVEL_ATTRIBUTE_ID, true);
+    }
+
+    public void writeMicMaxLevelAttribute(DefaultClusterCallback callback, Integer value) {
+      writeMicMaxLevelAttribute(callback, value, 0);
+    }
+
+    public void writeMicMaxLevelAttribute(DefaultClusterCallback callback, Integer value, int timedWriteTimeoutMs) {
+      BaseTLVType tlvValue = new UIntType(value);
+      writeAttribute(new WriteAttributesCallbackImpl(callback), MIC_MAX_LEVEL_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+    }
+
+    public void subscribeMicMaxLevelAttribute(
+        IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MIC_MAX_LEVEL_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, MIC_MAX_LEVEL_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readMicMinLevelAttribute(
+        IntegerAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MIC_MIN_LEVEL_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, MIC_MIN_LEVEL_ATTRIBUTE_ID, true);
+    }
+
+    public void writeMicMinLevelAttribute(DefaultClusterCallback callback, Integer value) {
+      writeMicMinLevelAttribute(callback, value, 0);
+    }
+
+    public void writeMicMinLevelAttribute(DefaultClusterCallback callback, Integer value, int timedWriteTimeoutMs) {
+      BaseTLVType tlvValue = new UIntType(value);
+      writeAttribute(new WriteAttributesCallbackImpl(callback), MIC_MIN_LEVEL_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+    }
+
+    public void subscribeMicMinLevelAttribute(
+        IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MIC_MIN_LEVEL_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, MIC_MIN_LEVEL_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readMicAGCAttribute(
+        BooleanAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MIC_AGC_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, MIC_AGC_ATTRIBUTE_ID, true);
+    }
+
+    public void writeMicAGCAttribute(DefaultClusterCallback callback, Boolean value) {
+      writeMicAGCAttribute(callback, value, 0);
+    }
+
+    public void writeMicAGCAttribute(DefaultClusterCallback callback, Boolean value, int timedWriteTimeoutMs) {
+      BaseTLVType tlvValue = new BooleanType(value);
+      writeAttribute(new WriteAttributesCallbackImpl(callback), MIC_AGC_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+    }
+
+    public void subscribeMicAGCAttribute(
+        BooleanAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MIC_AGC_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, MIC_AGC_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readImageRotationAttribute(
+        IntegerAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, IMAGE_ROTATION_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, IMAGE_ROTATION_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeImageRotationAttribute(
+        IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, IMAGE_ROTATION_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, IMAGE_ROTATION_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readImageFlipHorizontalAttribute(
+        BooleanAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, IMAGE_FLIP_HORIZONTAL_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, IMAGE_FLIP_HORIZONTAL_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeImageFlipHorizontalAttribute(
+        BooleanAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, IMAGE_FLIP_HORIZONTAL_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, IMAGE_FLIP_HORIZONTAL_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readImageFlipVerticalAttribute(
+        BooleanAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, IMAGE_FLIP_VERTICAL_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, IMAGE_FLIP_VERTICAL_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeImageFlipVerticalAttribute(
+        BooleanAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, IMAGE_FLIP_VERTICAL_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, IMAGE_FLIP_VERTICAL_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readLocalVideoRecordingEnabledAttribute(
+        BooleanAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, LOCAL_VIDEO_RECORDING_ENABLED_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, LOCAL_VIDEO_RECORDING_ENABLED_ATTRIBUTE_ID, true);
+    }
+
+    public void writeLocalVideoRecordingEnabledAttribute(DefaultClusterCallback callback, Boolean value) {
+      writeLocalVideoRecordingEnabledAttribute(callback, value, 0);
+    }
+
+    public void writeLocalVideoRecordingEnabledAttribute(DefaultClusterCallback callback, Boolean value, int timedWriteTimeoutMs) {
+      BaseTLVType tlvValue = new BooleanType(value);
+      writeAttribute(new WriteAttributesCallbackImpl(callback), LOCAL_VIDEO_RECORDING_ENABLED_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+    }
+
+    public void subscribeLocalVideoRecordingEnabledAttribute(
+        BooleanAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, LOCAL_VIDEO_RECORDING_ENABLED_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, LOCAL_VIDEO_RECORDING_ENABLED_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readLocalSnapshotRecordingEnabledAttribute(
+        BooleanAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, LOCAL_SNAPSHOT_RECORDING_ENABLED_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, LOCAL_SNAPSHOT_RECORDING_ENABLED_ATTRIBUTE_ID, true);
+    }
+
+    public void writeLocalSnapshotRecordingEnabledAttribute(DefaultClusterCallback callback, Boolean value) {
+      writeLocalSnapshotRecordingEnabledAttribute(callback, value, 0);
+    }
+
+    public void writeLocalSnapshotRecordingEnabledAttribute(DefaultClusterCallback callback, Boolean value, int timedWriteTimeoutMs) {
+      BaseTLVType tlvValue = new BooleanType(value);
+      writeAttribute(new WriteAttributesCallbackImpl(callback), LOCAL_SNAPSHOT_RECORDING_ENABLED_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+    }
+
+    public void subscribeLocalSnapshotRecordingEnabledAttribute(
+        BooleanAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, LOCAL_SNAPSHOT_RECORDING_ENABLED_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, LOCAL_SNAPSHOT_RECORDING_ENABLED_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readStatusLightAttribute(
+        BooleanAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, STATUS_LIGHT_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, STATUS_LIGHT_ATTRIBUTE_ID, true);
+    }
+
+    public void writeStatusLightAttribute(DefaultClusterCallback callback, Boolean value) {
+      writeStatusLightAttribute(callback, value, 0);
+    }
+
+    public void writeStatusLightAttribute(DefaultClusterCallback callback, Boolean value, int timedWriteTimeoutMs) {
+      BaseTLVType tlvValue = new BooleanType(value);
+      writeAttribute(new WriteAttributesCallbackImpl(callback), STATUS_LIGHT_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+    }
+
+    public void subscribeStatusLightAttribute(
+        BooleanAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, STATUS_LIGHT_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, STATUS_LIGHT_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readStatusLightBrightnessAttribute(
+        IntegerAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, STATUS_LIGHT_BRIGHTNESS_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, STATUS_LIGHT_BRIGHTNESS_ATTRIBUTE_ID, true);
+    }
+
+    public void writeStatusLightBrightnessAttribute(DefaultClusterCallback callback, Integer value) {
+      writeStatusLightBrightnessAttribute(callback, value, 0);
+    }
+
+    public void writeStatusLightBrightnessAttribute(DefaultClusterCallback callback, Integer value, int timedWriteTimeoutMs) {
+      BaseTLVType tlvValue = new UIntType(value);
+      writeAttribute(new WriteAttributesCallbackImpl(callback), STATUS_LIGHT_BRIGHTNESS_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+    }
+
+    public void subscribeStatusLightBrightnessAttribute(
+        IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, STATUS_LIGHT_BRIGHTNESS_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, STATUS_LIGHT_BRIGHTNESS_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readDepthSensorStatusAttribute(
+        IntegerAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, DEPTH_SENSOR_STATUS_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, DEPTH_SENSOR_STATUS_ATTRIBUTE_ID, true);
+    }
+
+    public void writeDepthSensorStatusAttribute(DefaultClusterCallback callback, Integer value) {
+      writeDepthSensorStatusAttribute(callback, value, 0);
+    }
+
+    public void writeDepthSensorStatusAttribute(DefaultClusterCallback callback, Integer value, int timedWriteTimeoutMs) {
+      BaseTLVType tlvValue = new UIntType(value);
+      writeAttribute(new WriteAttributesCallbackImpl(callback), DEPTH_SENSOR_STATUS_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+    }
+
+    public void subscribeDepthSensorStatusAttribute(
+        IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, DEPTH_SENSOR_STATUS_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, DEPTH_SENSOR_STATUS_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readWatermarkEnabledAttribute(
+        WatermarkEnabledAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, WATERMARK_ENABLED_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<ChipStructs.CameraAvStreamManagementClusterPerStreamStruct> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, WATERMARK_ENABLED_ATTRIBUTE_ID, true);
+    }
+
+    public void writeWatermarkEnabledAttribute(DefaultClusterCallback callback, ArrayList<ChipStructs.CameraAvStreamManagementClusterPerStreamStruct> value) {
+      writeWatermarkEnabledAttribute(callback, value, 0);
+    }
+
+    public void writeWatermarkEnabledAttribute(DefaultClusterCallback callback, ArrayList<ChipStructs.CameraAvStreamManagementClusterPerStreamStruct> value, int timedWriteTimeoutMs) {
+      BaseTLVType tlvValue = ArrayType.generateArrayType(value, (elementvalue) -> elementvalue.encodeTlv());
+      writeAttribute(new WriteAttributesCallbackImpl(callback), WATERMARK_ENABLED_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+    }
+
+    public void subscribeWatermarkEnabledAttribute(
+        WatermarkEnabledAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, WATERMARK_ENABLED_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<ChipStructs.CameraAvStreamManagementClusterPerStreamStruct> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, WATERMARK_ENABLED_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readOSDEnabledAttribute(
+        OSDEnabledAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, OSD_ENABLED_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<ChipStructs.CameraAvStreamManagementClusterPerStreamStruct> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, OSD_ENABLED_ATTRIBUTE_ID, true);
+    }
+
+    public void writeOSDEnabledAttribute(DefaultClusterCallback callback, ArrayList<ChipStructs.CameraAvStreamManagementClusterPerStreamStruct> value) {
+      writeOSDEnabledAttribute(callback, value, 0);
+    }
+
+    public void writeOSDEnabledAttribute(DefaultClusterCallback callback, ArrayList<ChipStructs.CameraAvStreamManagementClusterPerStreamStruct> value, int timedWriteTimeoutMs) {
+      BaseTLVType tlvValue = ArrayType.generateArrayType(value, (elementvalue) -> elementvalue.encodeTlv());
+      writeAttribute(new WriteAttributesCallbackImpl(callback), OSD_ENABLED_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+    }
+
+    public void subscribeOSDEnabledAttribute(
+        OSDEnabledAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, OSD_ENABLED_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<ChipStructs.CameraAvStreamManagementClusterPerStreamStruct> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, OSD_ENABLED_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readGeneratedCommandListAttribute(
+        GeneratedCommandListAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, GENERATED_COMMAND_LIST_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, GENERATED_COMMAND_LIST_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeGeneratedCommandListAttribute(
+        GeneratedCommandListAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, GENERATED_COMMAND_LIST_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, GENERATED_COMMAND_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readAcceptedCommandListAttribute(
+        AcceptedCommandListAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeAcceptedCommandListAttribute(
+        AcceptedCommandListAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readEventListAttribute(
+        EventListAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, EVENT_LIST_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, EVENT_LIST_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeEventListAttribute(
+        EventListAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, EVENT_LIST_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, EVENT_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readAttributeListAttribute(
+        AttributeListAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ATTRIBUTE_LIST_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, ATTRIBUTE_LIST_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeAttributeListAttribute(
+        AttributeListAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ATTRIBUTE_LIST_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, ATTRIBUTE_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readFeatureMapAttribute(
+        LongAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, FEATURE_MAP_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Long value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, FEATURE_MAP_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeFeatureMapAttribute(
+        LongAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, FEATURE_MAP_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Long value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, FEATURE_MAP_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readClusterRevisionAttribute(
+        IntegerAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CLUSTER_REVISION_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, CLUSTER_REVISION_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeClusterRevisionAttribute(
+        IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CLUSTER_REVISION_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, CLUSTER_REVISION_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+  }
+
+  public static class CameraAvSettingsUserLevelManagementCluster extends BaseChipCluster {
+    public static final long CLUSTER_ID = 1362L;
+
+    private static final long MPTZ_ATTRIBUTE_ID = 0L;
+    private static final long MAX_PRESETS_ATTRIBUTE_ID = 1L;
+    private static final long PRESET_MPTZ_TABLE_ATTRIBUTE_ID = 2L;
+    private static final long MPTZ_RELATIVE_MOVE_ATTRIBUTE_ID = 3L;
+    private static final long DPTZ_RELATIVE_MOVE_ATTRIBUTE_ID = 4L;
+    private static final long GENERATED_COMMAND_LIST_ATTRIBUTE_ID = 65528L;
+    private static final long ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID = 65529L;
+    private static final long EVENT_LIST_ATTRIBUTE_ID = 65530L;
+    private static final long ATTRIBUTE_LIST_ATTRIBUTE_ID = 65531L;
+    private static final long FEATURE_MAP_ATTRIBUTE_ID = 65532L;
+    private static final long CLUSTER_REVISION_ATTRIBUTE_ID = 65533L;
+
+    public CameraAvSettingsUserLevelManagementCluster(long devicePtr, int endpointId) {
+      super(devicePtr, endpointId, CLUSTER_ID);
+    }
+
+    @Override
+    @Deprecated
+    public long initWithDevice(long devicePtr, int endpointId) {
+      return 0L;
+    }
+
+    public void mptzSet(DefaultClusterCallback callback, Optional<ChipStructs.CameraAvSettingsUserLevelManagementClusterMPTZStruct> newPTZ, Optional<Integer> presetID) {
+      mptzSet(callback, newPTZ, presetID, 0);
+    }
+
+    public void mptzSet(DefaultClusterCallback callback, Optional<ChipStructs.CameraAvSettingsUserLevelManagementClusterMPTZStruct> newPTZ, Optional<Integer> presetID, int timedInvokeTimeoutMs) {
+      final long commandId = 0L;
+
+      ArrayList<StructElement> elements = new ArrayList<>();
+      final long newPTZFieldID = 0L;
+      BaseTLVType newPTZtlvValue = newPTZ.<BaseTLVType>map((nonOptionalnewPTZ) -> nonOptionalnewPTZ.encodeTlv()).orElse(new EmptyType());
+      elements.add(new StructElement(newPTZFieldID, newPTZtlvValue));
+
+      final long presetIDFieldID = 1L;
+      BaseTLVType presetIDtlvValue = presetID.<BaseTLVType>map((nonOptionalpresetID) -> new UIntType(nonOptionalpresetID)).orElse(new EmptyType());
+      elements.add(new StructElement(presetIDFieldID, presetIDtlvValue));
+
+      StructType commandArgs = new StructType(elements);
+      invoke(new InvokeCallbackImpl(callback) {
+          @Override
+          public void onResponse(StructType invokeStructValue) {
+          callback.onSuccess();
+        }}, commandId, commandArgs, timedInvokeTimeoutMs);
+    }
+
+    public void mptzRelativeMove(DefaultClusterCallback callback, Integer pan, Integer tilt, Integer zoom) {
+      mptzRelativeMove(callback, pan, tilt, zoom, 0);
+    }
+
+    public void mptzRelativeMove(DefaultClusterCallback callback, Integer pan, Integer tilt, Integer zoom, int timedInvokeTimeoutMs) {
+      final long commandId = 1L;
+
+      ArrayList<StructElement> elements = new ArrayList<>();
+      final long panFieldID = 0L;
+      BaseTLVType pantlvValue = new IntType(pan);
+      elements.add(new StructElement(panFieldID, pantlvValue));
+
+      final long tiltFieldID = 1L;
+      BaseTLVType tilttlvValue = new IntType(tilt);
+      elements.add(new StructElement(tiltFieldID, tilttlvValue));
+
+      final long zoomFieldID = 2L;
+      BaseTLVType zoomtlvValue = new IntType(zoom);
+      elements.add(new StructElement(zoomFieldID, zoomtlvValue));
+
+      StructType commandArgs = new StructType(elements);
+      invoke(new InvokeCallbackImpl(callback) {
+          @Override
+          public void onResponse(StructType invokeStructValue) {
+          callback.onSuccess();
+        }}, commandId, commandArgs, timedInvokeTimeoutMs);
+    }
+
+    public void setAsPreset(DefaultClusterCallback callback) {
+      setAsPreset(callback, 0);
+    }
+
+    public void setAsPreset(DefaultClusterCallback callback, int timedInvokeTimeoutMs) {
+      final long commandId = 2L;
+
+      ArrayList<StructElement> elements = new ArrayList<>();
+      StructType commandArgs = new StructType(elements);
+      invoke(new InvokeCallbackImpl(callback) {
+          @Override
+          public void onResponse(StructType invokeStructValue) {
+          callback.onSuccess();
+        }}, commandId, commandArgs, timedInvokeTimeoutMs);
+    }
+
+    public void dptzSetViewport(DefaultClusterCallback callback, Integer videoStreamID, ChipStructs.CameraAvSettingsUserLevelManagementClusterViewportStruct viewport) {
+      dptzSetViewport(callback, videoStreamID, viewport, 0);
+    }
+
+    public void dptzSetViewport(DefaultClusterCallback callback, Integer videoStreamID, ChipStructs.CameraAvSettingsUserLevelManagementClusterViewportStruct viewport, int timedInvokeTimeoutMs) {
+      final long commandId = 3L;
+
+      ArrayList<StructElement> elements = new ArrayList<>();
+      final long videoStreamIDFieldID = 0L;
+      BaseTLVType videoStreamIDtlvValue = new UIntType(videoStreamID);
+      elements.add(new StructElement(videoStreamIDFieldID, videoStreamIDtlvValue));
+
+      final long viewportFieldID = 1L;
+      BaseTLVType viewporttlvValue = viewport.encodeTlv();
+      elements.add(new StructElement(viewportFieldID, viewporttlvValue));
+
+      StructType commandArgs = new StructType(elements);
+      invoke(new InvokeCallbackImpl(callback) {
+          @Override
+          public void onResponse(StructType invokeStructValue) {
+          callback.onSuccess();
+        }}, commandId, commandArgs, timedInvokeTimeoutMs);
+    }
+
+    public void dptzRelativeMove(DefaultClusterCallback callback, Integer videoStreamID, Integer pan, Integer tilt, Integer zoom) {
+      dptzRelativeMove(callback, videoStreamID, pan, tilt, zoom, 0);
+    }
+
+    public void dptzRelativeMove(DefaultClusterCallback callback, Integer videoStreamID, Integer pan, Integer tilt, Integer zoom, int timedInvokeTimeoutMs) {
+      final long commandId = 4L;
+
+      ArrayList<StructElement> elements = new ArrayList<>();
+      final long videoStreamIDFieldID = 0L;
+      BaseTLVType videoStreamIDtlvValue = new UIntType(videoStreamID);
+      elements.add(new StructElement(videoStreamIDFieldID, videoStreamIDtlvValue));
+
+      final long panFieldID = 1L;
+      BaseTLVType pantlvValue = new IntType(pan);
+      elements.add(new StructElement(panFieldID, pantlvValue));
+
+      final long tiltFieldID = 2L;
+      BaseTLVType tilttlvValue = new IntType(tilt);
+      elements.add(new StructElement(tiltFieldID, tilttlvValue));
+
+      final long zoomFieldID = 3L;
+      BaseTLVType zoomtlvValue = new IntType(zoom);
+      elements.add(new StructElement(zoomFieldID, zoomtlvValue));
+
+      StructType commandArgs = new StructType(elements);
+      invoke(new InvokeCallbackImpl(callback) {
+          @Override
+          public void onResponse(StructType invokeStructValue) {
+          callback.onSuccess();
+        }}, commandId, commandArgs, timedInvokeTimeoutMs);
+    }
+
+    public interface MptzAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(ChipStructs.CameraAvSettingsUserLevelManagementClusterMPTZStruct value);
+    }
+
+    public interface PresetMptzTableAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<ChipStructs.CameraAvSettingsUserLevelManagementClusterMPTZStruct> value);
+    }
+
+    public interface DptzRelativeMoveAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<ChipStructs.CameraAvSettingsUserLevelManagementClusterPerStreamStruct> value);
+    }
+
+    public interface GeneratedCommandListAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<Long> value);
+    }
+
+    public interface AcceptedCommandListAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<Long> value);
+    }
+
+    public interface EventListAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<Long> value);
+    }
+
+    public interface AttributeListAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<Long> value);
+    }
+
+    public void readMptzAttribute(
+        MptzAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MPTZ_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            ChipStructs.CameraAvSettingsUserLevelManagementClusterMPTZStruct value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, MPTZ_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeMptzAttribute(
+        MptzAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MPTZ_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            ChipStructs.CameraAvSettingsUserLevelManagementClusterMPTZStruct value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, MPTZ_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readMaxPresetsAttribute(
+        IntegerAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MAX_PRESETS_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, MAX_PRESETS_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeMaxPresetsAttribute(
+        IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MAX_PRESETS_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, MAX_PRESETS_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readPresetMptzTableAttribute(
+        PresetMptzTableAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, PRESET_MPTZ_TABLE_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<ChipStructs.CameraAvSettingsUserLevelManagementClusterMPTZStruct> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, PRESET_MPTZ_TABLE_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribePresetMptzTableAttribute(
+        PresetMptzTableAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, PRESET_MPTZ_TABLE_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<ChipStructs.CameraAvSettingsUserLevelManagementClusterMPTZStruct> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, PRESET_MPTZ_TABLE_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readMptzRelativeMoveAttribute(
+        BooleanAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MPTZ_RELATIVE_MOVE_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, MPTZ_RELATIVE_MOVE_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeMptzRelativeMoveAttribute(
+        BooleanAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, MPTZ_RELATIVE_MOVE_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, MPTZ_RELATIVE_MOVE_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readDptzRelativeMoveAttribute(
+        DptzRelativeMoveAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, DPTZ_RELATIVE_MOVE_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<ChipStructs.CameraAvSettingsUserLevelManagementClusterPerStreamStruct> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, DPTZ_RELATIVE_MOVE_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeDptzRelativeMoveAttribute(
+        DptzRelativeMoveAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, DPTZ_RELATIVE_MOVE_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<ChipStructs.CameraAvSettingsUserLevelManagementClusterPerStreamStruct> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, DPTZ_RELATIVE_MOVE_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readGeneratedCommandListAttribute(
+        GeneratedCommandListAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, GENERATED_COMMAND_LIST_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, GENERATED_COMMAND_LIST_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeGeneratedCommandListAttribute(
+        GeneratedCommandListAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, GENERATED_COMMAND_LIST_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, GENERATED_COMMAND_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readAcceptedCommandListAttribute(
+        AcceptedCommandListAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeAcceptedCommandListAttribute(
+        AcceptedCommandListAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readEventListAttribute(
+        EventListAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, EVENT_LIST_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, EVENT_LIST_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeEventListAttribute(
+        EventListAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, EVENT_LIST_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, EVENT_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readAttributeListAttribute(
+        AttributeListAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ATTRIBUTE_LIST_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, ATTRIBUTE_LIST_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeAttributeListAttribute(
+        AttributeListAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ATTRIBUTE_LIST_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, ATTRIBUTE_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readFeatureMapAttribute(
+        LongAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, FEATURE_MAP_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Long value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, FEATURE_MAP_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeFeatureMapAttribute(
+        LongAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, FEATURE_MAP_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Long value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, FEATURE_MAP_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readClusterRevisionAttribute(
+        IntegerAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CLUSTER_REVISION_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, CLUSTER_REVISION_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeClusterRevisionAttribute(
+        IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CLUSTER_REVISION_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, CLUSTER_REVISION_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+  }
+
+  public static class WebRTCTransportProviderCluster extends BaseChipCluster {
+    public static final long CLUSTER_ID = 1363L;
+
+    private static final long CURRENT_SESSIONS_ATTRIBUTE_ID = 0L;
+    private static final long GENERATED_COMMAND_LIST_ATTRIBUTE_ID = 65528L;
+    private static final long ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID = 65529L;
+    private static final long EVENT_LIST_ATTRIBUTE_ID = 65530L;
+    private static final long ATTRIBUTE_LIST_ATTRIBUTE_ID = 65531L;
+    private static final long FEATURE_MAP_ATTRIBUTE_ID = 65532L;
+    private static final long CLUSTER_REVISION_ATTRIBUTE_ID = 65533L;
+
+    public WebRTCTransportProviderCluster(long devicePtr, int endpointId) {
+      super(devicePtr, endpointId, CLUSTER_ID);
+    }
+
+    @Override
+    @Deprecated
+    public long initWithDevice(long devicePtr, int endpointId) {
+      return 0L;
+    }
+
+    public void webRTCSolicitOffer(WebRTCSolicitOfferResponseCallback callback, Integer streamType, @Nullable Optional<Integer> videoStreamID, @Nullable Optional<Integer> audioStreamID, Optional<ArrayList<ChipStructs.WebRTCTransportProviderClusterICEServerStruct>> ICEServers, Optional<String> ICETransportPolicy, Optional<Integer> metadataOptions) {
+      webRTCSolicitOffer(callback, streamType, videoStreamID, audioStreamID, ICEServers, ICETransportPolicy, metadataOptions, 0);
+    }
+
+    public void webRTCSolicitOffer(WebRTCSolicitOfferResponseCallback callback, Integer streamType, @Nullable Optional<Integer> videoStreamID, @Nullable Optional<Integer> audioStreamID, Optional<ArrayList<ChipStructs.WebRTCTransportProviderClusterICEServerStruct>> ICEServers, Optional<String> ICETransportPolicy, Optional<Integer> metadataOptions, int timedInvokeTimeoutMs) {
+      final long commandId = 1L;
+
+      ArrayList<StructElement> elements = new ArrayList<>();
+      final long streamTypeFieldID = 0L;
+      BaseTLVType streamTypetlvValue = new UIntType(streamType);
+      elements.add(new StructElement(streamTypeFieldID, streamTypetlvValue));
+
+      final long videoStreamIDFieldID = 1L;
+      BaseTLVType videoStreamIDtlvValue = videoStreamID != null ? videoStreamID.<BaseTLVType>map((nonOptionalvideoStreamID) -> new UIntType(nonOptionalvideoStreamID)).orElse(new EmptyType()) : new NullType();
+      elements.add(new StructElement(videoStreamIDFieldID, videoStreamIDtlvValue));
+
+      final long audioStreamIDFieldID = 2L;
+      BaseTLVType audioStreamIDtlvValue = audioStreamID != null ? audioStreamID.<BaseTLVType>map((nonOptionalaudioStreamID) -> new UIntType(nonOptionalaudioStreamID)).orElse(new EmptyType()) : new NullType();
+      elements.add(new StructElement(audioStreamIDFieldID, audioStreamIDtlvValue));
+
+      final long ICEServersFieldID = 3L;
+      BaseTLVType ICEServerstlvValue = ICEServers.<BaseTLVType>map((nonOptionalICEServers) -> ArrayType.generateArrayType(nonOptionalICEServers, (elementnonOptionalICEServers) -> elementnonOptionalICEServers.encodeTlv())).orElse(new EmptyType());
+      elements.add(new StructElement(ICEServersFieldID, ICEServerstlvValue));
+
+      final long ICETransportPolicyFieldID = 4L;
+      BaseTLVType ICETransportPolicytlvValue = ICETransportPolicy.<BaseTLVType>map((nonOptionalICETransportPolicy) -> new StringType(nonOptionalICETransportPolicy)).orElse(new EmptyType());
+      elements.add(new StructElement(ICETransportPolicyFieldID, ICETransportPolicytlvValue));
+
+      final long metadataOptionsFieldID = 5L;
+      BaseTLVType metadataOptionstlvValue = metadataOptions.<BaseTLVType>map((nonOptionalmetadataOptions) -> new UIntType(nonOptionalmetadataOptions)).orElse(new EmptyType());
+      elements.add(new StructElement(metadataOptionsFieldID, metadataOptionstlvValue));
+
+      StructType commandArgs = new StructType(elements);
+      invoke(new InvokeCallbackImpl(callback) {
+          @Override
+          public void onResponse(StructType invokeStructValue) {
+          final long webRTCSessionIDFieldID = 0L;
+          Integer webRTCSessionID = null;
+          final long deferredOfferFieldID = 1L;
+          Boolean deferredOffer = null;
+          final long videoStreamIDFieldID = 2L;
+          @Nullable Optional<Integer> videoStreamID = null;
+          final long audioStreamIDFieldID = 3L;
+          @Nullable Optional<Integer> audioStreamID = null;
+          for (StructElement element: invokeStructValue.value()) {
+            if (element.contextTagNum() == webRTCSessionIDFieldID) {
+              if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+                UIntType castingValue = element.value(UIntType.class);
+                webRTCSessionID = castingValue.value(Integer.class);
+              }
+            } else if (element.contextTagNum() == deferredOfferFieldID) {
+              if (element.value(BaseTLVType.class).type() == TLVType.Boolean) {
+                BooleanType castingValue = element.value(BooleanType.class);
+                deferredOffer = castingValue.value(Boolean.class);
+              }
+            } else if (element.contextTagNum() == videoStreamIDFieldID) {
+              if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+                UIntType castingValue = element.value(UIntType.class);
+                videoStreamID = Optional.of(castingValue.value(Integer.class));
+              }
+            } else if (element.contextTagNum() == audioStreamIDFieldID) {
+              if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+                UIntType castingValue = element.value(UIntType.class);
+                audioStreamID = Optional.of(castingValue.value(Integer.class));
+              }
+            }
+          }
+          callback.onSuccess(webRTCSessionID, deferredOffer, videoStreamID, audioStreamID);
+        }}, commandId, commandArgs, timedInvokeTimeoutMs);
+    }
+
+    public void webRTCProvideOffer(WebRTCProvideOfferResponseCallback callback, @Nullable Integer webRTCSessionID, String sdp, Integer streamType, @Nullable Optional<Integer> videoStreamID, @Nullable Optional<Integer> audioStreamID, Optional<ArrayList<ChipStructs.WebRTCTransportProviderClusterICEServerStruct>> ICEServers, Optional<String> ICETransportPolicy, Optional<Integer> metadataOptions) {
+      webRTCProvideOffer(callback, webRTCSessionID, sdp, streamType, videoStreamID, audioStreamID, ICEServers, ICETransportPolicy, metadataOptions, 0);
+    }
+
+    public void webRTCProvideOffer(WebRTCProvideOfferResponseCallback callback, @Nullable Integer webRTCSessionID, String sdp, Integer streamType, @Nullable Optional<Integer> videoStreamID, @Nullable Optional<Integer> audioStreamID, Optional<ArrayList<ChipStructs.WebRTCTransportProviderClusterICEServerStruct>> ICEServers, Optional<String> ICETransportPolicy, Optional<Integer> metadataOptions, int timedInvokeTimeoutMs) {
+      final long commandId = 3L;
+
+      ArrayList<StructElement> elements = new ArrayList<>();
+      final long webRTCSessionIDFieldID = 0L;
+      BaseTLVType webRTCSessionIDtlvValue = webRTCSessionID != null ? new UIntType(webRTCSessionID) : new NullType();
+      elements.add(new StructElement(webRTCSessionIDFieldID, webRTCSessionIDtlvValue));
+
+      final long sdpFieldID = 1L;
+      BaseTLVType sdptlvValue = new StringType(sdp);
+      elements.add(new StructElement(sdpFieldID, sdptlvValue));
+
+      final long streamTypeFieldID = 2L;
+      BaseTLVType streamTypetlvValue = new UIntType(streamType);
+      elements.add(new StructElement(streamTypeFieldID, streamTypetlvValue));
+
+      final long videoStreamIDFieldID = 3L;
+      BaseTLVType videoStreamIDtlvValue = videoStreamID != null ? videoStreamID.<BaseTLVType>map((nonOptionalvideoStreamID) -> new UIntType(nonOptionalvideoStreamID)).orElse(new EmptyType()) : new NullType();
+      elements.add(new StructElement(videoStreamIDFieldID, videoStreamIDtlvValue));
+
+      final long audioStreamIDFieldID = 4L;
+      BaseTLVType audioStreamIDtlvValue = audioStreamID != null ? audioStreamID.<BaseTLVType>map((nonOptionalaudioStreamID) -> new UIntType(nonOptionalaudioStreamID)).orElse(new EmptyType()) : new NullType();
+      elements.add(new StructElement(audioStreamIDFieldID, audioStreamIDtlvValue));
+
+      final long ICEServersFieldID = 5L;
+      BaseTLVType ICEServerstlvValue = ICEServers.<BaseTLVType>map((nonOptionalICEServers) -> ArrayType.generateArrayType(nonOptionalICEServers, (elementnonOptionalICEServers) -> elementnonOptionalICEServers.encodeTlv())).orElse(new EmptyType());
+      elements.add(new StructElement(ICEServersFieldID, ICEServerstlvValue));
+
+      final long ICETransportPolicyFieldID = 6L;
+      BaseTLVType ICETransportPolicytlvValue = ICETransportPolicy.<BaseTLVType>map((nonOptionalICETransportPolicy) -> new StringType(nonOptionalICETransportPolicy)).orElse(new EmptyType());
+      elements.add(new StructElement(ICETransportPolicyFieldID, ICETransportPolicytlvValue));
+
+      final long metadataOptionsFieldID = 7L;
+      BaseTLVType metadataOptionstlvValue = metadataOptions.<BaseTLVType>map((nonOptionalmetadataOptions) -> new UIntType(nonOptionalmetadataOptions)).orElse(new EmptyType());
+      elements.add(new StructElement(metadataOptionsFieldID, metadataOptionstlvValue));
+
+      StructType commandArgs = new StructType(elements);
+      invoke(new InvokeCallbackImpl(callback) {
+          @Override
+          public void onResponse(StructType invokeStructValue) {
+          final long webRTCSessionIDFieldID = 0L;
+          Integer webRTCSessionID = null;
+          final long videoStreamIDFieldID = 1L;
+          Integer videoStreamID = null;
+          final long audioStreamIDFieldID = 2L;
+          Integer audioStreamID = null;
+          for (StructElement element: invokeStructValue.value()) {
+            if (element.contextTagNum() == webRTCSessionIDFieldID) {
+              if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+                UIntType castingValue = element.value(UIntType.class);
+                webRTCSessionID = castingValue.value(Integer.class);
+              }
+            } else if (element.contextTagNum() == videoStreamIDFieldID) {
+              if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+                UIntType castingValue = element.value(UIntType.class);
+                videoStreamID = castingValue.value(Integer.class);
+              }
+            } else if (element.contextTagNum() == audioStreamIDFieldID) {
+              if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+                UIntType castingValue = element.value(UIntType.class);
+                audioStreamID = castingValue.value(Integer.class);
+              }
+            }
+          }
+          callback.onSuccess(webRTCSessionID, videoStreamID, audioStreamID);
+        }}, commandId, commandArgs, timedInvokeTimeoutMs);
+    }
+
+    public void webRTCProvideAnswer(DefaultClusterCallback callback, Integer webRTCSessionID, String sdp) {
+      webRTCProvideAnswer(callback, webRTCSessionID, sdp, 0);
+    }
+
+    public void webRTCProvideAnswer(DefaultClusterCallback callback, Integer webRTCSessionID, String sdp, int timedInvokeTimeoutMs) {
+      final long commandId = 5L;
+
+      ArrayList<StructElement> elements = new ArrayList<>();
+      final long webRTCSessionIDFieldID = 0L;
+      BaseTLVType webRTCSessionIDtlvValue = new UIntType(webRTCSessionID);
+      elements.add(new StructElement(webRTCSessionIDFieldID, webRTCSessionIDtlvValue));
+
+      final long sdpFieldID = 1L;
+      BaseTLVType sdptlvValue = new StringType(sdp);
+      elements.add(new StructElement(sdpFieldID, sdptlvValue));
+
+      StructType commandArgs = new StructType(elements);
+      invoke(new InvokeCallbackImpl(callback) {
+          @Override
+          public void onResponse(StructType invokeStructValue) {
+          callback.onSuccess();
+        }}, commandId, commandArgs, timedInvokeTimeoutMs);
+    }
+
+    public void webRTCProvideICECandidate(DefaultClusterCallback callback, Integer webRTCSessionID, String ICECandidate) {
+      webRTCProvideICECandidate(callback, webRTCSessionID, ICECandidate, 0);
+    }
+
+    public void webRTCProvideICECandidate(DefaultClusterCallback callback, Integer webRTCSessionID, String ICECandidate, int timedInvokeTimeoutMs) {
+      final long commandId = 6L;
+
+      ArrayList<StructElement> elements = new ArrayList<>();
+      final long webRTCSessionIDFieldID = 0L;
+      BaseTLVType webRTCSessionIDtlvValue = new UIntType(webRTCSessionID);
+      elements.add(new StructElement(webRTCSessionIDFieldID, webRTCSessionIDtlvValue));
+
+      final long ICECandidateFieldID = 1L;
+      BaseTLVType ICECandidatetlvValue = new StringType(ICECandidate);
+      elements.add(new StructElement(ICECandidateFieldID, ICECandidatetlvValue));
+
+      StructType commandArgs = new StructType(elements);
+      invoke(new InvokeCallbackImpl(callback) {
+          @Override
+          public void onResponse(StructType invokeStructValue) {
+          callback.onSuccess();
+        }}, commandId, commandArgs, timedInvokeTimeoutMs);
+    }
+
+    public void webRTCEndSession(DefaultClusterCallback callback, Integer webRTCSessionID, Integer reason) {
+      webRTCEndSession(callback, webRTCSessionID, reason, 0);
+    }
+
+    public void webRTCEndSession(DefaultClusterCallback callback, Integer webRTCSessionID, Integer reason, int timedInvokeTimeoutMs) {
+      final long commandId = 7L;
+
+      ArrayList<StructElement> elements = new ArrayList<>();
+      final long webRTCSessionIDFieldID = 0L;
+      BaseTLVType webRTCSessionIDtlvValue = new UIntType(webRTCSessionID);
+      elements.add(new StructElement(webRTCSessionIDFieldID, webRTCSessionIDtlvValue));
+
+      final long reasonFieldID = 1L;
+      BaseTLVType reasontlvValue = new UIntType(reason);
+      elements.add(new StructElement(reasonFieldID, reasontlvValue));
+
+      StructType commandArgs = new StructType(elements);
+      invoke(new InvokeCallbackImpl(callback) {
+          @Override
+          public void onResponse(StructType invokeStructValue) {
+          callback.onSuccess();
+        }}, commandId, commandArgs, timedInvokeTimeoutMs);
+    }
+
+    public interface WebRTCSolicitOfferResponseCallback extends BaseClusterCallback {
+      void onSuccess(Integer webRTCSessionID, Boolean deferredOffer, @Nullable Optional<Integer> videoStreamID, @Nullable Optional<Integer> audioStreamID);
+    }
+
+    public interface WebRTCProvideOfferResponseCallback extends BaseClusterCallback {
+      void onSuccess(Integer webRTCSessionID, Integer videoStreamID, Integer audioStreamID);
+    }
+
+    public interface CurrentSessionsAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<ChipStructs.WebRTCTransportProviderClusterWebRTCSessionStruct> value);
+    }
+
+    public interface GeneratedCommandListAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<Long> value);
+    }
+
+    public interface AcceptedCommandListAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<Long> value);
+    }
+
+    public interface EventListAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<Long> value);
+    }
+
+    public interface AttributeListAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<Long> value);
+    }
+
+    public void readCurrentSessionsAttribute(
+        CurrentSessionsAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CURRENT_SESSIONS_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<ChipStructs.WebRTCTransportProviderClusterWebRTCSessionStruct> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, CURRENT_SESSIONS_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeCurrentSessionsAttribute(
+        CurrentSessionsAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CURRENT_SESSIONS_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<ChipStructs.WebRTCTransportProviderClusterWebRTCSessionStruct> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, CURRENT_SESSIONS_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readGeneratedCommandListAttribute(
+        GeneratedCommandListAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, GENERATED_COMMAND_LIST_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, GENERATED_COMMAND_LIST_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeGeneratedCommandListAttribute(
+        GeneratedCommandListAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, GENERATED_COMMAND_LIST_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, GENERATED_COMMAND_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readAcceptedCommandListAttribute(
+        AcceptedCommandListAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeAcceptedCommandListAttribute(
+        AcceptedCommandListAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readEventListAttribute(
+        EventListAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, EVENT_LIST_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, EVENT_LIST_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeEventListAttribute(
+        EventListAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, EVENT_LIST_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, EVENT_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readAttributeListAttribute(
+        AttributeListAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ATTRIBUTE_LIST_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, ATTRIBUTE_LIST_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeAttributeListAttribute(
+        AttributeListAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ATTRIBUTE_LIST_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, ATTRIBUTE_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readFeatureMapAttribute(
+        LongAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, FEATURE_MAP_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Long value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, FEATURE_MAP_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeFeatureMapAttribute(
+        LongAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, FEATURE_MAP_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Long value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, FEATURE_MAP_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readClusterRevisionAttribute(
+        IntegerAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CLUSTER_REVISION_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, CLUSTER_REVISION_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeClusterRevisionAttribute(
+        IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CLUSTER_REVISION_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, CLUSTER_REVISION_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+  }
+
+  public static class WebRTCTransportRequestorCluster extends BaseChipCluster {
+    public static final long CLUSTER_ID = 1364L;
+
+    private static final long CURRENT_SESSIONS_ATTRIBUTE_ID = 0L;
+    private static final long GENERATED_COMMAND_LIST_ATTRIBUTE_ID = 65528L;
+    private static final long ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID = 65529L;
+    private static final long EVENT_LIST_ATTRIBUTE_ID = 65530L;
+    private static final long ATTRIBUTE_LIST_ATTRIBUTE_ID = 65531L;
+    private static final long FEATURE_MAP_ATTRIBUTE_ID = 65532L;
+    private static final long CLUSTER_REVISION_ATTRIBUTE_ID = 65533L;
+
+    public WebRTCTransportRequestorCluster(long devicePtr, int endpointId) {
+      super(devicePtr, endpointId, CLUSTER_ID);
+    }
+
+    @Override
+    @Deprecated
+    public long initWithDevice(long devicePtr, int endpointId) {
+      return 0L;
+    }
+
+    public void webRTCOffer(DefaultClusterCallback callback, Integer webRTCSessionID, String sdp, Optional<ArrayList<ChipStructs.WebRTCTransportRequestorClusterICEServerStruct>> ICEServers, Optional<String> ICETransportPolicy) {
+      webRTCOffer(callback, webRTCSessionID, sdp, ICEServers, ICETransportPolicy, 0);
+    }
+
+    public void webRTCOffer(DefaultClusterCallback callback, Integer webRTCSessionID, String sdp, Optional<ArrayList<ChipStructs.WebRTCTransportRequestorClusterICEServerStruct>> ICEServers, Optional<String> ICETransportPolicy, int timedInvokeTimeoutMs) {
+      final long commandId = 1L;
+
+      ArrayList<StructElement> elements = new ArrayList<>();
+      final long webRTCSessionIDFieldID = 0L;
+      BaseTLVType webRTCSessionIDtlvValue = new UIntType(webRTCSessionID);
+      elements.add(new StructElement(webRTCSessionIDFieldID, webRTCSessionIDtlvValue));
+
+      final long sdpFieldID = 1L;
+      BaseTLVType sdptlvValue = new StringType(sdp);
+      elements.add(new StructElement(sdpFieldID, sdptlvValue));
+
+      final long ICEServersFieldID = 2L;
+      BaseTLVType ICEServerstlvValue = ICEServers.<BaseTLVType>map((nonOptionalICEServers) -> ArrayType.generateArrayType(nonOptionalICEServers, (elementnonOptionalICEServers) -> elementnonOptionalICEServers.encodeTlv())).orElse(new EmptyType());
+      elements.add(new StructElement(ICEServersFieldID, ICEServerstlvValue));
+
+      final long ICETransportPolicyFieldID = 3L;
+      BaseTLVType ICETransportPolicytlvValue = ICETransportPolicy.<BaseTLVType>map((nonOptionalICETransportPolicy) -> new StringType(nonOptionalICETransportPolicy)).orElse(new EmptyType());
+      elements.add(new StructElement(ICETransportPolicyFieldID, ICETransportPolicytlvValue));
+
+      StructType commandArgs = new StructType(elements);
+      invoke(new InvokeCallbackImpl(callback) {
+          @Override
+          public void onResponse(StructType invokeStructValue) {
+          callback.onSuccess();
+        }}, commandId, commandArgs, timedInvokeTimeoutMs);
+    }
+
+    public void webRTCAnswer(DefaultClusterCallback callback, Integer webRTCSessionID, String sdp) {
+      webRTCAnswer(callback, webRTCSessionID, sdp, 0);
+    }
+
+    public void webRTCAnswer(DefaultClusterCallback callback, Integer webRTCSessionID, String sdp, int timedInvokeTimeoutMs) {
+      final long commandId = 2L;
+
+      ArrayList<StructElement> elements = new ArrayList<>();
+      final long webRTCSessionIDFieldID = 0L;
+      BaseTLVType webRTCSessionIDtlvValue = new UIntType(webRTCSessionID);
+      elements.add(new StructElement(webRTCSessionIDFieldID, webRTCSessionIDtlvValue));
+
+      final long sdpFieldID = 1L;
+      BaseTLVType sdptlvValue = new StringType(sdp);
+      elements.add(new StructElement(sdpFieldID, sdptlvValue));
+
+      StructType commandArgs = new StructType(elements);
+      invoke(new InvokeCallbackImpl(callback) {
+          @Override
+          public void onResponse(StructType invokeStructValue) {
+          callback.onSuccess();
+        }}, commandId, commandArgs, timedInvokeTimeoutMs);
+    }
+
+    public void webRTCICECandidate(DefaultClusterCallback callback, Integer webRTCSessionID, String ICECandidate) {
+      webRTCICECandidate(callback, webRTCSessionID, ICECandidate, 0);
+    }
+
+    public void webRTCICECandidate(DefaultClusterCallback callback, Integer webRTCSessionID, String ICECandidate, int timedInvokeTimeoutMs) {
+      final long commandId = 3L;
+
+      ArrayList<StructElement> elements = new ArrayList<>();
+      final long webRTCSessionIDFieldID = 0L;
+      BaseTLVType webRTCSessionIDtlvValue = new UIntType(webRTCSessionID);
+      elements.add(new StructElement(webRTCSessionIDFieldID, webRTCSessionIDtlvValue));
+
+      final long ICECandidateFieldID = 1L;
+      BaseTLVType ICECandidatetlvValue = new StringType(ICECandidate);
+      elements.add(new StructElement(ICECandidateFieldID, ICECandidatetlvValue));
+
+      StructType commandArgs = new StructType(elements);
+      invoke(new InvokeCallbackImpl(callback) {
+          @Override
+          public void onResponse(StructType invokeStructValue) {
+          callback.onSuccess();
+        }}, commandId, commandArgs, timedInvokeTimeoutMs);
+    }
+
+    public void webRTCEnd(DefaultClusterCallback callback, Integer webRTCSessionID, Integer reason) {
+      webRTCEnd(callback, webRTCSessionID, reason, 0);
+    }
+
+    public void webRTCEnd(DefaultClusterCallback callback, Integer webRTCSessionID, Integer reason, int timedInvokeTimeoutMs) {
+      final long commandId = 4L;
+
+      ArrayList<StructElement> elements = new ArrayList<>();
+      final long webRTCSessionIDFieldID = 0L;
+      BaseTLVType webRTCSessionIDtlvValue = new UIntType(webRTCSessionID);
+      elements.add(new StructElement(webRTCSessionIDFieldID, webRTCSessionIDtlvValue));
+
+      final long reasonFieldID = 1L;
+      BaseTLVType reasontlvValue = new UIntType(reason);
+      elements.add(new StructElement(reasonFieldID, reasontlvValue));
+
+      StructType commandArgs = new StructType(elements);
+      invoke(new InvokeCallbackImpl(callback) {
+          @Override
+          public void onResponse(StructType invokeStructValue) {
+          callback.onSuccess();
+        }}, commandId, commandArgs, timedInvokeTimeoutMs);
+    }
+
+    public interface CurrentSessionsAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<ChipStructs.WebRTCTransportRequestorClusterWebRTCSessionStruct> value);
+    }
+
+    public interface GeneratedCommandListAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<Long> value);
+    }
+
+    public interface AcceptedCommandListAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<Long> value);
+    }
+
+    public interface EventListAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<Long> value);
+    }
+
+    public interface AttributeListAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<Long> value);
+    }
+
+    public void readCurrentSessionsAttribute(
+        CurrentSessionsAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CURRENT_SESSIONS_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<ChipStructs.WebRTCTransportRequestorClusterWebRTCSessionStruct> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, CURRENT_SESSIONS_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeCurrentSessionsAttribute(
+        CurrentSessionsAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CURRENT_SESSIONS_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<ChipStructs.WebRTCTransportRequestorClusterWebRTCSessionStruct> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, CURRENT_SESSIONS_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readGeneratedCommandListAttribute(
+        GeneratedCommandListAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, GENERATED_COMMAND_LIST_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, GENERATED_COMMAND_LIST_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeGeneratedCommandListAttribute(
+        GeneratedCommandListAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, GENERATED_COMMAND_LIST_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, GENERATED_COMMAND_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readAcceptedCommandListAttribute(
+        AcceptedCommandListAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeAcceptedCommandListAttribute(
+        AcceptedCommandListAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readEventListAttribute(
+        EventListAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, EVENT_LIST_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, EVENT_LIST_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeEventListAttribute(
+        EventListAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, EVENT_LIST_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, EVENT_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readAttributeListAttribute(
+        AttributeListAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ATTRIBUTE_LIST_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, ATTRIBUTE_LIST_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeAttributeListAttribute(
+        AttributeListAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ATTRIBUTE_LIST_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, ATTRIBUTE_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readFeatureMapAttribute(
+        LongAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, FEATURE_MAP_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Long value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, FEATURE_MAP_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeFeatureMapAttribute(
+        LongAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, FEATURE_MAP_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Long value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, FEATURE_MAP_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readClusterRevisionAttribute(
+        IntegerAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CLUSTER_REVISION_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, CLUSTER_REVISION_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeClusterRevisionAttribute(
+        IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CLUSTER_REVISION_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, CLUSTER_REVISION_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+  }
+
+  public static class PushAvStreamTransportCluster extends BaseChipCluster {
+    public static final long CLUSTER_ID = 1365L;
+
+    private static final long SUPPORTED_CONTAINER_FORMATS_ATTRIBUTE_ID = 0L;
+    private static final long SUPPORTED_INGEST_METHODS_ATTRIBUTE_ID = 1L;
+    private static final long CURRENT_CONNECTIONS_ATTRIBUTE_ID = 2L;
+    private static final long GENERATED_COMMAND_LIST_ATTRIBUTE_ID = 65528L;
+    private static final long ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID = 65529L;
+    private static final long EVENT_LIST_ATTRIBUTE_ID = 65530L;
+    private static final long ATTRIBUTE_LIST_ATTRIBUTE_ID = 65531L;
+    private static final long FEATURE_MAP_ATTRIBUTE_ID = 65532L;
+    private static final long CLUSTER_REVISION_ATTRIBUTE_ID = 65533L;
+
+    public PushAvStreamTransportCluster(long devicePtr, int endpointId) {
+      super(devicePtr, endpointId, CLUSTER_ID);
+    }
+
+    @Override
+    @Deprecated
+    public long initWithDevice(long devicePtr, int endpointId) {
+      return 0L;
+    }
+
+    public void allocatePushTransport(AllocatePushTransportResponseCallback callback, ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportOptionsStruct streamTransportOptions) {
+      allocatePushTransport(callback, streamTransportOptions, 0);
+    }
+
+    public void allocatePushTransport(AllocatePushTransportResponseCallback callback, ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportOptionsStruct streamTransportOptions, int timedInvokeTimeoutMs) {
+      final long commandId = 0L;
+
+      ArrayList<StructElement> elements = new ArrayList<>();
+      final long streamTransportOptionsFieldID = 0L;
+      BaseTLVType streamTransportOptionstlvValue = streamTransportOptions.encodeTlv();
+      elements.add(new StructElement(streamTransportOptionsFieldID, streamTransportOptionstlvValue));
+
+      StructType commandArgs = new StructType(elements);
+      invoke(new InvokeCallbackImpl(callback) {
+          @Override
+          public void onResponse(StructType invokeStructValue) {
+          final long connectionIDFieldID = 0L;
+          Integer connectionID = null;
+          final long streamTransportOptionsFieldID = 1L;
+          ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportOptionsStruct streamTransportOptions = null;
+          final long transportStatusFieldID = 2L;
+          Integer transportStatus = null;
+          for (StructElement element: invokeStructValue.value()) {
+            if (element.contextTagNum() == connectionIDFieldID) {
+              if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+                UIntType castingValue = element.value(UIntType.class);
+                connectionID = castingValue.value(Integer.class);
+              }
+            } else if (element.contextTagNum() == streamTransportOptionsFieldID) {
+              if (element.value(BaseTLVType.class).type() == TLVType.Struct) {
+                StructType castingValue = element.value(StructType.class);
+                streamTransportOptions = ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportOptionsStruct.decodeTlv(castingValue);
+              }
+            } else if (element.contextTagNum() == transportStatusFieldID) {
+              if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+                UIntType castingValue = element.value(UIntType.class);
+                transportStatus = castingValue.value(Integer.class);
+              }
+            }
+          }
+          callback.onSuccess(connectionID, streamTransportOptions, transportStatus);
+        }}, commandId, commandArgs, timedInvokeTimeoutMs);
+    }
+
+    public void deallocatePushTransport(DefaultClusterCallback callback, Integer connectionID) {
+      deallocatePushTransport(callback, connectionID, 0);
+    }
+
+    public void deallocatePushTransport(DefaultClusterCallback callback, Integer connectionID, int timedInvokeTimeoutMs) {
+      final long commandId = 2L;
+
+      ArrayList<StructElement> elements = new ArrayList<>();
+      final long connectionIDFieldID = 0L;
+      BaseTLVType connectionIDtlvValue = new UIntType(connectionID);
+      elements.add(new StructElement(connectionIDFieldID, connectionIDtlvValue));
+
+      StructType commandArgs = new StructType(elements);
+      invoke(new InvokeCallbackImpl(callback) {
+          @Override
+          public void onResponse(StructType invokeStructValue) {
+          callback.onSuccess();
+        }}, commandId, commandArgs, timedInvokeTimeoutMs);
+    }
+
+    public void modifyPushTransport(DefaultClusterCallback callback, Integer connectionID, ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportOptionsStruct streamTransportOptions) {
+      modifyPushTransport(callback, connectionID, streamTransportOptions, 0);
+    }
+
+    public void modifyPushTransport(DefaultClusterCallback callback, Integer connectionID, ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportOptionsStruct streamTransportOptions, int timedInvokeTimeoutMs) {
+      final long commandId = 3L;
+
+      ArrayList<StructElement> elements = new ArrayList<>();
+      final long connectionIDFieldID = 0L;
+      BaseTLVType connectionIDtlvValue = new UIntType(connectionID);
+      elements.add(new StructElement(connectionIDFieldID, connectionIDtlvValue));
+
+      final long streamTransportOptionsFieldID = 1L;
+      BaseTLVType streamTransportOptionstlvValue = streamTransportOptions.encodeTlv();
+      elements.add(new StructElement(streamTransportOptionsFieldID, streamTransportOptionstlvValue));
+
+      StructType commandArgs = new StructType(elements);
+      invoke(new InvokeCallbackImpl(callback) {
+          @Override
+          public void onResponse(StructType invokeStructValue) {
+          callback.onSuccess();
+        }}, commandId, commandArgs, timedInvokeTimeoutMs);
+    }
+
+    public void setTransportStatus(DefaultClusterCallback callback, @Nullable Integer connectionID, Integer streamTransportStatus) {
+      setTransportStatus(callback, connectionID, streamTransportStatus, 0);
+    }
+
+    public void setTransportStatus(DefaultClusterCallback callback, @Nullable Integer connectionID, Integer streamTransportStatus, int timedInvokeTimeoutMs) {
+      final long commandId = 4L;
+
+      ArrayList<StructElement> elements = new ArrayList<>();
+      final long connectionIDFieldID = 0L;
+      BaseTLVType connectionIDtlvValue = connectionID != null ? new UIntType(connectionID) : new NullType();
+      elements.add(new StructElement(connectionIDFieldID, connectionIDtlvValue));
+
+      final long streamTransportStatusFieldID = 1L;
+      BaseTLVType streamTransportStatustlvValue = new UIntType(streamTransportStatus);
+      elements.add(new StructElement(streamTransportStatusFieldID, streamTransportStatustlvValue));
+
+      StructType commandArgs = new StructType(elements);
+      invoke(new InvokeCallbackImpl(callback) {
+          @Override
+          public void onResponse(StructType invokeStructValue) {
+          callback.onSuccess();
+        }}, commandId, commandArgs, timedInvokeTimeoutMs);
+    }
+
+    public void manuallyTriggerTransport(DefaultClusterCallback callback, Integer connectionID, @Nullable Integer activationReason, @Nullable Optional<ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportMotionTriggerTimeControlStruct> timeControl) {
+      manuallyTriggerTransport(callback, connectionID, activationReason, timeControl, 0);
+    }
+
+    public void manuallyTriggerTransport(DefaultClusterCallback callback, Integer connectionID, @Nullable Integer activationReason, @Nullable Optional<ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportMotionTriggerTimeControlStruct> timeControl, int timedInvokeTimeoutMs) {
+      final long commandId = 5L;
+
+      ArrayList<StructElement> elements = new ArrayList<>();
+      final long connectionIDFieldID = 0L;
+      BaseTLVType connectionIDtlvValue = new UIntType(connectionID);
+      elements.add(new StructElement(connectionIDFieldID, connectionIDtlvValue));
+
+      final long activationReasonFieldID = 1L;
+      BaseTLVType activationReasontlvValue = activationReason != null ? new UIntType(activationReason) : new NullType();
+      elements.add(new StructElement(activationReasonFieldID, activationReasontlvValue));
+
+      final long timeControlFieldID = 2L;
+      BaseTLVType timeControltlvValue = timeControl != null ? timeControl.<BaseTLVType>map((nonOptionaltimeControl) -> nonOptionaltimeControl.encodeTlv()).orElse(new EmptyType()) : new NullType();
+      elements.add(new StructElement(timeControlFieldID, timeControltlvValue));
+
+      StructType commandArgs = new StructType(elements);
+      invoke(new InvokeCallbackImpl(callback) {
+          @Override
+          public void onResponse(StructType invokeStructValue) {
+          callback.onSuccess();
+        }}, commandId, commandArgs, timedInvokeTimeoutMs);
+    }
+
+    public void findStreamConfiguration(FindStreamConfigurationResponseCallback callback, @Nullable Optional<Integer> connectionID) {
+      findStreamConfiguration(callback, connectionID, 0);
+    }
+
+    public void findStreamConfiguration(FindStreamConfigurationResponseCallback callback, @Nullable Optional<Integer> connectionID, int timedInvokeTimeoutMs) {
+      final long commandId = 6L;
+
+      ArrayList<StructElement> elements = new ArrayList<>();
+      final long connectionIDFieldID = 0L;
+      BaseTLVType connectionIDtlvValue = connectionID != null ? connectionID.<BaseTLVType>map((nonOptionalconnectionID) -> new UIntType(nonOptionalconnectionID)).orElse(new EmptyType()) : new NullType();
+      elements.add(new StructElement(connectionIDFieldID, connectionIDtlvValue));
+
+      StructType commandArgs = new StructType(elements);
+      invoke(new InvokeCallbackImpl(callback) {
+          @Override
+          public void onResponse(StructType invokeStructValue) {
+          final long streamConfigurationsFieldID = 0L;
+          ArrayList<ChipStructs.PushAvStreamTransportClusterPushAVStreamConfigurationStruct> streamConfigurations = null;
+          for (StructElement element: invokeStructValue.value()) {
+            if (element.contextTagNum() == streamConfigurationsFieldID) {
+              if (element.value(BaseTLVType.class).type() == TLVType.Array) {
+                ArrayType castingValue = element.value(ArrayType.class);
+                streamConfigurations = castingValue.map((elementcastingValue) -> ChipStructs.PushAvStreamTransportClusterPushAVStreamConfigurationStruct.decodeTlv(elementcastingValue));
+              }
+            }
+          }
+          callback.onSuccess(streamConfigurations);
+        }}, commandId, commandArgs, timedInvokeTimeoutMs);
+    }
+
+    public interface AllocatePushTransportResponseCallback extends BaseClusterCallback {
+      void onSuccess(Integer connectionID, ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportOptionsStruct streamTransportOptions, Integer transportStatus);
+    }
+
+    public interface FindStreamConfigurationResponseCallback extends BaseClusterCallback {
+      void onSuccess(ArrayList<ChipStructs.PushAvStreamTransportClusterPushAVStreamConfigurationStruct> streamConfigurations);
+    }
+
+    public interface CurrentConnectionsAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<Integer> value);
+    }
+
+    public interface GeneratedCommandListAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<Long> value);
+    }
+
+    public interface AcceptedCommandListAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<Long> value);
+    }
+
+    public interface EventListAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<Long> value);
+    }
+
+    public interface AttributeListAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<Long> value);
+    }
+
+    public void readSupportedContainerFormatsAttribute(
+        IntegerAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SUPPORTED_CONTAINER_FORMATS_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, SUPPORTED_CONTAINER_FORMATS_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeSupportedContainerFormatsAttribute(
+        IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SUPPORTED_CONTAINER_FORMATS_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, SUPPORTED_CONTAINER_FORMATS_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readSupportedIngestMethodsAttribute(
+        IntegerAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SUPPORTED_INGEST_METHODS_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, SUPPORTED_INGEST_METHODS_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeSupportedIngestMethodsAttribute(
+        IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, SUPPORTED_INGEST_METHODS_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, SUPPORTED_INGEST_METHODS_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readCurrentConnectionsAttribute(
+        CurrentConnectionsAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CURRENT_CONNECTIONS_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Integer> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, CURRENT_CONNECTIONS_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeCurrentConnectionsAttribute(
+        CurrentConnectionsAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CURRENT_CONNECTIONS_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Integer> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, CURRENT_CONNECTIONS_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readGeneratedCommandListAttribute(
+        GeneratedCommandListAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, GENERATED_COMMAND_LIST_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, GENERATED_COMMAND_LIST_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeGeneratedCommandListAttribute(
+        GeneratedCommandListAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, GENERATED_COMMAND_LIST_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, GENERATED_COMMAND_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readAcceptedCommandListAttribute(
+        AcceptedCommandListAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeAcceptedCommandListAttribute(
+        AcceptedCommandListAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readEventListAttribute(
+        EventListAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, EVENT_LIST_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, EVENT_LIST_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeEventListAttribute(
+        EventListAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, EVENT_LIST_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, EVENT_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readAttributeListAttribute(
+        AttributeListAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ATTRIBUTE_LIST_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, ATTRIBUTE_LIST_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeAttributeListAttribute(
+        AttributeListAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ATTRIBUTE_LIST_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, ATTRIBUTE_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readFeatureMapAttribute(
+        LongAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, FEATURE_MAP_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Long value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, FEATURE_MAP_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeFeatureMapAttribute(
+        LongAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, FEATURE_MAP_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Long value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, FEATURE_MAP_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readClusterRevisionAttribute(
+        IntegerAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CLUSTER_REVISION_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, CLUSTER_REVISION_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeClusterRevisionAttribute(
+        IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CLUSTER_REVISION_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, CLUSTER_REVISION_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+  }
+
+  public static class ChimeCluster extends BaseChipCluster {
+    public static final long CLUSTER_ID = 1366L;
+
+    private static final long INSTALLED_CHIME_SOUNDS_ATTRIBUTE_ID = 0L;
+    private static final long ACTIVE_CHIME_SOUND_ID_ATTRIBUTE_ID = 1L;
+    private static final long ENABLED_ATTRIBUTE_ID = 2L;
+    private static final long GENERATED_COMMAND_LIST_ATTRIBUTE_ID = 65528L;
+    private static final long ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID = 65529L;
+    private static final long EVENT_LIST_ATTRIBUTE_ID = 65530L;
+    private static final long ATTRIBUTE_LIST_ATTRIBUTE_ID = 65531L;
+    private static final long FEATURE_MAP_ATTRIBUTE_ID = 65532L;
+    private static final long CLUSTER_REVISION_ATTRIBUTE_ID = 65533L;
+
+    public ChimeCluster(long devicePtr, int endpointId) {
+      super(devicePtr, endpointId, CLUSTER_ID);
+    }
+
+    @Override
+    @Deprecated
+    public long initWithDevice(long devicePtr, int endpointId) {
+      return 0L;
+    }
+
+    public void playChimeSound(DefaultClusterCallback callback) {
+      playChimeSound(callback, 0);
+    }
+
+    public void playChimeSound(DefaultClusterCallback callback, int timedInvokeTimeoutMs) {
+      final long commandId = 0L;
+
+      ArrayList<StructElement> elements = new ArrayList<>();
+      StructType commandArgs = new StructType(elements);
+      invoke(new InvokeCallbackImpl(callback) {
+          @Override
+          public void onResponse(StructType invokeStructValue) {
+          callback.onSuccess();
+        }}, commandId, commandArgs, timedInvokeTimeoutMs);
+    }
+
+    public interface InstalledChimeSoundsAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<ChipStructs.ChimeClusterChimeSoundStruct> value);
+    }
+
+    public interface GeneratedCommandListAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<Long> value);
+    }
+
+    public interface AcceptedCommandListAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<Long> value);
+    }
+
+    public interface EventListAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<Long> value);
+    }
+
+    public interface AttributeListAttributeCallback extends BaseAttributeCallback {
+      void onSuccess(List<Long> value);
+    }
+
+    public void readInstalledChimeSoundsAttribute(
+        InstalledChimeSoundsAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, INSTALLED_CHIME_SOUNDS_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<ChipStructs.ChimeClusterChimeSoundStruct> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, INSTALLED_CHIME_SOUNDS_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeInstalledChimeSoundsAttribute(
+        InstalledChimeSoundsAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, INSTALLED_CHIME_SOUNDS_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<ChipStructs.ChimeClusterChimeSoundStruct> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, INSTALLED_CHIME_SOUNDS_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readActiveChimeSoundIdAttribute(
+        IntegerAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ACTIVE_CHIME_SOUND_ID_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, ACTIVE_CHIME_SOUND_ID_ATTRIBUTE_ID, true);
+    }
+
+    public void writeActiveChimeSoundIdAttribute(DefaultClusterCallback callback, Integer value) {
+      writeActiveChimeSoundIdAttribute(callback, value, 0);
+    }
+
+    public void writeActiveChimeSoundIdAttribute(DefaultClusterCallback callback, Integer value, int timedWriteTimeoutMs) {
+      BaseTLVType tlvValue = new UIntType(value);
+      writeAttribute(new WriteAttributesCallbackImpl(callback), ACTIVE_CHIME_SOUND_ID_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+    }
+
+    public void subscribeActiveChimeSoundIdAttribute(
+        IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ACTIVE_CHIME_SOUND_ID_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, ACTIVE_CHIME_SOUND_ID_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readEnabledAttribute(
+        BooleanAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ENABLED_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, ENABLED_ATTRIBUTE_ID, true);
+    }
+
+    public void writeEnabledAttribute(DefaultClusterCallback callback, Boolean value) {
+      writeEnabledAttribute(callback, value, 0);
+    }
+
+    public void writeEnabledAttribute(DefaultClusterCallback callback, Boolean value, int timedWriteTimeoutMs) {
+      BaseTLVType tlvValue = new BooleanType(value);
+      writeAttribute(new WriteAttributesCallbackImpl(callback), ENABLED_ATTRIBUTE_ID, tlvValue, timedWriteTimeoutMs);
+    }
+
+    public void subscribeEnabledAttribute(
+        BooleanAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ENABLED_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Boolean value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, ENABLED_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readGeneratedCommandListAttribute(
+        GeneratedCommandListAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, GENERATED_COMMAND_LIST_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, GENERATED_COMMAND_LIST_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeGeneratedCommandListAttribute(
+        GeneratedCommandListAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, GENERATED_COMMAND_LIST_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, GENERATED_COMMAND_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readAcceptedCommandListAttribute(
+        AcceptedCommandListAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeAcceptedCommandListAttribute(
+        AcceptedCommandListAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, ACCEPTED_COMMAND_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readEventListAttribute(
+        EventListAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, EVENT_LIST_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, EVENT_LIST_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeEventListAttribute(
+        EventListAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, EVENT_LIST_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, EVENT_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readAttributeListAttribute(
+        AttributeListAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ATTRIBUTE_LIST_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, ATTRIBUTE_LIST_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeAttributeListAttribute(
+        AttributeListAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, ATTRIBUTE_LIST_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            List<Long> value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, ATTRIBUTE_LIST_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readFeatureMapAttribute(
+        LongAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, FEATURE_MAP_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Long value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, FEATURE_MAP_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeFeatureMapAttribute(
+        LongAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, FEATURE_MAP_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Long value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, FEATURE_MAP_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+
+    public void readClusterRevisionAttribute(
+        IntegerAttributeCallback callback) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CLUSTER_REVISION_ATTRIBUTE_ID);
+
+      readAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, CLUSTER_REVISION_ATTRIBUTE_ID, true);
+    }
+
+    public void subscribeClusterRevisionAttribute(
+        IntegerAttributeCallback callback, int minInterval, int maxInterval) {
+      ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CLUSTER_REVISION_ATTRIBUTE_ID);
+
+      subscribeAttribute(new ReportCallbackImpl(callback, path) {
+          @Override
+          public void onSuccess(byte[] tlv) {
+            Integer value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv);
+            callback.onSuccess(value);
+          }
+        }, CLUSTER_REVISION_ATTRIBUTE_ID, minInterval, maxInterval);
+    }
+  }
+
   public static class EcosystemInformationCluster extends BaseChipCluster {
     public static final long CLUSTER_ID = 1872L;
 
diff --git a/src/controller/java/generated/java/chip/devicecontroller/ChipEventStructs.java b/src/controller/java/generated/java/chip/devicecontroller/ChipEventStructs.java
index 737462f3da184d..c71f78c8d5408e 100644
--- a/src/controller/java/generated/java/chip/devicecontroller/ChipEventStructs.java
+++ b/src/controller/java/generated/java/chip/devicecontroller/ChipEventStructs.java
@@ -6187,6 +6187,563 @@ public String toString() {
     return output.toString();
   }
 }
+public static class CameraAvStreamManagementClusterVideoStreamChangedEvent {
+  public Integer videoStreamID;
+  public Optional<Integer> streamType;
+  public Optional<Integer> videoCodec;
+  public Optional<Integer> minFrameRate;
+  public Optional<Integer> maxFrameRate;
+  public Optional<Object> minResolution;
+  public Optional<Object> maxResolution;
+  public Optional<Integer> minBitRate;
+  public Optional<Integer> maxBitRate;
+  public Optional<Integer> minFragmentLen;
+  public Optional<Integer> maxFragmentLen;
+  private static final long VIDEO_STREAM_ID_ID = 0L;
+  private static final long STREAM_TYPE_ID = 1L;
+  private static final long VIDEO_CODEC_ID = 2L;
+  private static final long MIN_FRAME_RATE_ID = 3L;
+  private static final long MAX_FRAME_RATE_ID = 4L;
+  private static final long MIN_RESOLUTION_ID = 5L;
+  private static final long MAX_RESOLUTION_ID = 6L;
+  private static final long MIN_BIT_RATE_ID = 7L;
+  private static final long MAX_BIT_RATE_ID = 8L;
+  private static final long MIN_FRAGMENT_LEN_ID = 9L;
+  private static final long MAX_FRAGMENT_LEN_ID = 10L;
+
+  public CameraAvStreamManagementClusterVideoStreamChangedEvent(
+    Integer videoStreamID,
+    Optional<Integer> streamType,
+    Optional<Integer> videoCodec,
+    Optional<Integer> minFrameRate,
+    Optional<Integer> maxFrameRate,
+    Optional<Object> minResolution,
+    Optional<Object> maxResolution,
+    Optional<Integer> minBitRate,
+    Optional<Integer> maxBitRate,
+    Optional<Integer> minFragmentLen,
+    Optional<Integer> maxFragmentLen
+  ) {
+    this.videoStreamID = videoStreamID;
+    this.streamType = streamType;
+    this.videoCodec = videoCodec;
+    this.minFrameRate = minFrameRate;
+    this.maxFrameRate = maxFrameRate;
+    this.minResolution = minResolution;
+    this.maxResolution = maxResolution;
+    this.minBitRate = minBitRate;
+    this.maxBitRate = maxBitRate;
+    this.minFragmentLen = minFragmentLen;
+    this.maxFragmentLen = maxFragmentLen;
+  }
+
+  public StructType encodeTlv() {
+    ArrayList<StructElement> values = new ArrayList<>();
+    values.add(new StructElement(VIDEO_STREAM_ID_ID, new UIntType(videoStreamID)));
+    values.add(new StructElement(STREAM_TYPE_ID, streamType.<BaseTLVType>map((nonOptionalstreamType) -> new UIntType(nonOptionalstreamType)).orElse(new EmptyType())));
+    values.add(new StructElement(VIDEO_CODEC_ID, videoCodec.<BaseTLVType>map((nonOptionalvideoCodec) -> new UIntType(nonOptionalvideoCodec)).orElse(new EmptyType())));
+    values.add(new StructElement(MIN_FRAME_RATE_ID, minFrameRate.<BaseTLVType>map((nonOptionalminFrameRate) -> new UIntType(nonOptionalminFrameRate)).orElse(new EmptyType())));
+    values.add(new StructElement(MAX_FRAME_RATE_ID, maxFrameRate.<BaseTLVType>map((nonOptionalmaxFrameRate) -> new UIntType(nonOptionalmaxFrameRate)).orElse(new EmptyType())));
+    values.add(new StructElement(MIN_RESOLUTION_ID, minResolution.<BaseTLVType>map((nonOptionalminResolution) -> new AnyType(nonOptionalminResolution)).orElse(new EmptyType())));
+    values.add(new StructElement(MAX_RESOLUTION_ID, maxResolution.<BaseTLVType>map((nonOptionalmaxResolution) -> new AnyType(nonOptionalmaxResolution)).orElse(new EmptyType())));
+    values.add(new StructElement(MIN_BIT_RATE_ID, minBitRate.<BaseTLVType>map((nonOptionalminBitRate) -> new UIntType(nonOptionalminBitRate)).orElse(new EmptyType())));
+    values.add(new StructElement(MAX_BIT_RATE_ID, maxBitRate.<BaseTLVType>map((nonOptionalmaxBitRate) -> new UIntType(nonOptionalmaxBitRate)).orElse(new EmptyType())));
+    values.add(new StructElement(MIN_FRAGMENT_LEN_ID, minFragmentLen.<BaseTLVType>map((nonOptionalminFragmentLen) -> new UIntType(nonOptionalminFragmentLen)).orElse(new EmptyType())));
+    values.add(new StructElement(MAX_FRAGMENT_LEN_ID, maxFragmentLen.<BaseTLVType>map((nonOptionalmaxFragmentLen) -> new UIntType(nonOptionalmaxFragmentLen)).orElse(new EmptyType())));
+
+    return new StructType(values);
+  }
+
+  public static CameraAvStreamManagementClusterVideoStreamChangedEvent decodeTlv(BaseTLVType tlvValue) {
+    if (tlvValue == null || tlvValue.type() != TLVType.Struct) {
+      return null;
+    }
+    Integer videoStreamID = null;
+    Optional<Integer> streamType = Optional.empty();
+    Optional<Integer> videoCodec = Optional.empty();
+    Optional<Integer> minFrameRate = Optional.empty();
+    Optional<Integer> maxFrameRate = Optional.empty();
+    Optional<Object> minResolution = Optional.empty();
+    Optional<Object> maxResolution = Optional.empty();
+    Optional<Integer> minBitRate = Optional.empty();
+    Optional<Integer> maxBitRate = Optional.empty();
+    Optional<Integer> minFragmentLen = Optional.empty();
+    Optional<Integer> maxFragmentLen = Optional.empty();
+    for (StructElement element: ((StructType)tlvValue).value()) {
+      if (element.contextTagNum() == VIDEO_STREAM_ID_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          videoStreamID = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == STREAM_TYPE_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          streamType = Optional.of(castingValue.value(Integer.class));
+        }
+      } else if (element.contextTagNum() == VIDEO_CODEC_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          videoCodec = Optional.of(castingValue.value(Integer.class));
+        }
+      } else if (element.contextTagNum() == MIN_FRAME_RATE_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          minFrameRate = Optional.of(castingValue.value(Integer.class));
+        }
+      } else if (element.contextTagNum() == MAX_FRAME_RATE_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          maxFrameRate = Optional.of(castingValue.value(Integer.class));
+        }
+      } else if (element.contextTagNum() == MIN_RESOLUTION_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.Any) {
+          AnyType castingValue = element.value(AnyType.class);
+          minResolution = Optional.of(castingValue.value(Object.class));
+        }
+      } else if (element.contextTagNum() == MAX_RESOLUTION_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.Any) {
+          AnyType castingValue = element.value(AnyType.class);
+          maxResolution = Optional.of(castingValue.value(Object.class));
+        }
+      } else if (element.contextTagNum() == MIN_BIT_RATE_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          minBitRate = Optional.of(castingValue.value(Integer.class));
+        }
+      } else if (element.contextTagNum() == MAX_BIT_RATE_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          maxBitRate = Optional.of(castingValue.value(Integer.class));
+        }
+      } else if (element.contextTagNum() == MIN_FRAGMENT_LEN_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          minFragmentLen = Optional.of(castingValue.value(Integer.class));
+        }
+      } else if (element.contextTagNum() == MAX_FRAGMENT_LEN_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          maxFragmentLen = Optional.of(castingValue.value(Integer.class));
+        }
+      }
+    }
+    return new CameraAvStreamManagementClusterVideoStreamChangedEvent(
+      videoStreamID,
+      streamType,
+      videoCodec,
+      minFrameRate,
+      maxFrameRate,
+      minResolution,
+      maxResolution,
+      minBitRate,
+      maxBitRate,
+      minFragmentLen,
+      maxFragmentLen
+    );
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder output = new StringBuilder();
+    output.append("CameraAvStreamManagementClusterVideoStreamChangedEvent {\n");
+    output.append("\tvideoStreamID: ");
+    output.append(videoStreamID);
+    output.append("\n");
+    output.append("\tstreamType: ");
+    output.append(streamType);
+    output.append("\n");
+    output.append("\tvideoCodec: ");
+    output.append(videoCodec);
+    output.append("\n");
+    output.append("\tminFrameRate: ");
+    output.append(minFrameRate);
+    output.append("\n");
+    output.append("\tmaxFrameRate: ");
+    output.append(maxFrameRate);
+    output.append("\n");
+    output.append("\tminResolution: ");
+    output.append(minResolution);
+    output.append("\n");
+    output.append("\tmaxResolution: ");
+    output.append(maxResolution);
+    output.append("\n");
+    output.append("\tminBitRate: ");
+    output.append(minBitRate);
+    output.append("\n");
+    output.append("\tmaxBitRate: ");
+    output.append(maxBitRate);
+    output.append("\n");
+    output.append("\tminFragmentLen: ");
+    output.append(minFragmentLen);
+    output.append("\n");
+    output.append("\tmaxFragmentLen: ");
+    output.append(maxFragmentLen);
+    output.append("\n");
+    output.append("}\n");
+    return output.toString();
+  }
+}
+public static class CameraAvStreamManagementClusterAudioStreamChangedEvent {
+  public Integer audioStreamID;
+  public Optional<Integer> streamType;
+  public Optional<Integer> audioCodec;
+  public Optional<Integer> channelCount;
+  public Optional<Long> sampleRate;
+  public Optional<Long> bitRate;
+  public Optional<Integer> bitDepth;
+  private static final long AUDIO_STREAM_ID_ID = 0L;
+  private static final long STREAM_TYPE_ID = 1L;
+  private static final long AUDIO_CODEC_ID = 2L;
+  private static final long CHANNEL_COUNT_ID = 3L;
+  private static final long SAMPLE_RATE_ID = 4L;
+  private static final long BIT_RATE_ID = 5L;
+  private static final long BIT_DEPTH_ID = 6L;
+
+  public CameraAvStreamManagementClusterAudioStreamChangedEvent(
+    Integer audioStreamID,
+    Optional<Integer> streamType,
+    Optional<Integer> audioCodec,
+    Optional<Integer> channelCount,
+    Optional<Long> sampleRate,
+    Optional<Long> bitRate,
+    Optional<Integer> bitDepth
+  ) {
+    this.audioStreamID = audioStreamID;
+    this.streamType = streamType;
+    this.audioCodec = audioCodec;
+    this.channelCount = channelCount;
+    this.sampleRate = sampleRate;
+    this.bitRate = bitRate;
+    this.bitDepth = bitDepth;
+  }
+
+  public StructType encodeTlv() {
+    ArrayList<StructElement> values = new ArrayList<>();
+    values.add(new StructElement(AUDIO_STREAM_ID_ID, new UIntType(audioStreamID)));
+    values.add(new StructElement(STREAM_TYPE_ID, streamType.<BaseTLVType>map((nonOptionalstreamType) -> new UIntType(nonOptionalstreamType)).orElse(new EmptyType())));
+    values.add(new StructElement(AUDIO_CODEC_ID, audioCodec.<BaseTLVType>map((nonOptionalaudioCodec) -> new UIntType(nonOptionalaudioCodec)).orElse(new EmptyType())));
+    values.add(new StructElement(CHANNEL_COUNT_ID, channelCount.<BaseTLVType>map((nonOptionalchannelCount) -> new UIntType(nonOptionalchannelCount)).orElse(new EmptyType())));
+    values.add(new StructElement(SAMPLE_RATE_ID, sampleRate.<BaseTLVType>map((nonOptionalsampleRate) -> new UIntType(nonOptionalsampleRate)).orElse(new EmptyType())));
+    values.add(new StructElement(BIT_RATE_ID, bitRate.<BaseTLVType>map((nonOptionalbitRate) -> new UIntType(nonOptionalbitRate)).orElse(new EmptyType())));
+    values.add(new StructElement(BIT_DEPTH_ID, bitDepth.<BaseTLVType>map((nonOptionalbitDepth) -> new UIntType(nonOptionalbitDepth)).orElse(new EmptyType())));
+
+    return new StructType(values);
+  }
+
+  public static CameraAvStreamManagementClusterAudioStreamChangedEvent decodeTlv(BaseTLVType tlvValue) {
+    if (tlvValue == null || tlvValue.type() != TLVType.Struct) {
+      return null;
+    }
+    Integer audioStreamID = null;
+    Optional<Integer> streamType = Optional.empty();
+    Optional<Integer> audioCodec = Optional.empty();
+    Optional<Integer> channelCount = Optional.empty();
+    Optional<Long> sampleRate = Optional.empty();
+    Optional<Long> bitRate = Optional.empty();
+    Optional<Integer> bitDepth = Optional.empty();
+    for (StructElement element: ((StructType)tlvValue).value()) {
+      if (element.contextTagNum() == AUDIO_STREAM_ID_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          audioStreamID = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == STREAM_TYPE_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          streamType = Optional.of(castingValue.value(Integer.class));
+        }
+      } else if (element.contextTagNum() == AUDIO_CODEC_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          audioCodec = Optional.of(castingValue.value(Integer.class));
+        }
+      } else if (element.contextTagNum() == CHANNEL_COUNT_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          channelCount = Optional.of(castingValue.value(Integer.class));
+        }
+      } else if (element.contextTagNum() == SAMPLE_RATE_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          sampleRate = Optional.of(castingValue.value(Long.class));
+        }
+      } else if (element.contextTagNum() == BIT_RATE_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          bitRate = Optional.of(castingValue.value(Long.class));
+        }
+      } else if (element.contextTagNum() == BIT_DEPTH_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          bitDepth = Optional.of(castingValue.value(Integer.class));
+        }
+      }
+    }
+    return new CameraAvStreamManagementClusterAudioStreamChangedEvent(
+      audioStreamID,
+      streamType,
+      audioCodec,
+      channelCount,
+      sampleRate,
+      bitRate,
+      bitDepth
+    );
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder output = new StringBuilder();
+    output.append("CameraAvStreamManagementClusterAudioStreamChangedEvent {\n");
+    output.append("\taudioStreamID: ");
+    output.append(audioStreamID);
+    output.append("\n");
+    output.append("\tstreamType: ");
+    output.append(streamType);
+    output.append("\n");
+    output.append("\taudioCodec: ");
+    output.append(audioCodec);
+    output.append("\n");
+    output.append("\tchannelCount: ");
+    output.append(channelCount);
+    output.append("\n");
+    output.append("\tsampleRate: ");
+    output.append(sampleRate);
+    output.append("\n");
+    output.append("\tbitRate: ");
+    output.append(bitRate);
+    output.append("\n");
+    output.append("\tbitDepth: ");
+    output.append(bitDepth);
+    output.append("\n");
+    output.append("}\n");
+    return output.toString();
+  }
+}
+public static class CameraAvStreamManagementClusterSnapshotStreamChangedEvent {
+  public Integer snapshotStreamID;
+  public Optional<Integer> imageCodec;
+  public Optional<Integer> frameRate;
+  public Optional<Long> bitRate;
+  public Optional<Object> minResolution;
+  public Optional<Object> maxResolution;
+  public Optional<Integer> quality;
+  private static final long SNAPSHOT_STREAM_ID_ID = 0L;
+  private static final long IMAGE_CODEC_ID = 1L;
+  private static final long FRAME_RATE_ID = 2L;
+  private static final long BIT_RATE_ID = 3L;
+  private static final long MIN_RESOLUTION_ID = 4L;
+  private static final long MAX_RESOLUTION_ID = 5L;
+  private static final long QUALITY_ID = 6L;
+
+  public CameraAvStreamManagementClusterSnapshotStreamChangedEvent(
+    Integer snapshotStreamID,
+    Optional<Integer> imageCodec,
+    Optional<Integer> frameRate,
+    Optional<Long> bitRate,
+    Optional<Object> minResolution,
+    Optional<Object> maxResolution,
+    Optional<Integer> quality
+  ) {
+    this.snapshotStreamID = snapshotStreamID;
+    this.imageCodec = imageCodec;
+    this.frameRate = frameRate;
+    this.bitRate = bitRate;
+    this.minResolution = minResolution;
+    this.maxResolution = maxResolution;
+    this.quality = quality;
+  }
+
+  public StructType encodeTlv() {
+    ArrayList<StructElement> values = new ArrayList<>();
+    values.add(new StructElement(SNAPSHOT_STREAM_ID_ID, new UIntType(snapshotStreamID)));
+    values.add(new StructElement(IMAGE_CODEC_ID, imageCodec.<BaseTLVType>map((nonOptionalimageCodec) -> new UIntType(nonOptionalimageCodec)).orElse(new EmptyType())));
+    values.add(new StructElement(FRAME_RATE_ID, frameRate.<BaseTLVType>map((nonOptionalframeRate) -> new UIntType(nonOptionalframeRate)).orElse(new EmptyType())));
+    values.add(new StructElement(BIT_RATE_ID, bitRate.<BaseTLVType>map((nonOptionalbitRate) -> new UIntType(nonOptionalbitRate)).orElse(new EmptyType())));
+    values.add(new StructElement(MIN_RESOLUTION_ID, minResolution.<BaseTLVType>map((nonOptionalminResolution) -> new AnyType(nonOptionalminResolution)).orElse(new EmptyType())));
+    values.add(new StructElement(MAX_RESOLUTION_ID, maxResolution.<BaseTLVType>map((nonOptionalmaxResolution) -> new AnyType(nonOptionalmaxResolution)).orElse(new EmptyType())));
+    values.add(new StructElement(QUALITY_ID, quality.<BaseTLVType>map((nonOptionalquality) -> new UIntType(nonOptionalquality)).orElse(new EmptyType())));
+
+    return new StructType(values);
+  }
+
+  public static CameraAvStreamManagementClusterSnapshotStreamChangedEvent decodeTlv(BaseTLVType tlvValue) {
+    if (tlvValue == null || tlvValue.type() != TLVType.Struct) {
+      return null;
+    }
+    Integer snapshotStreamID = null;
+    Optional<Integer> imageCodec = Optional.empty();
+    Optional<Integer> frameRate = Optional.empty();
+    Optional<Long> bitRate = Optional.empty();
+    Optional<Object> minResolution = Optional.empty();
+    Optional<Object> maxResolution = Optional.empty();
+    Optional<Integer> quality = Optional.empty();
+    for (StructElement element: ((StructType)tlvValue).value()) {
+      if (element.contextTagNum() == SNAPSHOT_STREAM_ID_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          snapshotStreamID = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == IMAGE_CODEC_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          imageCodec = Optional.of(castingValue.value(Integer.class));
+        }
+      } else if (element.contextTagNum() == FRAME_RATE_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          frameRate = Optional.of(castingValue.value(Integer.class));
+        }
+      } else if (element.contextTagNum() == BIT_RATE_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          bitRate = Optional.of(castingValue.value(Long.class));
+        }
+      } else if (element.contextTagNum() == MIN_RESOLUTION_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.Any) {
+          AnyType castingValue = element.value(AnyType.class);
+          minResolution = Optional.of(castingValue.value(Object.class));
+        }
+      } else if (element.contextTagNum() == MAX_RESOLUTION_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.Any) {
+          AnyType castingValue = element.value(AnyType.class);
+          maxResolution = Optional.of(castingValue.value(Object.class));
+        }
+      } else if (element.contextTagNum() == QUALITY_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          quality = Optional.of(castingValue.value(Integer.class));
+        }
+      }
+    }
+    return new CameraAvStreamManagementClusterSnapshotStreamChangedEvent(
+      snapshotStreamID,
+      imageCodec,
+      frameRate,
+      bitRate,
+      minResolution,
+      maxResolution,
+      quality
+    );
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder output = new StringBuilder();
+    output.append("CameraAvStreamManagementClusterSnapshotStreamChangedEvent {\n");
+    output.append("\tsnapshotStreamID: ");
+    output.append(snapshotStreamID);
+    output.append("\n");
+    output.append("\timageCodec: ");
+    output.append(imageCodec);
+    output.append("\n");
+    output.append("\tframeRate: ");
+    output.append(frameRate);
+    output.append("\n");
+    output.append("\tbitRate: ");
+    output.append(bitRate);
+    output.append("\n");
+    output.append("\tminResolution: ");
+    output.append(minResolution);
+    output.append("\n");
+    output.append("\tmaxResolution: ");
+    output.append(maxResolution);
+    output.append("\n");
+    output.append("\tquality: ");
+    output.append(quality);
+    output.append("\n");
+    output.append("}\n");
+    return output.toString();
+  }
+}
+public static class PushAvStreamTransportClusterPushTransportBeginEvent {
+
+  public PushAvStreamTransportClusterPushTransportBeginEvent(
+  ) {
+  }
+
+  public StructType encodeTlv() {
+    ArrayList<StructElement> values = new ArrayList<>();
+
+    return new StructType(values);
+  }
+
+  public static PushAvStreamTransportClusterPushTransportBeginEvent decodeTlv(BaseTLVType tlvValue) {
+    if (tlvValue == null || tlvValue.type() != TLVType.Struct) {
+      return null;
+    }
+    return new PushAvStreamTransportClusterPushTransportBeginEvent(
+    );
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder output = new StringBuilder();
+    output.append("PushAvStreamTransportClusterPushTransportBeginEvent {\n");
+    output.append("}\n");
+    return output.toString();
+  }
+}
+public static class PushAvStreamTransportClusterPushTransportEndEvent {
+  public Integer connectionID;
+  public ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportTriggerOptionsStruct triggerDetails;
+  private static final long CONNECTION_ID_ID = 0L;
+  private static final long TRIGGER_DETAILS_ID = 1L;
+
+  public PushAvStreamTransportClusterPushTransportEndEvent(
+    Integer connectionID,
+    ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportTriggerOptionsStruct triggerDetails
+  ) {
+    this.connectionID = connectionID;
+    this.triggerDetails = triggerDetails;
+  }
+
+  public StructType encodeTlv() {
+    ArrayList<StructElement> values = new ArrayList<>();
+    values.add(new StructElement(CONNECTION_ID_ID, new UIntType(connectionID)));
+    values.add(new StructElement(TRIGGER_DETAILS_ID, triggerDetails.encodeTlv()));
+
+    return new StructType(values);
+  }
+
+  public static PushAvStreamTransportClusterPushTransportEndEvent decodeTlv(BaseTLVType tlvValue) {
+    if (tlvValue == null || tlvValue.type() != TLVType.Struct) {
+      return null;
+    }
+    Integer connectionID = null;
+    ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportTriggerOptionsStruct triggerDetails = null;
+    for (StructElement element: ((StructType)tlvValue).value()) {
+      if (element.contextTagNum() == CONNECTION_ID_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          connectionID = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == TRIGGER_DETAILS_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.Struct) {
+          StructType castingValue = element.value(StructType.class);
+          triggerDetails = ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportTriggerOptionsStruct.decodeTlv(castingValue);
+        }
+      }
+    }
+    return new PushAvStreamTransportClusterPushTransportEndEvent(
+      connectionID,
+      triggerDetails
+    );
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder output = new StringBuilder();
+    output.append("PushAvStreamTransportClusterPushTransportEndEvent {\n");
+    output.append("\tconnectionID: ");
+    output.append(connectionID);
+    output.append("\n");
+    output.append("\ttriggerDetails: ");
+    output.append(triggerDetails);
+    output.append("\n");
+    output.append("}\n");
+    return output.toString();
+  }
+}
 public static class CommissionerControlClusterCommissioningRequestResultEvent {
   public Long requestID;
   public Long clientNodeID;
diff --git a/src/controller/java/generated/java/chip/devicecontroller/ChipStructs.java b/src/controller/java/generated/java/chip/devicecontroller/ChipStructs.java
index 7ee8a88f80f64b..a383759bdb533a 100644
--- a/src/controller/java/generated/java/chip/devicecontroller/ChipStructs.java
+++ b/src/controller/java/generated/java/chip/devicecontroller/ChipStructs.java
@@ -12724,6 +12724,2430 @@ public String toString() {
     return output.toString();
   }
 }
+public static class CameraAvStreamManagementClusterAudioCapabilitiesStruct {
+  public Integer maxNumberOfChannels;
+  public ArrayList<Integer> supportedCodecs;
+  public ArrayList<Long> supportedSampleRates;
+  public ArrayList<Long> supportedBitDepths;
+  private static final long MAX_NUMBER_OF_CHANNELS_ID = 0L;
+  private static final long SUPPORTED_CODECS_ID = 1L;
+  private static final long SUPPORTED_SAMPLE_RATES_ID = 2L;
+  private static final long SUPPORTED_BIT_DEPTHS_ID = 3L;
+
+  public CameraAvStreamManagementClusterAudioCapabilitiesStruct(
+    Integer maxNumberOfChannels,
+    ArrayList<Integer> supportedCodecs,
+    ArrayList<Long> supportedSampleRates,
+    ArrayList<Long> supportedBitDepths
+  ) {
+    this.maxNumberOfChannels = maxNumberOfChannels;
+    this.supportedCodecs = supportedCodecs;
+    this.supportedSampleRates = supportedSampleRates;
+    this.supportedBitDepths = supportedBitDepths;
+  }
+
+  public StructType encodeTlv() {
+    ArrayList<StructElement> values = new ArrayList<>();
+    values.add(new StructElement(MAX_NUMBER_OF_CHANNELS_ID, new UIntType(maxNumberOfChannels)));
+    values.add(new StructElement(SUPPORTED_CODECS_ID, ArrayType.generateArrayType(supportedCodecs, (elementsupportedCodecs) -> new UIntType(elementsupportedCodecs))));
+    values.add(new StructElement(SUPPORTED_SAMPLE_RATES_ID, ArrayType.generateArrayType(supportedSampleRates, (elementsupportedSampleRates) -> new UIntType(elementsupportedSampleRates))));
+    values.add(new StructElement(SUPPORTED_BIT_DEPTHS_ID, ArrayType.generateArrayType(supportedBitDepths, (elementsupportedBitDepths) -> new UIntType(elementsupportedBitDepths))));
+
+    return new StructType(values);
+  }
+
+  public static CameraAvStreamManagementClusterAudioCapabilitiesStruct decodeTlv(BaseTLVType tlvValue) {
+    if (tlvValue == null || tlvValue.type() != TLVType.Struct) {
+      return null;
+    }
+    Integer maxNumberOfChannels = null;
+    ArrayList<Integer> supportedCodecs = null;
+    ArrayList<Long> supportedSampleRates = null;
+    ArrayList<Long> supportedBitDepths = null;
+    for (StructElement element: ((StructType)tlvValue).value()) {
+      if (element.contextTagNum() == MAX_NUMBER_OF_CHANNELS_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          maxNumberOfChannels = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == SUPPORTED_CODECS_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.Array) {
+          ArrayType castingValue = element.value(ArrayType.class);
+          supportedCodecs = castingValue.map((elementcastingValue) -> elementcastingValue.value(Integer.class));
+        }
+      } else if (element.contextTagNum() == SUPPORTED_SAMPLE_RATES_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.Array) {
+          ArrayType castingValue = element.value(ArrayType.class);
+          supportedSampleRates = castingValue.map((elementcastingValue) -> elementcastingValue.value(Long.class));
+        }
+      } else if (element.contextTagNum() == SUPPORTED_BIT_DEPTHS_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.Array) {
+          ArrayType castingValue = element.value(ArrayType.class);
+          supportedBitDepths = castingValue.map((elementcastingValue) -> elementcastingValue.value(Long.class));
+        }
+      }
+    }
+    return new CameraAvStreamManagementClusterAudioCapabilitiesStruct(
+      maxNumberOfChannels,
+      supportedCodecs,
+      supportedSampleRates,
+      supportedBitDepths
+    );
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder output = new StringBuilder();
+    output.append("CameraAvStreamManagementClusterAudioCapabilitiesStruct {\n");
+    output.append("\tmaxNumberOfChannels: ");
+    output.append(maxNumberOfChannels);
+    output.append("\n");
+    output.append("\tsupportedCodecs: ");
+    output.append(supportedCodecs);
+    output.append("\n");
+    output.append("\tsupportedSampleRates: ");
+    output.append(supportedSampleRates);
+    output.append("\n");
+    output.append("\tsupportedBitDepths: ");
+    output.append(supportedBitDepths);
+    output.append("\n");
+    output.append("}\n");
+    return output.toString();
+  }
+}
+public static class CameraAvStreamManagementClusterAudioStreamStruct {
+  public Integer audioStreamID;
+  public Integer streamType;
+  public Integer audioCodec;
+  public Integer channelCount;
+  public Long sampleRate;
+  public Long bitRate;
+  public Integer bitDepth;
+  public Integer referenceCount;
+  private static final long AUDIO_STREAM_ID_ID = 0L;
+  private static final long STREAM_TYPE_ID = 1L;
+  private static final long AUDIO_CODEC_ID = 2L;
+  private static final long CHANNEL_COUNT_ID = 3L;
+  private static final long SAMPLE_RATE_ID = 4L;
+  private static final long BIT_RATE_ID = 5L;
+  private static final long BIT_DEPTH_ID = 6L;
+  private static final long REFERENCE_COUNT_ID = 7L;
+
+  public CameraAvStreamManagementClusterAudioStreamStruct(
+    Integer audioStreamID,
+    Integer streamType,
+    Integer audioCodec,
+    Integer channelCount,
+    Long sampleRate,
+    Long bitRate,
+    Integer bitDepth,
+    Integer referenceCount
+  ) {
+    this.audioStreamID = audioStreamID;
+    this.streamType = streamType;
+    this.audioCodec = audioCodec;
+    this.channelCount = channelCount;
+    this.sampleRate = sampleRate;
+    this.bitRate = bitRate;
+    this.bitDepth = bitDepth;
+    this.referenceCount = referenceCount;
+  }
+
+  public StructType encodeTlv() {
+    ArrayList<StructElement> values = new ArrayList<>();
+    values.add(new StructElement(AUDIO_STREAM_ID_ID, new UIntType(audioStreamID)));
+    values.add(new StructElement(STREAM_TYPE_ID, new UIntType(streamType)));
+    values.add(new StructElement(AUDIO_CODEC_ID, new UIntType(audioCodec)));
+    values.add(new StructElement(CHANNEL_COUNT_ID, new UIntType(channelCount)));
+    values.add(new StructElement(SAMPLE_RATE_ID, new UIntType(sampleRate)));
+    values.add(new StructElement(BIT_RATE_ID, new UIntType(bitRate)));
+    values.add(new StructElement(BIT_DEPTH_ID, new UIntType(bitDepth)));
+    values.add(new StructElement(REFERENCE_COUNT_ID, new UIntType(referenceCount)));
+
+    return new StructType(values);
+  }
+
+  public static CameraAvStreamManagementClusterAudioStreamStruct decodeTlv(BaseTLVType tlvValue) {
+    if (tlvValue == null || tlvValue.type() != TLVType.Struct) {
+      return null;
+    }
+    Integer audioStreamID = null;
+    Integer streamType = null;
+    Integer audioCodec = null;
+    Integer channelCount = null;
+    Long sampleRate = null;
+    Long bitRate = null;
+    Integer bitDepth = null;
+    Integer referenceCount = null;
+    for (StructElement element: ((StructType)tlvValue).value()) {
+      if (element.contextTagNum() == AUDIO_STREAM_ID_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          audioStreamID = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == STREAM_TYPE_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          streamType = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == AUDIO_CODEC_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          audioCodec = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == CHANNEL_COUNT_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          channelCount = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == SAMPLE_RATE_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          sampleRate = castingValue.value(Long.class);
+        }
+      } else if (element.contextTagNum() == BIT_RATE_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          bitRate = castingValue.value(Long.class);
+        }
+      } else if (element.contextTagNum() == BIT_DEPTH_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          bitDepth = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == REFERENCE_COUNT_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          referenceCount = castingValue.value(Integer.class);
+        }
+      }
+    }
+    return new CameraAvStreamManagementClusterAudioStreamStruct(
+      audioStreamID,
+      streamType,
+      audioCodec,
+      channelCount,
+      sampleRate,
+      bitRate,
+      bitDepth,
+      referenceCount
+    );
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder output = new StringBuilder();
+    output.append("CameraAvStreamManagementClusterAudioStreamStruct {\n");
+    output.append("\taudioStreamID: ");
+    output.append(audioStreamID);
+    output.append("\n");
+    output.append("\tstreamType: ");
+    output.append(streamType);
+    output.append("\n");
+    output.append("\taudioCodec: ");
+    output.append(audioCodec);
+    output.append("\n");
+    output.append("\tchannelCount: ");
+    output.append(channelCount);
+    output.append("\n");
+    output.append("\tsampleRate: ");
+    output.append(sampleRate);
+    output.append("\n");
+    output.append("\tbitRate: ");
+    output.append(bitRate);
+    output.append("\n");
+    output.append("\tbitDepth: ");
+    output.append(bitDepth);
+    output.append("\n");
+    output.append("\treferenceCount: ");
+    output.append(referenceCount);
+    output.append("\n");
+    output.append("}\n");
+    return output.toString();
+  }
+}
+public static class CameraAvStreamManagementClusterPerStreamStruct {
+  public Integer streamID;
+  public Boolean onOff;
+  private static final long STREAM_ID_ID = 0L;
+  private static final long ON_OFF_ID = 1L;
+
+  public CameraAvStreamManagementClusterPerStreamStruct(
+    Integer streamID,
+    Boolean onOff
+  ) {
+    this.streamID = streamID;
+    this.onOff = onOff;
+  }
+
+  public StructType encodeTlv() {
+    ArrayList<StructElement> values = new ArrayList<>();
+    values.add(new StructElement(STREAM_ID_ID, new UIntType(streamID)));
+    values.add(new StructElement(ON_OFF_ID, new BooleanType(onOff)));
+
+    return new StructType(values);
+  }
+
+  public static CameraAvStreamManagementClusterPerStreamStruct decodeTlv(BaseTLVType tlvValue) {
+    if (tlvValue == null || tlvValue.type() != TLVType.Struct) {
+      return null;
+    }
+    Integer streamID = null;
+    Boolean onOff = null;
+    for (StructElement element: ((StructType)tlvValue).value()) {
+      if (element.contextTagNum() == STREAM_ID_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          streamID = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == ON_OFF_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.Boolean) {
+          BooleanType castingValue = element.value(BooleanType.class);
+          onOff = castingValue.value(Boolean.class);
+        }
+      }
+    }
+    return new CameraAvStreamManagementClusterPerStreamStruct(
+      streamID,
+      onOff
+    );
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder output = new StringBuilder();
+    output.append("CameraAvStreamManagementClusterPerStreamStruct {\n");
+    output.append("\tstreamID: ");
+    output.append(streamID);
+    output.append("\n");
+    output.append("\tonOff: ");
+    output.append(onOff);
+    output.append("\n");
+    output.append("}\n");
+    return output.toString();
+  }
+}
+public static class CameraAvStreamManagementClusterRateDistortionTradeOffPointsStruct {
+  public Integer codec;
+  public Object resolution;
+  public Long minBitRate;
+  private static final long CODEC_ID = 0L;
+  private static final long RESOLUTION_ID = 1L;
+  private static final long MIN_BIT_RATE_ID = 2L;
+
+  public CameraAvStreamManagementClusterRateDistortionTradeOffPointsStruct(
+    Integer codec,
+    Object resolution,
+    Long minBitRate
+  ) {
+    this.codec = codec;
+    this.resolution = resolution;
+    this.minBitRate = minBitRate;
+  }
+
+  public StructType encodeTlv() {
+    ArrayList<StructElement> values = new ArrayList<>();
+    values.add(new StructElement(CODEC_ID, new UIntType(codec)));
+    values.add(new StructElement(RESOLUTION_ID, new AnyType(resolution)));
+    values.add(new StructElement(MIN_BIT_RATE_ID, new UIntType(minBitRate)));
+
+    return new StructType(values);
+  }
+
+  public static CameraAvStreamManagementClusterRateDistortionTradeOffPointsStruct decodeTlv(BaseTLVType tlvValue) {
+    if (tlvValue == null || tlvValue.type() != TLVType.Struct) {
+      return null;
+    }
+    Integer codec = null;
+    Object resolution = null;
+    Long minBitRate = null;
+    for (StructElement element: ((StructType)tlvValue).value()) {
+      if (element.contextTagNum() == CODEC_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          codec = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == RESOLUTION_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.Any) {
+          AnyType castingValue = element.value(AnyType.class);
+          resolution = castingValue.value(Object.class);
+        }
+      } else if (element.contextTagNum() == MIN_BIT_RATE_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          minBitRate = castingValue.value(Long.class);
+        }
+      }
+    }
+    return new CameraAvStreamManagementClusterRateDistortionTradeOffPointsStruct(
+      codec,
+      resolution,
+      minBitRate
+    );
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder output = new StringBuilder();
+    output.append("CameraAvStreamManagementClusterRateDistortionTradeOffPointsStruct {\n");
+    output.append("\tcodec: ");
+    output.append(codec);
+    output.append("\n");
+    output.append("\tresolution: ");
+    output.append(resolution);
+    output.append("\n");
+    output.append("\tminBitRate: ");
+    output.append(minBitRate);
+    output.append("\n");
+    output.append("}\n");
+    return output.toString();
+  }
+}
+public static class CameraAvStreamManagementClusterSnapshotParamsStruct {
+  public Object resolution;
+  public Integer maxFrameRate;
+  public Integer imageCodec;
+  private static final long RESOLUTION_ID = 0L;
+  private static final long MAX_FRAME_RATE_ID = 1L;
+  private static final long IMAGE_CODEC_ID = 2L;
+
+  public CameraAvStreamManagementClusterSnapshotParamsStruct(
+    Object resolution,
+    Integer maxFrameRate,
+    Integer imageCodec
+  ) {
+    this.resolution = resolution;
+    this.maxFrameRate = maxFrameRate;
+    this.imageCodec = imageCodec;
+  }
+
+  public StructType encodeTlv() {
+    ArrayList<StructElement> values = new ArrayList<>();
+    values.add(new StructElement(RESOLUTION_ID, new AnyType(resolution)));
+    values.add(new StructElement(MAX_FRAME_RATE_ID, new UIntType(maxFrameRate)));
+    values.add(new StructElement(IMAGE_CODEC_ID, new UIntType(imageCodec)));
+
+    return new StructType(values);
+  }
+
+  public static CameraAvStreamManagementClusterSnapshotParamsStruct decodeTlv(BaseTLVType tlvValue) {
+    if (tlvValue == null || tlvValue.type() != TLVType.Struct) {
+      return null;
+    }
+    Object resolution = null;
+    Integer maxFrameRate = null;
+    Integer imageCodec = null;
+    for (StructElement element: ((StructType)tlvValue).value()) {
+      if (element.contextTagNum() == RESOLUTION_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.Any) {
+          AnyType castingValue = element.value(AnyType.class);
+          resolution = castingValue.value(Object.class);
+        }
+      } else if (element.contextTagNum() == MAX_FRAME_RATE_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          maxFrameRate = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == IMAGE_CODEC_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          imageCodec = castingValue.value(Integer.class);
+        }
+      }
+    }
+    return new CameraAvStreamManagementClusterSnapshotParamsStruct(
+      resolution,
+      maxFrameRate,
+      imageCodec
+    );
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder output = new StringBuilder();
+    output.append("CameraAvStreamManagementClusterSnapshotParamsStruct {\n");
+    output.append("\tresolution: ");
+    output.append(resolution);
+    output.append("\n");
+    output.append("\tmaxFrameRate: ");
+    output.append(maxFrameRate);
+    output.append("\n");
+    output.append("\timageCodec: ");
+    output.append(imageCodec);
+    output.append("\n");
+    output.append("}\n");
+    return output.toString();
+  }
+}
+public static class CameraAvStreamManagementClusterSnapshotStreamStruct {
+  public Integer snapshotStreamID;
+  public Integer imageCodec;
+  public Integer frameRate;
+  public Long bitRate;
+  public Object minResolution;
+  public Object maxResolution;
+  public Integer quality;
+  public Integer referenceCount;
+  private static final long SNAPSHOT_STREAM_ID_ID = 0L;
+  private static final long IMAGE_CODEC_ID = 1L;
+  private static final long FRAME_RATE_ID = 2L;
+  private static final long BIT_RATE_ID = 3L;
+  private static final long MIN_RESOLUTION_ID = 4L;
+  private static final long MAX_RESOLUTION_ID = 5L;
+  private static final long QUALITY_ID = 6L;
+  private static final long REFERENCE_COUNT_ID = 7L;
+
+  public CameraAvStreamManagementClusterSnapshotStreamStruct(
+    Integer snapshotStreamID,
+    Integer imageCodec,
+    Integer frameRate,
+    Long bitRate,
+    Object minResolution,
+    Object maxResolution,
+    Integer quality,
+    Integer referenceCount
+  ) {
+    this.snapshotStreamID = snapshotStreamID;
+    this.imageCodec = imageCodec;
+    this.frameRate = frameRate;
+    this.bitRate = bitRate;
+    this.minResolution = minResolution;
+    this.maxResolution = maxResolution;
+    this.quality = quality;
+    this.referenceCount = referenceCount;
+  }
+
+  public StructType encodeTlv() {
+    ArrayList<StructElement> values = new ArrayList<>();
+    values.add(new StructElement(SNAPSHOT_STREAM_ID_ID, new UIntType(snapshotStreamID)));
+    values.add(new StructElement(IMAGE_CODEC_ID, new UIntType(imageCodec)));
+    values.add(new StructElement(FRAME_RATE_ID, new UIntType(frameRate)));
+    values.add(new StructElement(BIT_RATE_ID, new UIntType(bitRate)));
+    values.add(new StructElement(MIN_RESOLUTION_ID, new AnyType(minResolution)));
+    values.add(new StructElement(MAX_RESOLUTION_ID, new AnyType(maxResolution)));
+    values.add(new StructElement(QUALITY_ID, new UIntType(quality)));
+    values.add(new StructElement(REFERENCE_COUNT_ID, new UIntType(referenceCount)));
+
+    return new StructType(values);
+  }
+
+  public static CameraAvStreamManagementClusterSnapshotStreamStruct decodeTlv(BaseTLVType tlvValue) {
+    if (tlvValue == null || tlvValue.type() != TLVType.Struct) {
+      return null;
+    }
+    Integer snapshotStreamID = null;
+    Integer imageCodec = null;
+    Integer frameRate = null;
+    Long bitRate = null;
+    Object minResolution = null;
+    Object maxResolution = null;
+    Integer quality = null;
+    Integer referenceCount = null;
+    for (StructElement element: ((StructType)tlvValue).value()) {
+      if (element.contextTagNum() == SNAPSHOT_STREAM_ID_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          snapshotStreamID = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == IMAGE_CODEC_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          imageCodec = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == FRAME_RATE_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          frameRate = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == BIT_RATE_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          bitRate = castingValue.value(Long.class);
+        }
+      } else if (element.contextTagNum() == MIN_RESOLUTION_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.Any) {
+          AnyType castingValue = element.value(AnyType.class);
+          minResolution = castingValue.value(Object.class);
+        }
+      } else if (element.contextTagNum() == MAX_RESOLUTION_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.Any) {
+          AnyType castingValue = element.value(AnyType.class);
+          maxResolution = castingValue.value(Object.class);
+        }
+      } else if (element.contextTagNum() == QUALITY_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          quality = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == REFERENCE_COUNT_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          referenceCount = castingValue.value(Integer.class);
+        }
+      }
+    }
+    return new CameraAvStreamManagementClusterSnapshotStreamStruct(
+      snapshotStreamID,
+      imageCodec,
+      frameRate,
+      bitRate,
+      minResolution,
+      maxResolution,
+      quality,
+      referenceCount
+    );
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder output = new StringBuilder();
+    output.append("CameraAvStreamManagementClusterSnapshotStreamStruct {\n");
+    output.append("\tsnapshotStreamID: ");
+    output.append(snapshotStreamID);
+    output.append("\n");
+    output.append("\timageCodec: ");
+    output.append(imageCodec);
+    output.append("\n");
+    output.append("\tframeRate: ");
+    output.append(frameRate);
+    output.append("\n");
+    output.append("\tbitRate: ");
+    output.append(bitRate);
+    output.append("\n");
+    output.append("\tminResolution: ");
+    output.append(minResolution);
+    output.append("\n");
+    output.append("\tmaxResolution: ");
+    output.append(maxResolution);
+    output.append("\n");
+    output.append("\tquality: ");
+    output.append(quality);
+    output.append("\n");
+    output.append("\treferenceCount: ");
+    output.append(referenceCount);
+    output.append("\n");
+    output.append("}\n");
+    return output.toString();
+  }
+}
+public static class CameraAvStreamManagementClusterVideoSensorParamsStruct {
+  public Integer sensorWidth;
+  public Integer sensorHeight;
+  public Boolean HDRCapable;
+  public Integer maxFPS;
+  public Integer maxHDRFPS;
+  private static final long SENSOR_WIDTH_ID = 0L;
+  private static final long SENSOR_HEIGHT_ID = 1L;
+  private static final long HDR_CAPABLE_ID = 2L;
+  private static final long MAX_FPS_ID = 3L;
+  private static final long MAX_HDRFPS_ID = 4L;
+
+  public CameraAvStreamManagementClusterVideoSensorParamsStruct(
+    Integer sensorWidth,
+    Integer sensorHeight,
+    Boolean HDRCapable,
+    Integer maxFPS,
+    Integer maxHDRFPS
+  ) {
+    this.sensorWidth = sensorWidth;
+    this.sensorHeight = sensorHeight;
+    this.HDRCapable = HDRCapable;
+    this.maxFPS = maxFPS;
+    this.maxHDRFPS = maxHDRFPS;
+  }
+
+  public StructType encodeTlv() {
+    ArrayList<StructElement> values = new ArrayList<>();
+    values.add(new StructElement(SENSOR_WIDTH_ID, new UIntType(sensorWidth)));
+    values.add(new StructElement(SENSOR_HEIGHT_ID, new UIntType(sensorHeight)));
+    values.add(new StructElement(HDR_CAPABLE_ID, new BooleanType(HDRCapable)));
+    values.add(new StructElement(MAX_FPS_ID, new UIntType(maxFPS)));
+    values.add(new StructElement(MAX_HDRFPS_ID, new UIntType(maxHDRFPS)));
+
+    return new StructType(values);
+  }
+
+  public static CameraAvStreamManagementClusterVideoSensorParamsStruct decodeTlv(BaseTLVType tlvValue) {
+    if (tlvValue == null || tlvValue.type() != TLVType.Struct) {
+      return null;
+    }
+    Integer sensorWidth = null;
+    Integer sensorHeight = null;
+    Boolean HDRCapable = null;
+    Integer maxFPS = null;
+    Integer maxHDRFPS = null;
+    for (StructElement element: ((StructType)tlvValue).value()) {
+      if (element.contextTagNum() == SENSOR_WIDTH_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          sensorWidth = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == SENSOR_HEIGHT_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          sensorHeight = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == HDR_CAPABLE_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.Boolean) {
+          BooleanType castingValue = element.value(BooleanType.class);
+          HDRCapable = castingValue.value(Boolean.class);
+        }
+      } else if (element.contextTagNum() == MAX_FPS_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          maxFPS = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == MAX_HDRFPS_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          maxHDRFPS = castingValue.value(Integer.class);
+        }
+      }
+    }
+    return new CameraAvStreamManagementClusterVideoSensorParamsStruct(
+      sensorWidth,
+      sensorHeight,
+      HDRCapable,
+      maxFPS,
+      maxHDRFPS
+    );
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder output = new StringBuilder();
+    output.append("CameraAvStreamManagementClusterVideoSensorParamsStruct {\n");
+    output.append("\tsensorWidth: ");
+    output.append(sensorWidth);
+    output.append("\n");
+    output.append("\tsensorHeight: ");
+    output.append(sensorHeight);
+    output.append("\n");
+    output.append("\tHDRCapable: ");
+    output.append(HDRCapable);
+    output.append("\n");
+    output.append("\tmaxFPS: ");
+    output.append(maxFPS);
+    output.append("\n");
+    output.append("\tmaxHDRFPS: ");
+    output.append(maxHDRFPS);
+    output.append("\n");
+    output.append("}\n");
+    return output.toString();
+  }
+}
+public static class CameraAvStreamManagementClusterVideoStreamStruct {
+  public Integer videoStreamID;
+  public Integer streamType;
+  public Integer videoCodec;
+  public Integer minFrameRate;
+  public Integer maxFrameRate;
+  public Object minResolution;
+  public Object maxResolution;
+  public Integer minBitRate;
+  public Integer maxBitRate;
+  public Integer minFragmentLen;
+  public Integer maxFragmentLen;
+  public Integer referenceCount;
+  private static final long VIDEO_STREAM_ID_ID = 0L;
+  private static final long STREAM_TYPE_ID = 1L;
+  private static final long VIDEO_CODEC_ID = 2L;
+  private static final long MIN_FRAME_RATE_ID = 3L;
+  private static final long MAX_FRAME_RATE_ID = 4L;
+  private static final long MIN_RESOLUTION_ID = 5L;
+  private static final long MAX_RESOLUTION_ID = 6L;
+  private static final long MIN_BIT_RATE_ID = 7L;
+  private static final long MAX_BIT_RATE_ID = 8L;
+  private static final long MIN_FRAGMENT_LEN_ID = 9L;
+  private static final long MAX_FRAGMENT_LEN_ID = 10L;
+  private static final long REFERENCE_COUNT_ID = 11L;
+
+  public CameraAvStreamManagementClusterVideoStreamStruct(
+    Integer videoStreamID,
+    Integer streamType,
+    Integer videoCodec,
+    Integer minFrameRate,
+    Integer maxFrameRate,
+    Object minResolution,
+    Object maxResolution,
+    Integer minBitRate,
+    Integer maxBitRate,
+    Integer minFragmentLen,
+    Integer maxFragmentLen,
+    Integer referenceCount
+  ) {
+    this.videoStreamID = videoStreamID;
+    this.streamType = streamType;
+    this.videoCodec = videoCodec;
+    this.minFrameRate = minFrameRate;
+    this.maxFrameRate = maxFrameRate;
+    this.minResolution = minResolution;
+    this.maxResolution = maxResolution;
+    this.minBitRate = minBitRate;
+    this.maxBitRate = maxBitRate;
+    this.minFragmentLen = minFragmentLen;
+    this.maxFragmentLen = maxFragmentLen;
+    this.referenceCount = referenceCount;
+  }
+
+  public StructType encodeTlv() {
+    ArrayList<StructElement> values = new ArrayList<>();
+    values.add(new StructElement(VIDEO_STREAM_ID_ID, new UIntType(videoStreamID)));
+    values.add(new StructElement(STREAM_TYPE_ID, new UIntType(streamType)));
+    values.add(new StructElement(VIDEO_CODEC_ID, new UIntType(videoCodec)));
+    values.add(new StructElement(MIN_FRAME_RATE_ID, new UIntType(minFrameRate)));
+    values.add(new StructElement(MAX_FRAME_RATE_ID, new UIntType(maxFrameRate)));
+    values.add(new StructElement(MIN_RESOLUTION_ID, new AnyType(minResolution)));
+    values.add(new StructElement(MAX_RESOLUTION_ID, new AnyType(maxResolution)));
+    values.add(new StructElement(MIN_BIT_RATE_ID, new UIntType(minBitRate)));
+    values.add(new StructElement(MAX_BIT_RATE_ID, new UIntType(maxBitRate)));
+    values.add(new StructElement(MIN_FRAGMENT_LEN_ID, new UIntType(minFragmentLen)));
+    values.add(new StructElement(MAX_FRAGMENT_LEN_ID, new UIntType(maxFragmentLen)));
+    values.add(new StructElement(REFERENCE_COUNT_ID, new UIntType(referenceCount)));
+
+    return new StructType(values);
+  }
+
+  public static CameraAvStreamManagementClusterVideoStreamStruct decodeTlv(BaseTLVType tlvValue) {
+    if (tlvValue == null || tlvValue.type() != TLVType.Struct) {
+      return null;
+    }
+    Integer videoStreamID = null;
+    Integer streamType = null;
+    Integer videoCodec = null;
+    Integer minFrameRate = null;
+    Integer maxFrameRate = null;
+    Object minResolution = null;
+    Object maxResolution = null;
+    Integer minBitRate = null;
+    Integer maxBitRate = null;
+    Integer minFragmentLen = null;
+    Integer maxFragmentLen = null;
+    Integer referenceCount = null;
+    for (StructElement element: ((StructType)tlvValue).value()) {
+      if (element.contextTagNum() == VIDEO_STREAM_ID_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          videoStreamID = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == STREAM_TYPE_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          streamType = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == VIDEO_CODEC_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          videoCodec = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == MIN_FRAME_RATE_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          minFrameRate = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == MAX_FRAME_RATE_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          maxFrameRate = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == MIN_RESOLUTION_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.Any) {
+          AnyType castingValue = element.value(AnyType.class);
+          minResolution = castingValue.value(Object.class);
+        }
+      } else if (element.contextTagNum() == MAX_RESOLUTION_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.Any) {
+          AnyType castingValue = element.value(AnyType.class);
+          maxResolution = castingValue.value(Object.class);
+        }
+      } else if (element.contextTagNum() == MIN_BIT_RATE_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          minBitRate = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == MAX_BIT_RATE_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          maxBitRate = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == MIN_FRAGMENT_LEN_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          minFragmentLen = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == MAX_FRAGMENT_LEN_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          maxFragmentLen = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == REFERENCE_COUNT_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          referenceCount = castingValue.value(Integer.class);
+        }
+      }
+    }
+    return new CameraAvStreamManagementClusterVideoStreamStruct(
+      videoStreamID,
+      streamType,
+      videoCodec,
+      minFrameRate,
+      maxFrameRate,
+      minResolution,
+      maxResolution,
+      minBitRate,
+      maxBitRate,
+      minFragmentLen,
+      maxFragmentLen,
+      referenceCount
+    );
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder output = new StringBuilder();
+    output.append("CameraAvStreamManagementClusterVideoStreamStruct {\n");
+    output.append("\tvideoStreamID: ");
+    output.append(videoStreamID);
+    output.append("\n");
+    output.append("\tstreamType: ");
+    output.append(streamType);
+    output.append("\n");
+    output.append("\tvideoCodec: ");
+    output.append(videoCodec);
+    output.append("\n");
+    output.append("\tminFrameRate: ");
+    output.append(minFrameRate);
+    output.append("\n");
+    output.append("\tmaxFrameRate: ");
+    output.append(maxFrameRate);
+    output.append("\n");
+    output.append("\tminResolution: ");
+    output.append(minResolution);
+    output.append("\n");
+    output.append("\tmaxResolution: ");
+    output.append(maxResolution);
+    output.append("\n");
+    output.append("\tminBitRate: ");
+    output.append(minBitRate);
+    output.append("\n");
+    output.append("\tmaxBitRate: ");
+    output.append(maxBitRate);
+    output.append("\n");
+    output.append("\tminFragmentLen: ");
+    output.append(minFragmentLen);
+    output.append("\n");
+    output.append("\tmaxFragmentLen: ");
+    output.append(maxFragmentLen);
+    output.append("\n");
+    output.append("\treferenceCount: ");
+    output.append(referenceCount);
+    output.append("\n");
+    output.append("}\n");
+    return output.toString();
+  }
+}
+public static class CameraAvStreamManagementClusterViewportStruct {
+  public Integer x1;
+  public Integer y1;
+  public Integer x2;
+  public Integer y2;
+  private static final long X1_ID = 0L;
+  private static final long Y1_ID = 1L;
+  private static final long X2_ID = 2L;
+  private static final long Y2_ID = 3L;
+
+  public CameraAvStreamManagementClusterViewportStruct(
+    Integer x1,
+    Integer y1,
+    Integer x2,
+    Integer y2
+  ) {
+    this.x1 = x1;
+    this.y1 = y1;
+    this.x2 = x2;
+    this.y2 = y2;
+  }
+
+  public StructType encodeTlv() {
+    ArrayList<StructElement> values = new ArrayList<>();
+    values.add(new StructElement(X1_ID, new UIntType(x1)));
+    values.add(new StructElement(Y1_ID, new UIntType(y1)));
+    values.add(new StructElement(X2_ID, new UIntType(x2)));
+    values.add(new StructElement(Y2_ID, new UIntType(y2)));
+
+    return new StructType(values);
+  }
+
+  public static CameraAvStreamManagementClusterViewportStruct decodeTlv(BaseTLVType tlvValue) {
+    if (tlvValue == null || tlvValue.type() != TLVType.Struct) {
+      return null;
+    }
+    Integer x1 = null;
+    Integer y1 = null;
+    Integer x2 = null;
+    Integer y2 = null;
+    for (StructElement element: ((StructType)tlvValue).value()) {
+      if (element.contextTagNum() == X1_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          x1 = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == Y1_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          y1 = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == X2_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          x2 = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == Y2_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          y2 = castingValue.value(Integer.class);
+        }
+      }
+    }
+    return new CameraAvStreamManagementClusterViewportStruct(
+      x1,
+      y1,
+      x2,
+      y2
+    );
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder output = new StringBuilder();
+    output.append("CameraAvStreamManagementClusterViewportStruct {\n");
+    output.append("\tx1: ");
+    output.append(x1);
+    output.append("\n");
+    output.append("\ty1: ");
+    output.append(y1);
+    output.append("\n");
+    output.append("\tx2: ");
+    output.append(x2);
+    output.append("\n");
+    output.append("\ty2: ");
+    output.append(y2);
+    output.append("\n");
+    output.append("}\n");
+    return output.toString();
+  }
+}
+public static class CameraAvSettingsUserLevelManagementClusterMPTZStruct {
+  public @Nullable Optional<Integer> MPan;
+  public @Nullable Optional<Integer> MTilt;
+  public @Nullable Optional<Integer> MZoom;
+  private static final long M_PAN_ID = 0L;
+  private static final long M_TILT_ID = 1L;
+  private static final long M_ZOOM_ID = 2L;
+
+  public CameraAvSettingsUserLevelManagementClusterMPTZStruct(
+    @Nullable Optional<Integer> MPan,
+    @Nullable Optional<Integer> MTilt,
+    @Nullable Optional<Integer> MZoom
+  ) {
+    this.MPan = MPan;
+    this.MTilt = MTilt;
+    this.MZoom = MZoom;
+  }
+
+  public StructType encodeTlv() {
+    ArrayList<StructElement> values = new ArrayList<>();
+    values.add(new StructElement(M_PAN_ID, MPan != null ? MPan.<BaseTLVType>map((nonOptionalMPan) -> new IntType(nonOptionalMPan)).orElse(new EmptyType()) : new NullType()));
+    values.add(new StructElement(M_TILT_ID, MTilt != null ? MTilt.<BaseTLVType>map((nonOptionalMTilt) -> new IntType(nonOptionalMTilt)).orElse(new EmptyType()) : new NullType()));
+    values.add(new StructElement(M_ZOOM_ID, MZoom != null ? MZoom.<BaseTLVType>map((nonOptionalMZoom) -> new UIntType(nonOptionalMZoom)).orElse(new EmptyType()) : new NullType()));
+
+    return new StructType(values);
+  }
+
+  public static CameraAvSettingsUserLevelManagementClusterMPTZStruct decodeTlv(BaseTLVType tlvValue) {
+    if (tlvValue == null || tlvValue.type() != TLVType.Struct) {
+      return null;
+    }
+    @Nullable Optional<Integer> MPan = null;
+    @Nullable Optional<Integer> MTilt = null;
+    @Nullable Optional<Integer> MZoom = null;
+    for (StructElement element: ((StructType)tlvValue).value()) {
+      if (element.contextTagNum() == M_PAN_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.Int) {
+          IntType castingValue = element.value(IntType.class);
+          MPan = Optional.of(castingValue.value(Integer.class));
+        }
+      } else if (element.contextTagNum() == M_TILT_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.Int) {
+          IntType castingValue = element.value(IntType.class);
+          MTilt = Optional.of(castingValue.value(Integer.class));
+        }
+      } else if (element.contextTagNum() == M_ZOOM_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          MZoom = Optional.of(castingValue.value(Integer.class));
+        }
+      }
+    }
+    return new CameraAvSettingsUserLevelManagementClusterMPTZStruct(
+      MPan,
+      MTilt,
+      MZoom
+    );
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder output = new StringBuilder();
+    output.append("CameraAvSettingsUserLevelManagementClusterMPTZStruct {\n");
+    output.append("\tMPan: ");
+    output.append(MPan);
+    output.append("\n");
+    output.append("\tMTilt: ");
+    output.append(MTilt);
+    output.append("\n");
+    output.append("\tMZoom: ");
+    output.append(MZoom);
+    output.append("\n");
+    output.append("}\n");
+    return output.toString();
+  }
+}
+public static class CameraAvSettingsUserLevelManagementClusterPerStreamStruct {
+  public Integer streamID;
+  public Boolean onOff;
+  private static final long STREAM_ID_ID = 0L;
+  private static final long ON_OFF_ID = 1L;
+
+  public CameraAvSettingsUserLevelManagementClusterPerStreamStruct(
+    Integer streamID,
+    Boolean onOff
+  ) {
+    this.streamID = streamID;
+    this.onOff = onOff;
+  }
+
+  public StructType encodeTlv() {
+    ArrayList<StructElement> values = new ArrayList<>();
+    values.add(new StructElement(STREAM_ID_ID, new UIntType(streamID)));
+    values.add(new StructElement(ON_OFF_ID, new BooleanType(onOff)));
+
+    return new StructType(values);
+  }
+
+  public static CameraAvSettingsUserLevelManagementClusterPerStreamStruct decodeTlv(BaseTLVType tlvValue) {
+    if (tlvValue == null || tlvValue.type() != TLVType.Struct) {
+      return null;
+    }
+    Integer streamID = null;
+    Boolean onOff = null;
+    for (StructElement element: ((StructType)tlvValue).value()) {
+      if (element.contextTagNum() == STREAM_ID_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          streamID = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == ON_OFF_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.Boolean) {
+          BooleanType castingValue = element.value(BooleanType.class);
+          onOff = castingValue.value(Boolean.class);
+        }
+      }
+    }
+    return new CameraAvSettingsUserLevelManagementClusterPerStreamStruct(
+      streamID,
+      onOff
+    );
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder output = new StringBuilder();
+    output.append("CameraAvSettingsUserLevelManagementClusterPerStreamStruct {\n");
+    output.append("\tstreamID: ");
+    output.append(streamID);
+    output.append("\n");
+    output.append("\tonOff: ");
+    output.append(onOff);
+    output.append("\n");
+    output.append("}\n");
+    return output.toString();
+  }
+}
+public static class CameraAvSettingsUserLevelManagementClusterViewportStruct {
+  public Integer x1;
+  public Integer y1;
+  public Integer x2;
+  public Integer y2;
+  private static final long X1_ID = 0L;
+  private static final long Y1_ID = 1L;
+  private static final long X2_ID = 2L;
+  private static final long Y2_ID = 3L;
+
+  public CameraAvSettingsUserLevelManagementClusterViewportStruct(
+    Integer x1,
+    Integer y1,
+    Integer x2,
+    Integer y2
+  ) {
+    this.x1 = x1;
+    this.y1 = y1;
+    this.x2 = x2;
+    this.y2 = y2;
+  }
+
+  public StructType encodeTlv() {
+    ArrayList<StructElement> values = new ArrayList<>();
+    values.add(new StructElement(X1_ID, new UIntType(x1)));
+    values.add(new StructElement(Y1_ID, new UIntType(y1)));
+    values.add(new StructElement(X2_ID, new UIntType(x2)));
+    values.add(new StructElement(Y2_ID, new UIntType(y2)));
+
+    return new StructType(values);
+  }
+
+  public static CameraAvSettingsUserLevelManagementClusterViewportStruct decodeTlv(BaseTLVType tlvValue) {
+    if (tlvValue == null || tlvValue.type() != TLVType.Struct) {
+      return null;
+    }
+    Integer x1 = null;
+    Integer y1 = null;
+    Integer x2 = null;
+    Integer y2 = null;
+    for (StructElement element: ((StructType)tlvValue).value()) {
+      if (element.contextTagNum() == X1_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          x1 = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == Y1_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          y1 = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == X2_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          x2 = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == Y2_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          y2 = castingValue.value(Integer.class);
+        }
+      }
+    }
+    return new CameraAvSettingsUserLevelManagementClusterViewportStruct(
+      x1,
+      y1,
+      x2,
+      y2
+    );
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder output = new StringBuilder();
+    output.append("CameraAvSettingsUserLevelManagementClusterViewportStruct {\n");
+    output.append("\tx1: ");
+    output.append(x1);
+    output.append("\n");
+    output.append("\ty1: ");
+    output.append(y1);
+    output.append("\n");
+    output.append("\tx2: ");
+    output.append(x2);
+    output.append("\n");
+    output.append("\ty2: ");
+    output.append(y2);
+    output.append("\n");
+    output.append("}\n");
+    return output.toString();
+  }
+}
+public static class WebRTCTransportProviderClusterICEServerStruct {
+  public ArrayList<String> urls;
+  public Optional<String> username;
+  public Optional<String> credential;
+  public Optional<Integer> caid;
+  private static final long URLS_ID = 1L;
+  private static final long USERNAME_ID = 2L;
+  private static final long CREDENTIAL_ID = 3L;
+  private static final long CAID_ID = 4L;
+
+  public WebRTCTransportProviderClusterICEServerStruct(
+    ArrayList<String> urls,
+    Optional<String> username,
+    Optional<String> credential,
+    Optional<Integer> caid
+  ) {
+    this.urls = urls;
+    this.username = username;
+    this.credential = credential;
+    this.caid = caid;
+  }
+
+  public StructType encodeTlv() {
+    ArrayList<StructElement> values = new ArrayList<>();
+    values.add(new StructElement(URLS_ID, ArrayType.generateArrayType(urls, (elementurls) -> new StringType(elementurls))));
+    values.add(new StructElement(USERNAME_ID, username.<BaseTLVType>map((nonOptionalusername) -> new StringType(nonOptionalusername)).orElse(new EmptyType())));
+    values.add(new StructElement(CREDENTIAL_ID, credential.<BaseTLVType>map((nonOptionalcredential) -> new StringType(nonOptionalcredential)).orElse(new EmptyType())));
+    values.add(new StructElement(CAID_ID, caid.<BaseTLVType>map((nonOptionalcaid) -> new UIntType(nonOptionalcaid)).orElse(new EmptyType())));
+
+    return new StructType(values);
+  }
+
+  public static WebRTCTransportProviderClusterICEServerStruct decodeTlv(BaseTLVType tlvValue) {
+    if (tlvValue == null || tlvValue.type() != TLVType.Struct) {
+      return null;
+    }
+    ArrayList<String> urls = null;
+    Optional<String> username = Optional.empty();
+    Optional<String> credential = Optional.empty();
+    Optional<Integer> caid = Optional.empty();
+    for (StructElement element: ((StructType)tlvValue).value()) {
+      if (element.contextTagNum() == URLS_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.Array) {
+          ArrayType castingValue = element.value(ArrayType.class);
+          urls = castingValue.map((elementcastingValue) -> elementcastingValue.value(String.class));
+        }
+      } else if (element.contextTagNum() == USERNAME_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.String) {
+          StringType castingValue = element.value(StringType.class);
+          username = Optional.of(castingValue.value(String.class));
+        }
+      } else if (element.contextTagNum() == CREDENTIAL_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.String) {
+          StringType castingValue = element.value(StringType.class);
+          credential = Optional.of(castingValue.value(String.class));
+        }
+      } else if (element.contextTagNum() == CAID_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          caid = Optional.of(castingValue.value(Integer.class));
+        }
+      }
+    }
+    return new WebRTCTransportProviderClusterICEServerStruct(
+      urls,
+      username,
+      credential,
+      caid
+    );
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder output = new StringBuilder();
+    output.append("WebRTCTransportProviderClusterICEServerStruct {\n");
+    output.append("\turls: ");
+    output.append(urls);
+    output.append("\n");
+    output.append("\tusername: ");
+    output.append(username);
+    output.append("\n");
+    output.append("\tcredential: ");
+    output.append(credential);
+    output.append("\n");
+    output.append("\tcaid: ");
+    output.append(caid);
+    output.append("\n");
+    output.append("}\n");
+    return output.toString();
+  }
+}
+public static class WebRTCTransportProviderClusterWebRTCSessionStruct {
+  public Integer id;
+  public Long peerNodeId;
+  public Integer peerFabricIndex;
+  public Integer streamType;
+  public @Nullable Integer videoStreamID;
+  public @Nullable Integer audioStreamID;
+  public Integer metadataOptions;
+  private static final long ID_ID = 1L;
+  private static final long PEER_NODE_ID_ID = 2L;
+  private static final long PEER_FABRIC_INDEX_ID = 3L;
+  private static final long STREAM_TYPE_ID = 4L;
+  private static final long VIDEO_STREAM_ID_ID = 5L;
+  private static final long AUDIO_STREAM_ID_ID = 6L;
+  private static final long METADATA_OPTIONS_ID = 7L;
+
+  public WebRTCTransportProviderClusterWebRTCSessionStruct(
+    Integer id,
+    Long peerNodeId,
+    Integer peerFabricIndex,
+    Integer streamType,
+    @Nullable Integer videoStreamID,
+    @Nullable Integer audioStreamID,
+    Integer metadataOptions
+  ) {
+    this.id = id;
+    this.peerNodeId = peerNodeId;
+    this.peerFabricIndex = peerFabricIndex;
+    this.streamType = streamType;
+    this.videoStreamID = videoStreamID;
+    this.audioStreamID = audioStreamID;
+    this.metadataOptions = metadataOptions;
+  }
+
+  public StructType encodeTlv() {
+    ArrayList<StructElement> values = new ArrayList<>();
+    values.add(new StructElement(ID_ID, new UIntType(id)));
+    values.add(new StructElement(PEER_NODE_ID_ID, new UIntType(peerNodeId)));
+    values.add(new StructElement(PEER_FABRIC_INDEX_ID, new UIntType(peerFabricIndex)));
+    values.add(new StructElement(STREAM_TYPE_ID, new UIntType(streamType)));
+    values.add(new StructElement(VIDEO_STREAM_ID_ID, videoStreamID != null ? new UIntType(videoStreamID) : new NullType()));
+    values.add(new StructElement(AUDIO_STREAM_ID_ID, audioStreamID != null ? new UIntType(audioStreamID) : new NullType()));
+    values.add(new StructElement(METADATA_OPTIONS_ID, new UIntType(metadataOptions)));
+
+    return new StructType(values);
+  }
+
+  public static WebRTCTransportProviderClusterWebRTCSessionStruct decodeTlv(BaseTLVType tlvValue) {
+    if (tlvValue == null || tlvValue.type() != TLVType.Struct) {
+      return null;
+    }
+    Integer id = null;
+    Long peerNodeId = null;
+    Integer peerFabricIndex = null;
+    Integer streamType = null;
+    @Nullable Integer videoStreamID = null;
+    @Nullable Integer audioStreamID = null;
+    Integer metadataOptions = null;
+    for (StructElement element: ((StructType)tlvValue).value()) {
+      if (element.contextTagNum() == ID_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          id = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == PEER_NODE_ID_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          peerNodeId = castingValue.value(Long.class);
+        }
+      } else if (element.contextTagNum() == PEER_FABRIC_INDEX_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          peerFabricIndex = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == STREAM_TYPE_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          streamType = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == VIDEO_STREAM_ID_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          videoStreamID = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == AUDIO_STREAM_ID_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          audioStreamID = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == METADATA_OPTIONS_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          metadataOptions = castingValue.value(Integer.class);
+        }
+      }
+    }
+    return new WebRTCTransportProviderClusterWebRTCSessionStruct(
+      id,
+      peerNodeId,
+      peerFabricIndex,
+      streamType,
+      videoStreamID,
+      audioStreamID,
+      metadataOptions
+    );
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder output = new StringBuilder();
+    output.append("WebRTCTransportProviderClusterWebRTCSessionStruct {\n");
+    output.append("\tid: ");
+    output.append(id);
+    output.append("\n");
+    output.append("\tpeerNodeId: ");
+    output.append(peerNodeId);
+    output.append("\n");
+    output.append("\tpeerFabricIndex: ");
+    output.append(peerFabricIndex);
+    output.append("\n");
+    output.append("\tstreamType: ");
+    output.append(streamType);
+    output.append("\n");
+    output.append("\tvideoStreamID: ");
+    output.append(videoStreamID);
+    output.append("\n");
+    output.append("\taudioStreamID: ");
+    output.append(audioStreamID);
+    output.append("\n");
+    output.append("\tmetadataOptions: ");
+    output.append(metadataOptions);
+    output.append("\n");
+    output.append("}\n");
+    return output.toString();
+  }
+}
+public static class WebRTCTransportRequestorClusterICEServerStruct {
+  public ArrayList<String> urls;
+  public Optional<String> username;
+  public Optional<String> credential;
+  public Optional<Integer> caid;
+  private static final long URLS_ID = 1L;
+  private static final long USERNAME_ID = 2L;
+  private static final long CREDENTIAL_ID = 3L;
+  private static final long CAID_ID = 4L;
+
+  public WebRTCTransportRequestorClusterICEServerStruct(
+    ArrayList<String> urls,
+    Optional<String> username,
+    Optional<String> credential,
+    Optional<Integer> caid
+  ) {
+    this.urls = urls;
+    this.username = username;
+    this.credential = credential;
+    this.caid = caid;
+  }
+
+  public StructType encodeTlv() {
+    ArrayList<StructElement> values = new ArrayList<>();
+    values.add(new StructElement(URLS_ID, ArrayType.generateArrayType(urls, (elementurls) -> new StringType(elementurls))));
+    values.add(new StructElement(USERNAME_ID, username.<BaseTLVType>map((nonOptionalusername) -> new StringType(nonOptionalusername)).orElse(new EmptyType())));
+    values.add(new StructElement(CREDENTIAL_ID, credential.<BaseTLVType>map((nonOptionalcredential) -> new StringType(nonOptionalcredential)).orElse(new EmptyType())));
+    values.add(new StructElement(CAID_ID, caid.<BaseTLVType>map((nonOptionalcaid) -> new UIntType(nonOptionalcaid)).orElse(new EmptyType())));
+
+    return new StructType(values);
+  }
+
+  public static WebRTCTransportRequestorClusterICEServerStruct decodeTlv(BaseTLVType tlvValue) {
+    if (tlvValue == null || tlvValue.type() != TLVType.Struct) {
+      return null;
+    }
+    ArrayList<String> urls = null;
+    Optional<String> username = Optional.empty();
+    Optional<String> credential = Optional.empty();
+    Optional<Integer> caid = Optional.empty();
+    for (StructElement element: ((StructType)tlvValue).value()) {
+      if (element.contextTagNum() == URLS_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.Array) {
+          ArrayType castingValue = element.value(ArrayType.class);
+          urls = castingValue.map((elementcastingValue) -> elementcastingValue.value(String.class));
+        }
+      } else if (element.contextTagNum() == USERNAME_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.String) {
+          StringType castingValue = element.value(StringType.class);
+          username = Optional.of(castingValue.value(String.class));
+        }
+      } else if (element.contextTagNum() == CREDENTIAL_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.String) {
+          StringType castingValue = element.value(StringType.class);
+          credential = Optional.of(castingValue.value(String.class));
+        }
+      } else if (element.contextTagNum() == CAID_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          caid = Optional.of(castingValue.value(Integer.class));
+        }
+      }
+    }
+    return new WebRTCTransportRequestorClusterICEServerStruct(
+      urls,
+      username,
+      credential,
+      caid
+    );
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder output = new StringBuilder();
+    output.append("WebRTCTransportRequestorClusterICEServerStruct {\n");
+    output.append("\turls: ");
+    output.append(urls);
+    output.append("\n");
+    output.append("\tusername: ");
+    output.append(username);
+    output.append("\n");
+    output.append("\tcredential: ");
+    output.append(credential);
+    output.append("\n");
+    output.append("\tcaid: ");
+    output.append(caid);
+    output.append("\n");
+    output.append("}\n");
+    return output.toString();
+  }
+}
+public static class WebRTCTransportRequestorClusterWebRTCSessionStruct {
+  public Integer id;
+  public Long peerNodeId;
+  public Integer peerFabricIndex;
+  public Integer streamType;
+  public @Nullable Integer videoStreamID;
+  public @Nullable Integer audioStreamID;
+  public Integer metadataOptions;
+  private static final long ID_ID = 1L;
+  private static final long PEER_NODE_ID_ID = 2L;
+  private static final long PEER_FABRIC_INDEX_ID = 3L;
+  private static final long STREAM_TYPE_ID = 4L;
+  private static final long VIDEO_STREAM_ID_ID = 5L;
+  private static final long AUDIO_STREAM_ID_ID = 6L;
+  private static final long METADATA_OPTIONS_ID = 7L;
+
+  public WebRTCTransportRequestorClusterWebRTCSessionStruct(
+    Integer id,
+    Long peerNodeId,
+    Integer peerFabricIndex,
+    Integer streamType,
+    @Nullable Integer videoStreamID,
+    @Nullable Integer audioStreamID,
+    Integer metadataOptions
+  ) {
+    this.id = id;
+    this.peerNodeId = peerNodeId;
+    this.peerFabricIndex = peerFabricIndex;
+    this.streamType = streamType;
+    this.videoStreamID = videoStreamID;
+    this.audioStreamID = audioStreamID;
+    this.metadataOptions = metadataOptions;
+  }
+
+  public StructType encodeTlv() {
+    ArrayList<StructElement> values = new ArrayList<>();
+    values.add(new StructElement(ID_ID, new UIntType(id)));
+    values.add(new StructElement(PEER_NODE_ID_ID, new UIntType(peerNodeId)));
+    values.add(new StructElement(PEER_FABRIC_INDEX_ID, new UIntType(peerFabricIndex)));
+    values.add(new StructElement(STREAM_TYPE_ID, new UIntType(streamType)));
+    values.add(new StructElement(VIDEO_STREAM_ID_ID, videoStreamID != null ? new UIntType(videoStreamID) : new NullType()));
+    values.add(new StructElement(AUDIO_STREAM_ID_ID, audioStreamID != null ? new UIntType(audioStreamID) : new NullType()));
+    values.add(new StructElement(METADATA_OPTIONS_ID, new UIntType(metadataOptions)));
+
+    return new StructType(values);
+  }
+
+  public static WebRTCTransportRequestorClusterWebRTCSessionStruct decodeTlv(BaseTLVType tlvValue) {
+    if (tlvValue == null || tlvValue.type() != TLVType.Struct) {
+      return null;
+    }
+    Integer id = null;
+    Long peerNodeId = null;
+    Integer peerFabricIndex = null;
+    Integer streamType = null;
+    @Nullable Integer videoStreamID = null;
+    @Nullable Integer audioStreamID = null;
+    Integer metadataOptions = null;
+    for (StructElement element: ((StructType)tlvValue).value()) {
+      if (element.contextTagNum() == ID_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          id = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == PEER_NODE_ID_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          peerNodeId = castingValue.value(Long.class);
+        }
+      } else if (element.contextTagNum() == PEER_FABRIC_INDEX_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          peerFabricIndex = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == STREAM_TYPE_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          streamType = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == VIDEO_STREAM_ID_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          videoStreamID = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == AUDIO_STREAM_ID_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          audioStreamID = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == METADATA_OPTIONS_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          metadataOptions = castingValue.value(Integer.class);
+        }
+      }
+    }
+    return new WebRTCTransportRequestorClusterWebRTCSessionStruct(
+      id,
+      peerNodeId,
+      peerFabricIndex,
+      streamType,
+      videoStreamID,
+      audioStreamID,
+      metadataOptions
+    );
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder output = new StringBuilder();
+    output.append("WebRTCTransportRequestorClusterWebRTCSessionStruct {\n");
+    output.append("\tid: ");
+    output.append(id);
+    output.append("\n");
+    output.append("\tpeerNodeId: ");
+    output.append(peerNodeId);
+    output.append("\n");
+    output.append("\tpeerFabricIndex: ");
+    output.append(peerFabricIndex);
+    output.append("\n");
+    output.append("\tstreamType: ");
+    output.append(streamType);
+    output.append("\n");
+    output.append("\tvideoStreamID: ");
+    output.append(videoStreamID);
+    output.append("\n");
+    output.append("\taudioStreamID: ");
+    output.append(audioStreamID);
+    output.append("\n");
+    output.append("\tmetadataOptions: ");
+    output.append(metadataOptions);
+    output.append("\n");
+    output.append("}\n");
+    return output.toString();
+  }
+}
+public static class PushAvStreamTransportClusterPushAVStreamTransportMotionTriggerTimeControlStruct {
+  public Integer initialDuration;
+  public Integer augmentationDuration;
+  public Long maxDuration;
+  public Integer blindDuration;
+  private static final long INITIAL_DURATION_ID = 0L;
+  private static final long AUGMENTATION_DURATION_ID = 1L;
+  private static final long MAX_DURATION_ID = 2L;
+  private static final long BLIND_DURATION_ID = 3L;
+
+  public PushAvStreamTransportClusterPushAVStreamTransportMotionTriggerTimeControlStruct(
+    Integer initialDuration,
+    Integer augmentationDuration,
+    Long maxDuration,
+    Integer blindDuration
+  ) {
+    this.initialDuration = initialDuration;
+    this.augmentationDuration = augmentationDuration;
+    this.maxDuration = maxDuration;
+    this.blindDuration = blindDuration;
+  }
+
+  public StructType encodeTlv() {
+    ArrayList<StructElement> values = new ArrayList<>();
+    values.add(new StructElement(INITIAL_DURATION_ID, new UIntType(initialDuration)));
+    values.add(new StructElement(AUGMENTATION_DURATION_ID, new UIntType(augmentationDuration)));
+    values.add(new StructElement(MAX_DURATION_ID, new UIntType(maxDuration)));
+    values.add(new StructElement(BLIND_DURATION_ID, new UIntType(blindDuration)));
+
+    return new StructType(values);
+  }
+
+  public static PushAvStreamTransportClusterPushAVStreamTransportMotionTriggerTimeControlStruct decodeTlv(BaseTLVType tlvValue) {
+    if (tlvValue == null || tlvValue.type() != TLVType.Struct) {
+      return null;
+    }
+    Integer initialDuration = null;
+    Integer augmentationDuration = null;
+    Long maxDuration = null;
+    Integer blindDuration = null;
+    for (StructElement element: ((StructType)tlvValue).value()) {
+      if (element.contextTagNum() == INITIAL_DURATION_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          initialDuration = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == AUGMENTATION_DURATION_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          augmentationDuration = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == MAX_DURATION_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          maxDuration = castingValue.value(Long.class);
+        }
+      } else if (element.contextTagNum() == BLIND_DURATION_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          blindDuration = castingValue.value(Integer.class);
+        }
+      }
+    }
+    return new PushAvStreamTransportClusterPushAVStreamTransportMotionTriggerTimeControlStruct(
+      initialDuration,
+      augmentationDuration,
+      maxDuration,
+      blindDuration
+    );
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder output = new StringBuilder();
+    output.append("PushAvStreamTransportClusterPushAVStreamTransportMotionTriggerTimeControlStruct {\n");
+    output.append("\tinitialDuration: ");
+    output.append(initialDuration);
+    output.append("\n");
+    output.append("\taugmentationDuration: ");
+    output.append(augmentationDuration);
+    output.append("\n");
+    output.append("\tmaxDuration: ");
+    output.append(maxDuration);
+    output.append("\n");
+    output.append("\tblindDuration: ");
+    output.append(blindDuration);
+    output.append("\n");
+    output.append("}\n");
+    return output.toString();
+  }
+}
+public static class PushAvStreamTransportClusterPushAVStreamTransportMetadataOptionsStruct {
+  public Integer multiplexing;
+  public Boolean includeMotionZones;
+  public Boolean enableMetadataPrivacySensitive;
+  private static final long MULTIPLEXING_ID = 0L;
+  private static final long INCLUDE_MOTION_ZONES_ID = 1L;
+  private static final long ENABLE_METADATA_PRIVACY_SENSITIVE_ID = 2L;
+
+  public PushAvStreamTransportClusterPushAVStreamTransportMetadataOptionsStruct(
+    Integer multiplexing,
+    Boolean includeMotionZones,
+    Boolean enableMetadataPrivacySensitive
+  ) {
+    this.multiplexing = multiplexing;
+    this.includeMotionZones = includeMotionZones;
+    this.enableMetadataPrivacySensitive = enableMetadataPrivacySensitive;
+  }
+
+  public StructType encodeTlv() {
+    ArrayList<StructElement> values = new ArrayList<>();
+    values.add(new StructElement(MULTIPLEXING_ID, new UIntType(multiplexing)));
+    values.add(new StructElement(INCLUDE_MOTION_ZONES_ID, new BooleanType(includeMotionZones)));
+    values.add(new StructElement(ENABLE_METADATA_PRIVACY_SENSITIVE_ID, new BooleanType(enableMetadataPrivacySensitive)));
+
+    return new StructType(values);
+  }
+
+  public static PushAvStreamTransportClusterPushAVStreamTransportMetadataOptionsStruct decodeTlv(BaseTLVType tlvValue) {
+    if (tlvValue == null || tlvValue.type() != TLVType.Struct) {
+      return null;
+    }
+    Integer multiplexing = null;
+    Boolean includeMotionZones = null;
+    Boolean enableMetadataPrivacySensitive = null;
+    for (StructElement element: ((StructType)tlvValue).value()) {
+      if (element.contextTagNum() == MULTIPLEXING_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          multiplexing = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == INCLUDE_MOTION_ZONES_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.Boolean) {
+          BooleanType castingValue = element.value(BooleanType.class);
+          includeMotionZones = castingValue.value(Boolean.class);
+        }
+      } else if (element.contextTagNum() == ENABLE_METADATA_PRIVACY_SENSITIVE_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.Boolean) {
+          BooleanType castingValue = element.value(BooleanType.class);
+          enableMetadataPrivacySensitive = castingValue.value(Boolean.class);
+        }
+      }
+    }
+    return new PushAvStreamTransportClusterPushAVStreamTransportMetadataOptionsStruct(
+      multiplexing,
+      includeMotionZones,
+      enableMetadataPrivacySensitive
+    );
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder output = new StringBuilder();
+    output.append("PushAvStreamTransportClusterPushAVStreamTransportMetadataOptionsStruct {\n");
+    output.append("\tmultiplexing: ");
+    output.append(multiplexing);
+    output.append("\n");
+    output.append("\tincludeMotionZones: ");
+    output.append(includeMotionZones);
+    output.append("\n");
+    output.append("\tenableMetadataPrivacySensitive: ");
+    output.append(enableMetadataPrivacySensitive);
+    output.append("\n");
+    output.append("}\n");
+    return output.toString();
+  }
+}
+public static class PushAvStreamTransportClusterPushAVStreamTransportTriggerOptionsStruct {
+  public Integer triggerType;
+  public @Nullable Optional<ArrayList<Integer>> motionZones;
+  public @Nullable Optional<Integer> motionSensitivity;
+  public @Nullable Optional<ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportMotionTriggerTimeControlStruct> motionTimeControl;
+  public @Nullable Optional<Integer> activationReason;
+  private static final long TRIGGER_TYPE_ID = 0L;
+  private static final long MOTION_ZONES_ID = 1L;
+  private static final long MOTION_SENSITIVITY_ID = 2L;
+  private static final long MOTION_TIME_CONTROL_ID = 3L;
+  private static final long ACTIVATION_REASON_ID = 4L;
+
+  public PushAvStreamTransportClusterPushAVStreamTransportTriggerOptionsStruct(
+    Integer triggerType,
+    @Nullable Optional<ArrayList<Integer>> motionZones,
+    @Nullable Optional<Integer> motionSensitivity,
+    @Nullable Optional<ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportMotionTriggerTimeControlStruct> motionTimeControl,
+    @Nullable Optional<Integer> activationReason
+  ) {
+    this.triggerType = triggerType;
+    this.motionZones = motionZones;
+    this.motionSensitivity = motionSensitivity;
+    this.motionTimeControl = motionTimeControl;
+    this.activationReason = activationReason;
+  }
+
+  public StructType encodeTlv() {
+    ArrayList<StructElement> values = new ArrayList<>();
+    values.add(new StructElement(TRIGGER_TYPE_ID, new UIntType(triggerType)));
+    values.add(new StructElement(MOTION_ZONES_ID, motionZones != null ? motionZones.<BaseTLVType>map((nonOptionalmotionZones) -> ArrayType.generateArrayType(nonOptionalmotionZones, (elementnonOptionalmotionZones) -> new UIntType(elementnonOptionalmotionZones))).orElse(new EmptyType()) : new NullType()));
+    values.add(new StructElement(MOTION_SENSITIVITY_ID, motionSensitivity != null ? motionSensitivity.<BaseTLVType>map((nonOptionalmotionSensitivity) -> new UIntType(nonOptionalmotionSensitivity)).orElse(new EmptyType()) : new NullType()));
+    values.add(new StructElement(MOTION_TIME_CONTROL_ID, motionTimeControl != null ? motionTimeControl.<BaseTLVType>map((nonOptionalmotionTimeControl) -> nonOptionalmotionTimeControl.encodeTlv()).orElse(new EmptyType()) : new NullType()));
+    values.add(new StructElement(ACTIVATION_REASON_ID, activationReason != null ? activationReason.<BaseTLVType>map((nonOptionalactivationReason) -> new UIntType(nonOptionalactivationReason)).orElse(new EmptyType()) : new NullType()));
+
+    return new StructType(values);
+  }
+
+  public static PushAvStreamTransportClusterPushAVStreamTransportTriggerOptionsStruct decodeTlv(BaseTLVType tlvValue) {
+    if (tlvValue == null || tlvValue.type() != TLVType.Struct) {
+      return null;
+    }
+    Integer triggerType = null;
+    @Nullable Optional<ArrayList<Integer>> motionZones = null;
+    @Nullable Optional<Integer> motionSensitivity = null;
+    @Nullable Optional<ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportMotionTriggerTimeControlStruct> motionTimeControl = null;
+    @Nullable Optional<Integer> activationReason = null;
+    for (StructElement element: ((StructType)tlvValue).value()) {
+      if (element.contextTagNum() == TRIGGER_TYPE_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          triggerType = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == MOTION_ZONES_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.Array) {
+          ArrayType castingValue = element.value(ArrayType.class);
+          motionZones = Optional.of(castingValue.map((elementcastingValue) -> elementcastingValue.value(Integer.class)));
+        }
+      } else if (element.contextTagNum() == MOTION_SENSITIVITY_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          motionSensitivity = Optional.of(castingValue.value(Integer.class));
+        }
+      } else if (element.contextTagNum() == MOTION_TIME_CONTROL_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.Struct) {
+          StructType castingValue = element.value(StructType.class);
+          motionTimeControl = Optional.of(ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportMotionTriggerTimeControlStruct.decodeTlv(castingValue));
+        }
+      } else if (element.contextTagNum() == ACTIVATION_REASON_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          activationReason = Optional.of(castingValue.value(Integer.class));
+        }
+      }
+    }
+    return new PushAvStreamTransportClusterPushAVStreamTransportTriggerOptionsStruct(
+      triggerType,
+      motionZones,
+      motionSensitivity,
+      motionTimeControl,
+      activationReason
+    );
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder output = new StringBuilder();
+    output.append("PushAvStreamTransportClusterPushAVStreamTransportTriggerOptionsStruct {\n");
+    output.append("\ttriggerType: ");
+    output.append(triggerType);
+    output.append("\n");
+    output.append("\tmotionZones: ");
+    output.append(motionZones);
+    output.append("\n");
+    output.append("\tmotionSensitivity: ");
+    output.append(motionSensitivity);
+    output.append("\n");
+    output.append("\tmotionTimeControl: ");
+    output.append(motionTimeControl);
+    output.append("\n");
+    output.append("\tactivationReason: ");
+    output.append(activationReason);
+    output.append("\n");
+    output.append("}\n");
+    return output.toString();
+  }
+}
+public static class PushAvStreamTransportClusterPushAVStreamTransportCMAFContainerOptionsStruct {
+  public Integer chunkDuration;
+  public @Nullable Optional<byte[]> CENCKey;
+  private static final long CHUNK_DURATION_ID = 0L;
+  private static final long CENC_KEY_ID = 1L;
+
+  public PushAvStreamTransportClusterPushAVStreamTransportCMAFContainerOptionsStruct(
+    Integer chunkDuration,
+    @Nullable Optional<byte[]> CENCKey
+  ) {
+    this.chunkDuration = chunkDuration;
+    this.CENCKey = CENCKey;
+  }
+
+  public StructType encodeTlv() {
+    ArrayList<StructElement> values = new ArrayList<>();
+    values.add(new StructElement(CHUNK_DURATION_ID, new UIntType(chunkDuration)));
+    values.add(new StructElement(CENC_KEY_ID, CENCKey != null ? CENCKey.<BaseTLVType>map((nonOptionalCENCKey) -> new ByteArrayType(nonOptionalCENCKey)).orElse(new EmptyType()) : new NullType()));
+
+    return new StructType(values);
+  }
+
+  public static PushAvStreamTransportClusterPushAVStreamTransportCMAFContainerOptionsStruct decodeTlv(BaseTLVType tlvValue) {
+    if (tlvValue == null || tlvValue.type() != TLVType.Struct) {
+      return null;
+    }
+    Integer chunkDuration = null;
+    @Nullable Optional<byte[]> CENCKey = null;
+    for (StructElement element: ((StructType)tlvValue).value()) {
+      if (element.contextTagNum() == CHUNK_DURATION_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          chunkDuration = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == CENC_KEY_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.ByteArray) {
+          ByteArrayType castingValue = element.value(ByteArrayType.class);
+          CENCKey = Optional.of(castingValue.value(byte[].class));
+        }
+      }
+    }
+    return new PushAvStreamTransportClusterPushAVStreamTransportCMAFContainerOptionsStruct(
+      chunkDuration,
+      CENCKey
+    );
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder output = new StringBuilder();
+    output.append("PushAvStreamTransportClusterPushAVStreamTransportCMAFContainerOptionsStruct {\n");
+    output.append("\tchunkDuration: ");
+    output.append(chunkDuration);
+    output.append("\n");
+    output.append("\tCENCKey: ");
+    output.append(CENCKey.isPresent() ? Arrays.toString(CENCKey.get()) : "");
+    output.append("\n");
+    output.append("}\n");
+    return output.toString();
+  }
+}
+public static class PushAvStreamTransportClusterPushAVStreamTransportContainerOptionsStruct {
+  public Integer containerType;
+  public @Nullable Optional<ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportCMAFContainerOptionsStruct> CMAFContainerOptions;
+  private static final long CONTAINER_TYPE_ID = 0L;
+  private static final long CMAF_CONTAINER_OPTIONS_ID = 1L;
+
+  public PushAvStreamTransportClusterPushAVStreamTransportContainerOptionsStruct(
+    Integer containerType,
+    @Nullable Optional<ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportCMAFContainerOptionsStruct> CMAFContainerOptions
+  ) {
+    this.containerType = containerType;
+    this.CMAFContainerOptions = CMAFContainerOptions;
+  }
+
+  public StructType encodeTlv() {
+    ArrayList<StructElement> values = new ArrayList<>();
+    values.add(new StructElement(CONTAINER_TYPE_ID, new UIntType(containerType)));
+    values.add(new StructElement(CMAF_CONTAINER_OPTIONS_ID, CMAFContainerOptions != null ? CMAFContainerOptions.<BaseTLVType>map((nonOptionalCMAFContainerOptions) -> nonOptionalCMAFContainerOptions.encodeTlv()).orElse(new EmptyType()) : new NullType()));
+
+    return new StructType(values);
+  }
+
+  public static PushAvStreamTransportClusterPushAVStreamTransportContainerOptionsStruct decodeTlv(BaseTLVType tlvValue) {
+    if (tlvValue == null || tlvValue.type() != TLVType.Struct) {
+      return null;
+    }
+    Integer containerType = null;
+    @Nullable Optional<ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportCMAFContainerOptionsStruct> CMAFContainerOptions = null;
+    for (StructElement element: ((StructType)tlvValue).value()) {
+      if (element.contextTagNum() == CONTAINER_TYPE_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          containerType = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == CMAF_CONTAINER_OPTIONS_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.Struct) {
+          StructType castingValue = element.value(StructType.class);
+          CMAFContainerOptions = Optional.of(ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportCMAFContainerOptionsStruct.decodeTlv(castingValue));
+        }
+      }
+    }
+    return new PushAvStreamTransportClusterPushAVStreamTransportContainerOptionsStruct(
+      containerType,
+      CMAFContainerOptions
+    );
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder output = new StringBuilder();
+    output.append("PushAvStreamTransportClusterPushAVStreamTransportContainerOptionsStruct {\n");
+    output.append("\tcontainerType: ");
+    output.append(containerType);
+    output.append("\n");
+    output.append("\tCMAFContainerOptions: ");
+    output.append(CMAFContainerOptions);
+    output.append("\n");
+    output.append("}\n");
+    return output.toString();
+  }
+}
+public static class PushAvStreamTransportClusterPushAVStreamTransportOptionsStruct {
+  public Integer streamType;
+  public @Nullable Optional<Integer> videoStreamID;
+  public @Nullable Optional<Integer> audioStreamID;
+  public Integer TLSEndpointID;
+  public String url;
+  public ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportTriggerOptionsStruct triggerOptions;
+  public Integer containerFormat;
+  public Integer ingestMethod;
+  public ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportContainerOptionsStruct containerOptions;
+  public @Nullable Optional<ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportMetadataOptionsStruct> metadataOptions;
+  public @Nullable Optional<Long> expiryTime;
+  private static final long STREAM_TYPE_ID = 0L;
+  private static final long VIDEO_STREAM_ID_ID = 1L;
+  private static final long AUDIO_STREAM_ID_ID = 2L;
+  private static final long TLS_ENDPOINT_ID_ID = 3L;
+  private static final long URL_ID = 4L;
+  private static final long TRIGGER_OPTIONS_ID = 5L;
+  private static final long CONTAINER_FORMAT_ID = 6L;
+  private static final long INGEST_METHOD_ID = 7L;
+  private static final long CONTAINER_OPTIONS_ID = 8L;
+  private static final long METADATA_OPTIONS_ID = 9L;
+  private static final long EXPIRY_TIME_ID = 10L;
+
+  public PushAvStreamTransportClusterPushAVStreamTransportOptionsStruct(
+    Integer streamType,
+    @Nullable Optional<Integer> videoStreamID,
+    @Nullable Optional<Integer> audioStreamID,
+    Integer TLSEndpointID,
+    String url,
+    ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportTriggerOptionsStruct triggerOptions,
+    Integer containerFormat,
+    Integer ingestMethod,
+    ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportContainerOptionsStruct containerOptions,
+    @Nullable Optional<ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportMetadataOptionsStruct> metadataOptions,
+    @Nullable Optional<Long> expiryTime
+  ) {
+    this.streamType = streamType;
+    this.videoStreamID = videoStreamID;
+    this.audioStreamID = audioStreamID;
+    this.TLSEndpointID = TLSEndpointID;
+    this.url = url;
+    this.triggerOptions = triggerOptions;
+    this.containerFormat = containerFormat;
+    this.ingestMethod = ingestMethod;
+    this.containerOptions = containerOptions;
+    this.metadataOptions = metadataOptions;
+    this.expiryTime = expiryTime;
+  }
+
+  public StructType encodeTlv() {
+    ArrayList<StructElement> values = new ArrayList<>();
+    values.add(new StructElement(STREAM_TYPE_ID, new UIntType(streamType)));
+    values.add(new StructElement(VIDEO_STREAM_ID_ID, videoStreamID != null ? videoStreamID.<BaseTLVType>map((nonOptionalvideoStreamID) -> new UIntType(nonOptionalvideoStreamID)).orElse(new EmptyType()) : new NullType()));
+    values.add(new StructElement(AUDIO_STREAM_ID_ID, audioStreamID != null ? audioStreamID.<BaseTLVType>map((nonOptionalaudioStreamID) -> new UIntType(nonOptionalaudioStreamID)).orElse(new EmptyType()) : new NullType()));
+    values.add(new StructElement(TLS_ENDPOINT_ID_ID, new UIntType(TLSEndpointID)));
+    values.add(new StructElement(URL_ID, new StringType(url)));
+    values.add(new StructElement(TRIGGER_OPTIONS_ID, triggerOptions.encodeTlv()));
+    values.add(new StructElement(CONTAINER_FORMAT_ID, new UIntType(containerFormat)));
+    values.add(new StructElement(INGEST_METHOD_ID, new UIntType(ingestMethod)));
+    values.add(new StructElement(CONTAINER_OPTIONS_ID, containerOptions.encodeTlv()));
+    values.add(new StructElement(METADATA_OPTIONS_ID, metadataOptions != null ? metadataOptions.<BaseTLVType>map((nonOptionalmetadataOptions) -> nonOptionalmetadataOptions.encodeTlv()).orElse(new EmptyType()) : new NullType()));
+    values.add(new StructElement(EXPIRY_TIME_ID, expiryTime != null ? expiryTime.<BaseTLVType>map((nonOptionalexpiryTime) -> new UIntType(nonOptionalexpiryTime)).orElse(new EmptyType()) : new NullType()));
+
+    return new StructType(values);
+  }
+
+  public static PushAvStreamTransportClusterPushAVStreamTransportOptionsStruct decodeTlv(BaseTLVType tlvValue) {
+    if (tlvValue == null || tlvValue.type() != TLVType.Struct) {
+      return null;
+    }
+    Integer streamType = null;
+    @Nullable Optional<Integer> videoStreamID = null;
+    @Nullable Optional<Integer> audioStreamID = null;
+    Integer TLSEndpointID = null;
+    String url = null;
+    ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportTriggerOptionsStruct triggerOptions = null;
+    Integer containerFormat = null;
+    Integer ingestMethod = null;
+    ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportContainerOptionsStruct containerOptions = null;
+    @Nullable Optional<ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportMetadataOptionsStruct> metadataOptions = null;
+    @Nullable Optional<Long> expiryTime = null;
+    for (StructElement element: ((StructType)tlvValue).value()) {
+      if (element.contextTagNum() == STREAM_TYPE_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          streamType = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == VIDEO_STREAM_ID_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          videoStreamID = Optional.of(castingValue.value(Integer.class));
+        }
+      } else if (element.contextTagNum() == AUDIO_STREAM_ID_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          audioStreamID = Optional.of(castingValue.value(Integer.class));
+        }
+      } else if (element.contextTagNum() == TLS_ENDPOINT_ID_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          TLSEndpointID = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == URL_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.String) {
+          StringType castingValue = element.value(StringType.class);
+          url = castingValue.value(String.class);
+        }
+      } else if (element.contextTagNum() == TRIGGER_OPTIONS_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.Struct) {
+          StructType castingValue = element.value(StructType.class);
+          triggerOptions = ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportTriggerOptionsStruct.decodeTlv(castingValue);
+        }
+      } else if (element.contextTagNum() == CONTAINER_FORMAT_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          containerFormat = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == INGEST_METHOD_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          ingestMethod = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == CONTAINER_OPTIONS_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.Struct) {
+          StructType castingValue = element.value(StructType.class);
+          containerOptions = ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportContainerOptionsStruct.decodeTlv(castingValue);
+        }
+      } else if (element.contextTagNum() == METADATA_OPTIONS_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.Struct) {
+          StructType castingValue = element.value(StructType.class);
+          metadataOptions = Optional.of(ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportMetadataOptionsStruct.decodeTlv(castingValue));
+        }
+      } else if (element.contextTagNum() == EXPIRY_TIME_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          expiryTime = Optional.of(castingValue.value(Long.class));
+        }
+      }
+    }
+    return new PushAvStreamTransportClusterPushAVStreamTransportOptionsStruct(
+      streamType,
+      videoStreamID,
+      audioStreamID,
+      TLSEndpointID,
+      url,
+      triggerOptions,
+      containerFormat,
+      ingestMethod,
+      containerOptions,
+      metadataOptions,
+      expiryTime
+    );
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder output = new StringBuilder();
+    output.append("PushAvStreamTransportClusterPushAVStreamTransportOptionsStruct {\n");
+    output.append("\tstreamType: ");
+    output.append(streamType);
+    output.append("\n");
+    output.append("\tvideoStreamID: ");
+    output.append(videoStreamID);
+    output.append("\n");
+    output.append("\taudioStreamID: ");
+    output.append(audioStreamID);
+    output.append("\n");
+    output.append("\tTLSEndpointID: ");
+    output.append(TLSEndpointID);
+    output.append("\n");
+    output.append("\turl: ");
+    output.append(url);
+    output.append("\n");
+    output.append("\ttriggerOptions: ");
+    output.append(triggerOptions);
+    output.append("\n");
+    output.append("\tcontainerFormat: ");
+    output.append(containerFormat);
+    output.append("\n");
+    output.append("\tingestMethod: ");
+    output.append(ingestMethod);
+    output.append("\n");
+    output.append("\tcontainerOptions: ");
+    output.append(containerOptions);
+    output.append("\n");
+    output.append("\tmetadataOptions: ");
+    output.append(metadataOptions);
+    output.append("\n");
+    output.append("\texpiryTime: ");
+    output.append(expiryTime);
+    output.append("\n");
+    output.append("}\n");
+    return output.toString();
+  }
+}
+public static class PushAvStreamTransportClusterPushAVStreamConfigurationStruct {
+  public Integer connectionID;
+  public Integer streamTransportStatus;
+  public ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportOptionsStruct streamTransportOptions;
+  private static final long CONNECTION_ID_ID = 0L;
+  private static final long STREAM_TRANSPORT_STATUS_ID = 1L;
+  private static final long STREAM_TRANSPORT_OPTIONS_ID = 2L;
+
+  public PushAvStreamTransportClusterPushAVStreamConfigurationStruct(
+    Integer connectionID,
+    Integer streamTransportStatus,
+    ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportOptionsStruct streamTransportOptions
+  ) {
+    this.connectionID = connectionID;
+    this.streamTransportStatus = streamTransportStatus;
+    this.streamTransportOptions = streamTransportOptions;
+  }
+
+  public StructType encodeTlv() {
+    ArrayList<StructElement> values = new ArrayList<>();
+    values.add(new StructElement(CONNECTION_ID_ID, new UIntType(connectionID)));
+    values.add(new StructElement(STREAM_TRANSPORT_STATUS_ID, new UIntType(streamTransportStatus)));
+    values.add(new StructElement(STREAM_TRANSPORT_OPTIONS_ID, streamTransportOptions.encodeTlv()));
+
+    return new StructType(values);
+  }
+
+  public static PushAvStreamTransportClusterPushAVStreamConfigurationStruct decodeTlv(BaseTLVType tlvValue) {
+    if (tlvValue == null || tlvValue.type() != TLVType.Struct) {
+      return null;
+    }
+    Integer connectionID = null;
+    Integer streamTransportStatus = null;
+    ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportOptionsStruct streamTransportOptions = null;
+    for (StructElement element: ((StructType)tlvValue).value()) {
+      if (element.contextTagNum() == CONNECTION_ID_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          connectionID = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == STREAM_TRANSPORT_STATUS_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          streamTransportStatus = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == STREAM_TRANSPORT_OPTIONS_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.Struct) {
+          StructType castingValue = element.value(StructType.class);
+          streamTransportOptions = ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportOptionsStruct.decodeTlv(castingValue);
+        }
+      }
+    }
+    return new PushAvStreamTransportClusterPushAVStreamConfigurationStruct(
+      connectionID,
+      streamTransportStatus,
+      streamTransportOptions
+    );
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder output = new StringBuilder();
+    output.append("PushAvStreamTransportClusterPushAVStreamConfigurationStruct {\n");
+    output.append("\tconnectionID: ");
+    output.append(connectionID);
+    output.append("\n");
+    output.append("\tstreamTransportStatus: ");
+    output.append(streamTransportStatus);
+    output.append("\n");
+    output.append("\tstreamTransportOptions: ");
+    output.append(streamTransportOptions);
+    output.append("\n");
+    output.append("}\n");
+    return output.toString();
+  }
+}
+public static class ChimeClusterChimeSoundStruct {
+  public Integer chimeId;
+  public String name;
+  private static final long CHIME_ID_ID = 0L;
+  private static final long NAME_ID = 1L;
+
+  public ChimeClusterChimeSoundStruct(
+    Integer chimeId,
+    String name
+  ) {
+    this.chimeId = chimeId;
+    this.name = name;
+  }
+
+  public StructType encodeTlv() {
+    ArrayList<StructElement> values = new ArrayList<>();
+    values.add(new StructElement(CHIME_ID_ID, new UIntType(chimeId)));
+    values.add(new StructElement(NAME_ID, new StringType(name)));
+
+    return new StructType(values);
+  }
+
+  public static ChimeClusterChimeSoundStruct decodeTlv(BaseTLVType tlvValue) {
+    if (tlvValue == null || tlvValue.type() != TLVType.Struct) {
+      return null;
+    }
+    Integer chimeId = null;
+    String name = null;
+    for (StructElement element: ((StructType)tlvValue).value()) {
+      if (element.contextTagNum() == CHIME_ID_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.UInt) {
+          UIntType castingValue = element.value(UIntType.class);
+          chimeId = castingValue.value(Integer.class);
+        }
+      } else if (element.contextTagNum() == NAME_ID) {
+        if (element.value(BaseTLVType.class).type() == TLVType.String) {
+          StringType castingValue = element.value(StringType.class);
+          name = castingValue.value(String.class);
+        }
+      }
+    }
+    return new ChimeClusterChimeSoundStruct(
+      chimeId,
+      name
+    );
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder output = new StringBuilder();
+    output.append("ChimeClusterChimeSoundStruct {\n");
+    output.append("\tchimeId: ");
+    output.append(chimeId);
+    output.append("\n");
+    output.append("\tname: ");
+    output.append(name);
+    output.append("\n");
+    output.append("}\n");
+    return output.toString();
+  }
+}
 public static class EcosystemInformationClusterDeviceTypeStruct {
   public Long deviceType;
   public Integer revision;
diff --git a/src/controller/java/generated/java/chip/devicecontroller/ClusterIDMapping.java b/src/controller/java/generated/java/chip/devicecontroller/ClusterIDMapping.java
index 950e6070dff2c0..b73c9830794208 100644
--- a/src/controller/java/generated/java/chip/devicecontroller/ClusterIDMapping.java
+++ b/src/controller/java/generated/java/chip/devicecontroller/ClusterIDMapping.java
@@ -388,6 +388,24 @@ public static BaseCluster getCluster(long clusterId) {
         if (clusterId == ContentAppObserver.ID) {
             return new ContentAppObserver();
         }
+        if (clusterId == CameraAvStreamManagement.ID) {
+            return new CameraAvStreamManagement();
+        }
+        if (clusterId == CameraAvSettingsUserLevelManagement.ID) {
+            return new CameraAvSettingsUserLevelManagement();
+        }
+        if (clusterId == WebRTCTransportProvider.ID) {
+            return new WebRTCTransportProvider();
+        }
+        if (clusterId == WebRTCTransportRequestor.ID) {
+            return new WebRTCTransportRequestor();
+        }
+        if (clusterId == PushAvStreamTransport.ID) {
+            return new PushAvStreamTransport();
+        }
+        if (clusterId == Chime.ID) {
+            return new Chime();
+        }
         if (clusterId == EcosystemInformation.ID) {
             return new EcosystemInformation();
         }
@@ -17230,6 +17248,1236 @@ public long getCommandID(String name) throws IllegalArgumentException {
             return Command.valueOf(name).getID();
         }
     }
+    public static class CameraAvStreamManagement implements BaseCluster {
+        public static final long ID = 1361L;
+        public long getID() {
+            return ID;
+        }
+
+        public enum Attribute {
+            MaxConcurrentVideoEncoders(0L),
+            MaxEncodedPixelRate(1L),
+            VideoSensorParams(2L),
+            NightVisionCapable(3L),
+            MinViewPortWidth(4L),
+            MinViewPortHeight(5L),
+            RateDistortionTradeOffPoints(6L),
+            MaxPreRollBufferSize(7L),
+            MicrophoneCapabilities(8L),
+            SpeakerCapabilities(9L),
+            TwoWayTalkSupport(10L),
+            SupportedSnapshotParams(11L),
+            HDRCapable(12L),
+            MaxNetworkBandwidth(13L),
+            CurrentFrameRate(14L),
+            HDRMode(15L),
+            CurrentVideoCodecs(16L),
+            CurrentSnapshotConfig(17L),
+            FabricsUsingCamera(18L),
+            AllocatedVideoStreams(19L),
+            AllocatedAudioStreams(20L),
+            AllocatedSnapshotStreams(21L),
+            RankedVideoStreamPrioritiesList(22L),
+            SoftRecordingPrivacyModeSetting(23L),
+            SoftLivestreamPrivacyModeSetting(24L),
+            HardPrivacyMode(25L),
+            NightVision(26L),
+            NightVisionIllum(27L),
+            Awb(28L),
+            ShutterSpeed(29L),
+            Iso(30L),
+            Viewport(31L),
+            SpkrOnOff(32L),
+            SpkrVolumeLevel(33L),
+            SpkrMaxLevel(34L),
+            SpkrMinLevel(35L),
+            MicOnOff(36L),
+            MicCurrentLevel(37L),
+            MicMaxLevel(38L),
+            MicMinLevel(39L),
+            MicAGC(40L),
+            ImageRotation(41L),
+            ImageFlipHorizontal(42L),
+            ImageFlipVertical(43L),
+            LocalVideoRecordingEnabled(44L),
+            LocalSnapshotRecordingEnabled(45L),
+            StatusLight(46L),
+            StatusLightBrightness(47L),
+            DepthSensorStatus(48L),
+            WatermarkEnabled(49L),
+            OSDEnabled(50L),
+            GeneratedCommandList(65528L),
+            AcceptedCommandList(65529L),
+            EventList(65530L),
+            AttributeList(65531L),
+            FeatureMap(65532L),
+            ClusterRevision(65533L),;
+            private final long id;
+            Attribute(long id) {
+                this.id = id;
+            }
+
+            public long getID() {
+                return id;
+            }
+
+            public static Attribute value(long id) throws NoSuchFieldError {
+                for (Attribute attribute : Attribute.values()) {
+                    if (attribute.getID() == id) {
+                        return attribute;
+                    }
+                }
+                throw new NoSuchFieldError();
+            }
+        }
+
+        public enum Event {
+            VideoStreamChanged(0L),
+            AudioStreamChanged(1L),
+            SnapshotStreamChanged(2L),;
+            private final long id;
+            Event(long id) {
+                this.id = id;
+            }
+
+            public long getID() {
+                return id;
+            }
+
+            public static Event value(long id) throws NoSuchFieldError {
+                for (Event event : Event.values()) {
+                    if (event.getID() == id) {
+                        return event;
+                    }
+                }
+                throw new NoSuchFieldError();
+            }
+        }
+
+        public enum Command {
+            AudioStreamAllocate(0L),
+            AudioStreamDeallocate(2L),
+            VideoStreamAllocate(3L),
+            VideoStreamModify(5L),
+            VideoStreamDeallocate(6L),
+            SnapshotStreamAllocate(7L),
+            SnapshotStreamDeallocate(9L),
+            SetStreamPriority(10L),
+            CaptureSnapshot(11L),
+            SetViewport(13L),
+            SetImageRotation(14L),
+            SetImageFlipHorizontal(15L),
+            SetImageFlipVertical(16L),;
+            private final long id;
+            Command(long id) {
+                this.id = id;
+            }
+
+            public long getID() {
+                return id;
+            }
+
+            public static Command value(long id) throws NoSuchFieldError {
+                for (Command command : Command.values()) {
+                    if (command.getID() == id) {
+                        return command;
+                    }
+                }
+                throw new NoSuchFieldError();
+            }
+        }public enum AudioStreamAllocateCommandField {StreamType(0),AudioCodec(1),ChannelCount(2),SampleRate(3),BitRate(4),BitDepth(5),;
+                    private final int id;
+                    AudioStreamAllocateCommandField(int id) {
+                        this.id = id;
+                    }
+
+                    public int getID() {
+                        return id;
+                    }
+                    public static AudioStreamAllocateCommandField value(int id) throws NoSuchFieldError {
+                        for (AudioStreamAllocateCommandField field : AudioStreamAllocateCommandField.values()) {
+                        if (field.getID() == id) {
+                            return field;
+                        }
+                        }
+                        throw new NoSuchFieldError();
+                    }
+                }public enum AudioStreamDeallocateCommandField {AudioStreamID(0),;
+                    private final int id;
+                    AudioStreamDeallocateCommandField(int id) {
+                        this.id = id;
+                    }
+
+                    public int getID() {
+                        return id;
+                    }
+                    public static AudioStreamDeallocateCommandField value(int id) throws NoSuchFieldError {
+                        for (AudioStreamDeallocateCommandField field : AudioStreamDeallocateCommandField.values()) {
+                        if (field.getID() == id) {
+                            return field;
+                        }
+                        }
+                        throw new NoSuchFieldError();
+                    }
+                }public enum VideoStreamAllocateCommandField {StreamType(0),VideoCodec(1),MinFrameRate(2),MaxFrameRate(3),MinResolution(4),MaxResolution(5),MinBitRate(6),MaxBitRate(7),MinFragmentLen(8),MaxFragmentLen(9),;
+                    private final int id;
+                    VideoStreamAllocateCommandField(int id) {
+                        this.id = id;
+                    }
+
+                    public int getID() {
+                        return id;
+                    }
+                    public static VideoStreamAllocateCommandField value(int id) throws NoSuchFieldError {
+                        for (VideoStreamAllocateCommandField field : VideoStreamAllocateCommandField.values()) {
+                        if (field.getID() == id) {
+                            return field;
+                        }
+                        }
+                        throw new NoSuchFieldError();
+                    }
+                }public enum VideoStreamModifyCommandField {VideoStreamID(0),Resolution(1),;
+                    private final int id;
+                    VideoStreamModifyCommandField(int id) {
+                        this.id = id;
+                    }
+
+                    public int getID() {
+                        return id;
+                    }
+                    public static VideoStreamModifyCommandField value(int id) throws NoSuchFieldError {
+                        for (VideoStreamModifyCommandField field : VideoStreamModifyCommandField.values()) {
+                        if (field.getID() == id) {
+                            return field;
+                        }
+                        }
+                        throw new NoSuchFieldError();
+                    }
+                }public enum VideoStreamDeallocateCommandField {VideoStreamID(0),;
+                    private final int id;
+                    VideoStreamDeallocateCommandField(int id) {
+                        this.id = id;
+                    }
+
+                    public int getID() {
+                        return id;
+                    }
+                    public static VideoStreamDeallocateCommandField value(int id) throws NoSuchFieldError {
+                        for (VideoStreamDeallocateCommandField field : VideoStreamDeallocateCommandField.values()) {
+                        if (field.getID() == id) {
+                            return field;
+                        }
+                        }
+                        throw new NoSuchFieldError();
+                    }
+                }public enum SnapshotStreamAllocateCommandField {ImageCodec(0),FrameRate(1),BitRate(2),MinResolution(3),MaxResolution(4),Quality(5),;
+                    private final int id;
+                    SnapshotStreamAllocateCommandField(int id) {
+                        this.id = id;
+                    }
+
+                    public int getID() {
+                        return id;
+                    }
+                    public static SnapshotStreamAllocateCommandField value(int id) throws NoSuchFieldError {
+                        for (SnapshotStreamAllocateCommandField field : SnapshotStreamAllocateCommandField.values()) {
+                        if (field.getID() == id) {
+                            return field;
+                        }
+                        }
+                        throw new NoSuchFieldError();
+                    }
+                }public enum SnapshotStreamDeallocateCommandField {SnapshotStreamID(0),;
+                    private final int id;
+                    SnapshotStreamDeallocateCommandField(int id) {
+                        this.id = id;
+                    }
+
+                    public int getID() {
+                        return id;
+                    }
+                    public static SnapshotStreamDeallocateCommandField value(int id) throws NoSuchFieldError {
+                        for (SnapshotStreamDeallocateCommandField field : SnapshotStreamDeallocateCommandField.values()) {
+                        if (field.getID() == id) {
+                            return field;
+                        }
+                        }
+                        throw new NoSuchFieldError();
+                    }
+                }public enum CaptureSnapshotCommandField {SnapshotStreamID(0),RequestedResolution(1),;
+                    private final int id;
+                    CaptureSnapshotCommandField(int id) {
+                        this.id = id;
+                    }
+
+                    public int getID() {
+                        return id;
+                    }
+                    public static CaptureSnapshotCommandField value(int id) throws NoSuchFieldError {
+                        for (CaptureSnapshotCommandField field : CaptureSnapshotCommandField.values()) {
+                        if (field.getID() == id) {
+                            return field;
+                        }
+                        }
+                        throw new NoSuchFieldError();
+                    }
+                }public enum SetViewportCommandField {Viewport(0),;
+                    private final int id;
+                    SetViewportCommandField(int id) {
+                        this.id = id;
+                    }
+
+                    public int getID() {
+                        return id;
+                    }
+                    public static SetViewportCommandField value(int id) throws NoSuchFieldError {
+                        for (SetViewportCommandField field : SetViewportCommandField.values()) {
+                        if (field.getID() == id) {
+                            return field;
+                        }
+                        }
+                        throw new NoSuchFieldError();
+                    }
+                }public enum SetImageRotationCommandField {Angle(0),;
+                    private final int id;
+                    SetImageRotationCommandField(int id) {
+                        this.id = id;
+                    }
+
+                    public int getID() {
+                        return id;
+                    }
+                    public static SetImageRotationCommandField value(int id) throws NoSuchFieldError {
+                        for (SetImageRotationCommandField field : SetImageRotationCommandField.values()) {
+                        if (field.getID() == id) {
+                            return field;
+                        }
+                        }
+                        throw new NoSuchFieldError();
+                    }
+                }public enum SetImageFlipHorizontalCommandField {OnOff(0),;
+                    private final int id;
+                    SetImageFlipHorizontalCommandField(int id) {
+                        this.id = id;
+                    }
+
+                    public int getID() {
+                        return id;
+                    }
+                    public static SetImageFlipHorizontalCommandField value(int id) throws NoSuchFieldError {
+                        for (SetImageFlipHorizontalCommandField field : SetImageFlipHorizontalCommandField.values()) {
+                        if (field.getID() == id) {
+                            return field;
+                        }
+                        }
+                        throw new NoSuchFieldError();
+                    }
+                }public enum SetImageFlipVerticalCommandField {OnOff(0),;
+                    private final int id;
+                    SetImageFlipVerticalCommandField(int id) {
+                        this.id = id;
+                    }
+
+                    public int getID() {
+                        return id;
+                    }
+                    public static SetImageFlipVerticalCommandField value(int id) throws NoSuchFieldError {
+                        for (SetImageFlipVerticalCommandField field : SetImageFlipVerticalCommandField.values()) {
+                        if (field.getID() == id) {
+                            return field;
+                        }
+                        }
+                        throw new NoSuchFieldError();
+                    }
+                }@Override
+        public String getAttributeName(long id) throws NoSuchFieldError {
+            return Attribute.value(id).toString();
+        }
+
+        @Override
+        public String getEventName(long id) throws NoSuchFieldError {
+            return Event.value(id).toString();
+        }
+
+        @Override
+        public String getCommandName(long id) throws NoSuchFieldError {
+            return Command.value(id).toString();
+        }
+
+        @Override
+        public long getAttributeID(String name) throws IllegalArgumentException {
+            return Attribute.valueOf(name).getID();
+        }
+
+        @Override
+        public long getEventID(String name) throws IllegalArgumentException {
+            return Event.valueOf(name).getID();
+        }
+
+        @Override
+        public long getCommandID(String name) throws IllegalArgumentException {
+            return Command.valueOf(name).getID();
+        }
+    }
+    public static class CameraAvSettingsUserLevelManagement implements BaseCluster {
+        public static final long ID = 1362L;
+        public long getID() {
+            return ID;
+        }
+
+        public enum Attribute {
+            Mptz(0L),
+            MaxPresets(1L),
+            PresetMptzTable(2L),
+            MptzRelativeMove(3L),
+            DptzRelativeMove(4L),
+            GeneratedCommandList(65528L),
+            AcceptedCommandList(65529L),
+            EventList(65530L),
+            AttributeList(65531L),
+            FeatureMap(65532L),
+            ClusterRevision(65533L),;
+            private final long id;
+            Attribute(long id) {
+                this.id = id;
+            }
+
+            public long getID() {
+                return id;
+            }
+
+            public static Attribute value(long id) throws NoSuchFieldError {
+                for (Attribute attribute : Attribute.values()) {
+                    if (attribute.getID() == id) {
+                        return attribute;
+                    }
+                }
+                throw new NoSuchFieldError();
+            }
+        }
+
+        public enum Event {;
+            private final long id;
+            Event(long id) {
+                this.id = id;
+            }
+
+            public long getID() {
+                return id;
+            }
+
+            public static Event value(long id) throws NoSuchFieldError {
+                for (Event event : Event.values()) {
+                    if (event.getID() == id) {
+                        return event;
+                    }
+                }
+                throw new NoSuchFieldError();
+            }
+        }
+
+        public enum Command {
+            MptzSet(0L),
+            MptzRelativeMove(1L),
+            SetAsPreset(2L),
+            DptzSetViewport(3L),
+            DptzRelativeMove(4L),;
+            private final long id;
+            Command(long id) {
+                this.id = id;
+            }
+
+            public long getID() {
+                return id;
+            }
+
+            public static Command value(long id) throws NoSuchFieldError {
+                for (Command command : Command.values()) {
+                    if (command.getID() == id) {
+                        return command;
+                    }
+                }
+                throw new NoSuchFieldError();
+            }
+        }public enum MptzSetCommandField {NewPTZ(0),PresetID(1),;
+                    private final int id;
+                    MptzSetCommandField(int id) {
+                        this.id = id;
+                    }
+
+                    public int getID() {
+                        return id;
+                    }
+                    public static MptzSetCommandField value(int id) throws NoSuchFieldError {
+                        for (MptzSetCommandField field : MptzSetCommandField.values()) {
+                        if (field.getID() == id) {
+                            return field;
+                        }
+                        }
+                        throw new NoSuchFieldError();
+                    }
+                }public enum MptzRelativeMoveCommandField {Pan(0),Tilt(1),Zoom(2),;
+                    private final int id;
+                    MptzRelativeMoveCommandField(int id) {
+                        this.id = id;
+                    }
+
+                    public int getID() {
+                        return id;
+                    }
+                    public static MptzRelativeMoveCommandField value(int id) throws NoSuchFieldError {
+                        for (MptzRelativeMoveCommandField field : MptzRelativeMoveCommandField.values()) {
+                        if (field.getID() == id) {
+                            return field;
+                        }
+                        }
+                        throw new NoSuchFieldError();
+                    }
+                }public enum DptzSetViewportCommandField {VideoStreamID(0),Viewport(1),;
+                    private final int id;
+                    DptzSetViewportCommandField(int id) {
+                        this.id = id;
+                    }
+
+                    public int getID() {
+                        return id;
+                    }
+                    public static DptzSetViewportCommandField value(int id) throws NoSuchFieldError {
+                        for (DptzSetViewportCommandField field : DptzSetViewportCommandField.values()) {
+                        if (field.getID() == id) {
+                            return field;
+                        }
+                        }
+                        throw new NoSuchFieldError();
+                    }
+                }public enum DptzRelativeMoveCommandField {VideoStreamID(0),Pan(1),Tilt(2),Zoom(3),;
+                    private final int id;
+                    DptzRelativeMoveCommandField(int id) {
+                        this.id = id;
+                    }
+
+                    public int getID() {
+                        return id;
+                    }
+                    public static DptzRelativeMoveCommandField value(int id) throws NoSuchFieldError {
+                        for (DptzRelativeMoveCommandField field : DptzRelativeMoveCommandField.values()) {
+                        if (field.getID() == id) {
+                            return field;
+                        }
+                        }
+                        throw new NoSuchFieldError();
+                    }
+                }@Override
+        public String getAttributeName(long id) throws NoSuchFieldError {
+            return Attribute.value(id).toString();
+        }
+
+        @Override
+        public String getEventName(long id) throws NoSuchFieldError {
+            return Event.value(id).toString();
+        }
+
+        @Override
+        public String getCommandName(long id) throws NoSuchFieldError {
+            return Command.value(id).toString();
+        }
+
+        @Override
+        public long getAttributeID(String name) throws IllegalArgumentException {
+            return Attribute.valueOf(name).getID();
+        }
+
+        @Override
+        public long getEventID(String name) throws IllegalArgumentException {
+            return Event.valueOf(name).getID();
+        }
+
+        @Override
+        public long getCommandID(String name) throws IllegalArgumentException {
+            return Command.valueOf(name).getID();
+        }
+    }
+    public static class WebRTCTransportProvider implements BaseCluster {
+        public static final long ID = 1363L;
+        public long getID() {
+            return ID;
+        }
+
+        public enum Attribute {
+            CurrentSessions(0L),
+            GeneratedCommandList(65528L),
+            AcceptedCommandList(65529L),
+            EventList(65530L),
+            AttributeList(65531L),
+            FeatureMap(65532L),
+            ClusterRevision(65533L),;
+            private final long id;
+            Attribute(long id) {
+                this.id = id;
+            }
+
+            public long getID() {
+                return id;
+            }
+
+            public static Attribute value(long id) throws NoSuchFieldError {
+                for (Attribute attribute : Attribute.values()) {
+                    if (attribute.getID() == id) {
+                        return attribute;
+                    }
+                }
+                throw new NoSuchFieldError();
+            }
+        }
+
+        public enum Event {;
+            private final long id;
+            Event(long id) {
+                this.id = id;
+            }
+
+            public long getID() {
+                return id;
+            }
+
+            public static Event value(long id) throws NoSuchFieldError {
+                for (Event event : Event.values()) {
+                    if (event.getID() == id) {
+                        return event;
+                    }
+                }
+                throw new NoSuchFieldError();
+            }
+        }
+
+        public enum Command {
+            WebRTCSolicitOffer(1L),
+            WebRTCProvideOffer(3L),
+            WebRTCProvideAnswer(5L),
+            WebRTCProvideICECandidate(6L),
+            WebRTCEndSession(7L),;
+            private final long id;
+            Command(long id) {
+                this.id = id;
+            }
+
+            public long getID() {
+                return id;
+            }
+
+            public static Command value(long id) throws NoSuchFieldError {
+                for (Command command : Command.values()) {
+                    if (command.getID() == id) {
+                        return command;
+                    }
+                }
+                throw new NoSuchFieldError();
+            }
+        }public enum WebRTCSolicitOfferCommandField {StreamType(0),VideoStreamID(1),AudioStreamID(2),ICEServers(3),ICETransportPolicy(4),MetadataOptions(5),;
+                    private final int id;
+                    WebRTCSolicitOfferCommandField(int id) {
+                        this.id = id;
+                    }
+
+                    public int getID() {
+                        return id;
+                    }
+                    public static WebRTCSolicitOfferCommandField value(int id) throws NoSuchFieldError {
+                        for (WebRTCSolicitOfferCommandField field : WebRTCSolicitOfferCommandField.values()) {
+                        if (field.getID() == id) {
+                            return field;
+                        }
+                        }
+                        throw new NoSuchFieldError();
+                    }
+                }public enum WebRTCProvideOfferCommandField {WebRTCSessionID(0),Sdp(1),StreamType(2),VideoStreamID(3),AudioStreamID(4),ICEServers(5),ICETransportPolicy(6),MetadataOptions(7),;
+                    private final int id;
+                    WebRTCProvideOfferCommandField(int id) {
+                        this.id = id;
+                    }
+
+                    public int getID() {
+                        return id;
+                    }
+                    public static WebRTCProvideOfferCommandField value(int id) throws NoSuchFieldError {
+                        for (WebRTCProvideOfferCommandField field : WebRTCProvideOfferCommandField.values()) {
+                        if (field.getID() == id) {
+                            return field;
+                        }
+                        }
+                        throw new NoSuchFieldError();
+                    }
+                }public enum WebRTCProvideAnswerCommandField {WebRTCSessionID(0),Sdp(1),;
+                    private final int id;
+                    WebRTCProvideAnswerCommandField(int id) {
+                        this.id = id;
+                    }
+
+                    public int getID() {
+                        return id;
+                    }
+                    public static WebRTCProvideAnswerCommandField value(int id) throws NoSuchFieldError {
+                        for (WebRTCProvideAnswerCommandField field : WebRTCProvideAnswerCommandField.values()) {
+                        if (field.getID() == id) {
+                            return field;
+                        }
+                        }
+                        throw new NoSuchFieldError();
+                    }
+                }public enum WebRTCProvideICECandidateCommandField {WebRTCSessionID(0),ICECandidate(1),;
+                    private final int id;
+                    WebRTCProvideICECandidateCommandField(int id) {
+                        this.id = id;
+                    }
+
+                    public int getID() {
+                        return id;
+                    }
+                    public static WebRTCProvideICECandidateCommandField value(int id) throws NoSuchFieldError {
+                        for (WebRTCProvideICECandidateCommandField field : WebRTCProvideICECandidateCommandField.values()) {
+                        if (field.getID() == id) {
+                            return field;
+                        }
+                        }
+                        throw new NoSuchFieldError();
+                    }
+                }public enum WebRTCEndSessionCommandField {WebRTCSessionID(0),Reason(1),;
+                    private final int id;
+                    WebRTCEndSessionCommandField(int id) {
+                        this.id = id;
+                    }
+
+                    public int getID() {
+                        return id;
+                    }
+                    public static WebRTCEndSessionCommandField value(int id) throws NoSuchFieldError {
+                        for (WebRTCEndSessionCommandField field : WebRTCEndSessionCommandField.values()) {
+                        if (field.getID() == id) {
+                            return field;
+                        }
+                        }
+                        throw new NoSuchFieldError();
+                    }
+                }@Override
+        public String getAttributeName(long id) throws NoSuchFieldError {
+            return Attribute.value(id).toString();
+        }
+
+        @Override
+        public String getEventName(long id) throws NoSuchFieldError {
+            return Event.value(id).toString();
+        }
+
+        @Override
+        public String getCommandName(long id) throws NoSuchFieldError {
+            return Command.value(id).toString();
+        }
+
+        @Override
+        public long getAttributeID(String name) throws IllegalArgumentException {
+            return Attribute.valueOf(name).getID();
+        }
+
+        @Override
+        public long getEventID(String name) throws IllegalArgumentException {
+            return Event.valueOf(name).getID();
+        }
+
+        @Override
+        public long getCommandID(String name) throws IllegalArgumentException {
+            return Command.valueOf(name).getID();
+        }
+    }
+    public static class WebRTCTransportRequestor implements BaseCluster {
+        public static final long ID = 1364L;
+        public long getID() {
+            return ID;
+        }
+
+        public enum Attribute {
+            CurrentSessions(0L),
+            GeneratedCommandList(65528L),
+            AcceptedCommandList(65529L),
+            EventList(65530L),
+            AttributeList(65531L),
+            FeatureMap(65532L),
+            ClusterRevision(65533L),;
+            private final long id;
+            Attribute(long id) {
+                this.id = id;
+            }
+
+            public long getID() {
+                return id;
+            }
+
+            public static Attribute value(long id) throws NoSuchFieldError {
+                for (Attribute attribute : Attribute.values()) {
+                    if (attribute.getID() == id) {
+                        return attribute;
+                    }
+                }
+                throw new NoSuchFieldError();
+            }
+        }
+
+        public enum Event {;
+            private final long id;
+            Event(long id) {
+                this.id = id;
+            }
+
+            public long getID() {
+                return id;
+            }
+
+            public static Event value(long id) throws NoSuchFieldError {
+                for (Event event : Event.values()) {
+                    if (event.getID() == id) {
+                        return event;
+                    }
+                }
+                throw new NoSuchFieldError();
+            }
+        }
+
+        public enum Command {
+            WebRTCOffer(1L),
+            WebRTCAnswer(2L),
+            WebRTCICECandidate(3L),
+            WebRTCEnd(4L),;
+            private final long id;
+            Command(long id) {
+                this.id = id;
+            }
+
+            public long getID() {
+                return id;
+            }
+
+            public static Command value(long id) throws NoSuchFieldError {
+                for (Command command : Command.values()) {
+                    if (command.getID() == id) {
+                        return command;
+                    }
+                }
+                throw new NoSuchFieldError();
+            }
+        }public enum WebRTCOfferCommandField {WebRTCSessionID(0),Sdp(1),ICEServers(2),ICETransportPolicy(3),;
+                    private final int id;
+                    WebRTCOfferCommandField(int id) {
+                        this.id = id;
+                    }
+
+                    public int getID() {
+                        return id;
+                    }
+                    public static WebRTCOfferCommandField value(int id) throws NoSuchFieldError {
+                        for (WebRTCOfferCommandField field : WebRTCOfferCommandField.values()) {
+                        if (field.getID() == id) {
+                            return field;
+                        }
+                        }
+                        throw new NoSuchFieldError();
+                    }
+                }public enum WebRTCAnswerCommandField {WebRTCSessionID(0),Sdp(1),;
+                    private final int id;
+                    WebRTCAnswerCommandField(int id) {
+                        this.id = id;
+                    }
+
+                    public int getID() {
+                        return id;
+                    }
+                    public static WebRTCAnswerCommandField value(int id) throws NoSuchFieldError {
+                        for (WebRTCAnswerCommandField field : WebRTCAnswerCommandField.values()) {
+                        if (field.getID() == id) {
+                            return field;
+                        }
+                        }
+                        throw new NoSuchFieldError();
+                    }
+                }public enum WebRTCICECandidateCommandField {WebRTCSessionID(0),ICECandidate(1),;
+                    private final int id;
+                    WebRTCICECandidateCommandField(int id) {
+                        this.id = id;
+                    }
+
+                    public int getID() {
+                        return id;
+                    }
+                    public static WebRTCICECandidateCommandField value(int id) throws NoSuchFieldError {
+                        for (WebRTCICECandidateCommandField field : WebRTCICECandidateCommandField.values()) {
+                        if (field.getID() == id) {
+                            return field;
+                        }
+                        }
+                        throw new NoSuchFieldError();
+                    }
+                }public enum WebRTCEndCommandField {WebRTCSessionID(0),Reason(1),;
+                    private final int id;
+                    WebRTCEndCommandField(int id) {
+                        this.id = id;
+                    }
+
+                    public int getID() {
+                        return id;
+                    }
+                    public static WebRTCEndCommandField value(int id) throws NoSuchFieldError {
+                        for (WebRTCEndCommandField field : WebRTCEndCommandField.values()) {
+                        if (field.getID() == id) {
+                            return field;
+                        }
+                        }
+                        throw new NoSuchFieldError();
+                    }
+                }@Override
+        public String getAttributeName(long id) throws NoSuchFieldError {
+            return Attribute.value(id).toString();
+        }
+
+        @Override
+        public String getEventName(long id) throws NoSuchFieldError {
+            return Event.value(id).toString();
+        }
+
+        @Override
+        public String getCommandName(long id) throws NoSuchFieldError {
+            return Command.value(id).toString();
+        }
+
+        @Override
+        public long getAttributeID(String name) throws IllegalArgumentException {
+            return Attribute.valueOf(name).getID();
+        }
+
+        @Override
+        public long getEventID(String name) throws IllegalArgumentException {
+            return Event.valueOf(name).getID();
+        }
+
+        @Override
+        public long getCommandID(String name) throws IllegalArgumentException {
+            return Command.valueOf(name).getID();
+        }
+    }
+    public static class PushAvStreamTransport implements BaseCluster {
+        public static final long ID = 1365L;
+        public long getID() {
+            return ID;
+        }
+
+        public enum Attribute {
+            SupportedContainerFormats(0L),
+            SupportedIngestMethods(1L),
+            CurrentConnections(2L),
+            GeneratedCommandList(65528L),
+            AcceptedCommandList(65529L),
+            EventList(65530L),
+            AttributeList(65531L),
+            FeatureMap(65532L),
+            ClusterRevision(65533L),;
+            private final long id;
+            Attribute(long id) {
+                this.id = id;
+            }
+
+            public long getID() {
+                return id;
+            }
+
+            public static Attribute value(long id) throws NoSuchFieldError {
+                for (Attribute attribute : Attribute.values()) {
+                    if (attribute.getID() == id) {
+                        return attribute;
+                    }
+                }
+                throw new NoSuchFieldError();
+            }
+        }
+
+        public enum Event {
+            PushTransportBegin(0L),
+            PushTransportEnd(1L),;
+            private final long id;
+            Event(long id) {
+                this.id = id;
+            }
+
+            public long getID() {
+                return id;
+            }
+
+            public static Event value(long id) throws NoSuchFieldError {
+                for (Event event : Event.values()) {
+                    if (event.getID() == id) {
+                        return event;
+                    }
+                }
+                throw new NoSuchFieldError();
+            }
+        }
+
+        public enum Command {
+            AllocatePushTransport(0L),
+            DeallocatePushTransport(2L),
+            ModifyPushTransport(3L),
+            SetTransportStatus(4L),
+            ManuallyTriggerTransport(5L),
+            FindStreamConfiguration(6L),;
+            private final long id;
+            Command(long id) {
+                this.id = id;
+            }
+
+            public long getID() {
+                return id;
+            }
+
+            public static Command value(long id) throws NoSuchFieldError {
+                for (Command command : Command.values()) {
+                    if (command.getID() == id) {
+                        return command;
+                    }
+                }
+                throw new NoSuchFieldError();
+            }
+        }public enum AllocatePushTransportCommandField {StreamTransportOptions(0),;
+                    private final int id;
+                    AllocatePushTransportCommandField(int id) {
+                        this.id = id;
+                    }
+
+                    public int getID() {
+                        return id;
+                    }
+                    public static AllocatePushTransportCommandField value(int id) throws NoSuchFieldError {
+                        for (AllocatePushTransportCommandField field : AllocatePushTransportCommandField.values()) {
+                        if (field.getID() == id) {
+                            return field;
+                        }
+                        }
+                        throw new NoSuchFieldError();
+                    }
+                }public enum DeallocatePushTransportCommandField {ConnectionID(0),;
+                    private final int id;
+                    DeallocatePushTransportCommandField(int id) {
+                        this.id = id;
+                    }
+
+                    public int getID() {
+                        return id;
+                    }
+                    public static DeallocatePushTransportCommandField value(int id) throws NoSuchFieldError {
+                        for (DeallocatePushTransportCommandField field : DeallocatePushTransportCommandField.values()) {
+                        if (field.getID() == id) {
+                            return field;
+                        }
+                        }
+                        throw new NoSuchFieldError();
+                    }
+                }public enum ModifyPushTransportCommandField {ConnectionID(0),StreamTransportOptions(1),;
+                    private final int id;
+                    ModifyPushTransportCommandField(int id) {
+                        this.id = id;
+                    }
+
+                    public int getID() {
+                        return id;
+                    }
+                    public static ModifyPushTransportCommandField value(int id) throws NoSuchFieldError {
+                        for (ModifyPushTransportCommandField field : ModifyPushTransportCommandField.values()) {
+                        if (field.getID() == id) {
+                            return field;
+                        }
+                        }
+                        throw new NoSuchFieldError();
+                    }
+                }public enum SetTransportStatusCommandField {ConnectionID(0),StreamTransportStatus(1),;
+                    private final int id;
+                    SetTransportStatusCommandField(int id) {
+                        this.id = id;
+                    }
+
+                    public int getID() {
+                        return id;
+                    }
+                    public static SetTransportStatusCommandField value(int id) throws NoSuchFieldError {
+                        for (SetTransportStatusCommandField field : SetTransportStatusCommandField.values()) {
+                        if (field.getID() == id) {
+                            return field;
+                        }
+                        }
+                        throw new NoSuchFieldError();
+                    }
+                }public enum ManuallyTriggerTransportCommandField {ConnectionID(0),ActivationReason(1),TimeControl(2),;
+                    private final int id;
+                    ManuallyTriggerTransportCommandField(int id) {
+                        this.id = id;
+                    }
+
+                    public int getID() {
+                        return id;
+                    }
+                    public static ManuallyTriggerTransportCommandField value(int id) throws NoSuchFieldError {
+                        for (ManuallyTriggerTransportCommandField field : ManuallyTriggerTransportCommandField.values()) {
+                        if (field.getID() == id) {
+                            return field;
+                        }
+                        }
+                        throw new NoSuchFieldError();
+                    }
+                }public enum FindStreamConfigurationCommandField {ConnectionID(0),;
+                    private final int id;
+                    FindStreamConfigurationCommandField(int id) {
+                        this.id = id;
+                    }
+
+                    public int getID() {
+                        return id;
+                    }
+                    public static FindStreamConfigurationCommandField value(int id) throws NoSuchFieldError {
+                        for (FindStreamConfigurationCommandField field : FindStreamConfigurationCommandField.values()) {
+                        if (field.getID() == id) {
+                            return field;
+                        }
+                        }
+                        throw new NoSuchFieldError();
+                    }
+                }@Override
+        public String getAttributeName(long id) throws NoSuchFieldError {
+            return Attribute.value(id).toString();
+        }
+
+        @Override
+        public String getEventName(long id) throws NoSuchFieldError {
+            return Event.value(id).toString();
+        }
+
+        @Override
+        public String getCommandName(long id) throws NoSuchFieldError {
+            return Command.value(id).toString();
+        }
+
+        @Override
+        public long getAttributeID(String name) throws IllegalArgumentException {
+            return Attribute.valueOf(name).getID();
+        }
+
+        @Override
+        public long getEventID(String name) throws IllegalArgumentException {
+            return Event.valueOf(name).getID();
+        }
+
+        @Override
+        public long getCommandID(String name) throws IllegalArgumentException {
+            return Command.valueOf(name).getID();
+        }
+    }
+    public static class Chime implements BaseCluster {
+        public static final long ID = 1366L;
+        public long getID() {
+            return ID;
+        }
+
+        public enum Attribute {
+            InstalledChimeSounds(0L),
+            ActiveChimeSoundId(1L),
+            Enabled(2L),
+            GeneratedCommandList(65528L),
+            AcceptedCommandList(65529L),
+            EventList(65530L),
+            AttributeList(65531L),
+            FeatureMap(65532L),
+            ClusterRevision(65533L),;
+            private final long id;
+            Attribute(long id) {
+                this.id = id;
+            }
+
+            public long getID() {
+                return id;
+            }
+
+            public static Attribute value(long id) throws NoSuchFieldError {
+                for (Attribute attribute : Attribute.values()) {
+                    if (attribute.getID() == id) {
+                        return attribute;
+                    }
+                }
+                throw new NoSuchFieldError();
+            }
+        }
+
+        public enum Event {;
+            private final long id;
+            Event(long id) {
+                this.id = id;
+            }
+
+            public long getID() {
+                return id;
+            }
+
+            public static Event value(long id) throws NoSuchFieldError {
+                for (Event event : Event.values()) {
+                    if (event.getID() == id) {
+                        return event;
+                    }
+                }
+                throw new NoSuchFieldError();
+            }
+        }
+
+        public enum Command {
+            PlayChimeSound(0L),;
+            private final long id;
+            Command(long id) {
+                this.id = id;
+            }
+
+            public long getID() {
+                return id;
+            }
+
+            public static Command value(long id) throws NoSuchFieldError {
+                for (Command command : Command.values()) {
+                    if (command.getID() == id) {
+                        return command;
+                    }
+                }
+                throw new NoSuchFieldError();
+            }
+        }@Override
+        public String getAttributeName(long id) throws NoSuchFieldError {
+            return Attribute.value(id).toString();
+        }
+
+        @Override
+        public String getEventName(long id) throws NoSuchFieldError {
+            return Event.value(id).toString();
+        }
+
+        @Override
+        public String getCommandName(long id) throws NoSuchFieldError {
+            return Command.value(id).toString();
+        }
+
+        @Override
+        public long getAttributeID(String name) throws IllegalArgumentException {
+            return Attribute.valueOf(name).getID();
+        }
+
+        @Override
+        public long getEventID(String name) throws IllegalArgumentException {
+            return Event.valueOf(name).getID();
+        }
+
+        @Override
+        public long getCommandID(String name) throws IllegalArgumentException {
+            return Command.valueOf(name).getID();
+        }
+    }
     public static class EcosystemInformation implements BaseCluster {
         public static final long ID = 1872L;
         public long getID() {
diff --git a/src/controller/java/generated/java/chip/devicecontroller/ClusterInfoMapping.java b/src/controller/java/generated/java/chip/devicecontroller/ClusterInfoMapping.java
index 6e009e3ae63c5a..e2e499af82344a 100644
--- a/src/controller/java/generated/java/chip/devicecontroller/ClusterInfoMapping.java
+++ b/src/controller/java/generated/java/chip/devicecontroller/ClusterInfoMapping.java
@@ -20244,7 +20244,8 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedEcosystemInformationClusterDeviceDirectoryAttributeCallback implements ChipClusters.EcosystemInformationCluster.DeviceDirectoryAttributeCallback, DelegatedClusterCallback {
+
+  public static class DelegatedCameraAvStreamManagementClusterAudioStreamAllocateResponseCallback implements ChipClusters.CameraAvStreamManagementCluster.AudioStreamAllocateResponseCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -20252,20 +20253,21 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(List<ChipStructs.EcosystemInformationClusterEcosystemDeviceStruct> valueList) {
+    public void onSuccess(Integer audioStreamID) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<ChipStructs.EcosystemInformationClusterEcosystemDeviceStruct>");
-      responseValues.put(commandResponseInfo, valueList);
+
+      CommandResponseInfo audioStreamIDResponseValue = new CommandResponseInfo("audioStreamID", "Integer");
+      responseValues.put(audioStreamIDResponseValue, audioStreamID);
       callback.onSuccess(responseValues);
     }
 
     @Override
-    public void onError(Exception ex) {
-      callback.onFailure(ex);
+    public void onError(Exception error) {
+      callback.onFailure(error);
     }
   }
 
-  public static class DelegatedEcosystemInformationClusterLocationDirectoryAttributeCallback implements ChipClusters.EcosystemInformationCluster.LocationDirectoryAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedCameraAvStreamManagementClusterVideoStreamAllocateResponseCallback implements ChipClusters.CameraAvStreamManagementCluster.VideoStreamAllocateResponseCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -20273,10 +20275,53 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(List<ChipStructs.EcosystemInformationClusterEcosystemLocationStruct> valueList) {
+    public void onSuccess(Integer videoStreamID) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<ChipStructs.EcosystemInformationClusterEcosystemLocationStruct>");
-      responseValues.put(commandResponseInfo, valueList);
+
+      CommandResponseInfo videoStreamIDResponseValue = new CommandResponseInfo("videoStreamID", "Integer");
+      responseValues.put(videoStreamIDResponseValue, videoStreamID);
+      callback.onSuccess(responseValues);
+    }
+
+    @Override
+    public void onError(Exception error) {
+      callback.onFailure(error);
+    }
+  }
+
+  public static class DelegatedCameraAvStreamManagementClusterSnapshotStreamAllocateResponseCallback implements ChipClusters.CameraAvStreamManagementCluster.SnapshotStreamAllocateResponseCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
+
+    @Override
+    public void onSuccess(Integer snapshotStreamID) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+
+      CommandResponseInfo snapshotStreamIDResponseValue = new CommandResponseInfo("snapshotStreamID", "Integer");
+      responseValues.put(snapshotStreamIDResponseValue, snapshotStreamID);
+      callback.onSuccess(responseValues);
+    }
+
+    @Override
+    public void onError(Exception error) {
+      callback.onFailure(error);
+    }
+  }
+  public static class DelegatedCameraAvStreamManagementClusterVideoSensorParamsAttributeCallback implements ChipClusters.CameraAvStreamManagementCluster.VideoSensorParamsAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
+
+    @Override
+    public void onSuccess(ChipStructs.CameraAvStreamManagementClusterVideoSensorParamsStruct value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "ChipStructs.CameraAvStreamManagementClusterVideoSensorParamsStruct");
+      responseValues.put(commandResponseInfo, value);
       callback.onSuccess(responseValues);
     }
 
@@ -20286,7 +20331,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedEcosystemInformationClusterGeneratedCommandListAttributeCallback implements ChipClusters.EcosystemInformationCluster.GeneratedCommandListAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedCameraAvStreamManagementClusterMinViewPortWidthAttributeCallback implements ChipClusters.CameraAvStreamManagementCluster.MinViewPortWidthAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -20294,10 +20339,10 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(List<Long> valueList) {
+    public void onSuccess(Object value) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
-      responseValues.put(commandResponseInfo, valueList);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Object");
+      responseValues.put(commandResponseInfo, value);
       callback.onSuccess(responseValues);
     }
 
@@ -20307,7 +20352,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedEcosystemInformationClusterAcceptedCommandListAttributeCallback implements ChipClusters.EcosystemInformationCluster.AcceptedCommandListAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedCameraAvStreamManagementClusterMinViewPortHeightAttributeCallback implements ChipClusters.CameraAvStreamManagementCluster.MinViewPortHeightAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -20315,10 +20360,10 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(List<Long> valueList) {
+    public void onSuccess(Object value) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
-      responseValues.put(commandResponseInfo, valueList);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Object");
+      responseValues.put(commandResponseInfo, value);
       callback.onSuccess(responseValues);
     }
 
@@ -20328,7 +20373,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedEcosystemInformationClusterEventListAttributeCallback implements ChipClusters.EcosystemInformationCluster.EventListAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedCameraAvStreamManagementClusterRateDistortionTradeOffPointsAttributeCallback implements ChipClusters.CameraAvStreamManagementCluster.RateDistortionTradeOffPointsAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -20336,9 +20381,9 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(List<Long> valueList) {
+    public void onSuccess(List<ChipStructs.CameraAvStreamManagementClusterRateDistortionTradeOffPointsStruct> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<ChipStructs.CameraAvStreamManagementClusterRateDistortionTradeOffPointsStruct>");
       responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
@@ -20349,7 +20394,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedEcosystemInformationClusterAttributeListAttributeCallback implements ChipClusters.EcosystemInformationCluster.AttributeListAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedCameraAvStreamManagementClusterMicrophoneCapabilitiesAttributeCallback implements ChipClusters.CameraAvStreamManagementCluster.MicrophoneCapabilitiesAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -20357,10 +20402,10 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(List<Long> valueList) {
+    public void onSuccess(ChipStructs.CameraAvStreamManagementClusterAudioCapabilitiesStruct value) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
-      responseValues.put(commandResponseInfo, valueList);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "ChipStructs.CameraAvStreamManagementClusterAudioCapabilitiesStruct");
+      responseValues.put(commandResponseInfo, value);
       callback.onSuccess(responseValues);
     }
 
@@ -20370,8 +20415,7 @@ public void onError(Exception ex) {
     }
   }
 
-
-  public static class DelegatedCommissionerControlClusterReverseOpenCommissioningWindowCallback implements ChipClusters.CommissionerControlCluster.ReverseOpenCommissioningWindowCallback, DelegatedClusterCallback {
+  public static class DelegatedCameraAvStreamManagementClusterSpeakerCapabilitiesAttributeCallback implements ChipClusters.CameraAvStreamManagementCluster.SpeakerCapabilitiesAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -20379,28 +20423,20 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(Integer commissioningTimeout, byte[] PAKEPasscodeVerifier, Integer discriminator, Long iterations, byte[] salt) {
+    public void onSuccess(ChipStructs.CameraAvStreamManagementClusterAudioCapabilitiesStruct value) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-
-      CommandResponseInfo commissioningTimeoutResponseValue = new CommandResponseInfo("commissioningTimeout", "Integer");
-      responseValues.put(commissioningTimeoutResponseValue, commissioningTimeout);
-      CommandResponseInfo PAKEPasscodeVerifierResponseValue = new CommandResponseInfo("PAKEPasscodeVerifier", "byte[]");
-      responseValues.put(PAKEPasscodeVerifierResponseValue, PAKEPasscodeVerifier);
-      CommandResponseInfo discriminatorResponseValue = new CommandResponseInfo("discriminator", "Integer");
-      responseValues.put(discriminatorResponseValue, discriminator);
-      CommandResponseInfo iterationsResponseValue = new CommandResponseInfo("iterations", "Long");
-      responseValues.put(iterationsResponseValue, iterations);
-      CommandResponseInfo saltResponseValue = new CommandResponseInfo("salt", "byte[]");
-      responseValues.put(saltResponseValue, salt);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "ChipStructs.CameraAvStreamManagementClusterAudioCapabilitiesStruct");
+      responseValues.put(commandResponseInfo, value);
       callback.onSuccess(responseValues);
     }
 
     @Override
-    public void onError(Exception error) {
-      callback.onFailure(error);
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
     }
   }
-  public static class DelegatedCommissionerControlClusterGeneratedCommandListAttributeCallback implements ChipClusters.CommissionerControlCluster.GeneratedCommandListAttributeCallback, DelegatedClusterCallback {
+
+  public static class DelegatedCameraAvStreamManagementClusterSupportedSnapshotParamsAttributeCallback implements ChipClusters.CameraAvStreamManagementCluster.SupportedSnapshotParamsAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -20408,9 +20444,9 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(List<Long> valueList) {
+    public void onSuccess(List<ChipStructs.CameraAvStreamManagementClusterSnapshotParamsStruct> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<ChipStructs.CameraAvStreamManagementClusterSnapshotParamsStruct>");
       responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
@@ -20421,7 +20457,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedCommissionerControlClusterAcceptedCommandListAttributeCallback implements ChipClusters.CommissionerControlCluster.AcceptedCommandListAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedCameraAvStreamManagementClusterCurrentVideoCodecsAttributeCallback implements ChipClusters.CameraAvStreamManagementCluster.CurrentVideoCodecsAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -20429,9 +20465,9 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(List<Long> valueList) {
+    public void onSuccess(List<Integer> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Integer>");
       responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
@@ -20442,7 +20478,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedCommissionerControlClusterEventListAttributeCallback implements ChipClusters.CommissionerControlCluster.EventListAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedCameraAvStreamManagementClusterCurrentSnapshotConfigAttributeCallback implements ChipClusters.CameraAvStreamManagementCluster.CurrentSnapshotConfigAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -20450,10 +20486,10 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(List<Long> valueList) {
+    public void onSuccess(ChipStructs.CameraAvStreamManagementClusterSnapshotParamsStruct value) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
-      responseValues.put(commandResponseInfo, valueList);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "ChipStructs.CameraAvStreamManagementClusterSnapshotParamsStruct");
+      responseValues.put(commandResponseInfo, value);
       callback.onSuccess(responseValues);
     }
 
@@ -20463,7 +20499,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedCommissionerControlClusterAttributeListAttributeCallback implements ChipClusters.CommissionerControlCluster.AttributeListAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedCameraAvStreamManagementClusterFabricsUsingCameraAttributeCallback implements ChipClusters.CameraAvStreamManagementCluster.FabricsUsingCameraAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -20471,9 +20507,9 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(List<Long> valueList) {
+    public void onSuccess(List<Integer> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Integer>");
       responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
@@ -20484,7 +20520,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedElectricalMeasurementClusterGeneratedCommandListAttributeCallback implements ChipClusters.ElectricalMeasurementCluster.GeneratedCommandListAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedCameraAvStreamManagementClusterAllocatedVideoStreamsAttributeCallback implements ChipClusters.CameraAvStreamManagementCluster.AllocatedVideoStreamsAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -20492,9 +20528,9 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(List<Long> valueList) {
+    public void onSuccess(List<ChipStructs.CameraAvStreamManagementClusterVideoStreamStruct> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<ChipStructs.CameraAvStreamManagementClusterVideoStreamStruct>");
       responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
@@ -20505,7 +20541,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedElectricalMeasurementClusterAcceptedCommandListAttributeCallback implements ChipClusters.ElectricalMeasurementCluster.AcceptedCommandListAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedCameraAvStreamManagementClusterAllocatedAudioStreamsAttributeCallback implements ChipClusters.CameraAvStreamManagementCluster.AllocatedAudioStreamsAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -20513,9 +20549,9 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(List<Long> valueList) {
+    public void onSuccess(List<ChipStructs.CameraAvStreamManagementClusterAudioStreamStruct> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<ChipStructs.CameraAvStreamManagementClusterAudioStreamStruct>");
       responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
@@ -20526,7 +20562,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedElectricalMeasurementClusterEventListAttributeCallback implements ChipClusters.ElectricalMeasurementCluster.EventListAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedCameraAvStreamManagementClusterAllocatedSnapshotStreamsAttributeCallback implements ChipClusters.CameraAvStreamManagementCluster.AllocatedSnapshotStreamsAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -20534,9 +20570,9 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(List<Long> valueList) {
+    public void onSuccess(List<ChipStructs.CameraAvStreamManagementClusterSnapshotStreamStruct> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<ChipStructs.CameraAvStreamManagementClusterSnapshotStreamStruct>");
       responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
@@ -20547,7 +20583,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedElectricalMeasurementClusterAttributeListAttributeCallback implements ChipClusters.ElectricalMeasurementCluster.AttributeListAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedCameraAvStreamManagementClusterRankedVideoStreamPrioritiesListAttributeCallback implements ChipClusters.CameraAvStreamManagementCluster.RankedVideoStreamPrioritiesListAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -20555,9 +20591,9 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(List<Long> valueList) {
+    public void onSuccess(List<Integer> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Integer>");
       responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
@@ -20568,8 +20604,7 @@ public void onError(Exception ex) {
     }
   }
 
-
-  public static class DelegatedUnitTestingClusterTestSpecificResponseCallback implements ChipClusters.UnitTestingCluster.TestSpecificResponseCallback, DelegatedClusterCallback {
+  public static class DelegatedCameraAvStreamManagementClusterViewportAttributeCallback implements ChipClusters.CameraAvStreamManagementCluster.ViewportAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -20577,21 +20612,20 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(Integer returnValue) {
+    public void onSuccess(ChipStructs.CameraAvStreamManagementClusterViewportStruct value) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-
-      CommandResponseInfo returnValueResponseValue = new CommandResponseInfo("returnValue", "Integer");
-      responseValues.put(returnValueResponseValue, returnValue);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "ChipStructs.CameraAvStreamManagementClusterViewportStruct");
+      responseValues.put(commandResponseInfo, value);
       callback.onSuccess(responseValues);
     }
 
     @Override
-    public void onError(Exception error) {
-      callback.onFailure(error);
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
     }
   }
 
-  public static class DelegatedUnitTestingClusterTestAddArgumentsResponseCallback implements ChipClusters.UnitTestingCluster.TestAddArgumentsResponseCallback, DelegatedClusterCallback {
+  public static class DelegatedCameraAvStreamManagementClusterWatermarkEnabledAttributeCallback implements ChipClusters.CameraAvStreamManagementCluster.WatermarkEnabledAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -20599,21 +20633,20 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(Integer returnValue) {
+    public void onSuccess(List<ChipStructs.CameraAvStreamManagementClusterPerStreamStruct> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-
-      CommandResponseInfo returnValueResponseValue = new CommandResponseInfo("returnValue", "Integer");
-      responseValues.put(returnValueResponseValue, returnValue);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<ChipStructs.CameraAvStreamManagementClusterPerStreamStruct>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
     @Override
-    public void onError(Exception error) {
-      callback.onFailure(error);
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
     }
   }
 
-  public static class DelegatedUnitTestingClusterTestSimpleArgumentResponseCallback implements ChipClusters.UnitTestingCluster.TestSimpleArgumentResponseCallback, DelegatedClusterCallback {
+  public static class DelegatedCameraAvStreamManagementClusterOSDEnabledAttributeCallback implements ChipClusters.CameraAvStreamManagementCluster.OSDEnabledAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -20621,21 +20654,20 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(Boolean returnValue) {
+    public void onSuccess(List<ChipStructs.CameraAvStreamManagementClusterPerStreamStruct> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-
-      CommandResponseInfo returnValueResponseValue = new CommandResponseInfo("returnValue", "Boolean");
-      responseValues.put(returnValueResponseValue, returnValue);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<ChipStructs.CameraAvStreamManagementClusterPerStreamStruct>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
     @Override
-    public void onError(Exception error) {
-      callback.onFailure(error);
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
     }
   }
 
-  public static class DelegatedUnitTestingClusterTestStructArrayArgumentResponseCallback implements ChipClusters.UnitTestingCluster.TestStructArrayArgumentResponseCallback, DelegatedClusterCallback {
+  public static class DelegatedCameraAvStreamManagementClusterGeneratedCommandListAttributeCallback implements ChipClusters.CameraAvStreamManagementCluster.GeneratedCommandListAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -20643,35 +20675,41 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(ArrayList<ChipStructs.UnitTestingClusterNestedStructList> arg1, ArrayList<ChipStructs.UnitTestingClusterSimpleStruct> arg2, ArrayList<Integer> arg3, ArrayList<Boolean> arg4, Integer arg5, Boolean arg6) {
+    public void onSuccess(List<Long> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
+      callback.onSuccess(responseValues);
+    }
 
-      // arg1: NestedStructList
-      // Conversion from this type to Java is not properly implemented yet
-
-      // arg2: SimpleStruct
-      // Conversion from this type to Java is not properly implemented yet
-
-      // arg3: SimpleEnum
-      // Conversion from this type to Java is not properly implemented yet
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-      // arg4: boolean
-      // Conversion from this type to Java is not properly implemented yet
+  public static class DelegatedCameraAvStreamManagementClusterAcceptedCommandListAttributeCallback implements ChipClusters.CameraAvStreamManagementCluster.AcceptedCommandListAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-      CommandResponseInfo arg5ResponseValue = new CommandResponseInfo("arg5", "Integer");
-      responseValues.put(arg5ResponseValue, arg5);
-      CommandResponseInfo arg6ResponseValue = new CommandResponseInfo("arg6", "Boolean");
-      responseValues.put(arg6ResponseValue, arg6);
+    @Override
+    public void onSuccess(List<Long> valueList) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
     @Override
-    public void onError(Exception error) {
-      callback.onFailure(error);
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
     }
   }
 
-  public static class DelegatedUnitTestingClusterBooleanResponseCallback implements ChipClusters.UnitTestingCluster.BooleanResponseCallback, DelegatedClusterCallback {
+  public static class DelegatedCameraAvStreamManagementClusterEventListAttributeCallback implements ChipClusters.CameraAvStreamManagementCluster.EventListAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -20679,21 +20717,20 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(Boolean value) {
+    public void onSuccess(List<Long> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-
-      CommandResponseInfo valueResponseValue = new CommandResponseInfo("value", "Boolean");
-      responseValues.put(valueResponseValue, value);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
     @Override
-    public void onError(Exception error) {
-      callback.onFailure(error);
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
     }
   }
 
-  public static class DelegatedUnitTestingClusterTestListInt8UReverseResponseCallback implements ChipClusters.UnitTestingCluster.TestListInt8UReverseResponseCallback, DelegatedClusterCallback {
+  public static class DelegatedCameraAvStreamManagementClusterAttributeListAttributeCallback implements ChipClusters.CameraAvStreamManagementCluster.AttributeListAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -20701,22 +20738,20 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(ArrayList<Integer> arg1) {
+    public void onSuccess(List<Long> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-
-      // arg1: int8u
-      // Conversion from this type to Java is not properly implemented yet
-
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
     @Override
-    public void onError(Exception error) {
-      callback.onFailure(error);
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
     }
   }
 
-  public static class DelegatedUnitTestingClusterTestEnumsResponseCallback implements ChipClusters.UnitTestingCluster.TestEnumsResponseCallback, DelegatedClusterCallback {
+  public static class DelegatedCameraAvSettingsUserLevelManagementClusterMptzAttributeCallback implements ChipClusters.CameraAvSettingsUserLevelManagementCluster.MptzAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -20724,23 +20759,20 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(Integer arg1, Integer arg2) {
+    public void onSuccess(ChipStructs.CameraAvSettingsUserLevelManagementClusterMPTZStruct value) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-
-      CommandResponseInfo arg1ResponseValue = new CommandResponseInfo("arg1", "Integer");
-      responseValues.put(arg1ResponseValue, arg1);
-      CommandResponseInfo arg2ResponseValue = new CommandResponseInfo("arg2", "Integer");
-      responseValues.put(arg2ResponseValue, arg2);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "ChipStructs.CameraAvSettingsUserLevelManagementClusterMPTZStruct");
+      responseValues.put(commandResponseInfo, value);
       callback.onSuccess(responseValues);
     }
 
     @Override
-    public void onError(Exception error) {
-      callback.onFailure(error);
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
     }
   }
 
-  public static class DelegatedUnitTestingClusterTestNullableOptionalResponseCallback implements ChipClusters.UnitTestingCluster.TestNullableOptionalResponseCallback, DelegatedClusterCallback {
+  public static class DelegatedCameraAvSettingsUserLevelManagementClusterPresetMptzTableAttributeCallback implements ChipClusters.CameraAvSettingsUserLevelManagementCluster.PresetMptzTableAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -20748,27 +20780,20 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(Boolean wasPresent, Optional<Boolean> wasNull, Optional<Integer> value, @Nullable Optional<Integer> originalValue) {
+    public void onSuccess(List<ChipStructs.CameraAvSettingsUserLevelManagementClusterMPTZStruct> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-
-      CommandResponseInfo wasPresentResponseValue = new CommandResponseInfo("wasPresent", "Boolean");
-      responseValues.put(wasPresentResponseValue, wasPresent);
-      CommandResponseInfo wasNullResponseValue = new CommandResponseInfo("wasNull", "Optional<Boolean>");
-      responseValues.put(wasNullResponseValue, wasNull);
-      CommandResponseInfo valueResponseValue = new CommandResponseInfo("value", "Optional<Integer>");
-      responseValues.put(valueResponseValue, value);
-      CommandResponseInfo originalValueResponseValue = new CommandResponseInfo("originalValue", "Optional<Integer>");
-      responseValues.put(originalValueResponseValue, originalValue);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<ChipStructs.CameraAvSettingsUserLevelManagementClusterMPTZStruct>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
     @Override
-    public void onError(Exception error) {
-      callback.onFailure(error);
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
     }
   }
 
-  public static class DelegatedUnitTestingClusterTestComplexNullableOptionalResponseCallback implements ChipClusters.UnitTestingCluster.TestComplexNullableOptionalResponseCallback, DelegatedClusterCallback {
+  public static class DelegatedCameraAvSettingsUserLevelManagementClusterDptzRelativeMoveAttributeCallback implements ChipClusters.CameraAvSettingsUserLevelManagementCluster.DptzRelativeMoveAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -20776,78 +20801,20 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(Boolean nullableIntWasNull, Optional<Integer> nullableIntValue, Boolean optionalIntWasPresent, Optional<Integer> optionalIntValue, Boolean nullableOptionalIntWasPresent, Optional<Boolean> nullableOptionalIntWasNull, Optional<Integer> nullableOptionalIntValue, Boolean nullableStringWasNull, Optional<String> nullableStringValue, Boolean optionalStringWasPresent, Optional<String> optionalStringValue, Boolean nullableOptionalStringWasPresent, Optional<Boolean> nullableOptionalStringWasNull, Optional<String> nullableOptionalStringValue, Boolean nullableStructWasNull, Optional<ChipStructs.UnitTestingClusterSimpleStruct> nullableStructValue, Boolean optionalStructWasPresent, Optional<ChipStructs.UnitTestingClusterSimpleStruct> optionalStructValue, Boolean nullableOptionalStructWasPresent, Optional<Boolean> nullableOptionalStructWasNull, Optional<ChipStructs.UnitTestingClusterSimpleStruct> nullableOptionalStructValue, Boolean nullableListWasNull, Optional<ArrayList<Integer>> nullableListValue, Boolean optionalListWasPresent, Optional<ArrayList<Integer>> optionalListValue, Boolean nullableOptionalListWasPresent, Optional<Boolean> nullableOptionalListWasNull, Optional<ArrayList<Integer>> nullableOptionalListValue) {
+    public void onSuccess(List<ChipStructs.CameraAvSettingsUserLevelManagementClusterPerStreamStruct> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-
-      CommandResponseInfo nullableIntWasNullResponseValue = new CommandResponseInfo("nullableIntWasNull", "Boolean");
-      responseValues.put(nullableIntWasNullResponseValue, nullableIntWasNull);
-      CommandResponseInfo nullableIntValueResponseValue = new CommandResponseInfo("nullableIntValue", "Optional<Integer>");
-      responseValues.put(nullableIntValueResponseValue, nullableIntValue);
-      CommandResponseInfo optionalIntWasPresentResponseValue = new CommandResponseInfo("optionalIntWasPresent", "Boolean");
-      responseValues.put(optionalIntWasPresentResponseValue, optionalIntWasPresent);
-      CommandResponseInfo optionalIntValueResponseValue = new CommandResponseInfo("optionalIntValue", "Optional<Integer>");
-      responseValues.put(optionalIntValueResponseValue, optionalIntValue);
-      CommandResponseInfo nullableOptionalIntWasPresentResponseValue = new CommandResponseInfo("nullableOptionalIntWasPresent", "Boolean");
-      responseValues.put(nullableOptionalIntWasPresentResponseValue, nullableOptionalIntWasPresent);
-      CommandResponseInfo nullableOptionalIntWasNullResponseValue = new CommandResponseInfo("nullableOptionalIntWasNull", "Optional<Boolean>");
-      responseValues.put(nullableOptionalIntWasNullResponseValue, nullableOptionalIntWasNull);
-      CommandResponseInfo nullableOptionalIntValueResponseValue = new CommandResponseInfo("nullableOptionalIntValue", "Optional<Integer>");
-      responseValues.put(nullableOptionalIntValueResponseValue, nullableOptionalIntValue);
-      CommandResponseInfo nullableStringWasNullResponseValue = new CommandResponseInfo("nullableStringWasNull", "Boolean");
-      responseValues.put(nullableStringWasNullResponseValue, nullableStringWasNull);
-      CommandResponseInfo nullableStringValueResponseValue = new CommandResponseInfo("nullableStringValue", "Optional<String>");
-      responseValues.put(nullableStringValueResponseValue, nullableStringValue);
-      CommandResponseInfo optionalStringWasPresentResponseValue = new CommandResponseInfo("optionalStringWasPresent", "Boolean");
-      responseValues.put(optionalStringWasPresentResponseValue, optionalStringWasPresent);
-      CommandResponseInfo optionalStringValueResponseValue = new CommandResponseInfo("optionalStringValue", "Optional<String>");
-      responseValues.put(optionalStringValueResponseValue, optionalStringValue);
-      CommandResponseInfo nullableOptionalStringWasPresentResponseValue = new CommandResponseInfo("nullableOptionalStringWasPresent", "Boolean");
-      responseValues.put(nullableOptionalStringWasPresentResponseValue, nullableOptionalStringWasPresent);
-      CommandResponseInfo nullableOptionalStringWasNullResponseValue = new CommandResponseInfo("nullableOptionalStringWasNull", "Optional<Boolean>");
-      responseValues.put(nullableOptionalStringWasNullResponseValue, nullableOptionalStringWasNull);
-      CommandResponseInfo nullableOptionalStringValueResponseValue = new CommandResponseInfo("nullableOptionalStringValue", "Optional<String>");
-      responseValues.put(nullableOptionalStringValueResponseValue, nullableOptionalStringValue);
-      CommandResponseInfo nullableStructWasNullResponseValue = new CommandResponseInfo("nullableStructWasNull", "Boolean");
-      responseValues.put(nullableStructWasNullResponseValue, nullableStructWasNull);
-      // nullableStructValue: Struct SimpleStruct
-      // Conversion from this type to Java is not properly implemented yet
-      CommandResponseInfo optionalStructWasPresentResponseValue = new CommandResponseInfo("optionalStructWasPresent", "Boolean");
-      responseValues.put(optionalStructWasPresentResponseValue, optionalStructWasPresent);
-      // optionalStructValue: Struct SimpleStruct
-      // Conversion from this type to Java is not properly implemented yet
-      CommandResponseInfo nullableOptionalStructWasPresentResponseValue = new CommandResponseInfo("nullableOptionalStructWasPresent", "Boolean");
-      responseValues.put(nullableOptionalStructWasPresentResponseValue, nullableOptionalStructWasPresent);
-      CommandResponseInfo nullableOptionalStructWasNullResponseValue = new CommandResponseInfo("nullableOptionalStructWasNull", "Optional<Boolean>");
-      responseValues.put(nullableOptionalStructWasNullResponseValue, nullableOptionalStructWasNull);
-      // nullableOptionalStructValue: Struct SimpleStruct
-      // Conversion from this type to Java is not properly implemented yet
-      CommandResponseInfo nullableListWasNullResponseValue = new CommandResponseInfo("nullableListWasNull", "Boolean");
-      responseValues.put(nullableListWasNullResponseValue, nullableListWasNull);
-      // nullableListValue: SimpleEnum
-      // Conversion from this type to Java is not properly implemented yet
-
-      CommandResponseInfo optionalListWasPresentResponseValue = new CommandResponseInfo("optionalListWasPresent", "Boolean");
-      responseValues.put(optionalListWasPresentResponseValue, optionalListWasPresent);
-      // optionalListValue: SimpleEnum
-      // Conversion from this type to Java is not properly implemented yet
-
-      CommandResponseInfo nullableOptionalListWasPresentResponseValue = new CommandResponseInfo("nullableOptionalListWasPresent", "Boolean");
-      responseValues.put(nullableOptionalListWasPresentResponseValue, nullableOptionalListWasPresent);
-      CommandResponseInfo nullableOptionalListWasNullResponseValue = new CommandResponseInfo("nullableOptionalListWasNull", "Optional<Boolean>");
-      responseValues.put(nullableOptionalListWasNullResponseValue, nullableOptionalListWasNull);
-      // nullableOptionalListValue: SimpleEnum
-      // Conversion from this type to Java is not properly implemented yet
-
-      callback.onSuccess(responseValues);
-    }
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<ChipStructs.CameraAvSettingsUserLevelManagementClusterPerStreamStruct>");
+      responseValues.put(commandResponseInfo, valueList);
+      callback.onSuccess(responseValues);
+    }
 
     @Override
-    public void onError(Exception error) {
-      callback.onFailure(error);
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
     }
   }
 
-  public static class DelegatedUnitTestingClusterSimpleStructResponseCallback implements ChipClusters.UnitTestingCluster.SimpleStructResponseCallback, DelegatedClusterCallback {
+  public static class DelegatedCameraAvSettingsUserLevelManagementClusterGeneratedCommandListAttributeCallback implements ChipClusters.CameraAvSettingsUserLevelManagementCluster.GeneratedCommandListAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -20855,21 +20822,20 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(ChipStructs.UnitTestingClusterSimpleStruct arg1) {
+    public void onSuccess(List<Long> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-
-      // arg1: Struct SimpleStruct
-      // Conversion from this type to Java is not properly implemented yet
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
     @Override
-    public void onError(Exception error) {
-      callback.onFailure(error);
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
     }
   }
 
-  public static class DelegatedUnitTestingClusterTestEmitTestEventResponseCallback implements ChipClusters.UnitTestingCluster.TestEmitTestEventResponseCallback, DelegatedClusterCallback {
+  public static class DelegatedCameraAvSettingsUserLevelManagementClusterAcceptedCommandListAttributeCallback implements ChipClusters.CameraAvSettingsUserLevelManagementCluster.AcceptedCommandListAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -20877,21 +20843,20 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(Long value) {
+    public void onSuccess(List<Long> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-
-      CommandResponseInfo valueResponseValue = new CommandResponseInfo("value", "Long");
-      responseValues.put(valueResponseValue, value);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
     @Override
-    public void onError(Exception error) {
-      callback.onFailure(error);
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
     }
   }
 
-  public static class DelegatedUnitTestingClusterTestEmitTestFabricScopedEventResponseCallback implements ChipClusters.UnitTestingCluster.TestEmitTestFabricScopedEventResponseCallback, DelegatedClusterCallback {
+  public static class DelegatedCameraAvSettingsUserLevelManagementClusterEventListAttributeCallback implements ChipClusters.CameraAvSettingsUserLevelManagementCluster.EventListAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -20899,21 +20864,20 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(Long value) {
+    public void onSuccess(List<Long> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-
-      CommandResponseInfo valueResponseValue = new CommandResponseInfo("value", "Long");
-      responseValues.put(valueResponseValue, value);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
     @Override
-    public void onError(Exception error) {
-      callback.onFailure(error);
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
     }
   }
 
-  public static class DelegatedUnitTestingClusterTestBatchHelperResponseCallback implements ChipClusters.UnitTestingCluster.TestBatchHelperResponseCallback, DelegatedClusterCallback {
+  public static class DelegatedCameraAvSettingsUserLevelManagementClusterAttributeListAttributeCallback implements ChipClusters.CameraAvSettingsUserLevelManagementCluster.AttributeListAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -20921,21 +20885,21 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(byte[] buffer) {
+    public void onSuccess(List<Long> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-
-      CommandResponseInfo bufferResponseValue = new CommandResponseInfo("buffer", "byte[]");
-      responseValues.put(bufferResponseValue, buffer);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
     @Override
-    public void onError(Exception error) {
-      callback.onFailure(error);
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
     }
   }
 
-  public static class DelegatedUnitTestingClusterStringEchoResponseCallback implements ChipClusters.UnitTestingCluster.StringEchoResponseCallback, DelegatedClusterCallback {
+
+  public static class DelegatedWebRTCTransportProviderClusterWebRTCSolicitOfferResponseCallback implements ChipClusters.WebRTCTransportProviderCluster.WebRTCSolicitOfferResponseCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -20943,11 +20907,17 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(byte[] payload) {
+    public void onSuccess(Integer webRTCSessionID, Boolean deferredOffer, @Nullable Optional<Integer> videoStreamID, @Nullable Optional<Integer> audioStreamID) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
 
-      CommandResponseInfo payloadResponseValue = new CommandResponseInfo("payload", "byte[]");
-      responseValues.put(payloadResponseValue, payload);
+      CommandResponseInfo webRTCSessionIDResponseValue = new CommandResponseInfo("webRTCSessionID", "Integer");
+      responseValues.put(webRTCSessionIDResponseValue, webRTCSessionID);
+      CommandResponseInfo deferredOfferResponseValue = new CommandResponseInfo("deferredOffer", "Boolean");
+      responseValues.put(deferredOfferResponseValue, deferredOffer);
+      CommandResponseInfo videoStreamIDResponseValue = new CommandResponseInfo("videoStreamID", "Optional<Integer>");
+      responseValues.put(videoStreamIDResponseValue, videoStreamID);
+      CommandResponseInfo audioStreamIDResponseValue = new CommandResponseInfo("audioStreamID", "Optional<Integer>");
+      responseValues.put(audioStreamIDResponseValue, audioStreamID);
       callback.onSuccess(responseValues);
     }
 
@@ -20957,7 +20927,7 @@ public void onError(Exception error) {
     }
   }
 
-  public static class DelegatedUnitTestingClusterGlobalEchoResponseCallback implements ChipClusters.UnitTestingCluster.GlobalEchoResponseCallback, DelegatedClusterCallback {
+  public static class DelegatedWebRTCTransportProviderClusterWebRTCProvideOfferResponseCallback implements ChipClusters.WebRTCTransportProviderCluster.WebRTCProvideOfferResponseCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -20965,13 +20935,15 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(ChipStructs.UnitTestingClusterTestGlobalStruct field1, Integer field2) {
+    public void onSuccess(Integer webRTCSessionID, Integer videoStreamID, Integer audioStreamID) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
 
-      // field1: Struct TestGlobalStruct
-      // Conversion from this type to Java is not properly implemented yet
-      CommandResponseInfo field2ResponseValue = new CommandResponseInfo("field2", "Integer");
-      responseValues.put(field2ResponseValue, field2);
+      CommandResponseInfo webRTCSessionIDResponseValue = new CommandResponseInfo("webRTCSessionID", "Integer");
+      responseValues.put(webRTCSessionIDResponseValue, webRTCSessionID);
+      CommandResponseInfo videoStreamIDResponseValue = new CommandResponseInfo("videoStreamID", "Integer");
+      responseValues.put(videoStreamIDResponseValue, videoStreamID);
+      CommandResponseInfo audioStreamIDResponseValue = new CommandResponseInfo("audioStreamID", "Integer");
+      responseValues.put(audioStreamIDResponseValue, audioStreamID);
       callback.onSuccess(responseValues);
     }
 
@@ -20980,8 +20952,7 @@ public void onError(Exception error) {
       callback.onFailure(error);
     }
   }
-
-  public static class DelegatedUnitTestingClusterTestDifferentVendorMeiResponseCallback implements ChipClusters.UnitTestingCluster.TestDifferentVendorMeiResponseCallback, DelegatedClusterCallback {
+  public static class DelegatedWebRTCTransportProviderClusterCurrentSessionsAttributeCallback implements ChipClusters.WebRTCTransportProviderCluster.CurrentSessionsAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -20989,22 +20960,20 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(Integer arg1, Long eventNumber) {
+    public void onSuccess(List<ChipStructs.WebRTCTransportProviderClusterWebRTCSessionStruct> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-
-      CommandResponseInfo arg1ResponseValue = new CommandResponseInfo("arg1", "Integer");
-      responseValues.put(arg1ResponseValue, arg1);
-      CommandResponseInfo eventNumberResponseValue = new CommandResponseInfo("eventNumber", "Long");
-      responseValues.put(eventNumberResponseValue, eventNumber);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<ChipStructs.WebRTCTransportProviderClusterWebRTCSessionStruct>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
     @Override
-    public void onError(Exception error) {
-      callback.onFailure(error);
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
     }
   }
-  public static class DelegatedUnitTestingClusterListInt8uAttributeCallback implements ChipClusters.UnitTestingCluster.ListInt8uAttributeCallback, DelegatedClusterCallback {
+
+  public static class DelegatedWebRTCTransportProviderClusterGeneratedCommandListAttributeCallback implements ChipClusters.WebRTCTransportProviderCluster.GeneratedCommandListAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21012,9 +20981,9 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(List<Integer> valueList) {
+    public void onSuccess(List<Long> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Integer>");
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
       responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
@@ -21025,7 +20994,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedUnitTestingClusterListOctetStringAttributeCallback implements ChipClusters.UnitTestingCluster.ListOctetStringAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedWebRTCTransportProviderClusterAcceptedCommandListAttributeCallback implements ChipClusters.WebRTCTransportProviderCluster.AcceptedCommandListAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21033,9 +21002,9 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(List<byte[]> valueList) {
+    public void onSuccess(List<Long> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<byte[]>");
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
       responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
@@ -21046,7 +21015,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedUnitTestingClusterListStructOctetStringAttributeCallback implements ChipClusters.UnitTestingCluster.ListStructOctetStringAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedWebRTCTransportProviderClusterEventListAttributeCallback implements ChipClusters.WebRTCTransportProviderCluster.EventListAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21054,9 +21023,9 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(List<ChipStructs.UnitTestingClusterTestListStructOctet> valueList) {
+    public void onSuccess(List<Long> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<ChipStructs.UnitTestingClusterTestListStructOctet>");
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
       responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
@@ -21067,7 +21036,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedUnitTestingClusterListNullablesAndOptionalsStructAttributeCallback implements ChipClusters.UnitTestingCluster.ListNullablesAndOptionalsStructAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedWebRTCTransportProviderClusterAttributeListAttributeCallback implements ChipClusters.WebRTCTransportProviderCluster.AttributeListAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21075,9 +21044,9 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(List<ChipStructs.UnitTestingClusterNullablesAndOptionalsStruct> valueList) {
+    public void onSuccess(List<Long> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<ChipStructs.UnitTestingClusterNullablesAndOptionalsStruct>");
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
       responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
@@ -21088,7 +21057,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedUnitTestingClusterStructAttrAttributeCallback implements ChipClusters.UnitTestingCluster.StructAttrAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedWebRTCTransportRequestorClusterCurrentSessionsAttributeCallback implements ChipClusters.WebRTCTransportRequestorCluster.CurrentSessionsAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21096,10 +21065,10 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(ChipStructs.UnitTestingClusterSimpleStruct value) {
+    public void onSuccess(List<ChipStructs.WebRTCTransportRequestorClusterWebRTCSessionStruct> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "ChipStructs.UnitTestingClusterSimpleStruct");
-      responseValues.put(commandResponseInfo, value);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<ChipStructs.WebRTCTransportRequestorClusterWebRTCSessionStruct>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
@@ -21109,7 +21078,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedUnitTestingClusterListLongOctetStringAttributeCallback implements ChipClusters.UnitTestingCluster.ListLongOctetStringAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedWebRTCTransportRequestorClusterGeneratedCommandListAttributeCallback implements ChipClusters.WebRTCTransportRequestorCluster.GeneratedCommandListAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21117,9 +21086,9 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(List<byte[]> valueList) {
+    public void onSuccess(List<Long> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<byte[]>");
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
       responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
@@ -21130,7 +21099,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedUnitTestingClusterListFabricScopedAttributeCallback implements ChipClusters.UnitTestingCluster.ListFabricScopedAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedWebRTCTransportRequestorClusterAcceptedCommandListAttributeCallback implements ChipClusters.WebRTCTransportRequestorCluster.AcceptedCommandListAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21138,9 +21107,9 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(List<ChipStructs.UnitTestingClusterTestFabricScoped> valueList) {
+    public void onSuccess(List<Long> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<ChipStructs.UnitTestingClusterTestFabricScoped>");
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
       responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
@@ -21151,7 +21120,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedUnitTestingClusterGlobalStructAttributeCallback implements ChipClusters.UnitTestingCluster.GlobalStructAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedWebRTCTransportRequestorClusterEventListAttributeCallback implements ChipClusters.WebRTCTransportRequestorCluster.EventListAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21159,10 +21128,10 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(ChipStructs.UnitTestingClusterTestGlobalStruct value) {
+    public void onSuccess(List<Long> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "ChipStructs.UnitTestingClusterTestGlobalStruct");
-      responseValues.put(commandResponseInfo, value);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
@@ -21172,7 +21141,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedUnitTestingClusterNullableBooleanAttributeCallback implements ChipClusters.UnitTestingCluster.NullableBooleanAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedWebRTCTransportRequestorClusterAttributeListAttributeCallback implements ChipClusters.WebRTCTransportRequestorCluster.AttributeListAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21180,10 +21149,10 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(@Nullable Boolean value) {
+    public void onSuccess(List<Long> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Boolean");
-      responseValues.put(commandResponseInfo, value);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
@@ -21193,7 +21162,8 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedUnitTestingClusterNullableBitmap8AttributeCallback implements ChipClusters.UnitTestingCluster.NullableBitmap8AttributeCallback, DelegatedClusterCallback {
+
+  public static class DelegatedPushAvStreamTransportClusterAllocatePushTransportResponseCallback implements ChipClusters.PushAvStreamTransportCluster.AllocatePushTransportResponseCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21201,20 +21171,25 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(@Nullable Integer value) {
+    public void onSuccess(Integer connectionID, ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportOptionsStruct streamTransportOptions, Integer transportStatus) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Integer");
-      responseValues.put(commandResponseInfo, value);
+
+      CommandResponseInfo connectionIDResponseValue = new CommandResponseInfo("connectionID", "Integer");
+      responseValues.put(connectionIDResponseValue, connectionID);
+      // streamTransportOptions: Struct PushAVStreamTransportOptionsStruct
+      // Conversion from this type to Java is not properly implemented yet
+      CommandResponseInfo transportStatusResponseValue = new CommandResponseInfo("transportStatus", "Integer");
+      responseValues.put(transportStatusResponseValue, transportStatus);
       callback.onSuccess(responseValues);
     }
 
     @Override
-    public void onError(Exception ex) {
-      callback.onFailure(ex);
+    public void onError(Exception error) {
+      callback.onFailure(error);
     }
   }
 
-  public static class DelegatedUnitTestingClusterNullableBitmap16AttributeCallback implements ChipClusters.UnitTestingCluster.NullableBitmap16AttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedPushAvStreamTransportClusterFindStreamConfigurationResponseCallback implements ChipClusters.PushAvStreamTransportCluster.FindStreamConfigurationResponseCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21222,20 +21197,21 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(@Nullable Integer value) {
+    public void onSuccess(ArrayList<ChipStructs.PushAvStreamTransportClusterPushAVStreamConfigurationStruct> streamConfigurations) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Integer");
-      responseValues.put(commandResponseInfo, value);
+
+      // streamConfigurations: PushAVStreamConfigurationStruct
+      // Conversion from this type to Java is not properly implemented yet
+
       callback.onSuccess(responseValues);
     }
 
     @Override
-    public void onError(Exception ex) {
-      callback.onFailure(ex);
+    public void onError(Exception error) {
+      callback.onFailure(error);
     }
   }
-
-  public static class DelegatedUnitTestingClusterNullableBitmap32AttributeCallback implements ChipClusters.UnitTestingCluster.NullableBitmap32AttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedPushAvStreamTransportClusterCurrentConnectionsAttributeCallback implements ChipClusters.PushAvStreamTransportCluster.CurrentConnectionsAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21243,10 +21219,10 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(@Nullable Long value) {
+    public void onSuccess(List<Integer> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Long");
-      responseValues.put(commandResponseInfo, value);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Integer>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
@@ -21256,7 +21232,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedUnitTestingClusterNullableBitmap64AttributeCallback implements ChipClusters.UnitTestingCluster.NullableBitmap64AttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedPushAvStreamTransportClusterGeneratedCommandListAttributeCallback implements ChipClusters.PushAvStreamTransportCluster.GeneratedCommandListAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21264,10 +21240,10 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(@Nullable Long value) {
+    public void onSuccess(List<Long> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Long");
-      responseValues.put(commandResponseInfo, value);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
@@ -21277,7 +21253,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedUnitTestingClusterNullableInt8uAttributeCallback implements ChipClusters.UnitTestingCluster.NullableInt8uAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedPushAvStreamTransportClusterAcceptedCommandListAttributeCallback implements ChipClusters.PushAvStreamTransportCluster.AcceptedCommandListAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21285,10 +21261,10 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(@Nullable Integer value) {
+    public void onSuccess(List<Long> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Integer");
-      responseValues.put(commandResponseInfo, value);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
@@ -21298,7 +21274,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedUnitTestingClusterNullableInt16uAttributeCallback implements ChipClusters.UnitTestingCluster.NullableInt16uAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedPushAvStreamTransportClusterEventListAttributeCallback implements ChipClusters.PushAvStreamTransportCluster.EventListAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21306,10 +21282,10 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(@Nullable Integer value) {
+    public void onSuccess(List<Long> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Integer");
-      responseValues.put(commandResponseInfo, value);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
@@ -21319,7 +21295,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedUnitTestingClusterNullableInt24uAttributeCallback implements ChipClusters.UnitTestingCluster.NullableInt24uAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedPushAvStreamTransportClusterAttributeListAttributeCallback implements ChipClusters.PushAvStreamTransportCluster.AttributeListAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21327,10 +21303,10 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(@Nullable Long value) {
+    public void onSuccess(List<Long> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Long");
-      responseValues.put(commandResponseInfo, value);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
@@ -21340,7 +21316,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedUnitTestingClusterNullableInt32uAttributeCallback implements ChipClusters.UnitTestingCluster.NullableInt32uAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedChimeClusterInstalledChimeSoundsAttributeCallback implements ChipClusters.ChimeCluster.InstalledChimeSoundsAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21348,10 +21324,10 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(@Nullable Long value) {
+    public void onSuccess(List<ChipStructs.ChimeClusterChimeSoundStruct> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Long");
-      responseValues.put(commandResponseInfo, value);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<ChipStructs.ChimeClusterChimeSoundStruct>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
@@ -21361,7 +21337,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedUnitTestingClusterNullableInt40uAttributeCallback implements ChipClusters.UnitTestingCluster.NullableInt40uAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedChimeClusterGeneratedCommandListAttributeCallback implements ChipClusters.ChimeCluster.GeneratedCommandListAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21369,10 +21345,10 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(@Nullable Long value) {
+    public void onSuccess(List<Long> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Long");
-      responseValues.put(commandResponseInfo, value);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
@@ -21382,7 +21358,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedUnitTestingClusterNullableInt48uAttributeCallback implements ChipClusters.UnitTestingCluster.NullableInt48uAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedChimeClusterAcceptedCommandListAttributeCallback implements ChipClusters.ChimeCluster.AcceptedCommandListAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21390,10 +21366,10 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(@Nullable Long value) {
+    public void onSuccess(List<Long> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Long");
-      responseValues.put(commandResponseInfo, value);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
@@ -21403,7 +21379,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedUnitTestingClusterNullableInt56uAttributeCallback implements ChipClusters.UnitTestingCluster.NullableInt56uAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedChimeClusterEventListAttributeCallback implements ChipClusters.ChimeCluster.EventListAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21411,10 +21387,10 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(@Nullable Long value) {
+    public void onSuccess(List<Long> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Long");
-      responseValues.put(commandResponseInfo, value);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
@@ -21424,7 +21400,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedUnitTestingClusterNullableInt64uAttributeCallback implements ChipClusters.UnitTestingCluster.NullableInt64uAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedChimeClusterAttributeListAttributeCallback implements ChipClusters.ChimeCluster.AttributeListAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21432,10 +21408,10 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(@Nullable Long value) {
+    public void onSuccess(List<Long> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Long");
-      responseValues.put(commandResponseInfo, value);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
@@ -21445,7 +21421,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedUnitTestingClusterNullableInt8sAttributeCallback implements ChipClusters.UnitTestingCluster.NullableInt8sAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedEcosystemInformationClusterDeviceDirectoryAttributeCallback implements ChipClusters.EcosystemInformationCluster.DeviceDirectoryAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21453,10 +21429,10 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(@Nullable Integer value) {
+    public void onSuccess(List<ChipStructs.EcosystemInformationClusterEcosystemDeviceStruct> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Integer");
-      responseValues.put(commandResponseInfo, value);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<ChipStructs.EcosystemInformationClusterEcosystemDeviceStruct>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
@@ -21466,7 +21442,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedUnitTestingClusterNullableInt16sAttributeCallback implements ChipClusters.UnitTestingCluster.NullableInt16sAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedEcosystemInformationClusterLocationDirectoryAttributeCallback implements ChipClusters.EcosystemInformationCluster.LocationDirectoryAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21474,10 +21450,10 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(@Nullable Integer value) {
+    public void onSuccess(List<ChipStructs.EcosystemInformationClusterEcosystemLocationStruct> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Integer");
-      responseValues.put(commandResponseInfo, value);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<ChipStructs.EcosystemInformationClusterEcosystemLocationStruct>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
@@ -21487,7 +21463,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedUnitTestingClusterNullableInt24sAttributeCallback implements ChipClusters.UnitTestingCluster.NullableInt24sAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedEcosystemInformationClusterGeneratedCommandListAttributeCallback implements ChipClusters.EcosystemInformationCluster.GeneratedCommandListAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21495,10 +21471,10 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(@Nullable Long value) {
+    public void onSuccess(List<Long> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Long");
-      responseValues.put(commandResponseInfo, value);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
@@ -21508,7 +21484,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedUnitTestingClusterNullableInt32sAttributeCallback implements ChipClusters.UnitTestingCluster.NullableInt32sAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedEcosystemInformationClusterAcceptedCommandListAttributeCallback implements ChipClusters.EcosystemInformationCluster.AcceptedCommandListAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21516,10 +21492,10 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(@Nullable Long value) {
+    public void onSuccess(List<Long> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Long");
-      responseValues.put(commandResponseInfo, value);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
@@ -21529,7 +21505,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedUnitTestingClusterNullableInt40sAttributeCallback implements ChipClusters.UnitTestingCluster.NullableInt40sAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedEcosystemInformationClusterEventListAttributeCallback implements ChipClusters.EcosystemInformationCluster.EventListAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21537,10 +21513,10 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(@Nullable Long value) {
+    public void onSuccess(List<Long> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Long");
-      responseValues.put(commandResponseInfo, value);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
@@ -21550,7 +21526,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedUnitTestingClusterNullableInt48sAttributeCallback implements ChipClusters.UnitTestingCluster.NullableInt48sAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedEcosystemInformationClusterAttributeListAttributeCallback implements ChipClusters.EcosystemInformationCluster.AttributeListAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21558,10 +21534,10 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(@Nullable Long value) {
+    public void onSuccess(List<Long> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Long");
-      responseValues.put(commandResponseInfo, value);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
@@ -21571,7 +21547,8 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedUnitTestingClusterNullableInt56sAttributeCallback implements ChipClusters.UnitTestingCluster.NullableInt56sAttributeCallback, DelegatedClusterCallback {
+
+  public static class DelegatedCommissionerControlClusterReverseOpenCommissioningWindowCallback implements ChipClusters.CommissionerControlCluster.ReverseOpenCommissioningWindowCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21579,20 +21556,28 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(@Nullable Long value) {
+    public void onSuccess(Integer commissioningTimeout, byte[] PAKEPasscodeVerifier, Integer discriminator, Long iterations, byte[] salt) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Long");
-      responseValues.put(commandResponseInfo, value);
+
+      CommandResponseInfo commissioningTimeoutResponseValue = new CommandResponseInfo("commissioningTimeout", "Integer");
+      responseValues.put(commissioningTimeoutResponseValue, commissioningTimeout);
+      CommandResponseInfo PAKEPasscodeVerifierResponseValue = new CommandResponseInfo("PAKEPasscodeVerifier", "byte[]");
+      responseValues.put(PAKEPasscodeVerifierResponseValue, PAKEPasscodeVerifier);
+      CommandResponseInfo discriminatorResponseValue = new CommandResponseInfo("discriminator", "Integer");
+      responseValues.put(discriminatorResponseValue, discriminator);
+      CommandResponseInfo iterationsResponseValue = new CommandResponseInfo("iterations", "Long");
+      responseValues.put(iterationsResponseValue, iterations);
+      CommandResponseInfo saltResponseValue = new CommandResponseInfo("salt", "byte[]");
+      responseValues.put(saltResponseValue, salt);
       callback.onSuccess(responseValues);
     }
 
     @Override
-    public void onError(Exception ex) {
-      callback.onFailure(ex);
+    public void onError(Exception error) {
+      callback.onFailure(error);
     }
   }
-
-  public static class DelegatedUnitTestingClusterNullableInt64sAttributeCallback implements ChipClusters.UnitTestingCluster.NullableInt64sAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedCommissionerControlClusterGeneratedCommandListAttributeCallback implements ChipClusters.CommissionerControlCluster.GeneratedCommandListAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21600,10 +21585,10 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(@Nullable Long value) {
+    public void onSuccess(List<Long> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Long");
-      responseValues.put(commandResponseInfo, value);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
@@ -21613,7 +21598,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedUnitTestingClusterNullableEnum8AttributeCallback implements ChipClusters.UnitTestingCluster.NullableEnum8AttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedCommissionerControlClusterAcceptedCommandListAttributeCallback implements ChipClusters.CommissionerControlCluster.AcceptedCommandListAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21621,10 +21606,10 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(@Nullable Integer value) {
+    public void onSuccess(List<Long> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Integer");
-      responseValues.put(commandResponseInfo, value);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
@@ -21634,7 +21619,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedUnitTestingClusterNullableEnum16AttributeCallback implements ChipClusters.UnitTestingCluster.NullableEnum16AttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedCommissionerControlClusterEventListAttributeCallback implements ChipClusters.CommissionerControlCluster.EventListAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21642,10 +21627,10 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(@Nullable Integer value) {
+    public void onSuccess(List<Long> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Integer");
-      responseValues.put(commandResponseInfo, value);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
@@ -21655,7 +21640,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedUnitTestingClusterNullableFloatSingleAttributeCallback implements ChipClusters.UnitTestingCluster.NullableFloatSingleAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedCommissionerControlClusterAttributeListAttributeCallback implements ChipClusters.CommissionerControlCluster.AttributeListAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21663,10 +21648,10 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(@Nullable Float value) {
+    public void onSuccess(List<Long> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Float");
-      responseValues.put(commandResponseInfo, value);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
@@ -21676,7 +21661,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedUnitTestingClusterNullableFloatDoubleAttributeCallback implements ChipClusters.UnitTestingCluster.NullableFloatDoubleAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedElectricalMeasurementClusterGeneratedCommandListAttributeCallback implements ChipClusters.ElectricalMeasurementCluster.GeneratedCommandListAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21684,10 +21669,10 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(@Nullable Double value) {
+    public void onSuccess(List<Long> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Double");
-      responseValues.put(commandResponseInfo, value);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
@@ -21697,7 +21682,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedUnitTestingClusterNullableOctetStringAttributeCallback implements ChipClusters.UnitTestingCluster.NullableOctetStringAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedElectricalMeasurementClusterAcceptedCommandListAttributeCallback implements ChipClusters.ElectricalMeasurementCluster.AcceptedCommandListAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21705,10 +21690,10 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(@Nullable byte[] value) {
+    public void onSuccess(List<Long> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "byte[]");
-      responseValues.put(commandResponseInfo, value);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
@@ -21718,7 +21703,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedUnitTestingClusterNullableCharStringAttributeCallback implements ChipClusters.UnitTestingCluster.NullableCharStringAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedElectricalMeasurementClusterEventListAttributeCallback implements ChipClusters.ElectricalMeasurementCluster.EventListAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21726,10 +21711,10 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(@Nullable String value) {
+    public void onSuccess(List<Long> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "String");
-      responseValues.put(commandResponseInfo, value);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
@@ -21739,7 +21724,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedUnitTestingClusterNullableEnumAttrAttributeCallback implements ChipClusters.UnitTestingCluster.NullableEnumAttrAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedElectricalMeasurementClusterAttributeListAttributeCallback implements ChipClusters.ElectricalMeasurementCluster.AttributeListAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21747,10 +21732,10 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(@Nullable Integer value) {
+    public void onSuccess(List<Long> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Integer");
-      responseValues.put(commandResponseInfo, value);
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
 
@@ -21760,7 +21745,8 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedUnitTestingClusterNullableStructAttributeCallback implements ChipClusters.UnitTestingCluster.NullableStructAttributeCallback, DelegatedClusterCallback {
+
+  public static class DelegatedUnitTestingClusterTestSpecificResponseCallback implements ChipClusters.UnitTestingCluster.TestSpecificResponseCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21768,20 +21754,21 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(@Nullable ChipStructs.UnitTestingClusterSimpleStruct value) {
+    public void onSuccess(Integer returnValue) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "ChipStructs.UnitTestingClusterSimpleStruct");
-      responseValues.put(commandResponseInfo, value);
+
+      CommandResponseInfo returnValueResponseValue = new CommandResponseInfo("returnValue", "Integer");
+      responseValues.put(returnValueResponseValue, returnValue);
       callback.onSuccess(responseValues);
     }
 
     @Override
-    public void onError(Exception ex) {
-      callback.onFailure(ex);
+    public void onError(Exception error) {
+      callback.onFailure(error);
     }
   }
 
-  public static class DelegatedUnitTestingClusterNullableRangeRestrictedInt8uAttributeCallback implements ChipClusters.UnitTestingCluster.NullableRangeRestrictedInt8uAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedUnitTestingClusterTestAddArgumentsResponseCallback implements ChipClusters.UnitTestingCluster.TestAddArgumentsResponseCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21789,20 +21776,21 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(@Nullable Integer value) {
+    public void onSuccess(Integer returnValue) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Integer");
-      responseValues.put(commandResponseInfo, value);
+
+      CommandResponseInfo returnValueResponseValue = new CommandResponseInfo("returnValue", "Integer");
+      responseValues.put(returnValueResponseValue, returnValue);
       callback.onSuccess(responseValues);
     }
 
     @Override
-    public void onError(Exception ex) {
-      callback.onFailure(ex);
+    public void onError(Exception error) {
+      callback.onFailure(error);
     }
   }
 
-  public static class DelegatedUnitTestingClusterNullableRangeRestrictedInt8sAttributeCallback implements ChipClusters.UnitTestingCluster.NullableRangeRestrictedInt8sAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedUnitTestingClusterTestSimpleArgumentResponseCallback implements ChipClusters.UnitTestingCluster.TestSimpleArgumentResponseCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21810,20 +21798,21 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(@Nullable Integer value) {
+    public void onSuccess(Boolean returnValue) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Integer");
-      responseValues.put(commandResponseInfo, value);
+
+      CommandResponseInfo returnValueResponseValue = new CommandResponseInfo("returnValue", "Boolean");
+      responseValues.put(returnValueResponseValue, returnValue);
       callback.onSuccess(responseValues);
     }
 
     @Override
-    public void onError(Exception ex) {
-      callback.onFailure(ex);
+    public void onError(Exception error) {
+      callback.onFailure(error);
     }
   }
 
-  public static class DelegatedUnitTestingClusterNullableRangeRestrictedInt16uAttributeCallback implements ChipClusters.UnitTestingCluster.NullableRangeRestrictedInt16uAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedUnitTestingClusterTestStructArrayArgumentResponseCallback implements ChipClusters.UnitTestingCluster.TestStructArrayArgumentResponseCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21831,20 +21820,35 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(@Nullable Integer value) {
+    public void onSuccess(ArrayList<ChipStructs.UnitTestingClusterNestedStructList> arg1, ArrayList<ChipStructs.UnitTestingClusterSimpleStruct> arg2, ArrayList<Integer> arg3, ArrayList<Boolean> arg4, Integer arg5, Boolean arg6) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Integer");
-      responseValues.put(commandResponseInfo, value);
+
+      // arg1: NestedStructList
+      // Conversion from this type to Java is not properly implemented yet
+
+      // arg2: SimpleStruct
+      // Conversion from this type to Java is not properly implemented yet
+
+      // arg3: SimpleEnum
+      // Conversion from this type to Java is not properly implemented yet
+
+      // arg4: boolean
+      // Conversion from this type to Java is not properly implemented yet
+
+      CommandResponseInfo arg5ResponseValue = new CommandResponseInfo("arg5", "Integer");
+      responseValues.put(arg5ResponseValue, arg5);
+      CommandResponseInfo arg6ResponseValue = new CommandResponseInfo("arg6", "Boolean");
+      responseValues.put(arg6ResponseValue, arg6);
       callback.onSuccess(responseValues);
     }
 
     @Override
-    public void onError(Exception ex) {
-      callback.onFailure(ex);
+    public void onError(Exception error) {
+      callback.onFailure(error);
     }
   }
 
-  public static class DelegatedUnitTestingClusterNullableRangeRestrictedInt16sAttributeCallback implements ChipClusters.UnitTestingCluster.NullableRangeRestrictedInt16sAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedUnitTestingClusterBooleanResponseCallback implements ChipClusters.UnitTestingCluster.BooleanResponseCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21852,20 +21856,21 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(@Nullable Integer value) {
+    public void onSuccess(Boolean value) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Integer");
-      responseValues.put(commandResponseInfo, value);
+
+      CommandResponseInfo valueResponseValue = new CommandResponseInfo("value", "Boolean");
+      responseValues.put(valueResponseValue, value);
       callback.onSuccess(responseValues);
     }
 
     @Override
-    public void onError(Exception ex) {
-      callback.onFailure(ex);
+    public void onError(Exception error) {
+      callback.onFailure(error);
     }
   }
 
-  public static class DelegatedUnitTestingClusterNullableGlobalEnumAttributeCallback implements ChipClusters.UnitTestingCluster.NullableGlobalEnumAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedUnitTestingClusterTestListInt8UReverseResponseCallback implements ChipClusters.UnitTestingCluster.TestListInt8UReverseResponseCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21873,20 +21878,22 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(@Nullable Integer value) {
+    public void onSuccess(ArrayList<Integer> arg1) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Integer");
-      responseValues.put(commandResponseInfo, value);
+
+      // arg1: int8u
+      // Conversion from this type to Java is not properly implemented yet
+
       callback.onSuccess(responseValues);
     }
 
     @Override
-    public void onError(Exception ex) {
-      callback.onFailure(ex);
+    public void onError(Exception error) {
+      callback.onFailure(error);
     }
   }
 
-  public static class DelegatedUnitTestingClusterNullableGlobalStructAttributeCallback implements ChipClusters.UnitTestingCluster.NullableGlobalStructAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedUnitTestingClusterTestEnumsResponseCallback implements ChipClusters.UnitTestingCluster.TestEnumsResponseCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21894,20 +21901,23 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(@Nullable ChipStructs.UnitTestingClusterTestGlobalStruct value) {
+    public void onSuccess(Integer arg1, Integer arg2) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "ChipStructs.UnitTestingClusterTestGlobalStruct");
-      responseValues.put(commandResponseInfo, value);
+
+      CommandResponseInfo arg1ResponseValue = new CommandResponseInfo("arg1", "Integer");
+      responseValues.put(arg1ResponseValue, arg1);
+      CommandResponseInfo arg2ResponseValue = new CommandResponseInfo("arg2", "Integer");
+      responseValues.put(arg2ResponseValue, arg2);
       callback.onSuccess(responseValues);
     }
 
     @Override
-    public void onError(Exception ex) {
-      callback.onFailure(ex);
+    public void onError(Exception error) {
+      callback.onFailure(error);
     }
   }
 
-  public static class DelegatedUnitTestingClusterGeneratedCommandListAttributeCallback implements ChipClusters.UnitTestingCluster.GeneratedCommandListAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedUnitTestingClusterTestNullableOptionalResponseCallback implements ChipClusters.UnitTestingCluster.TestNullableOptionalResponseCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21915,20 +21925,27 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(List<Long> valueList) {
+    public void onSuccess(Boolean wasPresent, Optional<Boolean> wasNull, Optional<Integer> value, @Nullable Optional<Integer> originalValue) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
-      responseValues.put(commandResponseInfo, valueList);
+
+      CommandResponseInfo wasPresentResponseValue = new CommandResponseInfo("wasPresent", "Boolean");
+      responseValues.put(wasPresentResponseValue, wasPresent);
+      CommandResponseInfo wasNullResponseValue = new CommandResponseInfo("wasNull", "Optional<Boolean>");
+      responseValues.put(wasNullResponseValue, wasNull);
+      CommandResponseInfo valueResponseValue = new CommandResponseInfo("value", "Optional<Integer>");
+      responseValues.put(valueResponseValue, value);
+      CommandResponseInfo originalValueResponseValue = new CommandResponseInfo("originalValue", "Optional<Integer>");
+      responseValues.put(originalValueResponseValue, originalValue);
       callback.onSuccess(responseValues);
     }
 
     @Override
-    public void onError(Exception ex) {
-      callback.onFailure(ex);
+    public void onError(Exception error) {
+      callback.onFailure(error);
     }
   }
 
-  public static class DelegatedUnitTestingClusterAcceptedCommandListAttributeCallback implements ChipClusters.UnitTestingCluster.AcceptedCommandListAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedUnitTestingClusterTestComplexNullableOptionalResponseCallback implements ChipClusters.UnitTestingCluster.TestComplexNullableOptionalResponseCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21936,20 +21953,78 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(List<Long> valueList) {
+    public void onSuccess(Boolean nullableIntWasNull, Optional<Integer> nullableIntValue, Boolean optionalIntWasPresent, Optional<Integer> optionalIntValue, Boolean nullableOptionalIntWasPresent, Optional<Boolean> nullableOptionalIntWasNull, Optional<Integer> nullableOptionalIntValue, Boolean nullableStringWasNull, Optional<String> nullableStringValue, Boolean optionalStringWasPresent, Optional<String> optionalStringValue, Boolean nullableOptionalStringWasPresent, Optional<Boolean> nullableOptionalStringWasNull, Optional<String> nullableOptionalStringValue, Boolean nullableStructWasNull, Optional<ChipStructs.UnitTestingClusterSimpleStruct> nullableStructValue, Boolean optionalStructWasPresent, Optional<ChipStructs.UnitTestingClusterSimpleStruct> optionalStructValue, Boolean nullableOptionalStructWasPresent, Optional<Boolean> nullableOptionalStructWasNull, Optional<ChipStructs.UnitTestingClusterSimpleStruct> nullableOptionalStructValue, Boolean nullableListWasNull, Optional<ArrayList<Integer>> nullableListValue, Boolean optionalListWasPresent, Optional<ArrayList<Integer>> optionalListValue, Boolean nullableOptionalListWasPresent, Optional<Boolean> nullableOptionalListWasNull, Optional<ArrayList<Integer>> nullableOptionalListValue) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
-      responseValues.put(commandResponseInfo, valueList);
+
+      CommandResponseInfo nullableIntWasNullResponseValue = new CommandResponseInfo("nullableIntWasNull", "Boolean");
+      responseValues.put(nullableIntWasNullResponseValue, nullableIntWasNull);
+      CommandResponseInfo nullableIntValueResponseValue = new CommandResponseInfo("nullableIntValue", "Optional<Integer>");
+      responseValues.put(nullableIntValueResponseValue, nullableIntValue);
+      CommandResponseInfo optionalIntWasPresentResponseValue = new CommandResponseInfo("optionalIntWasPresent", "Boolean");
+      responseValues.put(optionalIntWasPresentResponseValue, optionalIntWasPresent);
+      CommandResponseInfo optionalIntValueResponseValue = new CommandResponseInfo("optionalIntValue", "Optional<Integer>");
+      responseValues.put(optionalIntValueResponseValue, optionalIntValue);
+      CommandResponseInfo nullableOptionalIntWasPresentResponseValue = new CommandResponseInfo("nullableOptionalIntWasPresent", "Boolean");
+      responseValues.put(nullableOptionalIntWasPresentResponseValue, nullableOptionalIntWasPresent);
+      CommandResponseInfo nullableOptionalIntWasNullResponseValue = new CommandResponseInfo("nullableOptionalIntWasNull", "Optional<Boolean>");
+      responseValues.put(nullableOptionalIntWasNullResponseValue, nullableOptionalIntWasNull);
+      CommandResponseInfo nullableOptionalIntValueResponseValue = new CommandResponseInfo("nullableOptionalIntValue", "Optional<Integer>");
+      responseValues.put(nullableOptionalIntValueResponseValue, nullableOptionalIntValue);
+      CommandResponseInfo nullableStringWasNullResponseValue = new CommandResponseInfo("nullableStringWasNull", "Boolean");
+      responseValues.put(nullableStringWasNullResponseValue, nullableStringWasNull);
+      CommandResponseInfo nullableStringValueResponseValue = new CommandResponseInfo("nullableStringValue", "Optional<String>");
+      responseValues.put(nullableStringValueResponseValue, nullableStringValue);
+      CommandResponseInfo optionalStringWasPresentResponseValue = new CommandResponseInfo("optionalStringWasPresent", "Boolean");
+      responseValues.put(optionalStringWasPresentResponseValue, optionalStringWasPresent);
+      CommandResponseInfo optionalStringValueResponseValue = new CommandResponseInfo("optionalStringValue", "Optional<String>");
+      responseValues.put(optionalStringValueResponseValue, optionalStringValue);
+      CommandResponseInfo nullableOptionalStringWasPresentResponseValue = new CommandResponseInfo("nullableOptionalStringWasPresent", "Boolean");
+      responseValues.put(nullableOptionalStringWasPresentResponseValue, nullableOptionalStringWasPresent);
+      CommandResponseInfo nullableOptionalStringWasNullResponseValue = new CommandResponseInfo("nullableOptionalStringWasNull", "Optional<Boolean>");
+      responseValues.put(nullableOptionalStringWasNullResponseValue, nullableOptionalStringWasNull);
+      CommandResponseInfo nullableOptionalStringValueResponseValue = new CommandResponseInfo("nullableOptionalStringValue", "Optional<String>");
+      responseValues.put(nullableOptionalStringValueResponseValue, nullableOptionalStringValue);
+      CommandResponseInfo nullableStructWasNullResponseValue = new CommandResponseInfo("nullableStructWasNull", "Boolean");
+      responseValues.put(nullableStructWasNullResponseValue, nullableStructWasNull);
+      // nullableStructValue: Struct SimpleStruct
+      // Conversion from this type to Java is not properly implemented yet
+      CommandResponseInfo optionalStructWasPresentResponseValue = new CommandResponseInfo("optionalStructWasPresent", "Boolean");
+      responseValues.put(optionalStructWasPresentResponseValue, optionalStructWasPresent);
+      // optionalStructValue: Struct SimpleStruct
+      // Conversion from this type to Java is not properly implemented yet
+      CommandResponseInfo nullableOptionalStructWasPresentResponseValue = new CommandResponseInfo("nullableOptionalStructWasPresent", "Boolean");
+      responseValues.put(nullableOptionalStructWasPresentResponseValue, nullableOptionalStructWasPresent);
+      CommandResponseInfo nullableOptionalStructWasNullResponseValue = new CommandResponseInfo("nullableOptionalStructWasNull", "Optional<Boolean>");
+      responseValues.put(nullableOptionalStructWasNullResponseValue, nullableOptionalStructWasNull);
+      // nullableOptionalStructValue: Struct SimpleStruct
+      // Conversion from this type to Java is not properly implemented yet
+      CommandResponseInfo nullableListWasNullResponseValue = new CommandResponseInfo("nullableListWasNull", "Boolean");
+      responseValues.put(nullableListWasNullResponseValue, nullableListWasNull);
+      // nullableListValue: SimpleEnum
+      // Conversion from this type to Java is not properly implemented yet
+
+      CommandResponseInfo optionalListWasPresentResponseValue = new CommandResponseInfo("optionalListWasPresent", "Boolean");
+      responseValues.put(optionalListWasPresentResponseValue, optionalListWasPresent);
+      // optionalListValue: SimpleEnum
+      // Conversion from this type to Java is not properly implemented yet
+
+      CommandResponseInfo nullableOptionalListWasPresentResponseValue = new CommandResponseInfo("nullableOptionalListWasPresent", "Boolean");
+      responseValues.put(nullableOptionalListWasPresentResponseValue, nullableOptionalListWasPresent);
+      CommandResponseInfo nullableOptionalListWasNullResponseValue = new CommandResponseInfo("nullableOptionalListWasNull", "Optional<Boolean>");
+      responseValues.put(nullableOptionalListWasNullResponseValue, nullableOptionalListWasNull);
+      // nullableOptionalListValue: SimpleEnum
+      // Conversion from this type to Java is not properly implemented yet
+
       callback.onSuccess(responseValues);
     }
 
     @Override
-    public void onError(Exception ex) {
-      callback.onFailure(ex);
+    public void onError(Exception error) {
+      callback.onFailure(error);
     }
   }
 
-  public static class DelegatedUnitTestingClusterEventListAttributeCallback implements ChipClusters.UnitTestingCluster.EventListAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedUnitTestingClusterSimpleStructResponseCallback implements ChipClusters.UnitTestingCluster.SimpleStructResponseCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21957,20 +22032,21 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(List<Long> valueList) {
+    public void onSuccess(ChipStructs.UnitTestingClusterSimpleStruct arg1) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
-      responseValues.put(commandResponseInfo, valueList);
+
+      // arg1: Struct SimpleStruct
+      // Conversion from this type to Java is not properly implemented yet
       callback.onSuccess(responseValues);
     }
 
     @Override
-    public void onError(Exception ex) {
-      callback.onFailure(ex);
+    public void onError(Exception error) {
+      callback.onFailure(error);
     }
   }
 
-  public static class DelegatedUnitTestingClusterAttributeListAttributeCallback implements ChipClusters.UnitTestingCluster.AttributeListAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedUnitTestingClusterTestEmitTestEventResponseCallback implements ChipClusters.UnitTestingCluster.TestEmitTestEventResponseCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21978,20 +22054,21 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(List<Long> valueList) {
+    public void onSuccess(Long value) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
-      responseValues.put(commandResponseInfo, valueList);
+
+      CommandResponseInfo valueResponseValue = new CommandResponseInfo("value", "Long");
+      responseValues.put(valueResponseValue, value);
       callback.onSuccess(responseValues);
     }
 
     @Override
-    public void onError(Exception ex) {
-      callback.onFailure(ex);
+    public void onError(Exception error) {
+      callback.onFailure(error);
     }
   }
 
-  public static class DelegatedFaultInjectionClusterGeneratedCommandListAttributeCallback implements ChipClusters.FaultInjectionCluster.GeneratedCommandListAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedUnitTestingClusterTestEmitTestFabricScopedEventResponseCallback implements ChipClusters.UnitTestingCluster.TestEmitTestFabricScopedEventResponseCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -21999,20 +22076,21 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(List<Long> valueList) {
+    public void onSuccess(Long value) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
-      responseValues.put(commandResponseInfo, valueList);
+
+      CommandResponseInfo valueResponseValue = new CommandResponseInfo("value", "Long");
+      responseValues.put(valueResponseValue, value);
       callback.onSuccess(responseValues);
     }
 
     @Override
-    public void onError(Exception ex) {
-      callback.onFailure(ex);
+    public void onError(Exception error) {
+      callback.onFailure(error);
     }
   }
 
-  public static class DelegatedFaultInjectionClusterAcceptedCommandListAttributeCallback implements ChipClusters.FaultInjectionCluster.AcceptedCommandListAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedUnitTestingClusterTestBatchHelperResponseCallback implements ChipClusters.UnitTestingCluster.TestBatchHelperResponseCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -22020,20 +22098,21 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(List<Long> valueList) {
+    public void onSuccess(byte[] buffer) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
-      responseValues.put(commandResponseInfo, valueList);
+
+      CommandResponseInfo bufferResponseValue = new CommandResponseInfo("buffer", "byte[]");
+      responseValues.put(bufferResponseValue, buffer);
       callback.onSuccess(responseValues);
     }
 
     @Override
-    public void onError(Exception ex) {
-      callback.onFailure(ex);
+    public void onError(Exception error) {
+      callback.onFailure(error);
     }
   }
 
-  public static class DelegatedFaultInjectionClusterEventListAttributeCallback implements ChipClusters.FaultInjectionCluster.EventListAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedUnitTestingClusterStringEchoResponseCallback implements ChipClusters.UnitTestingCluster.StringEchoResponseCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -22041,20 +22120,21 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(List<Long> valueList) {
+    public void onSuccess(byte[] payload) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
-      responseValues.put(commandResponseInfo, valueList);
+
+      CommandResponseInfo payloadResponseValue = new CommandResponseInfo("payload", "byte[]");
+      responseValues.put(payloadResponseValue, payload);
       callback.onSuccess(responseValues);
     }
 
     @Override
-    public void onError(Exception ex) {
-      callback.onFailure(ex);
+    public void onError(Exception error) {
+      callback.onFailure(error);
     }
   }
 
-  public static class DelegatedFaultInjectionClusterAttributeListAttributeCallback implements ChipClusters.FaultInjectionCluster.AttributeListAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedUnitTestingClusterGlobalEchoResponseCallback implements ChipClusters.UnitTestingCluster.GlobalEchoResponseCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -22062,21 +22142,23 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(List<Long> valueList) {
+    public void onSuccess(ChipStructs.UnitTestingClusterTestGlobalStruct field1, Integer field2) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
-      responseValues.put(commandResponseInfo, valueList);
+
+      // field1: Struct TestGlobalStruct
+      // Conversion from this type to Java is not properly implemented yet
+      CommandResponseInfo field2ResponseValue = new CommandResponseInfo("field2", "Integer");
+      responseValues.put(field2ResponseValue, field2);
       callback.onSuccess(responseValues);
     }
 
     @Override
-    public void onError(Exception ex) {
-      callback.onFailure(ex);
+    public void onError(Exception error) {
+      callback.onFailure(error);
     }
   }
 
-
-  public static class DelegatedSampleMeiClusterAddArgumentsResponseCallback implements ChipClusters.SampleMeiCluster.AddArgumentsResponseCallback, DelegatedClusterCallback {
+  public static class DelegatedUnitTestingClusterTestDifferentVendorMeiResponseCallback implements ChipClusters.UnitTestingCluster.TestDifferentVendorMeiResponseCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -22084,11 +22166,13 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(Integer returnValue) {
+    public void onSuccess(Integer arg1, Long eventNumber) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
 
-      CommandResponseInfo returnValueResponseValue = new CommandResponseInfo("returnValue", "Integer");
-      responseValues.put(returnValueResponseValue, returnValue);
+      CommandResponseInfo arg1ResponseValue = new CommandResponseInfo("arg1", "Integer");
+      responseValues.put(arg1ResponseValue, arg1);
+      CommandResponseInfo eventNumberResponseValue = new CommandResponseInfo("eventNumber", "Long");
+      responseValues.put(eventNumberResponseValue, eventNumber);
       callback.onSuccess(responseValues);
     }
 
@@ -22097,7 +22181,7 @@ public void onError(Exception error) {
       callback.onFailure(error);
     }
   }
-  public static class DelegatedSampleMeiClusterGeneratedCommandListAttributeCallback implements ChipClusters.SampleMeiCluster.GeneratedCommandListAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedUnitTestingClusterListInt8uAttributeCallback implements ChipClusters.UnitTestingCluster.ListInt8uAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -22105,9 +22189,9 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(List<Long> valueList) {
+    public void onSuccess(List<Integer> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Integer>");
       responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
@@ -22118,7 +22202,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedSampleMeiClusterAcceptedCommandListAttributeCallback implements ChipClusters.SampleMeiCluster.AcceptedCommandListAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedUnitTestingClusterListOctetStringAttributeCallback implements ChipClusters.UnitTestingCluster.ListOctetStringAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -22126,9 +22210,9 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(List<Long> valueList) {
+    public void onSuccess(List<byte[]> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<byte[]>");
       responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
@@ -22139,7 +22223,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedSampleMeiClusterEventListAttributeCallback implements ChipClusters.SampleMeiCluster.EventListAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedUnitTestingClusterListStructOctetStringAttributeCallback implements ChipClusters.UnitTestingCluster.ListStructOctetStringAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -22147,9 +22231,9 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(List<Long> valueList) {
+    public void onSuccess(List<ChipStructs.UnitTestingClusterTestListStructOctet> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<ChipStructs.UnitTestingClusterTestListStructOctet>");
       responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
@@ -22160,7 +22244,7 @@ public void onError(Exception ex) {
     }
   }
 
-  public static class DelegatedSampleMeiClusterAttributeListAttributeCallback implements ChipClusters.SampleMeiCluster.AttributeListAttributeCallback, DelegatedClusterCallback {
+  public static class DelegatedUnitTestingClusterListNullablesAndOptionalsStructAttributeCallback implements ChipClusters.UnitTestingCluster.ListNullablesAndOptionalsStructAttributeCallback, DelegatedClusterCallback {
     private ClusterCommandCallback callback;
     @Override
     public void setCallbackDelegate(ClusterCommandCallback callback) {
@@ -22168,9 +22252,9 @@ public void setCallbackDelegate(ClusterCommandCallback callback) {
     }
 
     @Override
-    public void onSuccess(List<Long> valueList) {
+    public void onSuccess(List<ChipStructs.UnitTestingClusterNullablesAndOptionalsStruct> valueList) {
       Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
-      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<ChipStructs.UnitTestingClusterNullablesAndOptionalsStruct>");
       responseValues.put(commandResponseInfo, valueList);
       callback.onSuccess(responseValues);
     }
@@ -22181,6848 +22265,8843 @@ public void onError(Exception ex) {
     }
   }
 
+  public static class DelegatedUnitTestingClusterStructAttrAttributeCallback implements ChipClusters.UnitTestingCluster.StructAttrAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-  public Map<String, ClusterInfo> getClusterMap() {
-    Map<String, ClusterInfo> clusterMap = initializeClusterMap();
-    Map<String, Map<String, InteractionInfo>> commandMap = getCommandMap();
-    combineCommand(clusterMap, commandMap);
-    Map<String, Map<String, InteractionInfo>> readAttributeMap = new ClusterReadMapping().getReadAttributeMap();
-    combineCommand(clusterMap, readAttributeMap);
-    Map<String, Map<String, InteractionInfo>> writeAttributeMap = new ClusterWriteMapping().getWriteAttributeMap();
-    combineCommand(clusterMap, writeAttributeMap);
-    return clusterMap;
- }
-
-  public Map<String, ClusterInfo> initializeClusterMap() {
-    Map<String, ClusterInfo> clusterMap = new HashMap<>();
-
-    ClusterInfo identifyClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.IdentifyCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("identify", identifyClusterInfo);
+    @Override
+    public void onSuccess(ChipStructs.UnitTestingClusterSimpleStruct value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "ChipStructs.UnitTestingClusterSimpleStruct");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo groupsClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.GroupsCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("groups", groupsClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo onOffClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.OnOffCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("onOff", onOffClusterInfo);
+  public static class DelegatedUnitTestingClusterListLongOctetStringAttributeCallback implements ChipClusters.UnitTestingCluster.ListLongOctetStringAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo onOffSwitchConfigurationClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.OnOffSwitchConfigurationCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("onOffSwitchConfiguration", onOffSwitchConfigurationClusterInfo);
-
-    ClusterInfo levelControlClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.LevelControlCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("levelControl", levelControlClusterInfo);
+    @Override
+    public void onSuccess(List<byte[]> valueList) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<byte[]>");
+      responseValues.put(commandResponseInfo, valueList);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo binaryInputBasicClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.BinaryInputBasicCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("binaryInputBasic", binaryInputBasicClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo pulseWidthModulationClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.PulseWidthModulationCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("pulseWidthModulation", pulseWidthModulationClusterInfo);
+  public static class DelegatedUnitTestingClusterListFabricScopedAttributeCallback implements ChipClusters.UnitTestingCluster.ListFabricScopedAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo descriptorClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.DescriptorCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("descriptor", descriptorClusterInfo);
+    @Override
+    public void onSuccess(List<ChipStructs.UnitTestingClusterTestFabricScoped> valueList) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<ChipStructs.UnitTestingClusterTestFabricScoped>");
+      responseValues.put(commandResponseInfo, valueList);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo bindingClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.BindingCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("binding", bindingClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo accessControlClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.AccessControlCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("accessControl", accessControlClusterInfo);
+  public static class DelegatedUnitTestingClusterGlobalStructAttributeCallback implements ChipClusters.UnitTestingCluster.GlobalStructAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo actionsClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.ActionsCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("actions", actionsClusterInfo);
+    @Override
+    public void onSuccess(ChipStructs.UnitTestingClusterTestGlobalStruct value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "ChipStructs.UnitTestingClusterTestGlobalStruct");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo basicInformationClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.BasicInformationCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("basicInformation", basicInformationClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo otaSoftwareUpdateProviderClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.OtaSoftwareUpdateProviderCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("otaSoftwareUpdateProvider", otaSoftwareUpdateProviderClusterInfo);
+  public static class DelegatedUnitTestingClusterNullableBooleanAttributeCallback implements ChipClusters.UnitTestingCluster.NullableBooleanAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo otaSoftwareUpdateRequestorClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.OtaSoftwareUpdateRequestorCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("otaSoftwareUpdateRequestor", otaSoftwareUpdateRequestorClusterInfo);
+    @Override
+    public void onSuccess(@Nullable Boolean value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Boolean");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo localizationConfigurationClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.LocalizationConfigurationCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("localizationConfiguration", localizationConfigurationClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo timeFormatLocalizationClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.TimeFormatLocalizationCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("timeFormatLocalization", timeFormatLocalizationClusterInfo);
+  public static class DelegatedUnitTestingClusterNullableBitmap8AttributeCallback implements ChipClusters.UnitTestingCluster.NullableBitmap8AttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo unitLocalizationClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.UnitLocalizationCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("unitLocalization", unitLocalizationClusterInfo);
+    @Override
+    public void onSuccess(@Nullable Integer value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Integer");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo powerSourceConfigurationClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.PowerSourceConfigurationCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("powerSourceConfiguration", powerSourceConfigurationClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo powerSourceClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.PowerSourceCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("powerSource", powerSourceClusterInfo);
+  public static class DelegatedUnitTestingClusterNullableBitmap16AttributeCallback implements ChipClusters.UnitTestingCluster.NullableBitmap16AttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo generalCommissioningClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.GeneralCommissioningCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("generalCommissioning", generalCommissioningClusterInfo);
+    @Override
+    public void onSuccess(@Nullable Integer value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Integer");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo networkCommissioningClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.NetworkCommissioningCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("networkCommissioning", networkCommissioningClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo diagnosticLogsClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.DiagnosticLogsCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("diagnosticLogs", diagnosticLogsClusterInfo);
+  public static class DelegatedUnitTestingClusterNullableBitmap32AttributeCallback implements ChipClusters.UnitTestingCluster.NullableBitmap32AttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo generalDiagnosticsClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.GeneralDiagnosticsCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("generalDiagnostics", generalDiagnosticsClusterInfo);
+    @Override
+    public void onSuccess(@Nullable Long value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Long");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo softwareDiagnosticsClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.SoftwareDiagnosticsCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("softwareDiagnostics", softwareDiagnosticsClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo threadNetworkDiagnosticsClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.ThreadNetworkDiagnosticsCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("threadNetworkDiagnostics", threadNetworkDiagnosticsClusterInfo);
+  public static class DelegatedUnitTestingClusterNullableBitmap64AttributeCallback implements ChipClusters.UnitTestingCluster.NullableBitmap64AttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo wiFiNetworkDiagnosticsClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.WiFiNetworkDiagnosticsCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("wiFiNetworkDiagnostics", wiFiNetworkDiagnosticsClusterInfo);
+    @Override
+    public void onSuccess(@Nullable Long value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Long");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo ethernetNetworkDiagnosticsClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.EthernetNetworkDiagnosticsCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("ethernetNetworkDiagnostics", ethernetNetworkDiagnosticsClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo timeSynchronizationClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.TimeSynchronizationCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("timeSynchronization", timeSynchronizationClusterInfo);
+  public static class DelegatedUnitTestingClusterNullableInt8uAttributeCallback implements ChipClusters.UnitTestingCluster.NullableInt8uAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo bridgedDeviceBasicInformationClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.BridgedDeviceBasicInformationCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("bridgedDeviceBasicInformation", bridgedDeviceBasicInformationClusterInfo);
+    @Override
+    public void onSuccess(@Nullable Integer value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Integer");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo switchClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.SwitchCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("switch", switchClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo administratorCommissioningClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.AdministratorCommissioningCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("administratorCommissioning", administratorCommissioningClusterInfo);
+  public static class DelegatedUnitTestingClusterNullableInt16uAttributeCallback implements ChipClusters.UnitTestingCluster.NullableInt16uAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo operationalCredentialsClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.OperationalCredentialsCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("operationalCredentials", operationalCredentialsClusterInfo);
+    @Override
+    public void onSuccess(@Nullable Integer value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Integer");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo groupKeyManagementClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.GroupKeyManagementCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("groupKeyManagement", groupKeyManagementClusterInfo);
-
-    ClusterInfo fixedLabelClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.FixedLabelCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("fixedLabel", fixedLabelClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo userLabelClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.UserLabelCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("userLabel", userLabelClusterInfo);
+  public static class DelegatedUnitTestingClusterNullableInt24uAttributeCallback implements ChipClusters.UnitTestingCluster.NullableInt24uAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo proxyConfigurationClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.ProxyConfigurationCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("proxyConfiguration", proxyConfigurationClusterInfo);
+    @Override
+    public void onSuccess(@Nullable Long value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Long");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo proxyDiscoveryClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.ProxyDiscoveryCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("proxyDiscovery", proxyDiscoveryClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo proxyValidClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.ProxyValidCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("proxyValid", proxyValidClusterInfo);
+  public static class DelegatedUnitTestingClusterNullableInt32uAttributeCallback implements ChipClusters.UnitTestingCluster.NullableInt32uAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo booleanStateClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.BooleanStateCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("booleanState", booleanStateClusterInfo);
+    @Override
+    public void onSuccess(@Nullable Long value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Long");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo icdManagementClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.IcdManagementCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("icdManagement", icdManagementClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo timerClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.TimerCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("timer", timerClusterInfo);
+  public static class DelegatedUnitTestingClusterNullableInt40uAttributeCallback implements ChipClusters.UnitTestingCluster.NullableInt40uAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo ovenCavityOperationalStateClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.OvenCavityOperationalStateCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("ovenCavityOperationalState", ovenCavityOperationalStateClusterInfo);
+    @Override
+    public void onSuccess(@Nullable Long value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Long");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo ovenModeClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.OvenModeCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("ovenMode", ovenModeClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo laundryDryerControlsClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.LaundryDryerControlsCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("laundryDryerControls", laundryDryerControlsClusterInfo);
+  public static class DelegatedUnitTestingClusterNullableInt48uAttributeCallback implements ChipClusters.UnitTestingCluster.NullableInt48uAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo modeSelectClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.ModeSelectCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("modeSelect", modeSelectClusterInfo);
+    @Override
+    public void onSuccess(@Nullable Long value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Long");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo laundryWasherModeClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.LaundryWasherModeCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("laundryWasherMode", laundryWasherModeClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo refrigeratorAndTemperatureControlledCabinetModeClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.RefrigeratorAndTemperatureControlledCabinetModeCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("refrigeratorAndTemperatureControlledCabinetMode", refrigeratorAndTemperatureControlledCabinetModeClusterInfo);
+  public static class DelegatedUnitTestingClusterNullableInt56uAttributeCallback implements ChipClusters.UnitTestingCluster.NullableInt56uAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo laundryWasherControlsClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.LaundryWasherControlsCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("laundryWasherControls", laundryWasherControlsClusterInfo);
+    @Override
+    public void onSuccess(@Nullable Long value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Long");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo rvcRunModeClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.RvcRunModeCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("rvcRunMode", rvcRunModeClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo rvcCleanModeClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.RvcCleanModeCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("rvcCleanMode", rvcCleanModeClusterInfo);
+  public static class DelegatedUnitTestingClusterNullableInt64uAttributeCallback implements ChipClusters.UnitTestingCluster.NullableInt64uAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo temperatureControlClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.TemperatureControlCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("temperatureControl", temperatureControlClusterInfo);
+    @Override
+    public void onSuccess(@Nullable Long value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Long");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo refrigeratorAlarmClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.RefrigeratorAlarmCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("refrigeratorAlarm", refrigeratorAlarmClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo dishwasherModeClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.DishwasherModeCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("dishwasherMode", dishwasherModeClusterInfo);
+  public static class DelegatedUnitTestingClusterNullableInt8sAttributeCallback implements ChipClusters.UnitTestingCluster.NullableInt8sAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo airQualityClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.AirQualityCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("airQuality", airQualityClusterInfo);
+    @Override
+    public void onSuccess(@Nullable Integer value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Integer");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo smokeCoAlarmClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.SmokeCoAlarmCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("smokeCoAlarm", smokeCoAlarmClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo dishwasherAlarmClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.DishwasherAlarmCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("dishwasherAlarm", dishwasherAlarmClusterInfo);
+  public static class DelegatedUnitTestingClusterNullableInt16sAttributeCallback implements ChipClusters.UnitTestingCluster.NullableInt16sAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo microwaveOvenModeClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.MicrowaveOvenModeCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("microwaveOvenMode", microwaveOvenModeClusterInfo);
+    @Override
+    public void onSuccess(@Nullable Integer value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Integer");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo microwaveOvenControlClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.MicrowaveOvenControlCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("microwaveOvenControl", microwaveOvenControlClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo operationalStateClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.OperationalStateCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("operationalState", operationalStateClusterInfo);
+  public static class DelegatedUnitTestingClusterNullableInt24sAttributeCallback implements ChipClusters.UnitTestingCluster.NullableInt24sAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo rvcOperationalStateClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.RvcOperationalStateCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("rvcOperationalState", rvcOperationalStateClusterInfo);
+    @Override
+    public void onSuccess(@Nullable Long value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Long");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo scenesManagementClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.ScenesManagementCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("scenesManagement", scenesManagementClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo hepaFilterMonitoringClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.HepaFilterMonitoringCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("hepaFilterMonitoring", hepaFilterMonitoringClusterInfo);
-
-    ClusterInfo activatedCarbonFilterMonitoringClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.ActivatedCarbonFilterMonitoringCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("activatedCarbonFilterMonitoring", activatedCarbonFilterMonitoringClusterInfo);
+  public static class DelegatedUnitTestingClusterNullableInt32sAttributeCallback implements ChipClusters.UnitTestingCluster.NullableInt32sAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo booleanStateConfigurationClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.BooleanStateConfigurationCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("booleanStateConfiguration", booleanStateConfigurationClusterInfo);
+    @Override
+    public void onSuccess(@Nullable Long value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Long");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo valveConfigurationAndControlClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.ValveConfigurationAndControlCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("valveConfigurationAndControl", valveConfigurationAndControlClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo electricalPowerMeasurementClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.ElectricalPowerMeasurementCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("electricalPowerMeasurement", electricalPowerMeasurementClusterInfo);
+  public static class DelegatedUnitTestingClusterNullableInt40sAttributeCallback implements ChipClusters.UnitTestingCluster.NullableInt40sAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo electricalEnergyMeasurementClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.ElectricalEnergyMeasurementCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("electricalEnergyMeasurement", electricalEnergyMeasurementClusterInfo);
+    @Override
+    public void onSuccess(@Nullable Long value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Long");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo waterHeaterManagementClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.WaterHeaterManagementCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("waterHeaterManagement", waterHeaterManagementClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo demandResponseLoadControlClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.DemandResponseLoadControlCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("demandResponseLoadControl", demandResponseLoadControlClusterInfo);
+  public static class DelegatedUnitTestingClusterNullableInt48sAttributeCallback implements ChipClusters.UnitTestingCluster.NullableInt48sAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo messagesClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.MessagesCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("messages", messagesClusterInfo);
+    @Override
+    public void onSuccess(@Nullable Long value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Long");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo deviceEnergyManagementClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.DeviceEnergyManagementCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("deviceEnergyManagement", deviceEnergyManagementClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo energyEvseClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.EnergyEvseCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("energyEvse", energyEvseClusterInfo);
+  public static class DelegatedUnitTestingClusterNullableInt56sAttributeCallback implements ChipClusters.UnitTestingCluster.NullableInt56sAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo energyPreferenceClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.EnergyPreferenceCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("energyPreference", energyPreferenceClusterInfo);
+    @Override
+    public void onSuccess(@Nullable Long value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Long");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo powerTopologyClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.PowerTopologyCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("powerTopology", powerTopologyClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo energyEvseModeClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.EnergyEvseModeCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("energyEvseMode", energyEvseModeClusterInfo);
+  public static class DelegatedUnitTestingClusterNullableInt64sAttributeCallback implements ChipClusters.UnitTestingCluster.NullableInt64sAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo waterHeaterModeClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.WaterHeaterModeCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("waterHeaterMode", waterHeaterModeClusterInfo);
+    @Override
+    public void onSuccess(@Nullable Long value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Long");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo deviceEnergyManagementModeClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.DeviceEnergyManagementModeCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("deviceEnergyManagementMode", deviceEnergyManagementModeClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo doorLockClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.DoorLockCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("doorLock", doorLockClusterInfo);
+  public static class DelegatedUnitTestingClusterNullableEnum8AttributeCallback implements ChipClusters.UnitTestingCluster.NullableEnum8AttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo windowCoveringClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.WindowCoveringCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("windowCovering", windowCoveringClusterInfo);
+    @Override
+    public void onSuccess(@Nullable Integer value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Integer");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo barrierControlClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.BarrierControlCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("barrierControl", barrierControlClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo serviceAreaClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.ServiceAreaCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("serviceArea", serviceAreaClusterInfo);
+  public static class DelegatedUnitTestingClusterNullableEnum16AttributeCallback implements ChipClusters.UnitTestingCluster.NullableEnum16AttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo pumpConfigurationAndControlClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.PumpConfigurationAndControlCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("pumpConfigurationAndControl", pumpConfigurationAndControlClusterInfo);
+    @Override
+    public void onSuccess(@Nullable Integer value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Integer");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo thermostatClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.ThermostatCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("thermostat", thermostatClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo fanControlClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.FanControlCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("fanControl", fanControlClusterInfo);
+  public static class DelegatedUnitTestingClusterNullableFloatSingleAttributeCallback implements ChipClusters.UnitTestingCluster.NullableFloatSingleAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo thermostatUserInterfaceConfigurationClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.ThermostatUserInterfaceConfigurationCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("thermostatUserInterfaceConfiguration", thermostatUserInterfaceConfigurationClusterInfo);
+    @Override
+    public void onSuccess(@Nullable Float value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Float");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo colorControlClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.ColorControlCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("colorControl", colorControlClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo ballastConfigurationClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.BallastConfigurationCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("ballastConfiguration", ballastConfigurationClusterInfo);
+  public static class DelegatedUnitTestingClusterNullableFloatDoubleAttributeCallback implements ChipClusters.UnitTestingCluster.NullableFloatDoubleAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo illuminanceMeasurementClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.IlluminanceMeasurementCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("illuminanceMeasurement", illuminanceMeasurementClusterInfo);
+    @Override
+    public void onSuccess(@Nullable Double value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Double");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo temperatureMeasurementClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.TemperatureMeasurementCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("temperatureMeasurement", temperatureMeasurementClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo pressureMeasurementClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.PressureMeasurementCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("pressureMeasurement", pressureMeasurementClusterInfo);
+  public static class DelegatedUnitTestingClusterNullableOctetStringAttributeCallback implements ChipClusters.UnitTestingCluster.NullableOctetStringAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo flowMeasurementClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.FlowMeasurementCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("flowMeasurement", flowMeasurementClusterInfo);
-
-    ClusterInfo relativeHumidityMeasurementClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.RelativeHumidityMeasurementCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("relativeHumidityMeasurement", relativeHumidityMeasurementClusterInfo);
+    @Override
+    public void onSuccess(@Nullable byte[] value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "byte[]");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo occupancySensingClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.OccupancySensingCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("occupancySensing", occupancySensingClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo carbonMonoxideConcentrationMeasurementClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.CarbonMonoxideConcentrationMeasurementCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("carbonMonoxideConcentrationMeasurement", carbonMonoxideConcentrationMeasurementClusterInfo);
+  public static class DelegatedUnitTestingClusterNullableCharStringAttributeCallback implements ChipClusters.UnitTestingCluster.NullableCharStringAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo carbonDioxideConcentrationMeasurementClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.CarbonDioxideConcentrationMeasurementCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("carbonDioxideConcentrationMeasurement", carbonDioxideConcentrationMeasurementClusterInfo);
+    @Override
+    public void onSuccess(@Nullable String value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "String");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo nitrogenDioxideConcentrationMeasurementClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.NitrogenDioxideConcentrationMeasurementCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("nitrogenDioxideConcentrationMeasurement", nitrogenDioxideConcentrationMeasurementClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo ozoneConcentrationMeasurementClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.OzoneConcentrationMeasurementCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("ozoneConcentrationMeasurement", ozoneConcentrationMeasurementClusterInfo);
+  public static class DelegatedUnitTestingClusterNullableEnumAttrAttributeCallback implements ChipClusters.UnitTestingCluster.NullableEnumAttrAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo pm25ConcentrationMeasurementClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.Pm25ConcentrationMeasurementCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("pm25ConcentrationMeasurement", pm25ConcentrationMeasurementClusterInfo);
+    @Override
+    public void onSuccess(@Nullable Integer value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Integer");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo formaldehydeConcentrationMeasurementClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.FormaldehydeConcentrationMeasurementCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("formaldehydeConcentrationMeasurement", formaldehydeConcentrationMeasurementClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo pm1ConcentrationMeasurementClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.Pm1ConcentrationMeasurementCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("pm1ConcentrationMeasurement", pm1ConcentrationMeasurementClusterInfo);
+  public static class DelegatedUnitTestingClusterNullableStructAttributeCallback implements ChipClusters.UnitTestingCluster.NullableStructAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo pm10ConcentrationMeasurementClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.Pm10ConcentrationMeasurementCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("pm10ConcentrationMeasurement", pm10ConcentrationMeasurementClusterInfo);
+    @Override
+    public void onSuccess(@Nullable ChipStructs.UnitTestingClusterSimpleStruct value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "ChipStructs.UnitTestingClusterSimpleStruct");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo totalVolatileOrganicCompoundsConcentrationMeasurementClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.TotalVolatileOrganicCompoundsConcentrationMeasurementCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("totalVolatileOrganicCompoundsConcentrationMeasurement", totalVolatileOrganicCompoundsConcentrationMeasurementClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo radonConcentrationMeasurementClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.RadonConcentrationMeasurementCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("radonConcentrationMeasurement", radonConcentrationMeasurementClusterInfo);
+  public static class DelegatedUnitTestingClusterNullableRangeRestrictedInt8uAttributeCallback implements ChipClusters.UnitTestingCluster.NullableRangeRestrictedInt8uAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo wiFiNetworkManagementClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.WiFiNetworkManagementCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("wiFiNetworkManagement", wiFiNetworkManagementClusterInfo);
+    @Override
+    public void onSuccess(@Nullable Integer value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Integer");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo threadBorderRouterManagementClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.ThreadBorderRouterManagementCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("threadBorderRouterManagement", threadBorderRouterManagementClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo threadNetworkDirectoryClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.ThreadNetworkDirectoryCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("threadNetworkDirectory", threadNetworkDirectoryClusterInfo);
+  public static class DelegatedUnitTestingClusterNullableRangeRestrictedInt8sAttributeCallback implements ChipClusters.UnitTestingCluster.NullableRangeRestrictedInt8sAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo wakeOnLanClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.WakeOnLanCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("wakeOnLan", wakeOnLanClusterInfo);
+    @Override
+    public void onSuccess(@Nullable Integer value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Integer");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo channelClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.ChannelCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("channel", channelClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo targetNavigatorClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.TargetNavigatorCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("targetNavigator", targetNavigatorClusterInfo);
+  public static class DelegatedUnitTestingClusterNullableRangeRestrictedInt16uAttributeCallback implements ChipClusters.UnitTestingCluster.NullableRangeRestrictedInt16uAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo mediaPlaybackClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.MediaPlaybackCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("mediaPlayback", mediaPlaybackClusterInfo);
+    @Override
+    public void onSuccess(@Nullable Integer value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Integer");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo mediaInputClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.MediaInputCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("mediaInput", mediaInputClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo lowPowerClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.LowPowerCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("lowPower", lowPowerClusterInfo);
+  public static class DelegatedUnitTestingClusterNullableRangeRestrictedInt16sAttributeCallback implements ChipClusters.UnitTestingCluster.NullableRangeRestrictedInt16sAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo keypadInputClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.KeypadInputCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("keypadInput", keypadInputClusterInfo);
+    @Override
+    public void onSuccess(@Nullable Integer value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Integer");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo contentLauncherClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.ContentLauncherCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("contentLauncher", contentLauncherClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo audioOutputClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.AudioOutputCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("audioOutput", audioOutputClusterInfo);
+  public static class DelegatedUnitTestingClusterNullableGlobalEnumAttributeCallback implements ChipClusters.UnitTestingCluster.NullableGlobalEnumAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo applicationLauncherClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.ApplicationLauncherCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("applicationLauncher", applicationLauncherClusterInfo);
+    @Override
+    public void onSuccess(@Nullable Integer value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "Integer");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo applicationBasicClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.ApplicationBasicCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("applicationBasic", applicationBasicClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo accountLoginClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.AccountLoginCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("accountLogin", accountLoginClusterInfo);
+  public static class DelegatedUnitTestingClusterNullableGlobalStructAttributeCallback implements ChipClusters.UnitTestingCluster.NullableGlobalStructAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo contentControlClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.ContentControlCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("contentControl", contentControlClusterInfo);
+    @Override
+    public void onSuccess(@Nullable ChipStructs.UnitTestingClusterTestGlobalStruct value) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("value", "ChipStructs.UnitTestingClusterTestGlobalStruct");
+      responseValues.put(commandResponseInfo, value);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo contentAppObserverClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.ContentAppObserverCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("contentAppObserver", contentAppObserverClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo ecosystemInformationClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.EcosystemInformationCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("ecosystemInformation", ecosystemInformationClusterInfo);
+  public static class DelegatedUnitTestingClusterGeneratedCommandListAttributeCallback implements ChipClusters.UnitTestingCluster.GeneratedCommandListAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo commissionerControlClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.CommissionerControlCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("commissionerControl", commissionerControlClusterInfo);
+    @Override
+    public void onSuccess(List<Long> valueList) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo electricalMeasurementClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.ElectricalMeasurementCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("electricalMeasurement", electricalMeasurementClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    ClusterInfo unitTestingClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.UnitTestingCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("unitTesting", unitTestingClusterInfo);
+  public static class DelegatedUnitTestingClusterAcceptedCommandListAttributeCallback implements ChipClusters.UnitTestingCluster.AcceptedCommandListAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
 
-    ClusterInfo faultInjectionClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.FaultInjectionCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("faultInjection", faultInjectionClusterInfo);
+    @Override
+    public void onSuccess(List<Long> valueList) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
+      callback.onSuccess(responseValues);
+    }
 
-    ClusterInfo sampleMeiClusterInfo = new ClusterInfo(
-      (ptr, endpointId) -> new ChipClusters.SampleMeiCluster(ptr, endpointId), new HashMap<>());
-    clusterMap.put("sampleMei", sampleMeiClusterInfo);
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
 
-    return clusterMap;
+  public static class DelegatedUnitTestingClusterEventListAttributeCallback implements ChipClusters.UnitTestingCluster.EventListAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
+
+    @Override
+    public void onSuccess(List<Long> valueList) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
+      callback.onSuccess(responseValues);
+    }
+
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
   }
 
-  public void combineCommand(Map<String, ClusterInfo> destination, Map<String, Map<String, InteractionInfo>> source) {
-    destination.get("identify").combineCommands(source.get("identify"));
-    destination.get("groups").combineCommands(source.get("groups"));
-    destination.get("onOff").combineCommands(source.get("onOff"));
-    destination.get("onOffSwitchConfiguration").combineCommands(source.get("onOffSwitchConfiguration"));
-    destination.get("levelControl").combineCommands(source.get("levelControl"));
-    destination.get("binaryInputBasic").combineCommands(source.get("binaryInputBasic"));
-    destination.get("pulseWidthModulation").combineCommands(source.get("pulseWidthModulation"));
-    destination.get("descriptor").combineCommands(source.get("descriptor"));
-    destination.get("binding").combineCommands(source.get("binding"));
-    destination.get("accessControl").combineCommands(source.get("accessControl"));
-    destination.get("actions").combineCommands(source.get("actions"));
-    destination.get("basicInformation").combineCommands(source.get("basicInformation"));
-    destination.get("otaSoftwareUpdateProvider").combineCommands(source.get("otaSoftwareUpdateProvider"));
-    destination.get("otaSoftwareUpdateRequestor").combineCommands(source.get("otaSoftwareUpdateRequestor"));
-    destination.get("localizationConfiguration").combineCommands(source.get("localizationConfiguration"));
-    destination.get("timeFormatLocalization").combineCommands(source.get("timeFormatLocalization"));
-    destination.get("unitLocalization").combineCommands(source.get("unitLocalization"));
-    destination.get("powerSourceConfiguration").combineCommands(source.get("powerSourceConfiguration"));
-    destination.get("powerSource").combineCommands(source.get("powerSource"));
-    destination.get("generalCommissioning").combineCommands(source.get("generalCommissioning"));
-    destination.get("networkCommissioning").combineCommands(source.get("networkCommissioning"));
-    destination.get("diagnosticLogs").combineCommands(source.get("diagnosticLogs"));
-    destination.get("generalDiagnostics").combineCommands(source.get("generalDiagnostics"));
-    destination.get("softwareDiagnostics").combineCommands(source.get("softwareDiagnostics"));
-    destination.get("threadNetworkDiagnostics").combineCommands(source.get("threadNetworkDiagnostics"));
-    destination.get("wiFiNetworkDiagnostics").combineCommands(source.get("wiFiNetworkDiagnostics"));
-    destination.get("ethernetNetworkDiagnostics").combineCommands(source.get("ethernetNetworkDiagnostics"));
-    destination.get("timeSynchronization").combineCommands(source.get("timeSynchronization"));
-    destination.get("bridgedDeviceBasicInformation").combineCommands(source.get("bridgedDeviceBasicInformation"));
-    destination.get("switch").combineCommands(source.get("switch"));
-    destination.get("administratorCommissioning").combineCommands(source.get("administratorCommissioning"));
-    destination.get("operationalCredentials").combineCommands(source.get("operationalCredentials"));
-    destination.get("groupKeyManagement").combineCommands(source.get("groupKeyManagement"));
-    destination.get("fixedLabel").combineCommands(source.get("fixedLabel"));
-    destination.get("userLabel").combineCommands(source.get("userLabel"));
-    destination.get("proxyConfiguration").combineCommands(source.get("proxyConfiguration"));
-    destination.get("proxyDiscovery").combineCommands(source.get("proxyDiscovery"));
-    destination.get("proxyValid").combineCommands(source.get("proxyValid"));
-    destination.get("booleanState").combineCommands(source.get("booleanState"));
-    destination.get("icdManagement").combineCommands(source.get("icdManagement"));
-    destination.get("timer").combineCommands(source.get("timer"));
-    destination.get("ovenCavityOperationalState").combineCommands(source.get("ovenCavityOperationalState"));
-    destination.get("ovenMode").combineCommands(source.get("ovenMode"));
-    destination.get("laundryDryerControls").combineCommands(source.get("laundryDryerControls"));
-    destination.get("modeSelect").combineCommands(source.get("modeSelect"));
-    destination.get("laundryWasherMode").combineCommands(source.get("laundryWasherMode"));
-    destination.get("refrigeratorAndTemperatureControlledCabinetMode").combineCommands(source.get("refrigeratorAndTemperatureControlledCabinetMode"));
-    destination.get("laundryWasherControls").combineCommands(source.get("laundryWasherControls"));
-    destination.get("rvcRunMode").combineCommands(source.get("rvcRunMode"));
-    destination.get("rvcCleanMode").combineCommands(source.get("rvcCleanMode"));
-    destination.get("temperatureControl").combineCommands(source.get("temperatureControl"));
-    destination.get("refrigeratorAlarm").combineCommands(source.get("refrigeratorAlarm"));
-    destination.get("dishwasherMode").combineCommands(source.get("dishwasherMode"));
-    destination.get("airQuality").combineCommands(source.get("airQuality"));
-    destination.get("smokeCoAlarm").combineCommands(source.get("smokeCoAlarm"));
-    destination.get("dishwasherAlarm").combineCommands(source.get("dishwasherAlarm"));
-    destination.get("microwaveOvenMode").combineCommands(source.get("microwaveOvenMode"));
-    destination.get("microwaveOvenControl").combineCommands(source.get("microwaveOvenControl"));
-    destination.get("operationalState").combineCommands(source.get("operationalState"));
-    destination.get("rvcOperationalState").combineCommands(source.get("rvcOperationalState"));
-    destination.get("scenesManagement").combineCommands(source.get("scenesManagement"));
-    destination.get("hepaFilterMonitoring").combineCommands(source.get("hepaFilterMonitoring"));
-    destination.get("activatedCarbonFilterMonitoring").combineCommands(source.get("activatedCarbonFilterMonitoring"));
-    destination.get("booleanStateConfiguration").combineCommands(source.get("booleanStateConfiguration"));
-    destination.get("valveConfigurationAndControl").combineCommands(source.get("valveConfigurationAndControl"));
-    destination.get("electricalPowerMeasurement").combineCommands(source.get("electricalPowerMeasurement"));
-    destination.get("electricalEnergyMeasurement").combineCommands(source.get("electricalEnergyMeasurement"));
-    destination.get("waterHeaterManagement").combineCommands(source.get("waterHeaterManagement"));
-    destination.get("demandResponseLoadControl").combineCommands(source.get("demandResponseLoadControl"));
-    destination.get("messages").combineCommands(source.get("messages"));
-    destination.get("deviceEnergyManagement").combineCommands(source.get("deviceEnergyManagement"));
-    destination.get("energyEvse").combineCommands(source.get("energyEvse"));
-    destination.get("energyPreference").combineCommands(source.get("energyPreference"));
-    destination.get("powerTopology").combineCommands(source.get("powerTopology"));
-    destination.get("energyEvseMode").combineCommands(source.get("energyEvseMode"));
-    destination.get("waterHeaterMode").combineCommands(source.get("waterHeaterMode"));
-    destination.get("deviceEnergyManagementMode").combineCommands(source.get("deviceEnergyManagementMode"));
-    destination.get("doorLock").combineCommands(source.get("doorLock"));
-    destination.get("windowCovering").combineCommands(source.get("windowCovering"));
-    destination.get("barrierControl").combineCommands(source.get("barrierControl"));
-    destination.get("serviceArea").combineCommands(source.get("serviceArea"));
-    destination.get("pumpConfigurationAndControl").combineCommands(source.get("pumpConfigurationAndControl"));
-    destination.get("thermostat").combineCommands(source.get("thermostat"));
-    destination.get("fanControl").combineCommands(source.get("fanControl"));
-    destination.get("thermostatUserInterfaceConfiguration").combineCommands(source.get("thermostatUserInterfaceConfiguration"));
-    destination.get("colorControl").combineCommands(source.get("colorControl"));
-    destination.get("ballastConfiguration").combineCommands(source.get("ballastConfiguration"));
-    destination.get("illuminanceMeasurement").combineCommands(source.get("illuminanceMeasurement"));
-    destination.get("temperatureMeasurement").combineCommands(source.get("temperatureMeasurement"));
-    destination.get("pressureMeasurement").combineCommands(source.get("pressureMeasurement"));
-    destination.get("flowMeasurement").combineCommands(source.get("flowMeasurement"));
-    destination.get("relativeHumidityMeasurement").combineCommands(source.get("relativeHumidityMeasurement"));
-    destination.get("occupancySensing").combineCommands(source.get("occupancySensing"));
-    destination.get("carbonMonoxideConcentrationMeasurement").combineCommands(source.get("carbonMonoxideConcentrationMeasurement"));
-    destination.get("carbonDioxideConcentrationMeasurement").combineCommands(source.get("carbonDioxideConcentrationMeasurement"));
-    destination.get("nitrogenDioxideConcentrationMeasurement").combineCommands(source.get("nitrogenDioxideConcentrationMeasurement"));
-    destination.get("ozoneConcentrationMeasurement").combineCommands(source.get("ozoneConcentrationMeasurement"));
-    destination.get("pm25ConcentrationMeasurement").combineCommands(source.get("pm25ConcentrationMeasurement"));
-    destination.get("formaldehydeConcentrationMeasurement").combineCommands(source.get("formaldehydeConcentrationMeasurement"));
-    destination.get("pm1ConcentrationMeasurement").combineCommands(source.get("pm1ConcentrationMeasurement"));
-    destination.get("pm10ConcentrationMeasurement").combineCommands(source.get("pm10ConcentrationMeasurement"));
-    destination.get("totalVolatileOrganicCompoundsConcentrationMeasurement").combineCommands(source.get("totalVolatileOrganicCompoundsConcentrationMeasurement"));
-    destination.get("radonConcentrationMeasurement").combineCommands(source.get("radonConcentrationMeasurement"));
-    destination.get("wiFiNetworkManagement").combineCommands(source.get("wiFiNetworkManagement"));
-    destination.get("threadBorderRouterManagement").combineCommands(source.get("threadBorderRouterManagement"));
-    destination.get("threadNetworkDirectory").combineCommands(source.get("threadNetworkDirectory"));
-    destination.get("wakeOnLan").combineCommands(source.get("wakeOnLan"));
-    destination.get("channel").combineCommands(source.get("channel"));
-    destination.get("targetNavigator").combineCommands(source.get("targetNavigator"));
-    destination.get("mediaPlayback").combineCommands(source.get("mediaPlayback"));
-    destination.get("mediaInput").combineCommands(source.get("mediaInput"));
-    destination.get("lowPower").combineCommands(source.get("lowPower"));
-    destination.get("keypadInput").combineCommands(source.get("keypadInput"));
-    destination.get("contentLauncher").combineCommands(source.get("contentLauncher"));
-    destination.get("audioOutput").combineCommands(source.get("audioOutput"));
-    destination.get("applicationLauncher").combineCommands(source.get("applicationLauncher"));
-    destination.get("applicationBasic").combineCommands(source.get("applicationBasic"));
-    destination.get("accountLogin").combineCommands(source.get("accountLogin"));
-    destination.get("contentControl").combineCommands(source.get("contentControl"));
-    destination.get("contentAppObserver").combineCommands(source.get("contentAppObserver"));
-    destination.get("ecosystemInformation").combineCommands(source.get("ecosystemInformation"));
-    destination.get("commissionerControl").combineCommands(source.get("commissionerControl"));
-    destination.get("electricalMeasurement").combineCommands(source.get("electricalMeasurement"));
-    destination.get("unitTesting").combineCommands(source.get("unitTesting"));
-    destination.get("faultInjection").combineCommands(source.get("faultInjection"));
-    destination.get("sampleMei").combineCommands(source.get("sampleMei"));
+  public static class DelegatedUnitTestingClusterAttributeListAttributeCallback implements ChipClusters.UnitTestingCluster.AttributeListAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
+
+    @Override
+    public void onSuccess(List<Long> valueList) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
+      callback.onSuccess(responseValues);
+    }
+
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
   }
 
- @SuppressWarnings("unchecked")
-  public Map<String, Map<String, InteractionInfo>> getCommandMap() {
-    Map<String, Map<String, InteractionInfo>> commandMap = new HashMap<>();
+  public static class DelegatedFaultInjectionClusterGeneratedCommandListAttributeCallback implements ChipClusters.FaultInjectionCluster.GeneratedCommandListAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
+
+    @Override
+    public void onSuccess(List<Long> valueList) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
+      callback.onSuccess(responseValues);
+    }
+
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
+
+  public static class DelegatedFaultInjectionClusterAcceptedCommandListAttributeCallback implements ChipClusters.FaultInjectionCluster.AcceptedCommandListAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
+
+    @Override
+    public void onSuccess(List<Long> valueList) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
+      callback.onSuccess(responseValues);
+    }
+
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
+
+  public static class DelegatedFaultInjectionClusterEventListAttributeCallback implements ChipClusters.FaultInjectionCluster.EventListAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
+
+    @Override
+    public void onSuccess(List<Long> valueList) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
+      callback.onSuccess(responseValues);
+    }
+
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
+
+  public static class DelegatedFaultInjectionClusterAttributeListAttributeCallback implements ChipClusters.FaultInjectionCluster.AttributeListAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
+
+    @Override
+    public void onSuccess(List<Long> valueList) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
+      callback.onSuccess(responseValues);
+    }
+
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
+
+
+  public static class DelegatedSampleMeiClusterAddArgumentsResponseCallback implements ChipClusters.SampleMeiCluster.AddArgumentsResponseCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
+
+    @Override
+    public void onSuccess(Integer returnValue) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+
+      CommandResponseInfo returnValueResponseValue = new CommandResponseInfo("returnValue", "Integer");
+      responseValues.put(returnValueResponseValue, returnValue);
+      callback.onSuccess(responseValues);
+    }
+
+    @Override
+    public void onError(Exception error) {
+      callback.onFailure(error);
+    }
+  }
+  public static class DelegatedSampleMeiClusterGeneratedCommandListAttributeCallback implements ChipClusters.SampleMeiCluster.GeneratedCommandListAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
+
+    @Override
+    public void onSuccess(List<Long> valueList) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
+      callback.onSuccess(responseValues);
+    }
+
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
+
+  public static class DelegatedSampleMeiClusterAcceptedCommandListAttributeCallback implements ChipClusters.SampleMeiCluster.AcceptedCommandListAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
+
+    @Override
+    public void onSuccess(List<Long> valueList) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
+      callback.onSuccess(responseValues);
+    }
+
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
+
+  public static class DelegatedSampleMeiClusterEventListAttributeCallback implements ChipClusters.SampleMeiCluster.EventListAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
+
+    @Override
+    public void onSuccess(List<Long> valueList) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
+      callback.onSuccess(responseValues);
+    }
+
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
+
+  public static class DelegatedSampleMeiClusterAttributeListAttributeCallback implements ChipClusters.SampleMeiCluster.AttributeListAttributeCallback, DelegatedClusterCallback {
+    private ClusterCommandCallback callback;
+    @Override
+    public void setCallbackDelegate(ClusterCommandCallback callback) {
+      this.callback = callback;
+    }
+
+    @Override
+    public void onSuccess(List<Long> valueList) {
+      Map<CommandResponseInfo, Object> responseValues = new LinkedHashMap<>();
+      CommandResponseInfo commandResponseInfo = new CommandResponseInfo("valueList", "List<Long>");
+      responseValues.put(commandResponseInfo, valueList);
+      callback.onSuccess(responseValues);
+    }
+
+    @Override
+    public void onError(Exception ex) {
+      callback.onFailure(ex);
+    }
+  }
+
+
+  public Map<String, ClusterInfo> getClusterMap() {
+    Map<String, ClusterInfo> clusterMap = initializeClusterMap();
+    Map<String, Map<String, InteractionInfo>> commandMap = getCommandMap();
+    combineCommand(clusterMap, commandMap);
+    Map<String, Map<String, InteractionInfo>> readAttributeMap = new ClusterReadMapping().getReadAttributeMap();
+    combineCommand(clusterMap, readAttributeMap);
+    Map<String, Map<String, InteractionInfo>> writeAttributeMap = new ClusterWriteMapping().getWriteAttributeMap();
+    combineCommand(clusterMap, writeAttributeMap);
+    return clusterMap;
+ }
+
+  public Map<String, ClusterInfo> initializeClusterMap() {
+    Map<String, ClusterInfo> clusterMap = new HashMap<>();
+
+    ClusterInfo identifyClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.IdentifyCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("identify", identifyClusterInfo);
+
+    ClusterInfo groupsClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.GroupsCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("groups", groupsClusterInfo);
+
+    ClusterInfo onOffClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.OnOffCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("onOff", onOffClusterInfo);
+
+    ClusterInfo onOffSwitchConfigurationClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.OnOffSwitchConfigurationCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("onOffSwitchConfiguration", onOffSwitchConfigurationClusterInfo);
+
+    ClusterInfo levelControlClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.LevelControlCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("levelControl", levelControlClusterInfo);
+
+    ClusterInfo binaryInputBasicClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.BinaryInputBasicCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("binaryInputBasic", binaryInputBasicClusterInfo);
+
+    ClusterInfo pulseWidthModulationClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.PulseWidthModulationCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("pulseWidthModulation", pulseWidthModulationClusterInfo);
+
+    ClusterInfo descriptorClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.DescriptorCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("descriptor", descriptorClusterInfo);
+
+    ClusterInfo bindingClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.BindingCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("binding", bindingClusterInfo);
+
+    ClusterInfo accessControlClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.AccessControlCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("accessControl", accessControlClusterInfo);
+
+    ClusterInfo actionsClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.ActionsCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("actions", actionsClusterInfo);
+
+    ClusterInfo basicInformationClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.BasicInformationCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("basicInformation", basicInformationClusterInfo);
+
+    ClusterInfo otaSoftwareUpdateProviderClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.OtaSoftwareUpdateProviderCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("otaSoftwareUpdateProvider", otaSoftwareUpdateProviderClusterInfo);
+
+    ClusterInfo otaSoftwareUpdateRequestorClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.OtaSoftwareUpdateRequestorCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("otaSoftwareUpdateRequestor", otaSoftwareUpdateRequestorClusterInfo);
+
+    ClusterInfo localizationConfigurationClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.LocalizationConfigurationCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("localizationConfiguration", localizationConfigurationClusterInfo);
+
+    ClusterInfo timeFormatLocalizationClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.TimeFormatLocalizationCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("timeFormatLocalization", timeFormatLocalizationClusterInfo);
+
+    ClusterInfo unitLocalizationClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.UnitLocalizationCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("unitLocalization", unitLocalizationClusterInfo);
+
+    ClusterInfo powerSourceConfigurationClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.PowerSourceConfigurationCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("powerSourceConfiguration", powerSourceConfigurationClusterInfo);
+
+    ClusterInfo powerSourceClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.PowerSourceCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("powerSource", powerSourceClusterInfo);
+
+    ClusterInfo generalCommissioningClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.GeneralCommissioningCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("generalCommissioning", generalCommissioningClusterInfo);
+
+    ClusterInfo networkCommissioningClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.NetworkCommissioningCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("networkCommissioning", networkCommissioningClusterInfo);
+
+    ClusterInfo diagnosticLogsClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.DiagnosticLogsCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("diagnosticLogs", diagnosticLogsClusterInfo);
+
+    ClusterInfo generalDiagnosticsClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.GeneralDiagnosticsCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("generalDiagnostics", generalDiagnosticsClusterInfo);
+
+    ClusterInfo softwareDiagnosticsClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.SoftwareDiagnosticsCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("softwareDiagnostics", softwareDiagnosticsClusterInfo);
+
+    ClusterInfo threadNetworkDiagnosticsClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.ThreadNetworkDiagnosticsCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("threadNetworkDiagnostics", threadNetworkDiagnosticsClusterInfo);
+
+    ClusterInfo wiFiNetworkDiagnosticsClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.WiFiNetworkDiagnosticsCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("wiFiNetworkDiagnostics", wiFiNetworkDiagnosticsClusterInfo);
+
+    ClusterInfo ethernetNetworkDiagnosticsClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.EthernetNetworkDiagnosticsCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("ethernetNetworkDiagnostics", ethernetNetworkDiagnosticsClusterInfo);
+
+    ClusterInfo timeSynchronizationClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.TimeSynchronizationCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("timeSynchronization", timeSynchronizationClusterInfo);
+
+    ClusterInfo bridgedDeviceBasicInformationClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.BridgedDeviceBasicInformationCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("bridgedDeviceBasicInformation", bridgedDeviceBasicInformationClusterInfo);
+
+    ClusterInfo switchClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.SwitchCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("switch", switchClusterInfo);
+
+    ClusterInfo administratorCommissioningClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.AdministratorCommissioningCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("administratorCommissioning", administratorCommissioningClusterInfo);
+
+    ClusterInfo operationalCredentialsClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.OperationalCredentialsCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("operationalCredentials", operationalCredentialsClusterInfo);
+
+    ClusterInfo groupKeyManagementClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.GroupKeyManagementCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("groupKeyManagement", groupKeyManagementClusterInfo);
+
+    ClusterInfo fixedLabelClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.FixedLabelCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("fixedLabel", fixedLabelClusterInfo);
+
+    ClusterInfo userLabelClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.UserLabelCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("userLabel", userLabelClusterInfo);
+
+    ClusterInfo proxyConfigurationClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.ProxyConfigurationCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("proxyConfiguration", proxyConfigurationClusterInfo);
+
+    ClusterInfo proxyDiscoveryClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.ProxyDiscoveryCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("proxyDiscovery", proxyDiscoveryClusterInfo);
+
+    ClusterInfo proxyValidClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.ProxyValidCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("proxyValid", proxyValidClusterInfo);
+
+    ClusterInfo booleanStateClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.BooleanStateCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("booleanState", booleanStateClusterInfo);
+
+    ClusterInfo icdManagementClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.IcdManagementCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("icdManagement", icdManagementClusterInfo);
+
+    ClusterInfo timerClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.TimerCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("timer", timerClusterInfo);
+
+    ClusterInfo ovenCavityOperationalStateClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.OvenCavityOperationalStateCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("ovenCavityOperationalState", ovenCavityOperationalStateClusterInfo);
+
+    ClusterInfo ovenModeClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.OvenModeCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("ovenMode", ovenModeClusterInfo);
+
+    ClusterInfo laundryDryerControlsClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.LaundryDryerControlsCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("laundryDryerControls", laundryDryerControlsClusterInfo);
+
+    ClusterInfo modeSelectClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.ModeSelectCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("modeSelect", modeSelectClusterInfo);
+
+    ClusterInfo laundryWasherModeClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.LaundryWasherModeCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("laundryWasherMode", laundryWasherModeClusterInfo);
+
+    ClusterInfo refrigeratorAndTemperatureControlledCabinetModeClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.RefrigeratorAndTemperatureControlledCabinetModeCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("refrigeratorAndTemperatureControlledCabinetMode", refrigeratorAndTemperatureControlledCabinetModeClusterInfo);
+
+    ClusterInfo laundryWasherControlsClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.LaundryWasherControlsCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("laundryWasherControls", laundryWasherControlsClusterInfo);
+
+    ClusterInfo rvcRunModeClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.RvcRunModeCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("rvcRunMode", rvcRunModeClusterInfo);
+
+    ClusterInfo rvcCleanModeClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.RvcCleanModeCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("rvcCleanMode", rvcCleanModeClusterInfo);
+
+    ClusterInfo temperatureControlClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.TemperatureControlCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("temperatureControl", temperatureControlClusterInfo);
+
+    ClusterInfo refrigeratorAlarmClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.RefrigeratorAlarmCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("refrigeratorAlarm", refrigeratorAlarmClusterInfo);
+
+    ClusterInfo dishwasherModeClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.DishwasherModeCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("dishwasherMode", dishwasherModeClusterInfo);
+
+    ClusterInfo airQualityClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.AirQualityCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("airQuality", airQualityClusterInfo);
+
+    ClusterInfo smokeCoAlarmClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.SmokeCoAlarmCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("smokeCoAlarm", smokeCoAlarmClusterInfo);
+
+    ClusterInfo dishwasherAlarmClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.DishwasherAlarmCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("dishwasherAlarm", dishwasherAlarmClusterInfo);
+
+    ClusterInfo microwaveOvenModeClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.MicrowaveOvenModeCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("microwaveOvenMode", microwaveOvenModeClusterInfo);
+
+    ClusterInfo microwaveOvenControlClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.MicrowaveOvenControlCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("microwaveOvenControl", microwaveOvenControlClusterInfo);
+
+    ClusterInfo operationalStateClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.OperationalStateCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("operationalState", operationalStateClusterInfo);
+
+    ClusterInfo rvcOperationalStateClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.RvcOperationalStateCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("rvcOperationalState", rvcOperationalStateClusterInfo);
+
+    ClusterInfo scenesManagementClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.ScenesManagementCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("scenesManagement", scenesManagementClusterInfo);
+
+    ClusterInfo hepaFilterMonitoringClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.HepaFilterMonitoringCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("hepaFilterMonitoring", hepaFilterMonitoringClusterInfo);
+
+    ClusterInfo activatedCarbonFilterMonitoringClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.ActivatedCarbonFilterMonitoringCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("activatedCarbonFilterMonitoring", activatedCarbonFilterMonitoringClusterInfo);
+
+    ClusterInfo booleanStateConfigurationClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.BooleanStateConfigurationCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("booleanStateConfiguration", booleanStateConfigurationClusterInfo);
+
+    ClusterInfo valveConfigurationAndControlClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.ValveConfigurationAndControlCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("valveConfigurationAndControl", valveConfigurationAndControlClusterInfo);
+
+    ClusterInfo electricalPowerMeasurementClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.ElectricalPowerMeasurementCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("electricalPowerMeasurement", electricalPowerMeasurementClusterInfo);
+
+    ClusterInfo electricalEnergyMeasurementClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.ElectricalEnergyMeasurementCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("electricalEnergyMeasurement", electricalEnergyMeasurementClusterInfo);
+
+    ClusterInfo waterHeaterManagementClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.WaterHeaterManagementCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("waterHeaterManagement", waterHeaterManagementClusterInfo);
+
+    ClusterInfo demandResponseLoadControlClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.DemandResponseLoadControlCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("demandResponseLoadControl", demandResponseLoadControlClusterInfo);
+
+    ClusterInfo messagesClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.MessagesCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("messages", messagesClusterInfo);
+
+    ClusterInfo deviceEnergyManagementClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.DeviceEnergyManagementCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("deviceEnergyManagement", deviceEnergyManagementClusterInfo);
+
+    ClusterInfo energyEvseClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.EnergyEvseCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("energyEvse", energyEvseClusterInfo);
+
+    ClusterInfo energyPreferenceClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.EnergyPreferenceCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("energyPreference", energyPreferenceClusterInfo);
+
+    ClusterInfo powerTopologyClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.PowerTopologyCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("powerTopology", powerTopologyClusterInfo);
+
+    ClusterInfo energyEvseModeClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.EnergyEvseModeCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("energyEvseMode", energyEvseModeClusterInfo);
+
+    ClusterInfo waterHeaterModeClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.WaterHeaterModeCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("waterHeaterMode", waterHeaterModeClusterInfo);
+
+    ClusterInfo deviceEnergyManagementModeClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.DeviceEnergyManagementModeCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("deviceEnergyManagementMode", deviceEnergyManagementModeClusterInfo);
+
+    ClusterInfo doorLockClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.DoorLockCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("doorLock", doorLockClusterInfo);
+
+    ClusterInfo windowCoveringClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.WindowCoveringCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("windowCovering", windowCoveringClusterInfo);
+
+    ClusterInfo barrierControlClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.BarrierControlCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("barrierControl", barrierControlClusterInfo);
+
+    ClusterInfo serviceAreaClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.ServiceAreaCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("serviceArea", serviceAreaClusterInfo);
+
+    ClusterInfo pumpConfigurationAndControlClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.PumpConfigurationAndControlCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("pumpConfigurationAndControl", pumpConfigurationAndControlClusterInfo);
+
+    ClusterInfo thermostatClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.ThermostatCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("thermostat", thermostatClusterInfo);
+
+    ClusterInfo fanControlClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.FanControlCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("fanControl", fanControlClusterInfo);
+
+    ClusterInfo thermostatUserInterfaceConfigurationClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.ThermostatUserInterfaceConfigurationCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("thermostatUserInterfaceConfiguration", thermostatUserInterfaceConfigurationClusterInfo);
+
+    ClusterInfo colorControlClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.ColorControlCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("colorControl", colorControlClusterInfo);
+
+    ClusterInfo ballastConfigurationClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.BallastConfigurationCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("ballastConfiguration", ballastConfigurationClusterInfo);
+
+    ClusterInfo illuminanceMeasurementClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.IlluminanceMeasurementCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("illuminanceMeasurement", illuminanceMeasurementClusterInfo);
+
+    ClusterInfo temperatureMeasurementClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.TemperatureMeasurementCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("temperatureMeasurement", temperatureMeasurementClusterInfo);
+
+    ClusterInfo pressureMeasurementClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.PressureMeasurementCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("pressureMeasurement", pressureMeasurementClusterInfo);
+
+    ClusterInfo flowMeasurementClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.FlowMeasurementCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("flowMeasurement", flowMeasurementClusterInfo);
+
+    ClusterInfo relativeHumidityMeasurementClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.RelativeHumidityMeasurementCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("relativeHumidityMeasurement", relativeHumidityMeasurementClusterInfo);
+
+    ClusterInfo occupancySensingClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.OccupancySensingCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("occupancySensing", occupancySensingClusterInfo);
+
+    ClusterInfo carbonMonoxideConcentrationMeasurementClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.CarbonMonoxideConcentrationMeasurementCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("carbonMonoxideConcentrationMeasurement", carbonMonoxideConcentrationMeasurementClusterInfo);
+
+    ClusterInfo carbonDioxideConcentrationMeasurementClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.CarbonDioxideConcentrationMeasurementCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("carbonDioxideConcentrationMeasurement", carbonDioxideConcentrationMeasurementClusterInfo);
+
+    ClusterInfo nitrogenDioxideConcentrationMeasurementClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.NitrogenDioxideConcentrationMeasurementCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("nitrogenDioxideConcentrationMeasurement", nitrogenDioxideConcentrationMeasurementClusterInfo);
+
+    ClusterInfo ozoneConcentrationMeasurementClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.OzoneConcentrationMeasurementCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("ozoneConcentrationMeasurement", ozoneConcentrationMeasurementClusterInfo);
+
+    ClusterInfo pm25ConcentrationMeasurementClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.Pm25ConcentrationMeasurementCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("pm25ConcentrationMeasurement", pm25ConcentrationMeasurementClusterInfo);
+
+    ClusterInfo formaldehydeConcentrationMeasurementClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.FormaldehydeConcentrationMeasurementCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("formaldehydeConcentrationMeasurement", formaldehydeConcentrationMeasurementClusterInfo);
+
+    ClusterInfo pm1ConcentrationMeasurementClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.Pm1ConcentrationMeasurementCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("pm1ConcentrationMeasurement", pm1ConcentrationMeasurementClusterInfo);
+
+    ClusterInfo pm10ConcentrationMeasurementClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.Pm10ConcentrationMeasurementCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("pm10ConcentrationMeasurement", pm10ConcentrationMeasurementClusterInfo);
+
+    ClusterInfo totalVolatileOrganicCompoundsConcentrationMeasurementClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.TotalVolatileOrganicCompoundsConcentrationMeasurementCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("totalVolatileOrganicCompoundsConcentrationMeasurement", totalVolatileOrganicCompoundsConcentrationMeasurementClusterInfo);
+
+    ClusterInfo radonConcentrationMeasurementClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.RadonConcentrationMeasurementCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("radonConcentrationMeasurement", radonConcentrationMeasurementClusterInfo);
+
+    ClusterInfo wiFiNetworkManagementClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.WiFiNetworkManagementCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("wiFiNetworkManagement", wiFiNetworkManagementClusterInfo);
+
+    ClusterInfo threadBorderRouterManagementClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.ThreadBorderRouterManagementCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("threadBorderRouterManagement", threadBorderRouterManagementClusterInfo);
+
+    ClusterInfo threadNetworkDirectoryClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.ThreadNetworkDirectoryCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("threadNetworkDirectory", threadNetworkDirectoryClusterInfo);
+
+    ClusterInfo wakeOnLanClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.WakeOnLanCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("wakeOnLan", wakeOnLanClusterInfo);
+
+    ClusterInfo channelClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.ChannelCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("channel", channelClusterInfo);
+
+    ClusterInfo targetNavigatorClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.TargetNavigatorCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("targetNavigator", targetNavigatorClusterInfo);
+
+    ClusterInfo mediaPlaybackClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.MediaPlaybackCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("mediaPlayback", mediaPlaybackClusterInfo);
+
+    ClusterInfo mediaInputClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.MediaInputCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("mediaInput", mediaInputClusterInfo);
+
+    ClusterInfo lowPowerClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.LowPowerCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("lowPower", lowPowerClusterInfo);
+
+    ClusterInfo keypadInputClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.KeypadInputCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("keypadInput", keypadInputClusterInfo);
+
+    ClusterInfo contentLauncherClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.ContentLauncherCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("contentLauncher", contentLauncherClusterInfo);
+
+    ClusterInfo audioOutputClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.AudioOutputCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("audioOutput", audioOutputClusterInfo);
+
+    ClusterInfo applicationLauncherClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.ApplicationLauncherCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("applicationLauncher", applicationLauncherClusterInfo);
+
+    ClusterInfo applicationBasicClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.ApplicationBasicCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("applicationBasic", applicationBasicClusterInfo);
+
+    ClusterInfo accountLoginClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.AccountLoginCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("accountLogin", accountLoginClusterInfo);
+
+    ClusterInfo contentControlClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.ContentControlCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("contentControl", contentControlClusterInfo);
+
+    ClusterInfo contentAppObserverClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.ContentAppObserverCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("contentAppObserver", contentAppObserverClusterInfo);
+
+    ClusterInfo cameraAvStreamManagementClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.CameraAvStreamManagementCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("cameraAvStreamManagement", cameraAvStreamManagementClusterInfo);
+
+    ClusterInfo cameraAvSettingsUserLevelManagementClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.CameraAvSettingsUserLevelManagementCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("cameraAvSettingsUserLevelManagement", cameraAvSettingsUserLevelManagementClusterInfo);
+
+    ClusterInfo webRTCTransportProviderClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.WebRTCTransportProviderCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("webRTCTransportProvider", webRTCTransportProviderClusterInfo);
+
+    ClusterInfo webRTCTransportRequestorClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.WebRTCTransportRequestorCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("webRTCTransportRequestor", webRTCTransportRequestorClusterInfo);
+
+    ClusterInfo pushAvStreamTransportClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.PushAvStreamTransportCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("pushAvStreamTransport", pushAvStreamTransportClusterInfo);
+
+    ClusterInfo chimeClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.ChimeCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("chime", chimeClusterInfo);
+
+    ClusterInfo ecosystemInformationClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.EcosystemInformationCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("ecosystemInformation", ecosystemInformationClusterInfo);
+
+    ClusterInfo commissionerControlClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.CommissionerControlCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("commissionerControl", commissionerControlClusterInfo);
+
+    ClusterInfo electricalMeasurementClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.ElectricalMeasurementCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("electricalMeasurement", electricalMeasurementClusterInfo);
+
+    ClusterInfo unitTestingClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.UnitTestingCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("unitTesting", unitTestingClusterInfo);
+
+    ClusterInfo faultInjectionClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.FaultInjectionCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("faultInjection", faultInjectionClusterInfo);
+
+    ClusterInfo sampleMeiClusterInfo = new ClusterInfo(
+      (ptr, endpointId) -> new ChipClusters.SampleMeiCluster(ptr, endpointId), new HashMap<>());
+    clusterMap.put("sampleMei", sampleMeiClusterInfo);
+
+    return clusterMap;
+  }
+
+  public void combineCommand(Map<String, ClusterInfo> destination, Map<String, Map<String, InteractionInfo>> source) {
+    destination.get("identify").combineCommands(source.get("identify"));
+    destination.get("groups").combineCommands(source.get("groups"));
+    destination.get("onOff").combineCommands(source.get("onOff"));
+    destination.get("onOffSwitchConfiguration").combineCommands(source.get("onOffSwitchConfiguration"));
+    destination.get("levelControl").combineCommands(source.get("levelControl"));
+    destination.get("binaryInputBasic").combineCommands(source.get("binaryInputBasic"));
+    destination.get("pulseWidthModulation").combineCommands(source.get("pulseWidthModulation"));
+    destination.get("descriptor").combineCommands(source.get("descriptor"));
+    destination.get("binding").combineCommands(source.get("binding"));
+    destination.get("accessControl").combineCommands(source.get("accessControl"));
+    destination.get("actions").combineCommands(source.get("actions"));
+    destination.get("basicInformation").combineCommands(source.get("basicInformation"));
+    destination.get("otaSoftwareUpdateProvider").combineCommands(source.get("otaSoftwareUpdateProvider"));
+    destination.get("otaSoftwareUpdateRequestor").combineCommands(source.get("otaSoftwareUpdateRequestor"));
+    destination.get("localizationConfiguration").combineCommands(source.get("localizationConfiguration"));
+    destination.get("timeFormatLocalization").combineCommands(source.get("timeFormatLocalization"));
+    destination.get("unitLocalization").combineCommands(source.get("unitLocalization"));
+    destination.get("powerSourceConfiguration").combineCommands(source.get("powerSourceConfiguration"));
+    destination.get("powerSource").combineCommands(source.get("powerSource"));
+    destination.get("generalCommissioning").combineCommands(source.get("generalCommissioning"));
+    destination.get("networkCommissioning").combineCommands(source.get("networkCommissioning"));
+    destination.get("diagnosticLogs").combineCommands(source.get("diagnosticLogs"));
+    destination.get("generalDiagnostics").combineCommands(source.get("generalDiagnostics"));
+    destination.get("softwareDiagnostics").combineCommands(source.get("softwareDiagnostics"));
+    destination.get("threadNetworkDiagnostics").combineCommands(source.get("threadNetworkDiagnostics"));
+    destination.get("wiFiNetworkDiagnostics").combineCommands(source.get("wiFiNetworkDiagnostics"));
+    destination.get("ethernetNetworkDiagnostics").combineCommands(source.get("ethernetNetworkDiagnostics"));
+    destination.get("timeSynchronization").combineCommands(source.get("timeSynchronization"));
+    destination.get("bridgedDeviceBasicInformation").combineCommands(source.get("bridgedDeviceBasicInformation"));
+    destination.get("switch").combineCommands(source.get("switch"));
+    destination.get("administratorCommissioning").combineCommands(source.get("administratorCommissioning"));
+    destination.get("operationalCredentials").combineCommands(source.get("operationalCredentials"));
+    destination.get("groupKeyManagement").combineCommands(source.get("groupKeyManagement"));
+    destination.get("fixedLabel").combineCommands(source.get("fixedLabel"));
+    destination.get("userLabel").combineCommands(source.get("userLabel"));
+    destination.get("proxyConfiguration").combineCommands(source.get("proxyConfiguration"));
+    destination.get("proxyDiscovery").combineCommands(source.get("proxyDiscovery"));
+    destination.get("proxyValid").combineCommands(source.get("proxyValid"));
+    destination.get("booleanState").combineCommands(source.get("booleanState"));
+    destination.get("icdManagement").combineCommands(source.get("icdManagement"));
+    destination.get("timer").combineCommands(source.get("timer"));
+    destination.get("ovenCavityOperationalState").combineCommands(source.get("ovenCavityOperationalState"));
+    destination.get("ovenMode").combineCommands(source.get("ovenMode"));
+    destination.get("laundryDryerControls").combineCommands(source.get("laundryDryerControls"));
+    destination.get("modeSelect").combineCommands(source.get("modeSelect"));
+    destination.get("laundryWasherMode").combineCommands(source.get("laundryWasherMode"));
+    destination.get("refrigeratorAndTemperatureControlledCabinetMode").combineCommands(source.get("refrigeratorAndTemperatureControlledCabinetMode"));
+    destination.get("laundryWasherControls").combineCommands(source.get("laundryWasherControls"));
+    destination.get("rvcRunMode").combineCommands(source.get("rvcRunMode"));
+    destination.get("rvcCleanMode").combineCommands(source.get("rvcCleanMode"));
+    destination.get("temperatureControl").combineCommands(source.get("temperatureControl"));
+    destination.get("refrigeratorAlarm").combineCommands(source.get("refrigeratorAlarm"));
+    destination.get("dishwasherMode").combineCommands(source.get("dishwasherMode"));
+    destination.get("airQuality").combineCommands(source.get("airQuality"));
+    destination.get("smokeCoAlarm").combineCommands(source.get("smokeCoAlarm"));
+    destination.get("dishwasherAlarm").combineCommands(source.get("dishwasherAlarm"));
+    destination.get("microwaveOvenMode").combineCommands(source.get("microwaveOvenMode"));
+    destination.get("microwaveOvenControl").combineCommands(source.get("microwaveOvenControl"));
+    destination.get("operationalState").combineCommands(source.get("operationalState"));
+    destination.get("rvcOperationalState").combineCommands(source.get("rvcOperationalState"));
+    destination.get("scenesManagement").combineCommands(source.get("scenesManagement"));
+    destination.get("hepaFilterMonitoring").combineCommands(source.get("hepaFilterMonitoring"));
+    destination.get("activatedCarbonFilterMonitoring").combineCommands(source.get("activatedCarbonFilterMonitoring"));
+    destination.get("booleanStateConfiguration").combineCommands(source.get("booleanStateConfiguration"));
+    destination.get("valveConfigurationAndControl").combineCommands(source.get("valveConfigurationAndControl"));
+    destination.get("electricalPowerMeasurement").combineCommands(source.get("electricalPowerMeasurement"));
+    destination.get("electricalEnergyMeasurement").combineCommands(source.get("electricalEnergyMeasurement"));
+    destination.get("waterHeaterManagement").combineCommands(source.get("waterHeaterManagement"));
+    destination.get("demandResponseLoadControl").combineCommands(source.get("demandResponseLoadControl"));
+    destination.get("messages").combineCommands(source.get("messages"));
+    destination.get("deviceEnergyManagement").combineCommands(source.get("deviceEnergyManagement"));
+    destination.get("energyEvse").combineCommands(source.get("energyEvse"));
+    destination.get("energyPreference").combineCommands(source.get("energyPreference"));
+    destination.get("powerTopology").combineCommands(source.get("powerTopology"));
+    destination.get("energyEvseMode").combineCommands(source.get("energyEvseMode"));
+    destination.get("waterHeaterMode").combineCommands(source.get("waterHeaterMode"));
+    destination.get("deviceEnergyManagementMode").combineCommands(source.get("deviceEnergyManagementMode"));
+    destination.get("doorLock").combineCommands(source.get("doorLock"));
+    destination.get("windowCovering").combineCommands(source.get("windowCovering"));
+    destination.get("barrierControl").combineCommands(source.get("barrierControl"));
+    destination.get("serviceArea").combineCommands(source.get("serviceArea"));
+    destination.get("pumpConfigurationAndControl").combineCommands(source.get("pumpConfigurationAndControl"));
+    destination.get("thermostat").combineCommands(source.get("thermostat"));
+    destination.get("fanControl").combineCommands(source.get("fanControl"));
+    destination.get("thermostatUserInterfaceConfiguration").combineCommands(source.get("thermostatUserInterfaceConfiguration"));
+    destination.get("colorControl").combineCommands(source.get("colorControl"));
+    destination.get("ballastConfiguration").combineCommands(source.get("ballastConfiguration"));
+    destination.get("illuminanceMeasurement").combineCommands(source.get("illuminanceMeasurement"));
+    destination.get("temperatureMeasurement").combineCommands(source.get("temperatureMeasurement"));
+    destination.get("pressureMeasurement").combineCommands(source.get("pressureMeasurement"));
+    destination.get("flowMeasurement").combineCommands(source.get("flowMeasurement"));
+    destination.get("relativeHumidityMeasurement").combineCommands(source.get("relativeHumidityMeasurement"));
+    destination.get("occupancySensing").combineCommands(source.get("occupancySensing"));
+    destination.get("carbonMonoxideConcentrationMeasurement").combineCommands(source.get("carbonMonoxideConcentrationMeasurement"));
+    destination.get("carbonDioxideConcentrationMeasurement").combineCommands(source.get("carbonDioxideConcentrationMeasurement"));
+    destination.get("nitrogenDioxideConcentrationMeasurement").combineCommands(source.get("nitrogenDioxideConcentrationMeasurement"));
+    destination.get("ozoneConcentrationMeasurement").combineCommands(source.get("ozoneConcentrationMeasurement"));
+    destination.get("pm25ConcentrationMeasurement").combineCommands(source.get("pm25ConcentrationMeasurement"));
+    destination.get("formaldehydeConcentrationMeasurement").combineCommands(source.get("formaldehydeConcentrationMeasurement"));
+    destination.get("pm1ConcentrationMeasurement").combineCommands(source.get("pm1ConcentrationMeasurement"));
+    destination.get("pm10ConcentrationMeasurement").combineCommands(source.get("pm10ConcentrationMeasurement"));
+    destination.get("totalVolatileOrganicCompoundsConcentrationMeasurement").combineCommands(source.get("totalVolatileOrganicCompoundsConcentrationMeasurement"));
+    destination.get("radonConcentrationMeasurement").combineCommands(source.get("radonConcentrationMeasurement"));
+    destination.get("wiFiNetworkManagement").combineCommands(source.get("wiFiNetworkManagement"));
+    destination.get("threadBorderRouterManagement").combineCommands(source.get("threadBorderRouterManagement"));
+    destination.get("threadNetworkDirectory").combineCommands(source.get("threadNetworkDirectory"));
+    destination.get("wakeOnLan").combineCommands(source.get("wakeOnLan"));
+    destination.get("channel").combineCommands(source.get("channel"));
+    destination.get("targetNavigator").combineCommands(source.get("targetNavigator"));
+    destination.get("mediaPlayback").combineCommands(source.get("mediaPlayback"));
+    destination.get("mediaInput").combineCommands(source.get("mediaInput"));
+    destination.get("lowPower").combineCommands(source.get("lowPower"));
+    destination.get("keypadInput").combineCommands(source.get("keypadInput"));
+    destination.get("contentLauncher").combineCommands(source.get("contentLauncher"));
+    destination.get("audioOutput").combineCommands(source.get("audioOutput"));
+    destination.get("applicationLauncher").combineCommands(source.get("applicationLauncher"));
+    destination.get("applicationBasic").combineCommands(source.get("applicationBasic"));
+    destination.get("accountLogin").combineCommands(source.get("accountLogin"));
+    destination.get("contentControl").combineCommands(source.get("contentControl"));
+    destination.get("contentAppObserver").combineCommands(source.get("contentAppObserver"));
+    destination.get("cameraAvStreamManagement").combineCommands(source.get("cameraAvStreamManagement"));
+    destination.get("cameraAvSettingsUserLevelManagement").combineCommands(source.get("cameraAvSettingsUserLevelManagement"));
+    destination.get("webRTCTransportProvider").combineCommands(source.get("webRTCTransportProvider"));
+    destination.get("webRTCTransportRequestor").combineCommands(source.get("webRTCTransportRequestor"));
+    destination.get("pushAvStreamTransport").combineCommands(source.get("pushAvStreamTransport"));
+    destination.get("chime").combineCommands(source.get("chime"));
+    destination.get("ecosystemInformation").combineCommands(source.get("ecosystemInformation"));
+    destination.get("commissionerControl").combineCommands(source.get("commissionerControl"));
+    destination.get("electricalMeasurement").combineCommands(source.get("electricalMeasurement"));
+    destination.get("unitTesting").combineCommands(source.get("unitTesting"));
+    destination.get("faultInjection").combineCommands(source.get("faultInjection"));
+    destination.get("sampleMei").combineCommands(source.get("sampleMei"));
+  }
+
+ @SuppressWarnings("unchecked")
+  public Map<String, Map<String, InteractionInfo>> getCommandMap() {
+    Map<String, Map<String, InteractionInfo>> commandMap = new HashMap<>();
+
+    Map<String, InteractionInfo> identifyClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    Map<String, CommandParameterInfo> identifyidentifyCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo identifyidentifyidentifyTimeCommandParameterInfo = new CommandParameterInfo("identifyTime", Integer.class, Integer.class);
+    identifyidentifyCommandParams.put("identifyTime",identifyidentifyidentifyTimeCommandParameterInfo);
+    InteractionInfo identifyidentifyInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.IdentifyCluster) cluster)
+        .identify((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("identifyTime")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        identifyidentifyCommandParams
+    );
+    identifyClusterInteractionInfoMap.put("identify", identifyidentifyInteractionInfo);
+
+    Map<String, CommandParameterInfo> identifytriggerEffectCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo identifytriggerEffecteffectIdentifierCommandParameterInfo = new CommandParameterInfo("effectIdentifier", Integer.class, Integer.class);
+    identifytriggerEffectCommandParams.put("effectIdentifier",identifytriggerEffecteffectIdentifierCommandParameterInfo);
+
+    CommandParameterInfo identifytriggerEffecteffectVariantCommandParameterInfo = new CommandParameterInfo("effectVariant", Integer.class, Integer.class);
+    identifytriggerEffectCommandParams.put("effectVariant",identifytriggerEffecteffectVariantCommandParameterInfo);
+    InteractionInfo identifytriggerEffectInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.IdentifyCluster) cluster)
+        .triggerEffect((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("effectIdentifier")
+        , (Integer)
+        commandArguments.get("effectVariant")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        identifytriggerEffectCommandParams
+    );
+    identifyClusterInteractionInfoMap.put("triggerEffect", identifytriggerEffectInteractionInfo);
+
+    commandMap.put("identify", identifyClusterInteractionInfoMap);
+
+    Map<String, InteractionInfo> groupsClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    Map<String, CommandParameterInfo> groupsaddGroupCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo groupsaddGroupgroupIDCommandParameterInfo = new CommandParameterInfo("groupID", Integer.class, Integer.class);
+    groupsaddGroupCommandParams.put("groupID",groupsaddGroupgroupIDCommandParameterInfo);
+
+    CommandParameterInfo groupsaddGroupgroupNameCommandParameterInfo = new CommandParameterInfo("groupName", String.class, String.class);
+    groupsaddGroupCommandParams.put("groupName",groupsaddGroupgroupNameCommandParameterInfo);
+    InteractionInfo groupsaddGroupInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.GroupsCluster) cluster)
+          .addGroup((ChipClusters.GroupsCluster.AddGroupResponseCallback) callback
+           , (Integer)
+             commandArguments.get("groupID")
+
+           , (String)
+             commandArguments.get("groupName")
+
+            );
+        },
+        () -> new DelegatedGroupsClusterAddGroupResponseCallback(),
+        groupsaddGroupCommandParams
+      );
+    groupsClusterInteractionInfoMap.put("addGroup", groupsaddGroupInteractionInfo);
+
+    Map<String, CommandParameterInfo> groupsviewGroupCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo groupsviewGroupgroupIDCommandParameterInfo = new CommandParameterInfo("groupID", Integer.class, Integer.class);
+    groupsviewGroupCommandParams.put("groupID",groupsviewGroupgroupIDCommandParameterInfo);
+    InteractionInfo groupsviewGroupInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.GroupsCluster) cluster)
+          .viewGroup((ChipClusters.GroupsCluster.ViewGroupResponseCallback) callback
+           , (Integer)
+             commandArguments.get("groupID")
+
+            );
+        },
+        () -> new DelegatedGroupsClusterViewGroupResponseCallback(),
+        groupsviewGroupCommandParams
+      );
+    groupsClusterInteractionInfoMap.put("viewGroup", groupsviewGroupInteractionInfo);
+
+    Map<String, CommandParameterInfo> groupsgetGroupMembershipCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo groupsgetGroupMembershipgroupListCommandParameterInfo = new CommandParameterInfo("groupList", ArrayList.class, ArrayList.class);
+    groupsgetGroupMembershipCommandParams.put("groupList",groupsgetGroupMembershipgroupListCommandParameterInfo);
+    InteractionInfo groupsgetGroupMembershipInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.GroupsCluster) cluster)
+          .getGroupMembership((ChipClusters.GroupsCluster.GetGroupMembershipResponseCallback) callback
+           , (ArrayList<Integer>)
+             commandArguments.get("groupList")
+
+            );
+        },
+        () -> new DelegatedGroupsClusterGetGroupMembershipResponseCallback(),
+        groupsgetGroupMembershipCommandParams
+      );
+    groupsClusterInteractionInfoMap.put("getGroupMembership", groupsgetGroupMembershipInteractionInfo);
+
+    Map<String, CommandParameterInfo> groupsremoveGroupCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo groupsremoveGroupgroupIDCommandParameterInfo = new CommandParameterInfo("groupID", Integer.class, Integer.class);
+    groupsremoveGroupCommandParams.put("groupID",groupsremoveGroupgroupIDCommandParameterInfo);
+    InteractionInfo groupsremoveGroupInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.GroupsCluster) cluster)
+          .removeGroup((ChipClusters.GroupsCluster.RemoveGroupResponseCallback) callback
+           , (Integer)
+             commandArguments.get("groupID")
+
+            );
+        },
+        () -> new DelegatedGroupsClusterRemoveGroupResponseCallback(),
+        groupsremoveGroupCommandParams
+      );
+    groupsClusterInteractionInfoMap.put("removeGroup", groupsremoveGroupInteractionInfo);
+
+    Map<String, CommandParameterInfo> groupsremoveAllGroupsCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo groupsremoveAllGroupsInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.GroupsCluster) cluster)
+        .removeAllGroups((DefaultClusterCallback) callback
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        groupsremoveAllGroupsCommandParams
+    );
+    groupsClusterInteractionInfoMap.put("removeAllGroups", groupsremoveAllGroupsInteractionInfo);
+
+    Map<String, CommandParameterInfo> groupsaddGroupIfIdentifyingCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo groupsaddGroupIfIdentifyinggroupIDCommandParameterInfo = new CommandParameterInfo("groupID", Integer.class, Integer.class);
+    groupsaddGroupIfIdentifyingCommandParams.put("groupID",groupsaddGroupIfIdentifyinggroupIDCommandParameterInfo);
+
+    CommandParameterInfo groupsaddGroupIfIdentifyinggroupNameCommandParameterInfo = new CommandParameterInfo("groupName", String.class, String.class);
+    groupsaddGroupIfIdentifyingCommandParams.put("groupName",groupsaddGroupIfIdentifyinggroupNameCommandParameterInfo);
+    InteractionInfo groupsaddGroupIfIdentifyingInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.GroupsCluster) cluster)
+        .addGroupIfIdentifying((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("groupID")
+        , (String)
+        commandArguments.get("groupName")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        groupsaddGroupIfIdentifyingCommandParams
+    );
+    groupsClusterInteractionInfoMap.put("addGroupIfIdentifying", groupsaddGroupIfIdentifyingInteractionInfo);
+
+    commandMap.put("groups", groupsClusterInteractionInfoMap);
+
+    Map<String, InteractionInfo> onOffClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    Map<String, CommandParameterInfo> onOffoffCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo onOffoffInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.OnOffCluster) cluster)
+        .off((DefaultClusterCallback) callback
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        onOffoffCommandParams
+    );
+    onOffClusterInteractionInfoMap.put("off", onOffoffInteractionInfo);
+
+    Map<String, CommandParameterInfo> onOffonCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo onOffonInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.OnOffCluster) cluster)
+        .on((DefaultClusterCallback) callback
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        onOffonCommandParams
+    );
+    onOffClusterInteractionInfoMap.put("on", onOffonInteractionInfo);
+
+    Map<String, CommandParameterInfo> onOfftoggleCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo onOfftoggleInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.OnOffCluster) cluster)
+        .toggle((DefaultClusterCallback) callback
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        onOfftoggleCommandParams
+    );
+    onOffClusterInteractionInfoMap.put("toggle", onOfftoggleInteractionInfo);
+
+    Map<String, CommandParameterInfo> onOffoffWithEffectCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo onOffoffWithEffecteffectIdentifierCommandParameterInfo = new CommandParameterInfo("effectIdentifier", Integer.class, Integer.class);
+    onOffoffWithEffectCommandParams.put("effectIdentifier",onOffoffWithEffecteffectIdentifierCommandParameterInfo);
+
+    CommandParameterInfo onOffoffWithEffecteffectVariantCommandParameterInfo = new CommandParameterInfo("effectVariant", Integer.class, Integer.class);
+    onOffoffWithEffectCommandParams.put("effectVariant",onOffoffWithEffecteffectVariantCommandParameterInfo);
+    InteractionInfo onOffoffWithEffectInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.OnOffCluster) cluster)
+        .offWithEffect((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("effectIdentifier")
+        , (Integer)
+        commandArguments.get("effectVariant")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        onOffoffWithEffectCommandParams
+    );
+    onOffClusterInteractionInfoMap.put("offWithEffect", onOffoffWithEffectInteractionInfo);
+
+    Map<String, CommandParameterInfo> onOffonWithRecallGlobalSceneCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo onOffonWithRecallGlobalSceneInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.OnOffCluster) cluster)
+        .onWithRecallGlobalScene((DefaultClusterCallback) callback
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        onOffonWithRecallGlobalSceneCommandParams
+    );
+    onOffClusterInteractionInfoMap.put("onWithRecallGlobalScene", onOffonWithRecallGlobalSceneInteractionInfo);
+
+    Map<String, CommandParameterInfo> onOffonWithTimedOffCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo onOffonWithTimedOffonOffControlCommandParameterInfo = new CommandParameterInfo("onOffControl", Integer.class, Integer.class);
+    onOffonWithTimedOffCommandParams.put("onOffControl",onOffonWithTimedOffonOffControlCommandParameterInfo);
+
+    CommandParameterInfo onOffonWithTimedOffonTimeCommandParameterInfo = new CommandParameterInfo("onTime", Integer.class, Integer.class);
+    onOffonWithTimedOffCommandParams.put("onTime",onOffonWithTimedOffonTimeCommandParameterInfo);
+
+    CommandParameterInfo onOffonWithTimedOffoffWaitTimeCommandParameterInfo = new CommandParameterInfo("offWaitTime", Integer.class, Integer.class);
+    onOffonWithTimedOffCommandParams.put("offWaitTime",onOffonWithTimedOffoffWaitTimeCommandParameterInfo);
+    InteractionInfo onOffonWithTimedOffInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.OnOffCluster) cluster)
+        .onWithTimedOff((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("onOffControl")
+        , (Integer)
+        commandArguments.get("onTime")
+        , (Integer)
+        commandArguments.get("offWaitTime")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        onOffonWithTimedOffCommandParams
+    );
+    onOffClusterInteractionInfoMap.put("onWithTimedOff", onOffonWithTimedOffInteractionInfo);
+
+    commandMap.put("onOff", onOffClusterInteractionInfoMap);
+
+    Map<String, InteractionInfo> onOffSwitchConfigurationClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    commandMap.put("onOffSwitchConfiguration", onOffSwitchConfigurationClusterInteractionInfoMap);
+
+    Map<String, InteractionInfo> levelControlClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    Map<String, CommandParameterInfo> levelControlmoveToLevelCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo levelControlmoveToLevellevelCommandParameterInfo = new CommandParameterInfo("level", Integer.class, Integer.class);
+    levelControlmoveToLevelCommandParams.put("level",levelControlmoveToLevellevelCommandParameterInfo);
+
+    CommandParameterInfo levelControlmoveToLeveltransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Integer.class, Integer.class);
+    levelControlmoveToLevelCommandParams.put("transitionTime",levelControlmoveToLeveltransitionTimeCommandParameterInfo);
+
+    CommandParameterInfo levelControlmoveToLeveloptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
+    levelControlmoveToLevelCommandParams.put("optionsMask",levelControlmoveToLeveloptionsMaskCommandParameterInfo);
+
+    CommandParameterInfo levelControlmoveToLeveloptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
+    levelControlmoveToLevelCommandParams.put("optionsOverride",levelControlmoveToLeveloptionsOverrideCommandParameterInfo);
+    InteractionInfo levelControlmoveToLevelInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.LevelControlCluster) cluster)
+        .moveToLevel((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("level")
+        , (Integer)
+        commandArguments.get("transitionTime")
+        , (Integer)
+        commandArguments.get("optionsMask")
+        , (Integer)
+        commandArguments.get("optionsOverride")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        levelControlmoveToLevelCommandParams
+    );
+    levelControlClusterInteractionInfoMap.put("moveToLevel", levelControlmoveToLevelInteractionInfo);
+
+    Map<String, CommandParameterInfo> levelControlmoveCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo levelControlmovemoveModeCommandParameterInfo = new CommandParameterInfo("moveMode", Integer.class, Integer.class);
+    levelControlmoveCommandParams.put("moveMode",levelControlmovemoveModeCommandParameterInfo);
+
+    CommandParameterInfo levelControlmoverateCommandParameterInfo = new CommandParameterInfo("rate", Integer.class, Integer.class);
+    levelControlmoveCommandParams.put("rate",levelControlmoverateCommandParameterInfo);
+
+    CommandParameterInfo levelControlmoveoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
+    levelControlmoveCommandParams.put("optionsMask",levelControlmoveoptionsMaskCommandParameterInfo);
+
+    CommandParameterInfo levelControlmoveoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
+    levelControlmoveCommandParams.put("optionsOverride",levelControlmoveoptionsOverrideCommandParameterInfo);
+    InteractionInfo levelControlmoveInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.LevelControlCluster) cluster)
+        .move((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("moveMode")
+        , (Integer)
+        commandArguments.get("rate")
+        , (Integer)
+        commandArguments.get("optionsMask")
+        , (Integer)
+        commandArguments.get("optionsOverride")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        levelControlmoveCommandParams
+    );
+    levelControlClusterInteractionInfoMap.put("move", levelControlmoveInteractionInfo);
+
+    Map<String, CommandParameterInfo> levelControlstepCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo levelControlstepstepModeCommandParameterInfo = new CommandParameterInfo("stepMode", Integer.class, Integer.class);
+    levelControlstepCommandParams.put("stepMode",levelControlstepstepModeCommandParameterInfo);
+
+    CommandParameterInfo levelControlstepstepSizeCommandParameterInfo = new CommandParameterInfo("stepSize", Integer.class, Integer.class);
+    levelControlstepCommandParams.put("stepSize",levelControlstepstepSizeCommandParameterInfo);
+
+    CommandParameterInfo levelControlsteptransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Integer.class, Integer.class);
+    levelControlstepCommandParams.put("transitionTime",levelControlsteptransitionTimeCommandParameterInfo);
+
+    CommandParameterInfo levelControlstepoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
+    levelControlstepCommandParams.put("optionsMask",levelControlstepoptionsMaskCommandParameterInfo);
+
+    CommandParameterInfo levelControlstepoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
+    levelControlstepCommandParams.put("optionsOverride",levelControlstepoptionsOverrideCommandParameterInfo);
+    InteractionInfo levelControlstepInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.LevelControlCluster) cluster)
+        .step((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("stepMode")
+        , (Integer)
+        commandArguments.get("stepSize")
+        , (Integer)
+        commandArguments.get("transitionTime")
+        , (Integer)
+        commandArguments.get("optionsMask")
+        , (Integer)
+        commandArguments.get("optionsOverride")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        levelControlstepCommandParams
+    );
+    levelControlClusterInteractionInfoMap.put("step", levelControlstepInteractionInfo);
+
+    Map<String, CommandParameterInfo> levelControlstopCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo levelControlstopoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
+    levelControlstopCommandParams.put("optionsMask",levelControlstopoptionsMaskCommandParameterInfo);
+
+    CommandParameterInfo levelControlstopoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
+    levelControlstopCommandParams.put("optionsOverride",levelControlstopoptionsOverrideCommandParameterInfo);
+    InteractionInfo levelControlstopInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.LevelControlCluster) cluster)
+        .stop((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("optionsMask")
+        , (Integer)
+        commandArguments.get("optionsOverride")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        levelControlstopCommandParams
+    );
+    levelControlClusterInteractionInfoMap.put("stop", levelControlstopInteractionInfo);
+
+    Map<String, CommandParameterInfo> levelControlmoveToLevelWithOnOffCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo levelControlmoveToLevelWithOnOfflevelCommandParameterInfo = new CommandParameterInfo("level", Integer.class, Integer.class);
+    levelControlmoveToLevelWithOnOffCommandParams.put("level",levelControlmoveToLevelWithOnOfflevelCommandParameterInfo);
+
+    CommandParameterInfo levelControlmoveToLevelWithOnOfftransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Integer.class, Integer.class);
+    levelControlmoveToLevelWithOnOffCommandParams.put("transitionTime",levelControlmoveToLevelWithOnOfftransitionTimeCommandParameterInfo);
+
+    CommandParameterInfo levelControlmoveToLevelWithOnOffoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
+    levelControlmoveToLevelWithOnOffCommandParams.put("optionsMask",levelControlmoveToLevelWithOnOffoptionsMaskCommandParameterInfo);
+
+    CommandParameterInfo levelControlmoveToLevelWithOnOffoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
+    levelControlmoveToLevelWithOnOffCommandParams.put("optionsOverride",levelControlmoveToLevelWithOnOffoptionsOverrideCommandParameterInfo);
+    InteractionInfo levelControlmoveToLevelWithOnOffInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.LevelControlCluster) cluster)
+        .moveToLevelWithOnOff((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("level")
+        , (Integer)
+        commandArguments.get("transitionTime")
+        , (Integer)
+        commandArguments.get("optionsMask")
+        , (Integer)
+        commandArguments.get("optionsOverride")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        levelControlmoveToLevelWithOnOffCommandParams
+    );
+    levelControlClusterInteractionInfoMap.put("moveToLevelWithOnOff", levelControlmoveToLevelWithOnOffInteractionInfo);
+
+    Map<String, CommandParameterInfo> levelControlmoveWithOnOffCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo levelControlmoveWithOnOffmoveModeCommandParameterInfo = new CommandParameterInfo("moveMode", Integer.class, Integer.class);
+    levelControlmoveWithOnOffCommandParams.put("moveMode",levelControlmoveWithOnOffmoveModeCommandParameterInfo);
+
+    CommandParameterInfo levelControlmoveWithOnOffrateCommandParameterInfo = new CommandParameterInfo("rate", Integer.class, Integer.class);
+    levelControlmoveWithOnOffCommandParams.put("rate",levelControlmoveWithOnOffrateCommandParameterInfo);
+
+    CommandParameterInfo levelControlmoveWithOnOffoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
+    levelControlmoveWithOnOffCommandParams.put("optionsMask",levelControlmoveWithOnOffoptionsMaskCommandParameterInfo);
+
+    CommandParameterInfo levelControlmoveWithOnOffoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
+    levelControlmoveWithOnOffCommandParams.put("optionsOverride",levelControlmoveWithOnOffoptionsOverrideCommandParameterInfo);
+    InteractionInfo levelControlmoveWithOnOffInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.LevelControlCluster) cluster)
+        .moveWithOnOff((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("moveMode")
+        , (Integer)
+        commandArguments.get("rate")
+        , (Integer)
+        commandArguments.get("optionsMask")
+        , (Integer)
+        commandArguments.get("optionsOverride")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        levelControlmoveWithOnOffCommandParams
+    );
+    levelControlClusterInteractionInfoMap.put("moveWithOnOff", levelControlmoveWithOnOffInteractionInfo);
+
+    Map<String, CommandParameterInfo> levelControlstepWithOnOffCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo levelControlstepWithOnOffstepModeCommandParameterInfo = new CommandParameterInfo("stepMode", Integer.class, Integer.class);
+    levelControlstepWithOnOffCommandParams.put("stepMode",levelControlstepWithOnOffstepModeCommandParameterInfo);
+
+    CommandParameterInfo levelControlstepWithOnOffstepSizeCommandParameterInfo = new CommandParameterInfo("stepSize", Integer.class, Integer.class);
+    levelControlstepWithOnOffCommandParams.put("stepSize",levelControlstepWithOnOffstepSizeCommandParameterInfo);
+
+    CommandParameterInfo levelControlstepWithOnOfftransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Integer.class, Integer.class);
+    levelControlstepWithOnOffCommandParams.put("transitionTime",levelControlstepWithOnOfftransitionTimeCommandParameterInfo);
+
+    CommandParameterInfo levelControlstepWithOnOffoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
+    levelControlstepWithOnOffCommandParams.put("optionsMask",levelControlstepWithOnOffoptionsMaskCommandParameterInfo);
+
+    CommandParameterInfo levelControlstepWithOnOffoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
+    levelControlstepWithOnOffCommandParams.put("optionsOverride",levelControlstepWithOnOffoptionsOverrideCommandParameterInfo);
+    InteractionInfo levelControlstepWithOnOffInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.LevelControlCluster) cluster)
+        .stepWithOnOff((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("stepMode")
+        , (Integer)
+        commandArguments.get("stepSize")
+        , (Integer)
+        commandArguments.get("transitionTime")
+        , (Integer)
+        commandArguments.get("optionsMask")
+        , (Integer)
+        commandArguments.get("optionsOverride")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        levelControlstepWithOnOffCommandParams
+    );
+    levelControlClusterInteractionInfoMap.put("stepWithOnOff", levelControlstepWithOnOffInteractionInfo);
+
+    Map<String, CommandParameterInfo> levelControlstopWithOnOffCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo levelControlstopWithOnOffoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
+    levelControlstopWithOnOffCommandParams.put("optionsMask",levelControlstopWithOnOffoptionsMaskCommandParameterInfo);
+
+    CommandParameterInfo levelControlstopWithOnOffoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
+    levelControlstopWithOnOffCommandParams.put("optionsOverride",levelControlstopWithOnOffoptionsOverrideCommandParameterInfo);
+    InteractionInfo levelControlstopWithOnOffInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.LevelControlCluster) cluster)
+        .stopWithOnOff((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("optionsMask")
+        , (Integer)
+        commandArguments.get("optionsOverride")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        levelControlstopWithOnOffCommandParams
+    );
+    levelControlClusterInteractionInfoMap.put("stopWithOnOff", levelControlstopWithOnOffInteractionInfo);
+
+    Map<String, CommandParameterInfo> levelControlmoveToClosestFrequencyCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo levelControlmoveToClosestFrequencyfrequencyCommandParameterInfo = new CommandParameterInfo("frequency", Integer.class, Integer.class);
+    levelControlmoveToClosestFrequencyCommandParams.put("frequency",levelControlmoveToClosestFrequencyfrequencyCommandParameterInfo);
+    InteractionInfo levelControlmoveToClosestFrequencyInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.LevelControlCluster) cluster)
+        .moveToClosestFrequency((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("frequency")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        levelControlmoveToClosestFrequencyCommandParams
+    );
+    levelControlClusterInteractionInfoMap.put("moveToClosestFrequency", levelControlmoveToClosestFrequencyInteractionInfo);
+
+    commandMap.put("levelControl", levelControlClusterInteractionInfoMap);
+
+    Map<String, InteractionInfo> binaryInputBasicClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    commandMap.put("binaryInputBasic", binaryInputBasicClusterInteractionInfoMap);
+
+    Map<String, InteractionInfo> pulseWidthModulationClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    commandMap.put("pulseWidthModulation", pulseWidthModulationClusterInteractionInfoMap);
+
+    Map<String, InteractionInfo> descriptorClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    commandMap.put("descriptor", descriptorClusterInteractionInfoMap);
+
+    Map<String, InteractionInfo> bindingClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    commandMap.put("binding", bindingClusterInteractionInfoMap);
+
+    Map<String, InteractionInfo> accessControlClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    Map<String, CommandParameterInfo> accessControlreviewFabricRestrictionsCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    InteractionInfo accessControlreviewFabricRestrictionsInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.AccessControlCluster) cluster)
+          .reviewFabricRestrictions((ChipClusters.AccessControlCluster.ReviewFabricRestrictionsResponseCallback) callback
+           , (ArrayList<ChipStructs.AccessControlClusterCommissioningAccessRestrictionEntryStruct>)
+             commandArguments.get("arl")
+
+            );
+        },
+        () -> new DelegatedAccessControlClusterReviewFabricRestrictionsResponseCallback(),
+        accessControlreviewFabricRestrictionsCommandParams
+      );
+    accessControlClusterInteractionInfoMap.put("reviewFabricRestrictions", accessControlreviewFabricRestrictionsInteractionInfo);
+
+    commandMap.put("accessControl", accessControlClusterInteractionInfoMap);
+
+    Map<String, InteractionInfo> actionsClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    Map<String, CommandParameterInfo> actionsinstantActionCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo actionsinstantActionactionIDCommandParameterInfo = new CommandParameterInfo("actionID", Integer.class, Integer.class);
+    actionsinstantActionCommandParams.put("actionID",actionsinstantActionactionIDCommandParameterInfo);
+
+    CommandParameterInfo actionsinstantActioninvokeIDCommandParameterInfo = new CommandParameterInfo("invokeID", Optional.class, Long.class);
+    actionsinstantActionCommandParams.put("invokeID",actionsinstantActioninvokeIDCommandParameterInfo);
+    InteractionInfo actionsinstantActionInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.ActionsCluster) cluster)
+        .instantAction((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("actionID")
+        , (Optional<Long>)
+        commandArguments.get("invokeID")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        actionsinstantActionCommandParams
+    );
+    actionsClusterInteractionInfoMap.put("instantAction", actionsinstantActionInteractionInfo);
+
+    Map<String, CommandParameterInfo> actionsinstantActionWithTransitionCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo actionsinstantActionWithTransitionactionIDCommandParameterInfo = new CommandParameterInfo("actionID", Integer.class, Integer.class);
+    actionsinstantActionWithTransitionCommandParams.put("actionID",actionsinstantActionWithTransitionactionIDCommandParameterInfo);
+
+    CommandParameterInfo actionsinstantActionWithTransitioninvokeIDCommandParameterInfo = new CommandParameterInfo("invokeID", Optional.class, Long.class);
+    actionsinstantActionWithTransitionCommandParams.put("invokeID",actionsinstantActionWithTransitioninvokeIDCommandParameterInfo);
+
+    CommandParameterInfo actionsinstantActionWithTransitiontransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Integer.class, Integer.class);
+    actionsinstantActionWithTransitionCommandParams.put("transitionTime",actionsinstantActionWithTransitiontransitionTimeCommandParameterInfo);
+    InteractionInfo actionsinstantActionWithTransitionInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.ActionsCluster) cluster)
+        .instantActionWithTransition((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("actionID")
+        , (Optional<Long>)
+        commandArguments.get("invokeID")
+        , (Integer)
+        commandArguments.get("transitionTime")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        actionsinstantActionWithTransitionCommandParams
+    );
+    actionsClusterInteractionInfoMap.put("instantActionWithTransition", actionsinstantActionWithTransitionInteractionInfo);
+
+    Map<String, CommandParameterInfo> actionsstartActionCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo actionsstartActionactionIDCommandParameterInfo = new CommandParameterInfo("actionID", Integer.class, Integer.class);
+    actionsstartActionCommandParams.put("actionID",actionsstartActionactionIDCommandParameterInfo);
+
+    CommandParameterInfo actionsstartActioninvokeIDCommandParameterInfo = new CommandParameterInfo("invokeID", Optional.class, Long.class);
+    actionsstartActionCommandParams.put("invokeID",actionsstartActioninvokeIDCommandParameterInfo);
+    InteractionInfo actionsstartActionInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.ActionsCluster) cluster)
+        .startAction((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("actionID")
+        , (Optional<Long>)
+        commandArguments.get("invokeID")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        actionsstartActionCommandParams
+    );
+    actionsClusterInteractionInfoMap.put("startAction", actionsstartActionInteractionInfo);
+
+    Map<String, CommandParameterInfo> actionsstartActionWithDurationCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo actionsstartActionWithDurationactionIDCommandParameterInfo = new CommandParameterInfo("actionID", Integer.class, Integer.class);
+    actionsstartActionWithDurationCommandParams.put("actionID",actionsstartActionWithDurationactionIDCommandParameterInfo);
+
+    CommandParameterInfo actionsstartActionWithDurationinvokeIDCommandParameterInfo = new CommandParameterInfo("invokeID", Optional.class, Long.class);
+    actionsstartActionWithDurationCommandParams.put("invokeID",actionsstartActionWithDurationinvokeIDCommandParameterInfo);
+
+    CommandParameterInfo actionsstartActionWithDurationdurationCommandParameterInfo = new CommandParameterInfo("duration", Long.class, Long.class);
+    actionsstartActionWithDurationCommandParams.put("duration",actionsstartActionWithDurationdurationCommandParameterInfo);
+    InteractionInfo actionsstartActionWithDurationInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.ActionsCluster) cluster)
+        .startActionWithDuration((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("actionID")
+        , (Optional<Long>)
+        commandArguments.get("invokeID")
+        , (Long)
+        commandArguments.get("duration")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        actionsstartActionWithDurationCommandParams
+    );
+    actionsClusterInteractionInfoMap.put("startActionWithDuration", actionsstartActionWithDurationInteractionInfo);
+
+    Map<String, CommandParameterInfo> actionsstopActionCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo actionsstopActionactionIDCommandParameterInfo = new CommandParameterInfo("actionID", Integer.class, Integer.class);
+    actionsstopActionCommandParams.put("actionID",actionsstopActionactionIDCommandParameterInfo);
+
+    CommandParameterInfo actionsstopActioninvokeIDCommandParameterInfo = new CommandParameterInfo("invokeID", Optional.class, Long.class);
+    actionsstopActionCommandParams.put("invokeID",actionsstopActioninvokeIDCommandParameterInfo);
+    InteractionInfo actionsstopActionInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.ActionsCluster) cluster)
+        .stopAction((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("actionID")
+        , (Optional<Long>)
+        commandArguments.get("invokeID")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        actionsstopActionCommandParams
+    );
+    actionsClusterInteractionInfoMap.put("stopAction", actionsstopActionInteractionInfo);
+
+    Map<String, CommandParameterInfo> actionspauseActionCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo actionspauseActionactionIDCommandParameterInfo = new CommandParameterInfo("actionID", Integer.class, Integer.class);
+    actionspauseActionCommandParams.put("actionID",actionspauseActionactionIDCommandParameterInfo);
+
+    CommandParameterInfo actionspauseActioninvokeIDCommandParameterInfo = new CommandParameterInfo("invokeID", Optional.class, Long.class);
+    actionspauseActionCommandParams.put("invokeID",actionspauseActioninvokeIDCommandParameterInfo);
+    InteractionInfo actionspauseActionInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.ActionsCluster) cluster)
+        .pauseAction((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("actionID")
+        , (Optional<Long>)
+        commandArguments.get("invokeID")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        actionspauseActionCommandParams
+    );
+    actionsClusterInteractionInfoMap.put("pauseAction", actionspauseActionInteractionInfo);
+
+    Map<String, CommandParameterInfo> actionspauseActionWithDurationCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo actionspauseActionWithDurationactionIDCommandParameterInfo = new CommandParameterInfo("actionID", Integer.class, Integer.class);
+    actionspauseActionWithDurationCommandParams.put("actionID",actionspauseActionWithDurationactionIDCommandParameterInfo);
+
+    CommandParameterInfo actionspauseActionWithDurationinvokeIDCommandParameterInfo = new CommandParameterInfo("invokeID", Optional.class, Long.class);
+    actionspauseActionWithDurationCommandParams.put("invokeID",actionspauseActionWithDurationinvokeIDCommandParameterInfo);
+
+    CommandParameterInfo actionspauseActionWithDurationdurationCommandParameterInfo = new CommandParameterInfo("duration", Long.class, Long.class);
+    actionspauseActionWithDurationCommandParams.put("duration",actionspauseActionWithDurationdurationCommandParameterInfo);
+    InteractionInfo actionspauseActionWithDurationInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.ActionsCluster) cluster)
+        .pauseActionWithDuration((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("actionID")
+        , (Optional<Long>)
+        commandArguments.get("invokeID")
+        , (Long)
+        commandArguments.get("duration")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        actionspauseActionWithDurationCommandParams
+    );
+    actionsClusterInteractionInfoMap.put("pauseActionWithDuration", actionspauseActionWithDurationInteractionInfo);
+
+    Map<String, CommandParameterInfo> actionsresumeActionCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo actionsresumeActionactionIDCommandParameterInfo = new CommandParameterInfo("actionID", Integer.class, Integer.class);
+    actionsresumeActionCommandParams.put("actionID",actionsresumeActionactionIDCommandParameterInfo);
+
+    CommandParameterInfo actionsresumeActioninvokeIDCommandParameterInfo = new CommandParameterInfo("invokeID", Optional.class, Long.class);
+    actionsresumeActionCommandParams.put("invokeID",actionsresumeActioninvokeIDCommandParameterInfo);
+    InteractionInfo actionsresumeActionInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.ActionsCluster) cluster)
+        .resumeAction((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("actionID")
+        , (Optional<Long>)
+        commandArguments.get("invokeID")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        actionsresumeActionCommandParams
+    );
+    actionsClusterInteractionInfoMap.put("resumeAction", actionsresumeActionInteractionInfo);
+
+    Map<String, CommandParameterInfo> actionsenableActionCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo actionsenableActionactionIDCommandParameterInfo = new CommandParameterInfo("actionID", Integer.class, Integer.class);
+    actionsenableActionCommandParams.put("actionID",actionsenableActionactionIDCommandParameterInfo);
+
+    CommandParameterInfo actionsenableActioninvokeIDCommandParameterInfo = new CommandParameterInfo("invokeID", Optional.class, Long.class);
+    actionsenableActionCommandParams.put("invokeID",actionsenableActioninvokeIDCommandParameterInfo);
+    InteractionInfo actionsenableActionInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.ActionsCluster) cluster)
+        .enableAction((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("actionID")
+        , (Optional<Long>)
+        commandArguments.get("invokeID")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        actionsenableActionCommandParams
+    );
+    actionsClusterInteractionInfoMap.put("enableAction", actionsenableActionInteractionInfo);
+
+    Map<String, CommandParameterInfo> actionsenableActionWithDurationCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo actionsenableActionWithDurationactionIDCommandParameterInfo = new CommandParameterInfo("actionID", Integer.class, Integer.class);
+    actionsenableActionWithDurationCommandParams.put("actionID",actionsenableActionWithDurationactionIDCommandParameterInfo);
+
+    CommandParameterInfo actionsenableActionWithDurationinvokeIDCommandParameterInfo = new CommandParameterInfo("invokeID", Optional.class, Long.class);
+    actionsenableActionWithDurationCommandParams.put("invokeID",actionsenableActionWithDurationinvokeIDCommandParameterInfo);
+
+    CommandParameterInfo actionsenableActionWithDurationdurationCommandParameterInfo = new CommandParameterInfo("duration", Long.class, Long.class);
+    actionsenableActionWithDurationCommandParams.put("duration",actionsenableActionWithDurationdurationCommandParameterInfo);
+    InteractionInfo actionsenableActionWithDurationInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.ActionsCluster) cluster)
+        .enableActionWithDuration((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("actionID")
+        , (Optional<Long>)
+        commandArguments.get("invokeID")
+        , (Long)
+        commandArguments.get("duration")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        actionsenableActionWithDurationCommandParams
+    );
+    actionsClusterInteractionInfoMap.put("enableActionWithDuration", actionsenableActionWithDurationInteractionInfo);
 
-    Map<String, InteractionInfo> identifyClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, CommandParameterInfo> actionsdisableActionCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, CommandParameterInfo> identifyidentifyCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo actionsdisableActionactionIDCommandParameterInfo = new CommandParameterInfo("actionID", Integer.class, Integer.class);
+    actionsdisableActionCommandParams.put("actionID",actionsdisableActionactionIDCommandParameterInfo);
 
-    CommandParameterInfo identifyidentifyidentifyTimeCommandParameterInfo = new CommandParameterInfo("identifyTime", Integer.class, Integer.class);
-    identifyidentifyCommandParams.put("identifyTime",identifyidentifyidentifyTimeCommandParameterInfo);
-    InteractionInfo identifyidentifyInteractionInfo = new InteractionInfo(
+    CommandParameterInfo actionsdisableActioninvokeIDCommandParameterInfo = new CommandParameterInfo("invokeID", Optional.class, Long.class);
+    actionsdisableActionCommandParams.put("invokeID",actionsdisableActioninvokeIDCommandParameterInfo);
+    InteractionInfo actionsdisableActionInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.IdentifyCluster) cluster)
-        .identify((DefaultClusterCallback) callback
+        ((ChipClusters.ActionsCluster) cluster)
+        .disableAction((DefaultClusterCallback) callback
         , (Integer)
-        commandArguments.get("identifyTime")
+        commandArguments.get("actionID")
+        , (Optional<Long>)
+        commandArguments.get("invokeID")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        identifyidentifyCommandParams
+        actionsdisableActionCommandParams
     );
-    identifyClusterInteractionInfoMap.put("identify", identifyidentifyInteractionInfo);
+    actionsClusterInteractionInfoMap.put("disableAction", actionsdisableActionInteractionInfo);
 
-    Map<String, CommandParameterInfo> identifytriggerEffectCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> actionsdisableActionWithDurationCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo identifytriggerEffecteffectIdentifierCommandParameterInfo = new CommandParameterInfo("effectIdentifier", Integer.class, Integer.class);
-    identifytriggerEffectCommandParams.put("effectIdentifier",identifytriggerEffecteffectIdentifierCommandParameterInfo);
+    CommandParameterInfo actionsdisableActionWithDurationactionIDCommandParameterInfo = new CommandParameterInfo("actionID", Integer.class, Integer.class);
+    actionsdisableActionWithDurationCommandParams.put("actionID",actionsdisableActionWithDurationactionIDCommandParameterInfo);
 
-    CommandParameterInfo identifytriggerEffecteffectVariantCommandParameterInfo = new CommandParameterInfo("effectVariant", Integer.class, Integer.class);
-    identifytriggerEffectCommandParams.put("effectVariant",identifytriggerEffecteffectVariantCommandParameterInfo);
-    InteractionInfo identifytriggerEffectInteractionInfo = new InteractionInfo(
+    CommandParameterInfo actionsdisableActionWithDurationinvokeIDCommandParameterInfo = new CommandParameterInfo("invokeID", Optional.class, Long.class);
+    actionsdisableActionWithDurationCommandParams.put("invokeID",actionsdisableActionWithDurationinvokeIDCommandParameterInfo);
+
+    CommandParameterInfo actionsdisableActionWithDurationdurationCommandParameterInfo = new CommandParameterInfo("duration", Long.class, Long.class);
+    actionsdisableActionWithDurationCommandParams.put("duration",actionsdisableActionWithDurationdurationCommandParameterInfo);
+    InteractionInfo actionsdisableActionWithDurationInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.IdentifyCluster) cluster)
-        .triggerEffect((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("effectIdentifier")
+        ((ChipClusters.ActionsCluster) cluster)
+        .disableActionWithDuration((DefaultClusterCallback) callback
         , (Integer)
-        commandArguments.get("effectVariant")
+        commandArguments.get("actionID")
+        , (Optional<Long>)
+        commandArguments.get("invokeID")
+        , (Long)
+        commandArguments.get("duration")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        identifytriggerEffectCommandParams
+        actionsdisableActionWithDurationCommandParams
     );
-    identifyClusterInteractionInfoMap.put("triggerEffect", identifytriggerEffectInteractionInfo);
+    actionsClusterInteractionInfoMap.put("disableActionWithDuration", actionsdisableActionWithDurationInteractionInfo);
 
-    commandMap.put("identify", identifyClusterInteractionInfoMap);
+    commandMap.put("actions", actionsClusterInteractionInfoMap);
 
-    Map<String, InteractionInfo> groupsClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, InteractionInfo> basicInformationClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    Map<String, CommandParameterInfo> groupsaddGroupCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> basicInformationmfgSpecificPingCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo basicInformationmfgSpecificPingInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.BasicInformationCluster) cluster)
+        .mfgSpecificPing((DefaultClusterCallback) callback
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        basicInformationmfgSpecificPingCommandParams
+    );
+    basicInformationClusterInteractionInfoMap.put("mfgSpecificPing", basicInformationmfgSpecificPingInteractionInfo);
 
-    CommandParameterInfo groupsaddGroupgroupIDCommandParameterInfo = new CommandParameterInfo("groupID", Integer.class, Integer.class);
-    groupsaddGroupCommandParams.put("groupID",groupsaddGroupgroupIDCommandParameterInfo);
+    commandMap.put("basicInformation", basicInformationClusterInteractionInfoMap);
 
-    CommandParameterInfo groupsaddGroupgroupNameCommandParameterInfo = new CommandParameterInfo("groupName", String.class, String.class);
-    groupsaddGroupCommandParams.put("groupName",groupsaddGroupgroupNameCommandParameterInfo);
-    InteractionInfo groupsaddGroupInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.GroupsCluster) cluster)
-          .addGroup((ChipClusters.GroupsCluster.AddGroupResponseCallback) callback
-           , (Integer)
-             commandArguments.get("groupID")
+    Map<String, InteractionInfo> otaSoftwareUpdateProviderClusterInteractionInfoMap = new LinkedHashMap<>();
 
-           , (String)
-             commandArguments.get("groupName")
+    Map<String, CommandParameterInfo> otaSoftwareUpdateProviderqueryImageCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-            );
-        },
-        () -> new DelegatedGroupsClusterAddGroupResponseCallback(),
-        groupsaddGroupCommandParams
-      );
-    groupsClusterInteractionInfoMap.put("addGroup", groupsaddGroupInteractionInfo);
+    CommandParameterInfo otaSoftwareUpdateProviderqueryImagevendorIDCommandParameterInfo = new CommandParameterInfo("vendorID", Integer.class, Integer.class);
+    otaSoftwareUpdateProviderqueryImageCommandParams.put("vendorID",otaSoftwareUpdateProviderqueryImagevendorIDCommandParameterInfo);
 
-    Map<String, CommandParameterInfo> groupsviewGroupCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo otaSoftwareUpdateProviderqueryImageproductIDCommandParameterInfo = new CommandParameterInfo("productID", Integer.class, Integer.class);
+    otaSoftwareUpdateProviderqueryImageCommandParams.put("productID",otaSoftwareUpdateProviderqueryImageproductIDCommandParameterInfo);
 
-    CommandParameterInfo groupsviewGroupgroupIDCommandParameterInfo = new CommandParameterInfo("groupID", Integer.class, Integer.class);
-    groupsviewGroupCommandParams.put("groupID",groupsviewGroupgroupIDCommandParameterInfo);
-    InteractionInfo groupsviewGroupInteractionInfo = new InteractionInfo(
+    CommandParameterInfo otaSoftwareUpdateProviderqueryImagesoftwareVersionCommandParameterInfo = new CommandParameterInfo("softwareVersion", Long.class, Long.class);
+    otaSoftwareUpdateProviderqueryImageCommandParams.put("softwareVersion",otaSoftwareUpdateProviderqueryImagesoftwareVersionCommandParameterInfo);
+
+    CommandParameterInfo otaSoftwareUpdateProviderqueryImageprotocolsSupportedCommandParameterInfo = new CommandParameterInfo("protocolsSupported", ArrayList.class, ArrayList.class);
+    otaSoftwareUpdateProviderqueryImageCommandParams.put("protocolsSupported",otaSoftwareUpdateProviderqueryImageprotocolsSupportedCommandParameterInfo);
+
+    CommandParameterInfo otaSoftwareUpdateProviderqueryImagehardwareVersionCommandParameterInfo = new CommandParameterInfo("hardwareVersion", Optional.class, Integer.class);
+    otaSoftwareUpdateProviderqueryImageCommandParams.put("hardwareVersion",otaSoftwareUpdateProviderqueryImagehardwareVersionCommandParameterInfo);
+
+    CommandParameterInfo otaSoftwareUpdateProviderqueryImagelocationCommandParameterInfo = new CommandParameterInfo("location", Optional.class, String.class);
+    otaSoftwareUpdateProviderqueryImageCommandParams.put("location",otaSoftwareUpdateProviderqueryImagelocationCommandParameterInfo);
+
+    CommandParameterInfo otaSoftwareUpdateProviderqueryImagerequestorCanConsentCommandParameterInfo = new CommandParameterInfo("requestorCanConsent", Optional.class, Boolean.class);
+    otaSoftwareUpdateProviderqueryImageCommandParams.put("requestorCanConsent",otaSoftwareUpdateProviderqueryImagerequestorCanConsentCommandParameterInfo);
+
+    CommandParameterInfo otaSoftwareUpdateProviderqueryImagemetadataForProviderCommandParameterInfo = new CommandParameterInfo("metadataForProvider", Optional.class, byte[].class);
+    otaSoftwareUpdateProviderqueryImageCommandParams.put("metadataForProvider",otaSoftwareUpdateProviderqueryImagemetadataForProviderCommandParameterInfo);
+    InteractionInfo otaSoftwareUpdateProviderqueryImageInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.GroupsCluster) cluster)
-          .viewGroup((ChipClusters.GroupsCluster.ViewGroupResponseCallback) callback
+        ((ChipClusters.OtaSoftwareUpdateProviderCluster) cluster)
+          .queryImage((ChipClusters.OtaSoftwareUpdateProviderCluster.QueryImageResponseCallback) callback
            , (Integer)
-             commandArguments.get("groupID")
+             commandArguments.get("vendorID")
 
-            );
-        },
-        () -> new DelegatedGroupsClusterViewGroupResponseCallback(),
-        groupsviewGroupCommandParams
-      );
-    groupsClusterInteractionInfoMap.put("viewGroup", groupsviewGroupInteractionInfo);
+           , (Integer)
+             commandArguments.get("productID")
 
-    Map<String, CommandParameterInfo> groupsgetGroupMembershipCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+           , (Long)
+             commandArguments.get("softwareVersion")
 
-    CommandParameterInfo groupsgetGroupMembershipgroupListCommandParameterInfo = new CommandParameterInfo("groupList", ArrayList.class, ArrayList.class);
-    groupsgetGroupMembershipCommandParams.put("groupList",groupsgetGroupMembershipgroupListCommandParameterInfo);
-    InteractionInfo groupsgetGroupMembershipInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.GroupsCluster) cluster)
-          .getGroupMembership((ChipClusters.GroupsCluster.GetGroupMembershipResponseCallback) callback
            , (ArrayList<Integer>)
-             commandArguments.get("groupList")
+             commandArguments.get("protocolsSupported")
 
-            );
-        },
-        () -> new DelegatedGroupsClusterGetGroupMembershipResponseCallback(),
-        groupsgetGroupMembershipCommandParams
-      );
-    groupsClusterInteractionInfoMap.put("getGroupMembership", groupsgetGroupMembershipInteractionInfo);
+           , (Optional<Integer>)
+             commandArguments.get("hardwareVersion")
 
-    Map<String, CommandParameterInfo> groupsremoveGroupCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+           , (Optional<String>)
+             commandArguments.get("location")
 
-    CommandParameterInfo groupsremoveGroupgroupIDCommandParameterInfo = new CommandParameterInfo("groupID", Integer.class, Integer.class);
-    groupsremoveGroupCommandParams.put("groupID",groupsremoveGroupgroupIDCommandParameterInfo);
-    InteractionInfo groupsremoveGroupInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.GroupsCluster) cluster)
-          .removeGroup((ChipClusters.GroupsCluster.RemoveGroupResponseCallback) callback
-           , (Integer)
-             commandArguments.get("groupID")
+           , (Optional<Boolean>)
+             commandArguments.get("requestorCanConsent")
+
+           , (Optional<byte[]>)
+             commandArguments.get("metadataForProvider")
 
             );
         },
-        () -> new DelegatedGroupsClusterRemoveGroupResponseCallback(),
-        groupsremoveGroupCommandParams
+        () -> new DelegatedOtaSoftwareUpdateProviderClusterQueryImageResponseCallback(),
+        otaSoftwareUpdateProviderqueryImageCommandParams
       );
-    groupsClusterInteractionInfoMap.put("removeGroup", groupsremoveGroupInteractionInfo);
-
-    Map<String, CommandParameterInfo> groupsremoveAllGroupsCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo groupsremoveAllGroupsInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.GroupsCluster) cluster)
-        .removeAllGroups((DefaultClusterCallback) callback
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        groupsremoveAllGroupsCommandParams
-    );
-    groupsClusterInteractionInfoMap.put("removeAllGroups", groupsremoveAllGroupsInteractionInfo);
+    otaSoftwareUpdateProviderClusterInteractionInfoMap.put("queryImage", otaSoftwareUpdateProviderqueryImageInteractionInfo);
 
-    Map<String, CommandParameterInfo> groupsaddGroupIfIdentifyingCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> otaSoftwareUpdateProviderapplyUpdateRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo groupsaddGroupIfIdentifyinggroupIDCommandParameterInfo = new CommandParameterInfo("groupID", Integer.class, Integer.class);
-    groupsaddGroupIfIdentifyingCommandParams.put("groupID",groupsaddGroupIfIdentifyinggroupIDCommandParameterInfo);
+    CommandParameterInfo otaSoftwareUpdateProviderapplyUpdateRequestupdateTokenCommandParameterInfo = new CommandParameterInfo("updateToken", byte[].class, byte[].class);
+    otaSoftwareUpdateProviderapplyUpdateRequestCommandParams.put("updateToken",otaSoftwareUpdateProviderapplyUpdateRequestupdateTokenCommandParameterInfo);
 
-    CommandParameterInfo groupsaddGroupIfIdentifyinggroupNameCommandParameterInfo = new CommandParameterInfo("groupName", String.class, String.class);
-    groupsaddGroupIfIdentifyingCommandParams.put("groupName",groupsaddGroupIfIdentifyinggroupNameCommandParameterInfo);
-    InteractionInfo groupsaddGroupIfIdentifyingInteractionInfo = new InteractionInfo(
+    CommandParameterInfo otaSoftwareUpdateProviderapplyUpdateRequestnewVersionCommandParameterInfo = new CommandParameterInfo("newVersion", Long.class, Long.class);
+    otaSoftwareUpdateProviderapplyUpdateRequestCommandParams.put("newVersion",otaSoftwareUpdateProviderapplyUpdateRequestnewVersionCommandParameterInfo);
+    InteractionInfo otaSoftwareUpdateProviderapplyUpdateRequestInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.GroupsCluster) cluster)
-        .addGroupIfIdentifying((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("groupID")
-        , (String)
-        commandArguments.get("groupName")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        groupsaddGroupIfIdentifyingCommandParams
-    );
-    groupsClusterInteractionInfoMap.put("addGroupIfIdentifying", groupsaddGroupIfIdentifyingInteractionInfo);
+        ((ChipClusters.OtaSoftwareUpdateProviderCluster) cluster)
+          .applyUpdateRequest((ChipClusters.OtaSoftwareUpdateProviderCluster.ApplyUpdateResponseCallback) callback
+           , (byte[])
+             commandArguments.get("updateToken")
 
-    commandMap.put("groups", groupsClusterInteractionInfoMap);
+           , (Long)
+             commandArguments.get("newVersion")
 
-    Map<String, InteractionInfo> onOffClusterInteractionInfoMap = new LinkedHashMap<>();
+            );
+        },
+        () -> new DelegatedOtaSoftwareUpdateProviderClusterApplyUpdateResponseCallback(),
+        otaSoftwareUpdateProviderapplyUpdateRequestCommandParams
+      );
+    otaSoftwareUpdateProviderClusterInteractionInfoMap.put("applyUpdateRequest", otaSoftwareUpdateProviderapplyUpdateRequestInteractionInfo);
 
-    Map<String, CommandParameterInfo> onOffoffCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo onOffoffInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.OnOffCluster) cluster)
-        .off((DefaultClusterCallback) callback
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        onOffoffCommandParams
-    );
-    onOffClusterInteractionInfoMap.put("off", onOffoffInteractionInfo);
+    Map<String, CommandParameterInfo> otaSoftwareUpdateProvidernotifyUpdateAppliedCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, CommandParameterInfo> onOffonCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo onOffonInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.OnOffCluster) cluster)
-        .on((DefaultClusterCallback) callback
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        onOffonCommandParams
-    );
-    onOffClusterInteractionInfoMap.put("on", onOffonInteractionInfo);
+    CommandParameterInfo otaSoftwareUpdateProvidernotifyUpdateAppliedupdateTokenCommandParameterInfo = new CommandParameterInfo("updateToken", byte[].class, byte[].class);
+    otaSoftwareUpdateProvidernotifyUpdateAppliedCommandParams.put("updateToken",otaSoftwareUpdateProvidernotifyUpdateAppliedupdateTokenCommandParameterInfo);
 
-    Map<String, CommandParameterInfo> onOfftoggleCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo onOfftoggleInteractionInfo = new InteractionInfo(
+    CommandParameterInfo otaSoftwareUpdateProvidernotifyUpdateAppliedsoftwareVersionCommandParameterInfo = new CommandParameterInfo("softwareVersion", Long.class, Long.class);
+    otaSoftwareUpdateProvidernotifyUpdateAppliedCommandParams.put("softwareVersion",otaSoftwareUpdateProvidernotifyUpdateAppliedsoftwareVersionCommandParameterInfo);
+    InteractionInfo otaSoftwareUpdateProvidernotifyUpdateAppliedInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.OnOffCluster) cluster)
-        .toggle((DefaultClusterCallback) callback
+        ((ChipClusters.OtaSoftwareUpdateProviderCluster) cluster)
+        .notifyUpdateApplied((DefaultClusterCallback) callback
+        , (byte[])
+        commandArguments.get("updateToken")
+        , (Long)
+        commandArguments.get("softwareVersion")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        onOfftoggleCommandParams
+        otaSoftwareUpdateProvidernotifyUpdateAppliedCommandParams
     );
-    onOffClusterInteractionInfoMap.put("toggle", onOfftoggleInteractionInfo);
+    otaSoftwareUpdateProviderClusterInteractionInfoMap.put("notifyUpdateApplied", otaSoftwareUpdateProvidernotifyUpdateAppliedInteractionInfo);
 
-    Map<String, CommandParameterInfo> onOffoffWithEffectCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    commandMap.put("otaSoftwareUpdateProvider", otaSoftwareUpdateProviderClusterInteractionInfoMap);
 
-    CommandParameterInfo onOffoffWithEffecteffectIdentifierCommandParameterInfo = new CommandParameterInfo("effectIdentifier", Integer.class, Integer.class);
-    onOffoffWithEffectCommandParams.put("effectIdentifier",onOffoffWithEffecteffectIdentifierCommandParameterInfo);
+    Map<String, InteractionInfo> otaSoftwareUpdateRequestorClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    CommandParameterInfo onOffoffWithEffecteffectVariantCommandParameterInfo = new CommandParameterInfo("effectVariant", Integer.class, Integer.class);
-    onOffoffWithEffectCommandParams.put("effectVariant",onOffoffWithEffecteffectVariantCommandParameterInfo);
-    InteractionInfo onOffoffWithEffectInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.OnOffCluster) cluster)
-        .offWithEffect((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("effectIdentifier")
-        , (Integer)
-        commandArguments.get("effectVariant")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        onOffoffWithEffectCommandParams
-    );
-    onOffClusterInteractionInfoMap.put("offWithEffect", onOffoffWithEffectInteractionInfo);
+    Map<String, CommandParameterInfo> otaSoftwareUpdateRequestorannounceOTAProviderCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, CommandParameterInfo> onOffonWithRecallGlobalSceneCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo onOffonWithRecallGlobalSceneInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.OnOffCluster) cluster)
-        .onWithRecallGlobalScene((DefaultClusterCallback) callback
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        onOffonWithRecallGlobalSceneCommandParams
-    );
-    onOffClusterInteractionInfoMap.put("onWithRecallGlobalScene", onOffonWithRecallGlobalSceneInteractionInfo);
+    CommandParameterInfo otaSoftwareUpdateRequestorannounceOTAProviderproviderNodeIDCommandParameterInfo = new CommandParameterInfo("providerNodeID", Long.class, Long.class);
+    otaSoftwareUpdateRequestorannounceOTAProviderCommandParams.put("providerNodeID",otaSoftwareUpdateRequestorannounceOTAProviderproviderNodeIDCommandParameterInfo);
 
-    Map<String, CommandParameterInfo> onOffonWithTimedOffCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo otaSoftwareUpdateRequestorannounceOTAProvidervendorIDCommandParameterInfo = new CommandParameterInfo("vendorID", Integer.class, Integer.class);
+    otaSoftwareUpdateRequestorannounceOTAProviderCommandParams.put("vendorID",otaSoftwareUpdateRequestorannounceOTAProvidervendorIDCommandParameterInfo);
 
-    CommandParameterInfo onOffonWithTimedOffonOffControlCommandParameterInfo = new CommandParameterInfo("onOffControl", Integer.class, Integer.class);
-    onOffonWithTimedOffCommandParams.put("onOffControl",onOffonWithTimedOffonOffControlCommandParameterInfo);
+    CommandParameterInfo otaSoftwareUpdateRequestorannounceOTAProviderannouncementReasonCommandParameterInfo = new CommandParameterInfo("announcementReason", Integer.class, Integer.class);
+    otaSoftwareUpdateRequestorannounceOTAProviderCommandParams.put("announcementReason",otaSoftwareUpdateRequestorannounceOTAProviderannouncementReasonCommandParameterInfo);
 
-    CommandParameterInfo onOffonWithTimedOffonTimeCommandParameterInfo = new CommandParameterInfo("onTime", Integer.class, Integer.class);
-    onOffonWithTimedOffCommandParams.put("onTime",onOffonWithTimedOffonTimeCommandParameterInfo);
+    CommandParameterInfo otaSoftwareUpdateRequestorannounceOTAProvidermetadataForNodeCommandParameterInfo = new CommandParameterInfo("metadataForNode", Optional.class, byte[].class);
+    otaSoftwareUpdateRequestorannounceOTAProviderCommandParams.put("metadataForNode",otaSoftwareUpdateRequestorannounceOTAProvidermetadataForNodeCommandParameterInfo);
 
-    CommandParameterInfo onOffonWithTimedOffoffWaitTimeCommandParameterInfo = new CommandParameterInfo("offWaitTime", Integer.class, Integer.class);
-    onOffonWithTimedOffCommandParams.put("offWaitTime",onOffonWithTimedOffoffWaitTimeCommandParameterInfo);
-    InteractionInfo onOffonWithTimedOffInteractionInfo = new InteractionInfo(
+    CommandParameterInfo otaSoftwareUpdateRequestorannounceOTAProviderendpointCommandParameterInfo = new CommandParameterInfo("endpoint", Integer.class, Integer.class);
+    otaSoftwareUpdateRequestorannounceOTAProviderCommandParams.put("endpoint",otaSoftwareUpdateRequestorannounceOTAProviderendpointCommandParameterInfo);
+    InteractionInfo otaSoftwareUpdateRequestorannounceOTAProviderInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.OnOffCluster) cluster)
-        .onWithTimedOff((DefaultClusterCallback) callback
+        ((ChipClusters.OtaSoftwareUpdateRequestorCluster) cluster)
+        .announceOTAProvider((DefaultClusterCallback) callback
+        , (Long)
+        commandArguments.get("providerNodeID")
         , (Integer)
-        commandArguments.get("onOffControl")
+        commandArguments.get("vendorID")
         , (Integer)
-        commandArguments.get("onTime")
+        commandArguments.get("announcementReason")
+        , (Optional<byte[]>)
+        commandArguments.get("metadataForNode")
         , (Integer)
-        commandArguments.get("offWaitTime")
+        commandArguments.get("endpoint")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        onOffonWithTimedOffCommandParams
+        otaSoftwareUpdateRequestorannounceOTAProviderCommandParams
     );
-    onOffClusterInteractionInfoMap.put("onWithTimedOff", onOffonWithTimedOffInteractionInfo);
+    otaSoftwareUpdateRequestorClusterInteractionInfoMap.put("announceOTAProvider", otaSoftwareUpdateRequestorannounceOTAProviderInteractionInfo);
 
-    commandMap.put("onOff", onOffClusterInteractionInfoMap);
+    commandMap.put("otaSoftwareUpdateRequestor", otaSoftwareUpdateRequestorClusterInteractionInfoMap);
 
-    Map<String, InteractionInfo> onOffSwitchConfigurationClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, InteractionInfo> localizationConfigurationClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    commandMap.put("onOffSwitchConfiguration", onOffSwitchConfigurationClusterInteractionInfoMap);
+    commandMap.put("localizationConfiguration", localizationConfigurationClusterInteractionInfoMap);
 
-    Map<String, InteractionInfo> levelControlClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, InteractionInfo> timeFormatLocalizationClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    Map<String, CommandParameterInfo> levelControlmoveToLevelCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    commandMap.put("timeFormatLocalization", timeFormatLocalizationClusterInteractionInfoMap);
 
-    CommandParameterInfo levelControlmoveToLevellevelCommandParameterInfo = new CommandParameterInfo("level", Integer.class, Integer.class);
-    levelControlmoveToLevelCommandParams.put("level",levelControlmoveToLevellevelCommandParameterInfo);
+    Map<String, InteractionInfo> unitLocalizationClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    CommandParameterInfo levelControlmoveToLeveltransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Integer.class, Integer.class);
-    levelControlmoveToLevelCommandParams.put("transitionTime",levelControlmoveToLeveltransitionTimeCommandParameterInfo);
+    commandMap.put("unitLocalization", unitLocalizationClusterInteractionInfoMap);
 
-    CommandParameterInfo levelControlmoveToLeveloptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
-    levelControlmoveToLevelCommandParams.put("optionsMask",levelControlmoveToLeveloptionsMaskCommandParameterInfo);
+    Map<String, InteractionInfo> powerSourceConfigurationClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    CommandParameterInfo levelControlmoveToLeveloptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
-    levelControlmoveToLevelCommandParams.put("optionsOverride",levelControlmoveToLeveloptionsOverrideCommandParameterInfo);
-    InteractionInfo levelControlmoveToLevelInteractionInfo = new InteractionInfo(
+    commandMap.put("powerSourceConfiguration", powerSourceConfigurationClusterInteractionInfoMap);
+
+    Map<String, InteractionInfo> powerSourceClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    commandMap.put("powerSource", powerSourceClusterInteractionInfoMap);
+
+    Map<String, InteractionInfo> generalCommissioningClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    Map<String, CommandParameterInfo> generalCommissioningarmFailSafeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo generalCommissioningarmFailSafeexpiryLengthSecondsCommandParameterInfo = new CommandParameterInfo("expiryLengthSeconds", Integer.class, Integer.class);
+    generalCommissioningarmFailSafeCommandParams.put("expiryLengthSeconds",generalCommissioningarmFailSafeexpiryLengthSecondsCommandParameterInfo);
+
+    CommandParameterInfo generalCommissioningarmFailSafebreadcrumbCommandParameterInfo = new CommandParameterInfo("breadcrumb", Long.class, Long.class);
+    generalCommissioningarmFailSafeCommandParams.put("breadcrumb",generalCommissioningarmFailSafebreadcrumbCommandParameterInfo);
+    InteractionInfo generalCommissioningarmFailSafeInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.LevelControlCluster) cluster)
-        .moveToLevel((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("level")
-        , (Integer)
-        commandArguments.get("transitionTime")
-        , (Integer)
-        commandArguments.get("optionsMask")
-        , (Integer)
-        commandArguments.get("optionsOverride")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        levelControlmoveToLevelCommandParams
-    );
-    levelControlClusterInteractionInfoMap.put("moveToLevel", levelControlmoveToLevelInteractionInfo);
+        ((ChipClusters.GeneralCommissioningCluster) cluster)
+          .armFailSafe((ChipClusters.GeneralCommissioningCluster.ArmFailSafeResponseCallback) callback
+           , (Integer)
+             commandArguments.get("expiryLengthSeconds")
 
-    Map<String, CommandParameterInfo> levelControlmoveCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+           , (Long)
+             commandArguments.get("breadcrumb")
 
-    CommandParameterInfo levelControlmovemoveModeCommandParameterInfo = new CommandParameterInfo("moveMode", Integer.class, Integer.class);
-    levelControlmoveCommandParams.put("moveMode",levelControlmovemoveModeCommandParameterInfo);
+            );
+        },
+        () -> new DelegatedGeneralCommissioningClusterArmFailSafeResponseCallback(),
+        generalCommissioningarmFailSafeCommandParams
+      );
+    generalCommissioningClusterInteractionInfoMap.put("armFailSafe", generalCommissioningarmFailSafeInteractionInfo);
 
-    CommandParameterInfo levelControlmoverateCommandParameterInfo = new CommandParameterInfo("rate", Integer.class, Integer.class);
-    levelControlmoveCommandParams.put("rate",levelControlmoverateCommandParameterInfo);
+    Map<String, CommandParameterInfo> generalCommissioningsetRegulatoryConfigCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo levelControlmoveoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
-    levelControlmoveCommandParams.put("optionsMask",levelControlmoveoptionsMaskCommandParameterInfo);
+    CommandParameterInfo generalCommissioningsetRegulatoryConfignewRegulatoryConfigCommandParameterInfo = new CommandParameterInfo("newRegulatoryConfig", Integer.class, Integer.class);
+    generalCommissioningsetRegulatoryConfigCommandParams.put("newRegulatoryConfig",generalCommissioningsetRegulatoryConfignewRegulatoryConfigCommandParameterInfo);
 
-    CommandParameterInfo levelControlmoveoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
-    levelControlmoveCommandParams.put("optionsOverride",levelControlmoveoptionsOverrideCommandParameterInfo);
-    InteractionInfo levelControlmoveInteractionInfo = new InteractionInfo(
+    CommandParameterInfo generalCommissioningsetRegulatoryConfigcountryCodeCommandParameterInfo = new CommandParameterInfo("countryCode", String.class, String.class);
+    generalCommissioningsetRegulatoryConfigCommandParams.put("countryCode",generalCommissioningsetRegulatoryConfigcountryCodeCommandParameterInfo);
+
+    CommandParameterInfo generalCommissioningsetRegulatoryConfigbreadcrumbCommandParameterInfo = new CommandParameterInfo("breadcrumb", Long.class, Long.class);
+    generalCommissioningsetRegulatoryConfigCommandParams.put("breadcrumb",generalCommissioningsetRegulatoryConfigbreadcrumbCommandParameterInfo);
+    InteractionInfo generalCommissioningsetRegulatoryConfigInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.LevelControlCluster) cluster)
-        .move((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("moveMode")
-        , (Integer)
-        commandArguments.get("rate")
-        , (Integer)
-        commandArguments.get("optionsMask")
-        , (Integer)
-        commandArguments.get("optionsOverride")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        levelControlmoveCommandParams
-    );
-    levelControlClusterInteractionInfoMap.put("move", levelControlmoveInteractionInfo);
+        ((ChipClusters.GeneralCommissioningCluster) cluster)
+          .setRegulatoryConfig((ChipClusters.GeneralCommissioningCluster.SetRegulatoryConfigResponseCallback) callback
+           , (Integer)
+             commandArguments.get("newRegulatoryConfig")
+
+           , (String)
+             commandArguments.get("countryCode")
+
+           , (Long)
+             commandArguments.get("breadcrumb")
+
+            );
+        },
+        () -> new DelegatedGeneralCommissioningClusterSetRegulatoryConfigResponseCallback(),
+        generalCommissioningsetRegulatoryConfigCommandParams
+      );
+    generalCommissioningClusterInteractionInfoMap.put("setRegulatoryConfig", generalCommissioningsetRegulatoryConfigInteractionInfo);
+
+    Map<String, CommandParameterInfo> generalCommissioningcommissioningCompleteCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo generalCommissioningcommissioningCompleteInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.GeneralCommissioningCluster) cluster)
+          .commissioningComplete((ChipClusters.GeneralCommissioningCluster.CommissioningCompleteResponseCallback) callback
+            );
+        },
+        () -> new DelegatedGeneralCommissioningClusterCommissioningCompleteResponseCallback(),
+        generalCommissioningcommissioningCompleteCommandParams
+      );
+    generalCommissioningClusterInteractionInfoMap.put("commissioningComplete", generalCommissioningcommissioningCompleteInteractionInfo);
+
+    Map<String, CommandParameterInfo> generalCommissioningsetTCAcknowledgementsCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo generalCommissioningsetTCAcknowledgementsTCVersionCommandParameterInfo = new CommandParameterInfo("TCVersion", Integer.class, Integer.class);
+    generalCommissioningsetTCAcknowledgementsCommandParams.put("TCVersion",generalCommissioningsetTCAcknowledgementsTCVersionCommandParameterInfo);
+
+    CommandParameterInfo generalCommissioningsetTCAcknowledgementsTCUserResponseCommandParameterInfo = new CommandParameterInfo("TCUserResponse", Integer.class, Integer.class);
+    generalCommissioningsetTCAcknowledgementsCommandParams.put("TCUserResponse",generalCommissioningsetTCAcknowledgementsTCUserResponseCommandParameterInfo);
+    InteractionInfo generalCommissioningsetTCAcknowledgementsInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.GeneralCommissioningCluster) cluster)
+          .setTCAcknowledgements((ChipClusters.GeneralCommissioningCluster.SetTCAcknowledgementsResponseCallback) callback
+           , (Integer)
+             commandArguments.get("TCVersion")
+
+           , (Integer)
+             commandArguments.get("TCUserResponse")
+
+            );
+        },
+        () -> new DelegatedGeneralCommissioningClusterSetTCAcknowledgementsResponseCallback(),
+        generalCommissioningsetTCAcknowledgementsCommandParams
+      );
+    generalCommissioningClusterInteractionInfoMap.put("setTCAcknowledgements", generalCommissioningsetTCAcknowledgementsInteractionInfo);
+
+    commandMap.put("generalCommissioning", generalCommissioningClusterInteractionInfoMap);
+
+    Map<String, InteractionInfo> networkCommissioningClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    Map<String, CommandParameterInfo> networkCommissioningscanNetworksCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo networkCommissioningscanNetworksssidCommandParameterInfo = new CommandParameterInfo("ssid", Optional.class, byte[].class);
+    networkCommissioningscanNetworksCommandParams.put("ssid",networkCommissioningscanNetworksssidCommandParameterInfo);
+
+    CommandParameterInfo networkCommissioningscanNetworksbreadcrumbCommandParameterInfo = new CommandParameterInfo("breadcrumb", Optional.class, Long.class);
+    networkCommissioningscanNetworksCommandParams.put("breadcrumb",networkCommissioningscanNetworksbreadcrumbCommandParameterInfo);
+    InteractionInfo networkCommissioningscanNetworksInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.NetworkCommissioningCluster) cluster)
+          .scanNetworks((ChipClusters.NetworkCommissioningCluster.ScanNetworksResponseCallback) callback
+           , (Optional<byte[]>)
+             commandArguments.get("ssid")
 
-    Map<String, CommandParameterInfo> levelControlstepCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+           , (Optional<Long>)
+             commandArguments.get("breadcrumb")
 
-    CommandParameterInfo levelControlstepstepModeCommandParameterInfo = new CommandParameterInfo("stepMode", Integer.class, Integer.class);
-    levelControlstepCommandParams.put("stepMode",levelControlstepstepModeCommandParameterInfo);
+            );
+        },
+        () -> new DelegatedNetworkCommissioningClusterScanNetworksResponseCallback(),
+        networkCommissioningscanNetworksCommandParams
+      );
+    networkCommissioningClusterInteractionInfoMap.put("scanNetworks", networkCommissioningscanNetworksInteractionInfo);
 
-    CommandParameterInfo levelControlstepstepSizeCommandParameterInfo = new CommandParameterInfo("stepSize", Integer.class, Integer.class);
-    levelControlstepCommandParams.put("stepSize",levelControlstepstepSizeCommandParameterInfo);
+    Map<String, CommandParameterInfo> networkCommissioningaddOrUpdateWiFiNetworkCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo levelControlsteptransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Integer.class, Integer.class);
-    levelControlstepCommandParams.put("transitionTime",levelControlsteptransitionTimeCommandParameterInfo);
+    CommandParameterInfo networkCommissioningaddOrUpdateWiFiNetworkssidCommandParameterInfo = new CommandParameterInfo("ssid", byte[].class, byte[].class);
+    networkCommissioningaddOrUpdateWiFiNetworkCommandParams.put("ssid",networkCommissioningaddOrUpdateWiFiNetworkssidCommandParameterInfo);
 
-    CommandParameterInfo levelControlstepoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
-    levelControlstepCommandParams.put("optionsMask",levelControlstepoptionsMaskCommandParameterInfo);
+    CommandParameterInfo networkCommissioningaddOrUpdateWiFiNetworkcredentialsCommandParameterInfo = new CommandParameterInfo("credentials", byte[].class, byte[].class);
+    networkCommissioningaddOrUpdateWiFiNetworkCommandParams.put("credentials",networkCommissioningaddOrUpdateWiFiNetworkcredentialsCommandParameterInfo);
 
-    CommandParameterInfo levelControlstepoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
-    levelControlstepCommandParams.put("optionsOverride",levelControlstepoptionsOverrideCommandParameterInfo);
-    InteractionInfo levelControlstepInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.LevelControlCluster) cluster)
-        .step((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("stepMode")
-        , (Integer)
-        commandArguments.get("stepSize")
-        , (Integer)
-        commandArguments.get("transitionTime")
-        , (Integer)
-        commandArguments.get("optionsMask")
-        , (Integer)
-        commandArguments.get("optionsOverride")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        levelControlstepCommandParams
-    );
-    levelControlClusterInteractionInfoMap.put("step", levelControlstepInteractionInfo);
+    CommandParameterInfo networkCommissioningaddOrUpdateWiFiNetworkbreadcrumbCommandParameterInfo = new CommandParameterInfo("breadcrumb", Optional.class, Long.class);
+    networkCommissioningaddOrUpdateWiFiNetworkCommandParams.put("breadcrumb",networkCommissioningaddOrUpdateWiFiNetworkbreadcrumbCommandParameterInfo);
 
-    Map<String, CommandParameterInfo> levelControlstopCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo networkCommissioningaddOrUpdateWiFiNetworknetworkIdentityCommandParameterInfo = new CommandParameterInfo("networkIdentity", Optional.class, byte[].class);
+    networkCommissioningaddOrUpdateWiFiNetworkCommandParams.put("networkIdentity",networkCommissioningaddOrUpdateWiFiNetworknetworkIdentityCommandParameterInfo);
 
-    CommandParameterInfo levelControlstopoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
-    levelControlstopCommandParams.put("optionsMask",levelControlstopoptionsMaskCommandParameterInfo);
+    CommandParameterInfo networkCommissioningaddOrUpdateWiFiNetworkclientIdentifierCommandParameterInfo = new CommandParameterInfo("clientIdentifier", Optional.class, byte[].class);
+    networkCommissioningaddOrUpdateWiFiNetworkCommandParams.put("clientIdentifier",networkCommissioningaddOrUpdateWiFiNetworkclientIdentifierCommandParameterInfo);
 
-    CommandParameterInfo levelControlstopoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
-    levelControlstopCommandParams.put("optionsOverride",levelControlstopoptionsOverrideCommandParameterInfo);
-    InteractionInfo levelControlstopInteractionInfo = new InteractionInfo(
+    CommandParameterInfo networkCommissioningaddOrUpdateWiFiNetworkpossessionNonceCommandParameterInfo = new CommandParameterInfo("possessionNonce", Optional.class, byte[].class);
+    networkCommissioningaddOrUpdateWiFiNetworkCommandParams.put("possessionNonce",networkCommissioningaddOrUpdateWiFiNetworkpossessionNonceCommandParameterInfo);
+    InteractionInfo networkCommissioningaddOrUpdateWiFiNetworkInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.LevelControlCluster) cluster)
-        .stop((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("optionsMask")
-        , (Integer)
-        commandArguments.get("optionsOverride")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        levelControlstopCommandParams
-    );
-    levelControlClusterInteractionInfoMap.put("stop", levelControlstopInteractionInfo);
-
-    Map<String, CommandParameterInfo> levelControlmoveToLevelWithOnOffCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        ((ChipClusters.NetworkCommissioningCluster) cluster)
+          .addOrUpdateWiFiNetwork((ChipClusters.NetworkCommissioningCluster.NetworkConfigResponseCallback) callback
+           , (byte[])
+             commandArguments.get("ssid")
 
-    CommandParameterInfo levelControlmoveToLevelWithOnOfflevelCommandParameterInfo = new CommandParameterInfo("level", Integer.class, Integer.class);
-    levelControlmoveToLevelWithOnOffCommandParams.put("level",levelControlmoveToLevelWithOnOfflevelCommandParameterInfo);
+           , (byte[])
+             commandArguments.get("credentials")
 
-    CommandParameterInfo levelControlmoveToLevelWithOnOfftransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Integer.class, Integer.class);
-    levelControlmoveToLevelWithOnOffCommandParams.put("transitionTime",levelControlmoveToLevelWithOnOfftransitionTimeCommandParameterInfo);
+           , (Optional<Long>)
+             commandArguments.get("breadcrumb")
 
-    CommandParameterInfo levelControlmoveToLevelWithOnOffoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
-    levelControlmoveToLevelWithOnOffCommandParams.put("optionsMask",levelControlmoveToLevelWithOnOffoptionsMaskCommandParameterInfo);
+           , (Optional<byte[]>)
+             commandArguments.get("networkIdentity")
 
-    CommandParameterInfo levelControlmoveToLevelWithOnOffoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
-    levelControlmoveToLevelWithOnOffCommandParams.put("optionsOverride",levelControlmoveToLevelWithOnOffoptionsOverrideCommandParameterInfo);
-    InteractionInfo levelControlmoveToLevelWithOnOffInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.LevelControlCluster) cluster)
-        .moveToLevelWithOnOff((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("level")
-        , (Integer)
-        commandArguments.get("transitionTime")
-        , (Integer)
-        commandArguments.get("optionsMask")
-        , (Integer)
-        commandArguments.get("optionsOverride")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        levelControlmoveToLevelWithOnOffCommandParams
-    );
-    levelControlClusterInteractionInfoMap.put("moveToLevelWithOnOff", levelControlmoveToLevelWithOnOffInteractionInfo);
+           , (Optional<byte[]>)
+             commandArguments.get("clientIdentifier")
 
-    Map<String, CommandParameterInfo> levelControlmoveWithOnOffCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+           , (Optional<byte[]>)
+             commandArguments.get("possessionNonce")
 
-    CommandParameterInfo levelControlmoveWithOnOffmoveModeCommandParameterInfo = new CommandParameterInfo("moveMode", Integer.class, Integer.class);
-    levelControlmoveWithOnOffCommandParams.put("moveMode",levelControlmoveWithOnOffmoveModeCommandParameterInfo);
+            );
+        },
+        () -> new DelegatedNetworkCommissioningClusterNetworkConfigResponseCallback(),
+        networkCommissioningaddOrUpdateWiFiNetworkCommandParams
+      );
+    networkCommissioningClusterInteractionInfoMap.put("addOrUpdateWiFiNetwork", networkCommissioningaddOrUpdateWiFiNetworkInteractionInfo);
 
-    CommandParameterInfo levelControlmoveWithOnOffrateCommandParameterInfo = new CommandParameterInfo("rate", Integer.class, Integer.class);
-    levelControlmoveWithOnOffCommandParams.put("rate",levelControlmoveWithOnOffrateCommandParameterInfo);
+    Map<String, CommandParameterInfo> networkCommissioningaddOrUpdateThreadNetworkCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo levelControlmoveWithOnOffoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
-    levelControlmoveWithOnOffCommandParams.put("optionsMask",levelControlmoveWithOnOffoptionsMaskCommandParameterInfo);
+    CommandParameterInfo networkCommissioningaddOrUpdateThreadNetworkoperationalDatasetCommandParameterInfo = new CommandParameterInfo("operationalDataset", byte[].class, byte[].class);
+    networkCommissioningaddOrUpdateThreadNetworkCommandParams.put("operationalDataset",networkCommissioningaddOrUpdateThreadNetworkoperationalDatasetCommandParameterInfo);
 
-    CommandParameterInfo levelControlmoveWithOnOffoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
-    levelControlmoveWithOnOffCommandParams.put("optionsOverride",levelControlmoveWithOnOffoptionsOverrideCommandParameterInfo);
-    InteractionInfo levelControlmoveWithOnOffInteractionInfo = new InteractionInfo(
+    CommandParameterInfo networkCommissioningaddOrUpdateThreadNetworkbreadcrumbCommandParameterInfo = new CommandParameterInfo("breadcrumb", Optional.class, Long.class);
+    networkCommissioningaddOrUpdateThreadNetworkCommandParams.put("breadcrumb",networkCommissioningaddOrUpdateThreadNetworkbreadcrumbCommandParameterInfo);
+    InteractionInfo networkCommissioningaddOrUpdateThreadNetworkInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.LevelControlCluster) cluster)
-        .moveWithOnOff((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("moveMode")
-        , (Integer)
-        commandArguments.get("rate")
-        , (Integer)
-        commandArguments.get("optionsMask")
-        , (Integer)
-        commandArguments.get("optionsOverride")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        levelControlmoveWithOnOffCommandParams
-    );
-    levelControlClusterInteractionInfoMap.put("moveWithOnOff", levelControlmoveWithOnOffInteractionInfo);
-
-    Map<String, CommandParameterInfo> levelControlstepWithOnOffCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        ((ChipClusters.NetworkCommissioningCluster) cluster)
+          .addOrUpdateThreadNetwork((ChipClusters.NetworkCommissioningCluster.NetworkConfigResponseCallback) callback
+           , (byte[])
+             commandArguments.get("operationalDataset")
 
-    CommandParameterInfo levelControlstepWithOnOffstepModeCommandParameterInfo = new CommandParameterInfo("stepMode", Integer.class, Integer.class);
-    levelControlstepWithOnOffCommandParams.put("stepMode",levelControlstepWithOnOffstepModeCommandParameterInfo);
+           , (Optional<Long>)
+             commandArguments.get("breadcrumb")
 
-    CommandParameterInfo levelControlstepWithOnOffstepSizeCommandParameterInfo = new CommandParameterInfo("stepSize", Integer.class, Integer.class);
-    levelControlstepWithOnOffCommandParams.put("stepSize",levelControlstepWithOnOffstepSizeCommandParameterInfo);
+            );
+        },
+        () -> new DelegatedNetworkCommissioningClusterNetworkConfigResponseCallback(),
+        networkCommissioningaddOrUpdateThreadNetworkCommandParams
+      );
+    networkCommissioningClusterInteractionInfoMap.put("addOrUpdateThreadNetwork", networkCommissioningaddOrUpdateThreadNetworkInteractionInfo);
 
-    CommandParameterInfo levelControlstepWithOnOfftransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Integer.class, Integer.class);
-    levelControlstepWithOnOffCommandParams.put("transitionTime",levelControlstepWithOnOfftransitionTimeCommandParameterInfo);
+    Map<String, CommandParameterInfo> networkCommissioningremoveNetworkCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo levelControlstepWithOnOffoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
-    levelControlstepWithOnOffCommandParams.put("optionsMask",levelControlstepWithOnOffoptionsMaskCommandParameterInfo);
+    CommandParameterInfo networkCommissioningremoveNetworknetworkIDCommandParameterInfo = new CommandParameterInfo("networkID", byte[].class, byte[].class);
+    networkCommissioningremoveNetworkCommandParams.put("networkID",networkCommissioningremoveNetworknetworkIDCommandParameterInfo);
 
-    CommandParameterInfo levelControlstepWithOnOffoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
-    levelControlstepWithOnOffCommandParams.put("optionsOverride",levelControlstepWithOnOffoptionsOverrideCommandParameterInfo);
-    InteractionInfo levelControlstepWithOnOffInteractionInfo = new InteractionInfo(
+    CommandParameterInfo networkCommissioningremoveNetworkbreadcrumbCommandParameterInfo = new CommandParameterInfo("breadcrumb", Optional.class, Long.class);
+    networkCommissioningremoveNetworkCommandParams.put("breadcrumb",networkCommissioningremoveNetworkbreadcrumbCommandParameterInfo);
+    InteractionInfo networkCommissioningremoveNetworkInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.LevelControlCluster) cluster)
-        .stepWithOnOff((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("stepMode")
-        , (Integer)
-        commandArguments.get("stepSize")
-        , (Integer)
-        commandArguments.get("transitionTime")
-        , (Integer)
-        commandArguments.get("optionsMask")
-        , (Integer)
-        commandArguments.get("optionsOverride")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        levelControlstepWithOnOffCommandParams
-    );
-    levelControlClusterInteractionInfoMap.put("stepWithOnOff", levelControlstepWithOnOffInteractionInfo);
+        ((ChipClusters.NetworkCommissioningCluster) cluster)
+          .removeNetwork((ChipClusters.NetworkCommissioningCluster.NetworkConfigResponseCallback) callback
+           , (byte[])
+             commandArguments.get("networkID")
 
-    Map<String, CommandParameterInfo> levelControlstopWithOnOffCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+           , (Optional<Long>)
+             commandArguments.get("breadcrumb")
 
-    CommandParameterInfo levelControlstopWithOnOffoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
-    levelControlstopWithOnOffCommandParams.put("optionsMask",levelControlstopWithOnOffoptionsMaskCommandParameterInfo);
+            );
+        },
+        () -> new DelegatedNetworkCommissioningClusterNetworkConfigResponseCallback(),
+        networkCommissioningremoveNetworkCommandParams
+      );
+    networkCommissioningClusterInteractionInfoMap.put("removeNetwork", networkCommissioningremoveNetworkInteractionInfo);
 
-    CommandParameterInfo levelControlstopWithOnOffoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
-    levelControlstopWithOnOffCommandParams.put("optionsOverride",levelControlstopWithOnOffoptionsOverrideCommandParameterInfo);
-    InteractionInfo levelControlstopWithOnOffInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.LevelControlCluster) cluster)
-        .stopWithOnOff((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("optionsMask")
-        , (Integer)
-        commandArguments.get("optionsOverride")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        levelControlstopWithOnOffCommandParams
-    );
-    levelControlClusterInteractionInfoMap.put("stopWithOnOff", levelControlstopWithOnOffInteractionInfo);
+    Map<String, CommandParameterInfo> networkCommissioningconnectNetworkCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, CommandParameterInfo> levelControlmoveToClosestFrequencyCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo networkCommissioningconnectNetworknetworkIDCommandParameterInfo = new CommandParameterInfo("networkID", byte[].class, byte[].class);
+    networkCommissioningconnectNetworkCommandParams.put("networkID",networkCommissioningconnectNetworknetworkIDCommandParameterInfo);
 
-    CommandParameterInfo levelControlmoveToClosestFrequencyfrequencyCommandParameterInfo = new CommandParameterInfo("frequency", Integer.class, Integer.class);
-    levelControlmoveToClosestFrequencyCommandParams.put("frequency",levelControlmoveToClosestFrequencyfrequencyCommandParameterInfo);
-    InteractionInfo levelControlmoveToClosestFrequencyInteractionInfo = new InteractionInfo(
+    CommandParameterInfo networkCommissioningconnectNetworkbreadcrumbCommandParameterInfo = new CommandParameterInfo("breadcrumb", Optional.class, Long.class);
+    networkCommissioningconnectNetworkCommandParams.put("breadcrumb",networkCommissioningconnectNetworkbreadcrumbCommandParameterInfo);
+    InteractionInfo networkCommissioningconnectNetworkInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.LevelControlCluster) cluster)
-        .moveToClosestFrequency((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("frequency")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        levelControlmoveToClosestFrequencyCommandParams
-    );
-    levelControlClusterInteractionInfoMap.put("moveToClosestFrequency", levelControlmoveToClosestFrequencyInteractionInfo);
+        ((ChipClusters.NetworkCommissioningCluster) cluster)
+          .connectNetwork((ChipClusters.NetworkCommissioningCluster.ConnectNetworkResponseCallback) callback
+           , (byte[])
+             commandArguments.get("networkID")
 
-    commandMap.put("levelControl", levelControlClusterInteractionInfoMap);
+           , (Optional<Long>)
+             commandArguments.get("breadcrumb")
 
-    Map<String, InteractionInfo> binaryInputBasicClusterInteractionInfoMap = new LinkedHashMap<>();
+            );
+        },
+        () -> new DelegatedNetworkCommissioningClusterConnectNetworkResponseCallback(),
+        networkCommissioningconnectNetworkCommandParams
+      );
+    networkCommissioningClusterInteractionInfoMap.put("connectNetwork", networkCommissioningconnectNetworkInteractionInfo);
 
-    commandMap.put("binaryInputBasic", binaryInputBasicClusterInteractionInfoMap);
+    Map<String, CommandParameterInfo> networkCommissioningreorderNetworkCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, InteractionInfo> pulseWidthModulationClusterInteractionInfoMap = new LinkedHashMap<>();
+    CommandParameterInfo networkCommissioningreorderNetworknetworkIDCommandParameterInfo = new CommandParameterInfo("networkID", byte[].class, byte[].class);
+    networkCommissioningreorderNetworkCommandParams.put("networkID",networkCommissioningreorderNetworknetworkIDCommandParameterInfo);
 
-    commandMap.put("pulseWidthModulation", pulseWidthModulationClusterInteractionInfoMap);
+    CommandParameterInfo networkCommissioningreorderNetworknetworkIndexCommandParameterInfo = new CommandParameterInfo("networkIndex", Integer.class, Integer.class);
+    networkCommissioningreorderNetworkCommandParams.put("networkIndex",networkCommissioningreorderNetworknetworkIndexCommandParameterInfo);
 
-    Map<String, InteractionInfo> descriptorClusterInteractionInfoMap = new LinkedHashMap<>();
+    CommandParameterInfo networkCommissioningreorderNetworkbreadcrumbCommandParameterInfo = new CommandParameterInfo("breadcrumb", Optional.class, Long.class);
+    networkCommissioningreorderNetworkCommandParams.put("breadcrumb",networkCommissioningreorderNetworkbreadcrumbCommandParameterInfo);
+    InteractionInfo networkCommissioningreorderNetworkInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.NetworkCommissioningCluster) cluster)
+          .reorderNetwork((ChipClusters.NetworkCommissioningCluster.NetworkConfigResponseCallback) callback
+           , (byte[])
+             commandArguments.get("networkID")
 
-    commandMap.put("descriptor", descriptorClusterInteractionInfoMap);
+           , (Integer)
+             commandArguments.get("networkIndex")
 
-    Map<String, InteractionInfo> bindingClusterInteractionInfoMap = new LinkedHashMap<>();
+           , (Optional<Long>)
+             commandArguments.get("breadcrumb")
 
-    commandMap.put("binding", bindingClusterInteractionInfoMap);
+            );
+        },
+        () -> new DelegatedNetworkCommissioningClusterNetworkConfigResponseCallback(),
+        networkCommissioningreorderNetworkCommandParams
+      );
+    networkCommissioningClusterInteractionInfoMap.put("reorderNetwork", networkCommissioningreorderNetworkInteractionInfo);
 
-    Map<String, InteractionInfo> accessControlClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, CommandParameterInfo> networkCommissioningqueryIdentityCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, CommandParameterInfo> accessControlreviewFabricRestrictionsCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo networkCommissioningqueryIdentitykeyIdentifierCommandParameterInfo = new CommandParameterInfo("keyIdentifier", byte[].class, byte[].class);
+    networkCommissioningqueryIdentityCommandParams.put("keyIdentifier",networkCommissioningqueryIdentitykeyIdentifierCommandParameterInfo);
 
-    InteractionInfo accessControlreviewFabricRestrictionsInteractionInfo = new InteractionInfo(
+    CommandParameterInfo networkCommissioningqueryIdentitypossessionNonceCommandParameterInfo = new CommandParameterInfo("possessionNonce", Optional.class, byte[].class);
+    networkCommissioningqueryIdentityCommandParams.put("possessionNonce",networkCommissioningqueryIdentitypossessionNonceCommandParameterInfo);
+    InteractionInfo networkCommissioningqueryIdentityInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.AccessControlCluster) cluster)
-          .reviewFabricRestrictions((ChipClusters.AccessControlCluster.ReviewFabricRestrictionsResponseCallback) callback
-           , (ArrayList<ChipStructs.AccessControlClusterCommissioningAccessRestrictionEntryStruct>)
-             commandArguments.get("arl")
+        ((ChipClusters.NetworkCommissioningCluster) cluster)
+          .queryIdentity((ChipClusters.NetworkCommissioningCluster.QueryIdentityResponseCallback) callback
+           , (byte[])
+             commandArguments.get("keyIdentifier")
+
+           , (Optional<byte[]>)
+             commandArguments.get("possessionNonce")
 
             );
         },
-        () -> new DelegatedAccessControlClusterReviewFabricRestrictionsResponseCallback(),
-        accessControlreviewFabricRestrictionsCommandParams
+        () -> new DelegatedNetworkCommissioningClusterQueryIdentityResponseCallback(),
+        networkCommissioningqueryIdentityCommandParams
       );
-    accessControlClusterInteractionInfoMap.put("reviewFabricRestrictions", accessControlreviewFabricRestrictionsInteractionInfo);
-
-    commandMap.put("accessControl", accessControlClusterInteractionInfoMap);
-
-    Map<String, InteractionInfo> actionsClusterInteractionInfoMap = new LinkedHashMap<>();
-
-    Map<String, CommandParameterInfo> actionsinstantActionCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    networkCommissioningClusterInteractionInfoMap.put("queryIdentity", networkCommissioningqueryIdentityInteractionInfo);
 
-    CommandParameterInfo actionsinstantActionactionIDCommandParameterInfo = new CommandParameterInfo("actionID", Integer.class, Integer.class);
-    actionsinstantActionCommandParams.put("actionID",actionsinstantActionactionIDCommandParameterInfo);
+    commandMap.put("networkCommissioning", networkCommissioningClusterInteractionInfoMap);
 
-    CommandParameterInfo actionsinstantActioninvokeIDCommandParameterInfo = new CommandParameterInfo("invokeID", Optional.class, Long.class);
-    actionsinstantActionCommandParams.put("invokeID",actionsinstantActioninvokeIDCommandParameterInfo);
-    InteractionInfo actionsinstantActionInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ActionsCluster) cluster)
-        .instantAction((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("actionID")
-        , (Optional<Long>)
-        commandArguments.get("invokeID")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        actionsinstantActionCommandParams
-    );
-    actionsClusterInteractionInfoMap.put("instantAction", actionsinstantActionInteractionInfo);
+    Map<String, InteractionInfo> diagnosticLogsClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    Map<String, CommandParameterInfo> actionsinstantActionWithTransitionCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> diagnosticLogsretrieveLogsRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo actionsinstantActionWithTransitionactionIDCommandParameterInfo = new CommandParameterInfo("actionID", Integer.class, Integer.class);
-    actionsinstantActionWithTransitionCommandParams.put("actionID",actionsinstantActionWithTransitionactionIDCommandParameterInfo);
+    CommandParameterInfo diagnosticLogsretrieveLogsRequestintentCommandParameterInfo = new CommandParameterInfo("intent", Integer.class, Integer.class);
+    diagnosticLogsretrieveLogsRequestCommandParams.put("intent",diagnosticLogsretrieveLogsRequestintentCommandParameterInfo);
 
-    CommandParameterInfo actionsinstantActionWithTransitioninvokeIDCommandParameterInfo = new CommandParameterInfo("invokeID", Optional.class, Long.class);
-    actionsinstantActionWithTransitionCommandParams.put("invokeID",actionsinstantActionWithTransitioninvokeIDCommandParameterInfo);
+    CommandParameterInfo diagnosticLogsretrieveLogsRequestrequestedProtocolCommandParameterInfo = new CommandParameterInfo("requestedProtocol", Integer.class, Integer.class);
+    diagnosticLogsretrieveLogsRequestCommandParams.put("requestedProtocol",diagnosticLogsretrieveLogsRequestrequestedProtocolCommandParameterInfo);
 
-    CommandParameterInfo actionsinstantActionWithTransitiontransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Integer.class, Integer.class);
-    actionsinstantActionWithTransitionCommandParams.put("transitionTime",actionsinstantActionWithTransitiontransitionTimeCommandParameterInfo);
-    InteractionInfo actionsinstantActionWithTransitionInteractionInfo = new InteractionInfo(
+    CommandParameterInfo diagnosticLogsretrieveLogsRequesttransferFileDesignatorCommandParameterInfo = new CommandParameterInfo("transferFileDesignator", Optional.class, String.class);
+    diagnosticLogsretrieveLogsRequestCommandParams.put("transferFileDesignator",diagnosticLogsretrieveLogsRequesttransferFileDesignatorCommandParameterInfo);
+    InteractionInfo diagnosticLogsretrieveLogsRequestInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ActionsCluster) cluster)
-        .instantActionWithTransition((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("actionID")
-        , (Optional<Long>)
-        commandArguments.get("invokeID")
-        , (Integer)
-        commandArguments.get("transitionTime")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        actionsinstantActionWithTransitionCommandParams
-    );
-    actionsClusterInteractionInfoMap.put("instantActionWithTransition", actionsinstantActionWithTransitionInteractionInfo);
+        ((ChipClusters.DiagnosticLogsCluster) cluster)
+          .retrieveLogsRequest((ChipClusters.DiagnosticLogsCluster.RetrieveLogsResponseCallback) callback
+           , (Integer)
+             commandArguments.get("intent")
 
-    Map<String, CommandParameterInfo> actionsstartActionCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+           , (Integer)
+             commandArguments.get("requestedProtocol")
 
-    CommandParameterInfo actionsstartActionactionIDCommandParameterInfo = new CommandParameterInfo("actionID", Integer.class, Integer.class);
-    actionsstartActionCommandParams.put("actionID",actionsstartActionactionIDCommandParameterInfo);
+           , (Optional<String>)
+             commandArguments.get("transferFileDesignator")
 
-    CommandParameterInfo actionsstartActioninvokeIDCommandParameterInfo = new CommandParameterInfo("invokeID", Optional.class, Long.class);
-    actionsstartActionCommandParams.put("invokeID",actionsstartActioninvokeIDCommandParameterInfo);
-    InteractionInfo actionsstartActionInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ActionsCluster) cluster)
-        .startAction((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("actionID")
-        , (Optional<Long>)
-        commandArguments.get("invokeID")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        actionsstartActionCommandParams
-    );
-    actionsClusterInteractionInfoMap.put("startAction", actionsstartActionInteractionInfo);
+            );
+        },
+        () -> new DelegatedDiagnosticLogsClusterRetrieveLogsResponseCallback(),
+        diagnosticLogsretrieveLogsRequestCommandParams
+      );
+    diagnosticLogsClusterInteractionInfoMap.put("retrieveLogsRequest", diagnosticLogsretrieveLogsRequestInteractionInfo);
 
-    Map<String, CommandParameterInfo> actionsstartActionWithDurationCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    commandMap.put("diagnosticLogs", diagnosticLogsClusterInteractionInfoMap);
 
-    CommandParameterInfo actionsstartActionWithDurationactionIDCommandParameterInfo = new CommandParameterInfo("actionID", Integer.class, Integer.class);
-    actionsstartActionWithDurationCommandParams.put("actionID",actionsstartActionWithDurationactionIDCommandParameterInfo);
+    Map<String, InteractionInfo> generalDiagnosticsClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    CommandParameterInfo actionsstartActionWithDurationinvokeIDCommandParameterInfo = new CommandParameterInfo("invokeID", Optional.class, Long.class);
-    actionsstartActionWithDurationCommandParams.put("invokeID",actionsstartActionWithDurationinvokeIDCommandParameterInfo);
+    Map<String, CommandParameterInfo> generalDiagnosticstestEventTriggerCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo actionsstartActionWithDurationdurationCommandParameterInfo = new CommandParameterInfo("duration", Long.class, Long.class);
-    actionsstartActionWithDurationCommandParams.put("duration",actionsstartActionWithDurationdurationCommandParameterInfo);
-    InteractionInfo actionsstartActionWithDurationInteractionInfo = new InteractionInfo(
+    CommandParameterInfo generalDiagnosticstestEventTriggerenableKeyCommandParameterInfo = new CommandParameterInfo("enableKey", byte[].class, byte[].class);
+    generalDiagnosticstestEventTriggerCommandParams.put("enableKey",generalDiagnosticstestEventTriggerenableKeyCommandParameterInfo);
+
+    CommandParameterInfo generalDiagnosticstestEventTriggereventTriggerCommandParameterInfo = new CommandParameterInfo("eventTrigger", Long.class, Long.class);
+    generalDiagnosticstestEventTriggerCommandParams.put("eventTrigger",generalDiagnosticstestEventTriggereventTriggerCommandParameterInfo);
+    InteractionInfo generalDiagnosticstestEventTriggerInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ActionsCluster) cluster)
-        .startActionWithDuration((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("actionID")
-        , (Optional<Long>)
-        commandArguments.get("invokeID")
+        ((ChipClusters.GeneralDiagnosticsCluster) cluster)
+        .testEventTrigger((DefaultClusterCallback) callback
+        , (byte[])
+        commandArguments.get("enableKey")
         , (Long)
-        commandArguments.get("duration")
+        commandArguments.get("eventTrigger")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        actionsstartActionWithDurationCommandParams
+        generalDiagnosticstestEventTriggerCommandParams
     );
-    actionsClusterInteractionInfoMap.put("startActionWithDuration", actionsstartActionWithDurationInteractionInfo);
-
-    Map<String, CommandParameterInfo> actionsstopActionCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-
-    CommandParameterInfo actionsstopActionactionIDCommandParameterInfo = new CommandParameterInfo("actionID", Integer.class, Integer.class);
-    actionsstopActionCommandParams.put("actionID",actionsstopActionactionIDCommandParameterInfo);
+    generalDiagnosticsClusterInteractionInfoMap.put("testEventTrigger", generalDiagnosticstestEventTriggerInteractionInfo);
 
-    CommandParameterInfo actionsstopActioninvokeIDCommandParameterInfo = new CommandParameterInfo("invokeID", Optional.class, Long.class);
-    actionsstopActionCommandParams.put("invokeID",actionsstopActioninvokeIDCommandParameterInfo);
-    InteractionInfo actionsstopActionInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> generalDiagnosticstimeSnapshotCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo generalDiagnosticstimeSnapshotInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ActionsCluster) cluster)
-        .stopAction((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("actionID")
-        , (Optional<Long>)
-        commandArguments.get("invokeID")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        actionsstopActionCommandParams
-    );
-    actionsClusterInteractionInfoMap.put("stopAction", actionsstopActionInteractionInfo);
+        ((ChipClusters.GeneralDiagnosticsCluster) cluster)
+          .timeSnapshot((ChipClusters.GeneralDiagnosticsCluster.TimeSnapshotResponseCallback) callback
+            );
+        },
+        () -> new DelegatedGeneralDiagnosticsClusterTimeSnapshotResponseCallback(),
+        generalDiagnosticstimeSnapshotCommandParams
+      );
+    generalDiagnosticsClusterInteractionInfoMap.put("timeSnapshot", generalDiagnosticstimeSnapshotInteractionInfo);
 
-    Map<String, CommandParameterInfo> actionspauseActionCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> generalDiagnosticspayloadTestRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo actionspauseActionactionIDCommandParameterInfo = new CommandParameterInfo("actionID", Integer.class, Integer.class);
-    actionspauseActionCommandParams.put("actionID",actionspauseActionactionIDCommandParameterInfo);
+    CommandParameterInfo generalDiagnosticspayloadTestRequestenableKeyCommandParameterInfo = new CommandParameterInfo("enableKey", byte[].class, byte[].class);
+    generalDiagnosticspayloadTestRequestCommandParams.put("enableKey",generalDiagnosticspayloadTestRequestenableKeyCommandParameterInfo);
 
-    CommandParameterInfo actionspauseActioninvokeIDCommandParameterInfo = new CommandParameterInfo("invokeID", Optional.class, Long.class);
-    actionspauseActionCommandParams.put("invokeID",actionspauseActioninvokeIDCommandParameterInfo);
-    InteractionInfo actionspauseActionInteractionInfo = new InteractionInfo(
+    CommandParameterInfo generalDiagnosticspayloadTestRequestvalueCommandParameterInfo = new CommandParameterInfo("value", Integer.class, Integer.class);
+    generalDiagnosticspayloadTestRequestCommandParams.put("value",generalDiagnosticspayloadTestRequestvalueCommandParameterInfo);
+
+    CommandParameterInfo generalDiagnosticspayloadTestRequestcountCommandParameterInfo = new CommandParameterInfo("count", Integer.class, Integer.class);
+    generalDiagnosticspayloadTestRequestCommandParams.put("count",generalDiagnosticspayloadTestRequestcountCommandParameterInfo);
+    InteractionInfo generalDiagnosticspayloadTestRequestInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ActionsCluster) cluster)
-        .pauseAction((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("actionID")
-        , (Optional<Long>)
-        commandArguments.get("invokeID")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        actionspauseActionCommandParams
-    );
-    actionsClusterInteractionInfoMap.put("pauseAction", actionspauseActionInteractionInfo);
+        ((ChipClusters.GeneralDiagnosticsCluster) cluster)
+          .payloadTestRequest((ChipClusters.GeneralDiagnosticsCluster.PayloadTestResponseCallback) callback
+           , (byte[])
+             commandArguments.get("enableKey")
+
+           , (Integer)
+             commandArguments.get("value")
 
-    Map<String, CommandParameterInfo> actionspauseActionWithDurationCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+           , (Integer)
+             commandArguments.get("count")
 
-    CommandParameterInfo actionspauseActionWithDurationactionIDCommandParameterInfo = new CommandParameterInfo("actionID", Integer.class, Integer.class);
-    actionspauseActionWithDurationCommandParams.put("actionID",actionspauseActionWithDurationactionIDCommandParameterInfo);
+            );
+        },
+        () -> new DelegatedGeneralDiagnosticsClusterPayloadTestResponseCallback(),
+        generalDiagnosticspayloadTestRequestCommandParams
+      );
+    generalDiagnosticsClusterInteractionInfoMap.put("payloadTestRequest", generalDiagnosticspayloadTestRequestInteractionInfo);
 
-    CommandParameterInfo actionspauseActionWithDurationinvokeIDCommandParameterInfo = new CommandParameterInfo("invokeID", Optional.class, Long.class);
-    actionspauseActionWithDurationCommandParams.put("invokeID",actionspauseActionWithDurationinvokeIDCommandParameterInfo);
+    commandMap.put("generalDiagnostics", generalDiagnosticsClusterInteractionInfoMap);
 
-    CommandParameterInfo actionspauseActionWithDurationdurationCommandParameterInfo = new CommandParameterInfo("duration", Long.class, Long.class);
-    actionspauseActionWithDurationCommandParams.put("duration",actionspauseActionWithDurationdurationCommandParameterInfo);
-    InteractionInfo actionspauseActionWithDurationInteractionInfo = new InteractionInfo(
+    Map<String, InteractionInfo> softwareDiagnosticsClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    Map<String, CommandParameterInfo> softwareDiagnosticsresetWatermarksCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo softwareDiagnosticsresetWatermarksInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ActionsCluster) cluster)
-        .pauseActionWithDuration((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("actionID")
-        , (Optional<Long>)
-        commandArguments.get("invokeID")
-        , (Long)
-        commandArguments.get("duration")
+        ((ChipClusters.SoftwareDiagnosticsCluster) cluster)
+        .resetWatermarks((DefaultClusterCallback) callback
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        actionspauseActionWithDurationCommandParams
+        softwareDiagnosticsresetWatermarksCommandParams
     );
-    actionsClusterInteractionInfoMap.put("pauseActionWithDuration", actionspauseActionWithDurationInteractionInfo);
+    softwareDiagnosticsClusterInteractionInfoMap.put("resetWatermarks", softwareDiagnosticsresetWatermarksInteractionInfo);
 
-    Map<String, CommandParameterInfo> actionsresumeActionCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    commandMap.put("softwareDiagnostics", softwareDiagnosticsClusterInteractionInfoMap);
 
-    CommandParameterInfo actionsresumeActionactionIDCommandParameterInfo = new CommandParameterInfo("actionID", Integer.class, Integer.class);
-    actionsresumeActionCommandParams.put("actionID",actionsresumeActionactionIDCommandParameterInfo);
+    Map<String, InteractionInfo> threadNetworkDiagnosticsClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    CommandParameterInfo actionsresumeActioninvokeIDCommandParameterInfo = new CommandParameterInfo("invokeID", Optional.class, Long.class);
-    actionsresumeActionCommandParams.put("invokeID",actionsresumeActioninvokeIDCommandParameterInfo);
-    InteractionInfo actionsresumeActionInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> threadNetworkDiagnosticsresetCountsCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo threadNetworkDiagnosticsresetCountsInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ActionsCluster) cluster)
-        .resumeAction((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("actionID")
-        , (Optional<Long>)
-        commandArguments.get("invokeID")
+        ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster)
+        .resetCounts((DefaultClusterCallback) callback
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        actionsresumeActionCommandParams
+        threadNetworkDiagnosticsresetCountsCommandParams
     );
-    actionsClusterInteractionInfoMap.put("resumeAction", actionsresumeActionInteractionInfo);
+    threadNetworkDiagnosticsClusterInteractionInfoMap.put("resetCounts", threadNetworkDiagnosticsresetCountsInteractionInfo);
 
-    Map<String, CommandParameterInfo> actionsenableActionCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    commandMap.put("threadNetworkDiagnostics", threadNetworkDiagnosticsClusterInteractionInfoMap);
 
-    CommandParameterInfo actionsenableActionactionIDCommandParameterInfo = new CommandParameterInfo("actionID", Integer.class, Integer.class);
-    actionsenableActionCommandParams.put("actionID",actionsenableActionactionIDCommandParameterInfo);
+    Map<String, InteractionInfo> wiFiNetworkDiagnosticsClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    CommandParameterInfo actionsenableActioninvokeIDCommandParameterInfo = new CommandParameterInfo("invokeID", Optional.class, Long.class);
-    actionsenableActionCommandParams.put("invokeID",actionsenableActioninvokeIDCommandParameterInfo);
-    InteractionInfo actionsenableActionInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> wiFiNetworkDiagnosticsresetCountsCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo wiFiNetworkDiagnosticsresetCountsInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ActionsCluster) cluster)
-        .enableAction((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("actionID")
-        , (Optional<Long>)
-        commandArguments.get("invokeID")
+        ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster)
+        .resetCounts((DefaultClusterCallback) callback
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        actionsenableActionCommandParams
+        wiFiNetworkDiagnosticsresetCountsCommandParams
     );
-    actionsClusterInteractionInfoMap.put("enableAction", actionsenableActionInteractionInfo);
-
-    Map<String, CommandParameterInfo> actionsenableActionWithDurationCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    wiFiNetworkDiagnosticsClusterInteractionInfoMap.put("resetCounts", wiFiNetworkDiagnosticsresetCountsInteractionInfo);
 
-    CommandParameterInfo actionsenableActionWithDurationactionIDCommandParameterInfo = new CommandParameterInfo("actionID", Integer.class, Integer.class);
-    actionsenableActionWithDurationCommandParams.put("actionID",actionsenableActionWithDurationactionIDCommandParameterInfo);
+    commandMap.put("wiFiNetworkDiagnostics", wiFiNetworkDiagnosticsClusterInteractionInfoMap);
 
-    CommandParameterInfo actionsenableActionWithDurationinvokeIDCommandParameterInfo = new CommandParameterInfo("invokeID", Optional.class, Long.class);
-    actionsenableActionWithDurationCommandParams.put("invokeID",actionsenableActionWithDurationinvokeIDCommandParameterInfo);
+    Map<String, InteractionInfo> ethernetNetworkDiagnosticsClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    CommandParameterInfo actionsenableActionWithDurationdurationCommandParameterInfo = new CommandParameterInfo("duration", Long.class, Long.class);
-    actionsenableActionWithDurationCommandParams.put("duration",actionsenableActionWithDurationdurationCommandParameterInfo);
-    InteractionInfo actionsenableActionWithDurationInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> ethernetNetworkDiagnosticsresetCountsCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo ethernetNetworkDiagnosticsresetCountsInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ActionsCluster) cluster)
-        .enableActionWithDuration((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("actionID")
-        , (Optional<Long>)
-        commandArguments.get("invokeID")
-        , (Long)
-        commandArguments.get("duration")
+        ((ChipClusters.EthernetNetworkDiagnosticsCluster) cluster)
+        .resetCounts((DefaultClusterCallback) callback
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        actionsenableActionWithDurationCommandParams
+        ethernetNetworkDiagnosticsresetCountsCommandParams
     );
-    actionsClusterInteractionInfoMap.put("enableActionWithDuration", actionsenableActionWithDurationInteractionInfo);
-
-    Map<String, CommandParameterInfo> actionsdisableActionCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    ethernetNetworkDiagnosticsClusterInteractionInfoMap.put("resetCounts", ethernetNetworkDiagnosticsresetCountsInteractionInfo);
 
-    CommandParameterInfo actionsdisableActionactionIDCommandParameterInfo = new CommandParameterInfo("actionID", Integer.class, Integer.class);
-    actionsdisableActionCommandParams.put("actionID",actionsdisableActionactionIDCommandParameterInfo);
+    commandMap.put("ethernetNetworkDiagnostics", ethernetNetworkDiagnosticsClusterInteractionInfoMap);
 
-    CommandParameterInfo actionsdisableActioninvokeIDCommandParameterInfo = new CommandParameterInfo("invokeID", Optional.class, Long.class);
-    actionsdisableActionCommandParams.put("invokeID",actionsdisableActioninvokeIDCommandParameterInfo);
-    InteractionInfo actionsdisableActionInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ActionsCluster) cluster)
-        .disableAction((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("actionID")
-        , (Optional<Long>)
-        commandArguments.get("invokeID")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        actionsdisableActionCommandParams
-    );
-    actionsClusterInteractionInfoMap.put("disableAction", actionsdisableActionInteractionInfo);
+    Map<String, InteractionInfo> timeSynchronizationClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    Map<String, CommandParameterInfo> actionsdisableActionWithDurationCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> timeSynchronizationsetUTCTimeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo actionsdisableActionWithDurationactionIDCommandParameterInfo = new CommandParameterInfo("actionID", Integer.class, Integer.class);
-    actionsdisableActionWithDurationCommandParams.put("actionID",actionsdisableActionWithDurationactionIDCommandParameterInfo);
+    CommandParameterInfo timeSynchronizationsetUTCTimeUTCTimeCommandParameterInfo = new CommandParameterInfo("UTCTime", Long.class, Long.class);
+    timeSynchronizationsetUTCTimeCommandParams.put("UTCTime",timeSynchronizationsetUTCTimeUTCTimeCommandParameterInfo);
 
-    CommandParameterInfo actionsdisableActionWithDurationinvokeIDCommandParameterInfo = new CommandParameterInfo("invokeID", Optional.class, Long.class);
-    actionsdisableActionWithDurationCommandParams.put("invokeID",actionsdisableActionWithDurationinvokeIDCommandParameterInfo);
+    CommandParameterInfo timeSynchronizationsetUTCTimegranularityCommandParameterInfo = new CommandParameterInfo("granularity", Integer.class, Integer.class);
+    timeSynchronizationsetUTCTimeCommandParams.put("granularity",timeSynchronizationsetUTCTimegranularityCommandParameterInfo);
 
-    CommandParameterInfo actionsdisableActionWithDurationdurationCommandParameterInfo = new CommandParameterInfo("duration", Long.class, Long.class);
-    actionsdisableActionWithDurationCommandParams.put("duration",actionsdisableActionWithDurationdurationCommandParameterInfo);
-    InteractionInfo actionsdisableActionWithDurationInteractionInfo = new InteractionInfo(
+    CommandParameterInfo timeSynchronizationsetUTCTimetimeSourceCommandParameterInfo = new CommandParameterInfo("timeSource", Optional.class, Integer.class);
+    timeSynchronizationsetUTCTimeCommandParams.put("timeSource",timeSynchronizationsetUTCTimetimeSourceCommandParameterInfo);
+    InteractionInfo timeSynchronizationsetUTCTimeInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ActionsCluster) cluster)
-        .disableActionWithDuration((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("actionID")
-        , (Optional<Long>)
-        commandArguments.get("invokeID")
+        ((ChipClusters.TimeSynchronizationCluster) cluster)
+        .setUTCTime((DefaultClusterCallback) callback
         , (Long)
-        commandArguments.get("duration")
+        commandArguments.get("UTCTime")
+        , (Integer)
+        commandArguments.get("granularity")
+        , (Optional<Integer>)
+        commandArguments.get("timeSource")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        actionsdisableActionWithDurationCommandParams
+        timeSynchronizationsetUTCTimeCommandParams
     );
-    actionsClusterInteractionInfoMap.put("disableActionWithDuration", actionsdisableActionWithDurationInteractionInfo);
-
-    commandMap.put("actions", actionsClusterInteractionInfoMap);
+    timeSynchronizationClusterInteractionInfoMap.put("setUTCTime", timeSynchronizationsetUTCTimeInteractionInfo);
 
-    Map<String, InteractionInfo> basicInformationClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, CommandParameterInfo> timeSynchronizationsetTrustedTimeSourceCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, CommandParameterInfo> basicInformationmfgSpecificPingCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo basicInformationmfgSpecificPingInteractionInfo = new InteractionInfo(
+    InteractionInfo timeSynchronizationsetTrustedTimeSourceInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.BasicInformationCluster) cluster)
-        .mfgSpecificPing((DefaultClusterCallback) callback
+        ((ChipClusters.TimeSynchronizationCluster) cluster)
+        .setTrustedTimeSource((DefaultClusterCallback) callback
+        , (ChipStructs.TimeSynchronizationClusterFabricScopedTrustedTimeSourceStruct)
+        commandArguments.get("trustedTimeSource")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        basicInformationmfgSpecificPingCommandParams
+        timeSynchronizationsetTrustedTimeSourceCommandParams
     );
-    basicInformationClusterInteractionInfoMap.put("mfgSpecificPing", basicInformationmfgSpecificPingInteractionInfo);
-
-    commandMap.put("basicInformation", basicInformationClusterInteractionInfoMap);
-
-    Map<String, InteractionInfo> otaSoftwareUpdateProviderClusterInteractionInfoMap = new LinkedHashMap<>();
-
-    Map<String, CommandParameterInfo> otaSoftwareUpdateProviderqueryImageCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-
-    CommandParameterInfo otaSoftwareUpdateProviderqueryImagevendorIDCommandParameterInfo = new CommandParameterInfo("vendorID", Integer.class, Integer.class);
-    otaSoftwareUpdateProviderqueryImageCommandParams.put("vendorID",otaSoftwareUpdateProviderqueryImagevendorIDCommandParameterInfo);
-
-    CommandParameterInfo otaSoftwareUpdateProviderqueryImageproductIDCommandParameterInfo = new CommandParameterInfo("productID", Integer.class, Integer.class);
-    otaSoftwareUpdateProviderqueryImageCommandParams.put("productID",otaSoftwareUpdateProviderqueryImageproductIDCommandParameterInfo);
-
-    CommandParameterInfo otaSoftwareUpdateProviderqueryImagesoftwareVersionCommandParameterInfo = new CommandParameterInfo("softwareVersion", Long.class, Long.class);
-    otaSoftwareUpdateProviderqueryImageCommandParams.put("softwareVersion",otaSoftwareUpdateProviderqueryImagesoftwareVersionCommandParameterInfo);
-
-    CommandParameterInfo otaSoftwareUpdateProviderqueryImageprotocolsSupportedCommandParameterInfo = new CommandParameterInfo("protocolsSupported", ArrayList.class, ArrayList.class);
-    otaSoftwareUpdateProviderqueryImageCommandParams.put("protocolsSupported",otaSoftwareUpdateProviderqueryImageprotocolsSupportedCommandParameterInfo);
-
-    CommandParameterInfo otaSoftwareUpdateProviderqueryImagehardwareVersionCommandParameterInfo = new CommandParameterInfo("hardwareVersion", Optional.class, Integer.class);
-    otaSoftwareUpdateProviderqueryImageCommandParams.put("hardwareVersion",otaSoftwareUpdateProviderqueryImagehardwareVersionCommandParameterInfo);
-
-    CommandParameterInfo otaSoftwareUpdateProviderqueryImagelocationCommandParameterInfo = new CommandParameterInfo("location", Optional.class, String.class);
-    otaSoftwareUpdateProviderqueryImageCommandParams.put("location",otaSoftwareUpdateProviderqueryImagelocationCommandParameterInfo);
-
-    CommandParameterInfo otaSoftwareUpdateProviderqueryImagerequestorCanConsentCommandParameterInfo = new CommandParameterInfo("requestorCanConsent", Optional.class, Boolean.class);
-    otaSoftwareUpdateProviderqueryImageCommandParams.put("requestorCanConsent",otaSoftwareUpdateProviderqueryImagerequestorCanConsentCommandParameterInfo);
-
-    CommandParameterInfo otaSoftwareUpdateProviderqueryImagemetadataForProviderCommandParameterInfo = new CommandParameterInfo("metadataForProvider", Optional.class, byte[].class);
-    otaSoftwareUpdateProviderqueryImageCommandParams.put("metadataForProvider",otaSoftwareUpdateProviderqueryImagemetadataForProviderCommandParameterInfo);
-    InteractionInfo otaSoftwareUpdateProviderqueryImageInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.OtaSoftwareUpdateProviderCluster) cluster)
-          .queryImage((ChipClusters.OtaSoftwareUpdateProviderCluster.QueryImageResponseCallback) callback
-           , (Integer)
-             commandArguments.get("vendorID")
-
-           , (Integer)
-             commandArguments.get("productID")
-
-           , (Long)
-             commandArguments.get("softwareVersion")
-
-           , (ArrayList<Integer>)
-             commandArguments.get("protocolsSupported")
-
-           , (Optional<Integer>)
-             commandArguments.get("hardwareVersion")
-
-           , (Optional<String>)
-             commandArguments.get("location")
-
-           , (Optional<Boolean>)
-             commandArguments.get("requestorCanConsent")
-
-           , (Optional<byte[]>)
-             commandArguments.get("metadataForProvider")
-
-            );
-        },
-        () -> new DelegatedOtaSoftwareUpdateProviderClusterQueryImageResponseCallback(),
-        otaSoftwareUpdateProviderqueryImageCommandParams
-      );
-    otaSoftwareUpdateProviderClusterInteractionInfoMap.put("queryImage", otaSoftwareUpdateProviderqueryImageInteractionInfo);
-
-    Map<String, CommandParameterInfo> otaSoftwareUpdateProviderapplyUpdateRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-
-    CommandParameterInfo otaSoftwareUpdateProviderapplyUpdateRequestupdateTokenCommandParameterInfo = new CommandParameterInfo("updateToken", byte[].class, byte[].class);
-    otaSoftwareUpdateProviderapplyUpdateRequestCommandParams.put("updateToken",otaSoftwareUpdateProviderapplyUpdateRequestupdateTokenCommandParameterInfo);
-
-    CommandParameterInfo otaSoftwareUpdateProviderapplyUpdateRequestnewVersionCommandParameterInfo = new CommandParameterInfo("newVersion", Long.class, Long.class);
-    otaSoftwareUpdateProviderapplyUpdateRequestCommandParams.put("newVersion",otaSoftwareUpdateProviderapplyUpdateRequestnewVersionCommandParameterInfo);
-    InteractionInfo otaSoftwareUpdateProviderapplyUpdateRequestInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.OtaSoftwareUpdateProviderCluster) cluster)
-          .applyUpdateRequest((ChipClusters.OtaSoftwareUpdateProviderCluster.ApplyUpdateResponseCallback) callback
-           , (byte[])
-             commandArguments.get("updateToken")
+    timeSynchronizationClusterInteractionInfoMap.put("setTrustedTimeSource", timeSynchronizationsetTrustedTimeSourceInteractionInfo);
 
-           , (Long)
-             commandArguments.get("newVersion")
+    Map<String, CommandParameterInfo> timeSynchronizationsetTimeZoneCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    InteractionInfo timeSynchronizationsetTimeZoneInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.TimeSynchronizationCluster) cluster)
+          .setTimeZone((ChipClusters.TimeSynchronizationCluster.SetTimeZoneResponseCallback) callback
+           , (ArrayList<ChipStructs.TimeSynchronizationClusterTimeZoneStruct>)
+             commandArguments.get("timeZone")
 
             );
         },
-        () -> new DelegatedOtaSoftwareUpdateProviderClusterApplyUpdateResponseCallback(),
-        otaSoftwareUpdateProviderapplyUpdateRequestCommandParams
+        () -> new DelegatedTimeSynchronizationClusterSetTimeZoneResponseCallback(),
+        timeSynchronizationsetTimeZoneCommandParams
       );
-    otaSoftwareUpdateProviderClusterInteractionInfoMap.put("applyUpdateRequest", otaSoftwareUpdateProviderapplyUpdateRequestInteractionInfo);
-
-    Map<String, CommandParameterInfo> otaSoftwareUpdateProvidernotifyUpdateAppliedCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    timeSynchronizationClusterInteractionInfoMap.put("setTimeZone", timeSynchronizationsetTimeZoneInteractionInfo);
 
-    CommandParameterInfo otaSoftwareUpdateProvidernotifyUpdateAppliedupdateTokenCommandParameterInfo = new CommandParameterInfo("updateToken", byte[].class, byte[].class);
-    otaSoftwareUpdateProvidernotifyUpdateAppliedCommandParams.put("updateToken",otaSoftwareUpdateProvidernotifyUpdateAppliedupdateTokenCommandParameterInfo);
+    Map<String, CommandParameterInfo> timeSynchronizationsetDSTOffsetCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo otaSoftwareUpdateProvidernotifyUpdateAppliedsoftwareVersionCommandParameterInfo = new CommandParameterInfo("softwareVersion", Long.class, Long.class);
-    otaSoftwareUpdateProvidernotifyUpdateAppliedCommandParams.put("softwareVersion",otaSoftwareUpdateProvidernotifyUpdateAppliedsoftwareVersionCommandParameterInfo);
-    InteractionInfo otaSoftwareUpdateProvidernotifyUpdateAppliedInteractionInfo = new InteractionInfo(
+    InteractionInfo timeSynchronizationsetDSTOffsetInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.OtaSoftwareUpdateProviderCluster) cluster)
-        .notifyUpdateApplied((DefaultClusterCallback) callback
-        , (byte[])
-        commandArguments.get("updateToken")
-        , (Long)
-        commandArguments.get("softwareVersion")
+        ((ChipClusters.TimeSynchronizationCluster) cluster)
+        .setDSTOffset((DefaultClusterCallback) callback
+        , (ArrayList<ChipStructs.TimeSynchronizationClusterDSTOffsetStruct>)
+        commandArguments.get("DSTOffset")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        otaSoftwareUpdateProvidernotifyUpdateAppliedCommandParams
+        timeSynchronizationsetDSTOffsetCommandParams
     );
-    otaSoftwareUpdateProviderClusterInteractionInfoMap.put("notifyUpdateApplied", otaSoftwareUpdateProvidernotifyUpdateAppliedInteractionInfo);
-
-    commandMap.put("otaSoftwareUpdateProvider", otaSoftwareUpdateProviderClusterInteractionInfoMap);
+    timeSynchronizationClusterInteractionInfoMap.put("setDSTOffset", timeSynchronizationsetDSTOffsetInteractionInfo);
 
-    Map<String, InteractionInfo> otaSoftwareUpdateRequestorClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, CommandParameterInfo> timeSynchronizationsetDefaultNTPCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, CommandParameterInfo> otaSoftwareUpdateRequestorannounceOTAProviderCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo timeSynchronizationsetDefaultNTPdefaultNTPCommandParameterInfo = new CommandParameterInfo("defaultNTP", String.class, String.class);
+    timeSynchronizationsetDefaultNTPCommandParams.put("defaultNTP",timeSynchronizationsetDefaultNTPdefaultNTPCommandParameterInfo);
+    InteractionInfo timeSynchronizationsetDefaultNTPInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.TimeSynchronizationCluster) cluster)
+        .setDefaultNTP((DefaultClusterCallback) callback
+        , (String)
+        commandArguments.get("defaultNTP")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        timeSynchronizationsetDefaultNTPCommandParams
+    );
+    timeSynchronizationClusterInteractionInfoMap.put("setDefaultNTP", timeSynchronizationsetDefaultNTPInteractionInfo);
 
-    CommandParameterInfo otaSoftwareUpdateRequestorannounceOTAProviderproviderNodeIDCommandParameterInfo = new CommandParameterInfo("providerNodeID", Long.class, Long.class);
-    otaSoftwareUpdateRequestorannounceOTAProviderCommandParams.put("providerNodeID",otaSoftwareUpdateRequestorannounceOTAProviderproviderNodeIDCommandParameterInfo);
+    commandMap.put("timeSynchronization", timeSynchronizationClusterInteractionInfoMap);
 
-    CommandParameterInfo otaSoftwareUpdateRequestorannounceOTAProvidervendorIDCommandParameterInfo = new CommandParameterInfo("vendorID", Integer.class, Integer.class);
-    otaSoftwareUpdateRequestorannounceOTAProviderCommandParams.put("vendorID",otaSoftwareUpdateRequestorannounceOTAProvidervendorIDCommandParameterInfo);
+    Map<String, InteractionInfo> bridgedDeviceBasicInformationClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    CommandParameterInfo otaSoftwareUpdateRequestorannounceOTAProviderannouncementReasonCommandParameterInfo = new CommandParameterInfo("announcementReason", Integer.class, Integer.class);
-    otaSoftwareUpdateRequestorannounceOTAProviderCommandParams.put("announcementReason",otaSoftwareUpdateRequestorannounceOTAProviderannouncementReasonCommandParameterInfo);
+    Map<String, CommandParameterInfo> bridgedDeviceBasicInformationkeepActiveCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo otaSoftwareUpdateRequestorannounceOTAProvidermetadataForNodeCommandParameterInfo = new CommandParameterInfo("metadataForNode", Optional.class, byte[].class);
-    otaSoftwareUpdateRequestorannounceOTAProviderCommandParams.put("metadataForNode",otaSoftwareUpdateRequestorannounceOTAProvidermetadataForNodeCommandParameterInfo);
+    CommandParameterInfo bridgedDeviceBasicInformationkeepActivestayActiveDurationCommandParameterInfo = new CommandParameterInfo("stayActiveDuration", Long.class, Long.class);
+    bridgedDeviceBasicInformationkeepActiveCommandParams.put("stayActiveDuration",bridgedDeviceBasicInformationkeepActivestayActiveDurationCommandParameterInfo);
 
-    CommandParameterInfo otaSoftwareUpdateRequestorannounceOTAProviderendpointCommandParameterInfo = new CommandParameterInfo("endpoint", Integer.class, Integer.class);
-    otaSoftwareUpdateRequestorannounceOTAProviderCommandParams.put("endpoint",otaSoftwareUpdateRequestorannounceOTAProviderendpointCommandParameterInfo);
-    InteractionInfo otaSoftwareUpdateRequestorannounceOTAProviderInteractionInfo = new InteractionInfo(
+    CommandParameterInfo bridgedDeviceBasicInformationkeepActivetimeoutMsCommandParameterInfo = new CommandParameterInfo("timeoutMs", Long.class, Long.class);
+    bridgedDeviceBasicInformationkeepActiveCommandParams.put("timeoutMs",bridgedDeviceBasicInformationkeepActivetimeoutMsCommandParameterInfo);
+    InteractionInfo bridgedDeviceBasicInformationkeepActiveInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.OtaSoftwareUpdateRequestorCluster) cluster)
-        .announceOTAProvider((DefaultClusterCallback) callback
+        ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster)
+        .keepActive((DefaultClusterCallback) callback
         , (Long)
-        commandArguments.get("providerNodeID")
-        , (Integer)
-        commandArguments.get("vendorID")
-        , (Integer)
-        commandArguments.get("announcementReason")
-        , (Optional<byte[]>)
-        commandArguments.get("metadataForNode")
-        , (Integer)
-        commandArguments.get("endpoint")
+        commandArguments.get("stayActiveDuration")
+        , (Long)
+        commandArguments.get("timeoutMs")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        otaSoftwareUpdateRequestorannounceOTAProviderCommandParams
+        bridgedDeviceBasicInformationkeepActiveCommandParams
     );
-    otaSoftwareUpdateRequestorClusterInteractionInfoMap.put("announceOTAProvider", otaSoftwareUpdateRequestorannounceOTAProviderInteractionInfo);
-
-    commandMap.put("otaSoftwareUpdateRequestor", otaSoftwareUpdateRequestorClusterInteractionInfoMap);
-
-    Map<String, InteractionInfo> localizationConfigurationClusterInteractionInfoMap = new LinkedHashMap<>();
-
-    commandMap.put("localizationConfiguration", localizationConfigurationClusterInteractionInfoMap);
-
-    Map<String, InteractionInfo> timeFormatLocalizationClusterInteractionInfoMap = new LinkedHashMap<>();
-
-    commandMap.put("timeFormatLocalization", timeFormatLocalizationClusterInteractionInfoMap);
+    bridgedDeviceBasicInformationClusterInteractionInfoMap.put("keepActive", bridgedDeviceBasicInformationkeepActiveInteractionInfo);
 
-    Map<String, InteractionInfo> unitLocalizationClusterInteractionInfoMap = new LinkedHashMap<>();
+    commandMap.put("bridgedDeviceBasicInformation", bridgedDeviceBasicInformationClusterInteractionInfoMap);
 
-    commandMap.put("unitLocalization", unitLocalizationClusterInteractionInfoMap);
+    Map<String, InteractionInfo> switchClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    Map<String, InteractionInfo> powerSourceConfigurationClusterInteractionInfoMap = new LinkedHashMap<>();
+    commandMap.put("switch", switchClusterInteractionInfoMap);
 
-    commandMap.put("powerSourceConfiguration", powerSourceConfigurationClusterInteractionInfoMap);
+    Map<String, InteractionInfo> administratorCommissioningClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    Map<String, InteractionInfo> powerSourceClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, CommandParameterInfo> administratorCommissioningopenCommissioningWindowCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    commandMap.put("powerSource", powerSourceClusterInteractionInfoMap);
+    CommandParameterInfo administratorCommissioningopenCommissioningWindowcommissioningTimeoutCommandParameterInfo = new CommandParameterInfo("commissioningTimeout", Integer.class, Integer.class);
+    administratorCommissioningopenCommissioningWindowCommandParams.put("commissioningTimeout",administratorCommissioningopenCommissioningWindowcommissioningTimeoutCommandParameterInfo);
 
-    Map<String, InteractionInfo> generalCommissioningClusterInteractionInfoMap = new LinkedHashMap<>();
+    CommandParameterInfo administratorCommissioningopenCommissioningWindowPAKEPasscodeVerifierCommandParameterInfo = new CommandParameterInfo("PAKEPasscodeVerifier", byte[].class, byte[].class);
+    administratorCommissioningopenCommissioningWindowCommandParams.put("PAKEPasscodeVerifier",administratorCommissioningopenCommissioningWindowPAKEPasscodeVerifierCommandParameterInfo);
 
-    Map<String, CommandParameterInfo> generalCommissioningarmFailSafeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo administratorCommissioningopenCommissioningWindowdiscriminatorCommandParameterInfo = new CommandParameterInfo("discriminator", Integer.class, Integer.class);
+    administratorCommissioningopenCommissioningWindowCommandParams.put("discriminator",administratorCommissioningopenCommissioningWindowdiscriminatorCommandParameterInfo);
 
-    CommandParameterInfo generalCommissioningarmFailSafeexpiryLengthSecondsCommandParameterInfo = new CommandParameterInfo("expiryLengthSeconds", Integer.class, Integer.class);
-    generalCommissioningarmFailSafeCommandParams.put("expiryLengthSeconds",generalCommissioningarmFailSafeexpiryLengthSecondsCommandParameterInfo);
+    CommandParameterInfo administratorCommissioningopenCommissioningWindowiterationsCommandParameterInfo = new CommandParameterInfo("iterations", Long.class, Long.class);
+    administratorCommissioningopenCommissioningWindowCommandParams.put("iterations",administratorCommissioningopenCommissioningWindowiterationsCommandParameterInfo);
 
-    CommandParameterInfo generalCommissioningarmFailSafebreadcrumbCommandParameterInfo = new CommandParameterInfo("breadcrumb", Long.class, Long.class);
-    generalCommissioningarmFailSafeCommandParams.put("breadcrumb",generalCommissioningarmFailSafebreadcrumbCommandParameterInfo);
-    InteractionInfo generalCommissioningarmFailSafeInteractionInfo = new InteractionInfo(
+    CommandParameterInfo administratorCommissioningopenCommissioningWindowsaltCommandParameterInfo = new CommandParameterInfo("salt", byte[].class, byte[].class);
+    administratorCommissioningopenCommissioningWindowCommandParams.put("salt",administratorCommissioningopenCommissioningWindowsaltCommandParameterInfo);
+    InteractionInfo administratorCommissioningopenCommissioningWindowInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.GeneralCommissioningCluster) cluster)
-          .armFailSafe((ChipClusters.GeneralCommissioningCluster.ArmFailSafeResponseCallback) callback
-           , (Integer)
-             commandArguments.get("expiryLengthSeconds")
-
-           , (Long)
-             commandArguments.get("breadcrumb")
-
-            );
-        },
-        () -> new DelegatedGeneralCommissioningClusterArmFailSafeResponseCallback(),
-        generalCommissioningarmFailSafeCommandParams
-      );
-    generalCommissioningClusterInteractionInfoMap.put("armFailSafe", generalCommissioningarmFailSafeInteractionInfo);
-
-    Map<String, CommandParameterInfo> generalCommissioningsetRegulatoryConfigCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        ((ChipClusters.AdministratorCommissioningCluster) cluster)
+        .openCommissioningWindow((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("commissioningTimeout")
+        , (byte[])
+        commandArguments.get("PAKEPasscodeVerifier")
+        , (Integer)
+        commandArguments.get("discriminator")
+        , (Long)
+        commandArguments.get("iterations")
+        , (byte[])
+        commandArguments.get("salt"), 10000
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        administratorCommissioningopenCommissioningWindowCommandParams
+    );
+    administratorCommissioningClusterInteractionInfoMap.put("openCommissioningWindow", administratorCommissioningopenCommissioningWindowInteractionInfo);
 
-    CommandParameterInfo generalCommissioningsetRegulatoryConfignewRegulatoryConfigCommandParameterInfo = new CommandParameterInfo("newRegulatoryConfig", Integer.class, Integer.class);
-    generalCommissioningsetRegulatoryConfigCommandParams.put("newRegulatoryConfig",generalCommissioningsetRegulatoryConfignewRegulatoryConfigCommandParameterInfo);
+    Map<String, CommandParameterInfo> administratorCommissioningopenBasicCommissioningWindowCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo generalCommissioningsetRegulatoryConfigcountryCodeCommandParameterInfo = new CommandParameterInfo("countryCode", String.class, String.class);
-    generalCommissioningsetRegulatoryConfigCommandParams.put("countryCode",generalCommissioningsetRegulatoryConfigcountryCodeCommandParameterInfo);
+    CommandParameterInfo administratorCommissioningopenBasicCommissioningWindowcommissioningTimeoutCommandParameterInfo = new CommandParameterInfo("commissioningTimeout", Integer.class, Integer.class);
+    administratorCommissioningopenBasicCommissioningWindowCommandParams.put("commissioningTimeout",administratorCommissioningopenBasicCommissioningWindowcommissioningTimeoutCommandParameterInfo);
+    InteractionInfo administratorCommissioningopenBasicCommissioningWindowInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.AdministratorCommissioningCluster) cluster)
+        .openBasicCommissioningWindow((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("commissioningTimeout"), 10000
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        administratorCommissioningopenBasicCommissioningWindowCommandParams
+    );
+    administratorCommissioningClusterInteractionInfoMap.put("openBasicCommissioningWindow", administratorCommissioningopenBasicCommissioningWindowInteractionInfo);
 
-    CommandParameterInfo generalCommissioningsetRegulatoryConfigbreadcrumbCommandParameterInfo = new CommandParameterInfo("breadcrumb", Long.class, Long.class);
-    generalCommissioningsetRegulatoryConfigCommandParams.put("breadcrumb",generalCommissioningsetRegulatoryConfigbreadcrumbCommandParameterInfo);
-    InteractionInfo generalCommissioningsetRegulatoryConfigInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> administratorCommissioningrevokeCommissioningCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo administratorCommissioningrevokeCommissioningInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.GeneralCommissioningCluster) cluster)
-          .setRegulatoryConfig((ChipClusters.GeneralCommissioningCluster.SetRegulatoryConfigResponseCallback) callback
-           , (Integer)
-             commandArguments.get("newRegulatoryConfig")
+        ((ChipClusters.AdministratorCommissioningCluster) cluster)
+        .revokeCommissioning((DefaultClusterCallback) callback, 10000
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        administratorCommissioningrevokeCommissioningCommandParams
+    );
+    administratorCommissioningClusterInteractionInfoMap.put("revokeCommissioning", administratorCommissioningrevokeCommissioningInteractionInfo);
 
-           , (String)
-             commandArguments.get("countryCode")
+    commandMap.put("administratorCommissioning", administratorCommissioningClusterInteractionInfoMap);
 
-           , (Long)
-             commandArguments.get("breadcrumb")
+    Map<String, InteractionInfo> operationalCredentialsClusterInteractionInfoMap = new LinkedHashMap<>();
 
-            );
-        },
-        () -> new DelegatedGeneralCommissioningClusterSetRegulatoryConfigResponseCallback(),
-        generalCommissioningsetRegulatoryConfigCommandParams
-      );
-    generalCommissioningClusterInteractionInfoMap.put("setRegulatoryConfig", generalCommissioningsetRegulatoryConfigInteractionInfo);
+    Map<String, CommandParameterInfo> operationalCredentialsattestationRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, CommandParameterInfo> generalCommissioningcommissioningCompleteCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo generalCommissioningcommissioningCompleteInteractionInfo = new InteractionInfo(
+    CommandParameterInfo operationalCredentialsattestationRequestattestationNonceCommandParameterInfo = new CommandParameterInfo("attestationNonce", byte[].class, byte[].class);
+    operationalCredentialsattestationRequestCommandParams.put("attestationNonce",operationalCredentialsattestationRequestattestationNonceCommandParameterInfo);
+    InteractionInfo operationalCredentialsattestationRequestInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.GeneralCommissioningCluster) cluster)
-          .commissioningComplete((ChipClusters.GeneralCommissioningCluster.CommissioningCompleteResponseCallback) callback
+        ((ChipClusters.OperationalCredentialsCluster) cluster)
+          .attestationRequest((ChipClusters.OperationalCredentialsCluster.AttestationResponseCallback) callback
+           , (byte[])
+             commandArguments.get("attestationNonce")
+
             );
         },
-        () -> new DelegatedGeneralCommissioningClusterCommissioningCompleteResponseCallback(),
-        generalCommissioningcommissioningCompleteCommandParams
+        () -> new DelegatedOperationalCredentialsClusterAttestationResponseCallback(),
+        operationalCredentialsattestationRequestCommandParams
       );
-    generalCommissioningClusterInteractionInfoMap.put("commissioningComplete", generalCommissioningcommissioningCompleteInteractionInfo);
-
-    Map<String, CommandParameterInfo> generalCommissioningsetTCAcknowledgementsCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    operationalCredentialsClusterInteractionInfoMap.put("attestationRequest", operationalCredentialsattestationRequestInteractionInfo);
 
-    CommandParameterInfo generalCommissioningsetTCAcknowledgementsTCVersionCommandParameterInfo = new CommandParameterInfo("TCVersion", Integer.class, Integer.class);
-    generalCommissioningsetTCAcknowledgementsCommandParams.put("TCVersion",generalCommissioningsetTCAcknowledgementsTCVersionCommandParameterInfo);
+    Map<String, CommandParameterInfo> operationalCredentialscertificateChainRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo generalCommissioningsetTCAcknowledgementsTCUserResponseCommandParameterInfo = new CommandParameterInfo("TCUserResponse", Integer.class, Integer.class);
-    generalCommissioningsetTCAcknowledgementsCommandParams.put("TCUserResponse",generalCommissioningsetTCAcknowledgementsTCUserResponseCommandParameterInfo);
-    InteractionInfo generalCommissioningsetTCAcknowledgementsInteractionInfo = new InteractionInfo(
+    CommandParameterInfo operationalCredentialscertificateChainRequestcertificateTypeCommandParameterInfo = new CommandParameterInfo("certificateType", Integer.class, Integer.class);
+    operationalCredentialscertificateChainRequestCommandParams.put("certificateType",operationalCredentialscertificateChainRequestcertificateTypeCommandParameterInfo);
+    InteractionInfo operationalCredentialscertificateChainRequestInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.GeneralCommissioningCluster) cluster)
-          .setTCAcknowledgements((ChipClusters.GeneralCommissioningCluster.SetTCAcknowledgementsResponseCallback) callback
-           , (Integer)
-             commandArguments.get("TCVersion")
-
+        ((ChipClusters.OperationalCredentialsCluster) cluster)
+          .certificateChainRequest((ChipClusters.OperationalCredentialsCluster.CertificateChainResponseCallback) callback
            , (Integer)
-             commandArguments.get("TCUserResponse")
+             commandArguments.get("certificateType")
 
             );
         },
-        () -> new DelegatedGeneralCommissioningClusterSetTCAcknowledgementsResponseCallback(),
-        generalCommissioningsetTCAcknowledgementsCommandParams
+        () -> new DelegatedOperationalCredentialsClusterCertificateChainResponseCallback(),
+        operationalCredentialscertificateChainRequestCommandParams
       );
-    generalCommissioningClusterInteractionInfoMap.put("setTCAcknowledgements", generalCommissioningsetTCAcknowledgementsInteractionInfo);
-
-    commandMap.put("generalCommissioning", generalCommissioningClusterInteractionInfoMap);
-
-    Map<String, InteractionInfo> networkCommissioningClusterInteractionInfoMap = new LinkedHashMap<>();
+    operationalCredentialsClusterInteractionInfoMap.put("certificateChainRequest", operationalCredentialscertificateChainRequestInteractionInfo);
 
-    Map<String, CommandParameterInfo> networkCommissioningscanNetworksCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> operationalCredentialsCSRRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo networkCommissioningscanNetworksssidCommandParameterInfo = new CommandParameterInfo("ssid", Optional.class, byte[].class);
-    networkCommissioningscanNetworksCommandParams.put("ssid",networkCommissioningscanNetworksssidCommandParameterInfo);
+    CommandParameterInfo operationalCredentialsCSRRequestCSRNonceCommandParameterInfo = new CommandParameterInfo("CSRNonce", byte[].class, byte[].class);
+    operationalCredentialsCSRRequestCommandParams.put("CSRNonce",operationalCredentialsCSRRequestCSRNonceCommandParameterInfo);
 
-    CommandParameterInfo networkCommissioningscanNetworksbreadcrumbCommandParameterInfo = new CommandParameterInfo("breadcrumb", Optional.class, Long.class);
-    networkCommissioningscanNetworksCommandParams.put("breadcrumb",networkCommissioningscanNetworksbreadcrumbCommandParameterInfo);
-    InteractionInfo networkCommissioningscanNetworksInteractionInfo = new InteractionInfo(
+    CommandParameterInfo operationalCredentialsCSRRequestisForUpdateNOCCommandParameterInfo = new CommandParameterInfo("isForUpdateNOC", Optional.class, Boolean.class);
+    operationalCredentialsCSRRequestCommandParams.put("isForUpdateNOC",operationalCredentialsCSRRequestisForUpdateNOCCommandParameterInfo);
+    InteractionInfo operationalCredentialsCSRRequestInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.NetworkCommissioningCluster) cluster)
-          .scanNetworks((ChipClusters.NetworkCommissioningCluster.ScanNetworksResponseCallback) callback
-           , (Optional<byte[]>)
-             commandArguments.get("ssid")
+        ((ChipClusters.OperationalCredentialsCluster) cluster)
+          .CSRRequest((ChipClusters.OperationalCredentialsCluster.CSRResponseCallback) callback
+           , (byte[])
+             commandArguments.get("CSRNonce")
 
-           , (Optional<Long>)
-             commandArguments.get("breadcrumb")
+           , (Optional<Boolean>)
+             commandArguments.get("isForUpdateNOC")
 
             );
         },
-        () -> new DelegatedNetworkCommissioningClusterScanNetworksResponseCallback(),
-        networkCommissioningscanNetworksCommandParams
+        () -> new DelegatedOperationalCredentialsClusterCSRResponseCallback(),
+        operationalCredentialsCSRRequestCommandParams
       );
-    networkCommissioningClusterInteractionInfoMap.put("scanNetworks", networkCommissioningscanNetworksInteractionInfo);
-
-    Map<String, CommandParameterInfo> networkCommissioningaddOrUpdateWiFiNetworkCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    operationalCredentialsClusterInteractionInfoMap.put("CSRRequest", operationalCredentialsCSRRequestInteractionInfo);
 
-    CommandParameterInfo networkCommissioningaddOrUpdateWiFiNetworkssidCommandParameterInfo = new CommandParameterInfo("ssid", byte[].class, byte[].class);
-    networkCommissioningaddOrUpdateWiFiNetworkCommandParams.put("ssid",networkCommissioningaddOrUpdateWiFiNetworkssidCommandParameterInfo);
+    Map<String, CommandParameterInfo> operationalCredentialsaddNOCCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo networkCommissioningaddOrUpdateWiFiNetworkcredentialsCommandParameterInfo = new CommandParameterInfo("credentials", byte[].class, byte[].class);
-    networkCommissioningaddOrUpdateWiFiNetworkCommandParams.put("credentials",networkCommissioningaddOrUpdateWiFiNetworkcredentialsCommandParameterInfo);
+    CommandParameterInfo operationalCredentialsaddNOCNOCValueCommandParameterInfo = new CommandParameterInfo("NOCValue", byte[].class, byte[].class);
+    operationalCredentialsaddNOCCommandParams.put("NOCValue",operationalCredentialsaddNOCNOCValueCommandParameterInfo);
 
-    CommandParameterInfo networkCommissioningaddOrUpdateWiFiNetworkbreadcrumbCommandParameterInfo = new CommandParameterInfo("breadcrumb", Optional.class, Long.class);
-    networkCommissioningaddOrUpdateWiFiNetworkCommandParams.put("breadcrumb",networkCommissioningaddOrUpdateWiFiNetworkbreadcrumbCommandParameterInfo);
+    CommandParameterInfo operationalCredentialsaddNOCICACValueCommandParameterInfo = new CommandParameterInfo("ICACValue", Optional.class, byte[].class);
+    operationalCredentialsaddNOCCommandParams.put("ICACValue",operationalCredentialsaddNOCICACValueCommandParameterInfo);
 
-    CommandParameterInfo networkCommissioningaddOrUpdateWiFiNetworknetworkIdentityCommandParameterInfo = new CommandParameterInfo("networkIdentity", Optional.class, byte[].class);
-    networkCommissioningaddOrUpdateWiFiNetworkCommandParams.put("networkIdentity",networkCommissioningaddOrUpdateWiFiNetworknetworkIdentityCommandParameterInfo);
+    CommandParameterInfo operationalCredentialsaddNOCIPKValueCommandParameterInfo = new CommandParameterInfo("IPKValue", byte[].class, byte[].class);
+    operationalCredentialsaddNOCCommandParams.put("IPKValue",operationalCredentialsaddNOCIPKValueCommandParameterInfo);
 
-    CommandParameterInfo networkCommissioningaddOrUpdateWiFiNetworkclientIdentifierCommandParameterInfo = new CommandParameterInfo("clientIdentifier", Optional.class, byte[].class);
-    networkCommissioningaddOrUpdateWiFiNetworkCommandParams.put("clientIdentifier",networkCommissioningaddOrUpdateWiFiNetworkclientIdentifierCommandParameterInfo);
+    CommandParameterInfo operationalCredentialsaddNOCcaseAdminSubjectCommandParameterInfo = new CommandParameterInfo("caseAdminSubject", Long.class, Long.class);
+    operationalCredentialsaddNOCCommandParams.put("caseAdminSubject",operationalCredentialsaddNOCcaseAdminSubjectCommandParameterInfo);
 
-    CommandParameterInfo networkCommissioningaddOrUpdateWiFiNetworkpossessionNonceCommandParameterInfo = new CommandParameterInfo("possessionNonce", Optional.class, byte[].class);
-    networkCommissioningaddOrUpdateWiFiNetworkCommandParams.put("possessionNonce",networkCommissioningaddOrUpdateWiFiNetworkpossessionNonceCommandParameterInfo);
-    InteractionInfo networkCommissioningaddOrUpdateWiFiNetworkInteractionInfo = new InteractionInfo(
+    CommandParameterInfo operationalCredentialsaddNOCadminVendorIdCommandParameterInfo = new CommandParameterInfo("adminVendorId", Integer.class, Integer.class);
+    operationalCredentialsaddNOCCommandParams.put("adminVendorId",operationalCredentialsaddNOCadminVendorIdCommandParameterInfo);
+    InteractionInfo operationalCredentialsaddNOCInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.NetworkCommissioningCluster) cluster)
-          .addOrUpdateWiFiNetwork((ChipClusters.NetworkCommissioningCluster.NetworkConfigResponseCallback) callback
-           , (byte[])
-             commandArguments.get("ssid")
-
+        ((ChipClusters.OperationalCredentialsCluster) cluster)
+          .addNOC((ChipClusters.OperationalCredentialsCluster.NOCResponseCallback) callback
            , (byte[])
-             commandArguments.get("credentials")
-
-           , (Optional<Long>)
-             commandArguments.get("breadcrumb")
-
-           , (Optional<byte[]>)
-             commandArguments.get("networkIdentity")
-
-           , (Optional<byte[]>)
-             commandArguments.get("clientIdentifier")
+             commandArguments.get("NOCValue")
 
            , (Optional<byte[]>)
-             commandArguments.get("possessionNonce")
-
-            );
-        },
-        () -> new DelegatedNetworkCommissioningClusterNetworkConfigResponseCallback(),
-        networkCommissioningaddOrUpdateWiFiNetworkCommandParams
-      );
-    networkCommissioningClusterInteractionInfoMap.put("addOrUpdateWiFiNetwork", networkCommissioningaddOrUpdateWiFiNetworkInteractionInfo);
-
-    Map<String, CommandParameterInfo> networkCommissioningaddOrUpdateThreadNetworkCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-
-    CommandParameterInfo networkCommissioningaddOrUpdateThreadNetworkoperationalDatasetCommandParameterInfo = new CommandParameterInfo("operationalDataset", byte[].class, byte[].class);
-    networkCommissioningaddOrUpdateThreadNetworkCommandParams.put("operationalDataset",networkCommissioningaddOrUpdateThreadNetworkoperationalDatasetCommandParameterInfo);
+             commandArguments.get("ICACValue")
 
-    CommandParameterInfo networkCommissioningaddOrUpdateThreadNetworkbreadcrumbCommandParameterInfo = new CommandParameterInfo("breadcrumb", Optional.class, Long.class);
-    networkCommissioningaddOrUpdateThreadNetworkCommandParams.put("breadcrumb",networkCommissioningaddOrUpdateThreadNetworkbreadcrumbCommandParameterInfo);
-    InteractionInfo networkCommissioningaddOrUpdateThreadNetworkInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.NetworkCommissioningCluster) cluster)
-          .addOrUpdateThreadNetwork((ChipClusters.NetworkCommissioningCluster.NetworkConfigResponseCallback) callback
            , (byte[])
-             commandArguments.get("operationalDataset")
+             commandArguments.get("IPKValue")
 
-           , (Optional<Long>)
-             commandArguments.get("breadcrumb")
+           , (Long)
+             commandArguments.get("caseAdminSubject")
+
+           , (Integer)
+             commandArguments.get("adminVendorId")
 
             );
         },
-        () -> new DelegatedNetworkCommissioningClusterNetworkConfigResponseCallback(),
-        networkCommissioningaddOrUpdateThreadNetworkCommandParams
+        () -> new DelegatedOperationalCredentialsClusterNOCResponseCallback(),
+        operationalCredentialsaddNOCCommandParams
       );
-    networkCommissioningClusterInteractionInfoMap.put("addOrUpdateThreadNetwork", networkCommissioningaddOrUpdateThreadNetworkInteractionInfo);
+    operationalCredentialsClusterInteractionInfoMap.put("addNOC", operationalCredentialsaddNOCInteractionInfo);
 
-    Map<String, CommandParameterInfo> networkCommissioningremoveNetworkCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> operationalCredentialsupdateNOCCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo networkCommissioningremoveNetworknetworkIDCommandParameterInfo = new CommandParameterInfo("networkID", byte[].class, byte[].class);
-    networkCommissioningremoveNetworkCommandParams.put("networkID",networkCommissioningremoveNetworknetworkIDCommandParameterInfo);
+    CommandParameterInfo operationalCredentialsupdateNOCNOCValueCommandParameterInfo = new CommandParameterInfo("NOCValue", byte[].class, byte[].class);
+    operationalCredentialsupdateNOCCommandParams.put("NOCValue",operationalCredentialsupdateNOCNOCValueCommandParameterInfo);
 
-    CommandParameterInfo networkCommissioningremoveNetworkbreadcrumbCommandParameterInfo = new CommandParameterInfo("breadcrumb", Optional.class, Long.class);
-    networkCommissioningremoveNetworkCommandParams.put("breadcrumb",networkCommissioningremoveNetworkbreadcrumbCommandParameterInfo);
-    InteractionInfo networkCommissioningremoveNetworkInteractionInfo = new InteractionInfo(
+    CommandParameterInfo operationalCredentialsupdateNOCICACValueCommandParameterInfo = new CommandParameterInfo("ICACValue", Optional.class, byte[].class);
+    operationalCredentialsupdateNOCCommandParams.put("ICACValue",operationalCredentialsupdateNOCICACValueCommandParameterInfo);
+    InteractionInfo operationalCredentialsupdateNOCInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.NetworkCommissioningCluster) cluster)
-          .removeNetwork((ChipClusters.NetworkCommissioningCluster.NetworkConfigResponseCallback) callback
+        ((ChipClusters.OperationalCredentialsCluster) cluster)
+          .updateNOC((ChipClusters.OperationalCredentialsCluster.NOCResponseCallback) callback
            , (byte[])
-             commandArguments.get("networkID")
+             commandArguments.get("NOCValue")
 
-           , (Optional<Long>)
-             commandArguments.get("breadcrumb")
+           , (Optional<byte[]>)
+             commandArguments.get("ICACValue")
 
             );
         },
-        () -> new DelegatedNetworkCommissioningClusterNetworkConfigResponseCallback(),
-        networkCommissioningremoveNetworkCommandParams
+        () -> new DelegatedOperationalCredentialsClusterNOCResponseCallback(),
+        operationalCredentialsupdateNOCCommandParams
       );
-    networkCommissioningClusterInteractionInfoMap.put("removeNetwork", networkCommissioningremoveNetworkInteractionInfo);
-
-    Map<String, CommandParameterInfo> networkCommissioningconnectNetworkCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    operationalCredentialsClusterInteractionInfoMap.put("updateNOC", operationalCredentialsupdateNOCInteractionInfo);
 
-    CommandParameterInfo networkCommissioningconnectNetworknetworkIDCommandParameterInfo = new CommandParameterInfo("networkID", byte[].class, byte[].class);
-    networkCommissioningconnectNetworkCommandParams.put("networkID",networkCommissioningconnectNetworknetworkIDCommandParameterInfo);
+    Map<String, CommandParameterInfo> operationalCredentialsupdateFabricLabelCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo networkCommissioningconnectNetworkbreadcrumbCommandParameterInfo = new CommandParameterInfo("breadcrumb", Optional.class, Long.class);
-    networkCommissioningconnectNetworkCommandParams.put("breadcrumb",networkCommissioningconnectNetworkbreadcrumbCommandParameterInfo);
-    InteractionInfo networkCommissioningconnectNetworkInteractionInfo = new InteractionInfo(
+    CommandParameterInfo operationalCredentialsupdateFabricLabellabelCommandParameterInfo = new CommandParameterInfo("label", String.class, String.class);
+    operationalCredentialsupdateFabricLabelCommandParams.put("label",operationalCredentialsupdateFabricLabellabelCommandParameterInfo);
+    InteractionInfo operationalCredentialsupdateFabricLabelInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.NetworkCommissioningCluster) cluster)
-          .connectNetwork((ChipClusters.NetworkCommissioningCluster.ConnectNetworkResponseCallback) callback
-           , (byte[])
-             commandArguments.get("networkID")
-
-           , (Optional<Long>)
-             commandArguments.get("breadcrumb")
+        ((ChipClusters.OperationalCredentialsCluster) cluster)
+          .updateFabricLabel((ChipClusters.OperationalCredentialsCluster.NOCResponseCallback) callback
+           , (String)
+             commandArguments.get("label")
 
             );
         },
-        () -> new DelegatedNetworkCommissioningClusterConnectNetworkResponseCallback(),
-        networkCommissioningconnectNetworkCommandParams
+        () -> new DelegatedOperationalCredentialsClusterNOCResponseCallback(),
+        operationalCredentialsupdateFabricLabelCommandParams
       );
-    networkCommissioningClusterInteractionInfoMap.put("connectNetwork", networkCommissioningconnectNetworkInteractionInfo);
-
-    Map<String, CommandParameterInfo> networkCommissioningreorderNetworkCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-
-    CommandParameterInfo networkCommissioningreorderNetworknetworkIDCommandParameterInfo = new CommandParameterInfo("networkID", byte[].class, byte[].class);
-    networkCommissioningreorderNetworkCommandParams.put("networkID",networkCommissioningreorderNetworknetworkIDCommandParameterInfo);
+    operationalCredentialsClusterInteractionInfoMap.put("updateFabricLabel", operationalCredentialsupdateFabricLabelInteractionInfo);
 
-    CommandParameterInfo networkCommissioningreorderNetworknetworkIndexCommandParameterInfo = new CommandParameterInfo("networkIndex", Integer.class, Integer.class);
-    networkCommissioningreorderNetworkCommandParams.put("networkIndex",networkCommissioningreorderNetworknetworkIndexCommandParameterInfo);
+    Map<String, CommandParameterInfo> operationalCredentialsremoveFabricCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo networkCommissioningreorderNetworkbreadcrumbCommandParameterInfo = new CommandParameterInfo("breadcrumb", Optional.class, Long.class);
-    networkCommissioningreorderNetworkCommandParams.put("breadcrumb",networkCommissioningreorderNetworkbreadcrumbCommandParameterInfo);
-    InteractionInfo networkCommissioningreorderNetworkInteractionInfo = new InteractionInfo(
+    CommandParameterInfo operationalCredentialsremoveFabricfabricIndexCommandParameterInfo = new CommandParameterInfo("fabricIndex", Integer.class, Integer.class);
+    operationalCredentialsremoveFabricCommandParams.put("fabricIndex",operationalCredentialsremoveFabricfabricIndexCommandParameterInfo);
+    InteractionInfo operationalCredentialsremoveFabricInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.NetworkCommissioningCluster) cluster)
-          .reorderNetwork((ChipClusters.NetworkCommissioningCluster.NetworkConfigResponseCallback) callback
-           , (byte[])
-             commandArguments.get("networkID")
-
+        ((ChipClusters.OperationalCredentialsCluster) cluster)
+          .removeFabric((ChipClusters.OperationalCredentialsCluster.NOCResponseCallback) callback
            , (Integer)
-             commandArguments.get("networkIndex")
-
-           , (Optional<Long>)
-             commandArguments.get("breadcrumb")
+             commandArguments.get("fabricIndex")
 
             );
         },
-        () -> new DelegatedNetworkCommissioningClusterNetworkConfigResponseCallback(),
-        networkCommissioningreorderNetworkCommandParams
+        () -> new DelegatedOperationalCredentialsClusterNOCResponseCallback(),
+        operationalCredentialsremoveFabricCommandParams
       );
-    networkCommissioningClusterInteractionInfoMap.put("reorderNetwork", networkCommissioningreorderNetworkInteractionInfo);
-
-    Map<String, CommandParameterInfo> networkCommissioningqueryIdentityCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    operationalCredentialsClusterInteractionInfoMap.put("removeFabric", operationalCredentialsremoveFabricInteractionInfo);
 
-    CommandParameterInfo networkCommissioningqueryIdentitykeyIdentifierCommandParameterInfo = new CommandParameterInfo("keyIdentifier", byte[].class, byte[].class);
-    networkCommissioningqueryIdentityCommandParams.put("keyIdentifier",networkCommissioningqueryIdentitykeyIdentifierCommandParameterInfo);
+    Map<String, CommandParameterInfo> operationalCredentialsaddTrustedRootCertificateCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo networkCommissioningqueryIdentitypossessionNonceCommandParameterInfo = new CommandParameterInfo("possessionNonce", Optional.class, byte[].class);
-    networkCommissioningqueryIdentityCommandParams.put("possessionNonce",networkCommissioningqueryIdentitypossessionNonceCommandParameterInfo);
-    InteractionInfo networkCommissioningqueryIdentityInteractionInfo = new InteractionInfo(
+    CommandParameterInfo operationalCredentialsaddTrustedRootCertificaterootCACertificateCommandParameterInfo = new CommandParameterInfo("rootCACertificate", byte[].class, byte[].class);
+    operationalCredentialsaddTrustedRootCertificateCommandParams.put("rootCACertificate",operationalCredentialsaddTrustedRootCertificaterootCACertificateCommandParameterInfo);
+    InteractionInfo operationalCredentialsaddTrustedRootCertificateInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.NetworkCommissioningCluster) cluster)
-          .queryIdentity((ChipClusters.NetworkCommissioningCluster.QueryIdentityResponseCallback) callback
-           , (byte[])
-             commandArguments.get("keyIdentifier")
-
-           , (Optional<byte[]>)
-             commandArguments.get("possessionNonce")
-
-            );
-        },
-        () -> new DelegatedNetworkCommissioningClusterQueryIdentityResponseCallback(),
-        networkCommissioningqueryIdentityCommandParams
-      );
-    networkCommissioningClusterInteractionInfoMap.put("queryIdentity", networkCommissioningqueryIdentityInteractionInfo);
+        ((ChipClusters.OperationalCredentialsCluster) cluster)
+        .addTrustedRootCertificate((DefaultClusterCallback) callback
+        , (byte[])
+        commandArguments.get("rootCACertificate")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        operationalCredentialsaddTrustedRootCertificateCommandParams
+    );
+    operationalCredentialsClusterInteractionInfoMap.put("addTrustedRootCertificate", operationalCredentialsaddTrustedRootCertificateInteractionInfo);
 
-    commandMap.put("networkCommissioning", networkCommissioningClusterInteractionInfoMap);
+    commandMap.put("operationalCredentials", operationalCredentialsClusterInteractionInfoMap);
 
-    Map<String, InteractionInfo> diagnosticLogsClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, InteractionInfo> groupKeyManagementClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    Map<String, CommandParameterInfo> diagnosticLogsretrieveLogsRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> groupKeyManagementkeySetWriteCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo diagnosticLogsretrieveLogsRequestintentCommandParameterInfo = new CommandParameterInfo("intent", Integer.class, Integer.class);
-    diagnosticLogsretrieveLogsRequestCommandParams.put("intent",diagnosticLogsretrieveLogsRequestintentCommandParameterInfo);
+    InteractionInfo groupKeyManagementkeySetWriteInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.GroupKeyManagementCluster) cluster)
+        .keySetWrite((DefaultClusterCallback) callback
+        , (ChipStructs.GroupKeyManagementClusterGroupKeySetStruct)
+        commandArguments.get("groupKeySet")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        groupKeyManagementkeySetWriteCommandParams
+    );
+    groupKeyManagementClusterInteractionInfoMap.put("keySetWrite", groupKeyManagementkeySetWriteInteractionInfo);
 
-    CommandParameterInfo diagnosticLogsretrieveLogsRequestrequestedProtocolCommandParameterInfo = new CommandParameterInfo("requestedProtocol", Integer.class, Integer.class);
-    diagnosticLogsretrieveLogsRequestCommandParams.put("requestedProtocol",diagnosticLogsretrieveLogsRequestrequestedProtocolCommandParameterInfo);
+    Map<String, CommandParameterInfo> groupKeyManagementkeySetReadCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo diagnosticLogsretrieveLogsRequesttransferFileDesignatorCommandParameterInfo = new CommandParameterInfo("transferFileDesignator", Optional.class, String.class);
-    diagnosticLogsretrieveLogsRequestCommandParams.put("transferFileDesignator",diagnosticLogsretrieveLogsRequesttransferFileDesignatorCommandParameterInfo);
-    InteractionInfo diagnosticLogsretrieveLogsRequestInteractionInfo = new InteractionInfo(
+    CommandParameterInfo groupKeyManagementkeySetReadgroupKeySetIDCommandParameterInfo = new CommandParameterInfo("groupKeySetID", Integer.class, Integer.class);
+    groupKeyManagementkeySetReadCommandParams.put("groupKeySetID",groupKeyManagementkeySetReadgroupKeySetIDCommandParameterInfo);
+    InteractionInfo groupKeyManagementkeySetReadInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DiagnosticLogsCluster) cluster)
-          .retrieveLogsRequest((ChipClusters.DiagnosticLogsCluster.RetrieveLogsResponseCallback) callback
-           , (Integer)
-             commandArguments.get("intent")
-
+        ((ChipClusters.GroupKeyManagementCluster) cluster)
+          .keySetRead((ChipClusters.GroupKeyManagementCluster.KeySetReadResponseCallback) callback
            , (Integer)
-             commandArguments.get("requestedProtocol")
-
-           , (Optional<String>)
-             commandArguments.get("transferFileDesignator")
+             commandArguments.get("groupKeySetID")
 
             );
         },
-        () -> new DelegatedDiagnosticLogsClusterRetrieveLogsResponseCallback(),
-        diagnosticLogsretrieveLogsRequestCommandParams
+        () -> new DelegatedGroupKeyManagementClusterKeySetReadResponseCallback(),
+        groupKeyManagementkeySetReadCommandParams
       );
-    diagnosticLogsClusterInteractionInfoMap.put("retrieveLogsRequest", diagnosticLogsretrieveLogsRequestInteractionInfo);
-
-    commandMap.put("diagnosticLogs", diagnosticLogsClusterInteractionInfoMap);
-
-    Map<String, InteractionInfo> generalDiagnosticsClusterInteractionInfoMap = new LinkedHashMap<>();
-
-    Map<String, CommandParameterInfo> generalDiagnosticstestEventTriggerCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    groupKeyManagementClusterInteractionInfoMap.put("keySetRead", groupKeyManagementkeySetReadInteractionInfo);
 
-    CommandParameterInfo generalDiagnosticstestEventTriggerenableKeyCommandParameterInfo = new CommandParameterInfo("enableKey", byte[].class, byte[].class);
-    generalDiagnosticstestEventTriggerCommandParams.put("enableKey",generalDiagnosticstestEventTriggerenableKeyCommandParameterInfo);
+    Map<String, CommandParameterInfo> groupKeyManagementkeySetRemoveCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo generalDiagnosticstestEventTriggereventTriggerCommandParameterInfo = new CommandParameterInfo("eventTrigger", Long.class, Long.class);
-    generalDiagnosticstestEventTriggerCommandParams.put("eventTrigger",generalDiagnosticstestEventTriggereventTriggerCommandParameterInfo);
-    InteractionInfo generalDiagnosticstestEventTriggerInteractionInfo = new InteractionInfo(
+    CommandParameterInfo groupKeyManagementkeySetRemovegroupKeySetIDCommandParameterInfo = new CommandParameterInfo("groupKeySetID", Integer.class, Integer.class);
+    groupKeyManagementkeySetRemoveCommandParams.put("groupKeySetID",groupKeyManagementkeySetRemovegroupKeySetIDCommandParameterInfo);
+    InteractionInfo groupKeyManagementkeySetRemoveInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.GeneralDiagnosticsCluster) cluster)
-        .testEventTrigger((DefaultClusterCallback) callback
-        , (byte[])
-        commandArguments.get("enableKey")
-        , (Long)
-        commandArguments.get("eventTrigger")
+        ((ChipClusters.GroupKeyManagementCluster) cluster)
+        .keySetRemove((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("groupKeySetID")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        generalDiagnosticstestEventTriggerCommandParams
+        groupKeyManagementkeySetRemoveCommandParams
     );
-    generalDiagnosticsClusterInteractionInfoMap.put("testEventTrigger", generalDiagnosticstestEventTriggerInteractionInfo);
+    groupKeyManagementClusterInteractionInfoMap.put("keySetRemove", groupKeyManagementkeySetRemoveInteractionInfo);
 
-    Map<String, CommandParameterInfo> generalDiagnosticstimeSnapshotCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo generalDiagnosticstimeSnapshotInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> groupKeyManagementkeySetReadAllIndicesCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo groupKeyManagementkeySetReadAllIndicesInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.GeneralDiagnosticsCluster) cluster)
-          .timeSnapshot((ChipClusters.GeneralDiagnosticsCluster.TimeSnapshotResponseCallback) callback
+        ((ChipClusters.GroupKeyManagementCluster) cluster)
+          .keySetReadAllIndices((ChipClusters.GroupKeyManagementCluster.KeySetReadAllIndicesResponseCallback) callback
             );
         },
-        () -> new DelegatedGeneralDiagnosticsClusterTimeSnapshotResponseCallback(),
-        generalDiagnosticstimeSnapshotCommandParams
+        () -> new DelegatedGroupKeyManagementClusterKeySetReadAllIndicesResponseCallback(),
+        groupKeyManagementkeySetReadAllIndicesCommandParams
       );
-    generalDiagnosticsClusterInteractionInfoMap.put("timeSnapshot", generalDiagnosticstimeSnapshotInteractionInfo);
+    groupKeyManagementClusterInteractionInfoMap.put("keySetReadAllIndices", groupKeyManagementkeySetReadAllIndicesInteractionInfo);
 
-    Map<String, CommandParameterInfo> generalDiagnosticspayloadTestRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    commandMap.put("groupKeyManagement", groupKeyManagementClusterInteractionInfoMap);
 
-    CommandParameterInfo generalDiagnosticspayloadTestRequestenableKeyCommandParameterInfo = new CommandParameterInfo("enableKey", byte[].class, byte[].class);
-    generalDiagnosticspayloadTestRequestCommandParams.put("enableKey",generalDiagnosticspayloadTestRequestenableKeyCommandParameterInfo);
+    Map<String, InteractionInfo> fixedLabelClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    CommandParameterInfo generalDiagnosticspayloadTestRequestvalueCommandParameterInfo = new CommandParameterInfo("value", Integer.class, Integer.class);
-    generalDiagnosticspayloadTestRequestCommandParams.put("value",generalDiagnosticspayloadTestRequestvalueCommandParameterInfo);
+    commandMap.put("fixedLabel", fixedLabelClusterInteractionInfoMap);
 
-    CommandParameterInfo generalDiagnosticspayloadTestRequestcountCommandParameterInfo = new CommandParameterInfo("count", Integer.class, Integer.class);
-    generalDiagnosticspayloadTestRequestCommandParams.put("count",generalDiagnosticspayloadTestRequestcountCommandParameterInfo);
-    InteractionInfo generalDiagnosticspayloadTestRequestInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.GeneralDiagnosticsCluster) cluster)
-          .payloadTestRequest((ChipClusters.GeneralDiagnosticsCluster.PayloadTestResponseCallback) callback
-           , (byte[])
-             commandArguments.get("enableKey")
+    Map<String, InteractionInfo> userLabelClusterInteractionInfoMap = new LinkedHashMap<>();
 
-           , (Integer)
-             commandArguments.get("value")
+    commandMap.put("userLabel", userLabelClusterInteractionInfoMap);
 
-           , (Integer)
-             commandArguments.get("count")
+    Map<String, InteractionInfo> proxyConfigurationClusterInteractionInfoMap = new LinkedHashMap<>();
 
-            );
-        },
-        () -> new DelegatedGeneralDiagnosticsClusterPayloadTestResponseCallback(),
-        generalDiagnosticspayloadTestRequestCommandParams
-      );
-    generalDiagnosticsClusterInteractionInfoMap.put("payloadTestRequest", generalDiagnosticspayloadTestRequestInteractionInfo);
+    commandMap.put("proxyConfiguration", proxyConfigurationClusterInteractionInfoMap);
 
-    commandMap.put("generalDiagnostics", generalDiagnosticsClusterInteractionInfoMap);
+    Map<String, InteractionInfo> proxyDiscoveryClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    Map<String, InteractionInfo> softwareDiagnosticsClusterInteractionInfoMap = new LinkedHashMap<>();
+    commandMap.put("proxyDiscovery", proxyDiscoveryClusterInteractionInfoMap);
 
-    Map<String, CommandParameterInfo> softwareDiagnosticsresetWatermarksCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo softwareDiagnosticsresetWatermarksInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.SoftwareDiagnosticsCluster) cluster)
-        .resetWatermarks((DefaultClusterCallback) callback
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        softwareDiagnosticsresetWatermarksCommandParams
-    );
-    softwareDiagnosticsClusterInteractionInfoMap.put("resetWatermarks", softwareDiagnosticsresetWatermarksInteractionInfo);
+    Map<String, InteractionInfo> proxyValidClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    commandMap.put("softwareDiagnostics", softwareDiagnosticsClusterInteractionInfoMap);
+    commandMap.put("proxyValid", proxyValidClusterInteractionInfoMap);
 
-    Map<String, InteractionInfo> threadNetworkDiagnosticsClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, InteractionInfo> booleanStateClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    Map<String, CommandParameterInfo> threadNetworkDiagnosticsresetCountsCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo threadNetworkDiagnosticsresetCountsInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ThreadNetworkDiagnosticsCluster) cluster)
-        .resetCounts((DefaultClusterCallback) callback
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        threadNetworkDiagnosticsresetCountsCommandParams
-    );
-    threadNetworkDiagnosticsClusterInteractionInfoMap.put("resetCounts", threadNetworkDiagnosticsresetCountsInteractionInfo);
+    commandMap.put("booleanState", booleanStateClusterInteractionInfoMap);
 
-    commandMap.put("threadNetworkDiagnostics", threadNetworkDiagnosticsClusterInteractionInfoMap);
+    Map<String, InteractionInfo> icdManagementClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    Map<String, InteractionInfo> wiFiNetworkDiagnosticsClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, CommandParameterInfo> icdManagementregisterClientCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, CommandParameterInfo> wiFiNetworkDiagnosticsresetCountsCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo wiFiNetworkDiagnosticsresetCountsInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.WiFiNetworkDiagnosticsCluster) cluster)
-        .resetCounts((DefaultClusterCallback) callback
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        wiFiNetworkDiagnosticsresetCountsCommandParams
-    );
-    wiFiNetworkDiagnosticsClusterInteractionInfoMap.put("resetCounts", wiFiNetworkDiagnosticsresetCountsInteractionInfo);
+    CommandParameterInfo icdManagementregisterClientcheckInNodeIDCommandParameterInfo = new CommandParameterInfo("checkInNodeID", Long.class, Long.class);
+    icdManagementregisterClientCommandParams.put("checkInNodeID",icdManagementregisterClientcheckInNodeIDCommandParameterInfo);
 
-    commandMap.put("wiFiNetworkDiagnostics", wiFiNetworkDiagnosticsClusterInteractionInfoMap);
+    CommandParameterInfo icdManagementregisterClientmonitoredSubjectCommandParameterInfo = new CommandParameterInfo("monitoredSubject", Long.class, Long.class);
+    icdManagementregisterClientCommandParams.put("monitoredSubject",icdManagementregisterClientmonitoredSubjectCommandParameterInfo);
 
-    Map<String, InteractionInfo> ethernetNetworkDiagnosticsClusterInteractionInfoMap = new LinkedHashMap<>();
+    CommandParameterInfo icdManagementregisterClientkeyCommandParameterInfo = new CommandParameterInfo("key", byte[].class, byte[].class);
+    icdManagementregisterClientCommandParams.put("key",icdManagementregisterClientkeyCommandParameterInfo);
 
-    Map<String, CommandParameterInfo> ethernetNetworkDiagnosticsresetCountsCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo ethernetNetworkDiagnosticsresetCountsInteractionInfo = new InteractionInfo(
+    CommandParameterInfo icdManagementregisterClientverificationKeyCommandParameterInfo = new CommandParameterInfo("verificationKey", Optional.class, byte[].class);
+    icdManagementregisterClientCommandParams.put("verificationKey",icdManagementregisterClientverificationKeyCommandParameterInfo);
+
+    CommandParameterInfo icdManagementregisterClientclientTypeCommandParameterInfo = new CommandParameterInfo("clientType", Integer.class, Integer.class);
+    icdManagementregisterClientCommandParams.put("clientType",icdManagementregisterClientclientTypeCommandParameterInfo);
+    InteractionInfo icdManagementregisterClientInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.EthernetNetworkDiagnosticsCluster) cluster)
-        .resetCounts((DefaultClusterCallback) callback
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        ethernetNetworkDiagnosticsresetCountsCommandParams
-    );
-    ethernetNetworkDiagnosticsClusterInteractionInfoMap.put("resetCounts", ethernetNetworkDiagnosticsresetCountsInteractionInfo);
+        ((ChipClusters.IcdManagementCluster) cluster)
+          .registerClient((ChipClusters.IcdManagementCluster.RegisterClientResponseCallback) callback
+           , (Long)
+             commandArguments.get("checkInNodeID")
 
-    commandMap.put("ethernetNetworkDiagnostics", ethernetNetworkDiagnosticsClusterInteractionInfoMap);
+           , (Long)
+             commandArguments.get("monitoredSubject")
 
-    Map<String, InteractionInfo> timeSynchronizationClusterInteractionInfoMap = new LinkedHashMap<>();
+           , (byte[])
+             commandArguments.get("key")
 
-    Map<String, CommandParameterInfo> timeSynchronizationsetUTCTimeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+           , (Optional<byte[]>)
+             commandArguments.get("verificationKey")
 
-    CommandParameterInfo timeSynchronizationsetUTCTimeUTCTimeCommandParameterInfo = new CommandParameterInfo("UTCTime", Long.class, Long.class);
-    timeSynchronizationsetUTCTimeCommandParams.put("UTCTime",timeSynchronizationsetUTCTimeUTCTimeCommandParameterInfo);
+           , (Integer)
+             commandArguments.get("clientType")
 
-    CommandParameterInfo timeSynchronizationsetUTCTimegranularityCommandParameterInfo = new CommandParameterInfo("granularity", Integer.class, Integer.class);
-    timeSynchronizationsetUTCTimeCommandParams.put("granularity",timeSynchronizationsetUTCTimegranularityCommandParameterInfo);
+            );
+        },
+        () -> new DelegatedIcdManagementClusterRegisterClientResponseCallback(),
+        icdManagementregisterClientCommandParams
+      );
+    icdManagementClusterInteractionInfoMap.put("registerClient", icdManagementregisterClientInteractionInfo);
 
-    CommandParameterInfo timeSynchronizationsetUTCTimetimeSourceCommandParameterInfo = new CommandParameterInfo("timeSource", Optional.class, Integer.class);
-    timeSynchronizationsetUTCTimeCommandParams.put("timeSource",timeSynchronizationsetUTCTimetimeSourceCommandParameterInfo);
-    InteractionInfo timeSynchronizationsetUTCTimeInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.TimeSynchronizationCluster) cluster)
-        .setUTCTime((DefaultClusterCallback) callback
-        , (Long)
-        commandArguments.get("UTCTime")
-        , (Integer)
-        commandArguments.get("granularity")
-        , (Optional<Integer>)
-        commandArguments.get("timeSource")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        timeSynchronizationsetUTCTimeCommandParams
-    );
-    timeSynchronizationClusterInteractionInfoMap.put("setUTCTime", timeSynchronizationsetUTCTimeInteractionInfo);
+    Map<String, CommandParameterInfo> icdManagementunregisterClientCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, CommandParameterInfo> timeSynchronizationsetTrustedTimeSourceCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo icdManagementunregisterClientcheckInNodeIDCommandParameterInfo = new CommandParameterInfo("checkInNodeID", Long.class, Long.class);
+    icdManagementunregisterClientCommandParams.put("checkInNodeID",icdManagementunregisterClientcheckInNodeIDCommandParameterInfo);
 
-    InteractionInfo timeSynchronizationsetTrustedTimeSourceInteractionInfo = new InteractionInfo(
+    CommandParameterInfo icdManagementunregisterClientverificationKeyCommandParameterInfo = new CommandParameterInfo("verificationKey", Optional.class, byte[].class);
+    icdManagementunregisterClientCommandParams.put("verificationKey",icdManagementunregisterClientverificationKeyCommandParameterInfo);
+    InteractionInfo icdManagementunregisterClientInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.TimeSynchronizationCluster) cluster)
-        .setTrustedTimeSource((DefaultClusterCallback) callback
-        , (ChipStructs.TimeSynchronizationClusterFabricScopedTrustedTimeSourceStruct)
-        commandArguments.get("trustedTimeSource")
+        ((ChipClusters.IcdManagementCluster) cluster)
+        .unregisterClient((DefaultClusterCallback) callback
+        , (Long)
+        commandArguments.get("checkInNodeID")
+        , (Optional<byte[]>)
+        commandArguments.get("verificationKey")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        timeSynchronizationsetTrustedTimeSourceCommandParams
+        icdManagementunregisterClientCommandParams
     );
-    timeSynchronizationClusterInteractionInfoMap.put("setTrustedTimeSource", timeSynchronizationsetTrustedTimeSourceInteractionInfo);
+    icdManagementClusterInteractionInfoMap.put("unregisterClient", icdManagementunregisterClientInteractionInfo);
 
-    Map<String, CommandParameterInfo> timeSynchronizationsetTimeZoneCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> icdManagementstayActiveRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    InteractionInfo timeSynchronizationsetTimeZoneInteractionInfo = new InteractionInfo(
+    CommandParameterInfo icdManagementstayActiveRequeststayActiveDurationCommandParameterInfo = new CommandParameterInfo("stayActiveDuration", Long.class, Long.class);
+    icdManagementstayActiveRequestCommandParams.put("stayActiveDuration",icdManagementstayActiveRequeststayActiveDurationCommandParameterInfo);
+    InteractionInfo icdManagementstayActiveRequestInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.TimeSynchronizationCluster) cluster)
-          .setTimeZone((ChipClusters.TimeSynchronizationCluster.SetTimeZoneResponseCallback) callback
-           , (ArrayList<ChipStructs.TimeSynchronizationClusterTimeZoneStruct>)
-             commandArguments.get("timeZone")
+        ((ChipClusters.IcdManagementCluster) cluster)
+          .stayActiveRequest((ChipClusters.IcdManagementCluster.StayActiveResponseCallback) callback
+           , (Long)
+             commandArguments.get("stayActiveDuration")
 
             );
         },
-        () -> new DelegatedTimeSynchronizationClusterSetTimeZoneResponseCallback(),
-        timeSynchronizationsetTimeZoneCommandParams
+        () -> new DelegatedIcdManagementClusterStayActiveResponseCallback(),
+        icdManagementstayActiveRequestCommandParams
       );
-    timeSynchronizationClusterInteractionInfoMap.put("setTimeZone", timeSynchronizationsetTimeZoneInteractionInfo);
+    icdManagementClusterInteractionInfoMap.put("stayActiveRequest", icdManagementstayActiveRequestInteractionInfo);
 
-    Map<String, CommandParameterInfo> timeSynchronizationsetDSTOffsetCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    commandMap.put("icdManagement", icdManagementClusterInteractionInfoMap);
 
-    InteractionInfo timeSynchronizationsetDSTOffsetInteractionInfo = new InteractionInfo(
+    Map<String, InteractionInfo> timerClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    Map<String, CommandParameterInfo> timersetTimerCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo timersetTimernewTimeCommandParameterInfo = new CommandParameterInfo("newTime", Long.class, Long.class);
+    timersetTimerCommandParams.put("newTime",timersetTimernewTimeCommandParameterInfo);
+    InteractionInfo timersetTimerInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.TimeSynchronizationCluster) cluster)
-        .setDSTOffset((DefaultClusterCallback) callback
-        , (ArrayList<ChipStructs.TimeSynchronizationClusterDSTOffsetStruct>)
-        commandArguments.get("DSTOffset")
+        ((ChipClusters.TimerCluster) cluster)
+        .setTimer((DefaultClusterCallback) callback
+        , (Long)
+        commandArguments.get("newTime")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        timeSynchronizationsetDSTOffsetCommandParams
+        timersetTimerCommandParams
     );
-    timeSynchronizationClusterInteractionInfoMap.put("setDSTOffset", timeSynchronizationsetDSTOffsetInteractionInfo);
-
-    Map<String, CommandParameterInfo> timeSynchronizationsetDefaultNTPCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    timerClusterInteractionInfoMap.put("setTimer", timersetTimerInteractionInfo);
 
-    CommandParameterInfo timeSynchronizationsetDefaultNTPdefaultNTPCommandParameterInfo = new CommandParameterInfo("defaultNTP", String.class, String.class);
-    timeSynchronizationsetDefaultNTPCommandParams.put("defaultNTP",timeSynchronizationsetDefaultNTPdefaultNTPCommandParameterInfo);
-    InteractionInfo timeSynchronizationsetDefaultNTPInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> timerresetTimerCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo timerresetTimerInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.TimeSynchronizationCluster) cluster)
-        .setDefaultNTP((DefaultClusterCallback) callback
-        , (String)
-        commandArguments.get("defaultNTP")
+        ((ChipClusters.TimerCluster) cluster)
+        .resetTimer((DefaultClusterCallback) callback
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        timeSynchronizationsetDefaultNTPCommandParams
+        timerresetTimerCommandParams
     );
-    timeSynchronizationClusterInteractionInfoMap.put("setDefaultNTP", timeSynchronizationsetDefaultNTPInteractionInfo);
-
-    commandMap.put("timeSynchronization", timeSynchronizationClusterInteractionInfoMap);
-
-    Map<String, InteractionInfo> bridgedDeviceBasicInformationClusterInteractionInfoMap = new LinkedHashMap<>();
-
-    Map<String, CommandParameterInfo> bridgedDeviceBasicInformationkeepActiveCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    timerClusterInteractionInfoMap.put("resetTimer", timerresetTimerInteractionInfo);
 
-    CommandParameterInfo bridgedDeviceBasicInformationkeepActivestayActiveDurationCommandParameterInfo = new CommandParameterInfo("stayActiveDuration", Long.class, Long.class);
-    bridgedDeviceBasicInformationkeepActiveCommandParams.put("stayActiveDuration",bridgedDeviceBasicInformationkeepActivestayActiveDurationCommandParameterInfo);
+    Map<String, CommandParameterInfo> timeraddTimeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo bridgedDeviceBasicInformationkeepActivetimeoutMsCommandParameterInfo = new CommandParameterInfo("timeoutMs", Long.class, Long.class);
-    bridgedDeviceBasicInformationkeepActiveCommandParams.put("timeoutMs",bridgedDeviceBasicInformationkeepActivetimeoutMsCommandParameterInfo);
-    InteractionInfo bridgedDeviceBasicInformationkeepActiveInteractionInfo = new InteractionInfo(
+    CommandParameterInfo timeraddTimeadditionalTimeCommandParameterInfo = new CommandParameterInfo("additionalTime", Long.class, Long.class);
+    timeraddTimeCommandParams.put("additionalTime",timeraddTimeadditionalTimeCommandParameterInfo);
+    InteractionInfo timeraddTimeInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.BridgedDeviceBasicInformationCluster) cluster)
-        .keepActive((DefaultClusterCallback) callback
-        , (Long)
-        commandArguments.get("stayActiveDuration")
+        ((ChipClusters.TimerCluster) cluster)
+        .addTime((DefaultClusterCallback) callback
         , (Long)
-        commandArguments.get("timeoutMs")
+        commandArguments.get("additionalTime")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        bridgedDeviceBasicInformationkeepActiveCommandParams
+        timeraddTimeCommandParams
     );
-    bridgedDeviceBasicInformationClusterInteractionInfoMap.put("keepActive", bridgedDeviceBasicInformationkeepActiveInteractionInfo);
-
-    commandMap.put("bridgedDeviceBasicInformation", bridgedDeviceBasicInformationClusterInteractionInfoMap);
-
-    Map<String, InteractionInfo> switchClusterInteractionInfoMap = new LinkedHashMap<>();
-
-    commandMap.put("switch", switchClusterInteractionInfoMap);
-
-    Map<String, InteractionInfo> administratorCommissioningClusterInteractionInfoMap = new LinkedHashMap<>();
-
-    Map<String, CommandParameterInfo> administratorCommissioningopenCommissioningWindowCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-
-    CommandParameterInfo administratorCommissioningopenCommissioningWindowcommissioningTimeoutCommandParameterInfo = new CommandParameterInfo("commissioningTimeout", Integer.class, Integer.class);
-    administratorCommissioningopenCommissioningWindowCommandParams.put("commissioningTimeout",administratorCommissioningopenCommissioningWindowcommissioningTimeoutCommandParameterInfo);
-
-    CommandParameterInfo administratorCommissioningopenCommissioningWindowPAKEPasscodeVerifierCommandParameterInfo = new CommandParameterInfo("PAKEPasscodeVerifier", byte[].class, byte[].class);
-    administratorCommissioningopenCommissioningWindowCommandParams.put("PAKEPasscodeVerifier",administratorCommissioningopenCommissioningWindowPAKEPasscodeVerifierCommandParameterInfo);
-
-    CommandParameterInfo administratorCommissioningopenCommissioningWindowdiscriminatorCommandParameterInfo = new CommandParameterInfo("discriminator", Integer.class, Integer.class);
-    administratorCommissioningopenCommissioningWindowCommandParams.put("discriminator",administratorCommissioningopenCommissioningWindowdiscriminatorCommandParameterInfo);
+    timerClusterInteractionInfoMap.put("addTime", timeraddTimeInteractionInfo);
 
-    CommandParameterInfo administratorCommissioningopenCommissioningWindowiterationsCommandParameterInfo = new CommandParameterInfo("iterations", Long.class, Long.class);
-    administratorCommissioningopenCommissioningWindowCommandParams.put("iterations",administratorCommissioningopenCommissioningWindowiterationsCommandParameterInfo);
+    Map<String, CommandParameterInfo> timerreduceTimeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo administratorCommissioningopenCommissioningWindowsaltCommandParameterInfo = new CommandParameterInfo("salt", byte[].class, byte[].class);
-    administratorCommissioningopenCommissioningWindowCommandParams.put("salt",administratorCommissioningopenCommissioningWindowsaltCommandParameterInfo);
-    InteractionInfo administratorCommissioningopenCommissioningWindowInteractionInfo = new InteractionInfo(
+    CommandParameterInfo timerreduceTimetimeReductionCommandParameterInfo = new CommandParameterInfo("timeReduction", Long.class, Long.class);
+    timerreduceTimeCommandParams.put("timeReduction",timerreduceTimetimeReductionCommandParameterInfo);
+    InteractionInfo timerreduceTimeInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.AdministratorCommissioningCluster) cluster)
-        .openCommissioningWindow((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("commissioningTimeout")
-        , (byte[])
-        commandArguments.get("PAKEPasscodeVerifier")
-        , (Integer)
-        commandArguments.get("discriminator")
+        ((ChipClusters.TimerCluster) cluster)
+        .reduceTime((DefaultClusterCallback) callback
         , (Long)
-        commandArguments.get("iterations")
-        , (byte[])
-        commandArguments.get("salt"), 10000
+        commandArguments.get("timeReduction")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        administratorCommissioningopenCommissioningWindowCommandParams
+        timerreduceTimeCommandParams
     );
-    administratorCommissioningClusterInteractionInfoMap.put("openCommissioningWindow", administratorCommissioningopenCommissioningWindowInteractionInfo);
+    timerClusterInteractionInfoMap.put("reduceTime", timerreduceTimeInteractionInfo);
 
-    Map<String, CommandParameterInfo> administratorCommissioningopenBasicCommissioningWindowCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    commandMap.put("timer", timerClusterInteractionInfoMap);
 
-    CommandParameterInfo administratorCommissioningopenBasicCommissioningWindowcommissioningTimeoutCommandParameterInfo = new CommandParameterInfo("commissioningTimeout", Integer.class, Integer.class);
-    administratorCommissioningopenBasicCommissioningWindowCommandParams.put("commissioningTimeout",administratorCommissioningopenBasicCommissioningWindowcommissioningTimeoutCommandParameterInfo);
-    InteractionInfo administratorCommissioningopenBasicCommissioningWindowInteractionInfo = new InteractionInfo(
+    Map<String, InteractionInfo> ovenCavityOperationalStateClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    Map<String, CommandParameterInfo> ovenCavityOperationalStatepauseCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo ovenCavityOperationalStatepauseInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.AdministratorCommissioningCluster) cluster)
-        .openBasicCommissioningWindow((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("commissioningTimeout"), 10000
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        administratorCommissioningopenBasicCommissioningWindowCommandParams
-    );
-    administratorCommissioningClusterInteractionInfoMap.put("openBasicCommissioningWindow", administratorCommissioningopenBasicCommissioningWindowInteractionInfo);
+        ((ChipClusters.OvenCavityOperationalStateCluster) cluster)
+          .pause((ChipClusters.OvenCavityOperationalStateCluster.OperationalCommandResponseCallback) callback
+            );
+        },
+        () -> new DelegatedOvenCavityOperationalStateClusterOperationalCommandResponseCallback(),
+        ovenCavityOperationalStatepauseCommandParams
+      );
+    ovenCavityOperationalStateClusterInteractionInfoMap.put("pause", ovenCavityOperationalStatepauseInteractionInfo);
 
-    Map<String, CommandParameterInfo> administratorCommissioningrevokeCommissioningCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo administratorCommissioningrevokeCommissioningInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> ovenCavityOperationalStatestopCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo ovenCavityOperationalStatestopInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.AdministratorCommissioningCluster) cluster)
-        .revokeCommissioning((DefaultClusterCallback) callback, 10000
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        administratorCommissioningrevokeCommissioningCommandParams
-    );
-    administratorCommissioningClusterInteractionInfoMap.put("revokeCommissioning", administratorCommissioningrevokeCommissioningInteractionInfo);
+        ((ChipClusters.OvenCavityOperationalStateCluster) cluster)
+          .stop((ChipClusters.OvenCavityOperationalStateCluster.OperationalCommandResponseCallback) callback
+            );
+        },
+        () -> new DelegatedOvenCavityOperationalStateClusterOperationalCommandResponseCallback(),
+        ovenCavityOperationalStatestopCommandParams
+      );
+    ovenCavityOperationalStateClusterInteractionInfoMap.put("stop", ovenCavityOperationalStatestopInteractionInfo);
 
-    commandMap.put("administratorCommissioning", administratorCommissioningClusterInteractionInfoMap);
+    Map<String, CommandParameterInfo> ovenCavityOperationalStatestartCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo ovenCavityOperationalStatestartInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.OvenCavityOperationalStateCluster) cluster)
+          .start((ChipClusters.OvenCavityOperationalStateCluster.OperationalCommandResponseCallback) callback
+            );
+        },
+        () -> new DelegatedOvenCavityOperationalStateClusterOperationalCommandResponseCallback(),
+        ovenCavityOperationalStatestartCommandParams
+      );
+    ovenCavityOperationalStateClusterInteractionInfoMap.put("start", ovenCavityOperationalStatestartInteractionInfo);
 
-    Map<String, InteractionInfo> operationalCredentialsClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, CommandParameterInfo> ovenCavityOperationalStateresumeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo ovenCavityOperationalStateresumeInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.OvenCavityOperationalStateCluster) cluster)
+          .resume((ChipClusters.OvenCavityOperationalStateCluster.OperationalCommandResponseCallback) callback
+            );
+        },
+        () -> new DelegatedOvenCavityOperationalStateClusterOperationalCommandResponseCallback(),
+        ovenCavityOperationalStateresumeCommandParams
+      );
+    ovenCavityOperationalStateClusterInteractionInfoMap.put("resume", ovenCavityOperationalStateresumeInteractionInfo);
 
-    Map<String, CommandParameterInfo> operationalCredentialsattestationRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    commandMap.put("ovenCavityOperationalState", ovenCavityOperationalStateClusterInteractionInfoMap);
 
-    CommandParameterInfo operationalCredentialsattestationRequestattestationNonceCommandParameterInfo = new CommandParameterInfo("attestationNonce", byte[].class, byte[].class);
-    operationalCredentialsattestationRequestCommandParams.put("attestationNonce",operationalCredentialsattestationRequestattestationNonceCommandParameterInfo);
-    InteractionInfo operationalCredentialsattestationRequestInteractionInfo = new InteractionInfo(
+    Map<String, InteractionInfo> ovenModeClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    Map<String, CommandParameterInfo> ovenModechangeToModeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo ovenModechangeToModenewModeCommandParameterInfo = new CommandParameterInfo("newMode", Integer.class, Integer.class);
+    ovenModechangeToModeCommandParams.put("newMode",ovenModechangeToModenewModeCommandParameterInfo);
+    InteractionInfo ovenModechangeToModeInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.OperationalCredentialsCluster) cluster)
-          .attestationRequest((ChipClusters.OperationalCredentialsCluster.AttestationResponseCallback) callback
-           , (byte[])
-             commandArguments.get("attestationNonce")
+        ((ChipClusters.OvenModeCluster) cluster)
+          .changeToMode((ChipClusters.OvenModeCluster.ChangeToModeResponseCallback) callback
+           , (Integer)
+             commandArguments.get("newMode")
 
             );
         },
-        () -> new DelegatedOperationalCredentialsClusterAttestationResponseCallback(),
-        operationalCredentialsattestationRequestCommandParams
+        () -> new DelegatedOvenModeClusterChangeToModeResponseCallback(),
+        ovenModechangeToModeCommandParams
       );
-    operationalCredentialsClusterInteractionInfoMap.put("attestationRequest", operationalCredentialsattestationRequestInteractionInfo);
+    ovenModeClusterInteractionInfoMap.put("changeToMode", ovenModechangeToModeInteractionInfo);
 
-    Map<String, CommandParameterInfo> operationalCredentialscertificateChainRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    commandMap.put("ovenMode", ovenModeClusterInteractionInfoMap);
 
-    CommandParameterInfo operationalCredentialscertificateChainRequestcertificateTypeCommandParameterInfo = new CommandParameterInfo("certificateType", Integer.class, Integer.class);
-    operationalCredentialscertificateChainRequestCommandParams.put("certificateType",operationalCredentialscertificateChainRequestcertificateTypeCommandParameterInfo);
-    InteractionInfo operationalCredentialscertificateChainRequestInteractionInfo = new InteractionInfo(
+    Map<String, InteractionInfo> laundryDryerControlsClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    commandMap.put("laundryDryerControls", laundryDryerControlsClusterInteractionInfoMap);
+
+    Map<String, InteractionInfo> modeSelectClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    Map<String, CommandParameterInfo> modeSelectchangeToModeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo modeSelectchangeToModenewModeCommandParameterInfo = new CommandParameterInfo("newMode", Integer.class, Integer.class);
+    modeSelectchangeToModeCommandParams.put("newMode",modeSelectchangeToModenewModeCommandParameterInfo);
+    InteractionInfo modeSelectchangeToModeInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.OperationalCredentialsCluster) cluster)
-          .certificateChainRequest((ChipClusters.OperationalCredentialsCluster.CertificateChainResponseCallback) callback
+        ((ChipClusters.ModeSelectCluster) cluster)
+        .changeToMode((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("newMode")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        modeSelectchangeToModeCommandParams
+    );
+    modeSelectClusterInteractionInfoMap.put("changeToMode", modeSelectchangeToModeInteractionInfo);
+
+    commandMap.put("modeSelect", modeSelectClusterInteractionInfoMap);
+
+    Map<String, InteractionInfo> laundryWasherModeClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    Map<String, CommandParameterInfo> laundryWasherModechangeToModeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo laundryWasherModechangeToModenewModeCommandParameterInfo = new CommandParameterInfo("newMode", Integer.class, Integer.class);
+    laundryWasherModechangeToModeCommandParams.put("newMode",laundryWasherModechangeToModenewModeCommandParameterInfo);
+    InteractionInfo laundryWasherModechangeToModeInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.LaundryWasherModeCluster) cluster)
+          .changeToMode((ChipClusters.LaundryWasherModeCluster.ChangeToModeResponseCallback) callback
            , (Integer)
-             commandArguments.get("certificateType")
+             commandArguments.get("newMode")
 
             );
         },
-        () -> new DelegatedOperationalCredentialsClusterCertificateChainResponseCallback(),
-        operationalCredentialscertificateChainRequestCommandParams
+        () -> new DelegatedLaundryWasherModeClusterChangeToModeResponseCallback(),
+        laundryWasherModechangeToModeCommandParams
       );
-    operationalCredentialsClusterInteractionInfoMap.put("certificateChainRequest", operationalCredentialscertificateChainRequestInteractionInfo);
+    laundryWasherModeClusterInteractionInfoMap.put("changeToMode", laundryWasherModechangeToModeInteractionInfo);
 
-    Map<String, CommandParameterInfo> operationalCredentialsCSRRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    commandMap.put("laundryWasherMode", laundryWasherModeClusterInteractionInfoMap);
 
-    CommandParameterInfo operationalCredentialsCSRRequestCSRNonceCommandParameterInfo = new CommandParameterInfo("CSRNonce", byte[].class, byte[].class);
-    operationalCredentialsCSRRequestCommandParams.put("CSRNonce",operationalCredentialsCSRRequestCSRNonceCommandParameterInfo);
+    Map<String, InteractionInfo> refrigeratorAndTemperatureControlledCabinetModeClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    CommandParameterInfo operationalCredentialsCSRRequestisForUpdateNOCCommandParameterInfo = new CommandParameterInfo("isForUpdateNOC", Optional.class, Boolean.class);
-    operationalCredentialsCSRRequestCommandParams.put("isForUpdateNOC",operationalCredentialsCSRRequestisForUpdateNOCCommandParameterInfo);
-    InteractionInfo operationalCredentialsCSRRequestInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.OperationalCredentialsCluster) cluster)
-          .CSRRequest((ChipClusters.OperationalCredentialsCluster.CSRResponseCallback) callback
-           , (byte[])
-             commandArguments.get("CSRNonce")
+    Map<String, CommandParameterInfo> refrigeratorAndTemperatureControlledCabinetModechangeToModeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-           , (Optional<Boolean>)
-             commandArguments.get("isForUpdateNOC")
+    CommandParameterInfo refrigeratorAndTemperatureControlledCabinetModechangeToModenewModeCommandParameterInfo = new CommandParameterInfo("newMode", Integer.class, Integer.class);
+    refrigeratorAndTemperatureControlledCabinetModechangeToModeCommandParams.put("newMode",refrigeratorAndTemperatureControlledCabinetModechangeToModenewModeCommandParameterInfo);
+    InteractionInfo refrigeratorAndTemperatureControlledCabinetModechangeToModeInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.RefrigeratorAndTemperatureControlledCabinetModeCluster) cluster)
+          .changeToMode((ChipClusters.RefrigeratorAndTemperatureControlledCabinetModeCluster.ChangeToModeResponseCallback) callback
+           , (Integer)
+             commandArguments.get("newMode")
 
             );
         },
-        () -> new DelegatedOperationalCredentialsClusterCSRResponseCallback(),
-        operationalCredentialsCSRRequestCommandParams
+        () -> new DelegatedRefrigeratorAndTemperatureControlledCabinetModeClusterChangeToModeResponseCallback(),
+        refrigeratorAndTemperatureControlledCabinetModechangeToModeCommandParams
       );
-    operationalCredentialsClusterInteractionInfoMap.put("CSRRequest", operationalCredentialsCSRRequestInteractionInfo);
+    refrigeratorAndTemperatureControlledCabinetModeClusterInteractionInfoMap.put("changeToMode", refrigeratorAndTemperatureControlledCabinetModechangeToModeInteractionInfo);
 
-    Map<String, CommandParameterInfo> operationalCredentialsaddNOCCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    commandMap.put("refrigeratorAndTemperatureControlledCabinetMode", refrigeratorAndTemperatureControlledCabinetModeClusterInteractionInfoMap);
 
-    CommandParameterInfo operationalCredentialsaddNOCNOCValueCommandParameterInfo = new CommandParameterInfo("NOCValue", byte[].class, byte[].class);
-    operationalCredentialsaddNOCCommandParams.put("NOCValue",operationalCredentialsaddNOCNOCValueCommandParameterInfo);
+    Map<String, InteractionInfo> laundryWasherControlsClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    CommandParameterInfo operationalCredentialsaddNOCICACValueCommandParameterInfo = new CommandParameterInfo("ICACValue", Optional.class, byte[].class);
-    operationalCredentialsaddNOCCommandParams.put("ICACValue",operationalCredentialsaddNOCICACValueCommandParameterInfo);
+    commandMap.put("laundryWasherControls", laundryWasherControlsClusterInteractionInfoMap);
 
-    CommandParameterInfo operationalCredentialsaddNOCIPKValueCommandParameterInfo = new CommandParameterInfo("IPKValue", byte[].class, byte[].class);
-    operationalCredentialsaddNOCCommandParams.put("IPKValue",operationalCredentialsaddNOCIPKValueCommandParameterInfo);
+    Map<String, InteractionInfo> rvcRunModeClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    CommandParameterInfo operationalCredentialsaddNOCcaseAdminSubjectCommandParameterInfo = new CommandParameterInfo("caseAdminSubject", Long.class, Long.class);
-    operationalCredentialsaddNOCCommandParams.put("caseAdminSubject",operationalCredentialsaddNOCcaseAdminSubjectCommandParameterInfo);
+    Map<String, CommandParameterInfo> rvcRunModechangeToModeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo operationalCredentialsaddNOCadminVendorIdCommandParameterInfo = new CommandParameterInfo("adminVendorId", Integer.class, Integer.class);
-    operationalCredentialsaddNOCCommandParams.put("adminVendorId",operationalCredentialsaddNOCadminVendorIdCommandParameterInfo);
-    InteractionInfo operationalCredentialsaddNOCInteractionInfo = new InteractionInfo(
+    CommandParameterInfo rvcRunModechangeToModenewModeCommandParameterInfo = new CommandParameterInfo("newMode", Integer.class, Integer.class);
+    rvcRunModechangeToModeCommandParams.put("newMode",rvcRunModechangeToModenewModeCommandParameterInfo);
+    InteractionInfo rvcRunModechangeToModeInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.OperationalCredentialsCluster) cluster)
-          .addNOC((ChipClusters.OperationalCredentialsCluster.NOCResponseCallback) callback
-           , (byte[])
-             commandArguments.get("NOCValue")
-
-           , (Optional<byte[]>)
-             commandArguments.get("ICACValue")
-
-           , (byte[])
-             commandArguments.get("IPKValue")
-
-           , (Long)
-             commandArguments.get("caseAdminSubject")
-
+        ((ChipClusters.RvcRunModeCluster) cluster)
+          .changeToMode((ChipClusters.RvcRunModeCluster.ChangeToModeResponseCallback) callback
            , (Integer)
-             commandArguments.get("adminVendorId")
+             commandArguments.get("newMode")
 
             );
         },
-        () -> new DelegatedOperationalCredentialsClusterNOCResponseCallback(),
-        operationalCredentialsaddNOCCommandParams
+        () -> new DelegatedRvcRunModeClusterChangeToModeResponseCallback(),
+        rvcRunModechangeToModeCommandParams
       );
-    operationalCredentialsClusterInteractionInfoMap.put("addNOC", operationalCredentialsaddNOCInteractionInfo);
+    rvcRunModeClusterInteractionInfoMap.put("changeToMode", rvcRunModechangeToModeInteractionInfo);
 
-    Map<String, CommandParameterInfo> operationalCredentialsupdateNOCCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    commandMap.put("rvcRunMode", rvcRunModeClusterInteractionInfoMap);
 
-    CommandParameterInfo operationalCredentialsupdateNOCNOCValueCommandParameterInfo = new CommandParameterInfo("NOCValue", byte[].class, byte[].class);
-    operationalCredentialsupdateNOCCommandParams.put("NOCValue",operationalCredentialsupdateNOCNOCValueCommandParameterInfo);
+    Map<String, InteractionInfo> rvcCleanModeClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    CommandParameterInfo operationalCredentialsupdateNOCICACValueCommandParameterInfo = new CommandParameterInfo("ICACValue", Optional.class, byte[].class);
-    operationalCredentialsupdateNOCCommandParams.put("ICACValue",operationalCredentialsupdateNOCICACValueCommandParameterInfo);
-    InteractionInfo operationalCredentialsupdateNOCInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.OperationalCredentialsCluster) cluster)
-          .updateNOC((ChipClusters.OperationalCredentialsCluster.NOCResponseCallback) callback
-           , (byte[])
-             commandArguments.get("NOCValue")
+    Map<String, CommandParameterInfo> rvcCleanModechangeToModeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-           , (Optional<byte[]>)
-             commandArguments.get("ICACValue")
+    CommandParameterInfo rvcCleanModechangeToModenewModeCommandParameterInfo = new CommandParameterInfo("newMode", Integer.class, Integer.class);
+    rvcCleanModechangeToModeCommandParams.put("newMode",rvcCleanModechangeToModenewModeCommandParameterInfo);
+    InteractionInfo rvcCleanModechangeToModeInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.RvcCleanModeCluster) cluster)
+          .changeToMode((ChipClusters.RvcCleanModeCluster.ChangeToModeResponseCallback) callback
+           , (Integer)
+             commandArguments.get("newMode")
 
             );
         },
-        () -> new DelegatedOperationalCredentialsClusterNOCResponseCallback(),
-        operationalCredentialsupdateNOCCommandParams
+        () -> new DelegatedRvcCleanModeClusterChangeToModeResponseCallback(),
+        rvcCleanModechangeToModeCommandParams
       );
-    operationalCredentialsClusterInteractionInfoMap.put("updateNOC", operationalCredentialsupdateNOCInteractionInfo);
+    rvcCleanModeClusterInteractionInfoMap.put("changeToMode", rvcCleanModechangeToModeInteractionInfo);
 
-    Map<String, CommandParameterInfo> operationalCredentialsupdateFabricLabelCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    commandMap.put("rvcCleanMode", rvcCleanModeClusterInteractionInfoMap);
 
-    CommandParameterInfo operationalCredentialsupdateFabricLabellabelCommandParameterInfo = new CommandParameterInfo("label", String.class, String.class);
-    operationalCredentialsupdateFabricLabelCommandParams.put("label",operationalCredentialsupdateFabricLabellabelCommandParameterInfo);
-    InteractionInfo operationalCredentialsupdateFabricLabelInteractionInfo = new InteractionInfo(
+    Map<String, InteractionInfo> temperatureControlClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    Map<String, CommandParameterInfo> temperatureControlsetTemperatureCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo temperatureControlsetTemperaturetargetTemperatureCommandParameterInfo = new CommandParameterInfo("targetTemperature", Optional.class, Integer.class);
+    temperatureControlsetTemperatureCommandParams.put("targetTemperature",temperatureControlsetTemperaturetargetTemperatureCommandParameterInfo);
+
+    CommandParameterInfo temperatureControlsetTemperaturetargetTemperatureLevelCommandParameterInfo = new CommandParameterInfo("targetTemperatureLevel", Optional.class, Integer.class);
+    temperatureControlsetTemperatureCommandParams.put("targetTemperatureLevel",temperatureControlsetTemperaturetargetTemperatureLevelCommandParameterInfo);
+    InteractionInfo temperatureControlsetTemperatureInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.OperationalCredentialsCluster) cluster)
-          .updateFabricLabel((ChipClusters.OperationalCredentialsCluster.NOCResponseCallback) callback
-           , (String)
-             commandArguments.get("label")
+        ((ChipClusters.TemperatureControlCluster) cluster)
+        .setTemperature((DefaultClusterCallback) callback
+        , (Optional<Integer>)
+        commandArguments.get("targetTemperature")
+        , (Optional<Integer>)
+        commandArguments.get("targetTemperatureLevel")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        temperatureControlsetTemperatureCommandParams
+    );
+    temperatureControlClusterInteractionInfoMap.put("setTemperature", temperatureControlsetTemperatureInteractionInfo);
 
-            );
-        },
-        () -> new DelegatedOperationalCredentialsClusterNOCResponseCallback(),
-        operationalCredentialsupdateFabricLabelCommandParams
-      );
-    operationalCredentialsClusterInteractionInfoMap.put("updateFabricLabel", operationalCredentialsupdateFabricLabelInteractionInfo);
+    commandMap.put("temperatureControl", temperatureControlClusterInteractionInfoMap);
 
-    Map<String, CommandParameterInfo> operationalCredentialsremoveFabricCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, InteractionInfo> refrigeratorAlarmClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    CommandParameterInfo operationalCredentialsremoveFabricfabricIndexCommandParameterInfo = new CommandParameterInfo("fabricIndex", Integer.class, Integer.class);
-    operationalCredentialsremoveFabricCommandParams.put("fabricIndex",operationalCredentialsremoveFabricfabricIndexCommandParameterInfo);
-    InteractionInfo operationalCredentialsremoveFabricInteractionInfo = new InteractionInfo(
+    commandMap.put("refrigeratorAlarm", refrigeratorAlarmClusterInteractionInfoMap);
+
+    Map<String, InteractionInfo> dishwasherModeClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    Map<String, CommandParameterInfo> dishwasherModechangeToModeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo dishwasherModechangeToModenewModeCommandParameterInfo = new CommandParameterInfo("newMode", Integer.class, Integer.class);
+    dishwasherModechangeToModeCommandParams.put("newMode",dishwasherModechangeToModenewModeCommandParameterInfo);
+    InteractionInfo dishwasherModechangeToModeInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.OperationalCredentialsCluster) cluster)
-          .removeFabric((ChipClusters.OperationalCredentialsCluster.NOCResponseCallback) callback
+        ((ChipClusters.DishwasherModeCluster) cluster)
+          .changeToMode((ChipClusters.DishwasherModeCluster.ChangeToModeResponseCallback) callback
            , (Integer)
-             commandArguments.get("fabricIndex")
+             commandArguments.get("newMode")
 
             );
         },
-        () -> new DelegatedOperationalCredentialsClusterNOCResponseCallback(),
-        operationalCredentialsremoveFabricCommandParams
+        () -> new DelegatedDishwasherModeClusterChangeToModeResponseCallback(),
+        dishwasherModechangeToModeCommandParams
       );
-    operationalCredentialsClusterInteractionInfoMap.put("removeFabric", operationalCredentialsremoveFabricInteractionInfo);
+    dishwasherModeClusterInteractionInfoMap.put("changeToMode", dishwasherModechangeToModeInteractionInfo);
 
-    Map<String, CommandParameterInfo> operationalCredentialsaddTrustedRootCertificateCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    commandMap.put("dishwasherMode", dishwasherModeClusterInteractionInfoMap);
 
-    CommandParameterInfo operationalCredentialsaddTrustedRootCertificaterootCACertificateCommandParameterInfo = new CommandParameterInfo("rootCACertificate", byte[].class, byte[].class);
-    operationalCredentialsaddTrustedRootCertificateCommandParams.put("rootCACertificate",operationalCredentialsaddTrustedRootCertificaterootCACertificateCommandParameterInfo);
-    InteractionInfo operationalCredentialsaddTrustedRootCertificateInteractionInfo = new InteractionInfo(
+    Map<String, InteractionInfo> airQualityClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    commandMap.put("airQuality", airQualityClusterInteractionInfoMap);
+
+    Map<String, InteractionInfo> smokeCoAlarmClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    Map<String, CommandParameterInfo> smokeCoAlarmselfTestRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo smokeCoAlarmselfTestRequestInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.OperationalCredentialsCluster) cluster)
-        .addTrustedRootCertificate((DefaultClusterCallback) callback
-        , (byte[])
-        commandArguments.get("rootCACertificate")
+        ((ChipClusters.SmokeCoAlarmCluster) cluster)
+        .selfTestRequest((DefaultClusterCallback) callback
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        operationalCredentialsaddTrustedRootCertificateCommandParams
+        smokeCoAlarmselfTestRequestCommandParams
     );
-    operationalCredentialsClusterInteractionInfoMap.put("addTrustedRootCertificate", operationalCredentialsaddTrustedRootCertificateInteractionInfo);
+    smokeCoAlarmClusterInteractionInfoMap.put("selfTestRequest", smokeCoAlarmselfTestRequestInteractionInfo);
 
-    commandMap.put("operationalCredentials", operationalCredentialsClusterInteractionInfoMap);
+    commandMap.put("smokeCoAlarm", smokeCoAlarmClusterInteractionInfoMap);
 
-    Map<String, InteractionInfo> groupKeyManagementClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, InteractionInfo> dishwasherAlarmClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    Map<String, CommandParameterInfo> groupKeyManagementkeySetWriteCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> dishwasherAlarmresetCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    InteractionInfo groupKeyManagementkeySetWriteInteractionInfo = new InteractionInfo(
+    CommandParameterInfo dishwasherAlarmresetalarmsCommandParameterInfo = new CommandParameterInfo("alarms", Long.class, Long.class);
+    dishwasherAlarmresetCommandParams.put("alarms",dishwasherAlarmresetalarmsCommandParameterInfo);
+    InteractionInfo dishwasherAlarmresetInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.GroupKeyManagementCluster) cluster)
-        .keySetWrite((DefaultClusterCallback) callback
-        , (ChipStructs.GroupKeyManagementClusterGroupKeySetStruct)
-        commandArguments.get("groupKeySet")
+        ((ChipClusters.DishwasherAlarmCluster) cluster)
+        .reset((DefaultClusterCallback) callback
+        , (Long)
+        commandArguments.get("alarms")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        groupKeyManagementkeySetWriteCommandParams
+        dishwasherAlarmresetCommandParams
     );
-    groupKeyManagementClusterInteractionInfoMap.put("keySetWrite", groupKeyManagementkeySetWriteInteractionInfo);
-
-    Map<String, CommandParameterInfo> groupKeyManagementkeySetReadCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-
-    CommandParameterInfo groupKeyManagementkeySetReadgroupKeySetIDCommandParameterInfo = new CommandParameterInfo("groupKeySetID", Integer.class, Integer.class);
-    groupKeyManagementkeySetReadCommandParams.put("groupKeySetID",groupKeyManagementkeySetReadgroupKeySetIDCommandParameterInfo);
-    InteractionInfo groupKeyManagementkeySetReadInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.GroupKeyManagementCluster) cluster)
-          .keySetRead((ChipClusters.GroupKeyManagementCluster.KeySetReadResponseCallback) callback
-           , (Integer)
-             commandArguments.get("groupKeySetID")
-
-            );
-        },
-        () -> new DelegatedGroupKeyManagementClusterKeySetReadResponseCallback(),
-        groupKeyManagementkeySetReadCommandParams
-      );
-    groupKeyManagementClusterInteractionInfoMap.put("keySetRead", groupKeyManagementkeySetReadInteractionInfo);
+    dishwasherAlarmClusterInteractionInfoMap.put("reset", dishwasherAlarmresetInteractionInfo);
 
-    Map<String, CommandParameterInfo> groupKeyManagementkeySetRemoveCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> dishwasherAlarmmodifyEnabledAlarmsCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo groupKeyManagementkeySetRemovegroupKeySetIDCommandParameterInfo = new CommandParameterInfo("groupKeySetID", Integer.class, Integer.class);
-    groupKeyManagementkeySetRemoveCommandParams.put("groupKeySetID",groupKeyManagementkeySetRemovegroupKeySetIDCommandParameterInfo);
-    InteractionInfo groupKeyManagementkeySetRemoveInteractionInfo = new InteractionInfo(
+    CommandParameterInfo dishwasherAlarmmodifyEnabledAlarmsmaskCommandParameterInfo = new CommandParameterInfo("mask", Long.class, Long.class);
+    dishwasherAlarmmodifyEnabledAlarmsCommandParams.put("mask",dishwasherAlarmmodifyEnabledAlarmsmaskCommandParameterInfo);
+    InteractionInfo dishwasherAlarmmodifyEnabledAlarmsInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.GroupKeyManagementCluster) cluster)
-        .keySetRemove((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("groupKeySetID")
+        ((ChipClusters.DishwasherAlarmCluster) cluster)
+        .modifyEnabledAlarms((DefaultClusterCallback) callback
+        , (Long)
+        commandArguments.get("mask")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        groupKeyManagementkeySetRemoveCommandParams
+        dishwasherAlarmmodifyEnabledAlarmsCommandParams
     );
-    groupKeyManagementClusterInteractionInfoMap.put("keySetRemove", groupKeyManagementkeySetRemoveInteractionInfo);
-
-    Map<String, CommandParameterInfo> groupKeyManagementkeySetReadAllIndicesCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo groupKeyManagementkeySetReadAllIndicesInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.GroupKeyManagementCluster) cluster)
-          .keySetReadAllIndices((ChipClusters.GroupKeyManagementCluster.KeySetReadAllIndicesResponseCallback) callback
-            );
-        },
-        () -> new DelegatedGroupKeyManagementClusterKeySetReadAllIndicesResponseCallback(),
-        groupKeyManagementkeySetReadAllIndicesCommandParams
-      );
-    groupKeyManagementClusterInteractionInfoMap.put("keySetReadAllIndices", groupKeyManagementkeySetReadAllIndicesInteractionInfo);
-
-    commandMap.put("groupKeyManagement", groupKeyManagementClusterInteractionInfoMap);
-
-    Map<String, InteractionInfo> fixedLabelClusterInteractionInfoMap = new LinkedHashMap<>();
-
-    commandMap.put("fixedLabel", fixedLabelClusterInteractionInfoMap);
-
-    Map<String, InteractionInfo> userLabelClusterInteractionInfoMap = new LinkedHashMap<>();
-
-    commandMap.put("userLabel", userLabelClusterInteractionInfoMap);
+    dishwasherAlarmClusterInteractionInfoMap.put("modifyEnabledAlarms", dishwasherAlarmmodifyEnabledAlarmsInteractionInfo);
 
-    Map<String, InteractionInfo> proxyConfigurationClusterInteractionInfoMap = new LinkedHashMap<>();
+    commandMap.put("dishwasherAlarm", dishwasherAlarmClusterInteractionInfoMap);
 
-    commandMap.put("proxyConfiguration", proxyConfigurationClusterInteractionInfoMap);
+    Map<String, InteractionInfo> microwaveOvenModeClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    Map<String, InteractionInfo> proxyDiscoveryClusterInteractionInfoMap = new LinkedHashMap<>();
+    commandMap.put("microwaveOvenMode", microwaveOvenModeClusterInteractionInfoMap);
 
-    commandMap.put("proxyDiscovery", proxyDiscoveryClusterInteractionInfoMap);
+    Map<String, InteractionInfo> microwaveOvenControlClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    Map<String, InteractionInfo> proxyValidClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, CommandParameterInfo> microwaveOvenControlsetCookingParametersCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    commandMap.put("proxyValid", proxyValidClusterInteractionInfoMap);
+    CommandParameterInfo microwaveOvenControlsetCookingParameterscookModeCommandParameterInfo = new CommandParameterInfo("cookMode", Optional.class, Integer.class);
+    microwaveOvenControlsetCookingParametersCommandParams.put("cookMode",microwaveOvenControlsetCookingParameterscookModeCommandParameterInfo);
 
-    Map<String, InteractionInfo> booleanStateClusterInteractionInfoMap = new LinkedHashMap<>();
+    CommandParameterInfo microwaveOvenControlsetCookingParameterscookTimeCommandParameterInfo = new CommandParameterInfo("cookTime", Optional.class, Long.class);
+    microwaveOvenControlsetCookingParametersCommandParams.put("cookTime",microwaveOvenControlsetCookingParameterscookTimeCommandParameterInfo);
 
-    commandMap.put("booleanState", booleanStateClusterInteractionInfoMap);
+    CommandParameterInfo microwaveOvenControlsetCookingParameterspowerSettingCommandParameterInfo = new CommandParameterInfo("powerSetting", Optional.class, Integer.class);
+    microwaveOvenControlsetCookingParametersCommandParams.put("powerSetting",microwaveOvenControlsetCookingParameterspowerSettingCommandParameterInfo);
 
-    Map<String, InteractionInfo> icdManagementClusterInteractionInfoMap = new LinkedHashMap<>();
+    CommandParameterInfo microwaveOvenControlsetCookingParameterswattSettingIndexCommandParameterInfo = new CommandParameterInfo("wattSettingIndex", Optional.class, Integer.class);
+    microwaveOvenControlsetCookingParametersCommandParams.put("wattSettingIndex",microwaveOvenControlsetCookingParameterswattSettingIndexCommandParameterInfo);
 
-    Map<String, CommandParameterInfo> icdManagementregisterClientCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo microwaveOvenControlsetCookingParametersstartAfterSettingCommandParameterInfo = new CommandParameterInfo("startAfterSetting", Optional.class, Boolean.class);
+    microwaveOvenControlsetCookingParametersCommandParams.put("startAfterSetting",microwaveOvenControlsetCookingParametersstartAfterSettingCommandParameterInfo);
+    InteractionInfo microwaveOvenControlsetCookingParametersInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.MicrowaveOvenControlCluster) cluster)
+        .setCookingParameters((DefaultClusterCallback) callback
+        , (Optional<Integer>)
+        commandArguments.get("cookMode")
+        , (Optional<Long>)
+        commandArguments.get("cookTime")
+        , (Optional<Integer>)
+        commandArguments.get("powerSetting")
+        , (Optional<Integer>)
+        commandArguments.get("wattSettingIndex")
+        , (Optional<Boolean>)
+        commandArguments.get("startAfterSetting")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        microwaveOvenControlsetCookingParametersCommandParams
+    );
+    microwaveOvenControlClusterInteractionInfoMap.put("setCookingParameters", microwaveOvenControlsetCookingParametersInteractionInfo);
 
-    CommandParameterInfo icdManagementregisterClientcheckInNodeIDCommandParameterInfo = new CommandParameterInfo("checkInNodeID", Long.class, Long.class);
-    icdManagementregisterClientCommandParams.put("checkInNodeID",icdManagementregisterClientcheckInNodeIDCommandParameterInfo);
+    Map<String, CommandParameterInfo> microwaveOvenControladdMoreTimeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo icdManagementregisterClientmonitoredSubjectCommandParameterInfo = new CommandParameterInfo("monitoredSubject", Long.class, Long.class);
-    icdManagementregisterClientCommandParams.put("monitoredSubject",icdManagementregisterClientmonitoredSubjectCommandParameterInfo);
+    CommandParameterInfo microwaveOvenControladdMoreTimetimeToAddCommandParameterInfo = new CommandParameterInfo("timeToAdd", Long.class, Long.class);
+    microwaveOvenControladdMoreTimeCommandParams.put("timeToAdd",microwaveOvenControladdMoreTimetimeToAddCommandParameterInfo);
+    InteractionInfo microwaveOvenControladdMoreTimeInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.MicrowaveOvenControlCluster) cluster)
+        .addMoreTime((DefaultClusterCallback) callback
+        , (Long)
+        commandArguments.get("timeToAdd")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        microwaveOvenControladdMoreTimeCommandParams
+    );
+    microwaveOvenControlClusterInteractionInfoMap.put("addMoreTime", microwaveOvenControladdMoreTimeInteractionInfo);
 
-    CommandParameterInfo icdManagementregisterClientkeyCommandParameterInfo = new CommandParameterInfo("key", byte[].class, byte[].class);
-    icdManagementregisterClientCommandParams.put("key",icdManagementregisterClientkeyCommandParameterInfo);
+    commandMap.put("microwaveOvenControl", microwaveOvenControlClusterInteractionInfoMap);
 
-    CommandParameterInfo icdManagementregisterClientverificationKeyCommandParameterInfo = new CommandParameterInfo("verificationKey", Optional.class, byte[].class);
-    icdManagementregisterClientCommandParams.put("verificationKey",icdManagementregisterClientverificationKeyCommandParameterInfo);
+    Map<String, InteractionInfo> operationalStateClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    CommandParameterInfo icdManagementregisterClientclientTypeCommandParameterInfo = new CommandParameterInfo("clientType", Integer.class, Integer.class);
-    icdManagementregisterClientCommandParams.put("clientType",icdManagementregisterClientclientTypeCommandParameterInfo);
-    InteractionInfo icdManagementregisterClientInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> operationalStatepauseCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo operationalStatepauseInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.IcdManagementCluster) cluster)
-          .registerClient((ChipClusters.IcdManagementCluster.RegisterClientResponseCallback) callback
-           , (Long)
-             commandArguments.get("checkInNodeID")
-
-           , (Long)
-             commandArguments.get("monitoredSubject")
-
-           , (byte[])
-             commandArguments.get("key")
+        ((ChipClusters.OperationalStateCluster) cluster)
+          .pause((ChipClusters.OperationalStateCluster.OperationalCommandResponseCallback) callback
+            );
+        },
+        () -> new DelegatedOperationalStateClusterOperationalCommandResponseCallback(),
+        operationalStatepauseCommandParams
+      );
+    operationalStateClusterInteractionInfoMap.put("pause", operationalStatepauseInteractionInfo);
 
-           , (Optional<byte[]>)
-             commandArguments.get("verificationKey")
+    Map<String, CommandParameterInfo> operationalStatestopCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo operationalStatestopInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.OperationalStateCluster) cluster)
+          .stop((ChipClusters.OperationalStateCluster.OperationalCommandResponseCallback) callback
+            );
+        },
+        () -> new DelegatedOperationalStateClusterOperationalCommandResponseCallback(),
+        operationalStatestopCommandParams
+      );
+    operationalStateClusterInteractionInfoMap.put("stop", operationalStatestopInteractionInfo);
 
-           , (Integer)
-             commandArguments.get("clientType")
+    Map<String, CommandParameterInfo> operationalStatestartCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo operationalStatestartInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.OperationalStateCluster) cluster)
+          .start((ChipClusters.OperationalStateCluster.OperationalCommandResponseCallback) callback
+            );
+        },
+        () -> new DelegatedOperationalStateClusterOperationalCommandResponseCallback(),
+        operationalStatestartCommandParams
+      );
+    operationalStateClusterInteractionInfoMap.put("start", operationalStatestartInteractionInfo);
 
+    Map<String, CommandParameterInfo> operationalStateresumeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo operationalStateresumeInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.OperationalStateCluster) cluster)
+          .resume((ChipClusters.OperationalStateCluster.OperationalCommandResponseCallback) callback
             );
         },
-        () -> new DelegatedIcdManagementClusterRegisterClientResponseCallback(),
-        icdManagementregisterClientCommandParams
+        () -> new DelegatedOperationalStateClusterOperationalCommandResponseCallback(),
+        operationalStateresumeCommandParams
       );
-    icdManagementClusterInteractionInfoMap.put("registerClient", icdManagementregisterClientInteractionInfo);
+    operationalStateClusterInteractionInfoMap.put("resume", operationalStateresumeInteractionInfo);
 
-    Map<String, CommandParameterInfo> icdManagementunregisterClientCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    commandMap.put("operationalState", operationalStateClusterInteractionInfoMap);
 
-    CommandParameterInfo icdManagementunregisterClientcheckInNodeIDCommandParameterInfo = new CommandParameterInfo("checkInNodeID", Long.class, Long.class);
-    icdManagementunregisterClientCommandParams.put("checkInNodeID",icdManagementunregisterClientcheckInNodeIDCommandParameterInfo);
+    Map<String, InteractionInfo> rvcOperationalStateClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    CommandParameterInfo icdManagementunregisterClientverificationKeyCommandParameterInfo = new CommandParameterInfo("verificationKey", Optional.class, byte[].class);
-    icdManagementunregisterClientCommandParams.put("verificationKey",icdManagementunregisterClientverificationKeyCommandParameterInfo);
-    InteractionInfo icdManagementunregisterClientInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> rvcOperationalStatepauseCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo rvcOperationalStatepauseInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.IcdManagementCluster) cluster)
-        .unregisterClient((DefaultClusterCallback) callback
-        , (Long)
-        commandArguments.get("checkInNodeID")
-        , (Optional<byte[]>)
-        commandArguments.get("verificationKey")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        icdManagementunregisterClientCommandParams
-    );
-    icdManagementClusterInteractionInfoMap.put("unregisterClient", icdManagementunregisterClientInteractionInfo);
-
-    Map<String, CommandParameterInfo> icdManagementstayActiveRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        ((ChipClusters.RvcOperationalStateCluster) cluster)
+          .pause((ChipClusters.RvcOperationalStateCluster.OperationalCommandResponseCallback) callback
+            );
+        },
+        () -> new DelegatedRvcOperationalStateClusterOperationalCommandResponseCallback(),
+        rvcOperationalStatepauseCommandParams
+      );
+    rvcOperationalStateClusterInteractionInfoMap.put("pause", rvcOperationalStatepauseInteractionInfo);
 
-    CommandParameterInfo icdManagementstayActiveRequeststayActiveDurationCommandParameterInfo = new CommandParameterInfo("stayActiveDuration", Long.class, Long.class);
-    icdManagementstayActiveRequestCommandParams.put("stayActiveDuration",icdManagementstayActiveRequeststayActiveDurationCommandParameterInfo);
-    InteractionInfo icdManagementstayActiveRequestInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> rvcOperationalStateresumeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo rvcOperationalStateresumeInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.IcdManagementCluster) cluster)
-          .stayActiveRequest((ChipClusters.IcdManagementCluster.StayActiveResponseCallback) callback
-           , (Long)
-             commandArguments.get("stayActiveDuration")
+        ((ChipClusters.RvcOperationalStateCluster) cluster)
+          .resume((ChipClusters.RvcOperationalStateCluster.OperationalCommandResponseCallback) callback
+            );
+        },
+        () -> new DelegatedRvcOperationalStateClusterOperationalCommandResponseCallback(),
+        rvcOperationalStateresumeCommandParams
+      );
+    rvcOperationalStateClusterInteractionInfoMap.put("resume", rvcOperationalStateresumeInteractionInfo);
 
+    Map<String, CommandParameterInfo> rvcOperationalStategoHomeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo rvcOperationalStategoHomeInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.RvcOperationalStateCluster) cluster)
+          .goHome((ChipClusters.RvcOperationalStateCluster.OperationalCommandResponseCallback) callback
             );
         },
-        () -> new DelegatedIcdManagementClusterStayActiveResponseCallback(),
-        icdManagementstayActiveRequestCommandParams
+        () -> new DelegatedRvcOperationalStateClusterOperationalCommandResponseCallback(),
+        rvcOperationalStategoHomeCommandParams
       );
-    icdManagementClusterInteractionInfoMap.put("stayActiveRequest", icdManagementstayActiveRequestInteractionInfo);
+    rvcOperationalStateClusterInteractionInfoMap.put("goHome", rvcOperationalStategoHomeInteractionInfo);
 
-    commandMap.put("icdManagement", icdManagementClusterInteractionInfoMap);
+    commandMap.put("rvcOperationalState", rvcOperationalStateClusterInteractionInfoMap);
 
-    Map<String, InteractionInfo> timerClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, InteractionInfo> scenesManagementClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    Map<String, CommandParameterInfo> timersetTimerCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> scenesManagementaddSceneCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo timersetTimernewTimeCommandParameterInfo = new CommandParameterInfo("newTime", Long.class, Long.class);
-    timersetTimerCommandParams.put("newTime",timersetTimernewTimeCommandParameterInfo);
-    InteractionInfo timersetTimerInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.TimerCluster) cluster)
-        .setTimer((DefaultClusterCallback) callback
-        , (Long)
-        commandArguments.get("newTime")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        timersetTimerCommandParams
-    );
-    timerClusterInteractionInfoMap.put("setTimer", timersetTimerInteractionInfo);
+    CommandParameterInfo scenesManagementaddScenegroupIDCommandParameterInfo = new CommandParameterInfo("groupID", Integer.class, Integer.class);
+    scenesManagementaddSceneCommandParams.put("groupID",scenesManagementaddScenegroupIDCommandParameterInfo);
 
-    Map<String, CommandParameterInfo> timerresetTimerCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo timerresetTimerInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.TimerCluster) cluster)
-        .resetTimer((DefaultClusterCallback) callback
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        timerresetTimerCommandParams
-    );
-    timerClusterInteractionInfoMap.put("resetTimer", timerresetTimerInteractionInfo);
+    CommandParameterInfo scenesManagementaddScenesceneIDCommandParameterInfo = new CommandParameterInfo("sceneID", Integer.class, Integer.class);
+    scenesManagementaddSceneCommandParams.put("sceneID",scenesManagementaddScenesceneIDCommandParameterInfo);
+
+    CommandParameterInfo scenesManagementaddScenetransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Long.class, Long.class);
+    scenesManagementaddSceneCommandParams.put("transitionTime",scenesManagementaddScenetransitionTimeCommandParameterInfo);
 
-    Map<String, CommandParameterInfo> timeraddTimeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo scenesManagementaddScenesceneNameCommandParameterInfo = new CommandParameterInfo("sceneName", String.class, String.class);
+    scenesManagementaddSceneCommandParams.put("sceneName",scenesManagementaddScenesceneNameCommandParameterInfo);
 
-    CommandParameterInfo timeraddTimeadditionalTimeCommandParameterInfo = new CommandParameterInfo("additionalTime", Long.class, Long.class);
-    timeraddTimeCommandParams.put("additionalTime",timeraddTimeadditionalTimeCommandParameterInfo);
-    InteractionInfo timeraddTimeInteractionInfo = new InteractionInfo(
+    InteractionInfo scenesManagementaddSceneInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.TimerCluster) cluster)
-        .addTime((DefaultClusterCallback) callback
-        , (Long)
-        commandArguments.get("additionalTime")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        timeraddTimeCommandParams
-    );
-    timerClusterInteractionInfoMap.put("addTime", timeraddTimeInteractionInfo);
+        ((ChipClusters.ScenesManagementCluster) cluster)
+          .addScene((ChipClusters.ScenesManagementCluster.AddSceneResponseCallback) callback
+           , (Integer)
+             commandArguments.get("groupID")
 
-    Map<String, CommandParameterInfo> timerreduceTimeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+           , (Integer)
+             commandArguments.get("sceneID")
 
-    CommandParameterInfo timerreduceTimetimeReductionCommandParameterInfo = new CommandParameterInfo("timeReduction", Long.class, Long.class);
-    timerreduceTimeCommandParams.put("timeReduction",timerreduceTimetimeReductionCommandParameterInfo);
-    InteractionInfo timerreduceTimeInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.TimerCluster) cluster)
-        .reduceTime((DefaultClusterCallback) callback
-        , (Long)
-        commandArguments.get("timeReduction")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        timerreduceTimeCommandParams
-    );
-    timerClusterInteractionInfoMap.put("reduceTime", timerreduceTimeInteractionInfo);
+           , (Long)
+             commandArguments.get("transitionTime")
 
-    commandMap.put("timer", timerClusterInteractionInfoMap);
+           , (String)
+             commandArguments.get("sceneName")
 
-    Map<String, InteractionInfo> ovenCavityOperationalStateClusterInteractionInfoMap = new LinkedHashMap<>();
+           , (ArrayList<ChipStructs.ScenesManagementClusterExtensionFieldSet>)
+             commandArguments.get("extensionFieldSets")
 
-    Map<String, CommandParameterInfo> ovenCavityOperationalStatepauseCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo ovenCavityOperationalStatepauseInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.OvenCavityOperationalStateCluster) cluster)
-          .pause((ChipClusters.OvenCavityOperationalStateCluster.OperationalCommandResponseCallback) callback
             );
         },
-        () -> new DelegatedOvenCavityOperationalStateClusterOperationalCommandResponseCallback(),
-        ovenCavityOperationalStatepauseCommandParams
+        () -> new DelegatedScenesManagementClusterAddSceneResponseCallback(),
+        scenesManagementaddSceneCommandParams
       );
-    ovenCavityOperationalStateClusterInteractionInfoMap.put("pause", ovenCavityOperationalStatepauseInteractionInfo);
+    scenesManagementClusterInteractionInfoMap.put("addScene", scenesManagementaddSceneInteractionInfo);
 
-    Map<String, CommandParameterInfo> ovenCavityOperationalStatestopCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo ovenCavityOperationalStatestopInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> scenesManagementviewSceneCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo scenesManagementviewScenegroupIDCommandParameterInfo = new CommandParameterInfo("groupID", Integer.class, Integer.class);
+    scenesManagementviewSceneCommandParams.put("groupID",scenesManagementviewScenegroupIDCommandParameterInfo);
+
+    CommandParameterInfo scenesManagementviewScenesceneIDCommandParameterInfo = new CommandParameterInfo("sceneID", Integer.class, Integer.class);
+    scenesManagementviewSceneCommandParams.put("sceneID",scenesManagementviewScenesceneIDCommandParameterInfo);
+    InteractionInfo scenesManagementviewSceneInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.OvenCavityOperationalStateCluster) cluster)
-          .stop((ChipClusters.OvenCavityOperationalStateCluster.OperationalCommandResponseCallback) callback
+        ((ChipClusters.ScenesManagementCluster) cluster)
+          .viewScene((ChipClusters.ScenesManagementCluster.ViewSceneResponseCallback) callback
+           , (Integer)
+             commandArguments.get("groupID")
+
+           , (Integer)
+             commandArguments.get("sceneID")
+
             );
         },
-        () -> new DelegatedOvenCavityOperationalStateClusterOperationalCommandResponseCallback(),
-        ovenCavityOperationalStatestopCommandParams
+        () -> new DelegatedScenesManagementClusterViewSceneResponseCallback(),
+        scenesManagementviewSceneCommandParams
       );
-    ovenCavityOperationalStateClusterInteractionInfoMap.put("stop", ovenCavityOperationalStatestopInteractionInfo);
+    scenesManagementClusterInteractionInfoMap.put("viewScene", scenesManagementviewSceneInteractionInfo);
 
-    Map<String, CommandParameterInfo> ovenCavityOperationalStatestartCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo ovenCavityOperationalStatestartInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> scenesManagementremoveSceneCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo scenesManagementremoveScenegroupIDCommandParameterInfo = new CommandParameterInfo("groupID", Integer.class, Integer.class);
+    scenesManagementremoveSceneCommandParams.put("groupID",scenesManagementremoveScenegroupIDCommandParameterInfo);
+
+    CommandParameterInfo scenesManagementremoveScenesceneIDCommandParameterInfo = new CommandParameterInfo("sceneID", Integer.class, Integer.class);
+    scenesManagementremoveSceneCommandParams.put("sceneID",scenesManagementremoveScenesceneIDCommandParameterInfo);
+    InteractionInfo scenesManagementremoveSceneInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.OvenCavityOperationalStateCluster) cluster)
-          .start((ChipClusters.OvenCavityOperationalStateCluster.OperationalCommandResponseCallback) callback
+        ((ChipClusters.ScenesManagementCluster) cluster)
+          .removeScene((ChipClusters.ScenesManagementCluster.RemoveSceneResponseCallback) callback
+           , (Integer)
+             commandArguments.get("groupID")
+
+           , (Integer)
+             commandArguments.get("sceneID")
+
             );
         },
-        () -> new DelegatedOvenCavityOperationalStateClusterOperationalCommandResponseCallback(),
-        ovenCavityOperationalStatestartCommandParams
+        () -> new DelegatedScenesManagementClusterRemoveSceneResponseCallback(),
+        scenesManagementremoveSceneCommandParams
       );
-    ovenCavityOperationalStateClusterInteractionInfoMap.put("start", ovenCavityOperationalStatestartInteractionInfo);
+    scenesManagementClusterInteractionInfoMap.put("removeScene", scenesManagementremoveSceneInteractionInfo);
 
-    Map<String, CommandParameterInfo> ovenCavityOperationalStateresumeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo ovenCavityOperationalStateresumeInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> scenesManagementremoveAllScenesCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo scenesManagementremoveAllScenesgroupIDCommandParameterInfo = new CommandParameterInfo("groupID", Integer.class, Integer.class);
+    scenesManagementremoveAllScenesCommandParams.put("groupID",scenesManagementremoveAllScenesgroupIDCommandParameterInfo);
+    InteractionInfo scenesManagementremoveAllScenesInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.OvenCavityOperationalStateCluster) cluster)
-          .resume((ChipClusters.OvenCavityOperationalStateCluster.OperationalCommandResponseCallback) callback
+        ((ChipClusters.ScenesManagementCluster) cluster)
+          .removeAllScenes((ChipClusters.ScenesManagementCluster.RemoveAllScenesResponseCallback) callback
+           , (Integer)
+             commandArguments.get("groupID")
+
             );
         },
-        () -> new DelegatedOvenCavityOperationalStateClusterOperationalCommandResponseCallback(),
-        ovenCavityOperationalStateresumeCommandParams
+        () -> new DelegatedScenesManagementClusterRemoveAllScenesResponseCallback(),
+        scenesManagementremoveAllScenesCommandParams
       );
-    ovenCavityOperationalStateClusterInteractionInfoMap.put("resume", ovenCavityOperationalStateresumeInteractionInfo);
-
-    commandMap.put("ovenCavityOperationalState", ovenCavityOperationalStateClusterInteractionInfoMap);
+    scenesManagementClusterInteractionInfoMap.put("removeAllScenes", scenesManagementremoveAllScenesInteractionInfo);
 
-    Map<String, InteractionInfo> ovenModeClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, CommandParameterInfo> scenesManagementstoreSceneCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, CommandParameterInfo> ovenModechangeToModeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo scenesManagementstoreScenegroupIDCommandParameterInfo = new CommandParameterInfo("groupID", Integer.class, Integer.class);
+    scenesManagementstoreSceneCommandParams.put("groupID",scenesManagementstoreScenegroupIDCommandParameterInfo);
 
-    CommandParameterInfo ovenModechangeToModenewModeCommandParameterInfo = new CommandParameterInfo("newMode", Integer.class, Integer.class);
-    ovenModechangeToModeCommandParams.put("newMode",ovenModechangeToModenewModeCommandParameterInfo);
-    InteractionInfo ovenModechangeToModeInteractionInfo = new InteractionInfo(
+    CommandParameterInfo scenesManagementstoreScenesceneIDCommandParameterInfo = new CommandParameterInfo("sceneID", Integer.class, Integer.class);
+    scenesManagementstoreSceneCommandParams.put("sceneID",scenesManagementstoreScenesceneIDCommandParameterInfo);
+    InteractionInfo scenesManagementstoreSceneInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.OvenModeCluster) cluster)
-          .changeToMode((ChipClusters.OvenModeCluster.ChangeToModeResponseCallback) callback
+        ((ChipClusters.ScenesManagementCluster) cluster)
+          .storeScene((ChipClusters.ScenesManagementCluster.StoreSceneResponseCallback) callback
            , (Integer)
-             commandArguments.get("newMode")
+             commandArguments.get("groupID")
+
+           , (Integer)
+             commandArguments.get("sceneID")
 
             );
         },
-        () -> new DelegatedOvenModeClusterChangeToModeResponseCallback(),
-        ovenModechangeToModeCommandParams
+        () -> new DelegatedScenesManagementClusterStoreSceneResponseCallback(),
+        scenesManagementstoreSceneCommandParams
       );
-    ovenModeClusterInteractionInfoMap.put("changeToMode", ovenModechangeToModeInteractionInfo);
-
-    commandMap.put("ovenMode", ovenModeClusterInteractionInfoMap);
-
-    Map<String, InteractionInfo> laundryDryerControlsClusterInteractionInfoMap = new LinkedHashMap<>();
+    scenesManagementClusterInteractionInfoMap.put("storeScene", scenesManagementstoreSceneInteractionInfo);
 
-    commandMap.put("laundryDryerControls", laundryDryerControlsClusterInteractionInfoMap);
+    Map<String, CommandParameterInfo> scenesManagementrecallSceneCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, InteractionInfo> modeSelectClusterInteractionInfoMap = new LinkedHashMap<>();
+    CommandParameterInfo scenesManagementrecallScenegroupIDCommandParameterInfo = new CommandParameterInfo("groupID", Integer.class, Integer.class);
+    scenesManagementrecallSceneCommandParams.put("groupID",scenesManagementrecallScenegroupIDCommandParameterInfo);
 
-    Map<String, CommandParameterInfo> modeSelectchangeToModeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo scenesManagementrecallScenesceneIDCommandParameterInfo = new CommandParameterInfo("sceneID", Integer.class, Integer.class);
+    scenesManagementrecallSceneCommandParams.put("sceneID",scenesManagementrecallScenesceneIDCommandParameterInfo);
 
-    CommandParameterInfo modeSelectchangeToModenewModeCommandParameterInfo = new CommandParameterInfo("newMode", Integer.class, Integer.class);
-    modeSelectchangeToModeCommandParams.put("newMode",modeSelectchangeToModenewModeCommandParameterInfo);
-    InteractionInfo modeSelectchangeToModeInteractionInfo = new InteractionInfo(
+    CommandParameterInfo scenesManagementrecallScenetransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Optional.class, Long.class);
+    scenesManagementrecallSceneCommandParams.put("transitionTime",scenesManagementrecallScenetransitionTimeCommandParameterInfo);
+    InteractionInfo scenesManagementrecallSceneInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ModeSelectCluster) cluster)
-        .changeToMode((DefaultClusterCallback) callback
+        ((ChipClusters.ScenesManagementCluster) cluster)
+        .recallScene((DefaultClusterCallback) callback
         , (Integer)
-        commandArguments.get("newMode")
+        commandArguments.get("groupID")
+        , (Integer)
+        commandArguments.get("sceneID")
+        , (Optional<Long>)
+        commandArguments.get("transitionTime")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        modeSelectchangeToModeCommandParams
+        scenesManagementrecallSceneCommandParams
     );
-    modeSelectClusterInteractionInfoMap.put("changeToMode", modeSelectchangeToModeInteractionInfo);
-
-    commandMap.put("modeSelect", modeSelectClusterInteractionInfoMap);
-
-    Map<String, InteractionInfo> laundryWasherModeClusterInteractionInfoMap = new LinkedHashMap<>();
+    scenesManagementClusterInteractionInfoMap.put("recallScene", scenesManagementrecallSceneInteractionInfo);
 
-    Map<String, CommandParameterInfo> laundryWasherModechangeToModeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> scenesManagementgetSceneMembershipCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo laundryWasherModechangeToModenewModeCommandParameterInfo = new CommandParameterInfo("newMode", Integer.class, Integer.class);
-    laundryWasherModechangeToModeCommandParams.put("newMode",laundryWasherModechangeToModenewModeCommandParameterInfo);
-    InteractionInfo laundryWasherModechangeToModeInteractionInfo = new InteractionInfo(
+    CommandParameterInfo scenesManagementgetSceneMembershipgroupIDCommandParameterInfo = new CommandParameterInfo("groupID", Integer.class, Integer.class);
+    scenesManagementgetSceneMembershipCommandParams.put("groupID",scenesManagementgetSceneMembershipgroupIDCommandParameterInfo);
+    InteractionInfo scenesManagementgetSceneMembershipInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.LaundryWasherModeCluster) cluster)
-          .changeToMode((ChipClusters.LaundryWasherModeCluster.ChangeToModeResponseCallback) callback
+        ((ChipClusters.ScenesManagementCluster) cluster)
+          .getSceneMembership((ChipClusters.ScenesManagementCluster.GetSceneMembershipResponseCallback) callback
            , (Integer)
-             commandArguments.get("newMode")
+             commandArguments.get("groupID")
 
             );
         },
-        () -> new DelegatedLaundryWasherModeClusterChangeToModeResponseCallback(),
-        laundryWasherModechangeToModeCommandParams
+        () -> new DelegatedScenesManagementClusterGetSceneMembershipResponseCallback(),
+        scenesManagementgetSceneMembershipCommandParams
       );
-    laundryWasherModeClusterInteractionInfoMap.put("changeToMode", laundryWasherModechangeToModeInteractionInfo);
+    scenesManagementClusterInteractionInfoMap.put("getSceneMembership", scenesManagementgetSceneMembershipInteractionInfo);
 
-    commandMap.put("laundryWasherMode", laundryWasherModeClusterInteractionInfoMap);
+    Map<String, CommandParameterInfo> scenesManagementcopySceneCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, InteractionInfo> refrigeratorAndTemperatureControlledCabinetModeClusterInteractionInfoMap = new LinkedHashMap<>();
+    CommandParameterInfo scenesManagementcopyScenemodeCommandParameterInfo = new CommandParameterInfo("mode", Integer.class, Integer.class);
+    scenesManagementcopySceneCommandParams.put("mode",scenesManagementcopyScenemodeCommandParameterInfo);
 
-    Map<String, CommandParameterInfo> refrigeratorAndTemperatureControlledCabinetModechangeToModeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo scenesManagementcopyScenegroupIdentifierFromCommandParameterInfo = new CommandParameterInfo("groupIdentifierFrom", Integer.class, Integer.class);
+    scenesManagementcopySceneCommandParams.put("groupIdentifierFrom",scenesManagementcopyScenegroupIdentifierFromCommandParameterInfo);
 
-    CommandParameterInfo refrigeratorAndTemperatureControlledCabinetModechangeToModenewModeCommandParameterInfo = new CommandParameterInfo("newMode", Integer.class, Integer.class);
-    refrigeratorAndTemperatureControlledCabinetModechangeToModeCommandParams.put("newMode",refrigeratorAndTemperatureControlledCabinetModechangeToModenewModeCommandParameterInfo);
-    InteractionInfo refrigeratorAndTemperatureControlledCabinetModechangeToModeInteractionInfo = new InteractionInfo(
+    CommandParameterInfo scenesManagementcopyScenesceneIdentifierFromCommandParameterInfo = new CommandParameterInfo("sceneIdentifierFrom", Integer.class, Integer.class);
+    scenesManagementcopySceneCommandParams.put("sceneIdentifierFrom",scenesManagementcopyScenesceneIdentifierFromCommandParameterInfo);
+
+    CommandParameterInfo scenesManagementcopyScenegroupIdentifierToCommandParameterInfo = new CommandParameterInfo("groupIdentifierTo", Integer.class, Integer.class);
+    scenesManagementcopySceneCommandParams.put("groupIdentifierTo",scenesManagementcopyScenegroupIdentifierToCommandParameterInfo);
+
+    CommandParameterInfo scenesManagementcopyScenesceneIdentifierToCommandParameterInfo = new CommandParameterInfo("sceneIdentifierTo", Integer.class, Integer.class);
+    scenesManagementcopySceneCommandParams.put("sceneIdentifierTo",scenesManagementcopyScenesceneIdentifierToCommandParameterInfo);
+    InteractionInfo scenesManagementcopySceneInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.RefrigeratorAndTemperatureControlledCabinetModeCluster) cluster)
-          .changeToMode((ChipClusters.RefrigeratorAndTemperatureControlledCabinetModeCluster.ChangeToModeResponseCallback) callback
+        ((ChipClusters.ScenesManagementCluster) cluster)
+          .copyScene((ChipClusters.ScenesManagementCluster.CopySceneResponseCallback) callback
            , (Integer)
-             commandArguments.get("newMode")
+             commandArguments.get("mode")
+
+           , (Integer)
+             commandArguments.get("groupIdentifierFrom")
+
+           , (Integer)
+             commandArguments.get("sceneIdentifierFrom")
+
+           , (Integer)
+             commandArguments.get("groupIdentifierTo")
+
+           , (Integer)
+             commandArguments.get("sceneIdentifierTo")
 
             );
         },
-        () -> new DelegatedRefrigeratorAndTemperatureControlledCabinetModeClusterChangeToModeResponseCallback(),
-        refrigeratorAndTemperatureControlledCabinetModechangeToModeCommandParams
+        () -> new DelegatedScenesManagementClusterCopySceneResponseCallback(),
+        scenesManagementcopySceneCommandParams
       );
-    refrigeratorAndTemperatureControlledCabinetModeClusterInteractionInfoMap.put("changeToMode", refrigeratorAndTemperatureControlledCabinetModechangeToModeInteractionInfo);
+    scenesManagementClusterInteractionInfoMap.put("copyScene", scenesManagementcopySceneInteractionInfo);
 
-    commandMap.put("refrigeratorAndTemperatureControlledCabinetMode", refrigeratorAndTemperatureControlledCabinetModeClusterInteractionInfoMap);
+    commandMap.put("scenesManagement", scenesManagementClusterInteractionInfoMap);
 
-    Map<String, InteractionInfo> laundryWasherControlsClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, InteractionInfo> hepaFilterMonitoringClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    commandMap.put("laundryWasherControls", laundryWasherControlsClusterInteractionInfoMap);
+    Map<String, CommandParameterInfo> hepaFilterMonitoringresetConditionCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo hepaFilterMonitoringresetConditionInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.HepaFilterMonitoringCluster) cluster)
+        .resetCondition((DefaultClusterCallback) callback
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        hepaFilterMonitoringresetConditionCommandParams
+    );
+    hepaFilterMonitoringClusterInteractionInfoMap.put("resetCondition", hepaFilterMonitoringresetConditionInteractionInfo);
 
-    Map<String, InteractionInfo> rvcRunModeClusterInteractionInfoMap = new LinkedHashMap<>();
+    commandMap.put("hepaFilterMonitoring", hepaFilterMonitoringClusterInteractionInfoMap);
 
-    Map<String, CommandParameterInfo> rvcRunModechangeToModeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, InteractionInfo> activatedCarbonFilterMonitoringClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    CommandParameterInfo rvcRunModechangeToModenewModeCommandParameterInfo = new CommandParameterInfo("newMode", Integer.class, Integer.class);
-    rvcRunModechangeToModeCommandParams.put("newMode",rvcRunModechangeToModenewModeCommandParameterInfo);
-    InteractionInfo rvcRunModechangeToModeInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> activatedCarbonFilterMonitoringresetConditionCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo activatedCarbonFilterMonitoringresetConditionInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.RvcRunModeCluster) cluster)
-          .changeToMode((ChipClusters.RvcRunModeCluster.ChangeToModeResponseCallback) callback
-           , (Integer)
-             commandArguments.get("newMode")
-
-            );
-        },
-        () -> new DelegatedRvcRunModeClusterChangeToModeResponseCallback(),
-        rvcRunModechangeToModeCommandParams
-      );
-    rvcRunModeClusterInteractionInfoMap.put("changeToMode", rvcRunModechangeToModeInteractionInfo);
+        ((ChipClusters.ActivatedCarbonFilterMonitoringCluster) cluster)
+        .resetCondition((DefaultClusterCallback) callback
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        activatedCarbonFilterMonitoringresetConditionCommandParams
+    );
+    activatedCarbonFilterMonitoringClusterInteractionInfoMap.put("resetCondition", activatedCarbonFilterMonitoringresetConditionInteractionInfo);
 
-    commandMap.put("rvcRunMode", rvcRunModeClusterInteractionInfoMap);
+    commandMap.put("activatedCarbonFilterMonitoring", activatedCarbonFilterMonitoringClusterInteractionInfoMap);
 
-    Map<String, InteractionInfo> rvcCleanModeClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, InteractionInfo> booleanStateConfigurationClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    Map<String, CommandParameterInfo> rvcCleanModechangeToModeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> booleanStateConfigurationsuppressAlarmCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo rvcCleanModechangeToModenewModeCommandParameterInfo = new CommandParameterInfo("newMode", Integer.class, Integer.class);
-    rvcCleanModechangeToModeCommandParams.put("newMode",rvcCleanModechangeToModenewModeCommandParameterInfo);
-    InteractionInfo rvcCleanModechangeToModeInteractionInfo = new InteractionInfo(
+    CommandParameterInfo booleanStateConfigurationsuppressAlarmalarmsToSuppressCommandParameterInfo = new CommandParameterInfo("alarmsToSuppress", Integer.class, Integer.class);
+    booleanStateConfigurationsuppressAlarmCommandParams.put("alarmsToSuppress",booleanStateConfigurationsuppressAlarmalarmsToSuppressCommandParameterInfo);
+    InteractionInfo booleanStateConfigurationsuppressAlarmInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.RvcCleanModeCluster) cluster)
-          .changeToMode((ChipClusters.RvcCleanModeCluster.ChangeToModeResponseCallback) callback
-           , (Integer)
-             commandArguments.get("newMode")
+        ((ChipClusters.BooleanStateConfigurationCluster) cluster)
+        .suppressAlarm((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("alarmsToSuppress")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        booleanStateConfigurationsuppressAlarmCommandParams
+    );
+    booleanStateConfigurationClusterInteractionInfoMap.put("suppressAlarm", booleanStateConfigurationsuppressAlarmInteractionInfo);
 
-            );
-        },
-        () -> new DelegatedRvcCleanModeClusterChangeToModeResponseCallback(),
-        rvcCleanModechangeToModeCommandParams
-      );
-    rvcCleanModeClusterInteractionInfoMap.put("changeToMode", rvcCleanModechangeToModeInteractionInfo);
+    Map<String, CommandParameterInfo> booleanStateConfigurationenableDisableAlarmCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    commandMap.put("rvcCleanMode", rvcCleanModeClusterInteractionInfoMap);
+    CommandParameterInfo booleanStateConfigurationenableDisableAlarmalarmsToEnableDisableCommandParameterInfo = new CommandParameterInfo("alarmsToEnableDisable", Integer.class, Integer.class);
+    booleanStateConfigurationenableDisableAlarmCommandParams.put("alarmsToEnableDisable",booleanStateConfigurationenableDisableAlarmalarmsToEnableDisableCommandParameterInfo);
+    InteractionInfo booleanStateConfigurationenableDisableAlarmInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.BooleanStateConfigurationCluster) cluster)
+        .enableDisableAlarm((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("alarmsToEnableDisable")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        booleanStateConfigurationenableDisableAlarmCommandParams
+    );
+    booleanStateConfigurationClusterInteractionInfoMap.put("enableDisableAlarm", booleanStateConfigurationenableDisableAlarmInteractionInfo);
 
-    Map<String, InteractionInfo> temperatureControlClusterInteractionInfoMap = new LinkedHashMap<>();
+    commandMap.put("booleanStateConfiguration", booleanStateConfigurationClusterInteractionInfoMap);
 
-    Map<String, CommandParameterInfo> temperatureControlsetTemperatureCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, InteractionInfo> valveConfigurationAndControlClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    CommandParameterInfo temperatureControlsetTemperaturetargetTemperatureCommandParameterInfo = new CommandParameterInfo("targetTemperature", Optional.class, Integer.class);
-    temperatureControlsetTemperatureCommandParams.put("targetTemperature",temperatureControlsetTemperaturetargetTemperatureCommandParameterInfo);
+    Map<String, CommandParameterInfo> valveConfigurationAndControlopenCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo temperatureControlsetTemperaturetargetTemperatureLevelCommandParameterInfo = new CommandParameterInfo("targetTemperatureLevel", Optional.class, Integer.class);
-    temperatureControlsetTemperatureCommandParams.put("targetTemperatureLevel",temperatureControlsetTemperaturetargetTemperatureLevelCommandParameterInfo);
-    InteractionInfo temperatureControlsetTemperatureInteractionInfo = new InteractionInfo(
+    CommandParameterInfo valveConfigurationAndControlopenopenDurationCommandParameterInfo = new CommandParameterInfo("openDuration", Optional.class, Long.class);
+    valveConfigurationAndControlopenCommandParams.put("openDuration",valveConfigurationAndControlopenopenDurationCommandParameterInfo);
+
+    CommandParameterInfo valveConfigurationAndControlopentargetLevelCommandParameterInfo = new CommandParameterInfo("targetLevel", Optional.class, Integer.class);
+    valveConfigurationAndControlopenCommandParams.put("targetLevel",valveConfigurationAndControlopentargetLevelCommandParameterInfo);
+    InteractionInfo valveConfigurationAndControlopenInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.TemperatureControlCluster) cluster)
-        .setTemperature((DefaultClusterCallback) callback
-        , (Optional<Integer>)
-        commandArguments.get("targetTemperature")
+        ((ChipClusters.ValveConfigurationAndControlCluster) cluster)
+        .open((DefaultClusterCallback) callback
+        , (Optional<Long>)
+        commandArguments.get("openDuration")
         , (Optional<Integer>)
-        commandArguments.get("targetTemperatureLevel")
+        commandArguments.get("targetLevel")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        temperatureControlsetTemperatureCommandParams
+        valveConfigurationAndControlopenCommandParams
     );
-    temperatureControlClusterInteractionInfoMap.put("setTemperature", temperatureControlsetTemperatureInteractionInfo);
+    valveConfigurationAndControlClusterInteractionInfoMap.put("open", valveConfigurationAndControlopenInteractionInfo);
 
-    commandMap.put("temperatureControl", temperatureControlClusterInteractionInfoMap);
+    Map<String, CommandParameterInfo> valveConfigurationAndControlcloseCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo valveConfigurationAndControlcloseInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.ValveConfigurationAndControlCluster) cluster)
+        .close((DefaultClusterCallback) callback
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        valveConfigurationAndControlcloseCommandParams
+    );
+    valveConfigurationAndControlClusterInteractionInfoMap.put("close", valveConfigurationAndControlcloseInteractionInfo);
 
-    Map<String, InteractionInfo> refrigeratorAlarmClusterInteractionInfoMap = new LinkedHashMap<>();
+    commandMap.put("valveConfigurationAndControl", valveConfigurationAndControlClusterInteractionInfoMap);
 
-    commandMap.put("refrigeratorAlarm", refrigeratorAlarmClusterInteractionInfoMap);
+    Map<String, InteractionInfo> electricalPowerMeasurementClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    Map<String, InteractionInfo> dishwasherModeClusterInteractionInfoMap = new LinkedHashMap<>();
+    commandMap.put("electricalPowerMeasurement", electricalPowerMeasurementClusterInteractionInfoMap);
 
-    Map<String, CommandParameterInfo> dishwasherModechangeToModeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, InteractionInfo> electricalEnergyMeasurementClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    CommandParameterInfo dishwasherModechangeToModenewModeCommandParameterInfo = new CommandParameterInfo("newMode", Integer.class, Integer.class);
-    dishwasherModechangeToModeCommandParams.put("newMode",dishwasherModechangeToModenewModeCommandParameterInfo);
-    InteractionInfo dishwasherModechangeToModeInteractionInfo = new InteractionInfo(
+    commandMap.put("electricalEnergyMeasurement", electricalEnergyMeasurementClusterInteractionInfoMap);
+
+    Map<String, InteractionInfo> waterHeaterManagementClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    Map<String, CommandParameterInfo> waterHeaterManagementboostCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    InteractionInfo waterHeaterManagementboostInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DishwasherModeCluster) cluster)
-          .changeToMode((ChipClusters.DishwasherModeCluster.ChangeToModeResponseCallback) callback
-           , (Integer)
-             commandArguments.get("newMode")
+        ((ChipClusters.WaterHeaterManagementCluster) cluster)
+        .boost((DefaultClusterCallback) callback
+        , (ChipStructs.WaterHeaterManagementClusterWaterHeaterBoostInfoStruct)
+        commandArguments.get("boostInfo")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        waterHeaterManagementboostCommandParams
+    );
+    waterHeaterManagementClusterInteractionInfoMap.put("boost", waterHeaterManagementboostInteractionInfo);
 
-            );
-        },
-        () -> new DelegatedDishwasherModeClusterChangeToModeResponseCallback(),
-        dishwasherModechangeToModeCommandParams
-      );
-    dishwasherModeClusterInteractionInfoMap.put("changeToMode", dishwasherModechangeToModeInteractionInfo);
+    Map<String, CommandParameterInfo> waterHeaterManagementcancelBoostCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo waterHeaterManagementcancelBoostInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.WaterHeaterManagementCluster) cluster)
+        .cancelBoost((DefaultClusterCallback) callback
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        waterHeaterManagementcancelBoostCommandParams
+    );
+    waterHeaterManagementClusterInteractionInfoMap.put("cancelBoost", waterHeaterManagementcancelBoostInteractionInfo);
 
-    commandMap.put("dishwasherMode", dishwasherModeClusterInteractionInfoMap);
+    commandMap.put("waterHeaterManagement", waterHeaterManagementClusterInteractionInfoMap);
 
-    Map<String, InteractionInfo> airQualityClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, InteractionInfo> demandResponseLoadControlClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    commandMap.put("airQuality", airQualityClusterInteractionInfoMap);
+    Map<String, CommandParameterInfo> demandResponseLoadControlregisterLoadControlProgramRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, InteractionInfo> smokeCoAlarmClusterInteractionInfoMap = new LinkedHashMap<>();
+    InteractionInfo demandResponseLoadControlregisterLoadControlProgramRequestInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.DemandResponseLoadControlCluster) cluster)
+        .registerLoadControlProgramRequest((DefaultClusterCallback) callback
+        , (ChipStructs.DemandResponseLoadControlClusterLoadControlProgramStruct)
+        commandArguments.get("loadControlProgram")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        demandResponseLoadControlregisterLoadControlProgramRequestCommandParams
+    );
+    demandResponseLoadControlClusterInteractionInfoMap.put("registerLoadControlProgramRequest", demandResponseLoadControlregisterLoadControlProgramRequestInteractionInfo);
 
-    Map<String, CommandParameterInfo> smokeCoAlarmselfTestRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo smokeCoAlarmselfTestRequestInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> demandResponseLoadControlunregisterLoadControlProgramRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo demandResponseLoadControlunregisterLoadControlProgramRequestloadControlProgramIDCommandParameterInfo = new CommandParameterInfo("loadControlProgramID", byte[].class, byte[].class);
+    demandResponseLoadControlunregisterLoadControlProgramRequestCommandParams.put("loadControlProgramID",demandResponseLoadControlunregisterLoadControlProgramRequestloadControlProgramIDCommandParameterInfo);
+    InteractionInfo demandResponseLoadControlunregisterLoadControlProgramRequestInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.SmokeCoAlarmCluster) cluster)
-        .selfTestRequest((DefaultClusterCallback) callback
+        ((ChipClusters.DemandResponseLoadControlCluster) cluster)
+        .unregisterLoadControlProgramRequest((DefaultClusterCallback) callback
+        , (byte[])
+        commandArguments.get("loadControlProgramID")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        smokeCoAlarmselfTestRequestCommandParams
+        demandResponseLoadControlunregisterLoadControlProgramRequestCommandParams
     );
-    smokeCoAlarmClusterInteractionInfoMap.put("selfTestRequest", smokeCoAlarmselfTestRequestInteractionInfo);
+    demandResponseLoadControlClusterInteractionInfoMap.put("unregisterLoadControlProgramRequest", demandResponseLoadControlunregisterLoadControlProgramRequestInteractionInfo);
 
-    commandMap.put("smokeCoAlarm", smokeCoAlarmClusterInteractionInfoMap);
+    Map<String, CommandParameterInfo> demandResponseLoadControladdLoadControlEventRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, InteractionInfo> dishwasherAlarmClusterInteractionInfoMap = new LinkedHashMap<>();
+    InteractionInfo demandResponseLoadControladdLoadControlEventRequestInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.DemandResponseLoadControlCluster) cluster)
+        .addLoadControlEventRequest((DefaultClusterCallback) callback
+        , (ChipStructs.DemandResponseLoadControlClusterLoadControlEventStruct)
+        commandArguments.get("event")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        demandResponseLoadControladdLoadControlEventRequestCommandParams
+    );
+    demandResponseLoadControlClusterInteractionInfoMap.put("addLoadControlEventRequest", demandResponseLoadControladdLoadControlEventRequestInteractionInfo);
 
-    Map<String, CommandParameterInfo> dishwasherAlarmresetCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> demandResponseLoadControlremoveLoadControlEventRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo dishwasherAlarmresetalarmsCommandParameterInfo = new CommandParameterInfo("alarms", Long.class, Long.class);
-    dishwasherAlarmresetCommandParams.put("alarms",dishwasherAlarmresetalarmsCommandParameterInfo);
-    InteractionInfo dishwasherAlarmresetInteractionInfo = new InteractionInfo(
+    CommandParameterInfo demandResponseLoadControlremoveLoadControlEventRequesteventIDCommandParameterInfo = new CommandParameterInfo("eventID", byte[].class, byte[].class);
+    demandResponseLoadControlremoveLoadControlEventRequestCommandParams.put("eventID",demandResponseLoadControlremoveLoadControlEventRequesteventIDCommandParameterInfo);
+
+    CommandParameterInfo demandResponseLoadControlremoveLoadControlEventRequestcancelControlCommandParameterInfo = new CommandParameterInfo("cancelControl", Integer.class, Integer.class);
+    demandResponseLoadControlremoveLoadControlEventRequestCommandParams.put("cancelControl",demandResponseLoadControlremoveLoadControlEventRequestcancelControlCommandParameterInfo);
+    InteractionInfo demandResponseLoadControlremoveLoadControlEventRequestInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DishwasherAlarmCluster) cluster)
-        .reset((DefaultClusterCallback) callback
-        , (Long)
-        commandArguments.get("alarms")
+        ((ChipClusters.DemandResponseLoadControlCluster) cluster)
+        .removeLoadControlEventRequest((DefaultClusterCallback) callback
+        , (byte[])
+        commandArguments.get("eventID")
+        , (Integer)
+        commandArguments.get("cancelControl")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        dishwasherAlarmresetCommandParams
+        demandResponseLoadControlremoveLoadControlEventRequestCommandParams
     );
-    dishwasherAlarmClusterInteractionInfoMap.put("reset", dishwasherAlarmresetInteractionInfo);
-
-    Map<String, CommandParameterInfo> dishwasherAlarmmodifyEnabledAlarmsCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    demandResponseLoadControlClusterInteractionInfoMap.put("removeLoadControlEventRequest", demandResponseLoadControlremoveLoadControlEventRequestInteractionInfo);
 
-    CommandParameterInfo dishwasherAlarmmodifyEnabledAlarmsmaskCommandParameterInfo = new CommandParameterInfo("mask", Long.class, Long.class);
-    dishwasherAlarmmodifyEnabledAlarmsCommandParams.put("mask",dishwasherAlarmmodifyEnabledAlarmsmaskCommandParameterInfo);
-    InteractionInfo dishwasherAlarmmodifyEnabledAlarmsInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> demandResponseLoadControlclearLoadControlEventsRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo demandResponseLoadControlclearLoadControlEventsRequestInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DishwasherAlarmCluster) cluster)
-        .modifyEnabledAlarms((DefaultClusterCallback) callback
-        , (Long)
-        commandArguments.get("mask")
+        ((ChipClusters.DemandResponseLoadControlCluster) cluster)
+        .clearLoadControlEventsRequest((DefaultClusterCallback) callback
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        dishwasherAlarmmodifyEnabledAlarmsCommandParams
+        demandResponseLoadControlclearLoadControlEventsRequestCommandParams
     );
-    dishwasherAlarmClusterInteractionInfoMap.put("modifyEnabledAlarms", dishwasherAlarmmodifyEnabledAlarmsInteractionInfo);
+    demandResponseLoadControlClusterInteractionInfoMap.put("clearLoadControlEventsRequest", demandResponseLoadControlclearLoadControlEventsRequestInteractionInfo);
 
-    commandMap.put("dishwasherAlarm", dishwasherAlarmClusterInteractionInfoMap);
+    commandMap.put("demandResponseLoadControl", demandResponseLoadControlClusterInteractionInfoMap);
 
-    Map<String, InteractionInfo> microwaveOvenModeClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, InteractionInfo> messagesClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    commandMap.put("microwaveOvenMode", microwaveOvenModeClusterInteractionInfoMap);
+    Map<String, CommandParameterInfo> messagespresentMessagesRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, InteractionInfo> microwaveOvenControlClusterInteractionInfoMap = new LinkedHashMap<>();
+    CommandParameterInfo messagespresentMessagesRequestmessageIDCommandParameterInfo = new CommandParameterInfo("messageID", byte[].class, byte[].class);
+    messagespresentMessagesRequestCommandParams.put("messageID",messagespresentMessagesRequestmessageIDCommandParameterInfo);
 
-    Map<String, CommandParameterInfo> microwaveOvenControlsetCookingParametersCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo messagespresentMessagesRequestpriorityCommandParameterInfo = new CommandParameterInfo("priority", Integer.class, Integer.class);
+    messagespresentMessagesRequestCommandParams.put("priority",messagespresentMessagesRequestpriorityCommandParameterInfo);
 
-    CommandParameterInfo microwaveOvenControlsetCookingParameterscookModeCommandParameterInfo = new CommandParameterInfo("cookMode", Optional.class, Integer.class);
-    microwaveOvenControlsetCookingParametersCommandParams.put("cookMode",microwaveOvenControlsetCookingParameterscookModeCommandParameterInfo);
+    CommandParameterInfo messagespresentMessagesRequestmessageControlCommandParameterInfo = new CommandParameterInfo("messageControl", Integer.class, Integer.class);
+    messagespresentMessagesRequestCommandParams.put("messageControl",messagespresentMessagesRequestmessageControlCommandParameterInfo);
 
-    CommandParameterInfo microwaveOvenControlsetCookingParameterscookTimeCommandParameterInfo = new CommandParameterInfo("cookTime", Optional.class, Long.class);
-    microwaveOvenControlsetCookingParametersCommandParams.put("cookTime",microwaveOvenControlsetCookingParameterscookTimeCommandParameterInfo);
+    CommandParameterInfo messagespresentMessagesRequeststartTimeCommandParameterInfo = new CommandParameterInfo("startTime", Long.class, Long.class);
+    messagespresentMessagesRequestCommandParams.put("startTime",messagespresentMessagesRequeststartTimeCommandParameterInfo);
 
-    CommandParameterInfo microwaveOvenControlsetCookingParameterspowerSettingCommandParameterInfo = new CommandParameterInfo("powerSetting", Optional.class, Integer.class);
-    microwaveOvenControlsetCookingParametersCommandParams.put("powerSetting",microwaveOvenControlsetCookingParameterspowerSettingCommandParameterInfo);
+    CommandParameterInfo messagespresentMessagesRequestdurationCommandParameterInfo = new CommandParameterInfo("duration", Long.class, Long.class);
+    messagespresentMessagesRequestCommandParams.put("duration",messagespresentMessagesRequestdurationCommandParameterInfo);
 
-    CommandParameterInfo microwaveOvenControlsetCookingParameterswattSettingIndexCommandParameterInfo = new CommandParameterInfo("wattSettingIndex", Optional.class, Integer.class);
-    microwaveOvenControlsetCookingParametersCommandParams.put("wattSettingIndex",microwaveOvenControlsetCookingParameterswattSettingIndexCommandParameterInfo);
+    CommandParameterInfo messagespresentMessagesRequestmessageTextCommandParameterInfo = new CommandParameterInfo("messageText", String.class, String.class);
+    messagespresentMessagesRequestCommandParams.put("messageText",messagespresentMessagesRequestmessageTextCommandParameterInfo);
 
-    CommandParameterInfo microwaveOvenControlsetCookingParametersstartAfterSettingCommandParameterInfo = new CommandParameterInfo("startAfterSetting", Optional.class, Boolean.class);
-    microwaveOvenControlsetCookingParametersCommandParams.put("startAfterSetting",microwaveOvenControlsetCookingParametersstartAfterSettingCommandParameterInfo);
-    InteractionInfo microwaveOvenControlsetCookingParametersInteractionInfo = new InteractionInfo(
+    InteractionInfo messagespresentMessagesRequestInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.MicrowaveOvenControlCluster) cluster)
-        .setCookingParameters((DefaultClusterCallback) callback
-        , (Optional<Integer>)
-        commandArguments.get("cookMode")
-        , (Optional<Long>)
-        commandArguments.get("cookTime")
-        , (Optional<Integer>)
-        commandArguments.get("powerSetting")
-        , (Optional<Integer>)
-        commandArguments.get("wattSettingIndex")
-        , (Optional<Boolean>)
-        commandArguments.get("startAfterSetting")
+        ((ChipClusters.MessagesCluster) cluster)
+        .presentMessagesRequest((DefaultClusterCallback) callback
+        , (byte[])
+        commandArguments.get("messageID")
+        , (Integer)
+        commandArguments.get("priority")
+        , (Integer)
+        commandArguments.get("messageControl")
+        , (Long)
+        commandArguments.get("startTime")
+        , (Long)
+        commandArguments.get("duration")
+        , (String)
+        commandArguments.get("messageText")
+        , (Optional<ArrayList<ChipStructs.MessagesClusterMessageResponseOptionStruct>>)
+        commandArguments.get("responses")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        microwaveOvenControlsetCookingParametersCommandParams
+        messagespresentMessagesRequestCommandParams
     );
-    microwaveOvenControlClusterInteractionInfoMap.put("setCookingParameters", microwaveOvenControlsetCookingParametersInteractionInfo);
+    messagesClusterInteractionInfoMap.put("presentMessagesRequest", messagespresentMessagesRequestInteractionInfo);
 
-    Map<String, CommandParameterInfo> microwaveOvenControladdMoreTimeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> messagescancelMessagesRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo microwaveOvenControladdMoreTimetimeToAddCommandParameterInfo = new CommandParameterInfo("timeToAdd", Long.class, Long.class);
-    microwaveOvenControladdMoreTimeCommandParams.put("timeToAdd",microwaveOvenControladdMoreTimetimeToAddCommandParameterInfo);
-    InteractionInfo microwaveOvenControladdMoreTimeInteractionInfo = new InteractionInfo(
+    CommandParameterInfo messagescancelMessagesRequestmessageIDsCommandParameterInfo = new CommandParameterInfo("messageIDs", ArrayList.class, ArrayList.class);
+    messagescancelMessagesRequestCommandParams.put("messageIDs",messagescancelMessagesRequestmessageIDsCommandParameterInfo);
+    InteractionInfo messagescancelMessagesRequestInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.MicrowaveOvenControlCluster) cluster)
-        .addMoreTime((DefaultClusterCallback) callback
-        , (Long)
-        commandArguments.get("timeToAdd")
+        ((ChipClusters.MessagesCluster) cluster)
+        .cancelMessagesRequest((DefaultClusterCallback) callback
+        , (ArrayList<byte[]>)
+        commandArguments.get("messageIDs")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        microwaveOvenControladdMoreTimeCommandParams
+        messagescancelMessagesRequestCommandParams
     );
-    microwaveOvenControlClusterInteractionInfoMap.put("addMoreTime", microwaveOvenControladdMoreTimeInteractionInfo);
-
-    commandMap.put("microwaveOvenControl", microwaveOvenControlClusterInteractionInfoMap);
-
-    Map<String, InteractionInfo> operationalStateClusterInteractionInfoMap = new LinkedHashMap<>();
-
-    Map<String, CommandParameterInfo> operationalStatepauseCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo operationalStatepauseInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.OperationalStateCluster) cluster)
-          .pause((ChipClusters.OperationalStateCluster.OperationalCommandResponseCallback) callback
-            );
-        },
-        () -> new DelegatedOperationalStateClusterOperationalCommandResponseCallback(),
-        operationalStatepauseCommandParams
-      );
-    operationalStateClusterInteractionInfoMap.put("pause", operationalStatepauseInteractionInfo);
-
-    Map<String, CommandParameterInfo> operationalStatestopCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo operationalStatestopInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.OperationalStateCluster) cluster)
-          .stop((ChipClusters.OperationalStateCluster.OperationalCommandResponseCallback) callback
-            );
-        },
-        () -> new DelegatedOperationalStateClusterOperationalCommandResponseCallback(),
-        operationalStatestopCommandParams
-      );
-    operationalStateClusterInteractionInfoMap.put("stop", operationalStatestopInteractionInfo);
+    messagesClusterInteractionInfoMap.put("cancelMessagesRequest", messagescancelMessagesRequestInteractionInfo);
 
-    Map<String, CommandParameterInfo> operationalStatestartCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo operationalStatestartInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.OperationalStateCluster) cluster)
-          .start((ChipClusters.OperationalStateCluster.OperationalCommandResponseCallback) callback
-            );
-        },
-        () -> new DelegatedOperationalStateClusterOperationalCommandResponseCallback(),
-        operationalStatestartCommandParams
-      );
-    operationalStateClusterInteractionInfoMap.put("start", operationalStatestartInteractionInfo);
+    commandMap.put("messages", messagesClusterInteractionInfoMap);
 
-    Map<String, CommandParameterInfo> operationalStateresumeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo operationalStateresumeInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.OperationalStateCluster) cluster)
-          .resume((ChipClusters.OperationalStateCluster.OperationalCommandResponseCallback) callback
-            );
-        },
-        () -> new DelegatedOperationalStateClusterOperationalCommandResponseCallback(),
-        operationalStateresumeCommandParams
-      );
-    operationalStateClusterInteractionInfoMap.put("resume", operationalStateresumeInteractionInfo);
+    Map<String, InteractionInfo> deviceEnergyManagementClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    commandMap.put("operationalState", operationalStateClusterInteractionInfoMap);
+    Map<String, CommandParameterInfo> deviceEnergyManagementpowerAdjustRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, InteractionInfo> rvcOperationalStateClusterInteractionInfoMap = new LinkedHashMap<>();
+    CommandParameterInfo deviceEnergyManagementpowerAdjustRequestpowerCommandParameterInfo = new CommandParameterInfo("power", Long.class, Long.class);
+    deviceEnergyManagementpowerAdjustRequestCommandParams.put("power",deviceEnergyManagementpowerAdjustRequestpowerCommandParameterInfo);
 
-    Map<String, CommandParameterInfo> rvcOperationalStatepauseCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo rvcOperationalStatepauseInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.RvcOperationalStateCluster) cluster)
-          .pause((ChipClusters.RvcOperationalStateCluster.OperationalCommandResponseCallback) callback
-            );
-        },
-        () -> new DelegatedRvcOperationalStateClusterOperationalCommandResponseCallback(),
-        rvcOperationalStatepauseCommandParams
-      );
-    rvcOperationalStateClusterInteractionInfoMap.put("pause", rvcOperationalStatepauseInteractionInfo);
+    CommandParameterInfo deviceEnergyManagementpowerAdjustRequestdurationCommandParameterInfo = new CommandParameterInfo("duration", Long.class, Long.class);
+    deviceEnergyManagementpowerAdjustRequestCommandParams.put("duration",deviceEnergyManagementpowerAdjustRequestdurationCommandParameterInfo);
 
-    Map<String, CommandParameterInfo> rvcOperationalStateresumeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo rvcOperationalStateresumeInteractionInfo = new InteractionInfo(
+    CommandParameterInfo deviceEnergyManagementpowerAdjustRequestcauseCommandParameterInfo = new CommandParameterInfo("cause", Integer.class, Integer.class);
+    deviceEnergyManagementpowerAdjustRequestCommandParams.put("cause",deviceEnergyManagementpowerAdjustRequestcauseCommandParameterInfo);
+    InteractionInfo deviceEnergyManagementpowerAdjustRequestInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.RvcOperationalStateCluster) cluster)
-          .resume((ChipClusters.RvcOperationalStateCluster.OperationalCommandResponseCallback) callback
-            );
-        },
-        () -> new DelegatedRvcOperationalStateClusterOperationalCommandResponseCallback(),
-        rvcOperationalStateresumeCommandParams
-      );
-    rvcOperationalStateClusterInteractionInfoMap.put("resume", rvcOperationalStateresumeInteractionInfo);
+        ((ChipClusters.DeviceEnergyManagementCluster) cluster)
+        .powerAdjustRequest((DefaultClusterCallback) callback
+        , (Long)
+        commandArguments.get("power")
+        , (Long)
+        commandArguments.get("duration")
+        , (Integer)
+        commandArguments.get("cause")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        deviceEnergyManagementpowerAdjustRequestCommandParams
+    );
+    deviceEnergyManagementClusterInteractionInfoMap.put("powerAdjustRequest", deviceEnergyManagementpowerAdjustRequestInteractionInfo);
 
-    Map<String, CommandParameterInfo> rvcOperationalStategoHomeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo rvcOperationalStategoHomeInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> deviceEnergyManagementcancelPowerAdjustRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo deviceEnergyManagementcancelPowerAdjustRequestInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.RvcOperationalStateCluster) cluster)
-          .goHome((ChipClusters.RvcOperationalStateCluster.OperationalCommandResponseCallback) callback
-            );
-        },
-        () -> new DelegatedRvcOperationalStateClusterOperationalCommandResponseCallback(),
-        rvcOperationalStategoHomeCommandParams
-      );
-    rvcOperationalStateClusterInteractionInfoMap.put("goHome", rvcOperationalStategoHomeInteractionInfo);
-
-    commandMap.put("rvcOperationalState", rvcOperationalStateClusterInteractionInfoMap);
-
-    Map<String, InteractionInfo> scenesManagementClusterInteractionInfoMap = new LinkedHashMap<>();
-
-    Map<String, CommandParameterInfo> scenesManagementaddSceneCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        ((ChipClusters.DeviceEnergyManagementCluster) cluster)
+        .cancelPowerAdjustRequest((DefaultClusterCallback) callback
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        deviceEnergyManagementcancelPowerAdjustRequestCommandParams
+    );
+    deviceEnergyManagementClusterInteractionInfoMap.put("cancelPowerAdjustRequest", deviceEnergyManagementcancelPowerAdjustRequestInteractionInfo);
 
-    CommandParameterInfo scenesManagementaddScenegroupIDCommandParameterInfo = new CommandParameterInfo("groupID", Integer.class, Integer.class);
-    scenesManagementaddSceneCommandParams.put("groupID",scenesManagementaddScenegroupIDCommandParameterInfo);
+    Map<String, CommandParameterInfo> deviceEnergyManagementstartTimeAdjustRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo scenesManagementaddScenesceneIDCommandParameterInfo = new CommandParameterInfo("sceneID", Integer.class, Integer.class);
-    scenesManagementaddSceneCommandParams.put("sceneID",scenesManagementaddScenesceneIDCommandParameterInfo);
+    CommandParameterInfo deviceEnergyManagementstartTimeAdjustRequestrequestedStartTimeCommandParameterInfo = new CommandParameterInfo("requestedStartTime", Long.class, Long.class);
+    deviceEnergyManagementstartTimeAdjustRequestCommandParams.put("requestedStartTime",deviceEnergyManagementstartTimeAdjustRequestrequestedStartTimeCommandParameterInfo);
 
-    CommandParameterInfo scenesManagementaddScenetransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Long.class, Long.class);
-    scenesManagementaddSceneCommandParams.put("transitionTime",scenesManagementaddScenetransitionTimeCommandParameterInfo);
+    CommandParameterInfo deviceEnergyManagementstartTimeAdjustRequestcauseCommandParameterInfo = new CommandParameterInfo("cause", Integer.class, Integer.class);
+    deviceEnergyManagementstartTimeAdjustRequestCommandParams.put("cause",deviceEnergyManagementstartTimeAdjustRequestcauseCommandParameterInfo);
+    InteractionInfo deviceEnergyManagementstartTimeAdjustRequestInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.DeviceEnergyManagementCluster) cluster)
+        .startTimeAdjustRequest((DefaultClusterCallback) callback
+        , (Long)
+        commandArguments.get("requestedStartTime")
+        , (Integer)
+        commandArguments.get("cause")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        deviceEnergyManagementstartTimeAdjustRequestCommandParams
+    );
+    deviceEnergyManagementClusterInteractionInfoMap.put("startTimeAdjustRequest", deviceEnergyManagementstartTimeAdjustRequestInteractionInfo);
 
-    CommandParameterInfo scenesManagementaddScenesceneNameCommandParameterInfo = new CommandParameterInfo("sceneName", String.class, String.class);
-    scenesManagementaddSceneCommandParams.put("sceneName",scenesManagementaddScenesceneNameCommandParameterInfo);
+    Map<String, CommandParameterInfo> deviceEnergyManagementpauseRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    InteractionInfo scenesManagementaddSceneInteractionInfo = new InteractionInfo(
+    CommandParameterInfo deviceEnergyManagementpauseRequestdurationCommandParameterInfo = new CommandParameterInfo("duration", Long.class, Long.class);
+    deviceEnergyManagementpauseRequestCommandParams.put("duration",deviceEnergyManagementpauseRequestdurationCommandParameterInfo);
+
+    CommandParameterInfo deviceEnergyManagementpauseRequestcauseCommandParameterInfo = new CommandParameterInfo("cause", Integer.class, Integer.class);
+    deviceEnergyManagementpauseRequestCommandParams.put("cause",deviceEnergyManagementpauseRequestcauseCommandParameterInfo);
+    InteractionInfo deviceEnergyManagementpauseRequestInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ScenesManagementCluster) cluster)
-          .addScene((ChipClusters.ScenesManagementCluster.AddSceneResponseCallback) callback
-           , (Integer)
-             commandArguments.get("groupID")
+        ((ChipClusters.DeviceEnergyManagementCluster) cluster)
+        .pauseRequest((DefaultClusterCallback) callback
+        , (Long)
+        commandArguments.get("duration")
+        , (Integer)
+        commandArguments.get("cause")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        deviceEnergyManagementpauseRequestCommandParams
+    );
+    deviceEnergyManagementClusterInteractionInfoMap.put("pauseRequest", deviceEnergyManagementpauseRequestInteractionInfo);
 
-           , (Integer)
-             commandArguments.get("sceneID")
+    Map<String, CommandParameterInfo> deviceEnergyManagementresumeRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo deviceEnergyManagementresumeRequestInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.DeviceEnergyManagementCluster) cluster)
+        .resumeRequest((DefaultClusterCallback) callback
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        deviceEnergyManagementresumeRequestCommandParams
+    );
+    deviceEnergyManagementClusterInteractionInfoMap.put("resumeRequest", deviceEnergyManagementresumeRequestInteractionInfo);
 
-           , (Long)
-             commandArguments.get("transitionTime")
+    Map<String, CommandParameterInfo> deviceEnergyManagementmodifyForecastRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-           , (String)
-             commandArguments.get("sceneName")
+    CommandParameterInfo deviceEnergyManagementmodifyForecastRequestforecastIDCommandParameterInfo = new CommandParameterInfo("forecastID", Long.class, Long.class);
+    deviceEnergyManagementmodifyForecastRequestCommandParams.put("forecastID",deviceEnergyManagementmodifyForecastRequestforecastIDCommandParameterInfo);
 
-           , (ArrayList<ChipStructs.ScenesManagementClusterExtensionFieldSet>)
-             commandArguments.get("extensionFieldSets")
 
-            );
-        },
-        () -> new DelegatedScenesManagementClusterAddSceneResponseCallback(),
-        scenesManagementaddSceneCommandParams
-      );
-    scenesManagementClusterInteractionInfoMap.put("addScene", scenesManagementaddSceneInteractionInfo);
+    CommandParameterInfo deviceEnergyManagementmodifyForecastRequestcauseCommandParameterInfo = new CommandParameterInfo("cause", Integer.class, Integer.class);
+    deviceEnergyManagementmodifyForecastRequestCommandParams.put("cause",deviceEnergyManagementmodifyForecastRequestcauseCommandParameterInfo);
+    InteractionInfo deviceEnergyManagementmodifyForecastRequestInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.DeviceEnergyManagementCluster) cluster)
+        .modifyForecastRequest((DefaultClusterCallback) callback
+        , (Long)
+        commandArguments.get("forecastID")
+        , (ArrayList<ChipStructs.DeviceEnergyManagementClusterSlotAdjustmentStruct>)
+        commandArguments.get("slotAdjustments")
+        , (Integer)
+        commandArguments.get("cause")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        deviceEnergyManagementmodifyForecastRequestCommandParams
+    );
+    deviceEnergyManagementClusterInteractionInfoMap.put("modifyForecastRequest", deviceEnergyManagementmodifyForecastRequestInteractionInfo);
 
-    Map<String, CommandParameterInfo> scenesManagementviewSceneCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> deviceEnergyManagementrequestConstraintBasedForecastCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo scenesManagementviewScenegroupIDCommandParameterInfo = new CommandParameterInfo("groupID", Integer.class, Integer.class);
-    scenesManagementviewSceneCommandParams.put("groupID",scenesManagementviewScenegroupIDCommandParameterInfo);
 
-    CommandParameterInfo scenesManagementviewScenesceneIDCommandParameterInfo = new CommandParameterInfo("sceneID", Integer.class, Integer.class);
-    scenesManagementviewSceneCommandParams.put("sceneID",scenesManagementviewScenesceneIDCommandParameterInfo);
-    InteractionInfo scenesManagementviewSceneInteractionInfo = new InteractionInfo(
+    CommandParameterInfo deviceEnergyManagementrequestConstraintBasedForecastcauseCommandParameterInfo = new CommandParameterInfo("cause", Integer.class, Integer.class);
+    deviceEnergyManagementrequestConstraintBasedForecastCommandParams.put("cause",deviceEnergyManagementrequestConstraintBasedForecastcauseCommandParameterInfo);
+    InteractionInfo deviceEnergyManagementrequestConstraintBasedForecastInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ScenesManagementCluster) cluster)
-          .viewScene((ChipClusters.ScenesManagementCluster.ViewSceneResponseCallback) callback
-           , (Integer)
-             commandArguments.get("groupID")
-
-           , (Integer)
-             commandArguments.get("sceneID")
+        ((ChipClusters.DeviceEnergyManagementCluster) cluster)
+        .requestConstraintBasedForecast((DefaultClusterCallback) callback
+        , (ArrayList<ChipStructs.DeviceEnergyManagementClusterConstraintsStruct>)
+        commandArguments.get("constraints")
+        , (Integer)
+        commandArguments.get("cause")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        deviceEnergyManagementrequestConstraintBasedForecastCommandParams
+    );
+    deviceEnergyManagementClusterInteractionInfoMap.put("requestConstraintBasedForecast", deviceEnergyManagementrequestConstraintBasedForecastInteractionInfo);
 
-            );
-        },
-        () -> new DelegatedScenesManagementClusterViewSceneResponseCallback(),
-        scenesManagementviewSceneCommandParams
-      );
-    scenesManagementClusterInteractionInfoMap.put("viewScene", scenesManagementviewSceneInteractionInfo);
+    Map<String, CommandParameterInfo> deviceEnergyManagementcancelRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo deviceEnergyManagementcancelRequestInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.DeviceEnergyManagementCluster) cluster)
+        .cancelRequest((DefaultClusterCallback) callback
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        deviceEnergyManagementcancelRequestCommandParams
+    );
+    deviceEnergyManagementClusterInteractionInfoMap.put("cancelRequest", deviceEnergyManagementcancelRequestInteractionInfo);
 
-    Map<String, CommandParameterInfo> scenesManagementremoveSceneCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    commandMap.put("deviceEnergyManagement", deviceEnergyManagementClusterInteractionInfoMap);
 
-    CommandParameterInfo scenesManagementremoveScenegroupIDCommandParameterInfo = new CommandParameterInfo("groupID", Integer.class, Integer.class);
-    scenesManagementremoveSceneCommandParams.put("groupID",scenesManagementremoveScenegroupIDCommandParameterInfo);
+    Map<String, InteractionInfo> energyEvseClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    CommandParameterInfo scenesManagementremoveScenesceneIDCommandParameterInfo = new CommandParameterInfo("sceneID", Integer.class, Integer.class);
-    scenesManagementremoveSceneCommandParams.put("sceneID",scenesManagementremoveScenesceneIDCommandParameterInfo);
-    InteractionInfo scenesManagementremoveSceneInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> energyEvsedisableCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo energyEvsedisableInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ScenesManagementCluster) cluster)
-          .removeScene((ChipClusters.ScenesManagementCluster.RemoveSceneResponseCallback) callback
-           , (Integer)
-             commandArguments.get("groupID")
+        ((ChipClusters.EnergyEvseCluster) cluster)
+        .disable((DefaultClusterCallback) callback, 10000
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        energyEvsedisableCommandParams
+    );
+    energyEvseClusterInteractionInfoMap.put("disable", energyEvsedisableInteractionInfo);
 
-           , (Integer)
-             commandArguments.get("sceneID")
+    Map<String, CommandParameterInfo> energyEvseenableChargingCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-            );
-        },
-        () -> new DelegatedScenesManagementClusterRemoveSceneResponseCallback(),
-        scenesManagementremoveSceneCommandParams
-      );
-    scenesManagementClusterInteractionInfoMap.put("removeScene", scenesManagementremoveSceneInteractionInfo);
+    CommandParameterInfo energyEvseenableChargingchargingEnabledUntilCommandParameterInfo = new CommandParameterInfo("chargingEnabledUntil", Long.class, Long.class);
+    energyEvseenableChargingCommandParams.put("chargingEnabledUntil",energyEvseenableChargingchargingEnabledUntilCommandParameterInfo);
 
-    Map<String, CommandParameterInfo> scenesManagementremoveAllScenesCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo energyEvseenableChargingminimumChargeCurrentCommandParameterInfo = new CommandParameterInfo("minimumChargeCurrent", Long.class, Long.class);
+    energyEvseenableChargingCommandParams.put("minimumChargeCurrent",energyEvseenableChargingminimumChargeCurrentCommandParameterInfo);
 
-    CommandParameterInfo scenesManagementremoveAllScenesgroupIDCommandParameterInfo = new CommandParameterInfo("groupID", Integer.class, Integer.class);
-    scenesManagementremoveAllScenesCommandParams.put("groupID",scenesManagementremoveAllScenesgroupIDCommandParameterInfo);
-    InteractionInfo scenesManagementremoveAllScenesInteractionInfo = new InteractionInfo(
+    CommandParameterInfo energyEvseenableChargingmaximumChargeCurrentCommandParameterInfo = new CommandParameterInfo("maximumChargeCurrent", Long.class, Long.class);
+    energyEvseenableChargingCommandParams.put("maximumChargeCurrent",energyEvseenableChargingmaximumChargeCurrentCommandParameterInfo);
+    InteractionInfo energyEvseenableChargingInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ScenesManagementCluster) cluster)
-          .removeAllScenes((ChipClusters.ScenesManagementCluster.RemoveAllScenesResponseCallback) callback
-           , (Integer)
-             commandArguments.get("groupID")
+        ((ChipClusters.EnergyEvseCluster) cluster)
+        .enableCharging((DefaultClusterCallback) callback
+        , (Long)
+        commandArguments.get("chargingEnabledUntil")
+        , (Long)
+        commandArguments.get("minimumChargeCurrent")
+        , (Long)
+        commandArguments.get("maximumChargeCurrent"), 10000
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        energyEvseenableChargingCommandParams
+    );
+    energyEvseClusterInteractionInfoMap.put("enableCharging", energyEvseenableChargingInteractionInfo);
 
-            );
-        },
-        () -> new DelegatedScenesManagementClusterRemoveAllScenesResponseCallback(),
-        scenesManagementremoveAllScenesCommandParams
-      );
-    scenesManagementClusterInteractionInfoMap.put("removeAllScenes", scenesManagementremoveAllScenesInteractionInfo);
+    Map<String, CommandParameterInfo> energyEvseenableDischargingCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, CommandParameterInfo> scenesManagementstoreSceneCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo energyEvseenableDischargingdischargingEnabledUntilCommandParameterInfo = new CommandParameterInfo("dischargingEnabledUntil", Long.class, Long.class);
+    energyEvseenableDischargingCommandParams.put("dischargingEnabledUntil",energyEvseenableDischargingdischargingEnabledUntilCommandParameterInfo);
 
-    CommandParameterInfo scenesManagementstoreScenegroupIDCommandParameterInfo = new CommandParameterInfo("groupID", Integer.class, Integer.class);
-    scenesManagementstoreSceneCommandParams.put("groupID",scenesManagementstoreScenegroupIDCommandParameterInfo);
+    CommandParameterInfo energyEvseenableDischargingmaximumDischargeCurrentCommandParameterInfo = new CommandParameterInfo("maximumDischargeCurrent", Long.class, Long.class);
+    energyEvseenableDischargingCommandParams.put("maximumDischargeCurrent",energyEvseenableDischargingmaximumDischargeCurrentCommandParameterInfo);
+    InteractionInfo energyEvseenableDischargingInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.EnergyEvseCluster) cluster)
+        .enableDischarging((DefaultClusterCallback) callback
+        , (Long)
+        commandArguments.get("dischargingEnabledUntil")
+        , (Long)
+        commandArguments.get("maximumDischargeCurrent"), 10000
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        energyEvseenableDischargingCommandParams
+    );
+    energyEvseClusterInteractionInfoMap.put("enableDischarging", energyEvseenableDischargingInteractionInfo);
 
-    CommandParameterInfo scenesManagementstoreScenesceneIDCommandParameterInfo = new CommandParameterInfo("sceneID", Integer.class, Integer.class);
-    scenesManagementstoreSceneCommandParams.put("sceneID",scenesManagementstoreScenesceneIDCommandParameterInfo);
-    InteractionInfo scenesManagementstoreSceneInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> energyEvsestartDiagnosticsCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo energyEvsestartDiagnosticsInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ScenesManagementCluster) cluster)
-          .storeScene((ChipClusters.ScenesManagementCluster.StoreSceneResponseCallback) callback
-           , (Integer)
-             commandArguments.get("groupID")
+        ((ChipClusters.EnergyEvseCluster) cluster)
+        .startDiagnostics((DefaultClusterCallback) callback, 10000
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        energyEvsestartDiagnosticsCommandParams
+    );
+    energyEvseClusterInteractionInfoMap.put("startDiagnostics", energyEvsestartDiagnosticsInteractionInfo);
 
-           , (Integer)
-             commandArguments.get("sceneID")
+    Map<String, CommandParameterInfo> energyEvsesetTargetsCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-            );
+    InteractionInfo energyEvsesetTargetsInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.EnergyEvseCluster) cluster)
+        .setTargets((DefaultClusterCallback) callback
+        , (ArrayList<ChipStructs.EnergyEvseClusterChargingTargetScheduleStruct>)
+        commandArguments.get("chargingTargetSchedules"), 10000
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        energyEvsesetTargetsCommandParams
+    );
+    energyEvseClusterInteractionInfoMap.put("setTargets", energyEvsesetTargetsInteractionInfo);
+
+    Map<String, CommandParameterInfo> energyEvsegetTargetsCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo energyEvsegetTargetsInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.EnergyEvseCluster) cluster)
+          .getTargets((ChipClusters.EnergyEvseCluster.GetTargetsResponseCallback) callback
+            , 10000);
         },
-        () -> new DelegatedScenesManagementClusterStoreSceneResponseCallback(),
-        scenesManagementstoreSceneCommandParams
+        () -> new DelegatedEnergyEvseClusterGetTargetsResponseCallback(),
+        energyEvsegetTargetsCommandParams
       );
-    scenesManagementClusterInteractionInfoMap.put("storeScene", scenesManagementstoreSceneInteractionInfo);
-
-    Map<String, CommandParameterInfo> scenesManagementrecallSceneCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-
-    CommandParameterInfo scenesManagementrecallScenegroupIDCommandParameterInfo = new CommandParameterInfo("groupID", Integer.class, Integer.class);
-    scenesManagementrecallSceneCommandParams.put("groupID",scenesManagementrecallScenegroupIDCommandParameterInfo);
-
-    CommandParameterInfo scenesManagementrecallScenesceneIDCommandParameterInfo = new CommandParameterInfo("sceneID", Integer.class, Integer.class);
-    scenesManagementrecallSceneCommandParams.put("sceneID",scenesManagementrecallScenesceneIDCommandParameterInfo);
+    energyEvseClusterInteractionInfoMap.put("getTargets", energyEvsegetTargetsInteractionInfo);
 
-    CommandParameterInfo scenesManagementrecallScenetransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Optional.class, Long.class);
-    scenesManagementrecallSceneCommandParams.put("transitionTime",scenesManagementrecallScenetransitionTimeCommandParameterInfo);
-    InteractionInfo scenesManagementrecallSceneInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> energyEvseclearTargetsCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo energyEvseclearTargetsInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ScenesManagementCluster) cluster)
-        .recallScene((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("groupID")
-        , (Integer)
-        commandArguments.get("sceneID")
-        , (Optional<Long>)
-        commandArguments.get("transitionTime")
+        ((ChipClusters.EnergyEvseCluster) cluster)
+        .clearTargets((DefaultClusterCallback) callback, 10000
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        scenesManagementrecallSceneCommandParams
+        energyEvseclearTargetsCommandParams
     );
-    scenesManagementClusterInteractionInfoMap.put("recallScene", scenesManagementrecallSceneInteractionInfo);
+    energyEvseClusterInteractionInfoMap.put("clearTargets", energyEvseclearTargetsInteractionInfo);
 
-    Map<String, CommandParameterInfo> scenesManagementgetSceneMembershipCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    commandMap.put("energyEvse", energyEvseClusterInteractionInfoMap);
 
-    CommandParameterInfo scenesManagementgetSceneMembershipgroupIDCommandParameterInfo = new CommandParameterInfo("groupID", Integer.class, Integer.class);
-    scenesManagementgetSceneMembershipCommandParams.put("groupID",scenesManagementgetSceneMembershipgroupIDCommandParameterInfo);
-    InteractionInfo scenesManagementgetSceneMembershipInteractionInfo = new InteractionInfo(
+    Map<String, InteractionInfo> energyPreferenceClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    commandMap.put("energyPreference", energyPreferenceClusterInteractionInfoMap);
+
+    Map<String, InteractionInfo> powerTopologyClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    commandMap.put("powerTopology", powerTopologyClusterInteractionInfoMap);
+
+    Map<String, InteractionInfo> energyEvseModeClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    Map<String, CommandParameterInfo> energyEvseModechangeToModeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo energyEvseModechangeToModenewModeCommandParameterInfo = new CommandParameterInfo("newMode", Integer.class, Integer.class);
+    energyEvseModechangeToModeCommandParams.put("newMode",energyEvseModechangeToModenewModeCommandParameterInfo);
+    InteractionInfo energyEvseModechangeToModeInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ScenesManagementCluster) cluster)
-          .getSceneMembership((ChipClusters.ScenesManagementCluster.GetSceneMembershipResponseCallback) callback
+        ((ChipClusters.EnergyEvseModeCluster) cluster)
+          .changeToMode((ChipClusters.EnergyEvseModeCluster.ChangeToModeResponseCallback) callback
            , (Integer)
-             commandArguments.get("groupID")
+             commandArguments.get("newMode")
 
             );
         },
-        () -> new DelegatedScenesManagementClusterGetSceneMembershipResponseCallback(),
-        scenesManagementgetSceneMembershipCommandParams
+        () -> new DelegatedEnergyEvseModeClusterChangeToModeResponseCallback(),
+        energyEvseModechangeToModeCommandParams
       );
-    scenesManagementClusterInteractionInfoMap.put("getSceneMembership", scenesManagementgetSceneMembershipInteractionInfo);
-
-    Map<String, CommandParameterInfo> scenesManagementcopySceneCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-
-    CommandParameterInfo scenesManagementcopyScenemodeCommandParameterInfo = new CommandParameterInfo("mode", Integer.class, Integer.class);
-    scenesManagementcopySceneCommandParams.put("mode",scenesManagementcopyScenemodeCommandParameterInfo);
+    energyEvseModeClusterInteractionInfoMap.put("changeToMode", energyEvseModechangeToModeInteractionInfo);
 
-    CommandParameterInfo scenesManagementcopyScenegroupIdentifierFromCommandParameterInfo = new CommandParameterInfo("groupIdentifierFrom", Integer.class, Integer.class);
-    scenesManagementcopySceneCommandParams.put("groupIdentifierFrom",scenesManagementcopyScenegroupIdentifierFromCommandParameterInfo);
+    commandMap.put("energyEvseMode", energyEvseModeClusterInteractionInfoMap);
 
-    CommandParameterInfo scenesManagementcopyScenesceneIdentifierFromCommandParameterInfo = new CommandParameterInfo("sceneIdentifierFrom", Integer.class, Integer.class);
-    scenesManagementcopySceneCommandParams.put("sceneIdentifierFrom",scenesManagementcopyScenesceneIdentifierFromCommandParameterInfo);
+    Map<String, InteractionInfo> waterHeaterModeClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    CommandParameterInfo scenesManagementcopyScenegroupIdentifierToCommandParameterInfo = new CommandParameterInfo("groupIdentifierTo", Integer.class, Integer.class);
-    scenesManagementcopySceneCommandParams.put("groupIdentifierTo",scenesManagementcopyScenegroupIdentifierToCommandParameterInfo);
+    Map<String, CommandParameterInfo> waterHeaterModechangeToModeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo scenesManagementcopyScenesceneIdentifierToCommandParameterInfo = new CommandParameterInfo("sceneIdentifierTo", Integer.class, Integer.class);
-    scenesManagementcopySceneCommandParams.put("sceneIdentifierTo",scenesManagementcopyScenesceneIdentifierToCommandParameterInfo);
-    InteractionInfo scenesManagementcopySceneInteractionInfo = new InteractionInfo(
+    CommandParameterInfo waterHeaterModechangeToModenewModeCommandParameterInfo = new CommandParameterInfo("newMode", Integer.class, Integer.class);
+    waterHeaterModechangeToModeCommandParams.put("newMode",waterHeaterModechangeToModenewModeCommandParameterInfo);
+    InteractionInfo waterHeaterModechangeToModeInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ScenesManagementCluster) cluster)
-          .copyScene((ChipClusters.ScenesManagementCluster.CopySceneResponseCallback) callback
+        ((ChipClusters.WaterHeaterModeCluster) cluster)
+          .changeToMode((ChipClusters.WaterHeaterModeCluster.ChangeToModeResponseCallback) callback
            , (Integer)
-             commandArguments.get("mode")
+             commandArguments.get("newMode")
 
-           , (Integer)
-             commandArguments.get("groupIdentifierFrom")
+            );
+        },
+        () -> new DelegatedWaterHeaterModeClusterChangeToModeResponseCallback(),
+        waterHeaterModechangeToModeCommandParams
+      );
+    waterHeaterModeClusterInteractionInfoMap.put("changeToMode", waterHeaterModechangeToModeInteractionInfo);
 
-           , (Integer)
-             commandArguments.get("sceneIdentifierFrom")
+    commandMap.put("waterHeaterMode", waterHeaterModeClusterInteractionInfoMap);
 
-           , (Integer)
-             commandArguments.get("groupIdentifierTo")
+    Map<String, InteractionInfo> deviceEnergyManagementModeClusterInteractionInfoMap = new LinkedHashMap<>();
 
+    Map<String, CommandParameterInfo> deviceEnergyManagementModechangeToModeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo deviceEnergyManagementModechangeToModenewModeCommandParameterInfo = new CommandParameterInfo("newMode", Integer.class, Integer.class);
+    deviceEnergyManagementModechangeToModeCommandParams.put("newMode",deviceEnergyManagementModechangeToModenewModeCommandParameterInfo);
+    InteractionInfo deviceEnergyManagementModechangeToModeInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.DeviceEnergyManagementModeCluster) cluster)
+          .changeToMode((ChipClusters.DeviceEnergyManagementModeCluster.ChangeToModeResponseCallback) callback
            , (Integer)
-             commandArguments.get("sceneIdentifierTo")
+             commandArguments.get("newMode")
 
             );
         },
-        () -> new DelegatedScenesManagementClusterCopySceneResponseCallback(),
-        scenesManagementcopySceneCommandParams
+        () -> new DelegatedDeviceEnergyManagementModeClusterChangeToModeResponseCallback(),
+        deviceEnergyManagementModechangeToModeCommandParams
       );
-    scenesManagementClusterInteractionInfoMap.put("copyScene", scenesManagementcopySceneInteractionInfo);
+    deviceEnergyManagementModeClusterInteractionInfoMap.put("changeToMode", deviceEnergyManagementModechangeToModeInteractionInfo);
 
-    commandMap.put("scenesManagement", scenesManagementClusterInteractionInfoMap);
+    commandMap.put("deviceEnergyManagementMode", deviceEnergyManagementModeClusterInteractionInfoMap);
 
-    Map<String, InteractionInfo> hepaFilterMonitoringClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, InteractionInfo> doorLockClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    Map<String, CommandParameterInfo> hepaFilterMonitoringresetConditionCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo hepaFilterMonitoringresetConditionInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> doorLocklockDoorCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo doorLocklockDoorPINCodeCommandParameterInfo = new CommandParameterInfo("PINCode", Optional.class, byte[].class);
+    doorLocklockDoorCommandParams.put("PINCode",doorLocklockDoorPINCodeCommandParameterInfo);
+    InteractionInfo doorLocklockDoorInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.HepaFilterMonitoringCluster) cluster)
-        .resetCondition((DefaultClusterCallback) callback
+        ((ChipClusters.DoorLockCluster) cluster)
+        .lockDoor((DefaultClusterCallback) callback
+        , (Optional<byte[]>)
+        commandArguments.get("PINCode"), 10000
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        hepaFilterMonitoringresetConditionCommandParams
+        doorLocklockDoorCommandParams
     );
-    hepaFilterMonitoringClusterInteractionInfoMap.put("resetCondition", hepaFilterMonitoringresetConditionInteractionInfo);
+    doorLockClusterInteractionInfoMap.put("lockDoor", doorLocklockDoorInteractionInfo);
 
-    commandMap.put("hepaFilterMonitoring", hepaFilterMonitoringClusterInteractionInfoMap);
+    Map<String, CommandParameterInfo> doorLockunlockDoorCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, InteractionInfo> activatedCarbonFilterMonitoringClusterInteractionInfoMap = new LinkedHashMap<>();
+    CommandParameterInfo doorLockunlockDoorPINCodeCommandParameterInfo = new CommandParameterInfo("PINCode", Optional.class, byte[].class);
+    doorLockunlockDoorCommandParams.put("PINCode",doorLockunlockDoorPINCodeCommandParameterInfo);
+    InteractionInfo doorLockunlockDoorInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.DoorLockCluster) cluster)
+        .unlockDoor((DefaultClusterCallback) callback
+        , (Optional<byte[]>)
+        commandArguments.get("PINCode"), 10000
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        doorLockunlockDoorCommandParams
+    );
+    doorLockClusterInteractionInfoMap.put("unlockDoor", doorLockunlockDoorInteractionInfo);
 
-    Map<String, CommandParameterInfo> activatedCarbonFilterMonitoringresetConditionCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo activatedCarbonFilterMonitoringresetConditionInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> doorLockunlockWithTimeoutCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo doorLockunlockWithTimeouttimeoutCommandParameterInfo = new CommandParameterInfo("timeout", Integer.class, Integer.class);
+    doorLockunlockWithTimeoutCommandParams.put("timeout",doorLockunlockWithTimeouttimeoutCommandParameterInfo);
+
+    CommandParameterInfo doorLockunlockWithTimeoutPINCodeCommandParameterInfo = new CommandParameterInfo("PINCode", Optional.class, byte[].class);
+    doorLockunlockWithTimeoutCommandParams.put("PINCode",doorLockunlockWithTimeoutPINCodeCommandParameterInfo);
+    InteractionInfo doorLockunlockWithTimeoutInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ActivatedCarbonFilterMonitoringCluster) cluster)
-        .resetCondition((DefaultClusterCallback) callback
+        ((ChipClusters.DoorLockCluster) cluster)
+        .unlockWithTimeout((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("timeout")
+        , (Optional<byte[]>)
+        commandArguments.get("PINCode"), 10000
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        activatedCarbonFilterMonitoringresetConditionCommandParams
+        doorLockunlockWithTimeoutCommandParams
     );
-    activatedCarbonFilterMonitoringClusterInteractionInfoMap.put("resetCondition", activatedCarbonFilterMonitoringresetConditionInteractionInfo);
+    doorLockClusterInteractionInfoMap.put("unlockWithTimeout", doorLockunlockWithTimeoutInteractionInfo);
 
-    commandMap.put("activatedCarbonFilterMonitoring", activatedCarbonFilterMonitoringClusterInteractionInfoMap);
+    Map<String, CommandParameterInfo> doorLocksetWeekDayScheduleCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, InteractionInfo> booleanStateConfigurationClusterInteractionInfoMap = new LinkedHashMap<>();
+    CommandParameterInfo doorLocksetWeekDayScheduleweekDayIndexCommandParameterInfo = new CommandParameterInfo("weekDayIndex", Integer.class, Integer.class);
+    doorLocksetWeekDayScheduleCommandParams.put("weekDayIndex",doorLocksetWeekDayScheduleweekDayIndexCommandParameterInfo);
 
-    Map<String, CommandParameterInfo> booleanStateConfigurationsuppressAlarmCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo doorLocksetWeekDayScheduleuserIndexCommandParameterInfo = new CommandParameterInfo("userIndex", Integer.class, Integer.class);
+    doorLocksetWeekDayScheduleCommandParams.put("userIndex",doorLocksetWeekDayScheduleuserIndexCommandParameterInfo);
 
-    CommandParameterInfo booleanStateConfigurationsuppressAlarmalarmsToSuppressCommandParameterInfo = new CommandParameterInfo("alarmsToSuppress", Integer.class, Integer.class);
-    booleanStateConfigurationsuppressAlarmCommandParams.put("alarmsToSuppress",booleanStateConfigurationsuppressAlarmalarmsToSuppressCommandParameterInfo);
-    InteractionInfo booleanStateConfigurationsuppressAlarmInteractionInfo = new InteractionInfo(
+    CommandParameterInfo doorLocksetWeekDayScheduledaysMaskCommandParameterInfo = new CommandParameterInfo("daysMask", Integer.class, Integer.class);
+    doorLocksetWeekDayScheduleCommandParams.put("daysMask",doorLocksetWeekDayScheduledaysMaskCommandParameterInfo);
+
+    CommandParameterInfo doorLocksetWeekDaySchedulestartHourCommandParameterInfo = new CommandParameterInfo("startHour", Integer.class, Integer.class);
+    doorLocksetWeekDayScheduleCommandParams.put("startHour",doorLocksetWeekDaySchedulestartHourCommandParameterInfo);
+
+    CommandParameterInfo doorLocksetWeekDaySchedulestartMinuteCommandParameterInfo = new CommandParameterInfo("startMinute", Integer.class, Integer.class);
+    doorLocksetWeekDayScheduleCommandParams.put("startMinute",doorLocksetWeekDaySchedulestartMinuteCommandParameterInfo);
+
+    CommandParameterInfo doorLocksetWeekDayScheduleendHourCommandParameterInfo = new CommandParameterInfo("endHour", Integer.class, Integer.class);
+    doorLocksetWeekDayScheduleCommandParams.put("endHour",doorLocksetWeekDayScheduleendHourCommandParameterInfo);
+
+    CommandParameterInfo doorLocksetWeekDayScheduleendMinuteCommandParameterInfo = new CommandParameterInfo("endMinute", Integer.class, Integer.class);
+    doorLocksetWeekDayScheduleCommandParams.put("endMinute",doorLocksetWeekDayScheduleendMinuteCommandParameterInfo);
+    InteractionInfo doorLocksetWeekDayScheduleInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.BooleanStateConfigurationCluster) cluster)
-        .suppressAlarm((DefaultClusterCallback) callback
+        ((ChipClusters.DoorLockCluster) cluster)
+        .setWeekDaySchedule((DefaultClusterCallback) callback
         , (Integer)
-        commandArguments.get("alarmsToSuppress")
+        commandArguments.get("weekDayIndex")
+        , (Integer)
+        commandArguments.get("userIndex")
+        , (Integer)
+        commandArguments.get("daysMask")
+        , (Integer)
+        commandArguments.get("startHour")
+        , (Integer)
+        commandArguments.get("startMinute")
+        , (Integer)
+        commandArguments.get("endHour")
+        , (Integer)
+        commandArguments.get("endMinute")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        booleanStateConfigurationsuppressAlarmCommandParams
+        doorLocksetWeekDayScheduleCommandParams
     );
-    booleanStateConfigurationClusterInteractionInfoMap.put("suppressAlarm", booleanStateConfigurationsuppressAlarmInteractionInfo);
+    doorLockClusterInteractionInfoMap.put("setWeekDaySchedule", doorLocksetWeekDayScheduleInteractionInfo);
 
-    Map<String, CommandParameterInfo> booleanStateConfigurationenableDisableAlarmCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> doorLockgetWeekDayScheduleCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo booleanStateConfigurationenableDisableAlarmalarmsToEnableDisableCommandParameterInfo = new CommandParameterInfo("alarmsToEnableDisable", Integer.class, Integer.class);
-    booleanStateConfigurationenableDisableAlarmCommandParams.put("alarmsToEnableDisable",booleanStateConfigurationenableDisableAlarmalarmsToEnableDisableCommandParameterInfo);
-    InteractionInfo booleanStateConfigurationenableDisableAlarmInteractionInfo = new InteractionInfo(
+    CommandParameterInfo doorLockgetWeekDayScheduleweekDayIndexCommandParameterInfo = new CommandParameterInfo("weekDayIndex", Integer.class, Integer.class);
+    doorLockgetWeekDayScheduleCommandParams.put("weekDayIndex",doorLockgetWeekDayScheduleweekDayIndexCommandParameterInfo);
+
+    CommandParameterInfo doorLockgetWeekDayScheduleuserIndexCommandParameterInfo = new CommandParameterInfo("userIndex", Integer.class, Integer.class);
+    doorLockgetWeekDayScheduleCommandParams.put("userIndex",doorLockgetWeekDayScheduleuserIndexCommandParameterInfo);
+    InteractionInfo doorLockgetWeekDayScheduleInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.BooleanStateConfigurationCluster) cluster)
-        .enableDisableAlarm((DefaultClusterCallback) callback
+        ((ChipClusters.DoorLockCluster) cluster)
+          .getWeekDaySchedule((ChipClusters.DoorLockCluster.GetWeekDayScheduleResponseCallback) callback
+           , (Integer)
+             commandArguments.get("weekDayIndex")
+
+           , (Integer)
+             commandArguments.get("userIndex")
+
+            );
+        },
+        () -> new DelegatedDoorLockClusterGetWeekDayScheduleResponseCallback(),
+        doorLockgetWeekDayScheduleCommandParams
+      );
+    doorLockClusterInteractionInfoMap.put("getWeekDaySchedule", doorLockgetWeekDayScheduleInteractionInfo);
+
+    Map<String, CommandParameterInfo> doorLockclearWeekDayScheduleCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo doorLockclearWeekDayScheduleweekDayIndexCommandParameterInfo = new CommandParameterInfo("weekDayIndex", Integer.class, Integer.class);
+    doorLockclearWeekDayScheduleCommandParams.put("weekDayIndex",doorLockclearWeekDayScheduleweekDayIndexCommandParameterInfo);
+
+    CommandParameterInfo doorLockclearWeekDayScheduleuserIndexCommandParameterInfo = new CommandParameterInfo("userIndex", Integer.class, Integer.class);
+    doorLockclearWeekDayScheduleCommandParams.put("userIndex",doorLockclearWeekDayScheduleuserIndexCommandParameterInfo);
+    InteractionInfo doorLockclearWeekDayScheduleInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.DoorLockCluster) cluster)
+        .clearWeekDaySchedule((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("weekDayIndex")
         , (Integer)
-        commandArguments.get("alarmsToEnableDisable")
+        commandArguments.get("userIndex")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        booleanStateConfigurationenableDisableAlarmCommandParams
+        doorLockclearWeekDayScheduleCommandParams
     );
-    booleanStateConfigurationClusterInteractionInfoMap.put("enableDisableAlarm", booleanStateConfigurationenableDisableAlarmInteractionInfo);
-
-    commandMap.put("booleanStateConfiguration", booleanStateConfigurationClusterInteractionInfoMap);
+    doorLockClusterInteractionInfoMap.put("clearWeekDaySchedule", doorLockclearWeekDayScheduleInteractionInfo);
 
-    Map<String, InteractionInfo> valveConfigurationAndControlClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, CommandParameterInfo> doorLocksetYearDayScheduleCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, CommandParameterInfo> valveConfigurationAndControlopenCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo doorLocksetYearDayScheduleyearDayIndexCommandParameterInfo = new CommandParameterInfo("yearDayIndex", Integer.class, Integer.class);
+    doorLocksetYearDayScheduleCommandParams.put("yearDayIndex",doorLocksetYearDayScheduleyearDayIndexCommandParameterInfo);
 
-    CommandParameterInfo valveConfigurationAndControlopenopenDurationCommandParameterInfo = new CommandParameterInfo("openDuration", Optional.class, Long.class);
-    valveConfigurationAndControlopenCommandParams.put("openDuration",valveConfigurationAndControlopenopenDurationCommandParameterInfo);
+    CommandParameterInfo doorLocksetYearDayScheduleuserIndexCommandParameterInfo = new CommandParameterInfo("userIndex", Integer.class, Integer.class);
+    doorLocksetYearDayScheduleCommandParams.put("userIndex",doorLocksetYearDayScheduleuserIndexCommandParameterInfo);
 
-    CommandParameterInfo valveConfigurationAndControlopentargetLevelCommandParameterInfo = new CommandParameterInfo("targetLevel", Optional.class, Integer.class);
-    valveConfigurationAndControlopenCommandParams.put("targetLevel",valveConfigurationAndControlopentargetLevelCommandParameterInfo);
-    InteractionInfo valveConfigurationAndControlopenInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ValveConfigurationAndControlCluster) cluster)
-        .open((DefaultClusterCallback) callback
-        , (Optional<Long>)
-        commandArguments.get("openDuration")
-        , (Optional<Integer>)
-        commandArguments.get("targetLevel")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        valveConfigurationAndControlopenCommandParams
-    );
-    valveConfigurationAndControlClusterInteractionInfoMap.put("open", valveConfigurationAndControlopenInteractionInfo);
+    CommandParameterInfo doorLocksetYearDaySchedulelocalStartTimeCommandParameterInfo = new CommandParameterInfo("localStartTime", Long.class, Long.class);
+    doorLocksetYearDayScheduleCommandParams.put("localStartTime",doorLocksetYearDaySchedulelocalStartTimeCommandParameterInfo);
 
-    Map<String, CommandParameterInfo> valveConfigurationAndControlcloseCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo valveConfigurationAndControlcloseInteractionInfo = new InteractionInfo(
+    CommandParameterInfo doorLocksetYearDaySchedulelocalEndTimeCommandParameterInfo = new CommandParameterInfo("localEndTime", Long.class, Long.class);
+    doorLocksetYearDayScheduleCommandParams.put("localEndTime",doorLocksetYearDaySchedulelocalEndTimeCommandParameterInfo);
+    InteractionInfo doorLocksetYearDayScheduleInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ValveConfigurationAndControlCluster) cluster)
-        .close((DefaultClusterCallback) callback
+        ((ChipClusters.DoorLockCluster) cluster)
+        .setYearDaySchedule((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("yearDayIndex")
+        , (Integer)
+        commandArguments.get("userIndex")
+        , (Long)
+        commandArguments.get("localStartTime")
+        , (Long)
+        commandArguments.get("localEndTime")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        valveConfigurationAndControlcloseCommandParams
+        doorLocksetYearDayScheduleCommandParams
     );
-    valveConfigurationAndControlClusterInteractionInfoMap.put("close", valveConfigurationAndControlcloseInteractionInfo);
+    doorLockClusterInteractionInfoMap.put("setYearDaySchedule", doorLocksetYearDayScheduleInteractionInfo);
 
-    commandMap.put("valveConfigurationAndControl", valveConfigurationAndControlClusterInteractionInfoMap);
+    Map<String, CommandParameterInfo> doorLockgetYearDayScheduleCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, InteractionInfo> electricalPowerMeasurementClusterInteractionInfoMap = new LinkedHashMap<>();
+    CommandParameterInfo doorLockgetYearDayScheduleyearDayIndexCommandParameterInfo = new CommandParameterInfo("yearDayIndex", Integer.class, Integer.class);
+    doorLockgetYearDayScheduleCommandParams.put("yearDayIndex",doorLockgetYearDayScheduleyearDayIndexCommandParameterInfo);
 
-    commandMap.put("electricalPowerMeasurement", electricalPowerMeasurementClusterInteractionInfoMap);
+    CommandParameterInfo doorLockgetYearDayScheduleuserIndexCommandParameterInfo = new CommandParameterInfo("userIndex", Integer.class, Integer.class);
+    doorLockgetYearDayScheduleCommandParams.put("userIndex",doorLockgetYearDayScheduleuserIndexCommandParameterInfo);
+    InteractionInfo doorLockgetYearDayScheduleInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.DoorLockCluster) cluster)
+          .getYearDaySchedule((ChipClusters.DoorLockCluster.GetYearDayScheduleResponseCallback) callback
+           , (Integer)
+             commandArguments.get("yearDayIndex")
 
-    Map<String, InteractionInfo> electricalEnergyMeasurementClusterInteractionInfoMap = new LinkedHashMap<>();
+           , (Integer)
+             commandArguments.get("userIndex")
 
-    commandMap.put("electricalEnergyMeasurement", electricalEnergyMeasurementClusterInteractionInfoMap);
+            );
+        },
+        () -> new DelegatedDoorLockClusterGetYearDayScheduleResponseCallback(),
+        doorLockgetYearDayScheduleCommandParams
+      );
+    doorLockClusterInteractionInfoMap.put("getYearDaySchedule", doorLockgetYearDayScheduleInteractionInfo);
 
-    Map<String, InteractionInfo> waterHeaterManagementClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, CommandParameterInfo> doorLockclearYearDayScheduleCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, CommandParameterInfo> waterHeaterManagementboostCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo doorLockclearYearDayScheduleyearDayIndexCommandParameterInfo = new CommandParameterInfo("yearDayIndex", Integer.class, Integer.class);
+    doorLockclearYearDayScheduleCommandParams.put("yearDayIndex",doorLockclearYearDayScheduleyearDayIndexCommandParameterInfo);
 
-    InteractionInfo waterHeaterManagementboostInteractionInfo = new InteractionInfo(
+    CommandParameterInfo doorLockclearYearDayScheduleuserIndexCommandParameterInfo = new CommandParameterInfo("userIndex", Integer.class, Integer.class);
+    doorLockclearYearDayScheduleCommandParams.put("userIndex",doorLockclearYearDayScheduleuserIndexCommandParameterInfo);
+    InteractionInfo doorLockclearYearDayScheduleInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.WaterHeaterManagementCluster) cluster)
-        .boost((DefaultClusterCallback) callback
-        , (ChipStructs.WaterHeaterManagementClusterWaterHeaterBoostInfoStruct)
-        commandArguments.get("boostInfo")
+        ((ChipClusters.DoorLockCluster) cluster)
+        .clearYearDaySchedule((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("yearDayIndex")
+        , (Integer)
+        commandArguments.get("userIndex")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        waterHeaterManagementboostCommandParams
+        doorLockclearYearDayScheduleCommandParams
     );
-    waterHeaterManagementClusterInteractionInfoMap.put("boost", waterHeaterManagementboostInteractionInfo);
+    doorLockClusterInteractionInfoMap.put("clearYearDaySchedule", doorLockclearYearDayScheduleInteractionInfo);
 
-    Map<String, CommandParameterInfo> waterHeaterManagementcancelBoostCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo waterHeaterManagementcancelBoostInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.WaterHeaterManagementCluster) cluster)
-        .cancelBoost((DefaultClusterCallback) callback
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        waterHeaterManagementcancelBoostCommandParams
-    );
-    waterHeaterManagementClusterInteractionInfoMap.put("cancelBoost", waterHeaterManagementcancelBoostInteractionInfo);
+    Map<String, CommandParameterInfo> doorLocksetHolidayScheduleCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    commandMap.put("waterHeaterManagement", waterHeaterManagementClusterInteractionInfoMap);
+    CommandParameterInfo doorLocksetHolidayScheduleholidayIndexCommandParameterInfo = new CommandParameterInfo("holidayIndex", Integer.class, Integer.class);
+    doorLocksetHolidayScheduleCommandParams.put("holidayIndex",doorLocksetHolidayScheduleholidayIndexCommandParameterInfo);
 
-    Map<String, InteractionInfo> demandResponseLoadControlClusterInteractionInfoMap = new LinkedHashMap<>();
+    CommandParameterInfo doorLocksetHolidaySchedulelocalStartTimeCommandParameterInfo = new CommandParameterInfo("localStartTime", Long.class, Long.class);
+    doorLocksetHolidayScheduleCommandParams.put("localStartTime",doorLocksetHolidaySchedulelocalStartTimeCommandParameterInfo);
 
-    Map<String, CommandParameterInfo> demandResponseLoadControlregisterLoadControlProgramRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo doorLocksetHolidaySchedulelocalEndTimeCommandParameterInfo = new CommandParameterInfo("localEndTime", Long.class, Long.class);
+    doorLocksetHolidayScheduleCommandParams.put("localEndTime",doorLocksetHolidaySchedulelocalEndTimeCommandParameterInfo);
 
-    InteractionInfo demandResponseLoadControlregisterLoadControlProgramRequestInteractionInfo = new InteractionInfo(
+    CommandParameterInfo doorLocksetHolidayScheduleoperatingModeCommandParameterInfo = new CommandParameterInfo("operatingMode", Integer.class, Integer.class);
+    doorLocksetHolidayScheduleCommandParams.put("operatingMode",doorLocksetHolidayScheduleoperatingModeCommandParameterInfo);
+    InteractionInfo doorLocksetHolidayScheduleInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DemandResponseLoadControlCluster) cluster)
-        .registerLoadControlProgramRequest((DefaultClusterCallback) callback
-        , (ChipStructs.DemandResponseLoadControlClusterLoadControlProgramStruct)
-        commandArguments.get("loadControlProgram")
+        ((ChipClusters.DoorLockCluster) cluster)
+        .setHolidaySchedule((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("holidayIndex")
+        , (Long)
+        commandArguments.get("localStartTime")
+        , (Long)
+        commandArguments.get("localEndTime")
+        , (Integer)
+        commandArguments.get("operatingMode")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        demandResponseLoadControlregisterLoadControlProgramRequestCommandParams
+        doorLocksetHolidayScheduleCommandParams
     );
-    demandResponseLoadControlClusterInteractionInfoMap.put("registerLoadControlProgramRequest", demandResponseLoadControlregisterLoadControlProgramRequestInteractionInfo);
+    doorLockClusterInteractionInfoMap.put("setHolidaySchedule", doorLocksetHolidayScheduleInteractionInfo);
 
-    Map<String, CommandParameterInfo> demandResponseLoadControlunregisterLoadControlProgramRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> doorLockgetHolidayScheduleCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo demandResponseLoadControlunregisterLoadControlProgramRequestloadControlProgramIDCommandParameterInfo = new CommandParameterInfo("loadControlProgramID", byte[].class, byte[].class);
-    demandResponseLoadControlunregisterLoadControlProgramRequestCommandParams.put("loadControlProgramID",demandResponseLoadControlunregisterLoadControlProgramRequestloadControlProgramIDCommandParameterInfo);
-    InteractionInfo demandResponseLoadControlunregisterLoadControlProgramRequestInteractionInfo = new InteractionInfo(
+    CommandParameterInfo doorLockgetHolidayScheduleholidayIndexCommandParameterInfo = new CommandParameterInfo("holidayIndex", Integer.class, Integer.class);
+    doorLockgetHolidayScheduleCommandParams.put("holidayIndex",doorLockgetHolidayScheduleholidayIndexCommandParameterInfo);
+    InteractionInfo doorLockgetHolidayScheduleInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DemandResponseLoadControlCluster) cluster)
-        .unregisterLoadControlProgramRequest((DefaultClusterCallback) callback
-        , (byte[])
-        commandArguments.get("loadControlProgramID")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        demandResponseLoadControlunregisterLoadControlProgramRequestCommandParams
-    );
-    demandResponseLoadControlClusterInteractionInfoMap.put("unregisterLoadControlProgramRequest", demandResponseLoadControlunregisterLoadControlProgramRequestInteractionInfo);
+        ((ChipClusters.DoorLockCluster) cluster)
+          .getHolidaySchedule((ChipClusters.DoorLockCluster.GetHolidayScheduleResponseCallback) callback
+           , (Integer)
+             commandArguments.get("holidayIndex")
 
-    Map<String, CommandParameterInfo> demandResponseLoadControladdLoadControlEventRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+            );
+        },
+        () -> new DelegatedDoorLockClusterGetHolidayScheduleResponseCallback(),
+        doorLockgetHolidayScheduleCommandParams
+      );
+    doorLockClusterInteractionInfoMap.put("getHolidaySchedule", doorLockgetHolidayScheduleInteractionInfo);
 
-    InteractionInfo demandResponseLoadControladdLoadControlEventRequestInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> doorLockclearHolidayScheduleCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo doorLockclearHolidayScheduleholidayIndexCommandParameterInfo = new CommandParameterInfo("holidayIndex", Integer.class, Integer.class);
+    doorLockclearHolidayScheduleCommandParams.put("holidayIndex",doorLockclearHolidayScheduleholidayIndexCommandParameterInfo);
+    InteractionInfo doorLockclearHolidayScheduleInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DemandResponseLoadControlCluster) cluster)
-        .addLoadControlEventRequest((DefaultClusterCallback) callback
-        , (ChipStructs.DemandResponseLoadControlClusterLoadControlEventStruct)
-        commandArguments.get("event")
+        ((ChipClusters.DoorLockCluster) cluster)
+        .clearHolidaySchedule((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("holidayIndex")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        demandResponseLoadControladdLoadControlEventRequestCommandParams
+        doorLockclearHolidayScheduleCommandParams
     );
-    demandResponseLoadControlClusterInteractionInfoMap.put("addLoadControlEventRequest", demandResponseLoadControladdLoadControlEventRequestInteractionInfo);
+    doorLockClusterInteractionInfoMap.put("clearHolidaySchedule", doorLockclearHolidayScheduleInteractionInfo);
 
-    Map<String, CommandParameterInfo> demandResponseLoadControlremoveLoadControlEventRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> doorLocksetUserCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo demandResponseLoadControlremoveLoadControlEventRequesteventIDCommandParameterInfo = new CommandParameterInfo("eventID", byte[].class, byte[].class);
-    demandResponseLoadControlremoveLoadControlEventRequestCommandParams.put("eventID",demandResponseLoadControlremoveLoadControlEventRequesteventIDCommandParameterInfo);
+    CommandParameterInfo doorLocksetUseroperationTypeCommandParameterInfo = new CommandParameterInfo("operationType", Integer.class, Integer.class);
+    doorLocksetUserCommandParams.put("operationType",doorLocksetUseroperationTypeCommandParameterInfo);
 
-    CommandParameterInfo demandResponseLoadControlremoveLoadControlEventRequestcancelControlCommandParameterInfo = new CommandParameterInfo("cancelControl", Integer.class, Integer.class);
-    demandResponseLoadControlremoveLoadControlEventRequestCommandParams.put("cancelControl",demandResponseLoadControlremoveLoadControlEventRequestcancelControlCommandParameterInfo);
-    InteractionInfo demandResponseLoadControlremoveLoadControlEventRequestInteractionInfo = new InteractionInfo(
+    CommandParameterInfo doorLocksetUseruserIndexCommandParameterInfo = new CommandParameterInfo("userIndex", Integer.class, Integer.class);
+    doorLocksetUserCommandParams.put("userIndex",doorLocksetUseruserIndexCommandParameterInfo);
+
+    CommandParameterInfo doorLocksetUseruserNameCommandParameterInfo = new CommandParameterInfo("userName", String.class, String.class);
+    doorLocksetUserCommandParams.put("userName",doorLocksetUseruserNameCommandParameterInfo);
+
+    CommandParameterInfo doorLocksetUseruserUniqueIDCommandParameterInfo = new CommandParameterInfo("userUniqueID", Long.class, Long.class);
+    doorLocksetUserCommandParams.put("userUniqueID",doorLocksetUseruserUniqueIDCommandParameterInfo);
+
+    CommandParameterInfo doorLocksetUseruserStatusCommandParameterInfo = new CommandParameterInfo("userStatus", Integer.class, Integer.class);
+    doorLocksetUserCommandParams.put("userStatus",doorLocksetUseruserStatusCommandParameterInfo);
+
+    CommandParameterInfo doorLocksetUseruserTypeCommandParameterInfo = new CommandParameterInfo("userType", Integer.class, Integer.class);
+    doorLocksetUserCommandParams.put("userType",doorLocksetUseruserTypeCommandParameterInfo);
+
+    CommandParameterInfo doorLocksetUsercredentialRuleCommandParameterInfo = new CommandParameterInfo("credentialRule", Integer.class, Integer.class);
+    doorLocksetUserCommandParams.put("credentialRule",doorLocksetUsercredentialRuleCommandParameterInfo);
+    InteractionInfo doorLocksetUserInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DemandResponseLoadControlCluster) cluster)
-        .removeLoadControlEventRequest((DefaultClusterCallback) callback
-        , (byte[])
-        commandArguments.get("eventID")
+        ((ChipClusters.DoorLockCluster) cluster)
+        .setUser((DefaultClusterCallback) callback
         , (Integer)
-        commandArguments.get("cancelControl")
+        commandArguments.get("operationType")
+        , (Integer)
+        commandArguments.get("userIndex")
+        , (String)
+        commandArguments.get("userName")
+        , (Long)
+        commandArguments.get("userUniqueID")
+        , (Integer)
+        commandArguments.get("userStatus")
+        , (Integer)
+        commandArguments.get("userType")
+        , (Integer)
+        commandArguments.get("credentialRule"), 10000
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        demandResponseLoadControlremoveLoadControlEventRequestCommandParams
+        doorLocksetUserCommandParams
     );
-    demandResponseLoadControlClusterInteractionInfoMap.put("removeLoadControlEventRequest", demandResponseLoadControlremoveLoadControlEventRequestInteractionInfo);
+    doorLockClusterInteractionInfoMap.put("setUser", doorLocksetUserInteractionInfo);
+
+    Map<String, CommandParameterInfo> doorLockgetUserCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo doorLockgetUseruserIndexCommandParameterInfo = new CommandParameterInfo("userIndex", Integer.class, Integer.class);
+    doorLockgetUserCommandParams.put("userIndex",doorLockgetUseruserIndexCommandParameterInfo);
+    InteractionInfo doorLockgetUserInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.DoorLockCluster) cluster)
+          .getUser((ChipClusters.DoorLockCluster.GetUserResponseCallback) callback
+           , (Integer)
+             commandArguments.get("userIndex")
 
-    Map<String, CommandParameterInfo> demandResponseLoadControlclearLoadControlEventsRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo demandResponseLoadControlclearLoadControlEventsRequestInteractionInfo = new InteractionInfo(
+            );
+        },
+        () -> new DelegatedDoorLockClusterGetUserResponseCallback(),
+        doorLockgetUserCommandParams
+      );
+    doorLockClusterInteractionInfoMap.put("getUser", doorLockgetUserInteractionInfo);
+
+    Map<String, CommandParameterInfo> doorLockclearUserCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo doorLockclearUseruserIndexCommandParameterInfo = new CommandParameterInfo("userIndex", Integer.class, Integer.class);
+    doorLockclearUserCommandParams.put("userIndex",doorLockclearUseruserIndexCommandParameterInfo);
+    InteractionInfo doorLockclearUserInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DemandResponseLoadControlCluster) cluster)
-        .clearLoadControlEventsRequest((DefaultClusterCallback) callback
+        ((ChipClusters.DoorLockCluster) cluster)
+        .clearUser((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("userIndex"), 10000
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        demandResponseLoadControlclearLoadControlEventsRequestCommandParams
+        doorLockclearUserCommandParams
     );
-    demandResponseLoadControlClusterInteractionInfoMap.put("clearLoadControlEventsRequest", demandResponseLoadControlclearLoadControlEventsRequestInteractionInfo);
+    doorLockClusterInteractionInfoMap.put("clearUser", doorLockclearUserInteractionInfo);
 
-    commandMap.put("demandResponseLoadControl", demandResponseLoadControlClusterInteractionInfoMap);
+    Map<String, CommandParameterInfo> doorLocksetCredentialCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, InteractionInfo> messagesClusterInteractionInfoMap = new LinkedHashMap<>();
+    CommandParameterInfo doorLocksetCredentialoperationTypeCommandParameterInfo = new CommandParameterInfo("operationType", Integer.class, Integer.class);
+    doorLocksetCredentialCommandParams.put("operationType",doorLocksetCredentialoperationTypeCommandParameterInfo);
 
-    Map<String, CommandParameterInfo> messagespresentMessagesRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo messagespresentMessagesRequestmessageIDCommandParameterInfo = new CommandParameterInfo("messageID", byte[].class, byte[].class);
-    messagespresentMessagesRequestCommandParams.put("messageID",messagespresentMessagesRequestmessageIDCommandParameterInfo);
+    CommandParameterInfo doorLocksetCredentialcredentialDataCommandParameterInfo = new CommandParameterInfo("credentialData", byte[].class, byte[].class);
+    doorLocksetCredentialCommandParams.put("credentialData",doorLocksetCredentialcredentialDataCommandParameterInfo);
 
-    CommandParameterInfo messagespresentMessagesRequestpriorityCommandParameterInfo = new CommandParameterInfo("priority", Integer.class, Integer.class);
-    messagespresentMessagesRequestCommandParams.put("priority",messagespresentMessagesRequestpriorityCommandParameterInfo);
+    CommandParameterInfo doorLocksetCredentialuserIndexCommandParameterInfo = new CommandParameterInfo("userIndex", Integer.class, Integer.class);
+    doorLocksetCredentialCommandParams.put("userIndex",doorLocksetCredentialuserIndexCommandParameterInfo);
 
-    CommandParameterInfo messagespresentMessagesRequestmessageControlCommandParameterInfo = new CommandParameterInfo("messageControl", Integer.class, Integer.class);
-    messagespresentMessagesRequestCommandParams.put("messageControl",messagespresentMessagesRequestmessageControlCommandParameterInfo);
+    CommandParameterInfo doorLocksetCredentialuserStatusCommandParameterInfo = new CommandParameterInfo("userStatus", Integer.class, Integer.class);
+    doorLocksetCredentialCommandParams.put("userStatus",doorLocksetCredentialuserStatusCommandParameterInfo);
 
-    CommandParameterInfo messagespresentMessagesRequeststartTimeCommandParameterInfo = new CommandParameterInfo("startTime", Long.class, Long.class);
-    messagespresentMessagesRequestCommandParams.put("startTime",messagespresentMessagesRequeststartTimeCommandParameterInfo);
+    CommandParameterInfo doorLocksetCredentialuserTypeCommandParameterInfo = new CommandParameterInfo("userType", Integer.class, Integer.class);
+    doorLocksetCredentialCommandParams.put("userType",doorLocksetCredentialuserTypeCommandParameterInfo);
+    InteractionInfo doorLocksetCredentialInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.DoorLockCluster) cluster)
+          .setCredential((ChipClusters.DoorLockCluster.SetCredentialResponseCallback) callback
+           , (Integer)
+             commandArguments.get("operationType")
 
-    CommandParameterInfo messagespresentMessagesRequestdurationCommandParameterInfo = new CommandParameterInfo("duration", Long.class, Long.class);
-    messagespresentMessagesRequestCommandParams.put("duration",messagespresentMessagesRequestdurationCommandParameterInfo);
+           , (ChipStructs.DoorLockClusterCredentialStruct)
+             commandArguments.get("credential")
 
-    CommandParameterInfo messagespresentMessagesRequestmessageTextCommandParameterInfo = new CommandParameterInfo("messageText", String.class, String.class);
-    messagespresentMessagesRequestCommandParams.put("messageText",messagespresentMessagesRequestmessageTextCommandParameterInfo);
+           , (byte[])
+             commandArguments.get("credentialData")
 
-    InteractionInfo messagespresentMessagesRequestInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.MessagesCluster) cluster)
-        .presentMessagesRequest((DefaultClusterCallback) callback
-        , (byte[])
-        commandArguments.get("messageID")
-        , (Integer)
-        commandArguments.get("priority")
-        , (Integer)
-        commandArguments.get("messageControl")
-        , (Long)
-        commandArguments.get("startTime")
-        , (Long)
-        commandArguments.get("duration")
-        , (String)
-        commandArguments.get("messageText")
-        , (Optional<ArrayList<ChipStructs.MessagesClusterMessageResponseOptionStruct>>)
-        commandArguments.get("responses")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        messagespresentMessagesRequestCommandParams
-    );
-    messagesClusterInteractionInfoMap.put("presentMessagesRequest", messagespresentMessagesRequestInteractionInfo);
+           , (Integer)
+             commandArguments.get("userIndex")
 
-    Map<String, CommandParameterInfo> messagescancelMessagesRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+           , (Integer)
+             commandArguments.get("userStatus")
 
-    CommandParameterInfo messagescancelMessagesRequestmessageIDsCommandParameterInfo = new CommandParameterInfo("messageIDs", ArrayList.class, ArrayList.class);
-    messagescancelMessagesRequestCommandParams.put("messageIDs",messagescancelMessagesRequestmessageIDsCommandParameterInfo);
-    InteractionInfo messagescancelMessagesRequestInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.MessagesCluster) cluster)
-        .cancelMessagesRequest((DefaultClusterCallback) callback
-        , (ArrayList<byte[]>)
-        commandArguments.get("messageIDs")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        messagescancelMessagesRequestCommandParams
-    );
-    messagesClusterInteractionInfoMap.put("cancelMessagesRequest", messagescancelMessagesRequestInteractionInfo);
+           , (Integer)
+             commandArguments.get("userType")
 
-    commandMap.put("messages", messagesClusterInteractionInfoMap);
+            , 10000);
+        },
+        () -> new DelegatedDoorLockClusterSetCredentialResponseCallback(),
+        doorLocksetCredentialCommandParams
+      );
+    doorLockClusterInteractionInfoMap.put("setCredential", doorLocksetCredentialInteractionInfo);
 
-    Map<String, InteractionInfo> deviceEnergyManagementClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, CommandParameterInfo> doorLockgetCredentialStatusCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, CommandParameterInfo> deviceEnergyManagementpowerAdjustRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo doorLockgetCredentialStatusInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.DoorLockCluster) cluster)
+          .getCredentialStatus((ChipClusters.DoorLockCluster.GetCredentialStatusResponseCallback) callback
+           , (ChipStructs.DoorLockClusterCredentialStruct)
+             commandArguments.get("credential")
 
-    CommandParameterInfo deviceEnergyManagementpowerAdjustRequestpowerCommandParameterInfo = new CommandParameterInfo("power", Long.class, Long.class);
-    deviceEnergyManagementpowerAdjustRequestCommandParams.put("power",deviceEnergyManagementpowerAdjustRequestpowerCommandParameterInfo);
+            );
+        },
+        () -> new DelegatedDoorLockClusterGetCredentialStatusResponseCallback(),
+        doorLockgetCredentialStatusCommandParams
+      );
+    doorLockClusterInteractionInfoMap.put("getCredentialStatus", doorLockgetCredentialStatusInteractionInfo);
 
-    CommandParameterInfo deviceEnergyManagementpowerAdjustRequestdurationCommandParameterInfo = new CommandParameterInfo("duration", Long.class, Long.class);
-    deviceEnergyManagementpowerAdjustRequestCommandParams.put("duration",deviceEnergyManagementpowerAdjustRequestdurationCommandParameterInfo);
+    Map<String, CommandParameterInfo> doorLockclearCredentialCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo deviceEnergyManagementpowerAdjustRequestcauseCommandParameterInfo = new CommandParameterInfo("cause", Integer.class, Integer.class);
-    deviceEnergyManagementpowerAdjustRequestCommandParams.put("cause",deviceEnergyManagementpowerAdjustRequestcauseCommandParameterInfo);
-    InteractionInfo deviceEnergyManagementpowerAdjustRequestInteractionInfo = new InteractionInfo(
+    InteractionInfo doorLockclearCredentialInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DeviceEnergyManagementCluster) cluster)
-        .powerAdjustRequest((DefaultClusterCallback) callback
-        , (Long)
-        commandArguments.get("power")
-        , (Long)
-        commandArguments.get("duration")
-        , (Integer)
-        commandArguments.get("cause")
+        ((ChipClusters.DoorLockCluster) cluster)
+        .clearCredential((DefaultClusterCallback) callback
+        , (ChipStructs.DoorLockClusterCredentialStruct)
+        commandArguments.get("credential"), 10000
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        deviceEnergyManagementpowerAdjustRequestCommandParams
+        doorLockclearCredentialCommandParams
     );
-    deviceEnergyManagementClusterInteractionInfoMap.put("powerAdjustRequest", deviceEnergyManagementpowerAdjustRequestInteractionInfo);
+    doorLockClusterInteractionInfoMap.put("clearCredential", doorLockclearCredentialInteractionInfo);
 
-    Map<String, CommandParameterInfo> deviceEnergyManagementcancelPowerAdjustRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo deviceEnergyManagementcancelPowerAdjustRequestInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> doorLockunboltDoorCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo doorLockunboltDoorPINCodeCommandParameterInfo = new CommandParameterInfo("PINCode", Optional.class, byte[].class);
+    doorLockunboltDoorCommandParams.put("PINCode",doorLockunboltDoorPINCodeCommandParameterInfo);
+    InteractionInfo doorLockunboltDoorInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DeviceEnergyManagementCluster) cluster)
-        .cancelPowerAdjustRequest((DefaultClusterCallback) callback
+        ((ChipClusters.DoorLockCluster) cluster)
+        .unboltDoor((DefaultClusterCallback) callback
+        , (Optional<byte[]>)
+        commandArguments.get("PINCode"), 10000
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        deviceEnergyManagementcancelPowerAdjustRequestCommandParams
+        doorLockunboltDoorCommandParams
     );
-    deviceEnergyManagementClusterInteractionInfoMap.put("cancelPowerAdjustRequest", deviceEnergyManagementcancelPowerAdjustRequestInteractionInfo);
-
-    Map<String, CommandParameterInfo> deviceEnergyManagementstartTimeAdjustRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    doorLockClusterInteractionInfoMap.put("unboltDoor", doorLockunboltDoorInteractionInfo);
 
-    CommandParameterInfo deviceEnergyManagementstartTimeAdjustRequestrequestedStartTimeCommandParameterInfo = new CommandParameterInfo("requestedStartTime", Long.class, Long.class);
-    deviceEnergyManagementstartTimeAdjustRequestCommandParams.put("requestedStartTime",deviceEnergyManagementstartTimeAdjustRequestrequestedStartTimeCommandParameterInfo);
+    Map<String, CommandParameterInfo> doorLocksetAliroReaderConfigCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo deviceEnergyManagementstartTimeAdjustRequestcauseCommandParameterInfo = new CommandParameterInfo("cause", Integer.class, Integer.class);
-    deviceEnergyManagementstartTimeAdjustRequestCommandParams.put("cause",deviceEnergyManagementstartTimeAdjustRequestcauseCommandParameterInfo);
-    InteractionInfo deviceEnergyManagementstartTimeAdjustRequestInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DeviceEnergyManagementCluster) cluster)
-        .startTimeAdjustRequest((DefaultClusterCallback) callback
-        , (Long)
-        commandArguments.get("requestedStartTime")
-        , (Integer)
-        commandArguments.get("cause")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        deviceEnergyManagementstartTimeAdjustRequestCommandParams
-    );
-    deviceEnergyManagementClusterInteractionInfoMap.put("startTimeAdjustRequest", deviceEnergyManagementstartTimeAdjustRequestInteractionInfo);
+    CommandParameterInfo doorLocksetAliroReaderConfigsigningKeyCommandParameterInfo = new CommandParameterInfo("signingKey", byte[].class, byte[].class);
+    doorLocksetAliroReaderConfigCommandParams.put("signingKey",doorLocksetAliroReaderConfigsigningKeyCommandParameterInfo);
 
-    Map<String, CommandParameterInfo> deviceEnergyManagementpauseRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo doorLocksetAliroReaderConfigverificationKeyCommandParameterInfo = new CommandParameterInfo("verificationKey", byte[].class, byte[].class);
+    doorLocksetAliroReaderConfigCommandParams.put("verificationKey",doorLocksetAliroReaderConfigverificationKeyCommandParameterInfo);
 
-    CommandParameterInfo deviceEnergyManagementpauseRequestdurationCommandParameterInfo = new CommandParameterInfo("duration", Long.class, Long.class);
-    deviceEnergyManagementpauseRequestCommandParams.put("duration",deviceEnergyManagementpauseRequestdurationCommandParameterInfo);
+    CommandParameterInfo doorLocksetAliroReaderConfiggroupIdentifierCommandParameterInfo = new CommandParameterInfo("groupIdentifier", byte[].class, byte[].class);
+    doorLocksetAliroReaderConfigCommandParams.put("groupIdentifier",doorLocksetAliroReaderConfiggroupIdentifierCommandParameterInfo);
 
-    CommandParameterInfo deviceEnergyManagementpauseRequestcauseCommandParameterInfo = new CommandParameterInfo("cause", Integer.class, Integer.class);
-    deviceEnergyManagementpauseRequestCommandParams.put("cause",deviceEnergyManagementpauseRequestcauseCommandParameterInfo);
-    InteractionInfo deviceEnergyManagementpauseRequestInteractionInfo = new InteractionInfo(
+    CommandParameterInfo doorLocksetAliroReaderConfiggroupResolvingKeyCommandParameterInfo = new CommandParameterInfo("groupResolvingKey", Optional.class, byte[].class);
+    doorLocksetAliroReaderConfigCommandParams.put("groupResolvingKey",doorLocksetAliroReaderConfiggroupResolvingKeyCommandParameterInfo);
+    InteractionInfo doorLocksetAliroReaderConfigInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DeviceEnergyManagementCluster) cluster)
-        .pauseRequest((DefaultClusterCallback) callback
-        , (Long)
-        commandArguments.get("duration")
-        , (Integer)
-        commandArguments.get("cause")
+        ((ChipClusters.DoorLockCluster) cluster)
+        .setAliroReaderConfig((DefaultClusterCallback) callback
+        , (byte[])
+        commandArguments.get("signingKey")
+        , (byte[])
+        commandArguments.get("verificationKey")
+        , (byte[])
+        commandArguments.get("groupIdentifier")
+        , (Optional<byte[]>)
+        commandArguments.get("groupResolvingKey"), 10000
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        deviceEnergyManagementpauseRequestCommandParams
+        doorLocksetAliroReaderConfigCommandParams
     );
-    deviceEnergyManagementClusterInteractionInfoMap.put("pauseRequest", deviceEnergyManagementpauseRequestInteractionInfo);
+    doorLockClusterInteractionInfoMap.put("setAliroReaderConfig", doorLocksetAliroReaderConfigInteractionInfo);
 
-    Map<String, CommandParameterInfo> deviceEnergyManagementresumeRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo deviceEnergyManagementresumeRequestInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> doorLockclearAliroReaderConfigCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo doorLockclearAliroReaderConfigInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DeviceEnergyManagementCluster) cluster)
-        .resumeRequest((DefaultClusterCallback) callback
+        ((ChipClusters.DoorLockCluster) cluster)
+        .clearAliroReaderConfig((DefaultClusterCallback) callback, 10000
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        deviceEnergyManagementresumeRequestCommandParams
+        doorLockclearAliroReaderConfigCommandParams
     );
-    deviceEnergyManagementClusterInteractionInfoMap.put("resumeRequest", deviceEnergyManagementresumeRequestInteractionInfo);
-
-    Map<String, CommandParameterInfo> deviceEnergyManagementmodifyForecastRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    doorLockClusterInteractionInfoMap.put("clearAliroReaderConfig", doorLockclearAliroReaderConfigInteractionInfo);
 
-    CommandParameterInfo deviceEnergyManagementmodifyForecastRequestforecastIDCommandParameterInfo = new CommandParameterInfo("forecastID", Long.class, Long.class);
-    deviceEnergyManagementmodifyForecastRequestCommandParams.put("forecastID",deviceEnergyManagementmodifyForecastRequestforecastIDCommandParameterInfo);
+    commandMap.put("doorLock", doorLockClusterInteractionInfoMap);
 
+    Map<String, InteractionInfo> windowCoveringClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    CommandParameterInfo deviceEnergyManagementmodifyForecastRequestcauseCommandParameterInfo = new CommandParameterInfo("cause", Integer.class, Integer.class);
-    deviceEnergyManagementmodifyForecastRequestCommandParams.put("cause",deviceEnergyManagementmodifyForecastRequestcauseCommandParameterInfo);
-    InteractionInfo deviceEnergyManagementmodifyForecastRequestInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> windowCoveringupOrOpenCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo windowCoveringupOrOpenInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DeviceEnergyManagementCluster) cluster)
-        .modifyForecastRequest((DefaultClusterCallback) callback
-        , (Long)
-        commandArguments.get("forecastID")
-        , (ArrayList<ChipStructs.DeviceEnergyManagementClusterSlotAdjustmentStruct>)
-        commandArguments.get("slotAdjustments")
-        , (Integer)
-        commandArguments.get("cause")
+        ((ChipClusters.WindowCoveringCluster) cluster)
+        .upOrOpen((DefaultClusterCallback) callback
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        deviceEnergyManagementmodifyForecastRequestCommandParams
+        windowCoveringupOrOpenCommandParams
     );
-    deviceEnergyManagementClusterInteractionInfoMap.put("modifyForecastRequest", deviceEnergyManagementmodifyForecastRequestInteractionInfo);
-
-    Map<String, CommandParameterInfo> deviceEnergyManagementrequestConstraintBasedForecastCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-
+    windowCoveringClusterInteractionInfoMap.put("upOrOpen", windowCoveringupOrOpenInteractionInfo);
 
-    CommandParameterInfo deviceEnergyManagementrequestConstraintBasedForecastcauseCommandParameterInfo = new CommandParameterInfo("cause", Integer.class, Integer.class);
-    deviceEnergyManagementrequestConstraintBasedForecastCommandParams.put("cause",deviceEnergyManagementrequestConstraintBasedForecastcauseCommandParameterInfo);
-    InteractionInfo deviceEnergyManagementrequestConstraintBasedForecastInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> windowCoveringdownOrCloseCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo windowCoveringdownOrCloseInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DeviceEnergyManagementCluster) cluster)
-        .requestConstraintBasedForecast((DefaultClusterCallback) callback
-        , (ArrayList<ChipStructs.DeviceEnergyManagementClusterConstraintsStruct>)
-        commandArguments.get("constraints")
-        , (Integer)
-        commandArguments.get("cause")
+        ((ChipClusters.WindowCoveringCluster) cluster)
+        .downOrClose((DefaultClusterCallback) callback
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        deviceEnergyManagementrequestConstraintBasedForecastCommandParams
+        windowCoveringdownOrCloseCommandParams
     );
-    deviceEnergyManagementClusterInteractionInfoMap.put("requestConstraintBasedForecast", deviceEnergyManagementrequestConstraintBasedForecastInteractionInfo);
+    windowCoveringClusterInteractionInfoMap.put("downOrClose", windowCoveringdownOrCloseInteractionInfo);
 
-    Map<String, CommandParameterInfo> deviceEnergyManagementcancelRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo deviceEnergyManagementcancelRequestInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> windowCoveringstopMotionCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo windowCoveringstopMotionInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DeviceEnergyManagementCluster) cluster)
-        .cancelRequest((DefaultClusterCallback) callback
+        ((ChipClusters.WindowCoveringCluster) cluster)
+        .stopMotion((DefaultClusterCallback) callback
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        deviceEnergyManagementcancelRequestCommandParams
+        windowCoveringstopMotionCommandParams
     );
-    deviceEnergyManagementClusterInteractionInfoMap.put("cancelRequest", deviceEnergyManagementcancelRequestInteractionInfo);
-
-    commandMap.put("deviceEnergyManagement", deviceEnergyManagementClusterInteractionInfoMap);
+    windowCoveringClusterInteractionInfoMap.put("stopMotion", windowCoveringstopMotionInteractionInfo);
 
-    Map<String, InteractionInfo> energyEvseClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, CommandParameterInfo> windowCoveringgoToLiftValueCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, CommandParameterInfo> energyEvsedisableCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo energyEvsedisableInteractionInfo = new InteractionInfo(
+    CommandParameterInfo windowCoveringgoToLiftValueliftValueCommandParameterInfo = new CommandParameterInfo("liftValue", Integer.class, Integer.class);
+    windowCoveringgoToLiftValueCommandParams.put("liftValue",windowCoveringgoToLiftValueliftValueCommandParameterInfo);
+    InteractionInfo windowCoveringgoToLiftValueInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.EnergyEvseCluster) cluster)
-        .disable((DefaultClusterCallback) callback, 10000
+        ((ChipClusters.WindowCoveringCluster) cluster)
+        .goToLiftValue((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("liftValue")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        energyEvsedisableCommandParams
+        windowCoveringgoToLiftValueCommandParams
     );
-    energyEvseClusterInteractionInfoMap.put("disable", energyEvsedisableInteractionInfo);
-
-    Map<String, CommandParameterInfo> energyEvseenableChargingCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-
-    CommandParameterInfo energyEvseenableChargingchargingEnabledUntilCommandParameterInfo = new CommandParameterInfo("chargingEnabledUntil", Long.class, Long.class);
-    energyEvseenableChargingCommandParams.put("chargingEnabledUntil",energyEvseenableChargingchargingEnabledUntilCommandParameterInfo);
+    windowCoveringClusterInteractionInfoMap.put("goToLiftValue", windowCoveringgoToLiftValueInteractionInfo);
 
-    CommandParameterInfo energyEvseenableChargingminimumChargeCurrentCommandParameterInfo = new CommandParameterInfo("minimumChargeCurrent", Long.class, Long.class);
-    energyEvseenableChargingCommandParams.put("minimumChargeCurrent",energyEvseenableChargingminimumChargeCurrentCommandParameterInfo);
+    Map<String, CommandParameterInfo> windowCoveringgoToLiftPercentageCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo energyEvseenableChargingmaximumChargeCurrentCommandParameterInfo = new CommandParameterInfo("maximumChargeCurrent", Long.class, Long.class);
-    energyEvseenableChargingCommandParams.put("maximumChargeCurrent",energyEvseenableChargingmaximumChargeCurrentCommandParameterInfo);
-    InteractionInfo energyEvseenableChargingInteractionInfo = new InteractionInfo(
+    CommandParameterInfo windowCoveringgoToLiftPercentageliftPercent100thsValueCommandParameterInfo = new CommandParameterInfo("liftPercent100thsValue", Integer.class, Integer.class);
+    windowCoveringgoToLiftPercentageCommandParams.put("liftPercent100thsValue",windowCoveringgoToLiftPercentageliftPercent100thsValueCommandParameterInfo);
+    InteractionInfo windowCoveringgoToLiftPercentageInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.EnergyEvseCluster) cluster)
-        .enableCharging((DefaultClusterCallback) callback
-        , (Long)
-        commandArguments.get("chargingEnabledUntil")
-        , (Long)
-        commandArguments.get("minimumChargeCurrent")
-        , (Long)
-        commandArguments.get("maximumChargeCurrent"), 10000
+        ((ChipClusters.WindowCoveringCluster) cluster)
+        .goToLiftPercentage((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("liftPercent100thsValue")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        energyEvseenableChargingCommandParams
+        windowCoveringgoToLiftPercentageCommandParams
     );
-    energyEvseClusterInteractionInfoMap.put("enableCharging", energyEvseenableChargingInteractionInfo);
-
-    Map<String, CommandParameterInfo> energyEvseenableDischargingCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    windowCoveringClusterInteractionInfoMap.put("goToLiftPercentage", windowCoveringgoToLiftPercentageInteractionInfo);
 
-    CommandParameterInfo energyEvseenableDischargingdischargingEnabledUntilCommandParameterInfo = new CommandParameterInfo("dischargingEnabledUntil", Long.class, Long.class);
-    energyEvseenableDischargingCommandParams.put("dischargingEnabledUntil",energyEvseenableDischargingdischargingEnabledUntilCommandParameterInfo);
+    Map<String, CommandParameterInfo> windowCoveringgoToTiltValueCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo energyEvseenableDischargingmaximumDischargeCurrentCommandParameterInfo = new CommandParameterInfo("maximumDischargeCurrent", Long.class, Long.class);
-    energyEvseenableDischargingCommandParams.put("maximumDischargeCurrent",energyEvseenableDischargingmaximumDischargeCurrentCommandParameterInfo);
-    InteractionInfo energyEvseenableDischargingInteractionInfo = new InteractionInfo(
+    CommandParameterInfo windowCoveringgoToTiltValuetiltValueCommandParameterInfo = new CommandParameterInfo("tiltValue", Integer.class, Integer.class);
+    windowCoveringgoToTiltValueCommandParams.put("tiltValue",windowCoveringgoToTiltValuetiltValueCommandParameterInfo);
+    InteractionInfo windowCoveringgoToTiltValueInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.EnergyEvseCluster) cluster)
-        .enableDischarging((DefaultClusterCallback) callback
-        , (Long)
-        commandArguments.get("dischargingEnabledUntil")
-        , (Long)
-        commandArguments.get("maximumDischargeCurrent"), 10000
+        ((ChipClusters.WindowCoveringCluster) cluster)
+        .goToTiltValue((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("tiltValue")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        energyEvseenableDischargingCommandParams
+        windowCoveringgoToTiltValueCommandParams
     );
-    energyEvseClusterInteractionInfoMap.put("enableDischarging", energyEvseenableDischargingInteractionInfo);
+    windowCoveringClusterInteractionInfoMap.put("goToTiltValue", windowCoveringgoToTiltValueInteractionInfo);
 
-    Map<String, CommandParameterInfo> energyEvsestartDiagnosticsCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo energyEvsestartDiagnosticsInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> windowCoveringgoToTiltPercentageCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo windowCoveringgoToTiltPercentagetiltPercent100thsValueCommandParameterInfo = new CommandParameterInfo("tiltPercent100thsValue", Integer.class, Integer.class);
+    windowCoveringgoToTiltPercentageCommandParams.put("tiltPercent100thsValue",windowCoveringgoToTiltPercentagetiltPercent100thsValueCommandParameterInfo);
+    InteractionInfo windowCoveringgoToTiltPercentageInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.EnergyEvseCluster) cluster)
-        .startDiagnostics((DefaultClusterCallback) callback, 10000
+        ((ChipClusters.WindowCoveringCluster) cluster)
+        .goToTiltPercentage((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("tiltPercent100thsValue")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        energyEvsestartDiagnosticsCommandParams
+        windowCoveringgoToTiltPercentageCommandParams
     );
-    energyEvseClusterInteractionInfoMap.put("startDiagnostics", energyEvsestartDiagnosticsInteractionInfo);
+    windowCoveringClusterInteractionInfoMap.put("goToTiltPercentage", windowCoveringgoToTiltPercentageInteractionInfo);
 
-    Map<String, CommandParameterInfo> energyEvsesetTargetsCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    commandMap.put("windowCovering", windowCoveringClusterInteractionInfoMap);
 
-    InteractionInfo energyEvsesetTargetsInteractionInfo = new InteractionInfo(
+    Map<String, InteractionInfo> barrierControlClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    Map<String, CommandParameterInfo> barrierControlbarrierControlGoToPercentCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo barrierControlbarrierControlGoToPercentpercentOpenCommandParameterInfo = new CommandParameterInfo("percentOpen", Integer.class, Integer.class);
+    barrierControlbarrierControlGoToPercentCommandParams.put("percentOpen",barrierControlbarrierControlGoToPercentpercentOpenCommandParameterInfo);
+    InteractionInfo barrierControlbarrierControlGoToPercentInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.EnergyEvseCluster) cluster)
-        .setTargets((DefaultClusterCallback) callback
-        , (ArrayList<ChipStructs.EnergyEvseClusterChargingTargetScheduleStruct>)
-        commandArguments.get("chargingTargetSchedules"), 10000
+        ((ChipClusters.BarrierControlCluster) cluster)
+        .barrierControlGoToPercent((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("percentOpen")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        energyEvsesetTargetsCommandParams
+        barrierControlbarrierControlGoToPercentCommandParams
     );
-    energyEvseClusterInteractionInfoMap.put("setTargets", energyEvsesetTargetsInteractionInfo);
-
-    Map<String, CommandParameterInfo> energyEvsegetTargetsCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo energyEvsegetTargetsInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.EnergyEvseCluster) cluster)
-          .getTargets((ChipClusters.EnergyEvseCluster.GetTargetsResponseCallback) callback
-            , 10000);
-        },
-        () -> new DelegatedEnergyEvseClusterGetTargetsResponseCallback(),
-        energyEvsegetTargetsCommandParams
-      );
-    energyEvseClusterInteractionInfoMap.put("getTargets", energyEvsegetTargetsInteractionInfo);
+    barrierControlClusterInteractionInfoMap.put("barrierControlGoToPercent", barrierControlbarrierControlGoToPercentInteractionInfo);
 
-    Map<String, CommandParameterInfo> energyEvseclearTargetsCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo energyEvseclearTargetsInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> barrierControlbarrierControlStopCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo barrierControlbarrierControlStopInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.EnergyEvseCluster) cluster)
-        .clearTargets((DefaultClusterCallback) callback, 10000
+        ((ChipClusters.BarrierControlCluster) cluster)
+        .barrierControlStop((DefaultClusterCallback) callback
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        energyEvseclearTargetsCommandParams
+        barrierControlbarrierControlStopCommandParams
     );
-    energyEvseClusterInteractionInfoMap.put("clearTargets", energyEvseclearTargetsInteractionInfo);
-
-    commandMap.put("energyEvse", energyEvseClusterInteractionInfoMap);
-
-    Map<String, InteractionInfo> energyPreferenceClusterInteractionInfoMap = new LinkedHashMap<>();
-
-    commandMap.put("energyPreference", energyPreferenceClusterInteractionInfoMap);
-
-    Map<String, InteractionInfo> powerTopologyClusterInteractionInfoMap = new LinkedHashMap<>();
+    barrierControlClusterInteractionInfoMap.put("barrierControlStop", barrierControlbarrierControlStopInteractionInfo);
 
-    commandMap.put("powerTopology", powerTopologyClusterInteractionInfoMap);
+    commandMap.put("barrierControl", barrierControlClusterInteractionInfoMap);
 
-    Map<String, InteractionInfo> energyEvseModeClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, InteractionInfo> serviceAreaClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    Map<String, CommandParameterInfo> energyEvseModechangeToModeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> serviceAreaselectAreasCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo energyEvseModechangeToModenewModeCommandParameterInfo = new CommandParameterInfo("newMode", Integer.class, Integer.class);
-    energyEvseModechangeToModeCommandParams.put("newMode",energyEvseModechangeToModenewModeCommandParameterInfo);
-    InteractionInfo energyEvseModechangeToModeInteractionInfo = new InteractionInfo(
+    CommandParameterInfo serviceAreaselectAreasnewAreasCommandParameterInfo = new CommandParameterInfo("newAreas", ArrayList.class, ArrayList.class);
+    serviceAreaselectAreasCommandParams.put("newAreas",serviceAreaselectAreasnewAreasCommandParameterInfo);
+    InteractionInfo serviceAreaselectAreasInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.EnergyEvseModeCluster) cluster)
-          .changeToMode((ChipClusters.EnergyEvseModeCluster.ChangeToModeResponseCallback) callback
-           , (Integer)
-             commandArguments.get("newMode")
+        ((ChipClusters.ServiceAreaCluster) cluster)
+          .selectAreas((ChipClusters.ServiceAreaCluster.SelectAreasResponseCallback) callback
+           , (ArrayList<Long>)
+             commandArguments.get("newAreas")
 
             );
         },
-        () -> new DelegatedEnergyEvseModeClusterChangeToModeResponseCallback(),
-        energyEvseModechangeToModeCommandParams
+        () -> new DelegatedServiceAreaClusterSelectAreasResponseCallback(),
+        serviceAreaselectAreasCommandParams
       );
-    energyEvseModeClusterInteractionInfoMap.put("changeToMode", energyEvseModechangeToModeInteractionInfo);
-
-    commandMap.put("energyEvseMode", energyEvseModeClusterInteractionInfoMap);
-
-    Map<String, InteractionInfo> waterHeaterModeClusterInteractionInfoMap = new LinkedHashMap<>();
+    serviceAreaClusterInteractionInfoMap.put("selectAreas", serviceAreaselectAreasInteractionInfo);
 
-    Map<String, CommandParameterInfo> waterHeaterModechangeToModeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> serviceAreaskipAreaCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo waterHeaterModechangeToModenewModeCommandParameterInfo = new CommandParameterInfo("newMode", Integer.class, Integer.class);
-    waterHeaterModechangeToModeCommandParams.put("newMode",waterHeaterModechangeToModenewModeCommandParameterInfo);
-    InteractionInfo waterHeaterModechangeToModeInteractionInfo = new InteractionInfo(
+    CommandParameterInfo serviceAreaskipAreaskippedAreaCommandParameterInfo = new CommandParameterInfo("skippedArea", Long.class, Long.class);
+    serviceAreaskipAreaCommandParams.put("skippedArea",serviceAreaskipAreaskippedAreaCommandParameterInfo);
+    InteractionInfo serviceAreaskipAreaInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.WaterHeaterModeCluster) cluster)
-          .changeToMode((ChipClusters.WaterHeaterModeCluster.ChangeToModeResponseCallback) callback
-           , (Integer)
-             commandArguments.get("newMode")
+        ((ChipClusters.ServiceAreaCluster) cluster)
+          .skipArea((ChipClusters.ServiceAreaCluster.SkipAreaResponseCallback) callback
+           , (Long)
+             commandArguments.get("skippedArea")
 
             );
         },
-        () -> new DelegatedWaterHeaterModeClusterChangeToModeResponseCallback(),
-        waterHeaterModechangeToModeCommandParams
+        () -> new DelegatedServiceAreaClusterSkipAreaResponseCallback(),
+        serviceAreaskipAreaCommandParams
       );
-    waterHeaterModeClusterInteractionInfoMap.put("changeToMode", waterHeaterModechangeToModeInteractionInfo);
-
-    commandMap.put("waterHeaterMode", waterHeaterModeClusterInteractionInfoMap);
-
-    Map<String, InteractionInfo> deviceEnergyManagementModeClusterInteractionInfoMap = new LinkedHashMap<>();
+    serviceAreaClusterInteractionInfoMap.put("skipArea", serviceAreaskipAreaInteractionInfo);
 
-    Map<String, CommandParameterInfo> deviceEnergyManagementModechangeToModeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    commandMap.put("serviceArea", serviceAreaClusterInteractionInfoMap);
 
-    CommandParameterInfo deviceEnergyManagementModechangeToModenewModeCommandParameterInfo = new CommandParameterInfo("newMode", Integer.class, Integer.class);
-    deviceEnergyManagementModechangeToModeCommandParams.put("newMode",deviceEnergyManagementModechangeToModenewModeCommandParameterInfo);
-    InteractionInfo deviceEnergyManagementModechangeToModeInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DeviceEnergyManagementModeCluster) cluster)
-          .changeToMode((ChipClusters.DeviceEnergyManagementModeCluster.ChangeToModeResponseCallback) callback
-           , (Integer)
-             commandArguments.get("newMode")
+    Map<String, InteractionInfo> pumpConfigurationAndControlClusterInteractionInfoMap = new LinkedHashMap<>();
 
-            );
-        },
-        () -> new DelegatedDeviceEnergyManagementModeClusterChangeToModeResponseCallback(),
-        deviceEnergyManagementModechangeToModeCommandParams
-      );
-    deviceEnergyManagementModeClusterInteractionInfoMap.put("changeToMode", deviceEnergyManagementModechangeToModeInteractionInfo);
+    commandMap.put("pumpConfigurationAndControl", pumpConfigurationAndControlClusterInteractionInfoMap);
 
-    commandMap.put("deviceEnergyManagementMode", deviceEnergyManagementModeClusterInteractionInfoMap);
+    Map<String, InteractionInfo> thermostatClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    Map<String, InteractionInfo> doorLockClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, CommandParameterInfo> thermostatsetpointRaiseLowerCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, CommandParameterInfo> doorLocklockDoorCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo thermostatsetpointRaiseLowermodeCommandParameterInfo = new CommandParameterInfo("mode", Integer.class, Integer.class);
+    thermostatsetpointRaiseLowerCommandParams.put("mode",thermostatsetpointRaiseLowermodeCommandParameterInfo);
 
-    CommandParameterInfo doorLocklockDoorPINCodeCommandParameterInfo = new CommandParameterInfo("PINCode", Optional.class, byte[].class);
-    doorLocklockDoorCommandParams.put("PINCode",doorLocklockDoorPINCodeCommandParameterInfo);
-    InteractionInfo doorLocklockDoorInteractionInfo = new InteractionInfo(
+    CommandParameterInfo thermostatsetpointRaiseLoweramountCommandParameterInfo = new CommandParameterInfo("amount", Integer.class, Integer.class);
+    thermostatsetpointRaiseLowerCommandParams.put("amount",thermostatsetpointRaiseLoweramountCommandParameterInfo);
+    InteractionInfo thermostatsetpointRaiseLowerInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DoorLockCluster) cluster)
-        .lockDoor((DefaultClusterCallback) callback
-        , (Optional<byte[]>)
-        commandArguments.get("PINCode"), 10000
+        ((ChipClusters.ThermostatCluster) cluster)
+        .setpointRaiseLower((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("mode")
+        , (Integer)
+        commandArguments.get("amount")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        doorLocklockDoorCommandParams
+        thermostatsetpointRaiseLowerCommandParams
     );
-    doorLockClusterInteractionInfoMap.put("lockDoor", doorLocklockDoorInteractionInfo);
+    thermostatClusterInteractionInfoMap.put("setpointRaiseLower", thermostatsetpointRaiseLowerInteractionInfo);
 
-    Map<String, CommandParameterInfo> doorLockunlockDoorCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> thermostatsetWeeklyScheduleCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo doorLockunlockDoorPINCodeCommandParameterInfo = new CommandParameterInfo("PINCode", Optional.class, byte[].class);
-    doorLockunlockDoorCommandParams.put("PINCode",doorLockunlockDoorPINCodeCommandParameterInfo);
-    InteractionInfo doorLockunlockDoorInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DoorLockCluster) cluster)
-        .unlockDoor((DefaultClusterCallback) callback
-        , (Optional<byte[]>)
-        commandArguments.get("PINCode"), 10000
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        doorLockunlockDoorCommandParams
-    );
-    doorLockClusterInteractionInfoMap.put("unlockDoor", doorLockunlockDoorInteractionInfo);
+    CommandParameterInfo thermostatsetWeeklySchedulenumberOfTransitionsForSequenceCommandParameterInfo = new CommandParameterInfo("numberOfTransitionsForSequence", Integer.class, Integer.class);
+    thermostatsetWeeklyScheduleCommandParams.put("numberOfTransitionsForSequence",thermostatsetWeeklySchedulenumberOfTransitionsForSequenceCommandParameterInfo);
 
-    Map<String, CommandParameterInfo> doorLockunlockWithTimeoutCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo thermostatsetWeeklyScheduledayOfWeekForSequenceCommandParameterInfo = new CommandParameterInfo("dayOfWeekForSequence", Integer.class, Integer.class);
+    thermostatsetWeeklyScheduleCommandParams.put("dayOfWeekForSequence",thermostatsetWeeklyScheduledayOfWeekForSequenceCommandParameterInfo);
 
-    CommandParameterInfo doorLockunlockWithTimeouttimeoutCommandParameterInfo = new CommandParameterInfo("timeout", Integer.class, Integer.class);
-    doorLockunlockWithTimeoutCommandParams.put("timeout",doorLockunlockWithTimeouttimeoutCommandParameterInfo);
+    CommandParameterInfo thermostatsetWeeklySchedulemodeForSequenceCommandParameterInfo = new CommandParameterInfo("modeForSequence", Integer.class, Integer.class);
+    thermostatsetWeeklyScheduleCommandParams.put("modeForSequence",thermostatsetWeeklySchedulemodeForSequenceCommandParameterInfo);
 
-    CommandParameterInfo doorLockunlockWithTimeoutPINCodeCommandParameterInfo = new CommandParameterInfo("PINCode", Optional.class, byte[].class);
-    doorLockunlockWithTimeoutCommandParams.put("PINCode",doorLockunlockWithTimeoutPINCodeCommandParameterInfo);
-    InteractionInfo doorLockunlockWithTimeoutInteractionInfo = new InteractionInfo(
+    InteractionInfo thermostatsetWeeklyScheduleInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DoorLockCluster) cluster)
-        .unlockWithTimeout((DefaultClusterCallback) callback
+        ((ChipClusters.ThermostatCluster) cluster)
+        .setWeeklySchedule((DefaultClusterCallback) callback
         , (Integer)
-        commandArguments.get("timeout")
-        , (Optional<byte[]>)
-        commandArguments.get("PINCode"), 10000
+        commandArguments.get("numberOfTransitionsForSequence")
+        , (Integer)
+        commandArguments.get("dayOfWeekForSequence")
+        , (Integer)
+        commandArguments.get("modeForSequence")
+        , (ArrayList<ChipStructs.ThermostatClusterWeeklyScheduleTransitionStruct>)
+        commandArguments.get("transitions")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        doorLockunlockWithTimeoutCommandParams
+        thermostatsetWeeklyScheduleCommandParams
     );
-    doorLockClusterInteractionInfoMap.put("unlockWithTimeout", doorLockunlockWithTimeoutInteractionInfo);
+    thermostatClusterInteractionInfoMap.put("setWeeklySchedule", thermostatsetWeeklyScheduleInteractionInfo);
 
-    Map<String, CommandParameterInfo> doorLocksetWeekDayScheduleCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> thermostatgetWeeklyScheduleCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo doorLocksetWeekDayScheduleweekDayIndexCommandParameterInfo = new CommandParameterInfo("weekDayIndex", Integer.class, Integer.class);
-    doorLocksetWeekDayScheduleCommandParams.put("weekDayIndex",doorLocksetWeekDayScheduleweekDayIndexCommandParameterInfo);
+    CommandParameterInfo thermostatgetWeeklyScheduledaysToReturnCommandParameterInfo = new CommandParameterInfo("daysToReturn", Integer.class, Integer.class);
+    thermostatgetWeeklyScheduleCommandParams.put("daysToReturn",thermostatgetWeeklyScheduledaysToReturnCommandParameterInfo);
 
-    CommandParameterInfo doorLocksetWeekDayScheduleuserIndexCommandParameterInfo = new CommandParameterInfo("userIndex", Integer.class, Integer.class);
-    doorLocksetWeekDayScheduleCommandParams.put("userIndex",doorLocksetWeekDayScheduleuserIndexCommandParameterInfo);
+    CommandParameterInfo thermostatgetWeeklySchedulemodeToReturnCommandParameterInfo = new CommandParameterInfo("modeToReturn", Integer.class, Integer.class);
+    thermostatgetWeeklyScheduleCommandParams.put("modeToReturn",thermostatgetWeeklySchedulemodeToReturnCommandParameterInfo);
+    InteractionInfo thermostatgetWeeklyScheduleInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.ThermostatCluster) cluster)
+          .getWeeklySchedule((ChipClusters.ThermostatCluster.GetWeeklyScheduleResponseCallback) callback
+           , (Integer)
+             commandArguments.get("daysToReturn")
 
-    CommandParameterInfo doorLocksetWeekDayScheduledaysMaskCommandParameterInfo = new CommandParameterInfo("daysMask", Integer.class, Integer.class);
-    doorLocksetWeekDayScheduleCommandParams.put("daysMask",doorLocksetWeekDayScheduledaysMaskCommandParameterInfo);
+           , (Integer)
+             commandArguments.get("modeToReturn")
 
-    CommandParameterInfo doorLocksetWeekDaySchedulestartHourCommandParameterInfo = new CommandParameterInfo("startHour", Integer.class, Integer.class);
-    doorLocksetWeekDayScheduleCommandParams.put("startHour",doorLocksetWeekDaySchedulestartHourCommandParameterInfo);
+            );
+        },
+        () -> new DelegatedThermostatClusterGetWeeklyScheduleResponseCallback(),
+        thermostatgetWeeklyScheduleCommandParams
+      );
+    thermostatClusterInteractionInfoMap.put("getWeeklySchedule", thermostatgetWeeklyScheduleInteractionInfo);
 
-    CommandParameterInfo doorLocksetWeekDaySchedulestartMinuteCommandParameterInfo = new CommandParameterInfo("startMinute", Integer.class, Integer.class);
-    doorLocksetWeekDayScheduleCommandParams.put("startMinute",doorLocksetWeekDaySchedulestartMinuteCommandParameterInfo);
+    Map<String, CommandParameterInfo> thermostatclearWeeklyScheduleCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo thermostatclearWeeklyScheduleInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.ThermostatCluster) cluster)
+        .clearWeeklySchedule((DefaultClusterCallback) callback
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        thermostatclearWeeklyScheduleCommandParams
+    );
+    thermostatClusterInteractionInfoMap.put("clearWeeklySchedule", thermostatclearWeeklyScheduleInteractionInfo);
 
-    CommandParameterInfo doorLocksetWeekDayScheduleendHourCommandParameterInfo = new CommandParameterInfo("endHour", Integer.class, Integer.class);
-    doorLocksetWeekDayScheduleCommandParams.put("endHour",doorLocksetWeekDayScheduleendHourCommandParameterInfo);
+    Map<String, CommandParameterInfo> thermostatsetActiveScheduleRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo doorLocksetWeekDayScheduleendMinuteCommandParameterInfo = new CommandParameterInfo("endMinute", Integer.class, Integer.class);
-    doorLocksetWeekDayScheduleCommandParams.put("endMinute",doorLocksetWeekDayScheduleendMinuteCommandParameterInfo);
-    InteractionInfo doorLocksetWeekDayScheduleInteractionInfo = new InteractionInfo(
+    CommandParameterInfo thermostatsetActiveScheduleRequestscheduleHandleCommandParameterInfo = new CommandParameterInfo("scheduleHandle", byte[].class, byte[].class);
+    thermostatsetActiveScheduleRequestCommandParams.put("scheduleHandle",thermostatsetActiveScheduleRequestscheduleHandleCommandParameterInfo);
+    InteractionInfo thermostatsetActiveScheduleRequestInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DoorLockCluster) cluster)
-        .setWeekDaySchedule((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("weekDayIndex")
-        , (Integer)
-        commandArguments.get("userIndex")
-        , (Integer)
-        commandArguments.get("daysMask")
-        , (Integer)
-        commandArguments.get("startHour")
-        , (Integer)
-        commandArguments.get("startMinute")
-        , (Integer)
-        commandArguments.get("endHour")
-        , (Integer)
-        commandArguments.get("endMinute")
+        ((ChipClusters.ThermostatCluster) cluster)
+        .setActiveScheduleRequest((DefaultClusterCallback) callback
+        , (byte[])
+        commandArguments.get("scheduleHandle")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        doorLocksetWeekDayScheduleCommandParams
+        thermostatsetActiveScheduleRequestCommandParams
     );
-    doorLockClusterInteractionInfoMap.put("setWeekDaySchedule", doorLocksetWeekDayScheduleInteractionInfo);
+    thermostatClusterInteractionInfoMap.put("setActiveScheduleRequest", thermostatsetActiveScheduleRequestInteractionInfo);
 
-    Map<String, CommandParameterInfo> doorLockgetWeekDayScheduleCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> thermostatsetActivePresetRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo doorLockgetWeekDayScheduleweekDayIndexCommandParameterInfo = new CommandParameterInfo("weekDayIndex", Integer.class, Integer.class);
-    doorLockgetWeekDayScheduleCommandParams.put("weekDayIndex",doorLockgetWeekDayScheduleweekDayIndexCommandParameterInfo);
+    CommandParameterInfo thermostatsetActivePresetRequestpresetHandleCommandParameterInfo = new CommandParameterInfo("presetHandle", byte[].class, byte[].class);
+    thermostatsetActivePresetRequestCommandParams.put("presetHandle",thermostatsetActivePresetRequestpresetHandleCommandParameterInfo);
+    InteractionInfo thermostatsetActivePresetRequestInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.ThermostatCluster) cluster)
+        .setActivePresetRequest((DefaultClusterCallback) callback
+        , (byte[])
+        commandArguments.get("presetHandle")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        thermostatsetActivePresetRequestCommandParams
+    );
+    thermostatClusterInteractionInfoMap.put("setActivePresetRequest", thermostatsetActivePresetRequestInteractionInfo);
 
-    CommandParameterInfo doorLockgetWeekDayScheduleuserIndexCommandParameterInfo = new CommandParameterInfo("userIndex", Integer.class, Integer.class);
-    doorLockgetWeekDayScheduleCommandParams.put("userIndex",doorLockgetWeekDayScheduleuserIndexCommandParameterInfo);
-    InteractionInfo doorLockgetWeekDayScheduleInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> thermostatatomicRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo thermostatatomicRequestrequestTypeCommandParameterInfo = new CommandParameterInfo("requestType", Integer.class, Integer.class);
+    thermostatatomicRequestCommandParams.put("requestType",thermostatatomicRequestrequestTypeCommandParameterInfo);
+
+    CommandParameterInfo thermostatatomicRequestattributeRequestsCommandParameterInfo = new CommandParameterInfo("attributeRequests", ArrayList.class, ArrayList.class);
+    thermostatatomicRequestCommandParams.put("attributeRequests",thermostatatomicRequestattributeRequestsCommandParameterInfo);
+
+    CommandParameterInfo thermostatatomicRequesttimeoutCommandParameterInfo = new CommandParameterInfo("timeout", Optional.class, Integer.class);
+    thermostatatomicRequestCommandParams.put("timeout",thermostatatomicRequesttimeoutCommandParameterInfo);
+    InteractionInfo thermostatatomicRequestInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DoorLockCluster) cluster)
-          .getWeekDaySchedule((ChipClusters.DoorLockCluster.GetWeekDayScheduleResponseCallback) callback
+        ((ChipClusters.ThermostatCluster) cluster)
+          .atomicRequest((ChipClusters.ThermostatCluster.AtomicResponseCallback) callback
            , (Integer)
-             commandArguments.get("weekDayIndex")
+             commandArguments.get("requestType")
 
-           , (Integer)
-             commandArguments.get("userIndex")
+           , (ArrayList<Long>)
+             commandArguments.get("attributeRequests")
+
+           , (Optional<Integer>)
+             commandArguments.get("timeout")
 
             );
         },
-        () -> new DelegatedDoorLockClusterGetWeekDayScheduleResponseCallback(),
-        doorLockgetWeekDayScheduleCommandParams
+        () -> new DelegatedThermostatClusterAtomicResponseCallback(),
+        thermostatatomicRequestCommandParams
       );
-    doorLockClusterInteractionInfoMap.put("getWeekDaySchedule", doorLockgetWeekDayScheduleInteractionInfo);
+    thermostatClusterInteractionInfoMap.put("atomicRequest", thermostatatomicRequestInteractionInfo);
 
-    Map<String, CommandParameterInfo> doorLockclearWeekDayScheduleCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    commandMap.put("thermostat", thermostatClusterInteractionInfoMap);
 
-    CommandParameterInfo doorLockclearWeekDayScheduleweekDayIndexCommandParameterInfo = new CommandParameterInfo("weekDayIndex", Integer.class, Integer.class);
-    doorLockclearWeekDayScheduleCommandParams.put("weekDayIndex",doorLockclearWeekDayScheduleweekDayIndexCommandParameterInfo);
+    Map<String, InteractionInfo> fanControlClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    CommandParameterInfo doorLockclearWeekDayScheduleuserIndexCommandParameterInfo = new CommandParameterInfo("userIndex", Integer.class, Integer.class);
-    doorLockclearWeekDayScheduleCommandParams.put("userIndex",doorLockclearWeekDayScheduleuserIndexCommandParameterInfo);
-    InteractionInfo doorLockclearWeekDayScheduleInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> fanControlstepCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo fanControlstepdirectionCommandParameterInfo = new CommandParameterInfo("direction", Integer.class, Integer.class);
+    fanControlstepCommandParams.put("direction",fanControlstepdirectionCommandParameterInfo);
+
+    CommandParameterInfo fanControlstepwrapCommandParameterInfo = new CommandParameterInfo("wrap", Optional.class, Boolean.class);
+    fanControlstepCommandParams.put("wrap",fanControlstepwrapCommandParameterInfo);
+
+    CommandParameterInfo fanControlsteplowestOffCommandParameterInfo = new CommandParameterInfo("lowestOff", Optional.class, Boolean.class);
+    fanControlstepCommandParams.put("lowestOff",fanControlsteplowestOffCommandParameterInfo);
+    InteractionInfo fanControlstepInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DoorLockCluster) cluster)
-        .clearWeekDaySchedule((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("weekDayIndex")
+        ((ChipClusters.FanControlCluster) cluster)
+        .step((DefaultClusterCallback) callback
         , (Integer)
-        commandArguments.get("userIndex")
+        commandArguments.get("direction")
+        , (Optional<Boolean>)
+        commandArguments.get("wrap")
+        , (Optional<Boolean>)
+        commandArguments.get("lowestOff")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        doorLockclearWeekDayScheduleCommandParams
+        fanControlstepCommandParams
     );
-    doorLockClusterInteractionInfoMap.put("clearWeekDaySchedule", doorLockclearWeekDayScheduleInteractionInfo);
+    fanControlClusterInteractionInfoMap.put("step", fanControlstepInteractionInfo);
 
-    Map<String, CommandParameterInfo> doorLocksetYearDayScheduleCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    commandMap.put("fanControl", fanControlClusterInteractionInfoMap);
 
-    CommandParameterInfo doorLocksetYearDayScheduleyearDayIndexCommandParameterInfo = new CommandParameterInfo("yearDayIndex", Integer.class, Integer.class);
-    doorLocksetYearDayScheduleCommandParams.put("yearDayIndex",doorLocksetYearDayScheduleyearDayIndexCommandParameterInfo);
+    Map<String, InteractionInfo> thermostatUserInterfaceConfigurationClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    CommandParameterInfo doorLocksetYearDayScheduleuserIndexCommandParameterInfo = new CommandParameterInfo("userIndex", Integer.class, Integer.class);
-    doorLocksetYearDayScheduleCommandParams.put("userIndex",doorLocksetYearDayScheduleuserIndexCommandParameterInfo);
+    commandMap.put("thermostatUserInterfaceConfiguration", thermostatUserInterfaceConfigurationClusterInteractionInfoMap);
+
+    Map<String, InteractionInfo> colorControlClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    Map<String, CommandParameterInfo> colorControlmoveToHueCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo colorControlmoveToHuehueCommandParameterInfo = new CommandParameterInfo("hue", Integer.class, Integer.class);
+    colorControlmoveToHueCommandParams.put("hue",colorControlmoveToHuehueCommandParameterInfo);
+
+    CommandParameterInfo colorControlmoveToHuedirectionCommandParameterInfo = new CommandParameterInfo("direction", Integer.class, Integer.class);
+    colorControlmoveToHueCommandParams.put("direction",colorControlmoveToHuedirectionCommandParameterInfo);
+
+    CommandParameterInfo colorControlmoveToHuetransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Integer.class, Integer.class);
+    colorControlmoveToHueCommandParams.put("transitionTime",colorControlmoveToHuetransitionTimeCommandParameterInfo);
 
-    CommandParameterInfo doorLocksetYearDaySchedulelocalStartTimeCommandParameterInfo = new CommandParameterInfo("localStartTime", Long.class, Long.class);
-    doorLocksetYearDayScheduleCommandParams.put("localStartTime",doorLocksetYearDaySchedulelocalStartTimeCommandParameterInfo);
+    CommandParameterInfo colorControlmoveToHueoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
+    colorControlmoveToHueCommandParams.put("optionsMask",colorControlmoveToHueoptionsMaskCommandParameterInfo);
 
-    CommandParameterInfo doorLocksetYearDaySchedulelocalEndTimeCommandParameterInfo = new CommandParameterInfo("localEndTime", Long.class, Long.class);
-    doorLocksetYearDayScheduleCommandParams.put("localEndTime",doorLocksetYearDaySchedulelocalEndTimeCommandParameterInfo);
-    InteractionInfo doorLocksetYearDayScheduleInteractionInfo = new InteractionInfo(
+    CommandParameterInfo colorControlmoveToHueoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
+    colorControlmoveToHueCommandParams.put("optionsOverride",colorControlmoveToHueoptionsOverrideCommandParameterInfo);
+    InteractionInfo colorControlmoveToHueInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DoorLockCluster) cluster)
-        .setYearDaySchedule((DefaultClusterCallback) callback
+        ((ChipClusters.ColorControlCluster) cluster)
+        .moveToHue((DefaultClusterCallback) callback
         , (Integer)
-        commandArguments.get("yearDayIndex")
+        commandArguments.get("hue")
         , (Integer)
-        commandArguments.get("userIndex")
-        , (Long)
-        commandArguments.get("localStartTime")
-        , (Long)
-        commandArguments.get("localEndTime")
+        commandArguments.get("direction")
+        , (Integer)
+        commandArguments.get("transitionTime")
+        , (Integer)
+        commandArguments.get("optionsMask")
+        , (Integer)
+        commandArguments.get("optionsOverride")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        doorLocksetYearDayScheduleCommandParams
+        colorControlmoveToHueCommandParams
     );
-    doorLockClusterInteractionInfoMap.put("setYearDaySchedule", doorLocksetYearDayScheduleInteractionInfo);
-
-    Map<String, CommandParameterInfo> doorLockgetYearDayScheduleCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-
-    CommandParameterInfo doorLockgetYearDayScheduleyearDayIndexCommandParameterInfo = new CommandParameterInfo("yearDayIndex", Integer.class, Integer.class);
-    doorLockgetYearDayScheduleCommandParams.put("yearDayIndex",doorLockgetYearDayScheduleyearDayIndexCommandParameterInfo);
-
-    CommandParameterInfo doorLockgetYearDayScheduleuserIndexCommandParameterInfo = new CommandParameterInfo("userIndex", Integer.class, Integer.class);
-    doorLockgetYearDayScheduleCommandParams.put("userIndex",doorLockgetYearDayScheduleuserIndexCommandParameterInfo);
-    InteractionInfo doorLockgetYearDayScheduleInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DoorLockCluster) cluster)
-          .getYearDaySchedule((ChipClusters.DoorLockCluster.GetYearDayScheduleResponseCallback) callback
-           , (Integer)
-             commandArguments.get("yearDayIndex")
+    colorControlClusterInteractionInfoMap.put("moveToHue", colorControlmoveToHueInteractionInfo);
 
-           , (Integer)
-             commandArguments.get("userIndex")
+    Map<String, CommandParameterInfo> colorControlmoveHueCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-            );
-        },
-        () -> new DelegatedDoorLockClusterGetYearDayScheduleResponseCallback(),
-        doorLockgetYearDayScheduleCommandParams
-      );
-    doorLockClusterInteractionInfoMap.put("getYearDaySchedule", doorLockgetYearDayScheduleInteractionInfo);
+    CommandParameterInfo colorControlmoveHuemoveModeCommandParameterInfo = new CommandParameterInfo("moveMode", Integer.class, Integer.class);
+    colorControlmoveHueCommandParams.put("moveMode",colorControlmoveHuemoveModeCommandParameterInfo);
 
-    Map<String, CommandParameterInfo> doorLockclearYearDayScheduleCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo colorControlmoveHuerateCommandParameterInfo = new CommandParameterInfo("rate", Integer.class, Integer.class);
+    colorControlmoveHueCommandParams.put("rate",colorControlmoveHuerateCommandParameterInfo);
 
-    CommandParameterInfo doorLockclearYearDayScheduleyearDayIndexCommandParameterInfo = new CommandParameterInfo("yearDayIndex", Integer.class, Integer.class);
-    doorLockclearYearDayScheduleCommandParams.put("yearDayIndex",doorLockclearYearDayScheduleyearDayIndexCommandParameterInfo);
+    CommandParameterInfo colorControlmoveHueoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
+    colorControlmoveHueCommandParams.put("optionsMask",colorControlmoveHueoptionsMaskCommandParameterInfo);
 
-    CommandParameterInfo doorLockclearYearDayScheduleuserIndexCommandParameterInfo = new CommandParameterInfo("userIndex", Integer.class, Integer.class);
-    doorLockclearYearDayScheduleCommandParams.put("userIndex",doorLockclearYearDayScheduleuserIndexCommandParameterInfo);
-    InteractionInfo doorLockclearYearDayScheduleInteractionInfo = new InteractionInfo(
+    CommandParameterInfo colorControlmoveHueoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
+    colorControlmoveHueCommandParams.put("optionsOverride",colorControlmoveHueoptionsOverrideCommandParameterInfo);
+    InteractionInfo colorControlmoveHueInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DoorLockCluster) cluster)
-        .clearYearDaySchedule((DefaultClusterCallback) callback
+        ((ChipClusters.ColorControlCluster) cluster)
+        .moveHue((DefaultClusterCallback) callback
         , (Integer)
-        commandArguments.get("yearDayIndex")
+        commandArguments.get("moveMode")
         , (Integer)
-        commandArguments.get("userIndex")
+        commandArguments.get("rate")
+        , (Integer)
+        commandArguments.get("optionsMask")
+        , (Integer)
+        commandArguments.get("optionsOverride")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        doorLockclearYearDayScheduleCommandParams
+        colorControlmoveHueCommandParams
     );
-    doorLockClusterInteractionInfoMap.put("clearYearDaySchedule", doorLockclearYearDayScheduleInteractionInfo);
+    colorControlClusterInteractionInfoMap.put("moveHue", colorControlmoveHueInteractionInfo);
 
-    Map<String, CommandParameterInfo> doorLocksetHolidayScheduleCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> colorControlstepHueCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo doorLocksetHolidayScheduleholidayIndexCommandParameterInfo = new CommandParameterInfo("holidayIndex", Integer.class, Integer.class);
-    doorLocksetHolidayScheduleCommandParams.put("holidayIndex",doorLocksetHolidayScheduleholidayIndexCommandParameterInfo);
+    CommandParameterInfo colorControlstepHuestepModeCommandParameterInfo = new CommandParameterInfo("stepMode", Integer.class, Integer.class);
+    colorControlstepHueCommandParams.put("stepMode",colorControlstepHuestepModeCommandParameterInfo);
 
-    CommandParameterInfo doorLocksetHolidaySchedulelocalStartTimeCommandParameterInfo = new CommandParameterInfo("localStartTime", Long.class, Long.class);
-    doorLocksetHolidayScheduleCommandParams.put("localStartTime",doorLocksetHolidaySchedulelocalStartTimeCommandParameterInfo);
+    CommandParameterInfo colorControlstepHuestepSizeCommandParameterInfo = new CommandParameterInfo("stepSize", Integer.class, Integer.class);
+    colorControlstepHueCommandParams.put("stepSize",colorControlstepHuestepSizeCommandParameterInfo);
 
-    CommandParameterInfo doorLocksetHolidaySchedulelocalEndTimeCommandParameterInfo = new CommandParameterInfo("localEndTime", Long.class, Long.class);
-    doorLocksetHolidayScheduleCommandParams.put("localEndTime",doorLocksetHolidaySchedulelocalEndTimeCommandParameterInfo);
+    CommandParameterInfo colorControlstepHuetransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Integer.class, Integer.class);
+    colorControlstepHueCommandParams.put("transitionTime",colorControlstepHuetransitionTimeCommandParameterInfo);
 
-    CommandParameterInfo doorLocksetHolidayScheduleoperatingModeCommandParameterInfo = new CommandParameterInfo("operatingMode", Integer.class, Integer.class);
-    doorLocksetHolidayScheduleCommandParams.put("operatingMode",doorLocksetHolidayScheduleoperatingModeCommandParameterInfo);
-    InteractionInfo doorLocksetHolidayScheduleInteractionInfo = new InteractionInfo(
+    CommandParameterInfo colorControlstepHueoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
+    colorControlstepHueCommandParams.put("optionsMask",colorControlstepHueoptionsMaskCommandParameterInfo);
+
+    CommandParameterInfo colorControlstepHueoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
+    colorControlstepHueCommandParams.put("optionsOverride",colorControlstepHueoptionsOverrideCommandParameterInfo);
+    InteractionInfo colorControlstepHueInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DoorLockCluster) cluster)
-        .setHolidaySchedule((DefaultClusterCallback) callback
+        ((ChipClusters.ColorControlCluster) cluster)
+        .stepHue((DefaultClusterCallback) callback
         , (Integer)
-        commandArguments.get("holidayIndex")
-        , (Long)
-        commandArguments.get("localStartTime")
-        , (Long)
-        commandArguments.get("localEndTime")
+        commandArguments.get("stepMode")
         , (Integer)
-        commandArguments.get("operatingMode")
+        commandArguments.get("stepSize")
+        , (Integer)
+        commandArguments.get("transitionTime")
+        , (Integer)
+        commandArguments.get("optionsMask")
+        , (Integer)
+        commandArguments.get("optionsOverride")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        doorLocksetHolidayScheduleCommandParams
+        colorControlstepHueCommandParams
     );
-    doorLockClusterInteractionInfoMap.put("setHolidaySchedule", doorLocksetHolidayScheduleInteractionInfo);
+    colorControlClusterInteractionInfoMap.put("stepHue", colorControlstepHueInteractionInfo);
 
-    Map<String, CommandParameterInfo> doorLockgetHolidayScheduleCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> colorControlmoveToSaturationCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo doorLockgetHolidayScheduleholidayIndexCommandParameterInfo = new CommandParameterInfo("holidayIndex", Integer.class, Integer.class);
-    doorLockgetHolidayScheduleCommandParams.put("holidayIndex",doorLockgetHolidayScheduleholidayIndexCommandParameterInfo);
-    InteractionInfo doorLockgetHolidayScheduleInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DoorLockCluster) cluster)
-          .getHolidaySchedule((ChipClusters.DoorLockCluster.GetHolidayScheduleResponseCallback) callback
-           , (Integer)
-             commandArguments.get("holidayIndex")
+    CommandParameterInfo colorControlmoveToSaturationsaturationCommandParameterInfo = new CommandParameterInfo("saturation", Integer.class, Integer.class);
+    colorControlmoveToSaturationCommandParams.put("saturation",colorControlmoveToSaturationsaturationCommandParameterInfo);
 
-            );
-        },
-        () -> new DelegatedDoorLockClusterGetHolidayScheduleResponseCallback(),
-        doorLockgetHolidayScheduleCommandParams
-      );
-    doorLockClusterInteractionInfoMap.put("getHolidaySchedule", doorLockgetHolidayScheduleInteractionInfo);
+    CommandParameterInfo colorControlmoveToSaturationtransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Integer.class, Integer.class);
+    colorControlmoveToSaturationCommandParams.put("transitionTime",colorControlmoveToSaturationtransitionTimeCommandParameterInfo);
 
-    Map<String, CommandParameterInfo> doorLockclearHolidayScheduleCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo colorControlmoveToSaturationoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
+    colorControlmoveToSaturationCommandParams.put("optionsMask",colorControlmoveToSaturationoptionsMaskCommandParameterInfo);
 
-    CommandParameterInfo doorLockclearHolidayScheduleholidayIndexCommandParameterInfo = new CommandParameterInfo("holidayIndex", Integer.class, Integer.class);
-    doorLockclearHolidayScheduleCommandParams.put("holidayIndex",doorLockclearHolidayScheduleholidayIndexCommandParameterInfo);
-    InteractionInfo doorLockclearHolidayScheduleInteractionInfo = new InteractionInfo(
+    CommandParameterInfo colorControlmoveToSaturationoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
+    colorControlmoveToSaturationCommandParams.put("optionsOverride",colorControlmoveToSaturationoptionsOverrideCommandParameterInfo);
+    InteractionInfo colorControlmoveToSaturationInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DoorLockCluster) cluster)
-        .clearHolidaySchedule((DefaultClusterCallback) callback
+        ((ChipClusters.ColorControlCluster) cluster)
+        .moveToSaturation((DefaultClusterCallback) callback
         , (Integer)
-        commandArguments.get("holidayIndex")
+        commandArguments.get("saturation")
+        , (Integer)
+        commandArguments.get("transitionTime")
+        , (Integer)
+        commandArguments.get("optionsMask")
+        , (Integer)
+        commandArguments.get("optionsOverride")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        doorLockclearHolidayScheduleCommandParams
+        colorControlmoveToSaturationCommandParams
     );
-    doorLockClusterInteractionInfoMap.put("clearHolidaySchedule", doorLockclearHolidayScheduleInteractionInfo);
-
-    Map<String, CommandParameterInfo> doorLocksetUserCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-
-    CommandParameterInfo doorLocksetUseroperationTypeCommandParameterInfo = new CommandParameterInfo("operationType", Integer.class, Integer.class);
-    doorLocksetUserCommandParams.put("operationType",doorLocksetUseroperationTypeCommandParameterInfo);
-
-    CommandParameterInfo doorLocksetUseruserIndexCommandParameterInfo = new CommandParameterInfo("userIndex", Integer.class, Integer.class);
-    doorLocksetUserCommandParams.put("userIndex",doorLocksetUseruserIndexCommandParameterInfo);
+    colorControlClusterInteractionInfoMap.put("moveToSaturation", colorControlmoveToSaturationInteractionInfo);
 
-    CommandParameterInfo doorLocksetUseruserNameCommandParameterInfo = new CommandParameterInfo("userName", String.class, String.class);
-    doorLocksetUserCommandParams.put("userName",doorLocksetUseruserNameCommandParameterInfo);
+    Map<String, CommandParameterInfo> colorControlmoveSaturationCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo doorLocksetUseruserUniqueIDCommandParameterInfo = new CommandParameterInfo("userUniqueID", Long.class, Long.class);
-    doorLocksetUserCommandParams.put("userUniqueID",doorLocksetUseruserUniqueIDCommandParameterInfo);
+    CommandParameterInfo colorControlmoveSaturationmoveModeCommandParameterInfo = new CommandParameterInfo("moveMode", Integer.class, Integer.class);
+    colorControlmoveSaturationCommandParams.put("moveMode",colorControlmoveSaturationmoveModeCommandParameterInfo);
 
-    CommandParameterInfo doorLocksetUseruserStatusCommandParameterInfo = new CommandParameterInfo("userStatus", Integer.class, Integer.class);
-    doorLocksetUserCommandParams.put("userStatus",doorLocksetUseruserStatusCommandParameterInfo);
+    CommandParameterInfo colorControlmoveSaturationrateCommandParameterInfo = new CommandParameterInfo("rate", Integer.class, Integer.class);
+    colorControlmoveSaturationCommandParams.put("rate",colorControlmoveSaturationrateCommandParameterInfo);
 
-    CommandParameterInfo doorLocksetUseruserTypeCommandParameterInfo = new CommandParameterInfo("userType", Integer.class, Integer.class);
-    doorLocksetUserCommandParams.put("userType",doorLocksetUseruserTypeCommandParameterInfo);
+    CommandParameterInfo colorControlmoveSaturationoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
+    colorControlmoveSaturationCommandParams.put("optionsMask",colorControlmoveSaturationoptionsMaskCommandParameterInfo);
 
-    CommandParameterInfo doorLocksetUsercredentialRuleCommandParameterInfo = new CommandParameterInfo("credentialRule", Integer.class, Integer.class);
-    doorLocksetUserCommandParams.put("credentialRule",doorLocksetUsercredentialRuleCommandParameterInfo);
-    InteractionInfo doorLocksetUserInteractionInfo = new InteractionInfo(
+    CommandParameterInfo colorControlmoveSaturationoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
+    colorControlmoveSaturationCommandParams.put("optionsOverride",colorControlmoveSaturationoptionsOverrideCommandParameterInfo);
+    InteractionInfo colorControlmoveSaturationInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DoorLockCluster) cluster)
-        .setUser((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("operationType")
+        ((ChipClusters.ColorControlCluster) cluster)
+        .moveSaturation((DefaultClusterCallback) callback
         , (Integer)
-        commandArguments.get("userIndex")
-        , (String)
-        commandArguments.get("userName")
-        , (Long)
-        commandArguments.get("userUniqueID")
+        commandArguments.get("moveMode")
         , (Integer)
-        commandArguments.get("userStatus")
+        commandArguments.get("rate")
         , (Integer)
-        commandArguments.get("userType")
+        commandArguments.get("optionsMask")
         , (Integer)
-        commandArguments.get("credentialRule"), 10000
+        commandArguments.get("optionsOverride")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        doorLocksetUserCommandParams
+        colorControlmoveSaturationCommandParams
     );
-    doorLockClusterInteractionInfoMap.put("setUser", doorLocksetUserInteractionInfo);
+    colorControlClusterInteractionInfoMap.put("moveSaturation", colorControlmoveSaturationInteractionInfo);
 
-    Map<String, CommandParameterInfo> doorLockgetUserCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> colorControlstepSaturationCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo doorLockgetUseruserIndexCommandParameterInfo = new CommandParameterInfo("userIndex", Integer.class, Integer.class);
-    doorLockgetUserCommandParams.put("userIndex",doorLockgetUseruserIndexCommandParameterInfo);
-    InteractionInfo doorLockgetUserInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DoorLockCluster) cluster)
-          .getUser((ChipClusters.DoorLockCluster.GetUserResponseCallback) callback
-           , (Integer)
-             commandArguments.get("userIndex")
+    CommandParameterInfo colorControlstepSaturationstepModeCommandParameterInfo = new CommandParameterInfo("stepMode", Integer.class, Integer.class);
+    colorControlstepSaturationCommandParams.put("stepMode",colorControlstepSaturationstepModeCommandParameterInfo);
 
-            );
-        },
-        () -> new DelegatedDoorLockClusterGetUserResponseCallback(),
-        doorLockgetUserCommandParams
-      );
-    doorLockClusterInteractionInfoMap.put("getUser", doorLockgetUserInteractionInfo);
+    CommandParameterInfo colorControlstepSaturationstepSizeCommandParameterInfo = new CommandParameterInfo("stepSize", Integer.class, Integer.class);
+    colorControlstepSaturationCommandParams.put("stepSize",colorControlstepSaturationstepSizeCommandParameterInfo);
 
-    Map<String, CommandParameterInfo> doorLockclearUserCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo colorControlstepSaturationtransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Integer.class, Integer.class);
+    colorControlstepSaturationCommandParams.put("transitionTime",colorControlstepSaturationtransitionTimeCommandParameterInfo);
 
-    CommandParameterInfo doorLockclearUseruserIndexCommandParameterInfo = new CommandParameterInfo("userIndex", Integer.class, Integer.class);
-    doorLockclearUserCommandParams.put("userIndex",doorLockclearUseruserIndexCommandParameterInfo);
-    InteractionInfo doorLockclearUserInteractionInfo = new InteractionInfo(
+    CommandParameterInfo colorControlstepSaturationoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
+    colorControlstepSaturationCommandParams.put("optionsMask",colorControlstepSaturationoptionsMaskCommandParameterInfo);
+
+    CommandParameterInfo colorControlstepSaturationoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
+    colorControlstepSaturationCommandParams.put("optionsOverride",colorControlstepSaturationoptionsOverrideCommandParameterInfo);
+    InteractionInfo colorControlstepSaturationInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DoorLockCluster) cluster)
-        .clearUser((DefaultClusterCallback) callback
+        ((ChipClusters.ColorControlCluster) cluster)
+        .stepSaturation((DefaultClusterCallback) callback
         , (Integer)
-        commandArguments.get("userIndex"), 10000
+        commandArguments.get("stepMode")
+        , (Integer)
+        commandArguments.get("stepSize")
+        , (Integer)
+        commandArguments.get("transitionTime")
+        , (Integer)
+        commandArguments.get("optionsMask")
+        , (Integer)
+        commandArguments.get("optionsOverride")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        doorLockclearUserCommandParams
+        colorControlstepSaturationCommandParams
     );
-    doorLockClusterInteractionInfoMap.put("clearUser", doorLockclearUserInteractionInfo);
-
-    Map<String, CommandParameterInfo> doorLocksetCredentialCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    colorControlClusterInteractionInfoMap.put("stepSaturation", colorControlstepSaturationInteractionInfo);
 
-    CommandParameterInfo doorLocksetCredentialoperationTypeCommandParameterInfo = new CommandParameterInfo("operationType", Integer.class, Integer.class);
-    doorLocksetCredentialCommandParams.put("operationType",doorLocksetCredentialoperationTypeCommandParameterInfo);
+    Map<String, CommandParameterInfo> colorControlmoveToHueAndSaturationCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
+    CommandParameterInfo colorControlmoveToHueAndSaturationhueCommandParameterInfo = new CommandParameterInfo("hue", Integer.class, Integer.class);
+    colorControlmoveToHueAndSaturationCommandParams.put("hue",colorControlmoveToHueAndSaturationhueCommandParameterInfo);
 
-    CommandParameterInfo doorLocksetCredentialcredentialDataCommandParameterInfo = new CommandParameterInfo("credentialData", byte[].class, byte[].class);
-    doorLocksetCredentialCommandParams.put("credentialData",doorLocksetCredentialcredentialDataCommandParameterInfo);
+    CommandParameterInfo colorControlmoveToHueAndSaturationsaturationCommandParameterInfo = new CommandParameterInfo("saturation", Integer.class, Integer.class);
+    colorControlmoveToHueAndSaturationCommandParams.put("saturation",colorControlmoveToHueAndSaturationsaturationCommandParameterInfo);
 
-    CommandParameterInfo doorLocksetCredentialuserIndexCommandParameterInfo = new CommandParameterInfo("userIndex", Integer.class, Integer.class);
-    doorLocksetCredentialCommandParams.put("userIndex",doorLocksetCredentialuserIndexCommandParameterInfo);
+    CommandParameterInfo colorControlmoveToHueAndSaturationtransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Integer.class, Integer.class);
+    colorControlmoveToHueAndSaturationCommandParams.put("transitionTime",colorControlmoveToHueAndSaturationtransitionTimeCommandParameterInfo);
 
-    CommandParameterInfo doorLocksetCredentialuserStatusCommandParameterInfo = new CommandParameterInfo("userStatus", Integer.class, Integer.class);
-    doorLocksetCredentialCommandParams.put("userStatus",doorLocksetCredentialuserStatusCommandParameterInfo);
+    CommandParameterInfo colorControlmoveToHueAndSaturationoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
+    colorControlmoveToHueAndSaturationCommandParams.put("optionsMask",colorControlmoveToHueAndSaturationoptionsMaskCommandParameterInfo);
 
-    CommandParameterInfo doorLocksetCredentialuserTypeCommandParameterInfo = new CommandParameterInfo("userType", Integer.class, Integer.class);
-    doorLocksetCredentialCommandParams.put("userType",doorLocksetCredentialuserTypeCommandParameterInfo);
-    InteractionInfo doorLocksetCredentialInteractionInfo = new InteractionInfo(
+    CommandParameterInfo colorControlmoveToHueAndSaturationoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
+    colorControlmoveToHueAndSaturationCommandParams.put("optionsOverride",colorControlmoveToHueAndSaturationoptionsOverrideCommandParameterInfo);
+    InteractionInfo colorControlmoveToHueAndSaturationInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DoorLockCluster) cluster)
-          .setCredential((ChipClusters.DoorLockCluster.SetCredentialResponseCallback) callback
-           , (Integer)
-             commandArguments.get("operationType")
-
-           , (ChipStructs.DoorLockClusterCredentialStruct)
-             commandArguments.get("credential")
-
-           , (byte[])
-             commandArguments.get("credentialData")
-
-           , (Integer)
-             commandArguments.get("userIndex")
-
-           , (Integer)
-             commandArguments.get("userStatus")
-
-           , (Integer)
-             commandArguments.get("userType")
+        ((ChipClusters.ColorControlCluster) cluster)
+        .moveToHueAndSaturation((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("hue")
+        , (Integer)
+        commandArguments.get("saturation")
+        , (Integer)
+        commandArguments.get("transitionTime")
+        , (Integer)
+        commandArguments.get("optionsMask")
+        , (Integer)
+        commandArguments.get("optionsOverride")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        colorControlmoveToHueAndSaturationCommandParams
+    );
+    colorControlClusterInteractionInfoMap.put("moveToHueAndSaturation", colorControlmoveToHueAndSaturationInteractionInfo);
 
-            , 10000);
-        },
-        () -> new DelegatedDoorLockClusterSetCredentialResponseCallback(),
-        doorLocksetCredentialCommandParams
-      );
-    doorLockClusterInteractionInfoMap.put("setCredential", doorLocksetCredentialInteractionInfo);
+    Map<String, CommandParameterInfo> colorControlmoveToColorCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, CommandParameterInfo> doorLockgetCredentialStatusCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo colorControlmoveToColorcolorXCommandParameterInfo = new CommandParameterInfo("colorX", Integer.class, Integer.class);
+    colorControlmoveToColorCommandParams.put("colorX",colorControlmoveToColorcolorXCommandParameterInfo);
 
-    InteractionInfo doorLockgetCredentialStatusInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DoorLockCluster) cluster)
-          .getCredentialStatus((ChipClusters.DoorLockCluster.GetCredentialStatusResponseCallback) callback
-           , (ChipStructs.DoorLockClusterCredentialStruct)
-             commandArguments.get("credential")
+    CommandParameterInfo colorControlmoveToColorcolorYCommandParameterInfo = new CommandParameterInfo("colorY", Integer.class, Integer.class);
+    colorControlmoveToColorCommandParams.put("colorY",colorControlmoveToColorcolorYCommandParameterInfo);
 
-            );
-        },
-        () -> new DelegatedDoorLockClusterGetCredentialStatusResponseCallback(),
-        doorLockgetCredentialStatusCommandParams
-      );
-    doorLockClusterInteractionInfoMap.put("getCredentialStatus", doorLockgetCredentialStatusInteractionInfo);
+    CommandParameterInfo colorControlmoveToColortransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Integer.class, Integer.class);
+    colorControlmoveToColorCommandParams.put("transitionTime",colorControlmoveToColortransitionTimeCommandParameterInfo);
 
-    Map<String, CommandParameterInfo> doorLockclearCredentialCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo colorControlmoveToColoroptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
+    colorControlmoveToColorCommandParams.put("optionsMask",colorControlmoveToColoroptionsMaskCommandParameterInfo);
 
-    InteractionInfo doorLockclearCredentialInteractionInfo = new InteractionInfo(
+    CommandParameterInfo colorControlmoveToColoroptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
+    colorControlmoveToColorCommandParams.put("optionsOverride",colorControlmoveToColoroptionsOverrideCommandParameterInfo);
+    InteractionInfo colorControlmoveToColorInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DoorLockCluster) cluster)
-        .clearCredential((DefaultClusterCallback) callback
-        , (ChipStructs.DoorLockClusterCredentialStruct)
-        commandArguments.get("credential"), 10000
+        ((ChipClusters.ColorControlCluster) cluster)
+        .moveToColor((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("colorX")
+        , (Integer)
+        commandArguments.get("colorY")
+        , (Integer)
+        commandArguments.get("transitionTime")
+        , (Integer)
+        commandArguments.get("optionsMask")
+        , (Integer)
+        commandArguments.get("optionsOverride")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        doorLockclearCredentialCommandParams
+        colorControlmoveToColorCommandParams
     );
-    doorLockClusterInteractionInfoMap.put("clearCredential", doorLockclearCredentialInteractionInfo);
+    colorControlClusterInteractionInfoMap.put("moveToColor", colorControlmoveToColorInteractionInfo);
 
-    Map<String, CommandParameterInfo> doorLockunboltDoorCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> colorControlmoveColorCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo doorLockunboltDoorPINCodeCommandParameterInfo = new CommandParameterInfo("PINCode", Optional.class, byte[].class);
-    doorLockunboltDoorCommandParams.put("PINCode",doorLockunboltDoorPINCodeCommandParameterInfo);
-    InteractionInfo doorLockunboltDoorInteractionInfo = new InteractionInfo(
+    CommandParameterInfo colorControlmoveColorrateXCommandParameterInfo = new CommandParameterInfo("rateX", Integer.class, Integer.class);
+    colorControlmoveColorCommandParams.put("rateX",colorControlmoveColorrateXCommandParameterInfo);
+
+    CommandParameterInfo colorControlmoveColorrateYCommandParameterInfo = new CommandParameterInfo("rateY", Integer.class, Integer.class);
+    colorControlmoveColorCommandParams.put("rateY",colorControlmoveColorrateYCommandParameterInfo);
+
+    CommandParameterInfo colorControlmoveColoroptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
+    colorControlmoveColorCommandParams.put("optionsMask",colorControlmoveColoroptionsMaskCommandParameterInfo);
+
+    CommandParameterInfo colorControlmoveColoroptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
+    colorControlmoveColorCommandParams.put("optionsOverride",colorControlmoveColoroptionsOverrideCommandParameterInfo);
+    InteractionInfo colorControlmoveColorInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DoorLockCluster) cluster)
-        .unboltDoor((DefaultClusterCallback) callback
-        , (Optional<byte[]>)
-        commandArguments.get("PINCode"), 10000
+        ((ChipClusters.ColorControlCluster) cluster)
+        .moveColor((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("rateX")
+        , (Integer)
+        commandArguments.get("rateY")
+        , (Integer)
+        commandArguments.get("optionsMask")
+        , (Integer)
+        commandArguments.get("optionsOverride")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        doorLockunboltDoorCommandParams
+        colorControlmoveColorCommandParams
     );
-    doorLockClusterInteractionInfoMap.put("unboltDoor", doorLockunboltDoorInteractionInfo);
+    colorControlClusterInteractionInfoMap.put("moveColor", colorControlmoveColorInteractionInfo);
 
-    Map<String, CommandParameterInfo> doorLocksetAliroReaderConfigCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> colorControlstepColorCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo doorLocksetAliroReaderConfigsigningKeyCommandParameterInfo = new CommandParameterInfo("signingKey", byte[].class, byte[].class);
-    doorLocksetAliroReaderConfigCommandParams.put("signingKey",doorLocksetAliroReaderConfigsigningKeyCommandParameterInfo);
+    CommandParameterInfo colorControlstepColorstepXCommandParameterInfo = new CommandParameterInfo("stepX", Integer.class, Integer.class);
+    colorControlstepColorCommandParams.put("stepX",colorControlstepColorstepXCommandParameterInfo);
 
-    CommandParameterInfo doorLocksetAliroReaderConfigverificationKeyCommandParameterInfo = new CommandParameterInfo("verificationKey", byte[].class, byte[].class);
-    doorLocksetAliroReaderConfigCommandParams.put("verificationKey",doorLocksetAliroReaderConfigverificationKeyCommandParameterInfo);
+    CommandParameterInfo colorControlstepColorstepYCommandParameterInfo = new CommandParameterInfo("stepY", Integer.class, Integer.class);
+    colorControlstepColorCommandParams.put("stepY",colorControlstepColorstepYCommandParameterInfo);
 
-    CommandParameterInfo doorLocksetAliroReaderConfiggroupIdentifierCommandParameterInfo = new CommandParameterInfo("groupIdentifier", byte[].class, byte[].class);
-    doorLocksetAliroReaderConfigCommandParams.put("groupIdentifier",doorLocksetAliroReaderConfiggroupIdentifierCommandParameterInfo);
+    CommandParameterInfo colorControlstepColortransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Integer.class, Integer.class);
+    colorControlstepColorCommandParams.put("transitionTime",colorControlstepColortransitionTimeCommandParameterInfo);
 
-    CommandParameterInfo doorLocksetAliroReaderConfiggroupResolvingKeyCommandParameterInfo = new CommandParameterInfo("groupResolvingKey", Optional.class, byte[].class);
-    doorLocksetAliroReaderConfigCommandParams.put("groupResolvingKey",doorLocksetAliroReaderConfiggroupResolvingKeyCommandParameterInfo);
-    InteractionInfo doorLocksetAliroReaderConfigInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DoorLockCluster) cluster)
-        .setAliroReaderConfig((DefaultClusterCallback) callback
-        , (byte[])
-        commandArguments.get("signingKey")
-        , (byte[])
-        commandArguments.get("verificationKey")
-        , (byte[])
-        commandArguments.get("groupIdentifier")
-        , (Optional<byte[]>)
-        commandArguments.get("groupResolvingKey"), 10000
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        doorLocksetAliroReaderConfigCommandParams
-    );
-    doorLockClusterInteractionInfoMap.put("setAliroReaderConfig", doorLocksetAliroReaderConfigInteractionInfo);
+    CommandParameterInfo colorControlstepColoroptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
+    colorControlstepColorCommandParams.put("optionsMask",colorControlstepColoroptionsMaskCommandParameterInfo);
 
-    Map<String, CommandParameterInfo> doorLockclearAliroReaderConfigCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo doorLockclearAliroReaderConfigInteractionInfo = new InteractionInfo(
+    CommandParameterInfo colorControlstepColoroptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
+    colorControlstepColorCommandParams.put("optionsOverride",colorControlstepColoroptionsOverrideCommandParameterInfo);
+    InteractionInfo colorControlstepColorInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.DoorLockCluster) cluster)
-        .clearAliroReaderConfig((DefaultClusterCallback) callback, 10000
+        ((ChipClusters.ColorControlCluster) cluster)
+        .stepColor((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("stepX")
+        , (Integer)
+        commandArguments.get("stepY")
+        , (Integer)
+        commandArguments.get("transitionTime")
+        , (Integer)
+        commandArguments.get("optionsMask")
+        , (Integer)
+        commandArguments.get("optionsOverride")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        doorLockclearAliroReaderConfigCommandParams
+        colorControlstepColorCommandParams
     );
-    doorLockClusterInteractionInfoMap.put("clearAliroReaderConfig", doorLockclearAliroReaderConfigInteractionInfo);
+    colorControlClusterInteractionInfoMap.put("stepColor", colorControlstepColorInteractionInfo);
 
-    commandMap.put("doorLock", doorLockClusterInteractionInfoMap);
+    Map<String, CommandParameterInfo> colorControlmoveToColorTemperatureCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, InteractionInfo> windowCoveringClusterInteractionInfoMap = new LinkedHashMap<>();
+    CommandParameterInfo colorControlmoveToColorTemperaturecolorTemperatureMiredsCommandParameterInfo = new CommandParameterInfo("colorTemperatureMireds", Integer.class, Integer.class);
+    colorControlmoveToColorTemperatureCommandParams.put("colorTemperatureMireds",colorControlmoveToColorTemperaturecolorTemperatureMiredsCommandParameterInfo);
 
-    Map<String, CommandParameterInfo> windowCoveringupOrOpenCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo windowCoveringupOrOpenInteractionInfo = new InteractionInfo(
+    CommandParameterInfo colorControlmoveToColorTemperaturetransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Integer.class, Integer.class);
+    colorControlmoveToColorTemperatureCommandParams.put("transitionTime",colorControlmoveToColorTemperaturetransitionTimeCommandParameterInfo);
+
+    CommandParameterInfo colorControlmoveToColorTemperatureoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
+    colorControlmoveToColorTemperatureCommandParams.put("optionsMask",colorControlmoveToColorTemperatureoptionsMaskCommandParameterInfo);
+
+    CommandParameterInfo colorControlmoveToColorTemperatureoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
+    colorControlmoveToColorTemperatureCommandParams.put("optionsOverride",colorControlmoveToColorTemperatureoptionsOverrideCommandParameterInfo);
+    InteractionInfo colorControlmoveToColorTemperatureInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.WindowCoveringCluster) cluster)
-        .upOrOpen((DefaultClusterCallback) callback
+        ((ChipClusters.ColorControlCluster) cluster)
+        .moveToColorTemperature((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("colorTemperatureMireds")
+        , (Integer)
+        commandArguments.get("transitionTime")
+        , (Integer)
+        commandArguments.get("optionsMask")
+        , (Integer)
+        commandArguments.get("optionsOverride")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        windowCoveringupOrOpenCommandParams
+        colorControlmoveToColorTemperatureCommandParams
     );
-    windowCoveringClusterInteractionInfoMap.put("upOrOpen", windowCoveringupOrOpenInteractionInfo);
+    colorControlClusterInteractionInfoMap.put("moveToColorTemperature", colorControlmoveToColorTemperatureInteractionInfo);
 
-    Map<String, CommandParameterInfo> windowCoveringdownOrCloseCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo windowCoveringdownOrCloseInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> colorControlenhancedMoveToHueCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo colorControlenhancedMoveToHueenhancedHueCommandParameterInfo = new CommandParameterInfo("enhancedHue", Integer.class, Integer.class);
+    colorControlenhancedMoveToHueCommandParams.put("enhancedHue",colorControlenhancedMoveToHueenhancedHueCommandParameterInfo);
+
+    CommandParameterInfo colorControlenhancedMoveToHuedirectionCommandParameterInfo = new CommandParameterInfo("direction", Integer.class, Integer.class);
+    colorControlenhancedMoveToHueCommandParams.put("direction",colorControlenhancedMoveToHuedirectionCommandParameterInfo);
+
+    CommandParameterInfo colorControlenhancedMoveToHuetransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Integer.class, Integer.class);
+    colorControlenhancedMoveToHueCommandParams.put("transitionTime",colorControlenhancedMoveToHuetransitionTimeCommandParameterInfo);
+
+    CommandParameterInfo colorControlenhancedMoveToHueoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
+    colorControlenhancedMoveToHueCommandParams.put("optionsMask",colorControlenhancedMoveToHueoptionsMaskCommandParameterInfo);
+
+    CommandParameterInfo colorControlenhancedMoveToHueoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
+    colorControlenhancedMoveToHueCommandParams.put("optionsOverride",colorControlenhancedMoveToHueoptionsOverrideCommandParameterInfo);
+    InteractionInfo colorControlenhancedMoveToHueInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.WindowCoveringCluster) cluster)
-        .downOrClose((DefaultClusterCallback) callback
+        ((ChipClusters.ColorControlCluster) cluster)
+        .enhancedMoveToHue((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("enhancedHue")
+        , (Integer)
+        commandArguments.get("direction")
+        , (Integer)
+        commandArguments.get("transitionTime")
+        , (Integer)
+        commandArguments.get("optionsMask")
+        , (Integer)
+        commandArguments.get("optionsOverride")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        windowCoveringdownOrCloseCommandParams
+        colorControlenhancedMoveToHueCommandParams
     );
-    windowCoveringClusterInteractionInfoMap.put("downOrClose", windowCoveringdownOrCloseInteractionInfo);
+    colorControlClusterInteractionInfoMap.put("enhancedMoveToHue", colorControlenhancedMoveToHueInteractionInfo);
 
-    Map<String, CommandParameterInfo> windowCoveringstopMotionCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo windowCoveringstopMotionInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> colorControlenhancedMoveHueCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo colorControlenhancedMoveHuemoveModeCommandParameterInfo = new CommandParameterInfo("moveMode", Integer.class, Integer.class);
+    colorControlenhancedMoveHueCommandParams.put("moveMode",colorControlenhancedMoveHuemoveModeCommandParameterInfo);
+
+    CommandParameterInfo colorControlenhancedMoveHuerateCommandParameterInfo = new CommandParameterInfo("rate", Integer.class, Integer.class);
+    colorControlenhancedMoveHueCommandParams.put("rate",colorControlenhancedMoveHuerateCommandParameterInfo);
+
+    CommandParameterInfo colorControlenhancedMoveHueoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
+    colorControlenhancedMoveHueCommandParams.put("optionsMask",colorControlenhancedMoveHueoptionsMaskCommandParameterInfo);
+
+    CommandParameterInfo colorControlenhancedMoveHueoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
+    colorControlenhancedMoveHueCommandParams.put("optionsOverride",colorControlenhancedMoveHueoptionsOverrideCommandParameterInfo);
+    InteractionInfo colorControlenhancedMoveHueInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.WindowCoveringCluster) cluster)
-        .stopMotion((DefaultClusterCallback) callback
+        ((ChipClusters.ColorControlCluster) cluster)
+        .enhancedMoveHue((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("moveMode")
+        , (Integer)
+        commandArguments.get("rate")
+        , (Integer)
+        commandArguments.get("optionsMask")
+        , (Integer)
+        commandArguments.get("optionsOverride")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        windowCoveringstopMotionCommandParams
+        colorControlenhancedMoveHueCommandParams
     );
-    windowCoveringClusterInteractionInfoMap.put("stopMotion", windowCoveringstopMotionInteractionInfo);
+    colorControlClusterInteractionInfoMap.put("enhancedMoveHue", colorControlenhancedMoveHueInteractionInfo);
 
-    Map<String, CommandParameterInfo> windowCoveringgoToLiftValueCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> colorControlenhancedStepHueCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo windowCoveringgoToLiftValueliftValueCommandParameterInfo = new CommandParameterInfo("liftValue", Integer.class, Integer.class);
-    windowCoveringgoToLiftValueCommandParams.put("liftValue",windowCoveringgoToLiftValueliftValueCommandParameterInfo);
-    InteractionInfo windowCoveringgoToLiftValueInteractionInfo = new InteractionInfo(
+    CommandParameterInfo colorControlenhancedStepHuestepModeCommandParameterInfo = new CommandParameterInfo("stepMode", Integer.class, Integer.class);
+    colorControlenhancedStepHueCommandParams.put("stepMode",colorControlenhancedStepHuestepModeCommandParameterInfo);
+
+    CommandParameterInfo colorControlenhancedStepHuestepSizeCommandParameterInfo = new CommandParameterInfo("stepSize", Integer.class, Integer.class);
+    colorControlenhancedStepHueCommandParams.put("stepSize",colorControlenhancedStepHuestepSizeCommandParameterInfo);
+
+    CommandParameterInfo colorControlenhancedStepHuetransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Integer.class, Integer.class);
+    colorControlenhancedStepHueCommandParams.put("transitionTime",colorControlenhancedStepHuetransitionTimeCommandParameterInfo);
+
+    CommandParameterInfo colorControlenhancedStepHueoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
+    colorControlenhancedStepHueCommandParams.put("optionsMask",colorControlenhancedStepHueoptionsMaskCommandParameterInfo);
+
+    CommandParameterInfo colorControlenhancedStepHueoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
+    colorControlenhancedStepHueCommandParams.put("optionsOverride",colorControlenhancedStepHueoptionsOverrideCommandParameterInfo);
+    InteractionInfo colorControlenhancedStepHueInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.WindowCoveringCluster) cluster)
-        .goToLiftValue((DefaultClusterCallback) callback
+        ((ChipClusters.ColorControlCluster) cluster)
+        .enhancedStepHue((DefaultClusterCallback) callback
         , (Integer)
-        commandArguments.get("liftValue")
+        commandArguments.get("stepMode")
+        , (Integer)
+        commandArguments.get("stepSize")
+        , (Integer)
+        commandArguments.get("transitionTime")
+        , (Integer)
+        commandArguments.get("optionsMask")
+        , (Integer)
+        commandArguments.get("optionsOverride")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        windowCoveringgoToLiftValueCommandParams
+        colorControlenhancedStepHueCommandParams
     );
-    windowCoveringClusterInteractionInfoMap.put("goToLiftValue", windowCoveringgoToLiftValueInteractionInfo);
+    colorControlClusterInteractionInfoMap.put("enhancedStepHue", colorControlenhancedStepHueInteractionInfo);
 
-    Map<String, CommandParameterInfo> windowCoveringgoToLiftPercentageCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> colorControlenhancedMoveToHueAndSaturationCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo windowCoveringgoToLiftPercentageliftPercent100thsValueCommandParameterInfo = new CommandParameterInfo("liftPercent100thsValue", Integer.class, Integer.class);
-    windowCoveringgoToLiftPercentageCommandParams.put("liftPercent100thsValue",windowCoveringgoToLiftPercentageliftPercent100thsValueCommandParameterInfo);
-    InteractionInfo windowCoveringgoToLiftPercentageInteractionInfo = new InteractionInfo(
+    CommandParameterInfo colorControlenhancedMoveToHueAndSaturationenhancedHueCommandParameterInfo = new CommandParameterInfo("enhancedHue", Integer.class, Integer.class);
+    colorControlenhancedMoveToHueAndSaturationCommandParams.put("enhancedHue",colorControlenhancedMoveToHueAndSaturationenhancedHueCommandParameterInfo);
+
+    CommandParameterInfo colorControlenhancedMoveToHueAndSaturationsaturationCommandParameterInfo = new CommandParameterInfo("saturation", Integer.class, Integer.class);
+    colorControlenhancedMoveToHueAndSaturationCommandParams.put("saturation",colorControlenhancedMoveToHueAndSaturationsaturationCommandParameterInfo);
+
+    CommandParameterInfo colorControlenhancedMoveToHueAndSaturationtransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Integer.class, Integer.class);
+    colorControlenhancedMoveToHueAndSaturationCommandParams.put("transitionTime",colorControlenhancedMoveToHueAndSaturationtransitionTimeCommandParameterInfo);
+
+    CommandParameterInfo colorControlenhancedMoveToHueAndSaturationoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
+    colorControlenhancedMoveToHueAndSaturationCommandParams.put("optionsMask",colorControlenhancedMoveToHueAndSaturationoptionsMaskCommandParameterInfo);
+
+    CommandParameterInfo colorControlenhancedMoveToHueAndSaturationoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
+    colorControlenhancedMoveToHueAndSaturationCommandParams.put("optionsOverride",colorControlenhancedMoveToHueAndSaturationoptionsOverrideCommandParameterInfo);
+    InteractionInfo colorControlenhancedMoveToHueAndSaturationInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.WindowCoveringCluster) cluster)
-        .goToLiftPercentage((DefaultClusterCallback) callback
+        ((ChipClusters.ColorControlCluster) cluster)
+        .enhancedMoveToHueAndSaturation((DefaultClusterCallback) callback
         , (Integer)
-        commandArguments.get("liftPercent100thsValue")
+        commandArguments.get("enhancedHue")
+        , (Integer)
+        commandArguments.get("saturation")
+        , (Integer)
+        commandArguments.get("transitionTime")
+        , (Integer)
+        commandArguments.get("optionsMask")
+        , (Integer)
+        commandArguments.get("optionsOverride")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        windowCoveringgoToLiftPercentageCommandParams
+        colorControlenhancedMoveToHueAndSaturationCommandParams
     );
-    windowCoveringClusterInteractionInfoMap.put("goToLiftPercentage", windowCoveringgoToLiftPercentageInteractionInfo);
+    colorControlClusterInteractionInfoMap.put("enhancedMoveToHueAndSaturation", colorControlenhancedMoveToHueAndSaturationInteractionInfo);
 
-    Map<String, CommandParameterInfo> windowCoveringgoToTiltValueCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> colorControlcolorLoopSetCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo windowCoveringgoToTiltValuetiltValueCommandParameterInfo = new CommandParameterInfo("tiltValue", Integer.class, Integer.class);
-    windowCoveringgoToTiltValueCommandParams.put("tiltValue",windowCoveringgoToTiltValuetiltValueCommandParameterInfo);
-    InteractionInfo windowCoveringgoToTiltValueInteractionInfo = new InteractionInfo(
+    CommandParameterInfo colorControlcolorLoopSetupdateFlagsCommandParameterInfo = new CommandParameterInfo("updateFlags", Integer.class, Integer.class);
+    colorControlcolorLoopSetCommandParams.put("updateFlags",colorControlcolorLoopSetupdateFlagsCommandParameterInfo);
+
+    CommandParameterInfo colorControlcolorLoopSetactionCommandParameterInfo = new CommandParameterInfo("action", Integer.class, Integer.class);
+    colorControlcolorLoopSetCommandParams.put("action",colorControlcolorLoopSetactionCommandParameterInfo);
+
+    CommandParameterInfo colorControlcolorLoopSetdirectionCommandParameterInfo = new CommandParameterInfo("direction", Integer.class, Integer.class);
+    colorControlcolorLoopSetCommandParams.put("direction",colorControlcolorLoopSetdirectionCommandParameterInfo);
+
+    CommandParameterInfo colorControlcolorLoopSettimeCommandParameterInfo = new CommandParameterInfo("time", Integer.class, Integer.class);
+    colorControlcolorLoopSetCommandParams.put("time",colorControlcolorLoopSettimeCommandParameterInfo);
+
+    CommandParameterInfo colorControlcolorLoopSetstartHueCommandParameterInfo = new CommandParameterInfo("startHue", Integer.class, Integer.class);
+    colorControlcolorLoopSetCommandParams.put("startHue",colorControlcolorLoopSetstartHueCommandParameterInfo);
+
+    CommandParameterInfo colorControlcolorLoopSetoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
+    colorControlcolorLoopSetCommandParams.put("optionsMask",colorControlcolorLoopSetoptionsMaskCommandParameterInfo);
+
+    CommandParameterInfo colorControlcolorLoopSetoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
+    colorControlcolorLoopSetCommandParams.put("optionsOverride",colorControlcolorLoopSetoptionsOverrideCommandParameterInfo);
+    InteractionInfo colorControlcolorLoopSetInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.WindowCoveringCluster) cluster)
-        .goToTiltValue((DefaultClusterCallback) callback
+        ((ChipClusters.ColorControlCluster) cluster)
+        .colorLoopSet((DefaultClusterCallback) callback
         , (Integer)
-        commandArguments.get("tiltValue")
+        commandArguments.get("updateFlags")
+        , (Integer)
+        commandArguments.get("action")
+        , (Integer)
+        commandArguments.get("direction")
+        , (Integer)
+        commandArguments.get("time")
+        , (Integer)
+        commandArguments.get("startHue")
+        , (Integer)
+        commandArguments.get("optionsMask")
+        , (Integer)
+        commandArguments.get("optionsOverride")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        windowCoveringgoToTiltValueCommandParams
+        colorControlcolorLoopSetCommandParams
     );
-    windowCoveringClusterInteractionInfoMap.put("goToTiltValue", windowCoveringgoToTiltValueInteractionInfo);
+    colorControlClusterInteractionInfoMap.put("colorLoopSet", colorControlcolorLoopSetInteractionInfo);
 
-    Map<String, CommandParameterInfo> windowCoveringgoToTiltPercentageCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> colorControlstopMoveStepCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo windowCoveringgoToTiltPercentagetiltPercent100thsValueCommandParameterInfo = new CommandParameterInfo("tiltPercent100thsValue", Integer.class, Integer.class);
-    windowCoveringgoToTiltPercentageCommandParams.put("tiltPercent100thsValue",windowCoveringgoToTiltPercentagetiltPercent100thsValueCommandParameterInfo);
-    InteractionInfo windowCoveringgoToTiltPercentageInteractionInfo = new InteractionInfo(
+    CommandParameterInfo colorControlstopMoveStepoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
+    colorControlstopMoveStepCommandParams.put("optionsMask",colorControlstopMoveStepoptionsMaskCommandParameterInfo);
+
+    CommandParameterInfo colorControlstopMoveStepoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
+    colorControlstopMoveStepCommandParams.put("optionsOverride",colorControlstopMoveStepoptionsOverrideCommandParameterInfo);
+    InteractionInfo colorControlstopMoveStepInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.WindowCoveringCluster) cluster)
-        .goToTiltPercentage((DefaultClusterCallback) callback
+        ((ChipClusters.ColorControlCluster) cluster)
+        .stopMoveStep((DefaultClusterCallback) callback
         , (Integer)
-        commandArguments.get("tiltPercent100thsValue")
+        commandArguments.get("optionsMask")
+        , (Integer)
+        commandArguments.get("optionsOverride")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        windowCoveringgoToTiltPercentageCommandParams
+        colorControlstopMoveStepCommandParams
     );
-    windowCoveringClusterInteractionInfoMap.put("goToTiltPercentage", windowCoveringgoToTiltPercentageInteractionInfo);
+    colorControlClusterInteractionInfoMap.put("stopMoveStep", colorControlstopMoveStepInteractionInfo);
 
-    commandMap.put("windowCovering", windowCoveringClusterInteractionInfoMap);
+    Map<String, CommandParameterInfo> colorControlmoveColorTemperatureCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, InteractionInfo> barrierControlClusterInteractionInfoMap = new LinkedHashMap<>();
+    CommandParameterInfo colorControlmoveColorTemperaturemoveModeCommandParameterInfo = new CommandParameterInfo("moveMode", Integer.class, Integer.class);
+    colorControlmoveColorTemperatureCommandParams.put("moveMode",colorControlmoveColorTemperaturemoveModeCommandParameterInfo);
 
-    Map<String, CommandParameterInfo> barrierControlbarrierControlGoToPercentCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo colorControlmoveColorTemperaturerateCommandParameterInfo = new CommandParameterInfo("rate", Integer.class, Integer.class);
+    colorControlmoveColorTemperatureCommandParams.put("rate",colorControlmoveColorTemperaturerateCommandParameterInfo);
 
-    CommandParameterInfo barrierControlbarrierControlGoToPercentpercentOpenCommandParameterInfo = new CommandParameterInfo("percentOpen", Integer.class, Integer.class);
-    barrierControlbarrierControlGoToPercentCommandParams.put("percentOpen",barrierControlbarrierControlGoToPercentpercentOpenCommandParameterInfo);
-    InteractionInfo barrierControlbarrierControlGoToPercentInteractionInfo = new InteractionInfo(
+    CommandParameterInfo colorControlmoveColorTemperaturecolorTemperatureMinimumMiredsCommandParameterInfo = new CommandParameterInfo("colorTemperatureMinimumMireds", Integer.class, Integer.class);
+    colorControlmoveColorTemperatureCommandParams.put("colorTemperatureMinimumMireds",colorControlmoveColorTemperaturecolorTemperatureMinimumMiredsCommandParameterInfo);
+
+    CommandParameterInfo colorControlmoveColorTemperaturecolorTemperatureMaximumMiredsCommandParameterInfo = new CommandParameterInfo("colorTemperatureMaximumMireds", Integer.class, Integer.class);
+    colorControlmoveColorTemperatureCommandParams.put("colorTemperatureMaximumMireds",colorControlmoveColorTemperaturecolorTemperatureMaximumMiredsCommandParameterInfo);
+
+    CommandParameterInfo colorControlmoveColorTemperatureoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
+    colorControlmoveColorTemperatureCommandParams.put("optionsMask",colorControlmoveColorTemperatureoptionsMaskCommandParameterInfo);
+
+    CommandParameterInfo colorControlmoveColorTemperatureoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
+    colorControlmoveColorTemperatureCommandParams.put("optionsOverride",colorControlmoveColorTemperatureoptionsOverrideCommandParameterInfo);
+    InteractionInfo colorControlmoveColorTemperatureInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.BarrierControlCluster) cluster)
-        .barrierControlGoToPercent((DefaultClusterCallback) callback
+        ((ChipClusters.ColorControlCluster) cluster)
+        .moveColorTemperature((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("moveMode")
+        , (Integer)
+        commandArguments.get("rate")
+        , (Integer)
+        commandArguments.get("colorTemperatureMinimumMireds")
+        , (Integer)
+        commandArguments.get("colorTemperatureMaximumMireds")
         , (Integer)
-        commandArguments.get("percentOpen")
+        commandArguments.get("optionsMask")
+        , (Integer)
+        commandArguments.get("optionsOverride")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        barrierControlbarrierControlGoToPercentCommandParams
+        colorControlmoveColorTemperatureCommandParams
     );
-    barrierControlClusterInteractionInfoMap.put("barrierControlGoToPercent", barrierControlbarrierControlGoToPercentInteractionInfo);
+    colorControlClusterInteractionInfoMap.put("moveColorTemperature", colorControlmoveColorTemperatureInteractionInfo);
 
-    Map<String, CommandParameterInfo> barrierControlbarrierControlStopCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo barrierControlbarrierControlStopInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> colorControlstepColorTemperatureCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo colorControlstepColorTemperaturestepModeCommandParameterInfo = new CommandParameterInfo("stepMode", Integer.class, Integer.class);
+    colorControlstepColorTemperatureCommandParams.put("stepMode",colorControlstepColorTemperaturestepModeCommandParameterInfo);
+
+    CommandParameterInfo colorControlstepColorTemperaturestepSizeCommandParameterInfo = new CommandParameterInfo("stepSize", Integer.class, Integer.class);
+    colorControlstepColorTemperatureCommandParams.put("stepSize",colorControlstepColorTemperaturestepSizeCommandParameterInfo);
+
+    CommandParameterInfo colorControlstepColorTemperaturetransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Integer.class, Integer.class);
+    colorControlstepColorTemperatureCommandParams.put("transitionTime",colorControlstepColorTemperaturetransitionTimeCommandParameterInfo);
+
+    CommandParameterInfo colorControlstepColorTemperaturecolorTemperatureMinimumMiredsCommandParameterInfo = new CommandParameterInfo("colorTemperatureMinimumMireds", Integer.class, Integer.class);
+    colorControlstepColorTemperatureCommandParams.put("colorTemperatureMinimumMireds",colorControlstepColorTemperaturecolorTemperatureMinimumMiredsCommandParameterInfo);
+
+    CommandParameterInfo colorControlstepColorTemperaturecolorTemperatureMaximumMiredsCommandParameterInfo = new CommandParameterInfo("colorTemperatureMaximumMireds", Integer.class, Integer.class);
+    colorControlstepColorTemperatureCommandParams.put("colorTemperatureMaximumMireds",colorControlstepColorTemperaturecolorTemperatureMaximumMiredsCommandParameterInfo);
+
+    CommandParameterInfo colorControlstepColorTemperatureoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
+    colorControlstepColorTemperatureCommandParams.put("optionsMask",colorControlstepColorTemperatureoptionsMaskCommandParameterInfo);
+
+    CommandParameterInfo colorControlstepColorTemperatureoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
+    colorControlstepColorTemperatureCommandParams.put("optionsOverride",colorControlstepColorTemperatureoptionsOverrideCommandParameterInfo);
+    InteractionInfo colorControlstepColorTemperatureInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.BarrierControlCluster) cluster)
-        .barrierControlStop((DefaultClusterCallback) callback
+        ((ChipClusters.ColorControlCluster) cluster)
+        .stepColorTemperature((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("stepMode")
+        , (Integer)
+        commandArguments.get("stepSize")
+        , (Integer)
+        commandArguments.get("transitionTime")
+        , (Integer)
+        commandArguments.get("colorTemperatureMinimumMireds")
+        , (Integer)
+        commandArguments.get("colorTemperatureMaximumMireds")
+        , (Integer)
+        commandArguments.get("optionsMask")
+        , (Integer)
+        commandArguments.get("optionsOverride")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        barrierControlbarrierControlStopCommandParams
+        colorControlstepColorTemperatureCommandParams
     );
-    barrierControlClusterInteractionInfoMap.put("barrierControlStop", barrierControlbarrierControlStopInteractionInfo);
+    colorControlClusterInteractionInfoMap.put("stepColorTemperature", colorControlstepColorTemperatureInteractionInfo);
 
-    commandMap.put("barrierControl", barrierControlClusterInteractionInfoMap);
+    commandMap.put("colorControl", colorControlClusterInteractionInfoMap);
 
-    Map<String, InteractionInfo> serviceAreaClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, InteractionInfo> ballastConfigurationClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    Map<String, CommandParameterInfo> serviceAreaselectAreasCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    commandMap.put("ballastConfiguration", ballastConfigurationClusterInteractionInfoMap);
 
-    CommandParameterInfo serviceAreaselectAreasnewAreasCommandParameterInfo = new CommandParameterInfo("newAreas", ArrayList.class, ArrayList.class);
-    serviceAreaselectAreasCommandParams.put("newAreas",serviceAreaselectAreasnewAreasCommandParameterInfo);
-    InteractionInfo serviceAreaselectAreasInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ServiceAreaCluster) cluster)
-          .selectAreas((ChipClusters.ServiceAreaCluster.SelectAreasResponseCallback) callback
-           , (ArrayList<Long>)
-             commandArguments.get("newAreas")
+    Map<String, InteractionInfo> illuminanceMeasurementClusterInteractionInfoMap = new LinkedHashMap<>();
 
-            );
-        },
-        () -> new DelegatedServiceAreaClusterSelectAreasResponseCallback(),
-        serviceAreaselectAreasCommandParams
-      );
-    serviceAreaClusterInteractionInfoMap.put("selectAreas", serviceAreaselectAreasInteractionInfo);
+    commandMap.put("illuminanceMeasurement", illuminanceMeasurementClusterInteractionInfoMap);
 
-    Map<String, CommandParameterInfo> serviceAreaskipAreaCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, InteractionInfo> temperatureMeasurementClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    CommandParameterInfo serviceAreaskipAreaskippedAreaCommandParameterInfo = new CommandParameterInfo("skippedArea", Long.class, Long.class);
-    serviceAreaskipAreaCommandParams.put("skippedArea",serviceAreaskipAreaskippedAreaCommandParameterInfo);
-    InteractionInfo serviceAreaskipAreaInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ServiceAreaCluster) cluster)
-          .skipArea((ChipClusters.ServiceAreaCluster.SkipAreaResponseCallback) callback
-           , (Long)
-             commandArguments.get("skippedArea")
+    commandMap.put("temperatureMeasurement", temperatureMeasurementClusterInteractionInfoMap);
 
-            );
-        },
-        () -> new DelegatedServiceAreaClusterSkipAreaResponseCallback(),
-        serviceAreaskipAreaCommandParams
-      );
-    serviceAreaClusterInteractionInfoMap.put("skipArea", serviceAreaskipAreaInteractionInfo);
+    Map<String, InteractionInfo> pressureMeasurementClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    commandMap.put("serviceArea", serviceAreaClusterInteractionInfoMap);
+    commandMap.put("pressureMeasurement", pressureMeasurementClusterInteractionInfoMap);
 
-    Map<String, InteractionInfo> pumpConfigurationAndControlClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, InteractionInfo> flowMeasurementClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    commandMap.put("pumpConfigurationAndControl", pumpConfigurationAndControlClusterInteractionInfoMap);
+    commandMap.put("flowMeasurement", flowMeasurementClusterInteractionInfoMap);
 
-    Map<String, InteractionInfo> thermostatClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, InteractionInfo> relativeHumidityMeasurementClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    Map<String, CommandParameterInfo> thermostatsetpointRaiseLowerCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    commandMap.put("relativeHumidityMeasurement", relativeHumidityMeasurementClusterInteractionInfoMap);
 
-    CommandParameterInfo thermostatsetpointRaiseLowermodeCommandParameterInfo = new CommandParameterInfo("mode", Integer.class, Integer.class);
-    thermostatsetpointRaiseLowerCommandParams.put("mode",thermostatsetpointRaiseLowermodeCommandParameterInfo);
+    Map<String, InteractionInfo> occupancySensingClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    CommandParameterInfo thermostatsetpointRaiseLoweramountCommandParameterInfo = new CommandParameterInfo("amount", Integer.class, Integer.class);
-    thermostatsetpointRaiseLowerCommandParams.put("amount",thermostatsetpointRaiseLoweramountCommandParameterInfo);
-    InteractionInfo thermostatsetpointRaiseLowerInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ThermostatCluster) cluster)
-        .setpointRaiseLower((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("mode")
-        , (Integer)
-        commandArguments.get("amount")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        thermostatsetpointRaiseLowerCommandParams
-    );
-    thermostatClusterInteractionInfoMap.put("setpointRaiseLower", thermostatsetpointRaiseLowerInteractionInfo);
+    commandMap.put("occupancySensing", occupancySensingClusterInteractionInfoMap);
 
-    Map<String, CommandParameterInfo> thermostatsetWeeklyScheduleCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, InteractionInfo> carbonMonoxideConcentrationMeasurementClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    CommandParameterInfo thermostatsetWeeklySchedulenumberOfTransitionsForSequenceCommandParameterInfo = new CommandParameterInfo("numberOfTransitionsForSequence", Integer.class, Integer.class);
-    thermostatsetWeeklyScheduleCommandParams.put("numberOfTransitionsForSequence",thermostatsetWeeklySchedulenumberOfTransitionsForSequenceCommandParameterInfo);
+    commandMap.put("carbonMonoxideConcentrationMeasurement", carbonMonoxideConcentrationMeasurementClusterInteractionInfoMap);
 
-    CommandParameterInfo thermostatsetWeeklyScheduledayOfWeekForSequenceCommandParameterInfo = new CommandParameterInfo("dayOfWeekForSequence", Integer.class, Integer.class);
-    thermostatsetWeeklyScheduleCommandParams.put("dayOfWeekForSequence",thermostatsetWeeklyScheduledayOfWeekForSequenceCommandParameterInfo);
+    Map<String, InteractionInfo> carbonDioxideConcentrationMeasurementClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    CommandParameterInfo thermostatsetWeeklySchedulemodeForSequenceCommandParameterInfo = new CommandParameterInfo("modeForSequence", Integer.class, Integer.class);
-    thermostatsetWeeklyScheduleCommandParams.put("modeForSequence",thermostatsetWeeklySchedulemodeForSequenceCommandParameterInfo);
+    commandMap.put("carbonDioxideConcentrationMeasurement", carbonDioxideConcentrationMeasurementClusterInteractionInfoMap);
 
-    InteractionInfo thermostatsetWeeklyScheduleInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ThermostatCluster) cluster)
-        .setWeeklySchedule((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("numberOfTransitionsForSequence")
-        , (Integer)
-        commandArguments.get("dayOfWeekForSequence")
-        , (Integer)
-        commandArguments.get("modeForSequence")
-        , (ArrayList<ChipStructs.ThermostatClusterWeeklyScheduleTransitionStruct>)
-        commandArguments.get("transitions")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        thermostatsetWeeklyScheduleCommandParams
-    );
-    thermostatClusterInteractionInfoMap.put("setWeeklySchedule", thermostatsetWeeklyScheduleInteractionInfo);
+    Map<String, InteractionInfo> nitrogenDioxideConcentrationMeasurementClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    Map<String, CommandParameterInfo> thermostatgetWeeklyScheduleCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    commandMap.put("nitrogenDioxideConcentrationMeasurement", nitrogenDioxideConcentrationMeasurementClusterInteractionInfoMap);
 
-    CommandParameterInfo thermostatgetWeeklyScheduledaysToReturnCommandParameterInfo = new CommandParameterInfo("daysToReturn", Integer.class, Integer.class);
-    thermostatgetWeeklyScheduleCommandParams.put("daysToReturn",thermostatgetWeeklyScheduledaysToReturnCommandParameterInfo);
+    Map<String, InteractionInfo> ozoneConcentrationMeasurementClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    CommandParameterInfo thermostatgetWeeklySchedulemodeToReturnCommandParameterInfo = new CommandParameterInfo("modeToReturn", Integer.class, Integer.class);
-    thermostatgetWeeklyScheduleCommandParams.put("modeToReturn",thermostatgetWeeklySchedulemodeToReturnCommandParameterInfo);
-    InteractionInfo thermostatgetWeeklyScheduleInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ThermostatCluster) cluster)
-          .getWeeklySchedule((ChipClusters.ThermostatCluster.GetWeeklyScheduleResponseCallback) callback
-           , (Integer)
-             commandArguments.get("daysToReturn")
+    commandMap.put("ozoneConcentrationMeasurement", ozoneConcentrationMeasurementClusterInteractionInfoMap);
 
-           , (Integer)
-             commandArguments.get("modeToReturn")
+    Map<String, InteractionInfo> pm25ConcentrationMeasurementClusterInteractionInfoMap = new LinkedHashMap<>();
 
-            );
-        },
-        () -> new DelegatedThermostatClusterGetWeeklyScheduleResponseCallback(),
-        thermostatgetWeeklyScheduleCommandParams
-      );
-    thermostatClusterInteractionInfoMap.put("getWeeklySchedule", thermostatgetWeeklyScheduleInteractionInfo);
+    commandMap.put("pm25ConcentrationMeasurement", pm25ConcentrationMeasurementClusterInteractionInfoMap);
 
-    Map<String, CommandParameterInfo> thermostatclearWeeklyScheduleCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo thermostatclearWeeklyScheduleInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ThermostatCluster) cluster)
-        .clearWeeklySchedule((DefaultClusterCallback) callback
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        thermostatclearWeeklyScheduleCommandParams
-    );
-    thermostatClusterInteractionInfoMap.put("clearWeeklySchedule", thermostatclearWeeklyScheduleInteractionInfo);
+    Map<String, InteractionInfo> formaldehydeConcentrationMeasurementClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    Map<String, CommandParameterInfo> thermostatsetActiveScheduleRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    commandMap.put("formaldehydeConcentrationMeasurement", formaldehydeConcentrationMeasurementClusterInteractionInfoMap);
 
-    CommandParameterInfo thermostatsetActiveScheduleRequestscheduleHandleCommandParameterInfo = new CommandParameterInfo("scheduleHandle", byte[].class, byte[].class);
-    thermostatsetActiveScheduleRequestCommandParams.put("scheduleHandle",thermostatsetActiveScheduleRequestscheduleHandleCommandParameterInfo);
-    InteractionInfo thermostatsetActiveScheduleRequestInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ThermostatCluster) cluster)
-        .setActiveScheduleRequest((DefaultClusterCallback) callback
-        , (byte[])
-        commandArguments.get("scheduleHandle")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        thermostatsetActiveScheduleRequestCommandParams
-    );
-    thermostatClusterInteractionInfoMap.put("setActiveScheduleRequest", thermostatsetActiveScheduleRequestInteractionInfo);
+    Map<String, InteractionInfo> pm1ConcentrationMeasurementClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    Map<String, CommandParameterInfo> thermostatsetActivePresetRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    commandMap.put("pm1ConcentrationMeasurement", pm1ConcentrationMeasurementClusterInteractionInfoMap);
 
-    CommandParameterInfo thermostatsetActivePresetRequestpresetHandleCommandParameterInfo = new CommandParameterInfo("presetHandle", byte[].class, byte[].class);
-    thermostatsetActivePresetRequestCommandParams.put("presetHandle",thermostatsetActivePresetRequestpresetHandleCommandParameterInfo);
-    InteractionInfo thermostatsetActivePresetRequestInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ThermostatCluster) cluster)
-        .setActivePresetRequest((DefaultClusterCallback) callback
-        , (byte[])
-        commandArguments.get("presetHandle")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        thermostatsetActivePresetRequestCommandParams
-    );
-    thermostatClusterInteractionInfoMap.put("setActivePresetRequest", thermostatsetActivePresetRequestInteractionInfo);
+    Map<String, InteractionInfo> pm10ConcentrationMeasurementClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    Map<String, CommandParameterInfo> thermostatatomicRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    commandMap.put("pm10ConcentrationMeasurement", pm10ConcentrationMeasurementClusterInteractionInfoMap);
 
-    CommandParameterInfo thermostatatomicRequestrequestTypeCommandParameterInfo = new CommandParameterInfo("requestType", Integer.class, Integer.class);
-    thermostatatomicRequestCommandParams.put("requestType",thermostatatomicRequestrequestTypeCommandParameterInfo);
+    Map<String, InteractionInfo> totalVolatileOrganicCompoundsConcentrationMeasurementClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    CommandParameterInfo thermostatatomicRequestattributeRequestsCommandParameterInfo = new CommandParameterInfo("attributeRequests", ArrayList.class, ArrayList.class);
-    thermostatatomicRequestCommandParams.put("attributeRequests",thermostatatomicRequestattributeRequestsCommandParameterInfo);
+    commandMap.put("totalVolatileOrganicCompoundsConcentrationMeasurement", totalVolatileOrganicCompoundsConcentrationMeasurementClusterInteractionInfoMap);
 
-    CommandParameterInfo thermostatatomicRequesttimeoutCommandParameterInfo = new CommandParameterInfo("timeout", Optional.class, Integer.class);
-    thermostatatomicRequestCommandParams.put("timeout",thermostatatomicRequesttimeoutCommandParameterInfo);
-    InteractionInfo thermostatatomicRequestInteractionInfo = new InteractionInfo(
+    Map<String, InteractionInfo> radonConcentrationMeasurementClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    commandMap.put("radonConcentrationMeasurement", radonConcentrationMeasurementClusterInteractionInfoMap);
+
+    Map<String, InteractionInfo> wiFiNetworkManagementClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    Map<String, CommandParameterInfo> wiFiNetworkManagementnetworkPassphraseRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo wiFiNetworkManagementnetworkPassphraseRequestInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ThermostatCluster) cluster)
-          .atomicRequest((ChipClusters.ThermostatCluster.AtomicResponseCallback) callback
-           , (Integer)
-             commandArguments.get("requestType")
+        ((ChipClusters.WiFiNetworkManagementCluster) cluster)
+          .networkPassphraseRequest((ChipClusters.WiFiNetworkManagementCluster.NetworkPassphraseResponseCallback) callback
+            );
+        },
+        () -> new DelegatedWiFiNetworkManagementClusterNetworkPassphraseResponseCallback(),
+        wiFiNetworkManagementnetworkPassphraseRequestCommandParams
+      );
+    wiFiNetworkManagementClusterInteractionInfoMap.put("networkPassphraseRequest", wiFiNetworkManagementnetworkPassphraseRequestInteractionInfo);
 
-           , (ArrayList<Long>)
-             commandArguments.get("attributeRequests")
+    commandMap.put("wiFiNetworkManagement", wiFiNetworkManagementClusterInteractionInfoMap);
 
-           , (Optional<Integer>)
-             commandArguments.get("timeout")
+    Map<String, InteractionInfo> threadBorderRouterManagementClusterInteractionInfoMap = new LinkedHashMap<>();
 
+    Map<String, CommandParameterInfo> threadBorderRouterManagementgetActiveDatasetRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo threadBorderRouterManagementgetActiveDatasetRequestInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.ThreadBorderRouterManagementCluster) cluster)
+          .getActiveDatasetRequest((ChipClusters.ThreadBorderRouterManagementCluster.DatasetResponseCallback) callback
             );
         },
-        () -> new DelegatedThermostatClusterAtomicResponseCallback(),
-        thermostatatomicRequestCommandParams
+        () -> new DelegatedThreadBorderRouterManagementClusterDatasetResponseCallback(),
+        threadBorderRouterManagementgetActiveDatasetRequestCommandParams
       );
-    thermostatClusterInteractionInfoMap.put("atomicRequest", thermostatatomicRequestInteractionInfo);
-
-    commandMap.put("thermostat", thermostatClusterInteractionInfoMap);
-
-    Map<String, InteractionInfo> fanControlClusterInteractionInfoMap = new LinkedHashMap<>();
+    threadBorderRouterManagementClusterInteractionInfoMap.put("getActiveDatasetRequest", threadBorderRouterManagementgetActiveDatasetRequestInteractionInfo);
 
-    Map<String, CommandParameterInfo> fanControlstepCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> threadBorderRouterManagementgetPendingDatasetRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo threadBorderRouterManagementgetPendingDatasetRequestInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.ThreadBorderRouterManagementCluster) cluster)
+          .getPendingDatasetRequest((ChipClusters.ThreadBorderRouterManagementCluster.DatasetResponseCallback) callback
+            );
+        },
+        () -> new DelegatedThreadBorderRouterManagementClusterDatasetResponseCallback(),
+        threadBorderRouterManagementgetPendingDatasetRequestCommandParams
+      );
+    threadBorderRouterManagementClusterInteractionInfoMap.put("getPendingDatasetRequest", threadBorderRouterManagementgetPendingDatasetRequestInteractionInfo);
 
-    CommandParameterInfo fanControlstepdirectionCommandParameterInfo = new CommandParameterInfo("direction", Integer.class, Integer.class);
-    fanControlstepCommandParams.put("direction",fanControlstepdirectionCommandParameterInfo);
+    Map<String, CommandParameterInfo> threadBorderRouterManagementsetActiveDatasetRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo fanControlstepwrapCommandParameterInfo = new CommandParameterInfo("wrap", Optional.class, Boolean.class);
-    fanControlstepCommandParams.put("wrap",fanControlstepwrapCommandParameterInfo);
+    CommandParameterInfo threadBorderRouterManagementsetActiveDatasetRequestactiveDatasetCommandParameterInfo = new CommandParameterInfo("activeDataset", byte[].class, byte[].class);
+    threadBorderRouterManagementsetActiveDatasetRequestCommandParams.put("activeDataset",threadBorderRouterManagementsetActiveDatasetRequestactiveDatasetCommandParameterInfo);
 
-    CommandParameterInfo fanControlsteplowestOffCommandParameterInfo = new CommandParameterInfo("lowestOff", Optional.class, Boolean.class);
-    fanControlstepCommandParams.put("lowestOff",fanControlsteplowestOffCommandParameterInfo);
-    InteractionInfo fanControlstepInteractionInfo = new InteractionInfo(
+    CommandParameterInfo threadBorderRouterManagementsetActiveDatasetRequestbreadcrumbCommandParameterInfo = new CommandParameterInfo("breadcrumb", Optional.class, Long.class);
+    threadBorderRouterManagementsetActiveDatasetRequestCommandParams.put("breadcrumb",threadBorderRouterManagementsetActiveDatasetRequestbreadcrumbCommandParameterInfo);
+    InteractionInfo threadBorderRouterManagementsetActiveDatasetRequestInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.FanControlCluster) cluster)
-        .step((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("direction")
-        , (Optional<Boolean>)
-        commandArguments.get("wrap")
-        , (Optional<Boolean>)
-        commandArguments.get("lowestOff")
+        ((ChipClusters.ThreadBorderRouterManagementCluster) cluster)
+        .setActiveDatasetRequest((DefaultClusterCallback) callback
+        , (byte[])
+        commandArguments.get("activeDataset")
+        , (Optional<Long>)
+        commandArguments.get("breadcrumb")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        fanControlstepCommandParams
+        threadBorderRouterManagementsetActiveDatasetRequestCommandParams
     );
-    fanControlClusterInteractionInfoMap.put("step", fanControlstepInteractionInfo);
-
-    commandMap.put("fanControl", fanControlClusterInteractionInfoMap);
-
-    Map<String, InteractionInfo> thermostatUserInterfaceConfigurationClusterInteractionInfoMap = new LinkedHashMap<>();
-
-    commandMap.put("thermostatUserInterfaceConfiguration", thermostatUserInterfaceConfigurationClusterInteractionInfoMap);
-
-    Map<String, InteractionInfo> colorControlClusterInteractionInfoMap = new LinkedHashMap<>();
-
-    Map<String, CommandParameterInfo> colorControlmoveToHueCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-
-    CommandParameterInfo colorControlmoveToHuehueCommandParameterInfo = new CommandParameterInfo("hue", Integer.class, Integer.class);
-    colorControlmoveToHueCommandParams.put("hue",colorControlmoveToHuehueCommandParameterInfo);
-
-    CommandParameterInfo colorControlmoveToHuedirectionCommandParameterInfo = new CommandParameterInfo("direction", Integer.class, Integer.class);
-    colorControlmoveToHueCommandParams.put("direction",colorControlmoveToHuedirectionCommandParameterInfo);
-
-    CommandParameterInfo colorControlmoveToHuetransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Integer.class, Integer.class);
-    colorControlmoveToHueCommandParams.put("transitionTime",colorControlmoveToHuetransitionTimeCommandParameterInfo);
+    threadBorderRouterManagementClusterInteractionInfoMap.put("setActiveDatasetRequest", threadBorderRouterManagementsetActiveDatasetRequestInteractionInfo);
 
-    CommandParameterInfo colorControlmoveToHueoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
-    colorControlmoveToHueCommandParams.put("optionsMask",colorControlmoveToHueoptionsMaskCommandParameterInfo);
+    Map<String, CommandParameterInfo> threadBorderRouterManagementsetPendingDatasetRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo colorControlmoveToHueoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
-    colorControlmoveToHueCommandParams.put("optionsOverride",colorControlmoveToHueoptionsOverrideCommandParameterInfo);
-    InteractionInfo colorControlmoveToHueInteractionInfo = new InteractionInfo(
+    CommandParameterInfo threadBorderRouterManagementsetPendingDatasetRequestpendingDatasetCommandParameterInfo = new CommandParameterInfo("pendingDataset", byte[].class, byte[].class);
+    threadBorderRouterManagementsetPendingDatasetRequestCommandParams.put("pendingDataset",threadBorderRouterManagementsetPendingDatasetRequestpendingDatasetCommandParameterInfo);
+    InteractionInfo threadBorderRouterManagementsetPendingDatasetRequestInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ColorControlCluster) cluster)
-        .moveToHue((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("hue")
-        , (Integer)
-        commandArguments.get("direction")
-        , (Integer)
-        commandArguments.get("transitionTime")
-        , (Integer)
-        commandArguments.get("optionsMask")
-        , (Integer)
-        commandArguments.get("optionsOverride")
+        ((ChipClusters.ThreadBorderRouterManagementCluster) cluster)
+        .setPendingDatasetRequest((DefaultClusterCallback) callback
+        , (byte[])
+        commandArguments.get("pendingDataset")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        colorControlmoveToHueCommandParams
+        threadBorderRouterManagementsetPendingDatasetRequestCommandParams
     );
-    colorControlClusterInteractionInfoMap.put("moveToHue", colorControlmoveToHueInteractionInfo);
-
-    Map<String, CommandParameterInfo> colorControlmoveHueCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    threadBorderRouterManagementClusterInteractionInfoMap.put("setPendingDatasetRequest", threadBorderRouterManagementsetPendingDatasetRequestInteractionInfo);
 
-    CommandParameterInfo colorControlmoveHuemoveModeCommandParameterInfo = new CommandParameterInfo("moveMode", Integer.class, Integer.class);
-    colorControlmoveHueCommandParams.put("moveMode",colorControlmoveHuemoveModeCommandParameterInfo);
+    commandMap.put("threadBorderRouterManagement", threadBorderRouterManagementClusterInteractionInfoMap);
 
-    CommandParameterInfo colorControlmoveHuerateCommandParameterInfo = new CommandParameterInfo("rate", Integer.class, Integer.class);
-    colorControlmoveHueCommandParams.put("rate",colorControlmoveHuerateCommandParameterInfo);
+    Map<String, InteractionInfo> threadNetworkDirectoryClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    CommandParameterInfo colorControlmoveHueoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
-    colorControlmoveHueCommandParams.put("optionsMask",colorControlmoveHueoptionsMaskCommandParameterInfo);
+    Map<String, CommandParameterInfo> threadNetworkDirectoryaddNetworkCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo colorControlmoveHueoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
-    colorControlmoveHueCommandParams.put("optionsOverride",colorControlmoveHueoptionsOverrideCommandParameterInfo);
-    InteractionInfo colorControlmoveHueInteractionInfo = new InteractionInfo(
+    CommandParameterInfo threadNetworkDirectoryaddNetworkoperationalDatasetCommandParameterInfo = new CommandParameterInfo("operationalDataset", byte[].class, byte[].class);
+    threadNetworkDirectoryaddNetworkCommandParams.put("operationalDataset",threadNetworkDirectoryaddNetworkoperationalDatasetCommandParameterInfo);
+    InteractionInfo threadNetworkDirectoryaddNetworkInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ColorControlCluster) cluster)
-        .moveHue((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("moveMode")
-        , (Integer)
-        commandArguments.get("rate")
-        , (Integer)
-        commandArguments.get("optionsMask")
-        , (Integer)
-        commandArguments.get("optionsOverride")
+        ((ChipClusters.ThreadNetworkDirectoryCluster) cluster)
+        .addNetwork((DefaultClusterCallback) callback
+        , (byte[])
+        commandArguments.get("operationalDataset"), 10000
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        colorControlmoveHueCommandParams
+        threadNetworkDirectoryaddNetworkCommandParams
     );
-    colorControlClusterInteractionInfoMap.put("moveHue", colorControlmoveHueInteractionInfo);
-
-    Map<String, CommandParameterInfo> colorControlstepHueCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-
-    CommandParameterInfo colorControlstepHuestepModeCommandParameterInfo = new CommandParameterInfo("stepMode", Integer.class, Integer.class);
-    colorControlstepHueCommandParams.put("stepMode",colorControlstepHuestepModeCommandParameterInfo);
-
-    CommandParameterInfo colorControlstepHuestepSizeCommandParameterInfo = new CommandParameterInfo("stepSize", Integer.class, Integer.class);
-    colorControlstepHueCommandParams.put("stepSize",colorControlstepHuestepSizeCommandParameterInfo);
-
-    CommandParameterInfo colorControlstepHuetransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Integer.class, Integer.class);
-    colorControlstepHueCommandParams.put("transitionTime",colorControlstepHuetransitionTimeCommandParameterInfo);
+    threadNetworkDirectoryClusterInteractionInfoMap.put("addNetwork", threadNetworkDirectoryaddNetworkInteractionInfo);
 
-    CommandParameterInfo colorControlstepHueoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
-    colorControlstepHueCommandParams.put("optionsMask",colorControlstepHueoptionsMaskCommandParameterInfo);
+    Map<String, CommandParameterInfo> threadNetworkDirectoryremoveNetworkCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo colorControlstepHueoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
-    colorControlstepHueCommandParams.put("optionsOverride",colorControlstepHueoptionsOverrideCommandParameterInfo);
-    InteractionInfo colorControlstepHueInteractionInfo = new InteractionInfo(
+    CommandParameterInfo threadNetworkDirectoryremoveNetworkextendedPanIDCommandParameterInfo = new CommandParameterInfo("extendedPanID", byte[].class, byte[].class);
+    threadNetworkDirectoryremoveNetworkCommandParams.put("extendedPanID",threadNetworkDirectoryremoveNetworkextendedPanIDCommandParameterInfo);
+    InteractionInfo threadNetworkDirectoryremoveNetworkInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ColorControlCluster) cluster)
-        .stepHue((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("stepMode")
-        , (Integer)
-        commandArguments.get("stepSize")
-        , (Integer)
-        commandArguments.get("transitionTime")
-        , (Integer)
-        commandArguments.get("optionsMask")
-        , (Integer)
-        commandArguments.get("optionsOverride")
+        ((ChipClusters.ThreadNetworkDirectoryCluster) cluster)
+        .removeNetwork((DefaultClusterCallback) callback
+        , (byte[])
+        commandArguments.get("extendedPanID"), 10000
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        colorControlstepHueCommandParams
+        threadNetworkDirectoryremoveNetworkCommandParams
     );
-    colorControlClusterInteractionInfoMap.put("stepHue", colorControlstepHueInteractionInfo);
+    threadNetworkDirectoryClusterInteractionInfoMap.put("removeNetwork", threadNetworkDirectoryremoveNetworkInteractionInfo);
 
-    Map<String, CommandParameterInfo> colorControlmoveToSaturationCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> threadNetworkDirectorygetOperationalDatasetCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo colorControlmoveToSaturationsaturationCommandParameterInfo = new CommandParameterInfo("saturation", Integer.class, Integer.class);
-    colorControlmoveToSaturationCommandParams.put("saturation",colorControlmoveToSaturationsaturationCommandParameterInfo);
+    CommandParameterInfo threadNetworkDirectorygetOperationalDatasetextendedPanIDCommandParameterInfo = new CommandParameterInfo("extendedPanID", byte[].class, byte[].class);
+    threadNetworkDirectorygetOperationalDatasetCommandParams.put("extendedPanID",threadNetworkDirectorygetOperationalDatasetextendedPanIDCommandParameterInfo);
+    InteractionInfo threadNetworkDirectorygetOperationalDatasetInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.ThreadNetworkDirectoryCluster) cluster)
+          .getOperationalDataset((ChipClusters.ThreadNetworkDirectoryCluster.OperationalDatasetResponseCallback) callback
+           , (byte[])
+             commandArguments.get("extendedPanID")
 
-    CommandParameterInfo colorControlmoveToSaturationtransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Integer.class, Integer.class);
-    colorControlmoveToSaturationCommandParams.put("transitionTime",colorControlmoveToSaturationtransitionTimeCommandParameterInfo);
+            );
+        },
+        () -> new DelegatedThreadNetworkDirectoryClusterOperationalDatasetResponseCallback(),
+        threadNetworkDirectorygetOperationalDatasetCommandParams
+      );
+    threadNetworkDirectoryClusterInteractionInfoMap.put("getOperationalDataset", threadNetworkDirectorygetOperationalDatasetInteractionInfo);
 
-    CommandParameterInfo colorControlmoveToSaturationoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
-    colorControlmoveToSaturationCommandParams.put("optionsMask",colorControlmoveToSaturationoptionsMaskCommandParameterInfo);
+    commandMap.put("threadNetworkDirectory", threadNetworkDirectoryClusterInteractionInfoMap);
 
-    CommandParameterInfo colorControlmoveToSaturationoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
-    colorControlmoveToSaturationCommandParams.put("optionsOverride",colorControlmoveToSaturationoptionsOverrideCommandParameterInfo);
-    InteractionInfo colorControlmoveToSaturationInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ColorControlCluster) cluster)
-        .moveToSaturation((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("saturation")
-        , (Integer)
-        commandArguments.get("transitionTime")
-        , (Integer)
-        commandArguments.get("optionsMask")
-        , (Integer)
-        commandArguments.get("optionsOverride")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        colorControlmoveToSaturationCommandParams
-    );
-    colorControlClusterInteractionInfoMap.put("moveToSaturation", colorControlmoveToSaturationInteractionInfo);
+    Map<String, InteractionInfo> wakeOnLanClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    Map<String, CommandParameterInfo> colorControlmoveSaturationCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    commandMap.put("wakeOnLan", wakeOnLanClusterInteractionInfoMap);
 
-    CommandParameterInfo colorControlmoveSaturationmoveModeCommandParameterInfo = new CommandParameterInfo("moveMode", Integer.class, Integer.class);
-    colorControlmoveSaturationCommandParams.put("moveMode",colorControlmoveSaturationmoveModeCommandParameterInfo);
+    Map<String, InteractionInfo> channelClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    CommandParameterInfo colorControlmoveSaturationrateCommandParameterInfo = new CommandParameterInfo("rate", Integer.class, Integer.class);
-    colorControlmoveSaturationCommandParams.put("rate",colorControlmoveSaturationrateCommandParameterInfo);
+    Map<String, CommandParameterInfo> channelchangeChannelCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo channelchangeChannelmatchCommandParameterInfo = new CommandParameterInfo("match", String.class, String.class);
+    channelchangeChannelCommandParams.put("match",channelchangeChannelmatchCommandParameterInfo);
+    InteractionInfo channelchangeChannelInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.ChannelCluster) cluster)
+          .changeChannel((ChipClusters.ChannelCluster.ChangeChannelResponseCallback) callback
+           , (String)
+             commandArguments.get("match")
+
+            );
+        },
+        () -> new DelegatedChannelClusterChangeChannelResponseCallback(),
+        channelchangeChannelCommandParams
+      );
+    channelClusterInteractionInfoMap.put("changeChannel", channelchangeChannelInteractionInfo);
 
-    CommandParameterInfo colorControlmoveSaturationoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
-    colorControlmoveSaturationCommandParams.put("optionsMask",colorControlmoveSaturationoptionsMaskCommandParameterInfo);
+    Map<String, CommandParameterInfo> channelchangeChannelByNumberCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo colorControlmoveSaturationoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
-    colorControlmoveSaturationCommandParams.put("optionsOverride",colorControlmoveSaturationoptionsOverrideCommandParameterInfo);
-    InteractionInfo colorControlmoveSaturationInteractionInfo = new InteractionInfo(
+    CommandParameterInfo channelchangeChannelByNumbermajorNumberCommandParameterInfo = new CommandParameterInfo("majorNumber", Integer.class, Integer.class);
+    channelchangeChannelByNumberCommandParams.put("majorNumber",channelchangeChannelByNumbermajorNumberCommandParameterInfo);
+
+    CommandParameterInfo channelchangeChannelByNumberminorNumberCommandParameterInfo = new CommandParameterInfo("minorNumber", Integer.class, Integer.class);
+    channelchangeChannelByNumberCommandParams.put("minorNumber",channelchangeChannelByNumberminorNumberCommandParameterInfo);
+    InteractionInfo channelchangeChannelByNumberInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ColorControlCluster) cluster)
-        .moveSaturation((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("moveMode")
-        , (Integer)
-        commandArguments.get("rate")
+        ((ChipClusters.ChannelCluster) cluster)
+        .changeChannelByNumber((DefaultClusterCallback) callback
         , (Integer)
-        commandArguments.get("optionsMask")
+        commandArguments.get("majorNumber")
         , (Integer)
-        commandArguments.get("optionsOverride")
+        commandArguments.get("minorNumber")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        colorControlmoveSaturationCommandParams
+        channelchangeChannelByNumberCommandParams
     );
-    colorControlClusterInteractionInfoMap.put("moveSaturation", colorControlmoveSaturationInteractionInfo);
-
-    Map<String, CommandParameterInfo> colorControlstepSaturationCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-
-    CommandParameterInfo colorControlstepSaturationstepModeCommandParameterInfo = new CommandParameterInfo("stepMode", Integer.class, Integer.class);
-    colorControlstepSaturationCommandParams.put("stepMode",colorControlstepSaturationstepModeCommandParameterInfo);
-
-    CommandParameterInfo colorControlstepSaturationstepSizeCommandParameterInfo = new CommandParameterInfo("stepSize", Integer.class, Integer.class);
-    colorControlstepSaturationCommandParams.put("stepSize",colorControlstepSaturationstepSizeCommandParameterInfo);
-
-    CommandParameterInfo colorControlstepSaturationtransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Integer.class, Integer.class);
-    colorControlstepSaturationCommandParams.put("transitionTime",colorControlstepSaturationtransitionTimeCommandParameterInfo);
+    channelClusterInteractionInfoMap.put("changeChannelByNumber", channelchangeChannelByNumberInteractionInfo);
 
-    CommandParameterInfo colorControlstepSaturationoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
-    colorControlstepSaturationCommandParams.put("optionsMask",colorControlstepSaturationoptionsMaskCommandParameterInfo);
+    Map<String, CommandParameterInfo> channelskipChannelCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo colorControlstepSaturationoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
-    colorControlstepSaturationCommandParams.put("optionsOverride",colorControlstepSaturationoptionsOverrideCommandParameterInfo);
-    InteractionInfo colorControlstepSaturationInteractionInfo = new InteractionInfo(
+    CommandParameterInfo channelskipChannelcountCommandParameterInfo = new CommandParameterInfo("count", Integer.class, Integer.class);
+    channelskipChannelCommandParams.put("count",channelskipChannelcountCommandParameterInfo);
+    InteractionInfo channelskipChannelInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ColorControlCluster) cluster)
-        .stepSaturation((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("stepMode")
-        , (Integer)
-        commandArguments.get("stepSize")
-        , (Integer)
-        commandArguments.get("transitionTime")
-        , (Integer)
-        commandArguments.get("optionsMask")
+        ((ChipClusters.ChannelCluster) cluster)
+        .skipChannel((DefaultClusterCallback) callback
         , (Integer)
-        commandArguments.get("optionsOverride")
+        commandArguments.get("count")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        colorControlstepSaturationCommandParams
+        channelskipChannelCommandParams
     );
-    colorControlClusterInteractionInfoMap.put("stepSaturation", colorControlstepSaturationInteractionInfo);
+    channelClusterInteractionInfoMap.put("skipChannel", channelskipChannelInteractionInfo);
 
-    Map<String, CommandParameterInfo> colorControlmoveToHueAndSaturationCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> channelgetProgramGuideCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo colorControlmoveToHueAndSaturationhueCommandParameterInfo = new CommandParameterInfo("hue", Integer.class, Integer.class);
-    colorControlmoveToHueAndSaturationCommandParams.put("hue",colorControlmoveToHueAndSaturationhueCommandParameterInfo);
+    CommandParameterInfo channelgetProgramGuidestartTimeCommandParameterInfo = new CommandParameterInfo("startTime", Optional.class, Long.class);
+    channelgetProgramGuideCommandParams.put("startTime",channelgetProgramGuidestartTimeCommandParameterInfo);
 
-    CommandParameterInfo colorControlmoveToHueAndSaturationsaturationCommandParameterInfo = new CommandParameterInfo("saturation", Integer.class, Integer.class);
-    colorControlmoveToHueAndSaturationCommandParams.put("saturation",colorControlmoveToHueAndSaturationsaturationCommandParameterInfo);
+    CommandParameterInfo channelgetProgramGuideendTimeCommandParameterInfo = new CommandParameterInfo("endTime", Optional.class, Long.class);
+    channelgetProgramGuideCommandParams.put("endTime",channelgetProgramGuideendTimeCommandParameterInfo);
 
-    CommandParameterInfo colorControlmoveToHueAndSaturationtransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Integer.class, Integer.class);
-    colorControlmoveToHueAndSaturationCommandParams.put("transitionTime",colorControlmoveToHueAndSaturationtransitionTimeCommandParameterInfo);
 
-    CommandParameterInfo colorControlmoveToHueAndSaturationoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
-    colorControlmoveToHueAndSaturationCommandParams.put("optionsMask",colorControlmoveToHueAndSaturationoptionsMaskCommandParameterInfo);
 
-    CommandParameterInfo colorControlmoveToHueAndSaturationoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
-    colorControlmoveToHueAndSaturationCommandParams.put("optionsOverride",colorControlmoveToHueAndSaturationoptionsOverrideCommandParameterInfo);
-    InteractionInfo colorControlmoveToHueAndSaturationInteractionInfo = new InteractionInfo(
+    CommandParameterInfo channelgetProgramGuiderecordingFlagCommandParameterInfo = new CommandParameterInfo("recordingFlag", Optional.class, Long.class);
+    channelgetProgramGuideCommandParams.put("recordingFlag",channelgetProgramGuiderecordingFlagCommandParameterInfo);
+
+
+    CommandParameterInfo channelgetProgramGuidedataCommandParameterInfo = new CommandParameterInfo("data", Optional.class, byte[].class);
+    channelgetProgramGuideCommandParams.put("data",channelgetProgramGuidedataCommandParameterInfo);
+    InteractionInfo channelgetProgramGuideInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ColorControlCluster) cluster)
-        .moveToHueAndSaturation((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("hue")
-        , (Integer)
-        commandArguments.get("saturation")
-        , (Integer)
-        commandArguments.get("transitionTime")
-        , (Integer)
-        commandArguments.get("optionsMask")
-        , (Integer)
-        commandArguments.get("optionsOverride")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        colorControlmoveToHueAndSaturationCommandParams
-    );
-    colorControlClusterInteractionInfoMap.put("moveToHueAndSaturation", colorControlmoveToHueAndSaturationInteractionInfo);
+        ((ChipClusters.ChannelCluster) cluster)
+          .getProgramGuide((ChipClusters.ChannelCluster.ProgramGuideResponseCallback) callback
+           , (Optional<Long>)
+             commandArguments.get("startTime")
 
-    Map<String, CommandParameterInfo> colorControlmoveToColorCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+           , (Optional<Long>)
+             commandArguments.get("endTime")
 
-    CommandParameterInfo colorControlmoveToColorcolorXCommandParameterInfo = new CommandParameterInfo("colorX", Integer.class, Integer.class);
-    colorControlmoveToColorCommandParams.put("colorX",colorControlmoveToColorcolorXCommandParameterInfo);
+           , (Optional<ArrayList<ChipStructs.ChannelClusterChannelInfoStruct>>)
+             commandArguments.get("channelList")
 
-    CommandParameterInfo colorControlmoveToColorcolorYCommandParameterInfo = new CommandParameterInfo("colorY", Integer.class, Integer.class);
-    colorControlmoveToColorCommandParams.put("colorY",colorControlmoveToColorcolorYCommandParameterInfo);
+           , (Optional<ChipStructs.ChannelClusterPageTokenStruct>)
+             commandArguments.get("pageToken")
 
-    CommandParameterInfo colorControlmoveToColortransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Integer.class, Integer.class);
-    colorControlmoveToColorCommandParams.put("transitionTime",colorControlmoveToColortransitionTimeCommandParameterInfo);
+           , (Optional<Long>)
+             commandArguments.get("recordingFlag")
 
-    CommandParameterInfo colorControlmoveToColoroptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
-    colorControlmoveToColorCommandParams.put("optionsMask",colorControlmoveToColoroptionsMaskCommandParameterInfo);
+           , (Optional<ArrayList<ChipStructs.ChannelClusterAdditionalInfoStruct>>)
+             commandArguments.get("externalIDList")
 
-    CommandParameterInfo colorControlmoveToColoroptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
-    colorControlmoveToColorCommandParams.put("optionsOverride",colorControlmoveToColoroptionsOverrideCommandParameterInfo);
-    InteractionInfo colorControlmoveToColorInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ColorControlCluster) cluster)
-        .moveToColor((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("colorX")
-        , (Integer)
-        commandArguments.get("colorY")
-        , (Integer)
-        commandArguments.get("transitionTime")
-        , (Integer)
-        commandArguments.get("optionsMask")
-        , (Integer)
-        commandArguments.get("optionsOverride")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        colorControlmoveToColorCommandParams
-    );
-    colorControlClusterInteractionInfoMap.put("moveToColor", colorControlmoveToColorInteractionInfo);
+           , (Optional<byte[]>)
+             commandArguments.get("data")
 
-    Map<String, CommandParameterInfo> colorControlmoveColorCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+            );
+        },
+        () -> new DelegatedChannelClusterProgramGuideResponseCallback(),
+        channelgetProgramGuideCommandParams
+      );
+    channelClusterInteractionInfoMap.put("getProgramGuide", channelgetProgramGuideInteractionInfo);
 
-    CommandParameterInfo colorControlmoveColorrateXCommandParameterInfo = new CommandParameterInfo("rateX", Integer.class, Integer.class);
-    colorControlmoveColorCommandParams.put("rateX",colorControlmoveColorrateXCommandParameterInfo);
+    Map<String, CommandParameterInfo> channelrecordProgramCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo colorControlmoveColorrateYCommandParameterInfo = new CommandParameterInfo("rateY", Integer.class, Integer.class);
-    colorControlmoveColorCommandParams.put("rateY",colorControlmoveColorrateYCommandParameterInfo);
+    CommandParameterInfo channelrecordProgramprogramIdentifierCommandParameterInfo = new CommandParameterInfo("programIdentifier", String.class, String.class);
+    channelrecordProgramCommandParams.put("programIdentifier",channelrecordProgramprogramIdentifierCommandParameterInfo);
 
-    CommandParameterInfo colorControlmoveColoroptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
-    colorControlmoveColorCommandParams.put("optionsMask",colorControlmoveColoroptionsMaskCommandParameterInfo);
+    CommandParameterInfo channelrecordProgramshouldRecordSeriesCommandParameterInfo = new CommandParameterInfo("shouldRecordSeries", Boolean.class, Boolean.class);
+    channelrecordProgramCommandParams.put("shouldRecordSeries",channelrecordProgramshouldRecordSeriesCommandParameterInfo);
 
-    CommandParameterInfo colorControlmoveColoroptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
-    colorControlmoveColorCommandParams.put("optionsOverride",colorControlmoveColoroptionsOverrideCommandParameterInfo);
-    InteractionInfo colorControlmoveColorInteractionInfo = new InteractionInfo(
+
+    CommandParameterInfo channelrecordProgramdataCommandParameterInfo = new CommandParameterInfo("data", byte[].class, byte[].class);
+    channelrecordProgramCommandParams.put("data",channelrecordProgramdataCommandParameterInfo);
+    InteractionInfo channelrecordProgramInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ColorControlCluster) cluster)
-        .moveColor((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("rateX")
-        , (Integer)
-        commandArguments.get("rateY")
-        , (Integer)
-        commandArguments.get("optionsMask")
-        , (Integer)
-        commandArguments.get("optionsOverride")
+        ((ChipClusters.ChannelCluster) cluster)
+        .recordProgram((DefaultClusterCallback) callback
+        , (String)
+        commandArguments.get("programIdentifier")
+        , (Boolean)
+        commandArguments.get("shouldRecordSeries")
+        , (ArrayList<ChipStructs.ChannelClusterAdditionalInfoStruct>)
+        commandArguments.get("externalIDList")
+        , (byte[])
+        commandArguments.get("data")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        colorControlmoveColorCommandParams
+        channelrecordProgramCommandParams
     );
-    colorControlClusterInteractionInfoMap.put("moveColor", colorControlmoveColorInteractionInfo);
-
-    Map<String, CommandParameterInfo> colorControlstepColorCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    channelClusterInteractionInfoMap.put("recordProgram", channelrecordProgramInteractionInfo);
 
-    CommandParameterInfo colorControlstepColorstepXCommandParameterInfo = new CommandParameterInfo("stepX", Integer.class, Integer.class);
-    colorControlstepColorCommandParams.put("stepX",colorControlstepColorstepXCommandParameterInfo);
+    Map<String, CommandParameterInfo> channelcancelRecordProgramCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo colorControlstepColorstepYCommandParameterInfo = new CommandParameterInfo("stepY", Integer.class, Integer.class);
-    colorControlstepColorCommandParams.put("stepY",colorControlstepColorstepYCommandParameterInfo);
+    CommandParameterInfo channelcancelRecordProgramprogramIdentifierCommandParameterInfo = new CommandParameterInfo("programIdentifier", String.class, String.class);
+    channelcancelRecordProgramCommandParams.put("programIdentifier",channelcancelRecordProgramprogramIdentifierCommandParameterInfo);
 
-    CommandParameterInfo colorControlstepColortransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Integer.class, Integer.class);
-    colorControlstepColorCommandParams.put("transitionTime",colorControlstepColortransitionTimeCommandParameterInfo);
+    CommandParameterInfo channelcancelRecordProgramshouldRecordSeriesCommandParameterInfo = new CommandParameterInfo("shouldRecordSeries", Boolean.class, Boolean.class);
+    channelcancelRecordProgramCommandParams.put("shouldRecordSeries",channelcancelRecordProgramshouldRecordSeriesCommandParameterInfo);
 
-    CommandParameterInfo colorControlstepColoroptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
-    colorControlstepColorCommandParams.put("optionsMask",colorControlstepColoroptionsMaskCommandParameterInfo);
 
-    CommandParameterInfo colorControlstepColoroptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
-    colorControlstepColorCommandParams.put("optionsOverride",colorControlstepColoroptionsOverrideCommandParameterInfo);
-    InteractionInfo colorControlstepColorInteractionInfo = new InteractionInfo(
+    CommandParameterInfo channelcancelRecordProgramdataCommandParameterInfo = new CommandParameterInfo("data", byte[].class, byte[].class);
+    channelcancelRecordProgramCommandParams.put("data",channelcancelRecordProgramdataCommandParameterInfo);
+    InteractionInfo channelcancelRecordProgramInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ColorControlCluster) cluster)
-        .stepColor((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("stepX")
-        , (Integer)
-        commandArguments.get("stepY")
-        , (Integer)
-        commandArguments.get("transitionTime")
-        , (Integer)
-        commandArguments.get("optionsMask")
-        , (Integer)
-        commandArguments.get("optionsOverride")
+        ((ChipClusters.ChannelCluster) cluster)
+        .cancelRecordProgram((DefaultClusterCallback) callback
+        , (String)
+        commandArguments.get("programIdentifier")
+        , (Boolean)
+        commandArguments.get("shouldRecordSeries")
+        , (ArrayList<ChipStructs.ChannelClusterAdditionalInfoStruct>)
+        commandArguments.get("externalIDList")
+        , (byte[])
+        commandArguments.get("data")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        colorControlstepColorCommandParams
+        channelcancelRecordProgramCommandParams
     );
-    colorControlClusterInteractionInfoMap.put("stepColor", colorControlstepColorInteractionInfo);
+    channelClusterInteractionInfoMap.put("cancelRecordProgram", channelcancelRecordProgramInteractionInfo);
+
+    commandMap.put("channel", channelClusterInteractionInfoMap);
+
+    Map<String, InteractionInfo> targetNavigatorClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    Map<String, CommandParameterInfo> targetNavigatornavigateTargetCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, CommandParameterInfo> colorControlmoveToColorTemperatureCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo targetNavigatornavigateTargettargetCommandParameterInfo = new CommandParameterInfo("target", Integer.class, Integer.class);
+    targetNavigatornavigateTargetCommandParams.put("target",targetNavigatornavigateTargettargetCommandParameterInfo);
 
-    CommandParameterInfo colorControlmoveToColorTemperaturecolorTemperatureMiredsCommandParameterInfo = new CommandParameterInfo("colorTemperatureMireds", Integer.class, Integer.class);
-    colorControlmoveToColorTemperatureCommandParams.put("colorTemperatureMireds",colorControlmoveToColorTemperaturecolorTemperatureMiredsCommandParameterInfo);
+    CommandParameterInfo targetNavigatornavigateTargetdataCommandParameterInfo = new CommandParameterInfo("data", Optional.class, String.class);
+    targetNavigatornavigateTargetCommandParams.put("data",targetNavigatornavigateTargetdataCommandParameterInfo);
+    InteractionInfo targetNavigatornavigateTargetInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.TargetNavigatorCluster) cluster)
+          .navigateTarget((ChipClusters.TargetNavigatorCluster.NavigateTargetResponseCallback) callback
+           , (Integer)
+             commandArguments.get("target")
 
-    CommandParameterInfo colorControlmoveToColorTemperaturetransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Integer.class, Integer.class);
-    colorControlmoveToColorTemperatureCommandParams.put("transitionTime",colorControlmoveToColorTemperaturetransitionTimeCommandParameterInfo);
+           , (Optional<String>)
+             commandArguments.get("data")
 
-    CommandParameterInfo colorControlmoveToColorTemperatureoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
-    colorControlmoveToColorTemperatureCommandParams.put("optionsMask",colorControlmoveToColorTemperatureoptionsMaskCommandParameterInfo);
+            );
+        },
+        () -> new DelegatedTargetNavigatorClusterNavigateTargetResponseCallback(),
+        targetNavigatornavigateTargetCommandParams
+      );
+    targetNavigatorClusterInteractionInfoMap.put("navigateTarget", targetNavigatornavigateTargetInteractionInfo);
 
-    CommandParameterInfo colorControlmoveToColorTemperatureoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
-    colorControlmoveToColorTemperatureCommandParams.put("optionsOverride",colorControlmoveToColorTemperatureoptionsOverrideCommandParameterInfo);
-    InteractionInfo colorControlmoveToColorTemperatureInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ColorControlCluster) cluster)
-        .moveToColorTemperature((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("colorTemperatureMireds")
-        , (Integer)
-        commandArguments.get("transitionTime")
-        , (Integer)
-        commandArguments.get("optionsMask")
-        , (Integer)
-        commandArguments.get("optionsOverride")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        colorControlmoveToColorTemperatureCommandParams
-    );
-    colorControlClusterInteractionInfoMap.put("moveToColorTemperature", colorControlmoveToColorTemperatureInteractionInfo);
+    commandMap.put("targetNavigator", targetNavigatorClusterInteractionInfoMap);
 
-    Map<String, CommandParameterInfo> colorControlenhancedMoveToHueCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, InteractionInfo> mediaPlaybackClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    CommandParameterInfo colorControlenhancedMoveToHueenhancedHueCommandParameterInfo = new CommandParameterInfo("enhancedHue", Integer.class, Integer.class);
-    colorControlenhancedMoveToHueCommandParams.put("enhancedHue",colorControlenhancedMoveToHueenhancedHueCommandParameterInfo);
+    Map<String, CommandParameterInfo> mediaPlaybackplayCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo mediaPlaybackplayInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.MediaPlaybackCluster) cluster)
+          .play((ChipClusters.MediaPlaybackCluster.PlaybackResponseCallback) callback
+            );
+        },
+        () -> new DelegatedMediaPlaybackClusterPlaybackResponseCallback(),
+        mediaPlaybackplayCommandParams
+      );
+    mediaPlaybackClusterInteractionInfoMap.put("play", mediaPlaybackplayInteractionInfo);
 
-    CommandParameterInfo colorControlenhancedMoveToHuedirectionCommandParameterInfo = new CommandParameterInfo("direction", Integer.class, Integer.class);
-    colorControlenhancedMoveToHueCommandParams.put("direction",colorControlenhancedMoveToHuedirectionCommandParameterInfo);
+    Map<String, CommandParameterInfo> mediaPlaybackpauseCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo mediaPlaybackpauseInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.MediaPlaybackCluster) cluster)
+          .pause((ChipClusters.MediaPlaybackCluster.PlaybackResponseCallback) callback
+            );
+        },
+        () -> new DelegatedMediaPlaybackClusterPlaybackResponseCallback(),
+        mediaPlaybackpauseCommandParams
+      );
+    mediaPlaybackClusterInteractionInfoMap.put("pause", mediaPlaybackpauseInteractionInfo);
 
-    CommandParameterInfo colorControlenhancedMoveToHuetransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Integer.class, Integer.class);
-    colorControlenhancedMoveToHueCommandParams.put("transitionTime",colorControlenhancedMoveToHuetransitionTimeCommandParameterInfo);
+    Map<String, CommandParameterInfo> mediaPlaybackstopCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo mediaPlaybackstopInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.MediaPlaybackCluster) cluster)
+          .stop((ChipClusters.MediaPlaybackCluster.PlaybackResponseCallback) callback
+            );
+        },
+        () -> new DelegatedMediaPlaybackClusterPlaybackResponseCallback(),
+        mediaPlaybackstopCommandParams
+      );
+    mediaPlaybackClusterInteractionInfoMap.put("stop", mediaPlaybackstopInteractionInfo);
 
-    CommandParameterInfo colorControlenhancedMoveToHueoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
-    colorControlenhancedMoveToHueCommandParams.put("optionsMask",colorControlenhancedMoveToHueoptionsMaskCommandParameterInfo);
+    Map<String, CommandParameterInfo> mediaPlaybackstartOverCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo mediaPlaybackstartOverInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.MediaPlaybackCluster) cluster)
+          .startOver((ChipClusters.MediaPlaybackCluster.PlaybackResponseCallback) callback
+            );
+        },
+        () -> new DelegatedMediaPlaybackClusterPlaybackResponseCallback(),
+        mediaPlaybackstartOverCommandParams
+      );
+    mediaPlaybackClusterInteractionInfoMap.put("startOver", mediaPlaybackstartOverInteractionInfo);
 
-    CommandParameterInfo colorControlenhancedMoveToHueoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
-    colorControlenhancedMoveToHueCommandParams.put("optionsOverride",colorControlenhancedMoveToHueoptionsOverrideCommandParameterInfo);
-    InteractionInfo colorControlenhancedMoveToHueInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> mediaPlaybackpreviousCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo mediaPlaybackpreviousInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ColorControlCluster) cluster)
-        .enhancedMoveToHue((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("enhancedHue")
-        , (Integer)
-        commandArguments.get("direction")
-        , (Integer)
-        commandArguments.get("transitionTime")
-        , (Integer)
-        commandArguments.get("optionsMask")
-        , (Integer)
-        commandArguments.get("optionsOverride")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        colorControlenhancedMoveToHueCommandParams
-    );
-    colorControlClusterInteractionInfoMap.put("enhancedMoveToHue", colorControlenhancedMoveToHueInteractionInfo);
+        ((ChipClusters.MediaPlaybackCluster) cluster)
+          .previous((ChipClusters.MediaPlaybackCluster.PlaybackResponseCallback) callback
+            );
+        },
+        () -> new DelegatedMediaPlaybackClusterPlaybackResponseCallback(),
+        mediaPlaybackpreviousCommandParams
+      );
+    mediaPlaybackClusterInteractionInfoMap.put("previous", mediaPlaybackpreviousInteractionInfo);
 
-    Map<String, CommandParameterInfo> colorControlenhancedMoveHueCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> mediaPlaybacknextCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo mediaPlaybacknextInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.MediaPlaybackCluster) cluster)
+          .next((ChipClusters.MediaPlaybackCluster.PlaybackResponseCallback) callback
+            );
+        },
+        () -> new DelegatedMediaPlaybackClusterPlaybackResponseCallback(),
+        mediaPlaybacknextCommandParams
+      );
+    mediaPlaybackClusterInteractionInfoMap.put("next", mediaPlaybacknextInteractionInfo);
 
-    CommandParameterInfo colorControlenhancedMoveHuemoveModeCommandParameterInfo = new CommandParameterInfo("moveMode", Integer.class, Integer.class);
-    colorControlenhancedMoveHueCommandParams.put("moveMode",colorControlenhancedMoveHuemoveModeCommandParameterInfo);
+    Map<String, CommandParameterInfo> mediaPlaybackrewindCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo colorControlenhancedMoveHuerateCommandParameterInfo = new CommandParameterInfo("rate", Integer.class, Integer.class);
-    colorControlenhancedMoveHueCommandParams.put("rate",colorControlenhancedMoveHuerateCommandParameterInfo);
+    CommandParameterInfo mediaPlaybackrewindaudioAdvanceUnmutedCommandParameterInfo = new CommandParameterInfo("audioAdvanceUnmuted", Optional.class, Boolean.class);
+    mediaPlaybackrewindCommandParams.put("audioAdvanceUnmuted",mediaPlaybackrewindaudioAdvanceUnmutedCommandParameterInfo);
+    InteractionInfo mediaPlaybackrewindInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.MediaPlaybackCluster) cluster)
+          .rewind((ChipClusters.MediaPlaybackCluster.PlaybackResponseCallback) callback
+           , (Optional<Boolean>)
+             commandArguments.get("audioAdvanceUnmuted")
 
-    CommandParameterInfo colorControlenhancedMoveHueoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
-    colorControlenhancedMoveHueCommandParams.put("optionsMask",colorControlenhancedMoveHueoptionsMaskCommandParameterInfo);
+            );
+        },
+        () -> new DelegatedMediaPlaybackClusterPlaybackResponseCallback(),
+        mediaPlaybackrewindCommandParams
+      );
+    mediaPlaybackClusterInteractionInfoMap.put("rewind", mediaPlaybackrewindInteractionInfo);
 
-    CommandParameterInfo colorControlenhancedMoveHueoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
-    colorControlenhancedMoveHueCommandParams.put("optionsOverride",colorControlenhancedMoveHueoptionsOverrideCommandParameterInfo);
-    InteractionInfo colorControlenhancedMoveHueInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> mediaPlaybackfastForwardCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo mediaPlaybackfastForwardaudioAdvanceUnmutedCommandParameterInfo = new CommandParameterInfo("audioAdvanceUnmuted", Optional.class, Boolean.class);
+    mediaPlaybackfastForwardCommandParams.put("audioAdvanceUnmuted",mediaPlaybackfastForwardaudioAdvanceUnmutedCommandParameterInfo);
+    InteractionInfo mediaPlaybackfastForwardInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ColorControlCluster) cluster)
-        .enhancedMoveHue((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("moveMode")
-        , (Integer)
-        commandArguments.get("rate")
-        , (Integer)
-        commandArguments.get("optionsMask")
-        , (Integer)
-        commandArguments.get("optionsOverride")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        colorControlenhancedMoveHueCommandParams
-    );
-    colorControlClusterInteractionInfoMap.put("enhancedMoveHue", colorControlenhancedMoveHueInteractionInfo);
+        ((ChipClusters.MediaPlaybackCluster) cluster)
+          .fastForward((ChipClusters.MediaPlaybackCluster.PlaybackResponseCallback) callback
+           , (Optional<Boolean>)
+             commandArguments.get("audioAdvanceUnmuted")
 
-    Map<String, CommandParameterInfo> colorControlenhancedStepHueCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+            );
+        },
+        () -> new DelegatedMediaPlaybackClusterPlaybackResponseCallback(),
+        mediaPlaybackfastForwardCommandParams
+      );
+    mediaPlaybackClusterInteractionInfoMap.put("fastForward", mediaPlaybackfastForwardInteractionInfo);
 
-    CommandParameterInfo colorControlenhancedStepHuestepModeCommandParameterInfo = new CommandParameterInfo("stepMode", Integer.class, Integer.class);
-    colorControlenhancedStepHueCommandParams.put("stepMode",colorControlenhancedStepHuestepModeCommandParameterInfo);
+    Map<String, CommandParameterInfo> mediaPlaybackskipForwardCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo colorControlenhancedStepHuestepSizeCommandParameterInfo = new CommandParameterInfo("stepSize", Integer.class, Integer.class);
-    colorControlenhancedStepHueCommandParams.put("stepSize",colorControlenhancedStepHuestepSizeCommandParameterInfo);
+    CommandParameterInfo mediaPlaybackskipForwarddeltaPositionMillisecondsCommandParameterInfo = new CommandParameterInfo("deltaPositionMilliseconds", Long.class, Long.class);
+    mediaPlaybackskipForwardCommandParams.put("deltaPositionMilliseconds",mediaPlaybackskipForwarddeltaPositionMillisecondsCommandParameterInfo);
+    InteractionInfo mediaPlaybackskipForwardInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.MediaPlaybackCluster) cluster)
+          .skipForward((ChipClusters.MediaPlaybackCluster.PlaybackResponseCallback) callback
+           , (Long)
+             commandArguments.get("deltaPositionMilliseconds")
 
-    CommandParameterInfo colorControlenhancedStepHuetransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Integer.class, Integer.class);
-    colorControlenhancedStepHueCommandParams.put("transitionTime",colorControlenhancedStepHuetransitionTimeCommandParameterInfo);
+            );
+        },
+        () -> new DelegatedMediaPlaybackClusterPlaybackResponseCallback(),
+        mediaPlaybackskipForwardCommandParams
+      );
+    mediaPlaybackClusterInteractionInfoMap.put("skipForward", mediaPlaybackskipForwardInteractionInfo);
 
-    CommandParameterInfo colorControlenhancedStepHueoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
-    colorControlenhancedStepHueCommandParams.put("optionsMask",colorControlenhancedStepHueoptionsMaskCommandParameterInfo);
+    Map<String, CommandParameterInfo> mediaPlaybackskipBackwardCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo colorControlenhancedStepHueoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
-    colorControlenhancedStepHueCommandParams.put("optionsOverride",colorControlenhancedStepHueoptionsOverrideCommandParameterInfo);
-    InteractionInfo colorControlenhancedStepHueInteractionInfo = new InteractionInfo(
+    CommandParameterInfo mediaPlaybackskipBackwarddeltaPositionMillisecondsCommandParameterInfo = new CommandParameterInfo("deltaPositionMilliseconds", Long.class, Long.class);
+    mediaPlaybackskipBackwardCommandParams.put("deltaPositionMilliseconds",mediaPlaybackskipBackwarddeltaPositionMillisecondsCommandParameterInfo);
+    InteractionInfo mediaPlaybackskipBackwardInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ColorControlCluster) cluster)
-        .enhancedStepHue((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("stepMode")
-        , (Integer)
-        commandArguments.get("stepSize")
-        , (Integer)
-        commandArguments.get("transitionTime")
-        , (Integer)
-        commandArguments.get("optionsMask")
-        , (Integer)
-        commandArguments.get("optionsOverride")
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        colorControlenhancedStepHueCommandParams
-    );
-    colorControlClusterInteractionInfoMap.put("enhancedStepHue", colorControlenhancedStepHueInteractionInfo);
+        ((ChipClusters.MediaPlaybackCluster) cluster)
+          .skipBackward((ChipClusters.MediaPlaybackCluster.PlaybackResponseCallback) callback
+           , (Long)
+             commandArguments.get("deltaPositionMilliseconds")
+
+            );
+        },
+        () -> new DelegatedMediaPlaybackClusterPlaybackResponseCallback(),
+        mediaPlaybackskipBackwardCommandParams
+      );
+    mediaPlaybackClusterInteractionInfoMap.put("skipBackward", mediaPlaybackskipBackwardInteractionInfo);
 
-    Map<String, CommandParameterInfo> colorControlenhancedMoveToHueAndSaturationCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> mediaPlaybackseekCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo colorControlenhancedMoveToHueAndSaturationenhancedHueCommandParameterInfo = new CommandParameterInfo("enhancedHue", Integer.class, Integer.class);
-    colorControlenhancedMoveToHueAndSaturationCommandParams.put("enhancedHue",colorControlenhancedMoveToHueAndSaturationenhancedHueCommandParameterInfo);
+    CommandParameterInfo mediaPlaybackseekpositionCommandParameterInfo = new CommandParameterInfo("position", Long.class, Long.class);
+    mediaPlaybackseekCommandParams.put("position",mediaPlaybackseekpositionCommandParameterInfo);
+    InteractionInfo mediaPlaybackseekInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.MediaPlaybackCluster) cluster)
+          .seek((ChipClusters.MediaPlaybackCluster.PlaybackResponseCallback) callback
+           , (Long)
+             commandArguments.get("position")
 
-    CommandParameterInfo colorControlenhancedMoveToHueAndSaturationsaturationCommandParameterInfo = new CommandParameterInfo("saturation", Integer.class, Integer.class);
-    colorControlenhancedMoveToHueAndSaturationCommandParams.put("saturation",colorControlenhancedMoveToHueAndSaturationsaturationCommandParameterInfo);
+            );
+        },
+        () -> new DelegatedMediaPlaybackClusterPlaybackResponseCallback(),
+        mediaPlaybackseekCommandParams
+      );
+    mediaPlaybackClusterInteractionInfoMap.put("seek", mediaPlaybackseekInteractionInfo);
 
-    CommandParameterInfo colorControlenhancedMoveToHueAndSaturationtransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Integer.class, Integer.class);
-    colorControlenhancedMoveToHueAndSaturationCommandParams.put("transitionTime",colorControlenhancedMoveToHueAndSaturationtransitionTimeCommandParameterInfo);
+    Map<String, CommandParameterInfo> mediaPlaybackactivateAudioTrackCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo colorControlenhancedMoveToHueAndSaturationoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
-    colorControlenhancedMoveToHueAndSaturationCommandParams.put("optionsMask",colorControlenhancedMoveToHueAndSaturationoptionsMaskCommandParameterInfo);
+    CommandParameterInfo mediaPlaybackactivateAudioTracktrackIDCommandParameterInfo = new CommandParameterInfo("trackID", String.class, String.class);
+    mediaPlaybackactivateAudioTrackCommandParams.put("trackID",mediaPlaybackactivateAudioTracktrackIDCommandParameterInfo);
 
-    CommandParameterInfo colorControlenhancedMoveToHueAndSaturationoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
-    colorControlenhancedMoveToHueAndSaturationCommandParams.put("optionsOverride",colorControlenhancedMoveToHueAndSaturationoptionsOverrideCommandParameterInfo);
-    InteractionInfo colorControlenhancedMoveToHueAndSaturationInteractionInfo = new InteractionInfo(
+    CommandParameterInfo mediaPlaybackactivateAudioTrackaudioOutputIndexCommandParameterInfo = new CommandParameterInfo("audioOutputIndex", Integer.class, Integer.class);
+    mediaPlaybackactivateAudioTrackCommandParams.put("audioOutputIndex",mediaPlaybackactivateAudioTrackaudioOutputIndexCommandParameterInfo);
+    InteractionInfo mediaPlaybackactivateAudioTrackInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ColorControlCluster) cluster)
-        .enhancedMoveToHueAndSaturation((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("enhancedHue")
-        , (Integer)
-        commandArguments.get("saturation")
-        , (Integer)
-        commandArguments.get("transitionTime")
-        , (Integer)
-        commandArguments.get("optionsMask")
+        ((ChipClusters.MediaPlaybackCluster) cluster)
+        .activateAudioTrack((DefaultClusterCallback) callback
+        , (String)
+        commandArguments.get("trackID")
         , (Integer)
-        commandArguments.get("optionsOverride")
+        commandArguments.get("audioOutputIndex")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        colorControlenhancedMoveToHueAndSaturationCommandParams
+        mediaPlaybackactivateAudioTrackCommandParams
     );
-    colorControlClusterInteractionInfoMap.put("enhancedMoveToHueAndSaturation", colorControlenhancedMoveToHueAndSaturationInteractionInfo);
-
-    Map<String, CommandParameterInfo> colorControlcolorLoopSetCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-
-    CommandParameterInfo colorControlcolorLoopSetupdateFlagsCommandParameterInfo = new CommandParameterInfo("updateFlags", Integer.class, Integer.class);
-    colorControlcolorLoopSetCommandParams.put("updateFlags",colorControlcolorLoopSetupdateFlagsCommandParameterInfo);
-
-    CommandParameterInfo colorControlcolorLoopSetactionCommandParameterInfo = new CommandParameterInfo("action", Integer.class, Integer.class);
-    colorControlcolorLoopSetCommandParams.put("action",colorControlcolorLoopSetactionCommandParameterInfo);
-
-    CommandParameterInfo colorControlcolorLoopSetdirectionCommandParameterInfo = new CommandParameterInfo("direction", Integer.class, Integer.class);
-    colorControlcolorLoopSetCommandParams.put("direction",colorControlcolorLoopSetdirectionCommandParameterInfo);
-
-    CommandParameterInfo colorControlcolorLoopSettimeCommandParameterInfo = new CommandParameterInfo("time", Integer.class, Integer.class);
-    colorControlcolorLoopSetCommandParams.put("time",colorControlcolorLoopSettimeCommandParameterInfo);
-
-    CommandParameterInfo colorControlcolorLoopSetstartHueCommandParameterInfo = new CommandParameterInfo("startHue", Integer.class, Integer.class);
-    colorControlcolorLoopSetCommandParams.put("startHue",colorControlcolorLoopSetstartHueCommandParameterInfo);
+    mediaPlaybackClusterInteractionInfoMap.put("activateAudioTrack", mediaPlaybackactivateAudioTrackInteractionInfo);
 
-    CommandParameterInfo colorControlcolorLoopSetoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
-    colorControlcolorLoopSetCommandParams.put("optionsMask",colorControlcolorLoopSetoptionsMaskCommandParameterInfo);
+    Map<String, CommandParameterInfo> mediaPlaybackactivateTextTrackCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo colorControlcolorLoopSetoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
-    colorControlcolorLoopSetCommandParams.put("optionsOverride",colorControlcolorLoopSetoptionsOverrideCommandParameterInfo);
-    InteractionInfo colorControlcolorLoopSetInteractionInfo = new InteractionInfo(
+    CommandParameterInfo mediaPlaybackactivateTextTracktrackIDCommandParameterInfo = new CommandParameterInfo("trackID", String.class, String.class);
+    mediaPlaybackactivateTextTrackCommandParams.put("trackID",mediaPlaybackactivateTextTracktrackIDCommandParameterInfo);
+    InteractionInfo mediaPlaybackactivateTextTrackInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ColorControlCluster) cluster)
-        .colorLoopSet((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("updateFlags")
-        , (Integer)
-        commandArguments.get("action")
-        , (Integer)
-        commandArguments.get("direction")
-        , (Integer)
-        commandArguments.get("time")
-        , (Integer)
-        commandArguments.get("startHue")
-        , (Integer)
-        commandArguments.get("optionsMask")
-        , (Integer)
-        commandArguments.get("optionsOverride")
+        ((ChipClusters.MediaPlaybackCluster) cluster)
+        .activateTextTrack((DefaultClusterCallback) callback
+        , (String)
+        commandArguments.get("trackID")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        colorControlcolorLoopSetCommandParams
+        mediaPlaybackactivateTextTrackCommandParams
     );
-    colorControlClusterInteractionInfoMap.put("colorLoopSet", colorControlcolorLoopSetInteractionInfo);
-
-    Map<String, CommandParameterInfo> colorControlstopMoveStepCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-
-    CommandParameterInfo colorControlstopMoveStepoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
-    colorControlstopMoveStepCommandParams.put("optionsMask",colorControlstopMoveStepoptionsMaskCommandParameterInfo);
+    mediaPlaybackClusterInteractionInfoMap.put("activateTextTrack", mediaPlaybackactivateTextTrackInteractionInfo);
 
-    CommandParameterInfo colorControlstopMoveStepoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
-    colorControlstopMoveStepCommandParams.put("optionsOverride",colorControlstopMoveStepoptionsOverrideCommandParameterInfo);
-    InteractionInfo colorControlstopMoveStepInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> mediaPlaybackdeactivateTextTrackCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo mediaPlaybackdeactivateTextTrackInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ColorControlCluster) cluster)
-        .stopMoveStep((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("optionsMask")
-        , (Integer)
-        commandArguments.get("optionsOverride")
+        ((ChipClusters.MediaPlaybackCluster) cluster)
+        .deactivateTextTrack((DefaultClusterCallback) callback
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        colorControlstopMoveStepCommandParams
+        mediaPlaybackdeactivateTextTrackCommandParams
     );
-    colorControlClusterInteractionInfoMap.put("stopMoveStep", colorControlstopMoveStepInteractionInfo);
-
-    Map<String, CommandParameterInfo> colorControlmoveColorTemperatureCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-
-    CommandParameterInfo colorControlmoveColorTemperaturemoveModeCommandParameterInfo = new CommandParameterInfo("moveMode", Integer.class, Integer.class);
-    colorControlmoveColorTemperatureCommandParams.put("moveMode",colorControlmoveColorTemperaturemoveModeCommandParameterInfo);
-
-    CommandParameterInfo colorControlmoveColorTemperaturerateCommandParameterInfo = new CommandParameterInfo("rate", Integer.class, Integer.class);
-    colorControlmoveColorTemperatureCommandParams.put("rate",colorControlmoveColorTemperaturerateCommandParameterInfo);
+    mediaPlaybackClusterInteractionInfoMap.put("deactivateTextTrack", mediaPlaybackdeactivateTextTrackInteractionInfo);
 
-    CommandParameterInfo colorControlmoveColorTemperaturecolorTemperatureMinimumMiredsCommandParameterInfo = new CommandParameterInfo("colorTemperatureMinimumMireds", Integer.class, Integer.class);
-    colorControlmoveColorTemperatureCommandParams.put("colorTemperatureMinimumMireds",colorControlmoveColorTemperaturecolorTemperatureMinimumMiredsCommandParameterInfo);
+    commandMap.put("mediaPlayback", mediaPlaybackClusterInteractionInfoMap);
 
-    CommandParameterInfo colorControlmoveColorTemperaturecolorTemperatureMaximumMiredsCommandParameterInfo = new CommandParameterInfo("colorTemperatureMaximumMireds", Integer.class, Integer.class);
-    colorControlmoveColorTemperatureCommandParams.put("colorTemperatureMaximumMireds",colorControlmoveColorTemperaturecolorTemperatureMaximumMiredsCommandParameterInfo);
+    Map<String, InteractionInfo> mediaInputClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    CommandParameterInfo colorControlmoveColorTemperatureoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
-    colorControlmoveColorTemperatureCommandParams.put("optionsMask",colorControlmoveColorTemperatureoptionsMaskCommandParameterInfo);
+    Map<String, CommandParameterInfo> mediaInputselectInputCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo colorControlmoveColorTemperatureoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
-    colorControlmoveColorTemperatureCommandParams.put("optionsOverride",colorControlmoveColorTemperatureoptionsOverrideCommandParameterInfo);
-    InteractionInfo colorControlmoveColorTemperatureInteractionInfo = new InteractionInfo(
+    CommandParameterInfo mediaInputselectInputindexCommandParameterInfo = new CommandParameterInfo("index", Integer.class, Integer.class);
+    mediaInputselectInputCommandParams.put("index",mediaInputselectInputindexCommandParameterInfo);
+    InteractionInfo mediaInputselectInputInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ColorControlCluster) cluster)
-        .moveColorTemperature((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("moveMode")
-        , (Integer)
-        commandArguments.get("rate")
-        , (Integer)
-        commandArguments.get("colorTemperatureMinimumMireds")
-        , (Integer)
-        commandArguments.get("colorTemperatureMaximumMireds")
-        , (Integer)
-        commandArguments.get("optionsMask")
+        ((ChipClusters.MediaInputCluster) cluster)
+        .selectInput((DefaultClusterCallback) callback
         , (Integer)
-        commandArguments.get("optionsOverride")
+        commandArguments.get("index")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        colorControlmoveColorTemperatureCommandParams
+        mediaInputselectInputCommandParams
     );
-    colorControlClusterInteractionInfoMap.put("moveColorTemperature", colorControlmoveColorTemperatureInteractionInfo);
-
-    Map<String, CommandParameterInfo> colorControlstepColorTemperatureCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-
-    CommandParameterInfo colorControlstepColorTemperaturestepModeCommandParameterInfo = new CommandParameterInfo("stepMode", Integer.class, Integer.class);
-    colorControlstepColorTemperatureCommandParams.put("stepMode",colorControlstepColorTemperaturestepModeCommandParameterInfo);
-
-    CommandParameterInfo colorControlstepColorTemperaturestepSizeCommandParameterInfo = new CommandParameterInfo("stepSize", Integer.class, Integer.class);
-    colorControlstepColorTemperatureCommandParams.put("stepSize",colorControlstepColorTemperaturestepSizeCommandParameterInfo);
-
-    CommandParameterInfo colorControlstepColorTemperaturetransitionTimeCommandParameterInfo = new CommandParameterInfo("transitionTime", Integer.class, Integer.class);
-    colorControlstepColorTemperatureCommandParams.put("transitionTime",colorControlstepColorTemperaturetransitionTimeCommandParameterInfo);
-
-    CommandParameterInfo colorControlstepColorTemperaturecolorTemperatureMinimumMiredsCommandParameterInfo = new CommandParameterInfo("colorTemperatureMinimumMireds", Integer.class, Integer.class);
-    colorControlstepColorTemperatureCommandParams.put("colorTemperatureMinimumMireds",colorControlstepColorTemperaturecolorTemperatureMinimumMiredsCommandParameterInfo);
-
-    CommandParameterInfo colorControlstepColorTemperaturecolorTemperatureMaximumMiredsCommandParameterInfo = new CommandParameterInfo("colorTemperatureMaximumMireds", Integer.class, Integer.class);
-    colorControlstepColorTemperatureCommandParams.put("colorTemperatureMaximumMireds",colorControlstepColorTemperaturecolorTemperatureMaximumMiredsCommandParameterInfo);
-
-    CommandParameterInfo colorControlstepColorTemperatureoptionsMaskCommandParameterInfo = new CommandParameterInfo("optionsMask", Integer.class, Integer.class);
-    colorControlstepColorTemperatureCommandParams.put("optionsMask",colorControlstepColorTemperatureoptionsMaskCommandParameterInfo);
+    mediaInputClusterInteractionInfoMap.put("selectInput", mediaInputselectInputInteractionInfo);
 
-    CommandParameterInfo colorControlstepColorTemperatureoptionsOverrideCommandParameterInfo = new CommandParameterInfo("optionsOverride", Integer.class, Integer.class);
-    colorControlstepColorTemperatureCommandParams.put("optionsOverride",colorControlstepColorTemperatureoptionsOverrideCommandParameterInfo);
-    InteractionInfo colorControlstepColorTemperatureInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> mediaInputshowInputStatusCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo mediaInputshowInputStatusInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ColorControlCluster) cluster)
-        .stepColorTemperature((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("stepMode")
-        , (Integer)
-        commandArguments.get("stepSize")
-        , (Integer)
-        commandArguments.get("transitionTime")
-        , (Integer)
-        commandArguments.get("colorTemperatureMinimumMireds")
-        , (Integer)
-        commandArguments.get("colorTemperatureMaximumMireds")
-        , (Integer)
-        commandArguments.get("optionsMask")
-        , (Integer)
-        commandArguments.get("optionsOverride")
+        ((ChipClusters.MediaInputCluster) cluster)
+        .showInputStatus((DefaultClusterCallback) callback
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        colorControlstepColorTemperatureCommandParams
+        mediaInputshowInputStatusCommandParams
     );
-    colorControlClusterInteractionInfoMap.put("stepColorTemperature", colorControlstepColorTemperatureInteractionInfo);
-
-    commandMap.put("colorControl", colorControlClusterInteractionInfoMap);
-
-    Map<String, InteractionInfo> ballastConfigurationClusterInteractionInfoMap = new LinkedHashMap<>();
-
-    commandMap.put("ballastConfiguration", ballastConfigurationClusterInteractionInfoMap);
-
-    Map<String, InteractionInfo> illuminanceMeasurementClusterInteractionInfoMap = new LinkedHashMap<>();
-
-    commandMap.put("illuminanceMeasurement", illuminanceMeasurementClusterInteractionInfoMap);
-
-    Map<String, InteractionInfo> temperatureMeasurementClusterInteractionInfoMap = new LinkedHashMap<>();
-
-    commandMap.put("temperatureMeasurement", temperatureMeasurementClusterInteractionInfoMap);
-
-    Map<String, InteractionInfo> pressureMeasurementClusterInteractionInfoMap = new LinkedHashMap<>();
-
-    commandMap.put("pressureMeasurement", pressureMeasurementClusterInteractionInfoMap);
-
-    Map<String, InteractionInfo> flowMeasurementClusterInteractionInfoMap = new LinkedHashMap<>();
-
-    commandMap.put("flowMeasurement", flowMeasurementClusterInteractionInfoMap);
-
-    Map<String, InteractionInfo> relativeHumidityMeasurementClusterInteractionInfoMap = new LinkedHashMap<>();
+    mediaInputClusterInteractionInfoMap.put("showInputStatus", mediaInputshowInputStatusInteractionInfo);
 
-    commandMap.put("relativeHumidityMeasurement", relativeHumidityMeasurementClusterInteractionInfoMap);
+    Map<String, CommandParameterInfo> mediaInputhideInputStatusCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo mediaInputhideInputStatusInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.MediaInputCluster) cluster)
+        .hideInputStatus((DefaultClusterCallback) callback
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        mediaInputhideInputStatusCommandParams
+    );
+    mediaInputClusterInteractionInfoMap.put("hideInputStatus", mediaInputhideInputStatusInteractionInfo);
 
-    Map<String, InteractionInfo> occupancySensingClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, CommandParameterInfo> mediaInputrenameInputCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    commandMap.put("occupancySensing", occupancySensingClusterInteractionInfoMap);
+    CommandParameterInfo mediaInputrenameInputindexCommandParameterInfo = new CommandParameterInfo("index", Integer.class, Integer.class);
+    mediaInputrenameInputCommandParams.put("index",mediaInputrenameInputindexCommandParameterInfo);
 
-    Map<String, InteractionInfo> carbonMonoxideConcentrationMeasurementClusterInteractionInfoMap = new LinkedHashMap<>();
+    CommandParameterInfo mediaInputrenameInputnameCommandParameterInfo = new CommandParameterInfo("name", String.class, String.class);
+    mediaInputrenameInputCommandParams.put("name",mediaInputrenameInputnameCommandParameterInfo);
+    InteractionInfo mediaInputrenameInputInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.MediaInputCluster) cluster)
+        .renameInput((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("index")
+        , (String)
+        commandArguments.get("name")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        mediaInputrenameInputCommandParams
+    );
+    mediaInputClusterInteractionInfoMap.put("renameInput", mediaInputrenameInputInteractionInfo);
 
-    commandMap.put("carbonMonoxideConcentrationMeasurement", carbonMonoxideConcentrationMeasurementClusterInteractionInfoMap);
+    commandMap.put("mediaInput", mediaInputClusterInteractionInfoMap);
 
-    Map<String, InteractionInfo> carbonDioxideConcentrationMeasurementClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, InteractionInfo> lowPowerClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    commandMap.put("carbonDioxideConcentrationMeasurement", carbonDioxideConcentrationMeasurementClusterInteractionInfoMap);
+    Map<String, CommandParameterInfo> lowPowersleepCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo lowPowersleepInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.LowPowerCluster) cluster)
+        .sleep((DefaultClusterCallback) callback
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        lowPowersleepCommandParams
+    );
+    lowPowerClusterInteractionInfoMap.put("sleep", lowPowersleepInteractionInfo);
 
-    Map<String, InteractionInfo> nitrogenDioxideConcentrationMeasurementClusterInteractionInfoMap = new LinkedHashMap<>();
+    commandMap.put("lowPower", lowPowerClusterInteractionInfoMap);
 
-    commandMap.put("nitrogenDioxideConcentrationMeasurement", nitrogenDioxideConcentrationMeasurementClusterInteractionInfoMap);
+    Map<String, InteractionInfo> keypadInputClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    Map<String, InteractionInfo> ozoneConcentrationMeasurementClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, CommandParameterInfo> keypadInputsendKeyCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    commandMap.put("ozoneConcentrationMeasurement", ozoneConcentrationMeasurementClusterInteractionInfoMap);
+    CommandParameterInfo keypadInputsendKeykeyCodeCommandParameterInfo = new CommandParameterInfo("keyCode", Integer.class, Integer.class);
+    keypadInputsendKeyCommandParams.put("keyCode",keypadInputsendKeykeyCodeCommandParameterInfo);
+    InteractionInfo keypadInputsendKeyInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.KeypadInputCluster) cluster)
+          .sendKey((ChipClusters.KeypadInputCluster.SendKeyResponseCallback) callback
+           , (Integer)
+             commandArguments.get("keyCode")
 
-    Map<String, InteractionInfo> pm25ConcentrationMeasurementClusterInteractionInfoMap = new LinkedHashMap<>();
+            );
+        },
+        () -> new DelegatedKeypadInputClusterSendKeyResponseCallback(),
+        keypadInputsendKeyCommandParams
+      );
+    keypadInputClusterInteractionInfoMap.put("sendKey", keypadInputsendKeyInteractionInfo);
 
-    commandMap.put("pm25ConcentrationMeasurement", pm25ConcentrationMeasurementClusterInteractionInfoMap);
+    commandMap.put("keypadInput", keypadInputClusterInteractionInfoMap);
 
-    Map<String, InteractionInfo> formaldehydeConcentrationMeasurementClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, InteractionInfo> contentLauncherClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    commandMap.put("formaldehydeConcentrationMeasurement", formaldehydeConcentrationMeasurementClusterInteractionInfoMap);
+    Map<String, CommandParameterInfo> contentLauncherlaunchContentCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, InteractionInfo> pm1ConcentrationMeasurementClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    commandMap.put("pm1ConcentrationMeasurement", pm1ConcentrationMeasurementClusterInteractionInfoMap);
+    CommandParameterInfo contentLauncherlaunchContentautoPlayCommandParameterInfo = new CommandParameterInfo("autoPlay", Boolean.class, Boolean.class);
+    contentLauncherlaunchContentCommandParams.put("autoPlay",contentLauncherlaunchContentautoPlayCommandParameterInfo);
 
-    Map<String, InteractionInfo> pm10ConcentrationMeasurementClusterInteractionInfoMap = new LinkedHashMap<>();
+    CommandParameterInfo contentLauncherlaunchContentdataCommandParameterInfo = new CommandParameterInfo("data", Optional.class, String.class);
+    contentLauncherlaunchContentCommandParams.put("data",contentLauncherlaunchContentdataCommandParameterInfo);
 
-    commandMap.put("pm10ConcentrationMeasurement", pm10ConcentrationMeasurementClusterInteractionInfoMap);
 
-    Map<String, InteractionInfo> totalVolatileOrganicCompoundsConcentrationMeasurementClusterInteractionInfoMap = new LinkedHashMap<>();
+    CommandParameterInfo contentLauncherlaunchContentuseCurrentContextCommandParameterInfo = new CommandParameterInfo("useCurrentContext", Optional.class, Boolean.class);
+    contentLauncherlaunchContentCommandParams.put("useCurrentContext",contentLauncherlaunchContentuseCurrentContextCommandParameterInfo);
+    InteractionInfo contentLauncherlaunchContentInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.ContentLauncherCluster) cluster)
+          .launchContent((ChipClusters.ContentLauncherCluster.LauncherResponseCallback) callback
+           , (ChipStructs.ContentLauncherClusterContentSearchStruct)
+             commandArguments.get("search")
 
-    commandMap.put("totalVolatileOrganicCompoundsConcentrationMeasurement", totalVolatileOrganicCompoundsConcentrationMeasurementClusterInteractionInfoMap);
+           , (Boolean)
+             commandArguments.get("autoPlay")
 
-    Map<String, InteractionInfo> radonConcentrationMeasurementClusterInteractionInfoMap = new LinkedHashMap<>();
+           , (Optional<String>)
+             commandArguments.get("data")
 
-    commandMap.put("radonConcentrationMeasurement", radonConcentrationMeasurementClusterInteractionInfoMap);
+           , (Optional<ChipStructs.ContentLauncherClusterPlaybackPreferencesStruct>)
+             commandArguments.get("playbackPreferences")
 
-    Map<String, InteractionInfo> wiFiNetworkManagementClusterInteractionInfoMap = new LinkedHashMap<>();
+           , (Optional<Boolean>)
+             commandArguments.get("useCurrentContext")
 
-    Map<String, CommandParameterInfo> wiFiNetworkManagementnetworkPassphraseRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo wiFiNetworkManagementnetworkPassphraseRequestInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.WiFiNetworkManagementCluster) cluster)
-          .networkPassphraseRequest((ChipClusters.WiFiNetworkManagementCluster.NetworkPassphraseResponseCallback) callback
             );
         },
-        () -> new DelegatedWiFiNetworkManagementClusterNetworkPassphraseResponseCallback(),
-        wiFiNetworkManagementnetworkPassphraseRequestCommandParams
+        () -> new DelegatedContentLauncherClusterLauncherResponseCallback(),
+        contentLauncherlaunchContentCommandParams
       );
-    wiFiNetworkManagementClusterInteractionInfoMap.put("networkPassphraseRequest", wiFiNetworkManagementnetworkPassphraseRequestInteractionInfo);
+    contentLauncherClusterInteractionInfoMap.put("launchContent", contentLauncherlaunchContentInteractionInfo);
 
-    commandMap.put("wiFiNetworkManagement", wiFiNetworkManagementClusterInteractionInfoMap);
+    Map<String, CommandParameterInfo> contentLauncherlaunchURLCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, InteractionInfo> threadBorderRouterManagementClusterInteractionInfoMap = new LinkedHashMap<>();
+    CommandParameterInfo contentLauncherlaunchURLcontentURLCommandParameterInfo = new CommandParameterInfo("contentURL", String.class, String.class);
+    contentLauncherlaunchURLCommandParams.put("contentURL",contentLauncherlaunchURLcontentURLCommandParameterInfo);
 
-    Map<String, CommandParameterInfo> threadBorderRouterManagementgetActiveDatasetRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo threadBorderRouterManagementgetActiveDatasetRequestInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ThreadBorderRouterManagementCluster) cluster)
-          .getActiveDatasetRequest((ChipClusters.ThreadBorderRouterManagementCluster.DatasetResponseCallback) callback
-            );
-        },
-        () -> new DelegatedThreadBorderRouterManagementClusterDatasetResponseCallback(),
-        threadBorderRouterManagementgetActiveDatasetRequestCommandParams
-      );
-    threadBorderRouterManagementClusterInteractionInfoMap.put("getActiveDatasetRequest", threadBorderRouterManagementgetActiveDatasetRequestInteractionInfo);
+    CommandParameterInfo contentLauncherlaunchURLdisplayStringCommandParameterInfo = new CommandParameterInfo("displayString", Optional.class, String.class);
+    contentLauncherlaunchURLCommandParams.put("displayString",contentLauncherlaunchURLdisplayStringCommandParameterInfo);
 
-    Map<String, CommandParameterInfo> threadBorderRouterManagementgetPendingDatasetRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo threadBorderRouterManagementgetPendingDatasetRequestInteractionInfo = new InteractionInfo(
+    InteractionInfo contentLauncherlaunchURLInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ThreadBorderRouterManagementCluster) cluster)
-          .getPendingDatasetRequest((ChipClusters.ThreadBorderRouterManagementCluster.DatasetResponseCallback) callback
+        ((ChipClusters.ContentLauncherCluster) cluster)
+          .launchURL((ChipClusters.ContentLauncherCluster.LauncherResponseCallback) callback
+           , (String)
+             commandArguments.get("contentURL")
+
+           , (Optional<String>)
+             commandArguments.get("displayString")
+
+           , (Optional<ChipStructs.ContentLauncherClusterBrandingInformationStruct>)
+             commandArguments.get("brandingInformation")
+
             );
         },
-        () -> new DelegatedThreadBorderRouterManagementClusterDatasetResponseCallback(),
-        threadBorderRouterManagementgetPendingDatasetRequestCommandParams
+        () -> new DelegatedContentLauncherClusterLauncherResponseCallback(),
+        contentLauncherlaunchURLCommandParams
       );
-    threadBorderRouterManagementClusterInteractionInfoMap.put("getPendingDatasetRequest", threadBorderRouterManagementgetPendingDatasetRequestInteractionInfo);
+    contentLauncherClusterInteractionInfoMap.put("launchURL", contentLauncherlaunchURLInteractionInfo);
 
-    Map<String, CommandParameterInfo> threadBorderRouterManagementsetActiveDatasetRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    commandMap.put("contentLauncher", contentLauncherClusterInteractionInfoMap);
 
-    CommandParameterInfo threadBorderRouterManagementsetActiveDatasetRequestactiveDatasetCommandParameterInfo = new CommandParameterInfo("activeDataset", byte[].class, byte[].class);
-    threadBorderRouterManagementsetActiveDatasetRequestCommandParams.put("activeDataset",threadBorderRouterManagementsetActiveDatasetRequestactiveDatasetCommandParameterInfo);
+    Map<String, InteractionInfo> audioOutputClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    CommandParameterInfo threadBorderRouterManagementsetActiveDatasetRequestbreadcrumbCommandParameterInfo = new CommandParameterInfo("breadcrumb", Optional.class, Long.class);
-    threadBorderRouterManagementsetActiveDatasetRequestCommandParams.put("breadcrumb",threadBorderRouterManagementsetActiveDatasetRequestbreadcrumbCommandParameterInfo);
-    InteractionInfo threadBorderRouterManagementsetActiveDatasetRequestInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> audioOutputselectOutputCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo audioOutputselectOutputindexCommandParameterInfo = new CommandParameterInfo("index", Integer.class, Integer.class);
+    audioOutputselectOutputCommandParams.put("index",audioOutputselectOutputindexCommandParameterInfo);
+    InteractionInfo audioOutputselectOutputInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ThreadBorderRouterManagementCluster) cluster)
-        .setActiveDatasetRequest((DefaultClusterCallback) callback
-        , (byte[])
-        commandArguments.get("activeDataset")
-        , (Optional<Long>)
-        commandArguments.get("breadcrumb")
+        ((ChipClusters.AudioOutputCluster) cluster)
+        .selectOutput((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("index")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        threadBorderRouterManagementsetActiveDatasetRequestCommandParams
+        audioOutputselectOutputCommandParams
     );
-    threadBorderRouterManagementClusterInteractionInfoMap.put("setActiveDatasetRequest", threadBorderRouterManagementsetActiveDatasetRequestInteractionInfo);
+    audioOutputClusterInteractionInfoMap.put("selectOutput", audioOutputselectOutputInteractionInfo);
 
-    Map<String, CommandParameterInfo> threadBorderRouterManagementsetPendingDatasetRequestCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> audioOutputrenameOutputCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo threadBorderRouterManagementsetPendingDatasetRequestpendingDatasetCommandParameterInfo = new CommandParameterInfo("pendingDataset", byte[].class, byte[].class);
-    threadBorderRouterManagementsetPendingDatasetRequestCommandParams.put("pendingDataset",threadBorderRouterManagementsetPendingDatasetRequestpendingDatasetCommandParameterInfo);
-    InteractionInfo threadBorderRouterManagementsetPendingDatasetRequestInteractionInfo = new InteractionInfo(
+    CommandParameterInfo audioOutputrenameOutputindexCommandParameterInfo = new CommandParameterInfo("index", Integer.class, Integer.class);
+    audioOutputrenameOutputCommandParams.put("index",audioOutputrenameOutputindexCommandParameterInfo);
+
+    CommandParameterInfo audioOutputrenameOutputnameCommandParameterInfo = new CommandParameterInfo("name", String.class, String.class);
+    audioOutputrenameOutputCommandParams.put("name",audioOutputrenameOutputnameCommandParameterInfo);
+    InteractionInfo audioOutputrenameOutputInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ThreadBorderRouterManagementCluster) cluster)
-        .setPendingDatasetRequest((DefaultClusterCallback) callback
-        , (byte[])
-        commandArguments.get("pendingDataset")
+        ((ChipClusters.AudioOutputCluster) cluster)
+        .renameOutput((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("index")
+        , (String)
+        commandArguments.get("name")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        threadBorderRouterManagementsetPendingDatasetRequestCommandParams
+        audioOutputrenameOutputCommandParams
     );
-    threadBorderRouterManagementClusterInteractionInfoMap.put("setPendingDatasetRequest", threadBorderRouterManagementsetPendingDatasetRequestInteractionInfo);
+    audioOutputClusterInteractionInfoMap.put("renameOutput", audioOutputrenameOutputInteractionInfo);
 
-    commandMap.put("threadBorderRouterManagement", threadBorderRouterManagementClusterInteractionInfoMap);
+    commandMap.put("audioOutput", audioOutputClusterInteractionInfoMap);
 
-    Map<String, InteractionInfo> threadNetworkDirectoryClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, InteractionInfo> applicationLauncherClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    Map<String, CommandParameterInfo> threadNetworkDirectoryaddNetworkCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> applicationLauncherlaunchAppCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo threadNetworkDirectoryaddNetworkoperationalDatasetCommandParameterInfo = new CommandParameterInfo("operationalDataset", byte[].class, byte[].class);
-    threadNetworkDirectoryaddNetworkCommandParams.put("operationalDataset",threadNetworkDirectoryaddNetworkoperationalDatasetCommandParameterInfo);
-    InteractionInfo threadNetworkDirectoryaddNetworkInteractionInfo = new InteractionInfo(
+
+    CommandParameterInfo applicationLauncherlaunchAppdataCommandParameterInfo = new CommandParameterInfo("data", Optional.class, byte[].class);
+    applicationLauncherlaunchAppCommandParams.put("data",applicationLauncherlaunchAppdataCommandParameterInfo);
+    InteractionInfo applicationLauncherlaunchAppInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ThreadNetworkDirectoryCluster) cluster)
-        .addNetwork((DefaultClusterCallback) callback
-        , (byte[])
-        commandArguments.get("operationalDataset"), 10000
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        threadNetworkDirectoryaddNetworkCommandParams
-    );
-    threadNetworkDirectoryClusterInteractionInfoMap.put("addNetwork", threadNetworkDirectoryaddNetworkInteractionInfo);
+        ((ChipClusters.ApplicationLauncherCluster) cluster)
+          .launchApp((ChipClusters.ApplicationLauncherCluster.LauncherResponseCallback) callback
+           , (Optional<ChipStructs.ApplicationLauncherClusterApplicationStruct>)
+             commandArguments.get("application")
 
-    Map<String, CommandParameterInfo> threadNetworkDirectoryremoveNetworkCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+           , (Optional<byte[]>)
+             commandArguments.get("data")
 
-    CommandParameterInfo threadNetworkDirectoryremoveNetworkextendedPanIDCommandParameterInfo = new CommandParameterInfo("extendedPanID", byte[].class, byte[].class);
-    threadNetworkDirectoryremoveNetworkCommandParams.put("extendedPanID",threadNetworkDirectoryremoveNetworkextendedPanIDCommandParameterInfo);
-    InteractionInfo threadNetworkDirectoryremoveNetworkInteractionInfo = new InteractionInfo(
+            );
+        },
+        () -> new DelegatedApplicationLauncherClusterLauncherResponseCallback(),
+        applicationLauncherlaunchAppCommandParams
+      );
+    applicationLauncherClusterInteractionInfoMap.put("launchApp", applicationLauncherlaunchAppInteractionInfo);
+
+    Map<String, CommandParameterInfo> applicationLauncherstopAppCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    InteractionInfo applicationLauncherstopAppInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ThreadNetworkDirectoryCluster) cluster)
-        .removeNetwork((DefaultClusterCallback) callback
-        , (byte[])
-        commandArguments.get("extendedPanID"), 10000
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        threadNetworkDirectoryremoveNetworkCommandParams
-    );
-    threadNetworkDirectoryClusterInteractionInfoMap.put("removeNetwork", threadNetworkDirectoryremoveNetworkInteractionInfo);
+        ((ChipClusters.ApplicationLauncherCluster) cluster)
+          .stopApp((ChipClusters.ApplicationLauncherCluster.LauncherResponseCallback) callback
+           , (Optional<ChipStructs.ApplicationLauncherClusterApplicationStruct>)
+             commandArguments.get("application")
+
+            );
+        },
+        () -> new DelegatedApplicationLauncherClusterLauncherResponseCallback(),
+        applicationLauncherstopAppCommandParams
+      );
+    applicationLauncherClusterInteractionInfoMap.put("stopApp", applicationLauncherstopAppInteractionInfo);
 
-    Map<String, CommandParameterInfo> threadNetworkDirectorygetOperationalDatasetCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> applicationLauncherhideAppCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo threadNetworkDirectorygetOperationalDatasetextendedPanIDCommandParameterInfo = new CommandParameterInfo("extendedPanID", byte[].class, byte[].class);
-    threadNetworkDirectorygetOperationalDatasetCommandParams.put("extendedPanID",threadNetworkDirectorygetOperationalDatasetextendedPanIDCommandParameterInfo);
-    InteractionInfo threadNetworkDirectorygetOperationalDatasetInteractionInfo = new InteractionInfo(
+    InteractionInfo applicationLauncherhideAppInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ThreadNetworkDirectoryCluster) cluster)
-          .getOperationalDataset((ChipClusters.ThreadNetworkDirectoryCluster.OperationalDatasetResponseCallback) callback
-           , (byte[])
-             commandArguments.get("extendedPanID")
+        ((ChipClusters.ApplicationLauncherCluster) cluster)
+          .hideApp((ChipClusters.ApplicationLauncherCluster.LauncherResponseCallback) callback
+           , (Optional<ChipStructs.ApplicationLauncherClusterApplicationStruct>)
+             commandArguments.get("application")
 
             );
         },
-        () -> new DelegatedThreadNetworkDirectoryClusterOperationalDatasetResponseCallback(),
-        threadNetworkDirectorygetOperationalDatasetCommandParams
+        () -> new DelegatedApplicationLauncherClusterLauncherResponseCallback(),
+        applicationLauncherhideAppCommandParams
       );
-    threadNetworkDirectoryClusterInteractionInfoMap.put("getOperationalDataset", threadNetworkDirectorygetOperationalDatasetInteractionInfo);
+    applicationLauncherClusterInteractionInfoMap.put("hideApp", applicationLauncherhideAppInteractionInfo);
 
-    commandMap.put("threadNetworkDirectory", threadNetworkDirectoryClusterInteractionInfoMap);
+    commandMap.put("applicationLauncher", applicationLauncherClusterInteractionInfoMap);
 
-    Map<String, InteractionInfo> wakeOnLanClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, InteractionInfo> applicationBasicClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    commandMap.put("wakeOnLan", wakeOnLanClusterInteractionInfoMap);
+    commandMap.put("applicationBasic", applicationBasicClusterInteractionInfoMap);
 
-    Map<String, InteractionInfo> channelClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, InteractionInfo> accountLoginClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    Map<String, CommandParameterInfo> channelchangeChannelCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> accountLogingetSetupPINCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo channelchangeChannelmatchCommandParameterInfo = new CommandParameterInfo("match", String.class, String.class);
-    channelchangeChannelCommandParams.put("match",channelchangeChannelmatchCommandParameterInfo);
-    InteractionInfo channelchangeChannelInteractionInfo = new InteractionInfo(
+    CommandParameterInfo accountLogingetSetupPINtempAccountIdentifierCommandParameterInfo = new CommandParameterInfo("tempAccountIdentifier", String.class, String.class);
+    accountLogingetSetupPINCommandParams.put("tempAccountIdentifier",accountLogingetSetupPINtempAccountIdentifierCommandParameterInfo);
+    InteractionInfo accountLogingetSetupPINInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ChannelCluster) cluster)
-          .changeChannel((ChipClusters.ChannelCluster.ChangeChannelResponseCallback) callback
+        ((ChipClusters.AccountLoginCluster) cluster)
+          .getSetupPIN((ChipClusters.AccountLoginCluster.GetSetupPINResponseCallback) callback
            , (String)
-             commandArguments.get("match")
+             commandArguments.get("tempAccountIdentifier")
 
-            );
+            , 10000);
         },
-        () -> new DelegatedChannelClusterChangeChannelResponseCallback(),
-        channelchangeChannelCommandParams
+        () -> new DelegatedAccountLoginClusterGetSetupPINResponseCallback(),
+        accountLogingetSetupPINCommandParams
       );
-    channelClusterInteractionInfoMap.put("changeChannel", channelchangeChannelInteractionInfo);
+    accountLoginClusterInteractionInfoMap.put("getSetupPIN", accountLogingetSetupPINInteractionInfo);
 
-    Map<String, CommandParameterInfo> channelchangeChannelByNumberCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> accountLoginloginCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo channelchangeChannelByNumbermajorNumberCommandParameterInfo = new CommandParameterInfo("majorNumber", Integer.class, Integer.class);
-    channelchangeChannelByNumberCommandParams.put("majorNumber",channelchangeChannelByNumbermajorNumberCommandParameterInfo);
+    CommandParameterInfo accountLoginlogintempAccountIdentifierCommandParameterInfo = new CommandParameterInfo("tempAccountIdentifier", String.class, String.class);
+    accountLoginloginCommandParams.put("tempAccountIdentifier",accountLoginlogintempAccountIdentifierCommandParameterInfo);
 
-    CommandParameterInfo channelchangeChannelByNumberminorNumberCommandParameterInfo = new CommandParameterInfo("minorNumber", Integer.class, Integer.class);
-    channelchangeChannelByNumberCommandParams.put("minorNumber",channelchangeChannelByNumberminorNumberCommandParameterInfo);
-    InteractionInfo channelchangeChannelByNumberInteractionInfo = new InteractionInfo(
+    CommandParameterInfo accountLoginloginsetupPINCommandParameterInfo = new CommandParameterInfo("setupPIN", String.class, String.class);
+    accountLoginloginCommandParams.put("setupPIN",accountLoginloginsetupPINCommandParameterInfo);
+
+    CommandParameterInfo accountLoginloginnodeCommandParameterInfo = new CommandParameterInfo("node", Optional.class, Long.class);
+    accountLoginloginCommandParams.put("node",accountLoginloginnodeCommandParameterInfo);
+    InteractionInfo accountLoginloginInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ChannelCluster) cluster)
-        .changeChannelByNumber((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("majorNumber")
-        , (Integer)
-        commandArguments.get("minorNumber")
+        ((ChipClusters.AccountLoginCluster) cluster)
+        .login((DefaultClusterCallback) callback
+        , (String)
+        commandArguments.get("tempAccountIdentifier")
+        , (String)
+        commandArguments.get("setupPIN")
+        , (Optional<Long>)
+        commandArguments.get("node"), 10000
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        channelchangeChannelByNumberCommandParams
+        accountLoginloginCommandParams
     );
-    channelClusterInteractionInfoMap.put("changeChannelByNumber", channelchangeChannelByNumberInteractionInfo);
+    accountLoginClusterInteractionInfoMap.put("login", accountLoginloginInteractionInfo);
 
-    Map<String, CommandParameterInfo> channelskipChannelCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> accountLoginlogoutCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo channelskipChannelcountCommandParameterInfo = new CommandParameterInfo("count", Integer.class, Integer.class);
-    channelskipChannelCommandParams.put("count",channelskipChannelcountCommandParameterInfo);
-    InteractionInfo channelskipChannelInteractionInfo = new InteractionInfo(
+    CommandParameterInfo accountLoginlogoutnodeCommandParameterInfo = new CommandParameterInfo("node", Optional.class, Long.class);
+    accountLoginlogoutCommandParams.put("node",accountLoginlogoutnodeCommandParameterInfo);
+    InteractionInfo accountLoginlogoutInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ChannelCluster) cluster)
-        .skipChannel((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("count")
+        ((ChipClusters.AccountLoginCluster) cluster)
+        .logout((DefaultClusterCallback) callback
+        , (Optional<Long>)
+        commandArguments.get("node"), 10000
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        channelskipChannelCommandParams
+        accountLoginlogoutCommandParams
     );
-    channelClusterInteractionInfoMap.put("skipChannel", channelskipChannelInteractionInfo);
-
-    Map<String, CommandParameterInfo> channelgetProgramGuideCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-
-    CommandParameterInfo channelgetProgramGuidestartTimeCommandParameterInfo = new CommandParameterInfo("startTime", Optional.class, Long.class);
-    channelgetProgramGuideCommandParams.put("startTime",channelgetProgramGuidestartTimeCommandParameterInfo);
-
-    CommandParameterInfo channelgetProgramGuideendTimeCommandParameterInfo = new CommandParameterInfo("endTime", Optional.class, Long.class);
-    channelgetProgramGuideCommandParams.put("endTime",channelgetProgramGuideendTimeCommandParameterInfo);
+    accountLoginClusterInteractionInfoMap.put("logout", accountLoginlogoutInteractionInfo);
 
+    commandMap.put("accountLogin", accountLoginClusterInteractionInfoMap);
 
+    Map<String, InteractionInfo> contentControlClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    CommandParameterInfo channelgetProgramGuiderecordingFlagCommandParameterInfo = new CommandParameterInfo("recordingFlag", Optional.class, Long.class);
-    channelgetProgramGuideCommandParams.put("recordingFlag",channelgetProgramGuiderecordingFlagCommandParameterInfo);
+    Map<String, CommandParameterInfo> contentControlupdatePINCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
+    CommandParameterInfo contentControlupdatePINoldPINCommandParameterInfo = new CommandParameterInfo("oldPIN", Optional.class, String.class);
+    contentControlupdatePINCommandParams.put("oldPIN",contentControlupdatePINoldPINCommandParameterInfo);
 
-    CommandParameterInfo channelgetProgramGuidedataCommandParameterInfo = new CommandParameterInfo("data", Optional.class, byte[].class);
-    channelgetProgramGuideCommandParams.put("data",channelgetProgramGuidedataCommandParameterInfo);
-    InteractionInfo channelgetProgramGuideInteractionInfo = new InteractionInfo(
+    CommandParameterInfo contentControlupdatePINnewPINCommandParameterInfo = new CommandParameterInfo("newPIN", String.class, String.class);
+    contentControlupdatePINCommandParams.put("newPIN",contentControlupdatePINnewPINCommandParameterInfo);
+    InteractionInfo contentControlupdatePINInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ChannelCluster) cluster)
-          .getProgramGuide((ChipClusters.ChannelCluster.ProgramGuideResponseCallback) callback
-           , (Optional<Long>)
-             commandArguments.get("startTime")
+        ((ChipClusters.ContentControlCluster) cluster)
+        .updatePIN((DefaultClusterCallback) callback
+        , (Optional<String>)
+        commandArguments.get("oldPIN")
+        , (String)
+        commandArguments.get("newPIN")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        contentControlupdatePINCommandParams
+    );
+    contentControlClusterInteractionInfoMap.put("updatePIN", contentControlupdatePINInteractionInfo);
 
-           , (Optional<Long>)
-             commandArguments.get("endTime")
+    Map<String, CommandParameterInfo> contentControlresetPINCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo contentControlresetPINInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.ContentControlCluster) cluster)
+          .resetPIN((ChipClusters.ContentControlCluster.ResetPINResponseCallback) callback
+            );
+        },
+        () -> new DelegatedContentControlClusterResetPINResponseCallback(),
+        contentControlresetPINCommandParams
+      );
+    contentControlClusterInteractionInfoMap.put("resetPIN", contentControlresetPINInteractionInfo);
 
-           , (Optional<ArrayList<ChipStructs.ChannelClusterChannelInfoStruct>>)
-             commandArguments.get("channelList")
+    Map<String, CommandParameterInfo> contentControlenableCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo contentControlenableInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.ContentControlCluster) cluster)
+        .enable((DefaultClusterCallback) callback
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        contentControlenableCommandParams
+    );
+    contentControlClusterInteractionInfoMap.put("enable", contentControlenableInteractionInfo);
 
-           , (Optional<ChipStructs.ChannelClusterPageTokenStruct>)
-             commandArguments.get("pageToken")
+    Map<String, CommandParameterInfo> contentControldisableCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo contentControldisableInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.ContentControlCluster) cluster)
+        .disable((DefaultClusterCallback) callback
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        contentControldisableCommandParams
+    );
+    contentControlClusterInteractionInfoMap.put("disable", contentControldisableInteractionInfo);
 
-           , (Optional<Long>)
-             commandArguments.get("recordingFlag")
+    Map<String, CommandParameterInfo> contentControladdBonusTimeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-           , (Optional<ArrayList<ChipStructs.ChannelClusterAdditionalInfoStruct>>)
-             commandArguments.get("externalIDList")
+    CommandParameterInfo contentControladdBonusTimePINCodeCommandParameterInfo = new CommandParameterInfo("PINCode", Optional.class, String.class);
+    contentControladdBonusTimeCommandParams.put("PINCode",contentControladdBonusTimePINCodeCommandParameterInfo);
 
-           , (Optional<byte[]>)
-             commandArguments.get("data")
+    CommandParameterInfo contentControladdBonusTimebonusTimeCommandParameterInfo = new CommandParameterInfo("bonusTime", Optional.class, Long.class);
+    contentControladdBonusTimeCommandParams.put("bonusTime",contentControladdBonusTimebonusTimeCommandParameterInfo);
+    InteractionInfo contentControladdBonusTimeInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.ContentControlCluster) cluster)
+        .addBonusTime((DefaultClusterCallback) callback
+        , (Optional<String>)
+        commandArguments.get("PINCode")
+        , (Optional<Long>)
+        commandArguments.get("bonusTime")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        contentControladdBonusTimeCommandParams
+    );
+    contentControlClusterInteractionInfoMap.put("addBonusTime", contentControladdBonusTimeInteractionInfo);
 
-            );
-        },
-        () -> new DelegatedChannelClusterProgramGuideResponseCallback(),
-        channelgetProgramGuideCommandParams
-      );
-    channelClusterInteractionInfoMap.put("getProgramGuide", channelgetProgramGuideInteractionInfo);
+    Map<String, CommandParameterInfo> contentControlsetScreenDailyTimeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, CommandParameterInfo> channelrecordProgramCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo contentControlsetScreenDailyTimescreenTimeCommandParameterInfo = new CommandParameterInfo("screenTime", Long.class, Long.class);
+    contentControlsetScreenDailyTimeCommandParams.put("screenTime",contentControlsetScreenDailyTimescreenTimeCommandParameterInfo);
+    InteractionInfo contentControlsetScreenDailyTimeInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.ContentControlCluster) cluster)
+        .setScreenDailyTime((DefaultClusterCallback) callback
+        , (Long)
+        commandArguments.get("screenTime")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        contentControlsetScreenDailyTimeCommandParams
+    );
+    contentControlClusterInteractionInfoMap.put("setScreenDailyTime", contentControlsetScreenDailyTimeInteractionInfo);
 
-    CommandParameterInfo channelrecordProgramprogramIdentifierCommandParameterInfo = new CommandParameterInfo("programIdentifier", String.class, String.class);
-    channelrecordProgramCommandParams.put("programIdentifier",channelrecordProgramprogramIdentifierCommandParameterInfo);
+    Map<String, CommandParameterInfo> contentControlblockUnratedContentCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo contentControlblockUnratedContentInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.ContentControlCluster) cluster)
+        .blockUnratedContent((DefaultClusterCallback) callback
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        contentControlblockUnratedContentCommandParams
+    );
+    contentControlClusterInteractionInfoMap.put("blockUnratedContent", contentControlblockUnratedContentInteractionInfo);
 
-    CommandParameterInfo channelrecordProgramshouldRecordSeriesCommandParameterInfo = new CommandParameterInfo("shouldRecordSeries", Boolean.class, Boolean.class);
-    channelrecordProgramCommandParams.put("shouldRecordSeries",channelrecordProgramshouldRecordSeriesCommandParameterInfo);
+    Map<String, CommandParameterInfo> contentControlunblockUnratedContentCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo contentControlunblockUnratedContentInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.ContentControlCluster) cluster)
+        .unblockUnratedContent((DefaultClusterCallback) callback
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        contentControlunblockUnratedContentCommandParams
+    );
+    contentControlClusterInteractionInfoMap.put("unblockUnratedContent", contentControlunblockUnratedContentInteractionInfo);
 
+    Map<String, CommandParameterInfo> contentControlsetOnDemandRatingThresholdCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo channelrecordProgramdataCommandParameterInfo = new CommandParameterInfo("data", byte[].class, byte[].class);
-    channelrecordProgramCommandParams.put("data",channelrecordProgramdataCommandParameterInfo);
-    InteractionInfo channelrecordProgramInteractionInfo = new InteractionInfo(
+    CommandParameterInfo contentControlsetOnDemandRatingThresholdratingCommandParameterInfo = new CommandParameterInfo("rating", String.class, String.class);
+    contentControlsetOnDemandRatingThresholdCommandParams.put("rating",contentControlsetOnDemandRatingThresholdratingCommandParameterInfo);
+    InteractionInfo contentControlsetOnDemandRatingThresholdInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ChannelCluster) cluster)
-        .recordProgram((DefaultClusterCallback) callback
+        ((ChipClusters.ContentControlCluster) cluster)
+        .setOnDemandRatingThreshold((DefaultClusterCallback) callback
         , (String)
-        commandArguments.get("programIdentifier")
-        , (Boolean)
-        commandArguments.get("shouldRecordSeries")
-        , (ArrayList<ChipStructs.ChannelClusterAdditionalInfoStruct>)
-        commandArguments.get("externalIDList")
-        , (byte[])
-        commandArguments.get("data")
+        commandArguments.get("rating")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        channelrecordProgramCommandParams
+        contentControlsetOnDemandRatingThresholdCommandParams
     );
-    channelClusterInteractionInfoMap.put("recordProgram", channelrecordProgramInteractionInfo);
-
-    Map<String, CommandParameterInfo> channelcancelRecordProgramCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-
-    CommandParameterInfo channelcancelRecordProgramprogramIdentifierCommandParameterInfo = new CommandParameterInfo("programIdentifier", String.class, String.class);
-    channelcancelRecordProgramCommandParams.put("programIdentifier",channelcancelRecordProgramprogramIdentifierCommandParameterInfo);
-
-    CommandParameterInfo channelcancelRecordProgramshouldRecordSeriesCommandParameterInfo = new CommandParameterInfo("shouldRecordSeries", Boolean.class, Boolean.class);
-    channelcancelRecordProgramCommandParams.put("shouldRecordSeries",channelcancelRecordProgramshouldRecordSeriesCommandParameterInfo);
+    contentControlClusterInteractionInfoMap.put("setOnDemandRatingThreshold", contentControlsetOnDemandRatingThresholdInteractionInfo);
 
+    Map<String, CommandParameterInfo> contentControlsetScheduledContentRatingThresholdCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo channelcancelRecordProgramdataCommandParameterInfo = new CommandParameterInfo("data", byte[].class, byte[].class);
-    channelcancelRecordProgramCommandParams.put("data",channelcancelRecordProgramdataCommandParameterInfo);
-    InteractionInfo channelcancelRecordProgramInteractionInfo = new InteractionInfo(
+    CommandParameterInfo contentControlsetScheduledContentRatingThresholdratingCommandParameterInfo = new CommandParameterInfo("rating", String.class, String.class);
+    contentControlsetScheduledContentRatingThresholdCommandParams.put("rating",contentControlsetScheduledContentRatingThresholdratingCommandParameterInfo);
+    InteractionInfo contentControlsetScheduledContentRatingThresholdInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ChannelCluster) cluster)
-        .cancelRecordProgram((DefaultClusterCallback) callback
+        ((ChipClusters.ContentControlCluster) cluster)
+        .setScheduledContentRatingThreshold((DefaultClusterCallback) callback
         , (String)
-        commandArguments.get("programIdentifier")
-        , (Boolean)
-        commandArguments.get("shouldRecordSeries")
-        , (ArrayList<ChipStructs.ChannelClusterAdditionalInfoStruct>)
-        commandArguments.get("externalIDList")
-        , (byte[])
-        commandArguments.get("data")
+        commandArguments.get("rating")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        channelcancelRecordProgramCommandParams
+        contentControlsetScheduledContentRatingThresholdCommandParams
     );
-    channelClusterInteractionInfoMap.put("cancelRecordProgram", channelcancelRecordProgramInteractionInfo);
+    contentControlClusterInteractionInfoMap.put("setScheduledContentRatingThreshold", contentControlsetScheduledContentRatingThresholdInteractionInfo);
 
-    commandMap.put("channel", channelClusterInteractionInfoMap);
+    commandMap.put("contentControl", contentControlClusterInteractionInfoMap);
 
-    Map<String, InteractionInfo> targetNavigatorClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, InteractionInfo> contentAppObserverClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    Map<String, CommandParameterInfo> targetNavigatornavigateTargetCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> contentAppObservercontentAppMessageCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo targetNavigatornavigateTargettargetCommandParameterInfo = new CommandParameterInfo("target", Integer.class, Integer.class);
-    targetNavigatornavigateTargetCommandParams.put("target",targetNavigatornavigateTargettargetCommandParameterInfo);
+    CommandParameterInfo contentAppObservercontentAppMessagedataCommandParameterInfo = new CommandParameterInfo("data", Optional.class, String.class);
+    contentAppObservercontentAppMessageCommandParams.put("data",contentAppObservercontentAppMessagedataCommandParameterInfo);
 
-    CommandParameterInfo targetNavigatornavigateTargetdataCommandParameterInfo = new CommandParameterInfo("data", Optional.class, String.class);
-    targetNavigatornavigateTargetCommandParams.put("data",targetNavigatornavigateTargetdataCommandParameterInfo);
-    InteractionInfo targetNavigatornavigateTargetInteractionInfo = new InteractionInfo(
+    CommandParameterInfo contentAppObservercontentAppMessageencodingHintCommandParameterInfo = new CommandParameterInfo("encodingHint", String.class, String.class);
+    contentAppObservercontentAppMessageCommandParams.put("encodingHint",contentAppObservercontentAppMessageencodingHintCommandParameterInfo);
+    InteractionInfo contentAppObservercontentAppMessageInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.TargetNavigatorCluster) cluster)
-          .navigateTarget((ChipClusters.TargetNavigatorCluster.NavigateTargetResponseCallback) callback
-           , (Integer)
-             commandArguments.get("target")
-
+        ((ChipClusters.ContentAppObserverCluster) cluster)
+          .contentAppMessage((ChipClusters.ContentAppObserverCluster.ContentAppMessageResponseCallback) callback
            , (Optional<String>)
              commandArguments.get("data")
 
+           , (String)
+             commandArguments.get("encodingHint")
+
             );
         },
-        () -> new DelegatedTargetNavigatorClusterNavigateTargetResponseCallback(),
-        targetNavigatornavigateTargetCommandParams
+        () -> new DelegatedContentAppObserverClusterContentAppMessageResponseCallback(),
+        contentAppObservercontentAppMessageCommandParams
       );
-    targetNavigatorClusterInteractionInfoMap.put("navigateTarget", targetNavigatornavigateTargetInteractionInfo);
+    contentAppObserverClusterInteractionInfoMap.put("contentAppMessage", contentAppObservercontentAppMessageInteractionInfo);
 
-    commandMap.put("targetNavigator", targetNavigatorClusterInteractionInfoMap);
+    commandMap.put("contentAppObserver", contentAppObserverClusterInteractionInfoMap);
 
-    Map<String, InteractionInfo> mediaPlaybackClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, InteractionInfo> cameraAvStreamManagementClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    Map<String, CommandParameterInfo> mediaPlaybackplayCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo mediaPlaybackplayInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.MediaPlaybackCluster) cluster)
-          .play((ChipClusters.MediaPlaybackCluster.PlaybackResponseCallback) callback
-            );
-        },
-        () -> new DelegatedMediaPlaybackClusterPlaybackResponseCallback(),
-        mediaPlaybackplayCommandParams
-      );
-    mediaPlaybackClusterInteractionInfoMap.put("play", mediaPlaybackplayInteractionInfo);
+    Map<String, CommandParameterInfo> cameraAvStreamManagementaudioStreamAllocateCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, CommandParameterInfo> mediaPlaybackpauseCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo mediaPlaybackpauseInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.MediaPlaybackCluster) cluster)
-          .pause((ChipClusters.MediaPlaybackCluster.PlaybackResponseCallback) callback
-            );
-        },
-        () -> new DelegatedMediaPlaybackClusterPlaybackResponseCallback(),
-        mediaPlaybackpauseCommandParams
-      );
-    mediaPlaybackClusterInteractionInfoMap.put("pause", mediaPlaybackpauseInteractionInfo);
+    CommandParameterInfo cameraAvStreamManagementaudioStreamAllocatestreamTypeCommandParameterInfo = new CommandParameterInfo("streamType", Integer.class, Integer.class);
+    cameraAvStreamManagementaudioStreamAllocateCommandParams.put("streamType",cameraAvStreamManagementaudioStreamAllocatestreamTypeCommandParameterInfo);
 
-    Map<String, CommandParameterInfo> mediaPlaybackstopCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo mediaPlaybackstopInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.MediaPlaybackCluster) cluster)
-          .stop((ChipClusters.MediaPlaybackCluster.PlaybackResponseCallback) callback
-            );
-        },
-        () -> new DelegatedMediaPlaybackClusterPlaybackResponseCallback(),
-        mediaPlaybackstopCommandParams
-      );
-    mediaPlaybackClusterInteractionInfoMap.put("stop", mediaPlaybackstopInteractionInfo);
+    CommandParameterInfo cameraAvStreamManagementaudioStreamAllocateaudioCodecCommandParameterInfo = new CommandParameterInfo("audioCodec", Integer.class, Integer.class);
+    cameraAvStreamManagementaudioStreamAllocateCommandParams.put("audioCodec",cameraAvStreamManagementaudioStreamAllocateaudioCodecCommandParameterInfo);
 
-    Map<String, CommandParameterInfo> mediaPlaybackstartOverCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo mediaPlaybackstartOverInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.MediaPlaybackCluster) cluster)
-          .startOver((ChipClusters.MediaPlaybackCluster.PlaybackResponseCallback) callback
-            );
-        },
-        () -> new DelegatedMediaPlaybackClusterPlaybackResponseCallback(),
-        mediaPlaybackstartOverCommandParams
-      );
-    mediaPlaybackClusterInteractionInfoMap.put("startOver", mediaPlaybackstartOverInteractionInfo);
+    CommandParameterInfo cameraAvStreamManagementaudioStreamAllocatechannelCountCommandParameterInfo = new CommandParameterInfo("channelCount", Integer.class, Integer.class);
+    cameraAvStreamManagementaudioStreamAllocateCommandParams.put("channelCount",cameraAvStreamManagementaudioStreamAllocatechannelCountCommandParameterInfo);
 
-    Map<String, CommandParameterInfo> mediaPlaybackpreviousCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo mediaPlaybackpreviousInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.MediaPlaybackCluster) cluster)
-          .previous((ChipClusters.MediaPlaybackCluster.PlaybackResponseCallback) callback
-            );
-        },
-        () -> new DelegatedMediaPlaybackClusterPlaybackResponseCallback(),
-        mediaPlaybackpreviousCommandParams
-      );
-    mediaPlaybackClusterInteractionInfoMap.put("previous", mediaPlaybackpreviousInteractionInfo);
+    CommandParameterInfo cameraAvStreamManagementaudioStreamAllocatesampleRateCommandParameterInfo = new CommandParameterInfo("sampleRate", Long.class, Long.class);
+    cameraAvStreamManagementaudioStreamAllocateCommandParams.put("sampleRate",cameraAvStreamManagementaudioStreamAllocatesampleRateCommandParameterInfo);
 
-    Map<String, CommandParameterInfo> mediaPlaybacknextCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo mediaPlaybacknextInteractionInfo = new InteractionInfo(
+    CommandParameterInfo cameraAvStreamManagementaudioStreamAllocatebitRateCommandParameterInfo = new CommandParameterInfo("bitRate", Long.class, Long.class);
+    cameraAvStreamManagementaudioStreamAllocateCommandParams.put("bitRate",cameraAvStreamManagementaudioStreamAllocatebitRateCommandParameterInfo);
+
+    CommandParameterInfo cameraAvStreamManagementaudioStreamAllocatebitDepthCommandParameterInfo = new CommandParameterInfo("bitDepth", Integer.class, Integer.class);
+    cameraAvStreamManagementaudioStreamAllocateCommandParams.put("bitDepth",cameraAvStreamManagementaudioStreamAllocatebitDepthCommandParameterInfo);
+    InteractionInfo cameraAvStreamManagementaudioStreamAllocateInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.MediaPlaybackCluster) cluster)
-          .next((ChipClusters.MediaPlaybackCluster.PlaybackResponseCallback) callback
-            );
-        },
-        () -> new DelegatedMediaPlaybackClusterPlaybackResponseCallback(),
-        mediaPlaybacknextCommandParams
-      );
-    mediaPlaybackClusterInteractionInfoMap.put("next", mediaPlaybacknextInteractionInfo);
+        ((ChipClusters.CameraAvStreamManagementCluster) cluster)
+          .audioStreamAllocate((ChipClusters.CameraAvStreamManagementCluster.AudioStreamAllocateResponseCallback) callback
+           , (Integer)
+             commandArguments.get("streamType")
 
-    Map<String, CommandParameterInfo> mediaPlaybackrewindCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+           , (Integer)
+             commandArguments.get("audioCodec")
 
-    CommandParameterInfo mediaPlaybackrewindaudioAdvanceUnmutedCommandParameterInfo = new CommandParameterInfo("audioAdvanceUnmuted", Optional.class, Boolean.class);
-    mediaPlaybackrewindCommandParams.put("audioAdvanceUnmuted",mediaPlaybackrewindaudioAdvanceUnmutedCommandParameterInfo);
-    InteractionInfo mediaPlaybackrewindInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.MediaPlaybackCluster) cluster)
-          .rewind((ChipClusters.MediaPlaybackCluster.PlaybackResponseCallback) callback
-           , (Optional<Boolean>)
-             commandArguments.get("audioAdvanceUnmuted")
+           , (Integer)
+             commandArguments.get("channelCount")
 
-            );
-        },
-        () -> new DelegatedMediaPlaybackClusterPlaybackResponseCallback(),
-        mediaPlaybackrewindCommandParams
-      );
-    mediaPlaybackClusterInteractionInfoMap.put("rewind", mediaPlaybackrewindInteractionInfo);
+           , (Long)
+             commandArguments.get("sampleRate")
 
-    Map<String, CommandParameterInfo> mediaPlaybackfastForwardCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+           , (Long)
+             commandArguments.get("bitRate")
 
-    CommandParameterInfo mediaPlaybackfastForwardaudioAdvanceUnmutedCommandParameterInfo = new CommandParameterInfo("audioAdvanceUnmuted", Optional.class, Boolean.class);
-    mediaPlaybackfastForwardCommandParams.put("audioAdvanceUnmuted",mediaPlaybackfastForwardaudioAdvanceUnmutedCommandParameterInfo);
-    InteractionInfo mediaPlaybackfastForwardInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.MediaPlaybackCluster) cluster)
-          .fastForward((ChipClusters.MediaPlaybackCluster.PlaybackResponseCallback) callback
-           , (Optional<Boolean>)
-             commandArguments.get("audioAdvanceUnmuted")
+           , (Integer)
+             commandArguments.get("bitDepth")
 
             );
         },
-        () -> new DelegatedMediaPlaybackClusterPlaybackResponseCallback(),
-        mediaPlaybackfastForwardCommandParams
+        () -> new DelegatedCameraAvStreamManagementClusterAudioStreamAllocateResponseCallback(),
+        cameraAvStreamManagementaudioStreamAllocateCommandParams
       );
-    mediaPlaybackClusterInteractionInfoMap.put("fastForward", mediaPlaybackfastForwardInteractionInfo);
+    cameraAvStreamManagementClusterInteractionInfoMap.put("audioStreamAllocate", cameraAvStreamManagementaudioStreamAllocateInteractionInfo);
 
-    Map<String, CommandParameterInfo> mediaPlaybackskipForwardCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> cameraAvStreamManagementaudioStreamDeallocateCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo mediaPlaybackskipForwarddeltaPositionMillisecondsCommandParameterInfo = new CommandParameterInfo("deltaPositionMilliseconds", Long.class, Long.class);
-    mediaPlaybackskipForwardCommandParams.put("deltaPositionMilliseconds",mediaPlaybackskipForwarddeltaPositionMillisecondsCommandParameterInfo);
-    InteractionInfo mediaPlaybackskipForwardInteractionInfo = new InteractionInfo(
+    CommandParameterInfo cameraAvStreamManagementaudioStreamDeallocateaudioStreamIDCommandParameterInfo = new CommandParameterInfo("audioStreamID", Integer.class, Integer.class);
+    cameraAvStreamManagementaudioStreamDeallocateCommandParams.put("audioStreamID",cameraAvStreamManagementaudioStreamDeallocateaudioStreamIDCommandParameterInfo);
+    InteractionInfo cameraAvStreamManagementaudioStreamDeallocateInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.MediaPlaybackCluster) cluster)
-          .skipForward((ChipClusters.MediaPlaybackCluster.PlaybackResponseCallback) callback
-           , (Long)
-             commandArguments.get("deltaPositionMilliseconds")
+        ((ChipClusters.CameraAvStreamManagementCluster) cluster)
+        .audioStreamDeallocate((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("audioStreamID")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        cameraAvStreamManagementaudioStreamDeallocateCommandParams
+    );
+    cameraAvStreamManagementClusterInteractionInfoMap.put("audioStreamDeallocate", cameraAvStreamManagementaudioStreamDeallocateInteractionInfo);
 
-            );
-        },
-        () -> new DelegatedMediaPlaybackClusterPlaybackResponseCallback(),
-        mediaPlaybackskipForwardCommandParams
-      );
-    mediaPlaybackClusterInteractionInfoMap.put("skipForward", mediaPlaybackskipForwardInteractionInfo);
+    Map<String, CommandParameterInfo> cameraAvStreamManagementvideoStreamAllocateCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, CommandParameterInfo> mediaPlaybackskipBackwardCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo cameraAvStreamManagementvideoStreamAllocatestreamTypeCommandParameterInfo = new CommandParameterInfo("streamType", Integer.class, Integer.class);
+    cameraAvStreamManagementvideoStreamAllocateCommandParams.put("streamType",cameraAvStreamManagementvideoStreamAllocatestreamTypeCommandParameterInfo);
 
-    CommandParameterInfo mediaPlaybackskipBackwarddeltaPositionMillisecondsCommandParameterInfo = new CommandParameterInfo("deltaPositionMilliseconds", Long.class, Long.class);
-    mediaPlaybackskipBackwardCommandParams.put("deltaPositionMilliseconds",mediaPlaybackskipBackwarddeltaPositionMillisecondsCommandParameterInfo);
-    InteractionInfo mediaPlaybackskipBackwardInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.MediaPlaybackCluster) cluster)
-          .skipBackward((ChipClusters.MediaPlaybackCluster.PlaybackResponseCallback) callback
-           , (Long)
-             commandArguments.get("deltaPositionMilliseconds")
+    CommandParameterInfo cameraAvStreamManagementvideoStreamAllocatevideoCodecCommandParameterInfo = new CommandParameterInfo("videoCodec", Integer.class, Integer.class);
+    cameraAvStreamManagementvideoStreamAllocateCommandParams.put("videoCodec",cameraAvStreamManagementvideoStreamAllocatevideoCodecCommandParameterInfo);
 
-            );
-        },
-        () -> new DelegatedMediaPlaybackClusterPlaybackResponseCallback(),
-        mediaPlaybackskipBackwardCommandParams
-      );
-    mediaPlaybackClusterInteractionInfoMap.put("skipBackward", mediaPlaybackskipBackwardInteractionInfo);
+    CommandParameterInfo cameraAvStreamManagementvideoStreamAllocateminFrameRateCommandParameterInfo = new CommandParameterInfo("minFrameRate", Integer.class, Integer.class);
+    cameraAvStreamManagementvideoStreamAllocateCommandParams.put("minFrameRate",cameraAvStreamManagementvideoStreamAllocateminFrameRateCommandParameterInfo);
 
-    Map<String, CommandParameterInfo> mediaPlaybackseekCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo cameraAvStreamManagementvideoStreamAllocatemaxFrameRateCommandParameterInfo = new CommandParameterInfo("maxFrameRate", Integer.class, Integer.class);
+    cameraAvStreamManagementvideoStreamAllocateCommandParams.put("maxFrameRate",cameraAvStreamManagementvideoStreamAllocatemaxFrameRateCommandParameterInfo);
 
-    CommandParameterInfo mediaPlaybackseekpositionCommandParameterInfo = new CommandParameterInfo("position", Long.class, Long.class);
-    mediaPlaybackseekCommandParams.put("position",mediaPlaybackseekpositionCommandParameterInfo);
-    InteractionInfo mediaPlaybackseekInteractionInfo = new InteractionInfo(
+    CommandParameterInfo cameraAvStreamManagementvideoStreamAllocateminResolutionCommandParameterInfo = new CommandParameterInfo("minResolution", Object.class, Object.class);
+    cameraAvStreamManagementvideoStreamAllocateCommandParams.put("minResolution",cameraAvStreamManagementvideoStreamAllocateminResolutionCommandParameterInfo);
+
+    CommandParameterInfo cameraAvStreamManagementvideoStreamAllocatemaxResolutionCommandParameterInfo = new CommandParameterInfo("maxResolution", Object.class, Object.class);
+    cameraAvStreamManagementvideoStreamAllocateCommandParams.put("maxResolution",cameraAvStreamManagementvideoStreamAllocatemaxResolutionCommandParameterInfo);
+
+    CommandParameterInfo cameraAvStreamManagementvideoStreamAllocateminBitRateCommandParameterInfo = new CommandParameterInfo("minBitRate", Long.class, Long.class);
+    cameraAvStreamManagementvideoStreamAllocateCommandParams.put("minBitRate",cameraAvStreamManagementvideoStreamAllocateminBitRateCommandParameterInfo);
+
+    CommandParameterInfo cameraAvStreamManagementvideoStreamAllocatemaxBitRateCommandParameterInfo = new CommandParameterInfo("maxBitRate", Long.class, Long.class);
+    cameraAvStreamManagementvideoStreamAllocateCommandParams.put("maxBitRate",cameraAvStreamManagementvideoStreamAllocatemaxBitRateCommandParameterInfo);
+
+    CommandParameterInfo cameraAvStreamManagementvideoStreamAllocateminFragmentLenCommandParameterInfo = new CommandParameterInfo("minFragmentLen", Integer.class, Integer.class);
+    cameraAvStreamManagementvideoStreamAllocateCommandParams.put("minFragmentLen",cameraAvStreamManagementvideoStreamAllocateminFragmentLenCommandParameterInfo);
+
+    CommandParameterInfo cameraAvStreamManagementvideoStreamAllocatemaxFragmentLenCommandParameterInfo = new CommandParameterInfo("maxFragmentLen", Integer.class, Integer.class);
+    cameraAvStreamManagementvideoStreamAllocateCommandParams.put("maxFragmentLen",cameraAvStreamManagementvideoStreamAllocatemaxFragmentLenCommandParameterInfo);
+    InteractionInfo cameraAvStreamManagementvideoStreamAllocateInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.MediaPlaybackCluster) cluster)
-          .seek((ChipClusters.MediaPlaybackCluster.PlaybackResponseCallback) callback
+        ((ChipClusters.CameraAvStreamManagementCluster) cluster)
+          .videoStreamAllocate((ChipClusters.CameraAvStreamManagementCluster.VideoStreamAllocateResponseCallback) callback
+           , (Integer)
+             commandArguments.get("streamType")
+
+           , (Integer)
+             commandArguments.get("videoCodec")
+
+           , (Integer)
+             commandArguments.get("minFrameRate")
+
+           , (Integer)
+             commandArguments.get("maxFrameRate")
+
+           , (Object)
+             commandArguments.get("minResolution")
+
+           , (Object)
+             commandArguments.get("maxResolution")
+
            , (Long)
-             commandArguments.get("position")
+             commandArguments.get("minBitRate")
+
+           , (Long)
+             commandArguments.get("maxBitRate")
+
+           , (Integer)
+             commandArguments.get("minFragmentLen")
+
+           , (Integer)
+             commandArguments.get("maxFragmentLen")
 
             );
         },
-        () -> new DelegatedMediaPlaybackClusterPlaybackResponseCallback(),
-        mediaPlaybackseekCommandParams
+        () -> new DelegatedCameraAvStreamManagementClusterVideoStreamAllocateResponseCallback(),
+        cameraAvStreamManagementvideoStreamAllocateCommandParams
       );
-    mediaPlaybackClusterInteractionInfoMap.put("seek", mediaPlaybackseekInteractionInfo);
+    cameraAvStreamManagementClusterInteractionInfoMap.put("videoStreamAllocate", cameraAvStreamManagementvideoStreamAllocateInteractionInfo);
 
-    Map<String, CommandParameterInfo> mediaPlaybackactivateAudioTrackCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> cameraAvStreamManagementvideoStreamModifyCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo mediaPlaybackactivateAudioTracktrackIDCommandParameterInfo = new CommandParameterInfo("trackID", String.class, String.class);
-    mediaPlaybackactivateAudioTrackCommandParams.put("trackID",mediaPlaybackactivateAudioTracktrackIDCommandParameterInfo);
+    CommandParameterInfo cameraAvStreamManagementvideoStreamModifyvideoStreamIDCommandParameterInfo = new CommandParameterInfo("videoStreamID", Integer.class, Integer.class);
+    cameraAvStreamManagementvideoStreamModifyCommandParams.put("videoStreamID",cameraAvStreamManagementvideoStreamModifyvideoStreamIDCommandParameterInfo);
 
-    CommandParameterInfo mediaPlaybackactivateAudioTrackaudioOutputIndexCommandParameterInfo = new CommandParameterInfo("audioOutputIndex", Integer.class, Integer.class);
-    mediaPlaybackactivateAudioTrackCommandParams.put("audioOutputIndex",mediaPlaybackactivateAudioTrackaudioOutputIndexCommandParameterInfo);
-    InteractionInfo mediaPlaybackactivateAudioTrackInteractionInfo = new InteractionInfo(
+    CommandParameterInfo cameraAvStreamManagementvideoStreamModifyresolutionCommandParameterInfo = new CommandParameterInfo("resolution", Object.class, Object.class);
+    cameraAvStreamManagementvideoStreamModifyCommandParams.put("resolution",cameraAvStreamManagementvideoStreamModifyresolutionCommandParameterInfo);
+    InteractionInfo cameraAvStreamManagementvideoStreamModifyInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.MediaPlaybackCluster) cluster)
-        .activateAudioTrack((DefaultClusterCallback) callback
-        , (String)
-        commandArguments.get("trackID")
+        ((ChipClusters.CameraAvStreamManagementCluster) cluster)
+        .videoStreamModify((DefaultClusterCallback) callback
         , (Integer)
-        commandArguments.get("audioOutputIndex")
+        commandArguments.get("videoStreamID")
+        , (Object)
+        commandArguments.get("resolution")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        mediaPlaybackactivateAudioTrackCommandParams
+        cameraAvStreamManagementvideoStreamModifyCommandParams
     );
-    mediaPlaybackClusterInteractionInfoMap.put("activateAudioTrack", mediaPlaybackactivateAudioTrackInteractionInfo);
+    cameraAvStreamManagementClusterInteractionInfoMap.put("videoStreamModify", cameraAvStreamManagementvideoStreamModifyInteractionInfo);
 
-    Map<String, CommandParameterInfo> mediaPlaybackactivateTextTrackCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> cameraAvStreamManagementvideoStreamDeallocateCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo mediaPlaybackactivateTextTracktrackIDCommandParameterInfo = new CommandParameterInfo("trackID", String.class, String.class);
-    mediaPlaybackactivateTextTrackCommandParams.put("trackID",mediaPlaybackactivateTextTracktrackIDCommandParameterInfo);
-    InteractionInfo mediaPlaybackactivateTextTrackInteractionInfo = new InteractionInfo(
+    CommandParameterInfo cameraAvStreamManagementvideoStreamDeallocatevideoStreamIDCommandParameterInfo = new CommandParameterInfo("videoStreamID", Integer.class, Integer.class);
+    cameraAvStreamManagementvideoStreamDeallocateCommandParams.put("videoStreamID",cameraAvStreamManagementvideoStreamDeallocatevideoStreamIDCommandParameterInfo);
+    InteractionInfo cameraAvStreamManagementvideoStreamDeallocateInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.MediaPlaybackCluster) cluster)
-        .activateTextTrack((DefaultClusterCallback) callback
-        , (String)
-        commandArguments.get("trackID")
+        ((ChipClusters.CameraAvStreamManagementCluster) cluster)
+        .videoStreamDeallocate((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("videoStreamID")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        mediaPlaybackactivateTextTrackCommandParams
+        cameraAvStreamManagementvideoStreamDeallocateCommandParams
     );
-    mediaPlaybackClusterInteractionInfoMap.put("activateTextTrack", mediaPlaybackactivateTextTrackInteractionInfo);
+    cameraAvStreamManagementClusterInteractionInfoMap.put("videoStreamDeallocate", cameraAvStreamManagementvideoStreamDeallocateInteractionInfo);
 
-    Map<String, CommandParameterInfo> mediaPlaybackdeactivateTextTrackCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo mediaPlaybackdeactivateTextTrackInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> cameraAvStreamManagementsnapshotStreamAllocateCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo cameraAvStreamManagementsnapshotStreamAllocateimageCodecCommandParameterInfo = new CommandParameterInfo("imageCodec", Integer.class, Integer.class);
+    cameraAvStreamManagementsnapshotStreamAllocateCommandParams.put("imageCodec",cameraAvStreamManagementsnapshotStreamAllocateimageCodecCommandParameterInfo);
+
+    CommandParameterInfo cameraAvStreamManagementsnapshotStreamAllocateframeRateCommandParameterInfo = new CommandParameterInfo("frameRate", Integer.class, Integer.class);
+    cameraAvStreamManagementsnapshotStreamAllocateCommandParams.put("frameRate",cameraAvStreamManagementsnapshotStreamAllocateframeRateCommandParameterInfo);
+
+    CommandParameterInfo cameraAvStreamManagementsnapshotStreamAllocatebitRateCommandParameterInfo = new CommandParameterInfo("bitRate", Long.class, Long.class);
+    cameraAvStreamManagementsnapshotStreamAllocateCommandParams.put("bitRate",cameraAvStreamManagementsnapshotStreamAllocatebitRateCommandParameterInfo);
+
+    CommandParameterInfo cameraAvStreamManagementsnapshotStreamAllocateminResolutionCommandParameterInfo = new CommandParameterInfo("minResolution", Object.class, Object.class);
+    cameraAvStreamManagementsnapshotStreamAllocateCommandParams.put("minResolution",cameraAvStreamManagementsnapshotStreamAllocateminResolutionCommandParameterInfo);
+
+    CommandParameterInfo cameraAvStreamManagementsnapshotStreamAllocatemaxResolutionCommandParameterInfo = new CommandParameterInfo("maxResolution", Object.class, Object.class);
+    cameraAvStreamManagementsnapshotStreamAllocateCommandParams.put("maxResolution",cameraAvStreamManagementsnapshotStreamAllocatemaxResolutionCommandParameterInfo);
+
+    CommandParameterInfo cameraAvStreamManagementsnapshotStreamAllocatequalityCommandParameterInfo = new CommandParameterInfo("quality", Integer.class, Integer.class);
+    cameraAvStreamManagementsnapshotStreamAllocateCommandParams.put("quality",cameraAvStreamManagementsnapshotStreamAllocatequalityCommandParameterInfo);
+    InteractionInfo cameraAvStreamManagementsnapshotStreamAllocateInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.MediaPlaybackCluster) cluster)
-        .deactivateTextTrack((DefaultClusterCallback) callback
-        );
-      },
-      () -> new DelegatedDefaultClusterCallback(),
-        mediaPlaybackdeactivateTextTrackCommandParams
-    );
-    mediaPlaybackClusterInteractionInfoMap.put("deactivateTextTrack", mediaPlaybackdeactivateTextTrackInteractionInfo);
+        ((ChipClusters.CameraAvStreamManagementCluster) cluster)
+          .snapshotStreamAllocate((ChipClusters.CameraAvStreamManagementCluster.SnapshotStreamAllocateResponseCallback) callback
+           , (Integer)
+             commandArguments.get("imageCodec")
 
-    commandMap.put("mediaPlayback", mediaPlaybackClusterInteractionInfoMap);
+           , (Integer)
+             commandArguments.get("frameRate")
 
-    Map<String, InteractionInfo> mediaInputClusterInteractionInfoMap = new LinkedHashMap<>();
+           , (Long)
+             commandArguments.get("bitRate")
 
-    Map<String, CommandParameterInfo> mediaInputselectInputCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+           , (Object)
+             commandArguments.get("minResolution")
 
-    CommandParameterInfo mediaInputselectInputindexCommandParameterInfo = new CommandParameterInfo("index", Integer.class, Integer.class);
-    mediaInputselectInputCommandParams.put("index",mediaInputselectInputindexCommandParameterInfo);
-    InteractionInfo mediaInputselectInputInteractionInfo = new InteractionInfo(
+           , (Object)
+             commandArguments.get("maxResolution")
+
+           , (Integer)
+             commandArguments.get("quality")
+
+            );
+        },
+        () -> new DelegatedCameraAvStreamManagementClusterSnapshotStreamAllocateResponseCallback(),
+        cameraAvStreamManagementsnapshotStreamAllocateCommandParams
+      );
+    cameraAvStreamManagementClusterInteractionInfoMap.put("snapshotStreamAllocate", cameraAvStreamManagementsnapshotStreamAllocateInteractionInfo);
+
+    Map<String, CommandParameterInfo> cameraAvStreamManagementsnapshotStreamDeallocateCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo cameraAvStreamManagementsnapshotStreamDeallocatesnapshotStreamIDCommandParameterInfo = new CommandParameterInfo("snapshotStreamID", Integer.class, Integer.class);
+    cameraAvStreamManagementsnapshotStreamDeallocateCommandParams.put("snapshotStreamID",cameraAvStreamManagementsnapshotStreamDeallocatesnapshotStreamIDCommandParameterInfo);
+    InteractionInfo cameraAvStreamManagementsnapshotStreamDeallocateInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.MediaInputCluster) cluster)
-        .selectInput((DefaultClusterCallback) callback
+        ((ChipClusters.CameraAvStreamManagementCluster) cluster)
+        .snapshotStreamDeallocate((DefaultClusterCallback) callback
         , (Integer)
-        commandArguments.get("index")
+        commandArguments.get("snapshotStreamID")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        mediaInputselectInputCommandParams
+        cameraAvStreamManagementsnapshotStreamDeallocateCommandParams
     );
-    mediaInputClusterInteractionInfoMap.put("selectInput", mediaInputselectInputInteractionInfo);
+    cameraAvStreamManagementClusterInteractionInfoMap.put("snapshotStreamDeallocate", cameraAvStreamManagementsnapshotStreamDeallocateInteractionInfo);
 
-    Map<String, CommandParameterInfo> mediaInputshowInputStatusCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo mediaInputshowInputStatusInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> cameraAvStreamManagementsetStreamPriorityCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo cameraAvStreamManagementsetStreamPriorityInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.MediaInputCluster) cluster)
-        .showInputStatus((DefaultClusterCallback) callback
+        ((ChipClusters.CameraAvStreamManagementCluster) cluster)
+        .setStreamPriority((DefaultClusterCallback) callback
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        mediaInputshowInputStatusCommandParams
+        cameraAvStreamManagementsetStreamPriorityCommandParams
     );
-    mediaInputClusterInteractionInfoMap.put("showInputStatus", mediaInputshowInputStatusInteractionInfo);
+    cameraAvStreamManagementClusterInteractionInfoMap.put("setStreamPriority", cameraAvStreamManagementsetStreamPriorityInteractionInfo);
 
-    Map<String, CommandParameterInfo> mediaInputhideInputStatusCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo mediaInputhideInputStatusInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> cameraAvStreamManagementcaptureSnapshotCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo cameraAvStreamManagementcaptureSnapshotsnapshotStreamIDCommandParameterInfo = new CommandParameterInfo("snapshotStreamID", Integer.class, Integer.class);
+    cameraAvStreamManagementcaptureSnapshotCommandParams.put("snapshotStreamID",cameraAvStreamManagementcaptureSnapshotsnapshotStreamIDCommandParameterInfo);
+
+    CommandParameterInfo cameraAvStreamManagementcaptureSnapshotrequestedResolutionCommandParameterInfo = new CommandParameterInfo("requestedResolution", Object.class, Object.class);
+    cameraAvStreamManagementcaptureSnapshotCommandParams.put("requestedResolution",cameraAvStreamManagementcaptureSnapshotrequestedResolutionCommandParameterInfo);
+    InteractionInfo cameraAvStreamManagementcaptureSnapshotInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.MediaInputCluster) cluster)
-        .hideInputStatus((DefaultClusterCallback) callback
+        ((ChipClusters.CameraAvStreamManagementCluster) cluster)
+        .captureSnapshot((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("snapshotStreamID")
+        , (Object)
+        commandArguments.get("requestedResolution")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        mediaInputhideInputStatusCommandParams
+        cameraAvStreamManagementcaptureSnapshotCommandParams
     );
-    mediaInputClusterInteractionInfoMap.put("hideInputStatus", mediaInputhideInputStatusInteractionInfo);
-
-    Map<String, CommandParameterInfo> mediaInputrenameInputCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    cameraAvStreamManagementClusterInteractionInfoMap.put("captureSnapshot", cameraAvStreamManagementcaptureSnapshotInteractionInfo);
 
-    CommandParameterInfo mediaInputrenameInputindexCommandParameterInfo = new CommandParameterInfo("index", Integer.class, Integer.class);
-    mediaInputrenameInputCommandParams.put("index",mediaInputrenameInputindexCommandParameterInfo);
+    Map<String, CommandParameterInfo> cameraAvStreamManagementsetViewportCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo mediaInputrenameInputnameCommandParameterInfo = new CommandParameterInfo("name", String.class, String.class);
-    mediaInputrenameInputCommandParams.put("name",mediaInputrenameInputnameCommandParameterInfo);
-    InteractionInfo mediaInputrenameInputInteractionInfo = new InteractionInfo(
+    InteractionInfo cameraAvStreamManagementsetViewportInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.MediaInputCluster) cluster)
-        .renameInput((DefaultClusterCallback) callback
-        , (Integer)
-        commandArguments.get("index")
-        , (String)
-        commandArguments.get("name")
+        ((ChipClusters.CameraAvStreamManagementCluster) cluster)
+        .setViewport((DefaultClusterCallback) callback
+        , (ChipStructs.CameraAvStreamManagementClusterViewportStruct)
+        commandArguments.get("viewport")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        mediaInputrenameInputCommandParams
+        cameraAvStreamManagementsetViewportCommandParams
     );
-    mediaInputClusterInteractionInfoMap.put("renameInput", mediaInputrenameInputInteractionInfo);
-
-    commandMap.put("mediaInput", mediaInputClusterInteractionInfoMap);
+    cameraAvStreamManagementClusterInteractionInfoMap.put("setViewport", cameraAvStreamManagementsetViewportInteractionInfo);
 
-    Map<String, InteractionInfo> lowPowerClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, CommandParameterInfo> cameraAvStreamManagementsetImageRotationCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, CommandParameterInfo> lowPowersleepCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo lowPowersleepInteractionInfo = new InteractionInfo(
+    CommandParameterInfo cameraAvStreamManagementsetImageRotationangleCommandParameterInfo = new CommandParameterInfo("angle", Integer.class, Integer.class);
+    cameraAvStreamManagementsetImageRotationCommandParams.put("angle",cameraAvStreamManagementsetImageRotationangleCommandParameterInfo);
+    InteractionInfo cameraAvStreamManagementsetImageRotationInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.LowPowerCluster) cluster)
-        .sleep((DefaultClusterCallback) callback
+        ((ChipClusters.CameraAvStreamManagementCluster) cluster)
+        .setImageRotation((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("angle")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        lowPowersleepCommandParams
+        cameraAvStreamManagementsetImageRotationCommandParams
     );
-    lowPowerClusterInteractionInfoMap.put("sleep", lowPowersleepInteractionInfo);
-
-    commandMap.put("lowPower", lowPowerClusterInteractionInfoMap);
-
-    Map<String, InteractionInfo> keypadInputClusterInteractionInfoMap = new LinkedHashMap<>();
+    cameraAvStreamManagementClusterInteractionInfoMap.put("setImageRotation", cameraAvStreamManagementsetImageRotationInteractionInfo);
 
-    Map<String, CommandParameterInfo> keypadInputsendKeyCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> cameraAvStreamManagementsetImageFlipHorizontalCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo keypadInputsendKeykeyCodeCommandParameterInfo = new CommandParameterInfo("keyCode", Integer.class, Integer.class);
-    keypadInputsendKeyCommandParams.put("keyCode",keypadInputsendKeykeyCodeCommandParameterInfo);
-    InteractionInfo keypadInputsendKeyInteractionInfo = new InteractionInfo(
+    CommandParameterInfo cameraAvStreamManagementsetImageFlipHorizontalonOffCommandParameterInfo = new CommandParameterInfo("onOff", Boolean.class, Boolean.class);
+    cameraAvStreamManagementsetImageFlipHorizontalCommandParams.put("onOff",cameraAvStreamManagementsetImageFlipHorizontalonOffCommandParameterInfo);
+    InteractionInfo cameraAvStreamManagementsetImageFlipHorizontalInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.KeypadInputCluster) cluster)
-          .sendKey((ChipClusters.KeypadInputCluster.SendKeyResponseCallback) callback
-           , (Integer)
-             commandArguments.get("keyCode")
-
-            );
-        },
-        () -> new DelegatedKeypadInputClusterSendKeyResponseCallback(),
-        keypadInputsendKeyCommandParams
-      );
-    keypadInputClusterInteractionInfoMap.put("sendKey", keypadInputsendKeyInteractionInfo);
-
-    commandMap.put("keypadInput", keypadInputClusterInteractionInfoMap);
-
-    Map<String, InteractionInfo> contentLauncherClusterInteractionInfoMap = new LinkedHashMap<>();
-
-    Map<String, CommandParameterInfo> contentLauncherlaunchContentCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-
-
-    CommandParameterInfo contentLauncherlaunchContentautoPlayCommandParameterInfo = new CommandParameterInfo("autoPlay", Boolean.class, Boolean.class);
-    contentLauncherlaunchContentCommandParams.put("autoPlay",contentLauncherlaunchContentautoPlayCommandParameterInfo);
-
-    CommandParameterInfo contentLauncherlaunchContentdataCommandParameterInfo = new CommandParameterInfo("data", Optional.class, String.class);
-    contentLauncherlaunchContentCommandParams.put("data",contentLauncherlaunchContentdataCommandParameterInfo);
+        ((ChipClusters.CameraAvStreamManagementCluster) cluster)
+        .setImageFlipHorizontal((DefaultClusterCallback) callback
+        , (Boolean)
+        commandArguments.get("onOff")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        cameraAvStreamManagementsetImageFlipHorizontalCommandParams
+    );
+    cameraAvStreamManagementClusterInteractionInfoMap.put("setImageFlipHorizontal", cameraAvStreamManagementsetImageFlipHorizontalInteractionInfo);
 
+    Map<String, CommandParameterInfo> cameraAvStreamManagementsetImageFlipVerticalCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo contentLauncherlaunchContentuseCurrentContextCommandParameterInfo = new CommandParameterInfo("useCurrentContext", Optional.class, Boolean.class);
-    contentLauncherlaunchContentCommandParams.put("useCurrentContext",contentLauncherlaunchContentuseCurrentContextCommandParameterInfo);
-    InteractionInfo contentLauncherlaunchContentInteractionInfo = new InteractionInfo(
+    CommandParameterInfo cameraAvStreamManagementsetImageFlipVerticalonOffCommandParameterInfo = new CommandParameterInfo("onOff", Boolean.class, Boolean.class);
+    cameraAvStreamManagementsetImageFlipVerticalCommandParams.put("onOff",cameraAvStreamManagementsetImageFlipVerticalonOffCommandParameterInfo);
+    InteractionInfo cameraAvStreamManagementsetImageFlipVerticalInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ContentLauncherCluster) cluster)
-          .launchContent((ChipClusters.ContentLauncherCluster.LauncherResponseCallback) callback
-           , (ChipStructs.ContentLauncherClusterContentSearchStruct)
-             commandArguments.get("search")
+        ((ChipClusters.CameraAvStreamManagementCluster) cluster)
+        .setImageFlipVertical((DefaultClusterCallback) callback
+        , (Boolean)
+        commandArguments.get("onOff")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        cameraAvStreamManagementsetImageFlipVerticalCommandParams
+    );
+    cameraAvStreamManagementClusterInteractionInfoMap.put("setImageFlipVertical", cameraAvStreamManagementsetImageFlipVerticalInteractionInfo);
 
-           , (Boolean)
-             commandArguments.get("autoPlay")
+    commandMap.put("cameraAvStreamManagement", cameraAvStreamManagementClusterInteractionInfoMap);
 
-           , (Optional<String>)
-             commandArguments.get("data")
+    Map<String, InteractionInfo> cameraAvSettingsUserLevelManagementClusterInteractionInfoMap = new LinkedHashMap<>();
 
-           , (Optional<ChipStructs.ContentLauncherClusterPlaybackPreferencesStruct>)
-             commandArguments.get("playbackPreferences")
+    Map<String, CommandParameterInfo> cameraAvSettingsUserLevelManagementmptzSetCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-           , (Optional<Boolean>)
-             commandArguments.get("useCurrentContext")
 
-            );
-        },
-        () -> new DelegatedContentLauncherClusterLauncherResponseCallback(),
-        contentLauncherlaunchContentCommandParams
-      );
-    contentLauncherClusterInteractionInfoMap.put("launchContent", contentLauncherlaunchContentInteractionInfo);
+    CommandParameterInfo cameraAvSettingsUserLevelManagementmptzSetpresetIDCommandParameterInfo = new CommandParameterInfo("presetID", Optional.class, Integer.class);
+    cameraAvSettingsUserLevelManagementmptzSetCommandParams.put("presetID",cameraAvSettingsUserLevelManagementmptzSetpresetIDCommandParameterInfo);
+    InteractionInfo cameraAvSettingsUserLevelManagementmptzSetInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.CameraAvSettingsUserLevelManagementCluster) cluster)
+        .mptzSet((DefaultClusterCallback) callback
+        , (Optional<ChipStructs.CameraAvSettingsUserLevelManagementClusterMPTZStruct>)
+        commandArguments.get("newPTZ")
+        , (Optional<Integer>)
+        commandArguments.get("presetID")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        cameraAvSettingsUserLevelManagementmptzSetCommandParams
+    );
+    cameraAvSettingsUserLevelManagementClusterInteractionInfoMap.put("mptzSet", cameraAvSettingsUserLevelManagementmptzSetInteractionInfo);
 
-    Map<String, CommandParameterInfo> contentLauncherlaunchURLCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> cameraAvSettingsUserLevelManagementmptzRelativeMoveCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo contentLauncherlaunchURLcontentURLCommandParameterInfo = new CommandParameterInfo("contentURL", String.class, String.class);
-    contentLauncherlaunchURLCommandParams.put("contentURL",contentLauncherlaunchURLcontentURLCommandParameterInfo);
+    CommandParameterInfo cameraAvSettingsUserLevelManagementmptzRelativeMovepanCommandParameterInfo = new CommandParameterInfo("pan", Integer.class, Integer.class);
+    cameraAvSettingsUserLevelManagementmptzRelativeMoveCommandParams.put("pan",cameraAvSettingsUserLevelManagementmptzRelativeMovepanCommandParameterInfo);
 
-    CommandParameterInfo contentLauncherlaunchURLdisplayStringCommandParameterInfo = new CommandParameterInfo("displayString", Optional.class, String.class);
-    contentLauncherlaunchURLCommandParams.put("displayString",contentLauncherlaunchURLdisplayStringCommandParameterInfo);
+    CommandParameterInfo cameraAvSettingsUserLevelManagementmptzRelativeMovetiltCommandParameterInfo = new CommandParameterInfo("tilt", Integer.class, Integer.class);
+    cameraAvSettingsUserLevelManagementmptzRelativeMoveCommandParams.put("tilt",cameraAvSettingsUserLevelManagementmptzRelativeMovetiltCommandParameterInfo);
 
-    InteractionInfo contentLauncherlaunchURLInteractionInfo = new InteractionInfo(
+    CommandParameterInfo cameraAvSettingsUserLevelManagementmptzRelativeMovezoomCommandParameterInfo = new CommandParameterInfo("zoom", Integer.class, Integer.class);
+    cameraAvSettingsUserLevelManagementmptzRelativeMoveCommandParams.put("zoom",cameraAvSettingsUserLevelManagementmptzRelativeMovezoomCommandParameterInfo);
+    InteractionInfo cameraAvSettingsUserLevelManagementmptzRelativeMoveInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ContentLauncherCluster) cluster)
-          .launchURL((ChipClusters.ContentLauncherCluster.LauncherResponseCallback) callback
-           , (String)
-             commandArguments.get("contentURL")
-
-           , (Optional<String>)
-             commandArguments.get("displayString")
-
-           , (Optional<ChipStructs.ContentLauncherClusterBrandingInformationStruct>)
-             commandArguments.get("brandingInformation")
-
-            );
-        },
-        () -> new DelegatedContentLauncherClusterLauncherResponseCallback(),
-        contentLauncherlaunchURLCommandParams
-      );
-    contentLauncherClusterInteractionInfoMap.put("launchURL", contentLauncherlaunchURLInteractionInfo);
+        ((ChipClusters.CameraAvSettingsUserLevelManagementCluster) cluster)
+        .mptzRelativeMove((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("pan")
+        , (Integer)
+        commandArguments.get("tilt")
+        , (Integer)
+        commandArguments.get("zoom")
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        cameraAvSettingsUserLevelManagementmptzRelativeMoveCommandParams
+    );
+    cameraAvSettingsUserLevelManagementClusterInteractionInfoMap.put("mptzRelativeMove", cameraAvSettingsUserLevelManagementmptzRelativeMoveInteractionInfo);
 
-    commandMap.put("contentLauncher", contentLauncherClusterInteractionInfoMap);
+    Map<String, CommandParameterInfo> cameraAvSettingsUserLevelManagementsetAsPresetCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo cameraAvSettingsUserLevelManagementsetAsPresetInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.CameraAvSettingsUserLevelManagementCluster) cluster)
+        .setAsPreset((DefaultClusterCallback) callback
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        cameraAvSettingsUserLevelManagementsetAsPresetCommandParams
+    );
+    cameraAvSettingsUserLevelManagementClusterInteractionInfoMap.put("setAsPreset", cameraAvSettingsUserLevelManagementsetAsPresetInteractionInfo);
 
-    Map<String, InteractionInfo> audioOutputClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, CommandParameterInfo> cameraAvSettingsUserLevelManagementdptzSetViewportCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    Map<String, CommandParameterInfo> audioOutputselectOutputCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo cameraAvSettingsUserLevelManagementdptzSetViewportvideoStreamIDCommandParameterInfo = new CommandParameterInfo("videoStreamID", Integer.class, Integer.class);
+    cameraAvSettingsUserLevelManagementdptzSetViewportCommandParams.put("videoStreamID",cameraAvSettingsUserLevelManagementdptzSetViewportvideoStreamIDCommandParameterInfo);
 
-    CommandParameterInfo audioOutputselectOutputindexCommandParameterInfo = new CommandParameterInfo("index", Integer.class, Integer.class);
-    audioOutputselectOutputCommandParams.put("index",audioOutputselectOutputindexCommandParameterInfo);
-    InteractionInfo audioOutputselectOutputInteractionInfo = new InteractionInfo(
+    InteractionInfo cameraAvSettingsUserLevelManagementdptzSetViewportInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.AudioOutputCluster) cluster)
-        .selectOutput((DefaultClusterCallback) callback
+        ((ChipClusters.CameraAvSettingsUserLevelManagementCluster) cluster)
+        .dptzSetViewport((DefaultClusterCallback) callback
         , (Integer)
-        commandArguments.get("index")
+        commandArguments.get("videoStreamID")
+        , (ChipStructs.CameraAvSettingsUserLevelManagementClusterViewportStruct)
+        commandArguments.get("viewport")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        audioOutputselectOutputCommandParams
+        cameraAvSettingsUserLevelManagementdptzSetViewportCommandParams
     );
-    audioOutputClusterInteractionInfoMap.put("selectOutput", audioOutputselectOutputInteractionInfo);
+    cameraAvSettingsUserLevelManagementClusterInteractionInfoMap.put("dptzSetViewport", cameraAvSettingsUserLevelManagementdptzSetViewportInteractionInfo);
 
-    Map<String, CommandParameterInfo> audioOutputrenameOutputCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> cameraAvSettingsUserLevelManagementdptzRelativeMoveCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo audioOutputrenameOutputindexCommandParameterInfo = new CommandParameterInfo("index", Integer.class, Integer.class);
-    audioOutputrenameOutputCommandParams.put("index",audioOutputrenameOutputindexCommandParameterInfo);
+    CommandParameterInfo cameraAvSettingsUserLevelManagementdptzRelativeMovevideoStreamIDCommandParameterInfo = new CommandParameterInfo("videoStreamID", Integer.class, Integer.class);
+    cameraAvSettingsUserLevelManagementdptzRelativeMoveCommandParams.put("videoStreamID",cameraAvSettingsUserLevelManagementdptzRelativeMovevideoStreamIDCommandParameterInfo);
 
-    CommandParameterInfo audioOutputrenameOutputnameCommandParameterInfo = new CommandParameterInfo("name", String.class, String.class);
-    audioOutputrenameOutputCommandParams.put("name",audioOutputrenameOutputnameCommandParameterInfo);
-    InteractionInfo audioOutputrenameOutputInteractionInfo = new InteractionInfo(
+    CommandParameterInfo cameraAvSettingsUserLevelManagementdptzRelativeMovepanCommandParameterInfo = new CommandParameterInfo("pan", Integer.class, Integer.class);
+    cameraAvSettingsUserLevelManagementdptzRelativeMoveCommandParams.put("pan",cameraAvSettingsUserLevelManagementdptzRelativeMovepanCommandParameterInfo);
+
+    CommandParameterInfo cameraAvSettingsUserLevelManagementdptzRelativeMovetiltCommandParameterInfo = new CommandParameterInfo("tilt", Integer.class, Integer.class);
+    cameraAvSettingsUserLevelManagementdptzRelativeMoveCommandParams.put("tilt",cameraAvSettingsUserLevelManagementdptzRelativeMovetiltCommandParameterInfo);
+
+    CommandParameterInfo cameraAvSettingsUserLevelManagementdptzRelativeMovezoomCommandParameterInfo = new CommandParameterInfo("zoom", Integer.class, Integer.class);
+    cameraAvSettingsUserLevelManagementdptzRelativeMoveCommandParams.put("zoom",cameraAvSettingsUserLevelManagementdptzRelativeMovezoomCommandParameterInfo);
+    InteractionInfo cameraAvSettingsUserLevelManagementdptzRelativeMoveInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.AudioOutputCluster) cluster)
-        .renameOutput((DefaultClusterCallback) callback
+        ((ChipClusters.CameraAvSettingsUserLevelManagementCluster) cluster)
+        .dptzRelativeMove((DefaultClusterCallback) callback
         , (Integer)
-        commandArguments.get("index")
-        , (String)
-        commandArguments.get("name")
+        commandArguments.get("videoStreamID")
+        , (Integer)
+        commandArguments.get("pan")
+        , (Integer)
+        commandArguments.get("tilt")
+        , (Integer)
+        commandArguments.get("zoom")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        audioOutputrenameOutputCommandParams
+        cameraAvSettingsUserLevelManagementdptzRelativeMoveCommandParams
     );
-    audioOutputClusterInteractionInfoMap.put("renameOutput", audioOutputrenameOutputInteractionInfo);
+    cameraAvSettingsUserLevelManagementClusterInteractionInfoMap.put("dptzRelativeMove", cameraAvSettingsUserLevelManagementdptzRelativeMoveInteractionInfo);
 
-    commandMap.put("audioOutput", audioOutputClusterInteractionInfoMap);
+    commandMap.put("cameraAvSettingsUserLevelManagement", cameraAvSettingsUserLevelManagementClusterInteractionInfoMap);
 
-    Map<String, InteractionInfo> applicationLauncherClusterInteractionInfoMap = new LinkedHashMap<>();
+    Map<String, InteractionInfo> webRTCTransportProviderClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    Map<String, CommandParameterInfo> applicationLauncherlaunchAppCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> webRTCTransportProviderwebRTCSolicitOfferCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
+    CommandParameterInfo webRTCTransportProviderwebRTCSolicitOfferstreamTypeCommandParameterInfo = new CommandParameterInfo("streamType", Integer.class, Integer.class);
+    webRTCTransportProviderwebRTCSolicitOfferCommandParams.put("streamType",webRTCTransportProviderwebRTCSolicitOfferstreamTypeCommandParameterInfo);
 
-    CommandParameterInfo applicationLauncherlaunchAppdataCommandParameterInfo = new CommandParameterInfo("data", Optional.class, byte[].class);
-    applicationLauncherlaunchAppCommandParams.put("data",applicationLauncherlaunchAppdataCommandParameterInfo);
-    InteractionInfo applicationLauncherlaunchAppInteractionInfo = new InteractionInfo(
+    CommandParameterInfo webRTCTransportProviderwebRTCSolicitOffervideoStreamIDCommandParameterInfo = new CommandParameterInfo("videoStreamID", Optional.class, Integer.class);
+    webRTCTransportProviderwebRTCSolicitOfferCommandParams.put("videoStreamID",webRTCTransportProviderwebRTCSolicitOffervideoStreamIDCommandParameterInfo);
+
+    CommandParameterInfo webRTCTransportProviderwebRTCSolicitOfferaudioStreamIDCommandParameterInfo = new CommandParameterInfo("audioStreamID", Optional.class, Integer.class);
+    webRTCTransportProviderwebRTCSolicitOfferCommandParams.put("audioStreamID",webRTCTransportProviderwebRTCSolicitOfferaudioStreamIDCommandParameterInfo);
+
+
+    CommandParameterInfo webRTCTransportProviderwebRTCSolicitOfferICETransportPolicyCommandParameterInfo = new CommandParameterInfo("ICETransportPolicy", Optional.class, String.class);
+    webRTCTransportProviderwebRTCSolicitOfferCommandParams.put("ICETransportPolicy",webRTCTransportProviderwebRTCSolicitOfferICETransportPolicyCommandParameterInfo);
+
+    CommandParameterInfo webRTCTransportProviderwebRTCSolicitOffermetadataOptionsCommandParameterInfo = new CommandParameterInfo("metadataOptions", Optional.class, Integer.class);
+    webRTCTransportProviderwebRTCSolicitOfferCommandParams.put("metadataOptions",webRTCTransportProviderwebRTCSolicitOffermetadataOptionsCommandParameterInfo);
+    InteractionInfo webRTCTransportProviderwebRTCSolicitOfferInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ApplicationLauncherCluster) cluster)
-          .launchApp((ChipClusters.ApplicationLauncherCluster.LauncherResponseCallback) callback
-           , (Optional<ChipStructs.ApplicationLauncherClusterApplicationStruct>)
-             commandArguments.get("application")
+        ((ChipClusters.WebRTCTransportProviderCluster) cluster)
+          .webRTCSolicitOffer((ChipClusters.WebRTCTransportProviderCluster.WebRTCSolicitOfferResponseCallback) callback
+           , (Integer)
+             commandArguments.get("streamType")
 
-           , (Optional<byte[]>)
-             commandArguments.get("data")
+           , (Optional<Integer>)
+             commandArguments.get("videoStreamID")
 
-            );
-        },
-        () -> new DelegatedApplicationLauncherClusterLauncherResponseCallback(),
-        applicationLauncherlaunchAppCommandParams
-      );
-    applicationLauncherClusterInteractionInfoMap.put("launchApp", applicationLauncherlaunchAppInteractionInfo);
+           , (Optional<Integer>)
+             commandArguments.get("audioStreamID")
 
-    Map<String, CommandParameterInfo> applicationLauncherstopAppCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+           , (Optional<ArrayList<ChipStructs.WebRTCTransportProviderClusterICEServerStruct>>)
+             commandArguments.get("ICEServers")
 
-    InteractionInfo applicationLauncherstopAppInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ApplicationLauncherCluster) cluster)
-          .stopApp((ChipClusters.ApplicationLauncherCluster.LauncherResponseCallback) callback
-           , (Optional<ChipStructs.ApplicationLauncherClusterApplicationStruct>)
-             commandArguments.get("application")
+           , (Optional<String>)
+             commandArguments.get("ICETransportPolicy")
+
+           , (Optional<Integer>)
+             commandArguments.get("metadataOptions")
 
             );
         },
-        () -> new DelegatedApplicationLauncherClusterLauncherResponseCallback(),
-        applicationLauncherstopAppCommandParams
+        () -> new DelegatedWebRTCTransportProviderClusterWebRTCSolicitOfferResponseCallback(),
+        webRTCTransportProviderwebRTCSolicitOfferCommandParams
       );
-    applicationLauncherClusterInteractionInfoMap.put("stopApp", applicationLauncherstopAppInteractionInfo);
+    webRTCTransportProviderClusterInteractionInfoMap.put("webRTCSolicitOffer", webRTCTransportProviderwebRTCSolicitOfferInteractionInfo);
 
-    Map<String, CommandParameterInfo> applicationLauncherhideAppCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> webRTCTransportProviderwebRTCProvideOfferCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    InteractionInfo applicationLauncherhideAppInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ApplicationLauncherCluster) cluster)
-          .hideApp((ChipClusters.ApplicationLauncherCluster.LauncherResponseCallback) callback
-           , (Optional<ChipStructs.ApplicationLauncherClusterApplicationStruct>)
-             commandArguments.get("application")
+    CommandParameterInfo webRTCTransportProviderwebRTCProvideOfferwebRTCSessionIDCommandParameterInfo = new CommandParameterInfo("webRTCSessionID", Integer.class, Integer.class);
+    webRTCTransportProviderwebRTCProvideOfferCommandParams.put("webRTCSessionID",webRTCTransportProviderwebRTCProvideOfferwebRTCSessionIDCommandParameterInfo);
 
-            );
-        },
-        () -> new DelegatedApplicationLauncherClusterLauncherResponseCallback(),
-        applicationLauncherhideAppCommandParams
-      );
-    applicationLauncherClusterInteractionInfoMap.put("hideApp", applicationLauncherhideAppInteractionInfo);
+    CommandParameterInfo webRTCTransportProviderwebRTCProvideOffersdpCommandParameterInfo = new CommandParameterInfo("sdp", String.class, String.class);
+    webRTCTransportProviderwebRTCProvideOfferCommandParams.put("sdp",webRTCTransportProviderwebRTCProvideOffersdpCommandParameterInfo);
 
-    commandMap.put("applicationLauncher", applicationLauncherClusterInteractionInfoMap);
+    CommandParameterInfo webRTCTransportProviderwebRTCProvideOfferstreamTypeCommandParameterInfo = new CommandParameterInfo("streamType", Integer.class, Integer.class);
+    webRTCTransportProviderwebRTCProvideOfferCommandParams.put("streamType",webRTCTransportProviderwebRTCProvideOfferstreamTypeCommandParameterInfo);
 
-    Map<String, InteractionInfo> applicationBasicClusterInteractionInfoMap = new LinkedHashMap<>();
+    CommandParameterInfo webRTCTransportProviderwebRTCProvideOffervideoStreamIDCommandParameterInfo = new CommandParameterInfo("videoStreamID", Optional.class, Integer.class);
+    webRTCTransportProviderwebRTCProvideOfferCommandParams.put("videoStreamID",webRTCTransportProviderwebRTCProvideOffervideoStreamIDCommandParameterInfo);
 
-    commandMap.put("applicationBasic", applicationBasicClusterInteractionInfoMap);
+    CommandParameterInfo webRTCTransportProviderwebRTCProvideOfferaudioStreamIDCommandParameterInfo = new CommandParameterInfo("audioStreamID", Optional.class, Integer.class);
+    webRTCTransportProviderwebRTCProvideOfferCommandParams.put("audioStreamID",webRTCTransportProviderwebRTCProvideOfferaudioStreamIDCommandParameterInfo);
 
-    Map<String, InteractionInfo> accountLoginClusterInteractionInfoMap = new LinkedHashMap<>();
 
-    Map<String, CommandParameterInfo> accountLogingetSetupPINCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo webRTCTransportProviderwebRTCProvideOfferICETransportPolicyCommandParameterInfo = new CommandParameterInfo("ICETransportPolicy", Optional.class, String.class);
+    webRTCTransportProviderwebRTCProvideOfferCommandParams.put("ICETransportPolicy",webRTCTransportProviderwebRTCProvideOfferICETransportPolicyCommandParameterInfo);
 
-    CommandParameterInfo accountLogingetSetupPINtempAccountIdentifierCommandParameterInfo = new CommandParameterInfo("tempAccountIdentifier", String.class, String.class);
-    accountLogingetSetupPINCommandParams.put("tempAccountIdentifier",accountLogingetSetupPINtempAccountIdentifierCommandParameterInfo);
-    InteractionInfo accountLogingetSetupPINInteractionInfo = new InteractionInfo(
+    CommandParameterInfo webRTCTransportProviderwebRTCProvideOffermetadataOptionsCommandParameterInfo = new CommandParameterInfo("metadataOptions", Optional.class, Integer.class);
+    webRTCTransportProviderwebRTCProvideOfferCommandParams.put("metadataOptions",webRTCTransportProviderwebRTCProvideOffermetadataOptionsCommandParameterInfo);
+    InteractionInfo webRTCTransportProviderwebRTCProvideOfferInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.AccountLoginCluster) cluster)
-          .getSetupPIN((ChipClusters.AccountLoginCluster.GetSetupPINResponseCallback) callback
+        ((ChipClusters.WebRTCTransportProviderCluster) cluster)
+          .webRTCProvideOffer((ChipClusters.WebRTCTransportProviderCluster.WebRTCProvideOfferResponseCallback) callback
+           , (Integer)
+             commandArguments.get("webRTCSessionID")
+
            , (String)
-             commandArguments.get("tempAccountIdentifier")
+             commandArguments.get("sdp")
 
-            , 10000);
+           , (Integer)
+             commandArguments.get("streamType")
+
+           , (Optional<Integer>)
+             commandArguments.get("videoStreamID")
+
+           , (Optional<Integer>)
+             commandArguments.get("audioStreamID")
+
+           , (Optional<ArrayList<ChipStructs.WebRTCTransportProviderClusterICEServerStruct>>)
+             commandArguments.get("ICEServers")
+
+           , (Optional<String>)
+             commandArguments.get("ICETransportPolicy")
+
+           , (Optional<Integer>)
+             commandArguments.get("metadataOptions")
+
+            );
         },
-        () -> new DelegatedAccountLoginClusterGetSetupPINResponseCallback(),
-        accountLogingetSetupPINCommandParams
+        () -> new DelegatedWebRTCTransportProviderClusterWebRTCProvideOfferResponseCallback(),
+        webRTCTransportProviderwebRTCProvideOfferCommandParams
       );
-    accountLoginClusterInteractionInfoMap.put("getSetupPIN", accountLogingetSetupPINInteractionInfo);
+    webRTCTransportProviderClusterInteractionInfoMap.put("webRTCProvideOffer", webRTCTransportProviderwebRTCProvideOfferInteractionInfo);
 
-    Map<String, CommandParameterInfo> accountLoginloginCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-
-    CommandParameterInfo accountLoginlogintempAccountIdentifierCommandParameterInfo = new CommandParameterInfo("tempAccountIdentifier", String.class, String.class);
-    accountLoginloginCommandParams.put("tempAccountIdentifier",accountLoginlogintempAccountIdentifierCommandParameterInfo);
+    Map<String, CommandParameterInfo> webRTCTransportProviderwebRTCProvideAnswerCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo accountLoginloginsetupPINCommandParameterInfo = new CommandParameterInfo("setupPIN", String.class, String.class);
-    accountLoginloginCommandParams.put("setupPIN",accountLoginloginsetupPINCommandParameterInfo);
+    CommandParameterInfo webRTCTransportProviderwebRTCProvideAnswerwebRTCSessionIDCommandParameterInfo = new CommandParameterInfo("webRTCSessionID", Integer.class, Integer.class);
+    webRTCTransportProviderwebRTCProvideAnswerCommandParams.put("webRTCSessionID",webRTCTransportProviderwebRTCProvideAnswerwebRTCSessionIDCommandParameterInfo);
 
-    CommandParameterInfo accountLoginloginnodeCommandParameterInfo = new CommandParameterInfo("node", Optional.class, Long.class);
-    accountLoginloginCommandParams.put("node",accountLoginloginnodeCommandParameterInfo);
-    InteractionInfo accountLoginloginInteractionInfo = new InteractionInfo(
+    CommandParameterInfo webRTCTransportProviderwebRTCProvideAnswersdpCommandParameterInfo = new CommandParameterInfo("sdp", String.class, String.class);
+    webRTCTransportProviderwebRTCProvideAnswerCommandParams.put("sdp",webRTCTransportProviderwebRTCProvideAnswersdpCommandParameterInfo);
+    InteractionInfo webRTCTransportProviderwebRTCProvideAnswerInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.AccountLoginCluster) cluster)
-        .login((DefaultClusterCallback) callback
-        , (String)
-        commandArguments.get("tempAccountIdentifier")
+        ((ChipClusters.WebRTCTransportProviderCluster) cluster)
+        .webRTCProvideAnswer((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("webRTCSessionID")
         , (String)
-        commandArguments.get("setupPIN")
-        , (Optional<Long>)
-        commandArguments.get("node"), 10000
+        commandArguments.get("sdp")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        accountLoginloginCommandParams
+        webRTCTransportProviderwebRTCProvideAnswerCommandParams
     );
-    accountLoginClusterInteractionInfoMap.put("login", accountLoginloginInteractionInfo);
+    webRTCTransportProviderClusterInteractionInfoMap.put("webRTCProvideAnswer", webRTCTransportProviderwebRTCProvideAnswerInteractionInfo);
 
-    Map<String, CommandParameterInfo> accountLoginlogoutCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> webRTCTransportProviderwebRTCProvideICECandidateCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo accountLoginlogoutnodeCommandParameterInfo = new CommandParameterInfo("node", Optional.class, Long.class);
-    accountLoginlogoutCommandParams.put("node",accountLoginlogoutnodeCommandParameterInfo);
-    InteractionInfo accountLoginlogoutInteractionInfo = new InteractionInfo(
+    CommandParameterInfo webRTCTransportProviderwebRTCProvideICECandidatewebRTCSessionIDCommandParameterInfo = new CommandParameterInfo("webRTCSessionID", Integer.class, Integer.class);
+    webRTCTransportProviderwebRTCProvideICECandidateCommandParams.put("webRTCSessionID",webRTCTransportProviderwebRTCProvideICECandidatewebRTCSessionIDCommandParameterInfo);
+
+    CommandParameterInfo webRTCTransportProviderwebRTCProvideICECandidateICECandidateCommandParameterInfo = new CommandParameterInfo("ICECandidate", String.class, String.class);
+    webRTCTransportProviderwebRTCProvideICECandidateCommandParams.put("ICECandidate",webRTCTransportProviderwebRTCProvideICECandidateICECandidateCommandParameterInfo);
+    InteractionInfo webRTCTransportProviderwebRTCProvideICECandidateInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.AccountLoginCluster) cluster)
-        .logout((DefaultClusterCallback) callback
-        , (Optional<Long>)
-        commandArguments.get("node"), 10000
+        ((ChipClusters.WebRTCTransportProviderCluster) cluster)
+        .webRTCProvideICECandidate((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("webRTCSessionID")
+        , (String)
+        commandArguments.get("ICECandidate")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        accountLoginlogoutCommandParams
+        webRTCTransportProviderwebRTCProvideICECandidateCommandParams
     );
-    accountLoginClusterInteractionInfoMap.put("logout", accountLoginlogoutInteractionInfo);
+    webRTCTransportProviderClusterInteractionInfoMap.put("webRTCProvideICECandidate", webRTCTransportProviderwebRTCProvideICECandidateInteractionInfo);
 
-    commandMap.put("accountLogin", accountLoginClusterInteractionInfoMap);
-
-    Map<String, InteractionInfo> contentControlClusterInteractionInfoMap = new LinkedHashMap<>();
-
-    Map<String, CommandParameterInfo> contentControlupdatePINCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> webRTCTransportProviderwebRTCEndSessionCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo contentControlupdatePINoldPINCommandParameterInfo = new CommandParameterInfo("oldPIN", Optional.class, String.class);
-    contentControlupdatePINCommandParams.put("oldPIN",contentControlupdatePINoldPINCommandParameterInfo);
+    CommandParameterInfo webRTCTransportProviderwebRTCEndSessionwebRTCSessionIDCommandParameterInfo = new CommandParameterInfo("webRTCSessionID", Integer.class, Integer.class);
+    webRTCTransportProviderwebRTCEndSessionCommandParams.put("webRTCSessionID",webRTCTransportProviderwebRTCEndSessionwebRTCSessionIDCommandParameterInfo);
 
-    CommandParameterInfo contentControlupdatePINnewPINCommandParameterInfo = new CommandParameterInfo("newPIN", String.class, String.class);
-    contentControlupdatePINCommandParams.put("newPIN",contentControlupdatePINnewPINCommandParameterInfo);
-    InteractionInfo contentControlupdatePINInteractionInfo = new InteractionInfo(
+    CommandParameterInfo webRTCTransportProviderwebRTCEndSessionreasonCommandParameterInfo = new CommandParameterInfo("reason", Integer.class, Integer.class);
+    webRTCTransportProviderwebRTCEndSessionCommandParams.put("reason",webRTCTransportProviderwebRTCEndSessionreasonCommandParameterInfo);
+    InteractionInfo webRTCTransportProviderwebRTCEndSessionInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ContentControlCluster) cluster)
-        .updatePIN((DefaultClusterCallback) callback
-        , (Optional<String>)
-        commandArguments.get("oldPIN")
-        , (String)
-        commandArguments.get("newPIN")
+        ((ChipClusters.WebRTCTransportProviderCluster) cluster)
+        .webRTCEndSession((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("webRTCSessionID")
+        , (Integer)
+        commandArguments.get("reason")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        contentControlupdatePINCommandParams
+        webRTCTransportProviderwebRTCEndSessionCommandParams
     );
-    contentControlClusterInteractionInfoMap.put("updatePIN", contentControlupdatePINInteractionInfo);
+    webRTCTransportProviderClusterInteractionInfoMap.put("webRTCEndSession", webRTCTransportProviderwebRTCEndSessionInteractionInfo);
 
-    Map<String, CommandParameterInfo> contentControlresetPINCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo contentControlresetPINInteractionInfo = new InteractionInfo(
-      (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ContentControlCluster) cluster)
-          .resetPIN((ChipClusters.ContentControlCluster.ResetPINResponseCallback) callback
-            );
-        },
-        () -> new DelegatedContentControlClusterResetPINResponseCallback(),
-        contentControlresetPINCommandParams
-      );
-    contentControlClusterInteractionInfoMap.put("resetPIN", contentControlresetPINInteractionInfo);
+    commandMap.put("webRTCTransportProvider", webRTCTransportProviderClusterInteractionInfoMap);
 
-    Map<String, CommandParameterInfo> contentControlenableCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo contentControlenableInteractionInfo = new InteractionInfo(
+    Map<String, InteractionInfo> webRTCTransportRequestorClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    Map<String, CommandParameterInfo> webRTCTransportRequestorwebRTCOfferCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo webRTCTransportRequestorwebRTCOfferwebRTCSessionIDCommandParameterInfo = new CommandParameterInfo("webRTCSessionID", Integer.class, Integer.class);
+    webRTCTransportRequestorwebRTCOfferCommandParams.put("webRTCSessionID",webRTCTransportRequestorwebRTCOfferwebRTCSessionIDCommandParameterInfo);
+
+    CommandParameterInfo webRTCTransportRequestorwebRTCOffersdpCommandParameterInfo = new CommandParameterInfo("sdp", String.class, String.class);
+    webRTCTransportRequestorwebRTCOfferCommandParams.put("sdp",webRTCTransportRequestorwebRTCOffersdpCommandParameterInfo);
+
+
+    CommandParameterInfo webRTCTransportRequestorwebRTCOfferICETransportPolicyCommandParameterInfo = new CommandParameterInfo("ICETransportPolicy", Optional.class, String.class);
+    webRTCTransportRequestorwebRTCOfferCommandParams.put("ICETransportPolicy",webRTCTransportRequestorwebRTCOfferICETransportPolicyCommandParameterInfo);
+    InteractionInfo webRTCTransportRequestorwebRTCOfferInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ContentControlCluster) cluster)
-        .enable((DefaultClusterCallback) callback
+        ((ChipClusters.WebRTCTransportRequestorCluster) cluster)
+        .webRTCOffer((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("webRTCSessionID")
+        , (String)
+        commandArguments.get("sdp")
+        , (Optional<ArrayList<ChipStructs.WebRTCTransportRequestorClusterICEServerStruct>>)
+        commandArguments.get("ICEServers")
+        , (Optional<String>)
+        commandArguments.get("ICETransportPolicy")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        contentControlenableCommandParams
+        webRTCTransportRequestorwebRTCOfferCommandParams
     );
-    contentControlClusterInteractionInfoMap.put("enable", contentControlenableInteractionInfo);
+    webRTCTransportRequestorClusterInteractionInfoMap.put("webRTCOffer", webRTCTransportRequestorwebRTCOfferInteractionInfo);
 
-    Map<String, CommandParameterInfo> contentControldisableCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo contentControldisableInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> webRTCTransportRequestorwebRTCAnswerCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo webRTCTransportRequestorwebRTCAnswerwebRTCSessionIDCommandParameterInfo = new CommandParameterInfo("webRTCSessionID", Integer.class, Integer.class);
+    webRTCTransportRequestorwebRTCAnswerCommandParams.put("webRTCSessionID",webRTCTransportRequestorwebRTCAnswerwebRTCSessionIDCommandParameterInfo);
+
+    CommandParameterInfo webRTCTransportRequestorwebRTCAnswersdpCommandParameterInfo = new CommandParameterInfo("sdp", String.class, String.class);
+    webRTCTransportRequestorwebRTCAnswerCommandParams.put("sdp",webRTCTransportRequestorwebRTCAnswersdpCommandParameterInfo);
+    InteractionInfo webRTCTransportRequestorwebRTCAnswerInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ContentControlCluster) cluster)
-        .disable((DefaultClusterCallback) callback
+        ((ChipClusters.WebRTCTransportRequestorCluster) cluster)
+        .webRTCAnswer((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("webRTCSessionID")
+        , (String)
+        commandArguments.get("sdp")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        contentControldisableCommandParams
+        webRTCTransportRequestorwebRTCAnswerCommandParams
     );
-    contentControlClusterInteractionInfoMap.put("disable", contentControldisableInteractionInfo);
+    webRTCTransportRequestorClusterInteractionInfoMap.put("webRTCAnswer", webRTCTransportRequestorwebRTCAnswerInteractionInfo);
 
-    Map<String, CommandParameterInfo> contentControladdBonusTimeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> webRTCTransportRequestorwebRTCICECandidateCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo contentControladdBonusTimePINCodeCommandParameterInfo = new CommandParameterInfo("PINCode", Optional.class, String.class);
-    contentControladdBonusTimeCommandParams.put("PINCode",contentControladdBonusTimePINCodeCommandParameterInfo);
+    CommandParameterInfo webRTCTransportRequestorwebRTCICECandidatewebRTCSessionIDCommandParameterInfo = new CommandParameterInfo("webRTCSessionID", Integer.class, Integer.class);
+    webRTCTransportRequestorwebRTCICECandidateCommandParams.put("webRTCSessionID",webRTCTransportRequestorwebRTCICECandidatewebRTCSessionIDCommandParameterInfo);
 
-    CommandParameterInfo contentControladdBonusTimebonusTimeCommandParameterInfo = new CommandParameterInfo("bonusTime", Optional.class, Long.class);
-    contentControladdBonusTimeCommandParams.put("bonusTime",contentControladdBonusTimebonusTimeCommandParameterInfo);
-    InteractionInfo contentControladdBonusTimeInteractionInfo = new InteractionInfo(
+    CommandParameterInfo webRTCTransportRequestorwebRTCICECandidateICECandidateCommandParameterInfo = new CommandParameterInfo("ICECandidate", String.class, String.class);
+    webRTCTransportRequestorwebRTCICECandidateCommandParams.put("ICECandidate",webRTCTransportRequestorwebRTCICECandidateICECandidateCommandParameterInfo);
+    InteractionInfo webRTCTransportRequestorwebRTCICECandidateInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ContentControlCluster) cluster)
-        .addBonusTime((DefaultClusterCallback) callback
-        , (Optional<String>)
-        commandArguments.get("PINCode")
-        , (Optional<Long>)
-        commandArguments.get("bonusTime")
+        ((ChipClusters.WebRTCTransportRequestorCluster) cluster)
+        .webRTCICECandidate((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("webRTCSessionID")
+        , (String)
+        commandArguments.get("ICECandidate")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        contentControladdBonusTimeCommandParams
+        webRTCTransportRequestorwebRTCICECandidateCommandParams
     );
-    contentControlClusterInteractionInfoMap.put("addBonusTime", contentControladdBonusTimeInteractionInfo);
+    webRTCTransportRequestorClusterInteractionInfoMap.put("webRTCICECandidate", webRTCTransportRequestorwebRTCICECandidateInteractionInfo);
 
-    Map<String, CommandParameterInfo> contentControlsetScreenDailyTimeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> webRTCTransportRequestorwebRTCEndCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo contentControlsetScreenDailyTimescreenTimeCommandParameterInfo = new CommandParameterInfo("screenTime", Long.class, Long.class);
-    contentControlsetScreenDailyTimeCommandParams.put("screenTime",contentControlsetScreenDailyTimescreenTimeCommandParameterInfo);
-    InteractionInfo contentControlsetScreenDailyTimeInteractionInfo = new InteractionInfo(
+    CommandParameterInfo webRTCTransportRequestorwebRTCEndwebRTCSessionIDCommandParameterInfo = new CommandParameterInfo("webRTCSessionID", Integer.class, Integer.class);
+    webRTCTransportRequestorwebRTCEndCommandParams.put("webRTCSessionID",webRTCTransportRequestorwebRTCEndwebRTCSessionIDCommandParameterInfo);
+
+    CommandParameterInfo webRTCTransportRequestorwebRTCEndreasonCommandParameterInfo = new CommandParameterInfo("reason", Integer.class, Integer.class);
+    webRTCTransportRequestorwebRTCEndCommandParams.put("reason",webRTCTransportRequestorwebRTCEndreasonCommandParameterInfo);
+    InteractionInfo webRTCTransportRequestorwebRTCEndInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ContentControlCluster) cluster)
-        .setScreenDailyTime((DefaultClusterCallback) callback
-        , (Long)
-        commandArguments.get("screenTime")
+        ((ChipClusters.WebRTCTransportRequestorCluster) cluster)
+        .webRTCEnd((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("webRTCSessionID")
+        , (Integer)
+        commandArguments.get("reason")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        contentControlsetScreenDailyTimeCommandParams
+        webRTCTransportRequestorwebRTCEndCommandParams
     );
-    contentControlClusterInteractionInfoMap.put("setScreenDailyTime", contentControlsetScreenDailyTimeInteractionInfo);
+    webRTCTransportRequestorClusterInteractionInfoMap.put("webRTCEnd", webRTCTransportRequestorwebRTCEndInteractionInfo);
 
-    Map<String, CommandParameterInfo> contentControlblockUnratedContentCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo contentControlblockUnratedContentInteractionInfo = new InteractionInfo(
+    commandMap.put("webRTCTransportRequestor", webRTCTransportRequestorClusterInteractionInfoMap);
+
+    Map<String, InteractionInfo> pushAvStreamTransportClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    Map<String, CommandParameterInfo> pushAvStreamTransportallocatePushTransportCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    InteractionInfo pushAvStreamTransportallocatePushTransportInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ContentControlCluster) cluster)
-        .blockUnratedContent((DefaultClusterCallback) callback
+        ((ChipClusters.PushAvStreamTransportCluster) cluster)
+          .allocatePushTransport((ChipClusters.PushAvStreamTransportCluster.AllocatePushTransportResponseCallback) callback
+           , (ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportOptionsStruct)
+             commandArguments.get("streamTransportOptions")
+
+            );
+        },
+        () -> new DelegatedPushAvStreamTransportClusterAllocatePushTransportResponseCallback(),
+        pushAvStreamTransportallocatePushTransportCommandParams
+      );
+    pushAvStreamTransportClusterInteractionInfoMap.put("allocatePushTransport", pushAvStreamTransportallocatePushTransportInteractionInfo);
+
+    Map<String, CommandParameterInfo> pushAvStreamTransportdeallocatePushTransportCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo pushAvStreamTransportdeallocatePushTransportconnectionIDCommandParameterInfo = new CommandParameterInfo("connectionID", Integer.class, Integer.class);
+    pushAvStreamTransportdeallocatePushTransportCommandParams.put("connectionID",pushAvStreamTransportdeallocatePushTransportconnectionIDCommandParameterInfo);
+    InteractionInfo pushAvStreamTransportdeallocatePushTransportInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.PushAvStreamTransportCluster) cluster)
+        .deallocatePushTransport((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("connectionID")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        contentControlblockUnratedContentCommandParams
+        pushAvStreamTransportdeallocatePushTransportCommandParams
     );
-    contentControlClusterInteractionInfoMap.put("blockUnratedContent", contentControlblockUnratedContentInteractionInfo);
+    pushAvStreamTransportClusterInteractionInfoMap.put("deallocatePushTransport", pushAvStreamTransportdeallocatePushTransportInteractionInfo);
 
-    Map<String, CommandParameterInfo> contentControlunblockUnratedContentCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
-    InteractionInfo contentControlunblockUnratedContentInteractionInfo = new InteractionInfo(
+    Map<String, CommandParameterInfo> pushAvStreamTransportmodifyPushTransportCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+
+    CommandParameterInfo pushAvStreamTransportmodifyPushTransportconnectionIDCommandParameterInfo = new CommandParameterInfo("connectionID", Integer.class, Integer.class);
+    pushAvStreamTransportmodifyPushTransportCommandParams.put("connectionID",pushAvStreamTransportmodifyPushTransportconnectionIDCommandParameterInfo);
+
+    InteractionInfo pushAvStreamTransportmodifyPushTransportInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ContentControlCluster) cluster)
-        .unblockUnratedContent((DefaultClusterCallback) callback
+        ((ChipClusters.PushAvStreamTransportCluster) cluster)
+        .modifyPushTransport((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("connectionID")
+        , (ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportOptionsStruct)
+        commandArguments.get("streamTransportOptions")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        contentControlunblockUnratedContentCommandParams
+        pushAvStreamTransportmodifyPushTransportCommandParams
     );
-    contentControlClusterInteractionInfoMap.put("unblockUnratedContent", contentControlunblockUnratedContentInteractionInfo);
+    pushAvStreamTransportClusterInteractionInfoMap.put("modifyPushTransport", pushAvStreamTransportmodifyPushTransportInteractionInfo);
 
-    Map<String, CommandParameterInfo> contentControlsetOnDemandRatingThresholdCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> pushAvStreamTransportsetTransportStatusCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo contentControlsetOnDemandRatingThresholdratingCommandParameterInfo = new CommandParameterInfo("rating", String.class, String.class);
-    contentControlsetOnDemandRatingThresholdCommandParams.put("rating",contentControlsetOnDemandRatingThresholdratingCommandParameterInfo);
-    InteractionInfo contentControlsetOnDemandRatingThresholdInteractionInfo = new InteractionInfo(
+    CommandParameterInfo pushAvStreamTransportsetTransportStatusconnectionIDCommandParameterInfo = new CommandParameterInfo("connectionID", Integer.class, Integer.class);
+    pushAvStreamTransportsetTransportStatusCommandParams.put("connectionID",pushAvStreamTransportsetTransportStatusconnectionIDCommandParameterInfo);
+
+    CommandParameterInfo pushAvStreamTransportsetTransportStatusstreamTransportStatusCommandParameterInfo = new CommandParameterInfo("streamTransportStatus", Integer.class, Integer.class);
+    pushAvStreamTransportsetTransportStatusCommandParams.put("streamTransportStatus",pushAvStreamTransportsetTransportStatusstreamTransportStatusCommandParameterInfo);
+    InteractionInfo pushAvStreamTransportsetTransportStatusInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ContentControlCluster) cluster)
-        .setOnDemandRatingThreshold((DefaultClusterCallback) callback
-        , (String)
-        commandArguments.get("rating")
+        ((ChipClusters.PushAvStreamTransportCluster) cluster)
+        .setTransportStatus((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("connectionID")
+        , (Integer)
+        commandArguments.get("streamTransportStatus")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        contentControlsetOnDemandRatingThresholdCommandParams
+        pushAvStreamTransportsetTransportStatusCommandParams
     );
-    contentControlClusterInteractionInfoMap.put("setOnDemandRatingThreshold", contentControlsetOnDemandRatingThresholdInteractionInfo);
+    pushAvStreamTransportClusterInteractionInfoMap.put("setTransportStatus", pushAvStreamTransportsetTransportStatusInteractionInfo);
 
-    Map<String, CommandParameterInfo> contentControlsetScheduledContentRatingThresholdCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    Map<String, CommandParameterInfo> pushAvStreamTransportmanuallyTriggerTransportCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo contentControlsetScheduledContentRatingThresholdratingCommandParameterInfo = new CommandParameterInfo("rating", String.class, String.class);
-    contentControlsetScheduledContentRatingThresholdCommandParams.put("rating",contentControlsetScheduledContentRatingThresholdratingCommandParameterInfo);
-    InteractionInfo contentControlsetScheduledContentRatingThresholdInteractionInfo = new InteractionInfo(
+    CommandParameterInfo pushAvStreamTransportmanuallyTriggerTransportconnectionIDCommandParameterInfo = new CommandParameterInfo("connectionID", Integer.class, Integer.class);
+    pushAvStreamTransportmanuallyTriggerTransportCommandParams.put("connectionID",pushAvStreamTransportmanuallyTriggerTransportconnectionIDCommandParameterInfo);
+
+    CommandParameterInfo pushAvStreamTransportmanuallyTriggerTransportactivationReasonCommandParameterInfo = new CommandParameterInfo("activationReason", Integer.class, Integer.class);
+    pushAvStreamTransportmanuallyTriggerTransportCommandParams.put("activationReason",pushAvStreamTransportmanuallyTriggerTransportactivationReasonCommandParameterInfo);
+
+    InteractionInfo pushAvStreamTransportmanuallyTriggerTransportInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ContentControlCluster) cluster)
-        .setScheduledContentRatingThreshold((DefaultClusterCallback) callback
-        , (String)
-        commandArguments.get("rating")
+        ((ChipClusters.PushAvStreamTransportCluster) cluster)
+        .manuallyTriggerTransport((DefaultClusterCallback) callback
+        , (Integer)
+        commandArguments.get("connectionID")
+        , (Integer)
+        commandArguments.get("activationReason")
+        , (Optional<ChipStructs.PushAvStreamTransportClusterPushAVStreamTransportMotionTriggerTimeControlStruct>)
+        commandArguments.get("timeControl")
         );
       },
       () -> new DelegatedDefaultClusterCallback(),
-        contentControlsetScheduledContentRatingThresholdCommandParams
+        pushAvStreamTransportmanuallyTriggerTransportCommandParams
     );
-    contentControlClusterInteractionInfoMap.put("setScheduledContentRatingThreshold", contentControlsetScheduledContentRatingThresholdInteractionInfo);
-
-    commandMap.put("contentControl", contentControlClusterInteractionInfoMap);
-
-    Map<String, InteractionInfo> contentAppObserverClusterInteractionInfoMap = new LinkedHashMap<>();
-
-    Map<String, CommandParameterInfo> contentAppObservercontentAppMessageCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    pushAvStreamTransportClusterInteractionInfoMap.put("manuallyTriggerTransport", pushAvStreamTransportmanuallyTriggerTransportInteractionInfo);
 
-    CommandParameterInfo contentAppObservercontentAppMessagedataCommandParameterInfo = new CommandParameterInfo("data", Optional.class, String.class);
-    contentAppObservercontentAppMessageCommandParams.put("data",contentAppObservercontentAppMessagedataCommandParameterInfo);
+    Map<String, CommandParameterInfo> pushAvStreamTransportfindStreamConfigurationCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
 
-    CommandParameterInfo contentAppObservercontentAppMessageencodingHintCommandParameterInfo = new CommandParameterInfo("encodingHint", String.class, String.class);
-    contentAppObservercontentAppMessageCommandParams.put("encodingHint",contentAppObservercontentAppMessageencodingHintCommandParameterInfo);
-    InteractionInfo contentAppObservercontentAppMessageInteractionInfo = new InteractionInfo(
+    CommandParameterInfo pushAvStreamTransportfindStreamConfigurationconnectionIDCommandParameterInfo = new CommandParameterInfo("connectionID", Optional.class, Integer.class);
+    pushAvStreamTransportfindStreamConfigurationCommandParams.put("connectionID",pushAvStreamTransportfindStreamConfigurationconnectionIDCommandParameterInfo);
+    InteractionInfo pushAvStreamTransportfindStreamConfigurationInteractionInfo = new InteractionInfo(
       (cluster, callback, commandArguments) -> {
-        ((ChipClusters.ContentAppObserverCluster) cluster)
-          .contentAppMessage((ChipClusters.ContentAppObserverCluster.ContentAppMessageResponseCallback) callback
-           , (Optional<String>)
-             commandArguments.get("data")
-
-           , (String)
-             commandArguments.get("encodingHint")
+        ((ChipClusters.PushAvStreamTransportCluster) cluster)
+          .findStreamConfiguration((ChipClusters.PushAvStreamTransportCluster.FindStreamConfigurationResponseCallback) callback
+           , (Optional<Integer>)
+             commandArguments.get("connectionID")
 
             );
         },
-        () -> new DelegatedContentAppObserverClusterContentAppMessageResponseCallback(),
-        contentAppObservercontentAppMessageCommandParams
+        () -> new DelegatedPushAvStreamTransportClusterFindStreamConfigurationResponseCallback(),
+        pushAvStreamTransportfindStreamConfigurationCommandParams
       );
-    contentAppObserverClusterInteractionInfoMap.put("contentAppMessage", contentAppObservercontentAppMessageInteractionInfo);
+    pushAvStreamTransportClusterInteractionInfoMap.put("findStreamConfiguration", pushAvStreamTransportfindStreamConfigurationInteractionInfo);
 
-    commandMap.put("contentAppObserver", contentAppObserverClusterInteractionInfoMap);
+    commandMap.put("pushAvStreamTransport", pushAvStreamTransportClusterInteractionInfoMap);
+
+    Map<String, InteractionInfo> chimeClusterInteractionInfoMap = new LinkedHashMap<>();
+
+    Map<String, CommandParameterInfo> chimeplayChimeSoundCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    InteractionInfo chimeplayChimeSoundInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.ChimeCluster) cluster)
+        .playChimeSound((DefaultClusterCallback) callback
+        );
+      },
+      () -> new DelegatedDefaultClusterCallback(),
+        chimeplayChimeSoundCommandParams
+    );
+    chimeClusterInteractionInfoMap.put("playChimeSound", chimeplayChimeSoundInteractionInfo);
+
+    commandMap.put("chime", chimeClusterInteractionInfoMap);
 
     Map<String, InteractionInfo> ecosystemInformationClusterInteractionInfoMap = new LinkedHashMap<>();
 
diff --git a/src/controller/java/generated/java/chip/devicecontroller/ClusterReadMapping.java b/src/controller/java/generated/java/chip/devicecontroller/ClusterReadMapping.java
index b09c89302d33b6..efb24412e13669 100644
--- a/src/controller/java/generated/java/chip/devicecontroller/ClusterReadMapping.java
+++ b/src/controller/java/generated/java/chip/devicecontroller/ClusterReadMapping.java
@@ -18677,6 +18677,1042 @@ private static Map<String, InteractionInfo> readContentAppObserverInteractionInf
      
        return result;
     }
+    private static Map<String, InteractionInfo> readCameraAvStreamManagementInteractionInfo() {
+       Map<String, InteractionInfo> result = new LinkedHashMap<>();Map<String, CommandParameterInfo> readCameraAvStreamManagementMaxConcurrentVideoEncodersCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementMaxConcurrentVideoEncodersAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readMaxConcurrentVideoEncodersAttribute(
+              (ChipClusters.IntegerAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(),
+          readCameraAvStreamManagementMaxConcurrentVideoEncodersCommandParams
+        );
+        result.put("readMaxConcurrentVideoEncodersAttribute", readCameraAvStreamManagementMaxConcurrentVideoEncodersAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementMaxEncodedPixelRateCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementMaxEncodedPixelRateAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readMaxEncodedPixelRateAttribute(
+              (ChipClusters.LongAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(),
+          readCameraAvStreamManagementMaxEncodedPixelRateCommandParams
+        );
+        result.put("readMaxEncodedPixelRateAttribute", readCameraAvStreamManagementMaxEncodedPixelRateAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementNightVisionCapableCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementNightVisionCapableAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readNightVisionCapableAttribute(
+              (ChipClusters.BooleanAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(),
+          readCameraAvStreamManagementNightVisionCapableCommandParams
+        );
+        result.put("readNightVisionCapableAttribute", readCameraAvStreamManagementNightVisionCapableAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementRateDistortionTradeOffPointsCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementRateDistortionTradeOffPointsAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readRateDistortionTradeOffPointsAttribute(
+              (ChipClusters.CameraAvStreamManagementCluster.RateDistortionTradeOffPointsAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedCameraAvStreamManagementClusterRateDistortionTradeOffPointsAttributeCallback(),
+          readCameraAvStreamManagementRateDistortionTradeOffPointsCommandParams
+        );
+        result.put("readRateDistortionTradeOffPointsAttribute", readCameraAvStreamManagementRateDistortionTradeOffPointsAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementMaxPreRollBufferSizeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementMaxPreRollBufferSizeAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readMaxPreRollBufferSizeAttribute(
+              (ChipClusters.LongAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(),
+          readCameraAvStreamManagementMaxPreRollBufferSizeCommandParams
+        );
+        result.put("readMaxPreRollBufferSizeAttribute", readCameraAvStreamManagementMaxPreRollBufferSizeAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementTwoWayTalkSupportCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementTwoWayTalkSupportAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readTwoWayTalkSupportAttribute(
+              (ChipClusters.IntegerAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(),
+          readCameraAvStreamManagementTwoWayTalkSupportCommandParams
+        );
+        result.put("readTwoWayTalkSupportAttribute", readCameraAvStreamManagementTwoWayTalkSupportAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementSupportedSnapshotParamsCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementSupportedSnapshotParamsAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readSupportedSnapshotParamsAttribute(
+              (ChipClusters.CameraAvStreamManagementCluster.SupportedSnapshotParamsAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedCameraAvStreamManagementClusterSupportedSnapshotParamsAttributeCallback(),
+          readCameraAvStreamManagementSupportedSnapshotParamsCommandParams
+        );
+        result.put("readSupportedSnapshotParamsAttribute", readCameraAvStreamManagementSupportedSnapshotParamsAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementHDRCapableCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementHDRCapableAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readHDRCapableAttribute(
+              (ChipClusters.BooleanAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(),
+          readCameraAvStreamManagementHDRCapableCommandParams
+        );
+        result.put("readHDRCapableAttribute", readCameraAvStreamManagementHDRCapableAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementMaxNetworkBandwidthCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementMaxNetworkBandwidthAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readMaxNetworkBandwidthAttribute(
+              (ChipClusters.LongAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(),
+          readCameraAvStreamManagementMaxNetworkBandwidthCommandParams
+        );
+        result.put("readMaxNetworkBandwidthAttribute", readCameraAvStreamManagementMaxNetworkBandwidthAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementCurrentFrameRateCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementCurrentFrameRateAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readCurrentFrameRateAttribute(
+              (ChipClusters.IntegerAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(),
+          readCameraAvStreamManagementCurrentFrameRateCommandParams
+        );
+        result.put("readCurrentFrameRateAttribute", readCameraAvStreamManagementCurrentFrameRateAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementHDRModeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementHDRModeAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readHDRModeAttribute(
+              (ChipClusters.BooleanAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(),
+          readCameraAvStreamManagementHDRModeCommandParams
+        );
+        result.put("readHDRModeAttribute", readCameraAvStreamManagementHDRModeAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementCurrentVideoCodecsCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementCurrentVideoCodecsAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readCurrentVideoCodecsAttribute(
+              (ChipClusters.CameraAvStreamManagementCluster.CurrentVideoCodecsAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedCameraAvStreamManagementClusterCurrentVideoCodecsAttributeCallback(),
+          readCameraAvStreamManagementCurrentVideoCodecsCommandParams
+        );
+        result.put("readCurrentVideoCodecsAttribute", readCameraAvStreamManagementCurrentVideoCodecsAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementFabricsUsingCameraCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementFabricsUsingCameraAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readFabricsUsingCameraAttribute(
+              (ChipClusters.CameraAvStreamManagementCluster.FabricsUsingCameraAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedCameraAvStreamManagementClusterFabricsUsingCameraAttributeCallback(),
+          readCameraAvStreamManagementFabricsUsingCameraCommandParams
+        );
+        result.put("readFabricsUsingCameraAttribute", readCameraAvStreamManagementFabricsUsingCameraAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementAllocatedVideoStreamsCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementAllocatedVideoStreamsAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readAllocatedVideoStreamsAttribute(
+              (ChipClusters.CameraAvStreamManagementCluster.AllocatedVideoStreamsAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedCameraAvStreamManagementClusterAllocatedVideoStreamsAttributeCallback(),
+          readCameraAvStreamManagementAllocatedVideoStreamsCommandParams
+        );
+        result.put("readAllocatedVideoStreamsAttribute", readCameraAvStreamManagementAllocatedVideoStreamsAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementAllocatedAudioStreamsCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementAllocatedAudioStreamsAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readAllocatedAudioStreamsAttribute(
+              (ChipClusters.CameraAvStreamManagementCluster.AllocatedAudioStreamsAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedCameraAvStreamManagementClusterAllocatedAudioStreamsAttributeCallback(),
+          readCameraAvStreamManagementAllocatedAudioStreamsCommandParams
+        );
+        result.put("readAllocatedAudioStreamsAttribute", readCameraAvStreamManagementAllocatedAudioStreamsAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementAllocatedSnapshotStreamsCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementAllocatedSnapshotStreamsAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readAllocatedSnapshotStreamsAttribute(
+              (ChipClusters.CameraAvStreamManagementCluster.AllocatedSnapshotStreamsAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedCameraAvStreamManagementClusterAllocatedSnapshotStreamsAttributeCallback(),
+          readCameraAvStreamManagementAllocatedSnapshotStreamsCommandParams
+        );
+        result.put("readAllocatedSnapshotStreamsAttribute", readCameraAvStreamManagementAllocatedSnapshotStreamsAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementRankedVideoStreamPrioritiesListCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementRankedVideoStreamPrioritiesListAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readRankedVideoStreamPrioritiesListAttribute(
+              (ChipClusters.CameraAvStreamManagementCluster.RankedVideoStreamPrioritiesListAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedCameraAvStreamManagementClusterRankedVideoStreamPrioritiesListAttributeCallback(),
+          readCameraAvStreamManagementRankedVideoStreamPrioritiesListCommandParams
+        );
+        result.put("readRankedVideoStreamPrioritiesListAttribute", readCameraAvStreamManagementRankedVideoStreamPrioritiesListAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementSoftRecordingPrivacyModeSettingCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementSoftRecordingPrivacyModeSettingAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readSoftRecordingPrivacyModeSettingAttribute(
+              (ChipClusters.BooleanAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(),
+          readCameraAvStreamManagementSoftRecordingPrivacyModeSettingCommandParams
+        );
+        result.put("readSoftRecordingPrivacyModeSettingAttribute", readCameraAvStreamManagementSoftRecordingPrivacyModeSettingAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementSoftLivestreamPrivacyModeSettingCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementSoftLivestreamPrivacyModeSettingAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readSoftLivestreamPrivacyModeSettingAttribute(
+              (ChipClusters.BooleanAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(),
+          readCameraAvStreamManagementSoftLivestreamPrivacyModeSettingCommandParams
+        );
+        result.put("readSoftLivestreamPrivacyModeSettingAttribute", readCameraAvStreamManagementSoftLivestreamPrivacyModeSettingAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementHardPrivacyModeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementHardPrivacyModeAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readHardPrivacyModeAttribute(
+              (ChipClusters.BooleanAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(),
+          readCameraAvStreamManagementHardPrivacyModeCommandParams
+        );
+        result.put("readHardPrivacyModeAttribute", readCameraAvStreamManagementHardPrivacyModeAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementNightVisionCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementNightVisionAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readNightVisionAttribute(
+              (ChipClusters.IntegerAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(),
+          readCameraAvStreamManagementNightVisionCommandParams
+        );
+        result.put("readNightVisionAttribute", readCameraAvStreamManagementNightVisionAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementNightVisionIllumCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementNightVisionIllumAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readNightVisionIllumAttribute(
+              (ChipClusters.IntegerAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(),
+          readCameraAvStreamManagementNightVisionIllumCommandParams
+        );
+        result.put("readNightVisionIllumAttribute", readCameraAvStreamManagementNightVisionIllumAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementAwbCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementAwbAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readAwbAttribute(
+              (ChipClusters.BooleanAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(),
+          readCameraAvStreamManagementAwbCommandParams
+        );
+        result.put("readAwbAttribute", readCameraAvStreamManagementAwbAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementShutterSpeedCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementShutterSpeedAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readShutterSpeedAttribute(
+              (ChipClusters.BooleanAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(),
+          readCameraAvStreamManagementShutterSpeedCommandParams
+        );
+        result.put("readShutterSpeedAttribute", readCameraAvStreamManagementShutterSpeedAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementIsoCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementIsoAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readIsoAttribute(
+              (ChipClusters.BooleanAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(),
+          readCameraAvStreamManagementIsoCommandParams
+        );
+        result.put("readIsoAttribute", readCameraAvStreamManagementIsoAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementSpkrOnOffCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementSpkrOnOffAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readSpkrOnOffAttribute(
+              (ChipClusters.BooleanAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(),
+          readCameraAvStreamManagementSpkrOnOffCommandParams
+        );
+        result.put("readSpkrOnOffAttribute", readCameraAvStreamManagementSpkrOnOffAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementSpkrVolumeLevelCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementSpkrVolumeLevelAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readSpkrVolumeLevelAttribute(
+              (ChipClusters.IntegerAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(),
+          readCameraAvStreamManagementSpkrVolumeLevelCommandParams
+        );
+        result.put("readSpkrVolumeLevelAttribute", readCameraAvStreamManagementSpkrVolumeLevelAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementSpkrMaxLevelCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementSpkrMaxLevelAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readSpkrMaxLevelAttribute(
+              (ChipClusters.IntegerAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(),
+          readCameraAvStreamManagementSpkrMaxLevelCommandParams
+        );
+        result.put("readSpkrMaxLevelAttribute", readCameraAvStreamManagementSpkrMaxLevelAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementSpkrMinLevelCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementSpkrMinLevelAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readSpkrMinLevelAttribute(
+              (ChipClusters.IntegerAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(),
+          readCameraAvStreamManagementSpkrMinLevelCommandParams
+        );
+        result.put("readSpkrMinLevelAttribute", readCameraAvStreamManagementSpkrMinLevelAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementMicOnOffCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementMicOnOffAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readMicOnOffAttribute(
+              (ChipClusters.BooleanAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(),
+          readCameraAvStreamManagementMicOnOffCommandParams
+        );
+        result.put("readMicOnOffAttribute", readCameraAvStreamManagementMicOnOffAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementMicCurrentLevelCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementMicCurrentLevelAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readMicCurrentLevelAttribute(
+              (ChipClusters.IntegerAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(),
+          readCameraAvStreamManagementMicCurrentLevelCommandParams
+        );
+        result.put("readMicCurrentLevelAttribute", readCameraAvStreamManagementMicCurrentLevelAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementMicMaxLevelCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementMicMaxLevelAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readMicMaxLevelAttribute(
+              (ChipClusters.IntegerAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(),
+          readCameraAvStreamManagementMicMaxLevelCommandParams
+        );
+        result.put("readMicMaxLevelAttribute", readCameraAvStreamManagementMicMaxLevelAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementMicMinLevelCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementMicMinLevelAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readMicMinLevelAttribute(
+              (ChipClusters.IntegerAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(),
+          readCameraAvStreamManagementMicMinLevelCommandParams
+        );
+        result.put("readMicMinLevelAttribute", readCameraAvStreamManagementMicMinLevelAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementMicAGCCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementMicAGCAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readMicAGCAttribute(
+              (ChipClusters.BooleanAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(),
+          readCameraAvStreamManagementMicAGCCommandParams
+        );
+        result.put("readMicAGCAttribute", readCameraAvStreamManagementMicAGCAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementImageRotationCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementImageRotationAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readImageRotationAttribute(
+              (ChipClusters.IntegerAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(),
+          readCameraAvStreamManagementImageRotationCommandParams
+        );
+        result.put("readImageRotationAttribute", readCameraAvStreamManagementImageRotationAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementImageFlipHorizontalCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementImageFlipHorizontalAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readImageFlipHorizontalAttribute(
+              (ChipClusters.BooleanAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(),
+          readCameraAvStreamManagementImageFlipHorizontalCommandParams
+        );
+        result.put("readImageFlipHorizontalAttribute", readCameraAvStreamManagementImageFlipHorizontalAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementImageFlipVerticalCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementImageFlipVerticalAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readImageFlipVerticalAttribute(
+              (ChipClusters.BooleanAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(),
+          readCameraAvStreamManagementImageFlipVerticalCommandParams
+        );
+        result.put("readImageFlipVerticalAttribute", readCameraAvStreamManagementImageFlipVerticalAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementLocalVideoRecordingEnabledCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementLocalVideoRecordingEnabledAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readLocalVideoRecordingEnabledAttribute(
+              (ChipClusters.BooleanAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(),
+          readCameraAvStreamManagementLocalVideoRecordingEnabledCommandParams
+        );
+        result.put("readLocalVideoRecordingEnabledAttribute", readCameraAvStreamManagementLocalVideoRecordingEnabledAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementLocalSnapshotRecordingEnabledCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementLocalSnapshotRecordingEnabledAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readLocalSnapshotRecordingEnabledAttribute(
+              (ChipClusters.BooleanAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(),
+          readCameraAvStreamManagementLocalSnapshotRecordingEnabledCommandParams
+        );
+        result.put("readLocalSnapshotRecordingEnabledAttribute", readCameraAvStreamManagementLocalSnapshotRecordingEnabledAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementStatusLightCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementStatusLightAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readStatusLightAttribute(
+              (ChipClusters.BooleanAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(),
+          readCameraAvStreamManagementStatusLightCommandParams
+        );
+        result.put("readStatusLightAttribute", readCameraAvStreamManagementStatusLightAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementStatusLightBrightnessCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementStatusLightBrightnessAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readStatusLightBrightnessAttribute(
+              (ChipClusters.IntegerAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(),
+          readCameraAvStreamManagementStatusLightBrightnessCommandParams
+        );
+        result.put("readStatusLightBrightnessAttribute", readCameraAvStreamManagementStatusLightBrightnessAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementDepthSensorStatusCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementDepthSensorStatusAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readDepthSensorStatusAttribute(
+              (ChipClusters.IntegerAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(),
+          readCameraAvStreamManagementDepthSensorStatusCommandParams
+        );
+        result.put("readDepthSensorStatusAttribute", readCameraAvStreamManagementDepthSensorStatusAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementWatermarkEnabledCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementWatermarkEnabledAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readWatermarkEnabledAttribute(
+              (ChipClusters.CameraAvStreamManagementCluster.WatermarkEnabledAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedCameraAvStreamManagementClusterWatermarkEnabledAttributeCallback(),
+          readCameraAvStreamManagementWatermarkEnabledCommandParams
+        );
+        result.put("readWatermarkEnabledAttribute", readCameraAvStreamManagementWatermarkEnabledAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementOSDEnabledCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementOSDEnabledAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readOSDEnabledAttribute(
+              (ChipClusters.CameraAvStreamManagementCluster.OSDEnabledAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedCameraAvStreamManagementClusterOSDEnabledAttributeCallback(),
+          readCameraAvStreamManagementOSDEnabledCommandParams
+        );
+        result.put("readOSDEnabledAttribute", readCameraAvStreamManagementOSDEnabledAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementGeneratedCommandListCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementGeneratedCommandListAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readGeneratedCommandListAttribute(
+              (ChipClusters.CameraAvStreamManagementCluster.GeneratedCommandListAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedCameraAvStreamManagementClusterGeneratedCommandListAttributeCallback(),
+          readCameraAvStreamManagementGeneratedCommandListCommandParams
+        );
+        result.put("readGeneratedCommandListAttribute", readCameraAvStreamManagementGeneratedCommandListAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementAcceptedCommandListCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementAcceptedCommandListAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readAcceptedCommandListAttribute(
+              (ChipClusters.CameraAvStreamManagementCluster.AcceptedCommandListAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedCameraAvStreamManagementClusterAcceptedCommandListAttributeCallback(),
+          readCameraAvStreamManagementAcceptedCommandListCommandParams
+        );
+        result.put("readAcceptedCommandListAttribute", readCameraAvStreamManagementAcceptedCommandListAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementEventListCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementEventListAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readEventListAttribute(
+              (ChipClusters.CameraAvStreamManagementCluster.EventListAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedCameraAvStreamManagementClusterEventListAttributeCallback(),
+          readCameraAvStreamManagementEventListCommandParams
+        );
+        result.put("readEventListAttribute", readCameraAvStreamManagementEventListAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementAttributeListCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementAttributeListAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readAttributeListAttribute(
+              (ChipClusters.CameraAvStreamManagementCluster.AttributeListAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedCameraAvStreamManagementClusterAttributeListAttributeCallback(),
+          readCameraAvStreamManagementAttributeListCommandParams
+        );
+        result.put("readAttributeListAttribute", readCameraAvStreamManagementAttributeListAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementFeatureMapCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementFeatureMapAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readFeatureMapAttribute(
+              (ChipClusters.LongAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(),
+          readCameraAvStreamManagementFeatureMapCommandParams
+        );
+        result.put("readFeatureMapAttribute", readCameraAvStreamManagementFeatureMapAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvStreamManagementClusterRevisionCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvStreamManagementClusterRevisionAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvStreamManagementCluster) cluster).readClusterRevisionAttribute(
+              (ChipClusters.IntegerAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(),
+          readCameraAvStreamManagementClusterRevisionCommandParams
+        );
+        result.put("readClusterRevisionAttribute", readCameraAvStreamManagementClusterRevisionAttributeInteractionInfo);
+     
+       return result;
+    }
+    private static Map<String, InteractionInfo> readCameraAvSettingsUserLevelManagementInteractionInfo() {
+       Map<String, InteractionInfo> result = new LinkedHashMap<>();Map<String, CommandParameterInfo> readCameraAvSettingsUserLevelManagementMaxPresetsCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvSettingsUserLevelManagementMaxPresetsAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvSettingsUserLevelManagementCluster) cluster).readMaxPresetsAttribute(
+              (ChipClusters.IntegerAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(),
+          readCameraAvSettingsUserLevelManagementMaxPresetsCommandParams
+        );
+        result.put("readMaxPresetsAttribute", readCameraAvSettingsUserLevelManagementMaxPresetsAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvSettingsUserLevelManagementPresetMptzTableCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvSettingsUserLevelManagementPresetMptzTableAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvSettingsUserLevelManagementCluster) cluster).readPresetMptzTableAttribute(
+              (ChipClusters.CameraAvSettingsUserLevelManagementCluster.PresetMptzTableAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedCameraAvSettingsUserLevelManagementClusterPresetMptzTableAttributeCallback(),
+          readCameraAvSettingsUserLevelManagementPresetMptzTableCommandParams
+        );
+        result.put("readPresetMptzTableAttribute", readCameraAvSettingsUserLevelManagementPresetMptzTableAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvSettingsUserLevelManagementMptzRelativeMoveCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvSettingsUserLevelManagementMptzRelativeMoveAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvSettingsUserLevelManagementCluster) cluster).readMptzRelativeMoveAttribute(
+              (ChipClusters.BooleanAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(),
+          readCameraAvSettingsUserLevelManagementMptzRelativeMoveCommandParams
+        );
+        result.put("readMptzRelativeMoveAttribute", readCameraAvSettingsUserLevelManagementMptzRelativeMoveAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvSettingsUserLevelManagementDptzRelativeMoveCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvSettingsUserLevelManagementDptzRelativeMoveAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvSettingsUserLevelManagementCluster) cluster).readDptzRelativeMoveAttribute(
+              (ChipClusters.CameraAvSettingsUserLevelManagementCluster.DptzRelativeMoveAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedCameraAvSettingsUserLevelManagementClusterDptzRelativeMoveAttributeCallback(),
+          readCameraAvSettingsUserLevelManagementDptzRelativeMoveCommandParams
+        );
+        result.put("readDptzRelativeMoveAttribute", readCameraAvSettingsUserLevelManagementDptzRelativeMoveAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvSettingsUserLevelManagementGeneratedCommandListCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvSettingsUserLevelManagementGeneratedCommandListAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvSettingsUserLevelManagementCluster) cluster).readGeneratedCommandListAttribute(
+              (ChipClusters.CameraAvSettingsUserLevelManagementCluster.GeneratedCommandListAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedCameraAvSettingsUserLevelManagementClusterGeneratedCommandListAttributeCallback(),
+          readCameraAvSettingsUserLevelManagementGeneratedCommandListCommandParams
+        );
+        result.put("readGeneratedCommandListAttribute", readCameraAvSettingsUserLevelManagementGeneratedCommandListAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvSettingsUserLevelManagementAcceptedCommandListCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvSettingsUserLevelManagementAcceptedCommandListAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvSettingsUserLevelManagementCluster) cluster).readAcceptedCommandListAttribute(
+              (ChipClusters.CameraAvSettingsUserLevelManagementCluster.AcceptedCommandListAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedCameraAvSettingsUserLevelManagementClusterAcceptedCommandListAttributeCallback(),
+          readCameraAvSettingsUserLevelManagementAcceptedCommandListCommandParams
+        );
+        result.put("readAcceptedCommandListAttribute", readCameraAvSettingsUserLevelManagementAcceptedCommandListAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvSettingsUserLevelManagementEventListCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvSettingsUserLevelManagementEventListAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvSettingsUserLevelManagementCluster) cluster).readEventListAttribute(
+              (ChipClusters.CameraAvSettingsUserLevelManagementCluster.EventListAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedCameraAvSettingsUserLevelManagementClusterEventListAttributeCallback(),
+          readCameraAvSettingsUserLevelManagementEventListCommandParams
+        );
+        result.put("readEventListAttribute", readCameraAvSettingsUserLevelManagementEventListAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvSettingsUserLevelManagementAttributeListCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvSettingsUserLevelManagementAttributeListAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvSettingsUserLevelManagementCluster) cluster).readAttributeListAttribute(
+              (ChipClusters.CameraAvSettingsUserLevelManagementCluster.AttributeListAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedCameraAvSettingsUserLevelManagementClusterAttributeListAttributeCallback(),
+          readCameraAvSettingsUserLevelManagementAttributeListCommandParams
+        );
+        result.put("readAttributeListAttribute", readCameraAvSettingsUserLevelManagementAttributeListAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvSettingsUserLevelManagementFeatureMapCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvSettingsUserLevelManagementFeatureMapAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvSettingsUserLevelManagementCluster) cluster).readFeatureMapAttribute(
+              (ChipClusters.LongAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(),
+          readCameraAvSettingsUserLevelManagementFeatureMapCommandParams
+        );
+        result.put("readFeatureMapAttribute", readCameraAvSettingsUserLevelManagementFeatureMapAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readCameraAvSettingsUserLevelManagementClusterRevisionCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readCameraAvSettingsUserLevelManagementClusterRevisionAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.CameraAvSettingsUserLevelManagementCluster) cluster).readClusterRevisionAttribute(
+              (ChipClusters.IntegerAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(),
+          readCameraAvSettingsUserLevelManagementClusterRevisionCommandParams
+        );
+        result.put("readClusterRevisionAttribute", readCameraAvSettingsUserLevelManagementClusterRevisionAttributeInteractionInfo);
+     
+       return result;
+    }
+    private static Map<String, InteractionInfo> readWebRTCTransportProviderInteractionInfo() {
+       Map<String, InteractionInfo> result = new LinkedHashMap<>();Map<String, CommandParameterInfo> readWebRTCTransportProviderCurrentSessionsCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readWebRTCTransportProviderCurrentSessionsAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.WebRTCTransportProviderCluster) cluster).readCurrentSessionsAttribute(
+              (ChipClusters.WebRTCTransportProviderCluster.CurrentSessionsAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedWebRTCTransportProviderClusterCurrentSessionsAttributeCallback(),
+          readWebRTCTransportProviderCurrentSessionsCommandParams
+        );
+        result.put("readCurrentSessionsAttribute", readWebRTCTransportProviderCurrentSessionsAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readWebRTCTransportProviderGeneratedCommandListCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readWebRTCTransportProviderGeneratedCommandListAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.WebRTCTransportProviderCluster) cluster).readGeneratedCommandListAttribute(
+              (ChipClusters.WebRTCTransportProviderCluster.GeneratedCommandListAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedWebRTCTransportProviderClusterGeneratedCommandListAttributeCallback(),
+          readWebRTCTransportProviderGeneratedCommandListCommandParams
+        );
+        result.put("readGeneratedCommandListAttribute", readWebRTCTransportProviderGeneratedCommandListAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readWebRTCTransportProviderAcceptedCommandListCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readWebRTCTransportProviderAcceptedCommandListAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.WebRTCTransportProviderCluster) cluster).readAcceptedCommandListAttribute(
+              (ChipClusters.WebRTCTransportProviderCluster.AcceptedCommandListAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedWebRTCTransportProviderClusterAcceptedCommandListAttributeCallback(),
+          readWebRTCTransportProviderAcceptedCommandListCommandParams
+        );
+        result.put("readAcceptedCommandListAttribute", readWebRTCTransportProviderAcceptedCommandListAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readWebRTCTransportProviderEventListCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readWebRTCTransportProviderEventListAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.WebRTCTransportProviderCluster) cluster).readEventListAttribute(
+              (ChipClusters.WebRTCTransportProviderCluster.EventListAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedWebRTCTransportProviderClusterEventListAttributeCallback(),
+          readWebRTCTransportProviderEventListCommandParams
+        );
+        result.put("readEventListAttribute", readWebRTCTransportProviderEventListAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readWebRTCTransportProviderAttributeListCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readWebRTCTransportProviderAttributeListAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.WebRTCTransportProviderCluster) cluster).readAttributeListAttribute(
+              (ChipClusters.WebRTCTransportProviderCluster.AttributeListAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedWebRTCTransportProviderClusterAttributeListAttributeCallback(),
+          readWebRTCTransportProviderAttributeListCommandParams
+        );
+        result.put("readAttributeListAttribute", readWebRTCTransportProviderAttributeListAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readWebRTCTransportProviderFeatureMapCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readWebRTCTransportProviderFeatureMapAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.WebRTCTransportProviderCluster) cluster).readFeatureMapAttribute(
+              (ChipClusters.LongAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(),
+          readWebRTCTransportProviderFeatureMapCommandParams
+        );
+        result.put("readFeatureMapAttribute", readWebRTCTransportProviderFeatureMapAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readWebRTCTransportProviderClusterRevisionCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readWebRTCTransportProviderClusterRevisionAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.WebRTCTransportProviderCluster) cluster).readClusterRevisionAttribute(
+              (ChipClusters.IntegerAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(),
+          readWebRTCTransportProviderClusterRevisionCommandParams
+        );
+        result.put("readClusterRevisionAttribute", readWebRTCTransportProviderClusterRevisionAttributeInteractionInfo);
+     
+       return result;
+    }
+    private static Map<String, InteractionInfo> readWebRTCTransportRequestorInteractionInfo() {
+       Map<String, InteractionInfo> result = new LinkedHashMap<>();Map<String, CommandParameterInfo> readWebRTCTransportRequestorCurrentSessionsCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readWebRTCTransportRequestorCurrentSessionsAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.WebRTCTransportRequestorCluster) cluster).readCurrentSessionsAttribute(
+              (ChipClusters.WebRTCTransportRequestorCluster.CurrentSessionsAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedWebRTCTransportRequestorClusterCurrentSessionsAttributeCallback(),
+          readWebRTCTransportRequestorCurrentSessionsCommandParams
+        );
+        result.put("readCurrentSessionsAttribute", readWebRTCTransportRequestorCurrentSessionsAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readWebRTCTransportRequestorGeneratedCommandListCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readWebRTCTransportRequestorGeneratedCommandListAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.WebRTCTransportRequestorCluster) cluster).readGeneratedCommandListAttribute(
+              (ChipClusters.WebRTCTransportRequestorCluster.GeneratedCommandListAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedWebRTCTransportRequestorClusterGeneratedCommandListAttributeCallback(),
+          readWebRTCTransportRequestorGeneratedCommandListCommandParams
+        );
+        result.put("readGeneratedCommandListAttribute", readWebRTCTransportRequestorGeneratedCommandListAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readWebRTCTransportRequestorAcceptedCommandListCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readWebRTCTransportRequestorAcceptedCommandListAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.WebRTCTransportRequestorCluster) cluster).readAcceptedCommandListAttribute(
+              (ChipClusters.WebRTCTransportRequestorCluster.AcceptedCommandListAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedWebRTCTransportRequestorClusterAcceptedCommandListAttributeCallback(),
+          readWebRTCTransportRequestorAcceptedCommandListCommandParams
+        );
+        result.put("readAcceptedCommandListAttribute", readWebRTCTransportRequestorAcceptedCommandListAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readWebRTCTransportRequestorEventListCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readWebRTCTransportRequestorEventListAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.WebRTCTransportRequestorCluster) cluster).readEventListAttribute(
+              (ChipClusters.WebRTCTransportRequestorCluster.EventListAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedWebRTCTransportRequestorClusterEventListAttributeCallback(),
+          readWebRTCTransportRequestorEventListCommandParams
+        );
+        result.put("readEventListAttribute", readWebRTCTransportRequestorEventListAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readWebRTCTransportRequestorAttributeListCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readWebRTCTransportRequestorAttributeListAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.WebRTCTransportRequestorCluster) cluster).readAttributeListAttribute(
+              (ChipClusters.WebRTCTransportRequestorCluster.AttributeListAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedWebRTCTransportRequestorClusterAttributeListAttributeCallback(),
+          readWebRTCTransportRequestorAttributeListCommandParams
+        );
+        result.put("readAttributeListAttribute", readWebRTCTransportRequestorAttributeListAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readWebRTCTransportRequestorFeatureMapCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readWebRTCTransportRequestorFeatureMapAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.WebRTCTransportRequestorCluster) cluster).readFeatureMapAttribute(
+              (ChipClusters.LongAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(),
+          readWebRTCTransportRequestorFeatureMapCommandParams
+        );
+        result.put("readFeatureMapAttribute", readWebRTCTransportRequestorFeatureMapAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readWebRTCTransportRequestorClusterRevisionCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readWebRTCTransportRequestorClusterRevisionAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.WebRTCTransportRequestorCluster) cluster).readClusterRevisionAttribute(
+              (ChipClusters.IntegerAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(),
+          readWebRTCTransportRequestorClusterRevisionCommandParams
+        );
+        result.put("readClusterRevisionAttribute", readWebRTCTransportRequestorClusterRevisionAttributeInteractionInfo);
+     
+       return result;
+    }
+    private static Map<String, InteractionInfo> readPushAvStreamTransportInteractionInfo() {
+       Map<String, InteractionInfo> result = new LinkedHashMap<>();Map<String, CommandParameterInfo> readPushAvStreamTransportSupportedContainerFormatsCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readPushAvStreamTransportSupportedContainerFormatsAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.PushAvStreamTransportCluster) cluster).readSupportedContainerFormatsAttribute(
+              (ChipClusters.IntegerAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(),
+          readPushAvStreamTransportSupportedContainerFormatsCommandParams
+        );
+        result.put("readSupportedContainerFormatsAttribute", readPushAvStreamTransportSupportedContainerFormatsAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readPushAvStreamTransportSupportedIngestMethodsCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readPushAvStreamTransportSupportedIngestMethodsAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.PushAvStreamTransportCluster) cluster).readSupportedIngestMethodsAttribute(
+              (ChipClusters.IntegerAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(),
+          readPushAvStreamTransportSupportedIngestMethodsCommandParams
+        );
+        result.put("readSupportedIngestMethodsAttribute", readPushAvStreamTransportSupportedIngestMethodsAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readPushAvStreamTransportCurrentConnectionsCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readPushAvStreamTransportCurrentConnectionsAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.PushAvStreamTransportCluster) cluster).readCurrentConnectionsAttribute(
+              (ChipClusters.PushAvStreamTransportCluster.CurrentConnectionsAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedPushAvStreamTransportClusterCurrentConnectionsAttributeCallback(),
+          readPushAvStreamTransportCurrentConnectionsCommandParams
+        );
+        result.put("readCurrentConnectionsAttribute", readPushAvStreamTransportCurrentConnectionsAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readPushAvStreamTransportGeneratedCommandListCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readPushAvStreamTransportGeneratedCommandListAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.PushAvStreamTransportCluster) cluster).readGeneratedCommandListAttribute(
+              (ChipClusters.PushAvStreamTransportCluster.GeneratedCommandListAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedPushAvStreamTransportClusterGeneratedCommandListAttributeCallback(),
+          readPushAvStreamTransportGeneratedCommandListCommandParams
+        );
+        result.put("readGeneratedCommandListAttribute", readPushAvStreamTransportGeneratedCommandListAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readPushAvStreamTransportAcceptedCommandListCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readPushAvStreamTransportAcceptedCommandListAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.PushAvStreamTransportCluster) cluster).readAcceptedCommandListAttribute(
+              (ChipClusters.PushAvStreamTransportCluster.AcceptedCommandListAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedPushAvStreamTransportClusterAcceptedCommandListAttributeCallback(),
+          readPushAvStreamTransportAcceptedCommandListCommandParams
+        );
+        result.put("readAcceptedCommandListAttribute", readPushAvStreamTransportAcceptedCommandListAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readPushAvStreamTransportEventListCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readPushAvStreamTransportEventListAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.PushAvStreamTransportCluster) cluster).readEventListAttribute(
+              (ChipClusters.PushAvStreamTransportCluster.EventListAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedPushAvStreamTransportClusterEventListAttributeCallback(),
+          readPushAvStreamTransportEventListCommandParams
+        );
+        result.put("readEventListAttribute", readPushAvStreamTransportEventListAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readPushAvStreamTransportAttributeListCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readPushAvStreamTransportAttributeListAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.PushAvStreamTransportCluster) cluster).readAttributeListAttribute(
+              (ChipClusters.PushAvStreamTransportCluster.AttributeListAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedPushAvStreamTransportClusterAttributeListAttributeCallback(),
+          readPushAvStreamTransportAttributeListCommandParams
+        );
+        result.put("readAttributeListAttribute", readPushAvStreamTransportAttributeListAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readPushAvStreamTransportFeatureMapCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readPushAvStreamTransportFeatureMapAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.PushAvStreamTransportCluster) cluster).readFeatureMapAttribute(
+              (ChipClusters.LongAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(),
+          readPushAvStreamTransportFeatureMapCommandParams
+        );
+        result.put("readFeatureMapAttribute", readPushAvStreamTransportFeatureMapAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readPushAvStreamTransportClusterRevisionCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readPushAvStreamTransportClusterRevisionAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.PushAvStreamTransportCluster) cluster).readClusterRevisionAttribute(
+              (ChipClusters.IntegerAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(),
+          readPushAvStreamTransportClusterRevisionCommandParams
+        );
+        result.put("readClusterRevisionAttribute", readPushAvStreamTransportClusterRevisionAttributeInteractionInfo);
+     
+       return result;
+    }
+    private static Map<String, InteractionInfo> readChimeInteractionInfo() {
+       Map<String, InteractionInfo> result = new LinkedHashMap<>();Map<String, CommandParameterInfo> readChimeInstalledChimeSoundsCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readChimeInstalledChimeSoundsAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.ChimeCluster) cluster).readInstalledChimeSoundsAttribute(
+              (ChipClusters.ChimeCluster.InstalledChimeSoundsAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedChimeClusterInstalledChimeSoundsAttributeCallback(),
+          readChimeInstalledChimeSoundsCommandParams
+        );
+        result.put("readInstalledChimeSoundsAttribute", readChimeInstalledChimeSoundsAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readChimeActiveChimeSoundIdCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readChimeActiveChimeSoundIdAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.ChimeCluster) cluster).readActiveChimeSoundIdAttribute(
+              (ChipClusters.IntegerAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(),
+          readChimeActiveChimeSoundIdCommandParams
+        );
+        result.put("readActiveChimeSoundIdAttribute", readChimeActiveChimeSoundIdAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readChimeEnabledCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readChimeEnabledAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.ChimeCluster) cluster).readEnabledAttribute(
+              (ChipClusters.BooleanAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedBooleanAttributeCallback(),
+          readChimeEnabledCommandParams
+        );
+        result.put("readEnabledAttribute", readChimeEnabledAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readChimeGeneratedCommandListCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readChimeGeneratedCommandListAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.ChimeCluster) cluster).readGeneratedCommandListAttribute(
+              (ChipClusters.ChimeCluster.GeneratedCommandListAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedChimeClusterGeneratedCommandListAttributeCallback(),
+          readChimeGeneratedCommandListCommandParams
+        );
+        result.put("readGeneratedCommandListAttribute", readChimeGeneratedCommandListAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readChimeAcceptedCommandListCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readChimeAcceptedCommandListAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.ChimeCluster) cluster).readAcceptedCommandListAttribute(
+              (ChipClusters.ChimeCluster.AcceptedCommandListAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedChimeClusterAcceptedCommandListAttributeCallback(),
+          readChimeAcceptedCommandListCommandParams
+        );
+        result.put("readAcceptedCommandListAttribute", readChimeAcceptedCommandListAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readChimeEventListCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readChimeEventListAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.ChimeCluster) cluster).readEventListAttribute(
+              (ChipClusters.ChimeCluster.EventListAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedChimeClusterEventListAttributeCallback(),
+          readChimeEventListCommandParams
+        );
+        result.put("readEventListAttribute", readChimeEventListAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readChimeAttributeListCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readChimeAttributeListAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.ChimeCluster) cluster).readAttributeListAttribute(
+              (ChipClusters.ChimeCluster.AttributeListAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedChimeClusterAttributeListAttributeCallback(),
+          readChimeAttributeListCommandParams
+        );
+        result.put("readAttributeListAttribute", readChimeAttributeListAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readChimeFeatureMapCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readChimeFeatureMapAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.ChimeCluster) cluster).readFeatureMapAttribute(
+              (ChipClusters.LongAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedLongAttributeCallback(),
+          readChimeFeatureMapCommandParams
+        );
+        result.put("readFeatureMapAttribute", readChimeFeatureMapAttributeInteractionInfo);
+     Map<String, CommandParameterInfo> readChimeClusterRevisionCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+        InteractionInfo readChimeClusterRevisionAttributeInteractionInfo = new InteractionInfo(
+          (cluster, callback, commandArguments) -> {
+            ((ChipClusters.ChimeCluster) cluster).readClusterRevisionAttribute(
+              (ChipClusters.IntegerAttributeCallback) callback
+            );
+          },
+          () -> new ClusterInfoMapping.DelegatedIntegerAttributeCallback(),
+          readChimeClusterRevisionCommandParams
+        );
+        result.put("readClusterRevisionAttribute", readChimeClusterRevisionAttributeInteractionInfo);
+     
+       return result;
+    }
     private static Map<String, InteractionInfo> readEcosystemInformationInteractionInfo() {
        Map<String, InteractionInfo> result = new LinkedHashMap<>();Map<String, CommandParameterInfo> readEcosystemInformationDeviceDirectoryCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
         InteractionInfo readEcosystemInformationDeviceDirectoryAttributeInteractionInfo = new InteractionInfo(
@@ -21608,6 +22644,12 @@ public Map<String, Map<String, InteractionInfo>> getReadAttributeMap() {
             put("accountLogin", readAccountLoginInteractionInfo());
             put("contentControl", readContentControlInteractionInfo());
             put("contentAppObserver", readContentAppObserverInteractionInfo());
+            put("cameraAvStreamManagement", readCameraAvStreamManagementInteractionInfo());
+            put("cameraAvSettingsUserLevelManagement", readCameraAvSettingsUserLevelManagementInteractionInfo());
+            put("webRTCTransportProvider", readWebRTCTransportProviderInteractionInfo());
+            put("webRTCTransportRequestor", readWebRTCTransportRequestorInteractionInfo());
+            put("pushAvStreamTransport", readPushAvStreamTransportInteractionInfo());
+            put("chime", readChimeInteractionInfo());
             put("ecosystemInformation", readEcosystemInformationInteractionInfo());
             put("commissionerControl", readCommissionerControlInteractionInfo());
             put("electricalMeasurement", readElectricalMeasurementInteractionInfo());
diff --git a/src/controller/java/generated/java/chip/devicecontroller/ClusterWriteMapping.java b/src/controller/java/generated/java/chip/devicecontroller/ClusterWriteMapping.java
index 0a59b42a9ffe34..6f86f625d589bf 100644
--- a/src/controller/java/generated/java/chip/devicecontroller/ClusterWriteMapping.java
+++ b/src/controller/java/generated/java/chip/devicecontroller/ClusterWriteMapping.java
@@ -3764,6 +3764,546 @@ public Map<String, Map<String, InteractionInfo>> getWriteAttributeMap() {
     writeAttributeMap.put("contentControl", writeContentControlInteractionInfo);
     Map<String, InteractionInfo> writeContentAppObserverInteractionInfo = new LinkedHashMap<>();
     writeAttributeMap.put("contentAppObserver", writeContentAppObserverInteractionInfo);
+    Map<String, InteractionInfo> writeCameraAvStreamManagementInteractionInfo = new LinkedHashMap<>();
+    Map<String, CommandParameterInfo> writeCameraAvStreamManagementHDRModeCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo cameraAvStreamManagementHDRModeCommandParameterInfo =
+        new CommandParameterInfo(
+            "value", 
+            Boolean.class, 
+            Boolean.class 
+        );
+    writeCameraAvStreamManagementHDRModeCommandParams.put(
+        "value",
+        cameraAvStreamManagementHDRModeCommandParameterInfo
+    );
+    InteractionInfo writeCameraAvStreamManagementHDRModeAttributeInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.CameraAvStreamManagementCluster) cluster).writeHDRModeAttribute(
+          (DefaultClusterCallback) callback,
+          (Boolean) commandArguments.get("value")
+        );
+      },
+      () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(),
+      writeCameraAvStreamManagementHDRModeCommandParams
+    );
+    writeCameraAvStreamManagementInteractionInfo.put("writeHDRModeAttribute", writeCameraAvStreamManagementHDRModeAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> writeCameraAvStreamManagementSoftRecordingPrivacyModeSettingCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo cameraAvStreamManagementsoftRecordingPrivacyModeSettingCommandParameterInfo =
+        new CommandParameterInfo(
+            "value", 
+            Boolean.class, 
+            Boolean.class 
+        );
+    writeCameraAvStreamManagementSoftRecordingPrivacyModeSettingCommandParams.put(
+        "value",
+        cameraAvStreamManagementsoftRecordingPrivacyModeSettingCommandParameterInfo
+    );
+    InteractionInfo writeCameraAvStreamManagementSoftRecordingPrivacyModeSettingAttributeInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.CameraAvStreamManagementCluster) cluster).writeSoftRecordingPrivacyModeSettingAttribute(
+          (DefaultClusterCallback) callback,
+          (Boolean) commandArguments.get("value")
+        );
+      },
+      () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(),
+      writeCameraAvStreamManagementSoftRecordingPrivacyModeSettingCommandParams
+    );
+    writeCameraAvStreamManagementInteractionInfo.put("writeSoftRecordingPrivacyModeSettingAttribute", writeCameraAvStreamManagementSoftRecordingPrivacyModeSettingAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> writeCameraAvStreamManagementSoftLivestreamPrivacyModeSettingCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo cameraAvStreamManagementsoftLivestreamPrivacyModeSettingCommandParameterInfo =
+        new CommandParameterInfo(
+            "value", 
+            Boolean.class, 
+            Boolean.class 
+        );
+    writeCameraAvStreamManagementSoftLivestreamPrivacyModeSettingCommandParams.put(
+        "value",
+        cameraAvStreamManagementsoftLivestreamPrivacyModeSettingCommandParameterInfo
+    );
+    InteractionInfo writeCameraAvStreamManagementSoftLivestreamPrivacyModeSettingAttributeInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.CameraAvStreamManagementCluster) cluster).writeSoftLivestreamPrivacyModeSettingAttribute(
+          (DefaultClusterCallback) callback,
+          (Boolean) commandArguments.get("value")
+        );
+      },
+      () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(),
+      writeCameraAvStreamManagementSoftLivestreamPrivacyModeSettingCommandParams
+    );
+    writeCameraAvStreamManagementInteractionInfo.put("writeSoftLivestreamPrivacyModeSettingAttribute", writeCameraAvStreamManagementSoftLivestreamPrivacyModeSettingAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> writeCameraAvStreamManagementNightVisionCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo cameraAvStreamManagementnightVisionCommandParameterInfo =
+        new CommandParameterInfo(
+            "value", 
+            Integer.class, 
+            Integer.class 
+        );
+    writeCameraAvStreamManagementNightVisionCommandParams.put(
+        "value",
+        cameraAvStreamManagementnightVisionCommandParameterInfo
+    );
+    InteractionInfo writeCameraAvStreamManagementNightVisionAttributeInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.CameraAvStreamManagementCluster) cluster).writeNightVisionAttribute(
+          (DefaultClusterCallback) callback,
+          (Integer) commandArguments.get("value")
+        );
+      },
+      () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(),
+      writeCameraAvStreamManagementNightVisionCommandParams
+    );
+    writeCameraAvStreamManagementInteractionInfo.put("writeNightVisionAttribute", writeCameraAvStreamManagementNightVisionAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> writeCameraAvStreamManagementNightVisionIllumCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo cameraAvStreamManagementnightVisionIllumCommandParameterInfo =
+        new CommandParameterInfo(
+            "value", 
+            Integer.class, 
+            Integer.class 
+        );
+    writeCameraAvStreamManagementNightVisionIllumCommandParams.put(
+        "value",
+        cameraAvStreamManagementnightVisionIllumCommandParameterInfo
+    );
+    InteractionInfo writeCameraAvStreamManagementNightVisionIllumAttributeInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.CameraAvStreamManagementCluster) cluster).writeNightVisionIllumAttribute(
+          (DefaultClusterCallback) callback,
+          (Integer) commandArguments.get("value")
+        );
+      },
+      () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(),
+      writeCameraAvStreamManagementNightVisionIllumCommandParams
+    );
+    writeCameraAvStreamManagementInteractionInfo.put("writeNightVisionIllumAttribute", writeCameraAvStreamManagementNightVisionIllumAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> writeCameraAvStreamManagementAwbCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo cameraAvStreamManagementawbCommandParameterInfo =
+        new CommandParameterInfo(
+            "value", 
+            Boolean.class, 
+            Boolean.class 
+        );
+    writeCameraAvStreamManagementAwbCommandParams.put(
+        "value",
+        cameraAvStreamManagementawbCommandParameterInfo
+    );
+    InteractionInfo writeCameraAvStreamManagementAwbAttributeInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.CameraAvStreamManagementCluster) cluster).writeAwbAttribute(
+          (DefaultClusterCallback) callback,
+          (Boolean) commandArguments.get("value")
+        );
+      },
+      () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(),
+      writeCameraAvStreamManagementAwbCommandParams
+    );
+    writeCameraAvStreamManagementInteractionInfo.put("writeAwbAttribute", writeCameraAvStreamManagementAwbAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> writeCameraAvStreamManagementShutterSpeedCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo cameraAvStreamManagementshutterSpeedCommandParameterInfo =
+        new CommandParameterInfo(
+            "value", 
+            Boolean.class, 
+            Boolean.class 
+        );
+    writeCameraAvStreamManagementShutterSpeedCommandParams.put(
+        "value",
+        cameraAvStreamManagementshutterSpeedCommandParameterInfo
+    );
+    InteractionInfo writeCameraAvStreamManagementShutterSpeedAttributeInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.CameraAvStreamManagementCluster) cluster).writeShutterSpeedAttribute(
+          (DefaultClusterCallback) callback,
+          (Boolean) commandArguments.get("value")
+        );
+      },
+      () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(),
+      writeCameraAvStreamManagementShutterSpeedCommandParams
+    );
+    writeCameraAvStreamManagementInteractionInfo.put("writeShutterSpeedAttribute", writeCameraAvStreamManagementShutterSpeedAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> writeCameraAvStreamManagementIsoCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo cameraAvStreamManagementisoCommandParameterInfo =
+        new CommandParameterInfo(
+            "value", 
+            Boolean.class, 
+            Boolean.class 
+        );
+    writeCameraAvStreamManagementIsoCommandParams.put(
+        "value",
+        cameraAvStreamManagementisoCommandParameterInfo
+    );
+    InteractionInfo writeCameraAvStreamManagementIsoAttributeInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.CameraAvStreamManagementCluster) cluster).writeIsoAttribute(
+          (DefaultClusterCallback) callback,
+          (Boolean) commandArguments.get("value")
+        );
+      },
+      () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(),
+      writeCameraAvStreamManagementIsoCommandParams
+    );
+    writeCameraAvStreamManagementInteractionInfo.put("writeIsoAttribute", writeCameraAvStreamManagementIsoAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> writeCameraAvStreamManagementSpkrOnOffCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo cameraAvStreamManagementspkrOnOffCommandParameterInfo =
+        new CommandParameterInfo(
+            "value", 
+            Boolean.class, 
+            Boolean.class 
+        );
+    writeCameraAvStreamManagementSpkrOnOffCommandParams.put(
+        "value",
+        cameraAvStreamManagementspkrOnOffCommandParameterInfo
+    );
+    InteractionInfo writeCameraAvStreamManagementSpkrOnOffAttributeInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.CameraAvStreamManagementCluster) cluster).writeSpkrOnOffAttribute(
+          (DefaultClusterCallback) callback,
+          (Boolean) commandArguments.get("value")
+        );
+      },
+      () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(),
+      writeCameraAvStreamManagementSpkrOnOffCommandParams
+    );
+    writeCameraAvStreamManagementInteractionInfo.put("writeSpkrOnOffAttribute", writeCameraAvStreamManagementSpkrOnOffAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> writeCameraAvStreamManagementSpkrVolumeLevelCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo cameraAvStreamManagementspkrVolumeLevelCommandParameterInfo =
+        new CommandParameterInfo(
+            "value", 
+            Integer.class, 
+            Integer.class 
+        );
+    writeCameraAvStreamManagementSpkrVolumeLevelCommandParams.put(
+        "value",
+        cameraAvStreamManagementspkrVolumeLevelCommandParameterInfo
+    );
+    InteractionInfo writeCameraAvStreamManagementSpkrVolumeLevelAttributeInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.CameraAvStreamManagementCluster) cluster).writeSpkrVolumeLevelAttribute(
+          (DefaultClusterCallback) callback,
+          (Integer) commandArguments.get("value")
+        );
+      },
+      () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(),
+      writeCameraAvStreamManagementSpkrVolumeLevelCommandParams
+    );
+    writeCameraAvStreamManagementInteractionInfo.put("writeSpkrVolumeLevelAttribute", writeCameraAvStreamManagementSpkrVolumeLevelAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> writeCameraAvStreamManagementSpkrMaxLevelCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo cameraAvStreamManagementspkrMaxLevelCommandParameterInfo =
+        new CommandParameterInfo(
+            "value", 
+            Integer.class, 
+            Integer.class 
+        );
+    writeCameraAvStreamManagementSpkrMaxLevelCommandParams.put(
+        "value",
+        cameraAvStreamManagementspkrMaxLevelCommandParameterInfo
+    );
+    InteractionInfo writeCameraAvStreamManagementSpkrMaxLevelAttributeInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.CameraAvStreamManagementCluster) cluster).writeSpkrMaxLevelAttribute(
+          (DefaultClusterCallback) callback,
+          (Integer) commandArguments.get("value")
+        );
+      },
+      () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(),
+      writeCameraAvStreamManagementSpkrMaxLevelCommandParams
+    );
+    writeCameraAvStreamManagementInteractionInfo.put("writeSpkrMaxLevelAttribute", writeCameraAvStreamManagementSpkrMaxLevelAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> writeCameraAvStreamManagementSpkrMinLevelCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo cameraAvStreamManagementspkrMinLevelCommandParameterInfo =
+        new CommandParameterInfo(
+            "value", 
+            Integer.class, 
+            Integer.class 
+        );
+    writeCameraAvStreamManagementSpkrMinLevelCommandParams.put(
+        "value",
+        cameraAvStreamManagementspkrMinLevelCommandParameterInfo
+    );
+    InteractionInfo writeCameraAvStreamManagementSpkrMinLevelAttributeInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.CameraAvStreamManagementCluster) cluster).writeSpkrMinLevelAttribute(
+          (DefaultClusterCallback) callback,
+          (Integer) commandArguments.get("value")
+        );
+      },
+      () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(),
+      writeCameraAvStreamManagementSpkrMinLevelCommandParams
+    );
+    writeCameraAvStreamManagementInteractionInfo.put("writeSpkrMinLevelAttribute", writeCameraAvStreamManagementSpkrMinLevelAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> writeCameraAvStreamManagementMicOnOffCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo cameraAvStreamManagementmicOnOffCommandParameterInfo =
+        new CommandParameterInfo(
+            "value", 
+            Boolean.class, 
+            Boolean.class 
+        );
+    writeCameraAvStreamManagementMicOnOffCommandParams.put(
+        "value",
+        cameraAvStreamManagementmicOnOffCommandParameterInfo
+    );
+    InteractionInfo writeCameraAvStreamManagementMicOnOffAttributeInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.CameraAvStreamManagementCluster) cluster).writeMicOnOffAttribute(
+          (DefaultClusterCallback) callback,
+          (Boolean) commandArguments.get("value")
+        );
+      },
+      () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(),
+      writeCameraAvStreamManagementMicOnOffCommandParams
+    );
+    writeCameraAvStreamManagementInteractionInfo.put("writeMicOnOffAttribute", writeCameraAvStreamManagementMicOnOffAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> writeCameraAvStreamManagementMicCurrentLevelCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo cameraAvStreamManagementmicCurrentLevelCommandParameterInfo =
+        new CommandParameterInfo(
+            "value", 
+            Integer.class, 
+            Integer.class 
+        );
+    writeCameraAvStreamManagementMicCurrentLevelCommandParams.put(
+        "value",
+        cameraAvStreamManagementmicCurrentLevelCommandParameterInfo
+    );
+    InteractionInfo writeCameraAvStreamManagementMicCurrentLevelAttributeInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.CameraAvStreamManagementCluster) cluster).writeMicCurrentLevelAttribute(
+          (DefaultClusterCallback) callback,
+          (Integer) commandArguments.get("value")
+        );
+      },
+      () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(),
+      writeCameraAvStreamManagementMicCurrentLevelCommandParams
+    );
+    writeCameraAvStreamManagementInteractionInfo.put("writeMicCurrentLevelAttribute", writeCameraAvStreamManagementMicCurrentLevelAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> writeCameraAvStreamManagementMicMaxLevelCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo cameraAvStreamManagementmicMaxLevelCommandParameterInfo =
+        new CommandParameterInfo(
+            "value", 
+            Integer.class, 
+            Integer.class 
+        );
+    writeCameraAvStreamManagementMicMaxLevelCommandParams.put(
+        "value",
+        cameraAvStreamManagementmicMaxLevelCommandParameterInfo
+    );
+    InteractionInfo writeCameraAvStreamManagementMicMaxLevelAttributeInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.CameraAvStreamManagementCluster) cluster).writeMicMaxLevelAttribute(
+          (DefaultClusterCallback) callback,
+          (Integer) commandArguments.get("value")
+        );
+      },
+      () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(),
+      writeCameraAvStreamManagementMicMaxLevelCommandParams
+    );
+    writeCameraAvStreamManagementInteractionInfo.put("writeMicMaxLevelAttribute", writeCameraAvStreamManagementMicMaxLevelAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> writeCameraAvStreamManagementMicMinLevelCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo cameraAvStreamManagementmicMinLevelCommandParameterInfo =
+        new CommandParameterInfo(
+            "value", 
+            Integer.class, 
+            Integer.class 
+        );
+    writeCameraAvStreamManagementMicMinLevelCommandParams.put(
+        "value",
+        cameraAvStreamManagementmicMinLevelCommandParameterInfo
+    );
+    InteractionInfo writeCameraAvStreamManagementMicMinLevelAttributeInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.CameraAvStreamManagementCluster) cluster).writeMicMinLevelAttribute(
+          (DefaultClusterCallback) callback,
+          (Integer) commandArguments.get("value")
+        );
+      },
+      () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(),
+      writeCameraAvStreamManagementMicMinLevelCommandParams
+    );
+    writeCameraAvStreamManagementInteractionInfo.put("writeMicMinLevelAttribute", writeCameraAvStreamManagementMicMinLevelAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> writeCameraAvStreamManagementMicAGCCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo cameraAvStreamManagementmicAGCCommandParameterInfo =
+        new CommandParameterInfo(
+            "value", 
+            Boolean.class, 
+            Boolean.class 
+        );
+    writeCameraAvStreamManagementMicAGCCommandParams.put(
+        "value",
+        cameraAvStreamManagementmicAGCCommandParameterInfo
+    );
+    InteractionInfo writeCameraAvStreamManagementMicAGCAttributeInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.CameraAvStreamManagementCluster) cluster).writeMicAGCAttribute(
+          (DefaultClusterCallback) callback,
+          (Boolean) commandArguments.get("value")
+        );
+      },
+      () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(),
+      writeCameraAvStreamManagementMicAGCCommandParams
+    );
+    writeCameraAvStreamManagementInteractionInfo.put("writeMicAGCAttribute", writeCameraAvStreamManagementMicAGCAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> writeCameraAvStreamManagementLocalVideoRecordingEnabledCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo cameraAvStreamManagementlocalVideoRecordingEnabledCommandParameterInfo =
+        new CommandParameterInfo(
+            "value", 
+            Boolean.class, 
+            Boolean.class 
+        );
+    writeCameraAvStreamManagementLocalVideoRecordingEnabledCommandParams.put(
+        "value",
+        cameraAvStreamManagementlocalVideoRecordingEnabledCommandParameterInfo
+    );
+    InteractionInfo writeCameraAvStreamManagementLocalVideoRecordingEnabledAttributeInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.CameraAvStreamManagementCluster) cluster).writeLocalVideoRecordingEnabledAttribute(
+          (DefaultClusterCallback) callback,
+          (Boolean) commandArguments.get("value")
+        );
+      },
+      () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(),
+      writeCameraAvStreamManagementLocalVideoRecordingEnabledCommandParams
+    );
+    writeCameraAvStreamManagementInteractionInfo.put("writeLocalVideoRecordingEnabledAttribute", writeCameraAvStreamManagementLocalVideoRecordingEnabledAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> writeCameraAvStreamManagementLocalSnapshotRecordingEnabledCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo cameraAvStreamManagementlocalSnapshotRecordingEnabledCommandParameterInfo =
+        new CommandParameterInfo(
+            "value", 
+            Boolean.class, 
+            Boolean.class 
+        );
+    writeCameraAvStreamManagementLocalSnapshotRecordingEnabledCommandParams.put(
+        "value",
+        cameraAvStreamManagementlocalSnapshotRecordingEnabledCommandParameterInfo
+    );
+    InteractionInfo writeCameraAvStreamManagementLocalSnapshotRecordingEnabledAttributeInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.CameraAvStreamManagementCluster) cluster).writeLocalSnapshotRecordingEnabledAttribute(
+          (DefaultClusterCallback) callback,
+          (Boolean) commandArguments.get("value")
+        );
+      },
+      () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(),
+      writeCameraAvStreamManagementLocalSnapshotRecordingEnabledCommandParams
+    );
+    writeCameraAvStreamManagementInteractionInfo.put("writeLocalSnapshotRecordingEnabledAttribute", writeCameraAvStreamManagementLocalSnapshotRecordingEnabledAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> writeCameraAvStreamManagementStatusLightCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo cameraAvStreamManagementstatusLightCommandParameterInfo =
+        new CommandParameterInfo(
+            "value", 
+            Boolean.class, 
+            Boolean.class 
+        );
+    writeCameraAvStreamManagementStatusLightCommandParams.put(
+        "value",
+        cameraAvStreamManagementstatusLightCommandParameterInfo
+    );
+    InteractionInfo writeCameraAvStreamManagementStatusLightAttributeInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.CameraAvStreamManagementCluster) cluster).writeStatusLightAttribute(
+          (DefaultClusterCallback) callback,
+          (Boolean) commandArguments.get("value")
+        );
+      },
+      () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(),
+      writeCameraAvStreamManagementStatusLightCommandParams
+    );
+    writeCameraAvStreamManagementInteractionInfo.put("writeStatusLightAttribute", writeCameraAvStreamManagementStatusLightAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> writeCameraAvStreamManagementStatusLightBrightnessCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo cameraAvStreamManagementstatusLightBrightnessCommandParameterInfo =
+        new CommandParameterInfo(
+            "value", 
+            Integer.class, 
+            Integer.class 
+        );
+    writeCameraAvStreamManagementStatusLightBrightnessCommandParams.put(
+        "value",
+        cameraAvStreamManagementstatusLightBrightnessCommandParameterInfo
+    );
+    InteractionInfo writeCameraAvStreamManagementStatusLightBrightnessAttributeInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.CameraAvStreamManagementCluster) cluster).writeStatusLightBrightnessAttribute(
+          (DefaultClusterCallback) callback,
+          (Integer) commandArguments.get("value")
+        );
+      },
+      () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(),
+      writeCameraAvStreamManagementStatusLightBrightnessCommandParams
+    );
+    writeCameraAvStreamManagementInteractionInfo.put("writeStatusLightBrightnessAttribute", writeCameraAvStreamManagementStatusLightBrightnessAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> writeCameraAvStreamManagementDepthSensorStatusCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo cameraAvStreamManagementdepthSensorStatusCommandParameterInfo =
+        new CommandParameterInfo(
+            "value", 
+            Integer.class, 
+            Integer.class 
+        );
+    writeCameraAvStreamManagementDepthSensorStatusCommandParams.put(
+        "value",
+        cameraAvStreamManagementdepthSensorStatusCommandParameterInfo
+    );
+    InteractionInfo writeCameraAvStreamManagementDepthSensorStatusAttributeInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.CameraAvStreamManagementCluster) cluster).writeDepthSensorStatusAttribute(
+          (DefaultClusterCallback) callback,
+          (Integer) commandArguments.get("value")
+        );
+      },
+      () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(),
+      writeCameraAvStreamManagementDepthSensorStatusCommandParams
+    );
+    writeCameraAvStreamManagementInteractionInfo.put("writeDepthSensorStatusAttribute", writeCameraAvStreamManagementDepthSensorStatusAttributeInteractionInfo);
+    writeAttributeMap.put("cameraAvStreamManagement", writeCameraAvStreamManagementInteractionInfo);
+    Map<String, InteractionInfo> writeCameraAvSettingsUserLevelManagementInteractionInfo = new LinkedHashMap<>();
+    writeAttributeMap.put("cameraAvSettingsUserLevelManagement", writeCameraAvSettingsUserLevelManagementInteractionInfo);
+    Map<String, InteractionInfo> writeWebRTCTransportProviderInteractionInfo = new LinkedHashMap<>();
+    writeAttributeMap.put("webRTCTransportProvider", writeWebRTCTransportProviderInteractionInfo);
+    Map<String, InteractionInfo> writeWebRTCTransportRequestorInteractionInfo = new LinkedHashMap<>();
+    writeAttributeMap.put("webRTCTransportRequestor", writeWebRTCTransportRequestorInteractionInfo);
+    Map<String, InteractionInfo> writePushAvStreamTransportInteractionInfo = new LinkedHashMap<>();
+    writeAttributeMap.put("pushAvStreamTransport", writePushAvStreamTransportInteractionInfo);
+    Map<String, InteractionInfo> writeChimeInteractionInfo = new LinkedHashMap<>();
+    Map<String, CommandParameterInfo> writeChimeActiveChimeSoundIdCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo chimeactiveChimeSoundIdCommandParameterInfo =
+        new CommandParameterInfo(
+            "value", 
+            Integer.class, 
+            Integer.class 
+        );
+    writeChimeActiveChimeSoundIdCommandParams.put(
+        "value",
+        chimeactiveChimeSoundIdCommandParameterInfo
+    );
+    InteractionInfo writeChimeActiveChimeSoundIdAttributeInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.ChimeCluster) cluster).writeActiveChimeSoundIdAttribute(
+          (DefaultClusterCallback) callback,
+          (Integer) commandArguments.get("value")
+        );
+      },
+      () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(),
+      writeChimeActiveChimeSoundIdCommandParams
+    );
+    writeChimeInteractionInfo.put("writeActiveChimeSoundIdAttribute", writeChimeActiveChimeSoundIdAttributeInteractionInfo);
+    Map<String, CommandParameterInfo> writeChimeEnabledCommandParams = new LinkedHashMap<String, CommandParameterInfo>();
+    CommandParameterInfo chimeenabledCommandParameterInfo =
+        new CommandParameterInfo(
+            "value", 
+            Boolean.class, 
+            Boolean.class 
+        );
+    writeChimeEnabledCommandParams.put(
+        "value",
+        chimeenabledCommandParameterInfo
+    );
+    InteractionInfo writeChimeEnabledAttributeInteractionInfo = new InteractionInfo(
+      (cluster, callback, commandArguments) -> {
+        ((ChipClusters.ChimeCluster) cluster).writeEnabledAttribute(
+          (DefaultClusterCallback) callback,
+          (Boolean) commandArguments.get("value")
+        );
+      },
+      () -> new ClusterInfoMapping.DelegatedDefaultClusterCallback(),
+      writeChimeEnabledCommandParams
+    );
+    writeChimeInteractionInfo.put("writeEnabledAttribute", writeChimeEnabledAttributeInteractionInfo);
+    writeAttributeMap.put("chime", writeChimeInteractionInfo);
     Map<String, InteractionInfo> writeEcosystemInformationInteractionInfo = new LinkedHashMap<>();
     writeAttributeMap.put("ecosystemInformation", writeEcosystemInformationInteractionInfo);
     Map<String, InteractionInfo> writeCommissionerControlInteractionInfo = new LinkedHashMap<>();
diff --git a/src/controller/java/generated/java/chip/devicecontroller/cluster/files.gni b/src/controller/java/generated/java/chip/devicecontroller/cluster/files.gni
index bbaa6112dd9dea..d0fcba9b9a2eba 100644
--- a/src/controller/java/generated/java/chip/devicecontroller/cluster/files.gni
+++ b/src/controller/java/generated/java/chip/devicecontroller/cluster/files.gni
@@ -19,6 +19,18 @@ structs_sources = [
   "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/BasicInformationClusterProductAppearanceStruct.kt",
   "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/BindingClusterTargetStruct.kt",
   "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/BridgedDeviceBasicInformationClusterProductAppearanceStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/CameraAvSettingsUserLevelManagementClusterMPTZStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/CameraAvSettingsUserLevelManagementClusterPerStreamStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/CameraAvSettingsUserLevelManagementClusterViewportStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/CameraAvStreamManagementClusterAudioCapabilitiesStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/CameraAvStreamManagementClusterAudioStreamStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/CameraAvStreamManagementClusterPerStreamStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/CameraAvStreamManagementClusterRateDistortionTradeOffPointsStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/CameraAvStreamManagementClusterSnapshotParamsStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/CameraAvStreamManagementClusterSnapshotStreamStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/CameraAvStreamManagementClusterVideoSensorParamsStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/CameraAvStreamManagementClusterVideoStreamStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/CameraAvStreamManagementClusterViewportStruct.kt",
   "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/ChannelClusterAdditionalInfoStruct.kt",
   "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/ChannelClusterChannelInfoStruct.kt",
   "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/ChannelClusterChannelPagingStruct.kt",
@@ -28,6 +40,7 @@ structs_sources = [
   "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/ChannelClusterProgramCategoryStruct.kt",
   "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/ChannelClusterProgramStruct.kt",
   "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/ChannelClusterSeriesInfoStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/ChimeClusterChimeSoundStruct.kt",
   "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/ContentControlClusterRatingNameStruct.kt",
   "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/ContentLauncherClusterAdditionalInfoStruct.kt",
   "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/ContentLauncherClusterBrandingInformationStruct.kt",
@@ -112,6 +125,13 @@ structs_sources = [
   "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/PowerSourceClusterBatChargeFaultChangeType.kt",
   "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/PowerSourceClusterBatFaultChangeType.kt",
   "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/PowerSourceClusterWiredFaultChangeType.kt",
+  "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/PushAvStreamTransportClusterPushAVStreamConfigurationStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/PushAvStreamTransportClusterPushAVStreamTransportCMAFContainerOptionsStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/PushAvStreamTransportClusterPushAVStreamTransportContainerOptionsStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/PushAvStreamTransportClusterPushAVStreamTransportMetadataOptionsStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/PushAvStreamTransportClusterPushAVStreamTransportMotionTriggerTimeControlStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/PushAvStreamTransportClusterPushAVStreamTransportOptionsStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/PushAvStreamTransportClusterPushAVStreamTransportTriggerOptionsStruct.kt",
   "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/RefrigeratorAndTemperatureControlledCabinetModeClusterModeOptionStruct.kt",
   "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/RefrigeratorAndTemperatureControlledCabinetModeClusterModeTagStruct.kt",
   "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/RvcCleanModeClusterModeOptionStruct.kt",
@@ -159,6 +179,10 @@ structs_sources = [
   "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/WaterHeaterManagementClusterWaterHeaterBoostInfoStruct.kt",
   "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/WaterHeaterModeClusterModeOptionStruct.kt",
   "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/WaterHeaterModeClusterModeTagStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/WebRTCTransportProviderClusterICEServerStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/WebRTCTransportProviderClusterWebRTCSessionStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/WebRTCTransportRequestorClusterICEServerStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/WebRTCTransportRequestorClusterWebRTCSessionStruct.kt",
 ]
 
 eventstructs_sources = [
@@ -177,6 +201,9 @@ eventstructs_sources = [
   "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/eventstructs/BridgedDeviceBasicInformationClusterActiveChangedEvent.kt",
   "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/eventstructs/BridgedDeviceBasicInformationClusterReachableChangedEvent.kt",
   "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/eventstructs/BridgedDeviceBasicInformationClusterStartUpEvent.kt",
+  "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/eventstructs/CameraAvStreamManagementClusterAudioStreamChangedEvent.kt",
+  "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/eventstructs/CameraAvStreamManagementClusterSnapshotStreamChangedEvent.kt",
+  "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/eventstructs/CameraAvStreamManagementClusterVideoStreamChangedEvent.kt",
   "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/eventstructs/CommissionerControlClusterCommissioningRequestResultEvent.kt",
   "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/eventstructs/DemandResponseLoadControlClusterLoadControlEventStatusChangeEvent.kt",
   "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/eventstructs/DeviceEnergyManagementClusterPowerAdjustEndEvent.kt",
@@ -215,6 +242,7 @@ eventstructs_sources = [
   "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/eventstructs/PowerSourceClusterBatChargeFaultChangeEvent.kt",
   "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/eventstructs/PowerSourceClusterBatFaultChangeEvent.kt",
   "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/eventstructs/PowerSourceClusterWiredFaultChangeEvent.kt",
+  "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/eventstructs/PushAvStreamTransportClusterPushTransportEndEvent.kt",
   "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/eventstructs/RefrigeratorAlarmClusterNotifyEvent.kt",
   "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/eventstructs/RvcOperationalStateClusterOperationalErrorEvent.kt",
   "${chip_root}/src/controller/java/generated/java/chip/devicecontroller/cluster/eventstructs/RvcOperationalStateClusterOperationCompletionEvent.kt",
diff --git a/src/controller/java/generated/java/matter/controller/cluster/files.gni b/src/controller/java/generated/java/matter/controller/cluster/files.gni
index 1f287a13ae0ff2..d9ac782c2e4c5c 100644
--- a/src/controller/java/generated/java/matter/controller/cluster/files.gni
+++ b/src/controller/java/generated/java/matter/controller/cluster/files.gni
@@ -19,6 +19,18 @@ matter_structs_sources = [
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/BasicInformationClusterProductAppearanceStruct.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/BindingClusterTargetStruct.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/BridgedDeviceBasicInformationClusterProductAppearanceStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/CameraAvSettingsUserLevelManagementClusterMPTZStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/CameraAvSettingsUserLevelManagementClusterPerStreamStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/CameraAvSettingsUserLevelManagementClusterViewportStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/CameraAvStreamManagementClusterAudioCapabilitiesStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/CameraAvStreamManagementClusterAudioStreamStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/CameraAvStreamManagementClusterPerStreamStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/CameraAvStreamManagementClusterRateDistortionTradeOffPointsStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/CameraAvStreamManagementClusterSnapshotParamsStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/CameraAvStreamManagementClusterSnapshotStreamStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/CameraAvStreamManagementClusterVideoSensorParamsStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/CameraAvStreamManagementClusterVideoStreamStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/CameraAvStreamManagementClusterViewportStruct.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/ChannelClusterAdditionalInfoStruct.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/ChannelClusterChannelInfoStruct.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/ChannelClusterChannelPagingStruct.kt",
@@ -28,6 +40,7 @@ matter_structs_sources = [
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/ChannelClusterProgramCategoryStruct.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/ChannelClusterProgramStruct.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/ChannelClusterSeriesInfoStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/ChimeClusterChimeSoundStruct.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/ContentControlClusterRatingNameStruct.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/ContentLauncherClusterAdditionalInfoStruct.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/ContentLauncherClusterBrandingInformationStruct.kt",
@@ -112,6 +125,13 @@ matter_structs_sources = [
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/PowerSourceClusterBatChargeFaultChangeType.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/PowerSourceClusterBatFaultChangeType.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/PowerSourceClusterWiredFaultChangeType.kt",
+  "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/PushAvStreamTransportClusterPushAVStreamConfigurationStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/PushAvStreamTransportClusterPushAVStreamTransportCMAFContainerOptionsStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/PushAvStreamTransportClusterPushAVStreamTransportContainerOptionsStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/PushAvStreamTransportClusterPushAVStreamTransportMetadataOptionsStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/PushAvStreamTransportClusterPushAVStreamTransportMotionTriggerTimeControlStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/PushAvStreamTransportClusterPushAVStreamTransportOptionsStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/PushAvStreamTransportClusterPushAVStreamTransportTriggerOptionsStruct.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/RefrigeratorAndTemperatureControlledCabinetModeClusterModeOptionStruct.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/RefrigeratorAndTemperatureControlledCabinetModeClusterModeTagStruct.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/RvcCleanModeClusterModeOptionStruct.kt",
@@ -159,6 +179,10 @@ matter_structs_sources = [
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/WaterHeaterManagementClusterWaterHeaterBoostInfoStruct.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/WaterHeaterModeClusterModeOptionStruct.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/WaterHeaterModeClusterModeTagStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/WebRTCTransportProviderClusterICEServerStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/WebRTCTransportProviderClusterWebRTCSessionStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/WebRTCTransportRequestorClusterICEServerStruct.kt",
+  "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/structs/WebRTCTransportRequestorClusterWebRTCSessionStruct.kt",
 ]
 
 matter_eventstructs_sources = [
@@ -177,6 +201,9 @@ matter_eventstructs_sources = [
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/eventstructs/BridgedDeviceBasicInformationClusterActiveChangedEvent.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/eventstructs/BridgedDeviceBasicInformationClusterReachableChangedEvent.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/eventstructs/BridgedDeviceBasicInformationClusterStartUpEvent.kt",
+  "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/eventstructs/CameraAvStreamManagementClusterAudioStreamChangedEvent.kt",
+  "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/eventstructs/CameraAvStreamManagementClusterSnapshotStreamChangedEvent.kt",
+  "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/eventstructs/CameraAvStreamManagementClusterVideoStreamChangedEvent.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/eventstructs/CommissionerControlClusterCommissioningRequestResultEvent.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/eventstructs/DemandResponseLoadControlClusterLoadControlEventStatusChangeEvent.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/eventstructs/DeviceEnergyManagementClusterPowerAdjustEndEvent.kt",
@@ -215,6 +242,7 @@ matter_eventstructs_sources = [
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/eventstructs/PowerSourceClusterBatChargeFaultChangeEvent.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/eventstructs/PowerSourceClusterBatFaultChangeEvent.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/eventstructs/PowerSourceClusterWiredFaultChangeEvent.kt",
+  "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/eventstructs/PushAvStreamTransportClusterPushTransportEndEvent.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/eventstructs/RefrigeratorAlarmClusterNotifyEvent.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/eventstructs/RvcOperationalStateClusterOperationalErrorEvent.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/eventstructs/RvcOperationalStateClusterOperationCompletionEvent.kt",
@@ -266,9 +294,12 @@ matter_clusters_sources = [
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/clusters/BooleanStateCluster.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/clusters/BooleanStateConfigurationCluster.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/clusters/BridgedDeviceBasicInformationCluster.kt",
+  "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/clusters/CameraAvSettingsUserLevelManagementCluster.kt",
+  "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/clusters/CameraAvStreamManagementCluster.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/clusters/CarbonDioxideConcentrationMeasurementCluster.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/clusters/CarbonMonoxideConcentrationMeasurementCluster.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/clusters/ChannelCluster.kt",
+  "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/clusters/ChimeCluster.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/clusters/ColorControlCluster.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/clusters/CommissionerControlCluster.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/clusters/ContentAppObserverCluster.kt",
@@ -340,6 +371,7 @@ matter_clusters_sources = [
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/clusters/ProxyValidCluster.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/clusters/PulseWidthModulationCluster.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/clusters/PumpConfigurationAndControlCluster.kt",
+  "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/clusters/PushAvStreamTransportCluster.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/clusters/RadonConcentrationMeasurementCluster.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/clusters/RefrigeratorAlarmCluster.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/clusters/RefrigeratorAndTemperatureControlledCabinetModeCluster.kt",
@@ -372,6 +404,8 @@ matter_clusters_sources = [
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/clusters/WakeOnLanCluster.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/clusters/WaterHeaterManagementCluster.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/clusters/WaterHeaterModeCluster.kt",
+  "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/clusters/WebRTCTransportProviderCluster.kt",
+  "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/clusters/WebRTCTransportRequestorCluster.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/clusters/WiFiNetworkDiagnosticsCluster.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/clusters/WiFiNetworkManagementCluster.kt",
   "${chip_root}/src/controller/java/generated/java/matter/controller/cluster/clusters/WindowCoveringCluster.kt",
diff --git a/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp b/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp
index 771d026771d39d..192a614b008b68 100644
--- a/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp
+++ b/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp
@@ -42970,6 +42970,3256 @@ jobject DecodeAttributeValue(const app::ConcreteAttributePath & aPath, TLV::TLVR
         }
         break;
     }
+    case app::Clusters::CameraAvStreamManagement::Id: {
+        using namespace app::Clusters::CameraAvStreamManagement;
+        switch (aPath.mAttributeId)
+        {
+        case Attributes::MaxConcurrentVideoEncoders::Id: {
+            using TypeInfo = Attributes::MaxConcurrentVideoEncoders::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Integer";
+            std::string valueCtorSignature = "(I)V";
+            jint jnivalue                  = static_cast<jint>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue,
+                                                                       value);
+            return value;
+        }
+        case Attributes::MaxEncodedPixelRate::Id: {
+            using TypeInfo = Attributes::MaxEncodedPixelRate::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Long";
+            std::string valueCtorSignature = "(J)V";
+            jlong jnivalue                 = static_cast<jlong>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(valueClassName.c_str(), valueCtorSignature.c_str(),
+                                                                        jnivalue, value);
+            return value;
+        }
+        case Attributes::VideoSensorParams::Id: {
+            using TypeInfo = Attributes::VideoSensorParams::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            jobject value_sensorWidth;
+            std::string value_sensorWidthClassName     = "java/lang/Integer";
+            std::string value_sensorWidthCtorSignature = "(I)V";
+            jint jnivalue_sensorWidth                  = static_cast<jint>(cppValue.sensorWidth);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(value_sensorWidthClassName.c_str(),
+                                                                       value_sensorWidthCtorSignature.c_str(), jnivalue_sensorWidth,
+                                                                       value_sensorWidth);
+            jobject value_sensorHeight;
+            std::string value_sensorHeightClassName     = "java/lang/Integer";
+            std::string value_sensorHeightCtorSignature = "(I)V";
+            jint jnivalue_sensorHeight                  = static_cast<jint>(cppValue.sensorHeight);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(value_sensorHeightClassName.c_str(),
+                                                                       value_sensorHeightCtorSignature.c_str(),
+                                                                       jnivalue_sensorHeight, value_sensorHeight);
+            jobject value_HDRCapable;
+            std::string value_HDRCapableClassName     = "java/lang/Boolean";
+            std::string value_HDRCapableCtorSignature = "(Z)V";
+            jboolean jnivalue_HDRCapable              = static_cast<jboolean>(cppValue.HDRCapable);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jboolean>(
+                value_HDRCapableClassName.c_str(), value_HDRCapableCtorSignature.c_str(), jnivalue_HDRCapable, value_HDRCapable);
+            jobject value_maxFPS;
+            std::string value_maxFPSClassName     = "java/lang/Integer";
+            std::string value_maxFPSCtorSignature = "(I)V";
+            jint jnivalue_maxFPS                  = static_cast<jint>(cppValue.maxFPS);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                value_maxFPSClassName.c_str(), value_maxFPSCtorSignature.c_str(), jnivalue_maxFPS, value_maxFPS);
+            jobject value_maxHDRFPS;
+            std::string value_maxHDRFPSClassName     = "java/lang/Integer";
+            std::string value_maxHDRFPSCtorSignature = "(I)V";
+            jint jnivalue_maxHDRFPS                  = static_cast<jint>(cppValue.maxHDRFPS);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                value_maxHDRFPSClassName.c_str(), value_maxHDRFPSCtorSignature.c_str(), jnivalue_maxHDRFPS, value_maxHDRFPS);
+
+            jclass videoSensorParamsStructStructClass_0;
+            err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                env, "chip/devicecontroller/ChipStructs$CameraAvStreamManagementClusterVideoSensorParamsStruct",
+                videoSensorParamsStructStructClass_0);
+            if (err != CHIP_NO_ERROR)
+            {
+                ChipLogError(Zcl, "Could not find class ChipStructs$CameraAvStreamManagementClusterVideoSensorParamsStruct");
+                return nullptr;
+            }
+
+            jmethodID videoSensorParamsStructStructCtor_0;
+            err = chip::JniReferences::GetInstance().FindMethod(
+                env, videoSensorParamsStructStructClass_0, "<init>",
+                "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Integer;Ljava/lang/Integer;)V",
+                &videoSensorParamsStructStructCtor_0);
+            if (err != CHIP_NO_ERROR || videoSensorParamsStructStructCtor_0 == nullptr)
+            {
+                ChipLogError(Zcl, "Could not find ChipStructs$CameraAvStreamManagementClusterVideoSensorParamsStruct constructor");
+                return nullptr;
+            }
+
+            value = env->NewObject(videoSensorParamsStructStructClass_0, videoSensorParamsStructStructCtor_0, value_sensorWidth,
+                                   value_sensorHeight, value_HDRCapable, value_maxFPS, value_maxHDRFPS);
+            return value;
+        }
+        case Attributes::NightVisionCapable::Id: {
+            using TypeInfo = Attributes::NightVisionCapable::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Boolean";
+            std::string valueCtorSignature = "(Z)V";
+            jboolean jnivalue              = static_cast<jboolean>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jboolean>(valueClassName.c_str(), valueCtorSignature.c_str(),
+                                                                           jnivalue, value);
+            return value;
+        }
+        case Attributes::MinViewPortWidth::Id: {
+            using TypeInfo = Attributes::MinViewPortWidth::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+
+            jclass dimensionStructStructClass_0;
+            err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                env, "chip/devicecontroller/ChipStructs$CameraAvStreamManagementClusterDimensionStruct",
+                dimensionStructStructClass_0);
+            if (err != CHIP_NO_ERROR)
+            {
+                ChipLogError(Zcl, "Could not find class ChipStructs$CameraAvStreamManagementClusterDimensionStruct");
+                return nullptr;
+            }
+
+            jmethodID dimensionStructStructCtor_0;
+            err = chip::JniReferences::GetInstance().FindMethod(env, dimensionStructStructClass_0, "<init>", "()V",
+                                                                &dimensionStructStructCtor_0);
+            if (err != CHIP_NO_ERROR || dimensionStructStructCtor_0 == nullptr)
+            {
+                ChipLogError(Zcl, "Could not find ChipStructs$CameraAvStreamManagementClusterDimensionStruct constructor");
+                return nullptr;
+            }
+
+            value = env->NewObject(dimensionStructStructClass_0, dimensionStructStructCtor_0);
+            return value;
+        }
+        case Attributes::MinViewPortHeight::Id: {
+            using TypeInfo = Attributes::MinViewPortHeight::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+
+            jclass dimensionStructStructClass_0;
+            err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                env, "chip/devicecontroller/ChipStructs$CameraAvStreamManagementClusterDimensionStruct",
+                dimensionStructStructClass_0);
+            if (err != CHIP_NO_ERROR)
+            {
+                ChipLogError(Zcl, "Could not find class ChipStructs$CameraAvStreamManagementClusterDimensionStruct");
+                return nullptr;
+            }
+
+            jmethodID dimensionStructStructCtor_0;
+            err = chip::JniReferences::GetInstance().FindMethod(env, dimensionStructStructClass_0, "<init>", "()V",
+                                                                &dimensionStructStructCtor_0);
+            if (err != CHIP_NO_ERROR || dimensionStructStructCtor_0 == nullptr)
+            {
+                ChipLogError(Zcl, "Could not find ChipStructs$CameraAvStreamManagementClusterDimensionStruct constructor");
+                return nullptr;
+            }
+
+            value = env->NewObject(dimensionStructStructClass_0, dimensionStructStructCtor_0);
+            return value;
+        }
+        case Attributes::RateDistortionTradeOffPoints::Id: {
+            using TypeInfo = Attributes::RateDistortionTradeOffPoints::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                jobject newElement_0_codec;
+                std::string newElement_0_codecClassName     = "java/lang/Integer";
+                std::string newElement_0_codecCtorSignature = "(I)V";
+                jint jninewElement_0_codec                  = static_cast<jint>(entry_0.codec);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(newElement_0_codecClassName.c_str(),
+                                                                           newElement_0_codecCtorSignature.c_str(),
+                                                                           jninewElement_0_codec, newElement_0_codec);
+                jobject newElement_0_resolution;
+
+                jclass dimensionStructStructClass_2;
+                err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                    env, "chip/devicecontroller/ChipStructs$CameraAvStreamManagementClusterDimensionStruct",
+                    dimensionStructStructClass_2);
+                if (err != CHIP_NO_ERROR)
+                {
+                    ChipLogError(Zcl, "Could not find class ChipStructs$CameraAvStreamManagementClusterDimensionStruct");
+                    return nullptr;
+                }
+
+                jmethodID dimensionStructStructCtor_2;
+                err = chip::JniReferences::GetInstance().FindMethod(env, dimensionStructStructClass_2, "<init>", "()V",
+                                                                    &dimensionStructStructCtor_2);
+                if (err != CHIP_NO_ERROR || dimensionStructStructCtor_2 == nullptr)
+                {
+                    ChipLogError(Zcl, "Could not find ChipStructs$CameraAvStreamManagementClusterDimensionStruct constructor");
+                    return nullptr;
+                }
+
+                newElement_0_resolution = env->NewObject(dimensionStructStructClass_2, dimensionStructStructCtor_2);
+                jobject newElement_0_minBitRate;
+                std::string newElement_0_minBitRateClassName     = "java/lang/Long";
+                std::string newElement_0_minBitRateCtorSignature = "(J)V";
+                jlong jninewElement_0_minBitRate                 = static_cast<jlong>(entry_0.minBitRate);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(newElement_0_minBitRateClassName.c_str(),
+                                                                            newElement_0_minBitRateCtorSignature.c_str(),
+                                                                            jninewElement_0_minBitRate, newElement_0_minBitRate);
+
+                jclass rateDistortionTradeOffPointsStructStructClass_1;
+                err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                    env, "chip/devicecontroller/ChipStructs$CameraAvStreamManagementClusterRateDistortionTradeOffPointsStruct",
+                    rateDistortionTradeOffPointsStructStructClass_1);
+                if (err != CHIP_NO_ERROR)
+                {
+                    ChipLogError(
+                        Zcl, "Could not find class ChipStructs$CameraAvStreamManagementClusterRateDistortionTradeOffPointsStruct");
+                    return nullptr;
+                }
+
+                jmethodID rateDistortionTradeOffPointsStructStructCtor_1;
+                err = chip::JniReferences::GetInstance().FindMethod(
+                    env, rateDistortionTradeOffPointsStructStructClass_1, "<init>",
+                    "(Ljava/lang/Integer;Lchip/devicecontroller/ChipStructs$CameraAvStreamManagementClusterDimensionStruct;Ljava/"
+                    "lang/Long;)V",
+                    &rateDistortionTradeOffPointsStructStructCtor_1);
+                if (err != CHIP_NO_ERROR || rateDistortionTradeOffPointsStructStructCtor_1 == nullptr)
+                {
+                    ChipLogError(
+                        Zcl,
+                        "Could not find ChipStructs$CameraAvStreamManagementClusterRateDistortionTradeOffPointsStruct constructor");
+                    return nullptr;
+                }
+
+                newElement_0 =
+                    env->NewObject(rateDistortionTradeOffPointsStructStructClass_1, rateDistortionTradeOffPointsStructStructCtor_1,
+                                   newElement_0_codec, newElement_0_resolution, newElement_0_minBitRate);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::MaxPreRollBufferSize::Id: {
+            using TypeInfo = Attributes::MaxPreRollBufferSize::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Long";
+            std::string valueCtorSignature = "(J)V";
+            jlong jnivalue                 = static_cast<jlong>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(valueClassName.c_str(), valueCtorSignature.c_str(),
+                                                                        jnivalue, value);
+            return value;
+        }
+        case Attributes::MicrophoneCapabilities::Id: {
+            using TypeInfo = Attributes::MicrophoneCapabilities::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            jobject value_maxNumberOfChannels;
+            std::string value_maxNumberOfChannelsClassName     = "java/lang/Integer";
+            std::string value_maxNumberOfChannelsCtorSignature = "(I)V";
+            jint jnivalue_maxNumberOfChannels                  = static_cast<jint>(cppValue.maxNumberOfChannels);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(value_maxNumberOfChannelsClassName.c_str(),
+                                                                       value_maxNumberOfChannelsCtorSignature.c_str(),
+                                                                       jnivalue_maxNumberOfChannels, value_maxNumberOfChannels);
+            jobject value_supportedCodecs;
+            chip::JniReferences::GetInstance().CreateArrayList(value_supportedCodecs);
+
+            auto iter_value_supportedCodecs_1 = cppValue.supportedCodecs.begin();
+            while (iter_value_supportedCodecs_1.Next())
+            {
+                auto & entry_1 = iter_value_supportedCodecs_1.GetValue();
+                jobject newElement_1;
+                std::string newElement_1ClassName     = "java/lang/Integer";
+                std::string newElement_1CtorSignature = "(I)V";
+                jint jninewElement_1                  = static_cast<jint>(entry_1);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                    newElement_1ClassName.c_str(), newElement_1CtorSignature.c_str(), jninewElement_1, newElement_1);
+                chip::JniReferences::GetInstance().AddToList(value_supportedCodecs, newElement_1);
+            }
+            jobject value_supportedSampleRates;
+            chip::JniReferences::GetInstance().CreateArrayList(value_supportedSampleRates);
+
+            auto iter_value_supportedSampleRates_1 = cppValue.supportedSampleRates.begin();
+            while (iter_value_supportedSampleRates_1.Next())
+            {
+                auto & entry_1 = iter_value_supportedSampleRates_1.GetValue();
+                jobject newElement_1;
+                std::string newElement_1ClassName     = "java/lang/Long";
+                std::string newElement_1CtorSignature = "(J)V";
+                jlong jninewElement_1                 = static_cast<jlong>(entry_1);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
+                    newElement_1ClassName.c_str(), newElement_1CtorSignature.c_str(), jninewElement_1, newElement_1);
+                chip::JniReferences::GetInstance().AddToList(value_supportedSampleRates, newElement_1);
+            }
+            jobject value_supportedBitDepths;
+            chip::JniReferences::GetInstance().CreateArrayList(value_supportedBitDepths);
+
+            auto iter_value_supportedBitDepths_1 = cppValue.supportedBitDepths.begin();
+            while (iter_value_supportedBitDepths_1.Next())
+            {
+                auto & entry_1 = iter_value_supportedBitDepths_1.GetValue();
+                jobject newElement_1;
+                std::string newElement_1ClassName     = "java/lang/Long";
+                std::string newElement_1CtorSignature = "(J)V";
+                jlong jninewElement_1                 = static_cast<jlong>(entry_1);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
+                    newElement_1ClassName.c_str(), newElement_1CtorSignature.c_str(), jninewElement_1, newElement_1);
+                chip::JniReferences::GetInstance().AddToList(value_supportedBitDepths, newElement_1);
+            }
+
+            jclass audioCapabilitiesStructStructClass_0;
+            err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                env, "chip/devicecontroller/ChipStructs$CameraAvStreamManagementClusterAudioCapabilitiesStruct",
+                audioCapabilitiesStructStructClass_0);
+            if (err != CHIP_NO_ERROR)
+            {
+                ChipLogError(Zcl, "Could not find class ChipStructs$CameraAvStreamManagementClusterAudioCapabilitiesStruct");
+                return nullptr;
+            }
+
+            jmethodID audioCapabilitiesStructStructCtor_0;
+            err = chip::JniReferences::GetInstance().FindMethod(
+                env, audioCapabilitiesStructStructClass_0, "<init>",
+                "(Ljava/lang/Integer;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;)V",
+                &audioCapabilitiesStructStructCtor_0);
+            if (err != CHIP_NO_ERROR || audioCapabilitiesStructStructCtor_0 == nullptr)
+            {
+                ChipLogError(Zcl, "Could not find ChipStructs$CameraAvStreamManagementClusterAudioCapabilitiesStruct constructor");
+                return nullptr;
+            }
+
+            value =
+                env->NewObject(audioCapabilitiesStructStructClass_0, audioCapabilitiesStructStructCtor_0, value_maxNumberOfChannels,
+                               value_supportedCodecs, value_supportedSampleRates, value_supportedBitDepths);
+            return value;
+        }
+        case Attributes::SpeakerCapabilities::Id: {
+            using TypeInfo = Attributes::SpeakerCapabilities::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            jobject value_maxNumberOfChannels;
+            std::string value_maxNumberOfChannelsClassName     = "java/lang/Integer";
+            std::string value_maxNumberOfChannelsCtorSignature = "(I)V";
+            jint jnivalue_maxNumberOfChannels                  = static_cast<jint>(cppValue.maxNumberOfChannels);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(value_maxNumberOfChannelsClassName.c_str(),
+                                                                       value_maxNumberOfChannelsCtorSignature.c_str(),
+                                                                       jnivalue_maxNumberOfChannels, value_maxNumberOfChannels);
+            jobject value_supportedCodecs;
+            chip::JniReferences::GetInstance().CreateArrayList(value_supportedCodecs);
+
+            auto iter_value_supportedCodecs_1 = cppValue.supportedCodecs.begin();
+            while (iter_value_supportedCodecs_1.Next())
+            {
+                auto & entry_1 = iter_value_supportedCodecs_1.GetValue();
+                jobject newElement_1;
+                std::string newElement_1ClassName     = "java/lang/Integer";
+                std::string newElement_1CtorSignature = "(I)V";
+                jint jninewElement_1                  = static_cast<jint>(entry_1);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                    newElement_1ClassName.c_str(), newElement_1CtorSignature.c_str(), jninewElement_1, newElement_1);
+                chip::JniReferences::GetInstance().AddToList(value_supportedCodecs, newElement_1);
+            }
+            jobject value_supportedSampleRates;
+            chip::JniReferences::GetInstance().CreateArrayList(value_supportedSampleRates);
+
+            auto iter_value_supportedSampleRates_1 = cppValue.supportedSampleRates.begin();
+            while (iter_value_supportedSampleRates_1.Next())
+            {
+                auto & entry_1 = iter_value_supportedSampleRates_1.GetValue();
+                jobject newElement_1;
+                std::string newElement_1ClassName     = "java/lang/Long";
+                std::string newElement_1CtorSignature = "(J)V";
+                jlong jninewElement_1                 = static_cast<jlong>(entry_1);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
+                    newElement_1ClassName.c_str(), newElement_1CtorSignature.c_str(), jninewElement_1, newElement_1);
+                chip::JniReferences::GetInstance().AddToList(value_supportedSampleRates, newElement_1);
+            }
+            jobject value_supportedBitDepths;
+            chip::JniReferences::GetInstance().CreateArrayList(value_supportedBitDepths);
+
+            auto iter_value_supportedBitDepths_1 = cppValue.supportedBitDepths.begin();
+            while (iter_value_supportedBitDepths_1.Next())
+            {
+                auto & entry_1 = iter_value_supportedBitDepths_1.GetValue();
+                jobject newElement_1;
+                std::string newElement_1ClassName     = "java/lang/Long";
+                std::string newElement_1CtorSignature = "(J)V";
+                jlong jninewElement_1                 = static_cast<jlong>(entry_1);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
+                    newElement_1ClassName.c_str(), newElement_1CtorSignature.c_str(), jninewElement_1, newElement_1);
+                chip::JniReferences::GetInstance().AddToList(value_supportedBitDepths, newElement_1);
+            }
+
+            jclass audioCapabilitiesStructStructClass_0;
+            err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                env, "chip/devicecontroller/ChipStructs$CameraAvStreamManagementClusterAudioCapabilitiesStruct",
+                audioCapabilitiesStructStructClass_0);
+            if (err != CHIP_NO_ERROR)
+            {
+                ChipLogError(Zcl, "Could not find class ChipStructs$CameraAvStreamManagementClusterAudioCapabilitiesStruct");
+                return nullptr;
+            }
+
+            jmethodID audioCapabilitiesStructStructCtor_0;
+            err = chip::JniReferences::GetInstance().FindMethod(
+                env, audioCapabilitiesStructStructClass_0, "<init>",
+                "(Ljava/lang/Integer;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;)V",
+                &audioCapabilitiesStructStructCtor_0);
+            if (err != CHIP_NO_ERROR || audioCapabilitiesStructStructCtor_0 == nullptr)
+            {
+                ChipLogError(Zcl, "Could not find ChipStructs$CameraAvStreamManagementClusterAudioCapabilitiesStruct constructor");
+                return nullptr;
+            }
+
+            value =
+                env->NewObject(audioCapabilitiesStructStructClass_0, audioCapabilitiesStructStructCtor_0, value_maxNumberOfChannels,
+                               value_supportedCodecs, value_supportedSampleRates, value_supportedBitDepths);
+            return value;
+        }
+        case Attributes::TwoWayTalkSupport::Id: {
+            using TypeInfo = Attributes::TwoWayTalkSupport::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Integer";
+            std::string valueCtorSignature = "(I)V";
+            jint jnivalue                  = static_cast<jint>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue,
+                                                                       value);
+            return value;
+        }
+        case Attributes::SupportedSnapshotParams::Id: {
+            using TypeInfo = Attributes::SupportedSnapshotParams::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                jobject newElement_0_resolution;
+
+                jclass dimensionStructStructClass_2;
+                err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                    env, "chip/devicecontroller/ChipStructs$CameraAvStreamManagementClusterDimensionStruct",
+                    dimensionStructStructClass_2);
+                if (err != CHIP_NO_ERROR)
+                {
+                    ChipLogError(Zcl, "Could not find class ChipStructs$CameraAvStreamManagementClusterDimensionStruct");
+                    return nullptr;
+                }
+
+                jmethodID dimensionStructStructCtor_2;
+                err = chip::JniReferences::GetInstance().FindMethod(env, dimensionStructStructClass_2, "<init>", "()V",
+                                                                    &dimensionStructStructCtor_2);
+                if (err != CHIP_NO_ERROR || dimensionStructStructCtor_2 == nullptr)
+                {
+                    ChipLogError(Zcl, "Could not find ChipStructs$CameraAvStreamManagementClusterDimensionStruct constructor");
+                    return nullptr;
+                }
+
+                newElement_0_resolution = env->NewObject(dimensionStructStructClass_2, dimensionStructStructCtor_2);
+                jobject newElement_0_maxFrameRate;
+                std::string newElement_0_maxFrameRateClassName     = "java/lang/Integer";
+                std::string newElement_0_maxFrameRateCtorSignature = "(I)V";
+                jint jninewElement_0_maxFrameRate                  = static_cast<jint>(entry_0.maxFrameRate);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(newElement_0_maxFrameRateClassName.c_str(),
+                                                                           newElement_0_maxFrameRateCtorSignature.c_str(),
+                                                                           jninewElement_0_maxFrameRate, newElement_0_maxFrameRate);
+                jobject newElement_0_imageCodec;
+                std::string newElement_0_imageCodecClassName     = "java/lang/Integer";
+                std::string newElement_0_imageCodecCtorSignature = "(I)V";
+                jint jninewElement_0_imageCodec                  = static_cast<jint>(entry_0.imageCodec);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(newElement_0_imageCodecClassName.c_str(),
+                                                                           newElement_0_imageCodecCtorSignature.c_str(),
+                                                                           jninewElement_0_imageCodec, newElement_0_imageCodec);
+
+                jclass snapshotParamsStructStructClass_1;
+                err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                    env, "chip/devicecontroller/ChipStructs$CameraAvStreamManagementClusterSnapshotParamsStruct",
+                    snapshotParamsStructStructClass_1);
+                if (err != CHIP_NO_ERROR)
+                {
+                    ChipLogError(Zcl, "Could not find class ChipStructs$CameraAvStreamManagementClusterSnapshotParamsStruct");
+                    return nullptr;
+                }
+
+                jmethodID snapshotParamsStructStructCtor_1;
+                err = chip::JniReferences::GetInstance().FindMethod(
+                    env, snapshotParamsStructStructClass_1, "<init>",
+                    "(Lchip/devicecontroller/ChipStructs$CameraAvStreamManagementClusterDimensionStruct;Ljava/lang/Integer;Ljava/"
+                    "lang/Integer;)V",
+                    &snapshotParamsStructStructCtor_1);
+                if (err != CHIP_NO_ERROR || snapshotParamsStructStructCtor_1 == nullptr)
+                {
+                    ChipLogError(Zcl, "Could not find ChipStructs$CameraAvStreamManagementClusterSnapshotParamsStruct constructor");
+                    return nullptr;
+                }
+
+                newElement_0 = env->NewObject(snapshotParamsStructStructClass_1, snapshotParamsStructStructCtor_1,
+                                              newElement_0_resolution, newElement_0_maxFrameRate, newElement_0_imageCodec);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::HDRCapable::Id: {
+            using TypeInfo = Attributes::HDRCapable::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Boolean";
+            std::string valueCtorSignature = "(Z)V";
+            jboolean jnivalue              = static_cast<jboolean>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jboolean>(valueClassName.c_str(), valueCtorSignature.c_str(),
+                                                                           jnivalue, value);
+            return value;
+        }
+        case Attributes::MaxNetworkBandwidth::Id: {
+            using TypeInfo = Attributes::MaxNetworkBandwidth::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Long";
+            std::string valueCtorSignature = "(J)V";
+            jlong jnivalue                 = static_cast<jlong>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(valueClassName.c_str(), valueCtorSignature.c_str(),
+                                                                        jnivalue, value);
+            return value;
+        }
+        case Attributes::CurrentFrameRate::Id: {
+            using TypeInfo = Attributes::CurrentFrameRate::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Integer";
+            std::string valueCtorSignature = "(I)V";
+            jint jnivalue                  = static_cast<jint>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue,
+                                                                       value);
+            return value;
+        }
+        case Attributes::HDRMode::Id: {
+            using TypeInfo = Attributes::HDRMode::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Boolean";
+            std::string valueCtorSignature = "(Z)V";
+            jboolean jnivalue              = static_cast<jboolean>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jboolean>(valueClassName.c_str(), valueCtorSignature.c_str(),
+                                                                           jnivalue, value);
+            return value;
+        }
+        case Attributes::CurrentVideoCodecs::Id: {
+            using TypeInfo = Attributes::CurrentVideoCodecs::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                std::string newElement_0ClassName     = "java/lang/Integer";
+                std::string newElement_0CtorSignature = "(I)V";
+                jint jninewElement_0                  = static_cast<jint>(entry_0);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                    newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::CurrentSnapshotConfig::Id: {
+            using TypeInfo = Attributes::CurrentSnapshotConfig::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            jobject value_resolution;
+
+            jclass dimensionStructStructClass_1;
+            err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                env, "chip/devicecontroller/ChipStructs$CameraAvStreamManagementClusterDimensionStruct",
+                dimensionStructStructClass_1);
+            if (err != CHIP_NO_ERROR)
+            {
+                ChipLogError(Zcl, "Could not find class ChipStructs$CameraAvStreamManagementClusterDimensionStruct");
+                return nullptr;
+            }
+
+            jmethodID dimensionStructStructCtor_1;
+            err = chip::JniReferences::GetInstance().FindMethod(env, dimensionStructStructClass_1, "<init>", "()V",
+                                                                &dimensionStructStructCtor_1);
+            if (err != CHIP_NO_ERROR || dimensionStructStructCtor_1 == nullptr)
+            {
+                ChipLogError(Zcl, "Could not find ChipStructs$CameraAvStreamManagementClusterDimensionStruct constructor");
+                return nullptr;
+            }
+
+            value_resolution = env->NewObject(dimensionStructStructClass_1, dimensionStructStructCtor_1);
+            jobject value_maxFrameRate;
+            std::string value_maxFrameRateClassName     = "java/lang/Integer";
+            std::string value_maxFrameRateCtorSignature = "(I)V";
+            jint jnivalue_maxFrameRate                  = static_cast<jint>(cppValue.maxFrameRate);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(value_maxFrameRateClassName.c_str(),
+                                                                       value_maxFrameRateCtorSignature.c_str(),
+                                                                       jnivalue_maxFrameRate, value_maxFrameRate);
+            jobject value_imageCodec;
+            std::string value_imageCodecClassName     = "java/lang/Integer";
+            std::string value_imageCodecCtorSignature = "(I)V";
+            jint jnivalue_imageCodec                  = static_cast<jint>(cppValue.imageCodec);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                value_imageCodecClassName.c_str(), value_imageCodecCtorSignature.c_str(), jnivalue_imageCodec, value_imageCodec);
+
+            jclass snapshotParamsStructStructClass_0;
+            err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                env, "chip/devicecontroller/ChipStructs$CameraAvStreamManagementClusterSnapshotParamsStruct",
+                snapshotParamsStructStructClass_0);
+            if (err != CHIP_NO_ERROR)
+            {
+                ChipLogError(Zcl, "Could not find class ChipStructs$CameraAvStreamManagementClusterSnapshotParamsStruct");
+                return nullptr;
+            }
+
+            jmethodID snapshotParamsStructStructCtor_0;
+            err = chip::JniReferences::GetInstance().FindMethod(
+                env, snapshotParamsStructStructClass_0, "<init>",
+                "(Lchip/devicecontroller/ChipStructs$CameraAvStreamManagementClusterDimensionStruct;Ljava/lang/Integer;Ljava/lang/"
+                "Integer;)V",
+                &snapshotParamsStructStructCtor_0);
+            if (err != CHIP_NO_ERROR || snapshotParamsStructStructCtor_0 == nullptr)
+            {
+                ChipLogError(Zcl, "Could not find ChipStructs$CameraAvStreamManagementClusterSnapshotParamsStruct constructor");
+                return nullptr;
+            }
+
+            value = env->NewObject(snapshotParamsStructStructClass_0, snapshotParamsStructStructCtor_0, value_resolution,
+                                   value_maxFrameRate, value_imageCodec);
+            return value;
+        }
+        case Attributes::FabricsUsingCamera::Id: {
+            using TypeInfo = Attributes::FabricsUsingCamera::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                std::string newElement_0ClassName     = "java/lang/Integer";
+                std::string newElement_0CtorSignature = "(I)V";
+                jint jninewElement_0                  = static_cast<jint>(entry_0);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                    newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::AllocatedVideoStreams::Id: {
+            using TypeInfo = Attributes::AllocatedVideoStreams::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                jobject newElement_0_videoStreamID;
+                std::string newElement_0_videoStreamIDClassName     = "java/lang/Integer";
+                std::string newElement_0_videoStreamIDCtorSignature = "(I)V";
+                jint jninewElement_0_videoStreamID                  = static_cast<jint>(entry_0.videoStreamID);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                    newElement_0_videoStreamIDClassName.c_str(), newElement_0_videoStreamIDCtorSignature.c_str(),
+                    jninewElement_0_videoStreamID, newElement_0_videoStreamID);
+                jobject newElement_0_streamType;
+                std::string newElement_0_streamTypeClassName     = "java/lang/Integer";
+                std::string newElement_0_streamTypeCtorSignature = "(I)V";
+                jint jninewElement_0_streamType                  = static_cast<jint>(entry_0.streamType);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(newElement_0_streamTypeClassName.c_str(),
+                                                                           newElement_0_streamTypeCtorSignature.c_str(),
+                                                                           jninewElement_0_streamType, newElement_0_streamType);
+                jobject newElement_0_videoCodec;
+                std::string newElement_0_videoCodecClassName     = "java/lang/Integer";
+                std::string newElement_0_videoCodecCtorSignature = "(I)V";
+                jint jninewElement_0_videoCodec                  = static_cast<jint>(entry_0.videoCodec);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(newElement_0_videoCodecClassName.c_str(),
+                                                                           newElement_0_videoCodecCtorSignature.c_str(),
+                                                                           jninewElement_0_videoCodec, newElement_0_videoCodec);
+                jobject newElement_0_minFrameRate;
+                std::string newElement_0_minFrameRateClassName     = "java/lang/Integer";
+                std::string newElement_0_minFrameRateCtorSignature = "(I)V";
+                jint jninewElement_0_minFrameRate                  = static_cast<jint>(entry_0.minFrameRate);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(newElement_0_minFrameRateClassName.c_str(),
+                                                                           newElement_0_minFrameRateCtorSignature.c_str(),
+                                                                           jninewElement_0_minFrameRate, newElement_0_minFrameRate);
+                jobject newElement_0_maxFrameRate;
+                std::string newElement_0_maxFrameRateClassName     = "java/lang/Integer";
+                std::string newElement_0_maxFrameRateCtorSignature = "(I)V";
+                jint jninewElement_0_maxFrameRate                  = static_cast<jint>(entry_0.maxFrameRate);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(newElement_0_maxFrameRateClassName.c_str(),
+                                                                           newElement_0_maxFrameRateCtorSignature.c_str(),
+                                                                           jninewElement_0_maxFrameRate, newElement_0_maxFrameRate);
+                jobject newElement_0_minResolution;
+
+                jclass dimensionStructStructClass_2;
+                err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                    env, "chip/devicecontroller/ChipStructs$CameraAvStreamManagementClusterDimensionStruct",
+                    dimensionStructStructClass_2);
+                if (err != CHIP_NO_ERROR)
+                {
+                    ChipLogError(Zcl, "Could not find class ChipStructs$CameraAvStreamManagementClusterDimensionStruct");
+                    return nullptr;
+                }
+
+                jmethodID dimensionStructStructCtor_2;
+                err = chip::JniReferences::GetInstance().FindMethod(env, dimensionStructStructClass_2, "<init>", "()V",
+                                                                    &dimensionStructStructCtor_2);
+                if (err != CHIP_NO_ERROR || dimensionStructStructCtor_2 == nullptr)
+                {
+                    ChipLogError(Zcl, "Could not find ChipStructs$CameraAvStreamManagementClusterDimensionStruct constructor");
+                    return nullptr;
+                }
+
+                newElement_0_minResolution = env->NewObject(dimensionStructStructClass_2, dimensionStructStructCtor_2);
+                jobject newElement_0_maxResolution;
+
+                jclass dimensionStructStructClass_2;
+                err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                    env, "chip/devicecontroller/ChipStructs$CameraAvStreamManagementClusterDimensionStruct",
+                    dimensionStructStructClass_2);
+                if (err != CHIP_NO_ERROR)
+                {
+                    ChipLogError(Zcl, "Could not find class ChipStructs$CameraAvStreamManagementClusterDimensionStruct");
+                    return nullptr;
+                }
+
+                jmethodID dimensionStructStructCtor_2;
+                err = chip::JniReferences::GetInstance().FindMethod(env, dimensionStructStructClass_2, "<init>", "()V",
+                                                                    &dimensionStructStructCtor_2);
+                if (err != CHIP_NO_ERROR || dimensionStructStructCtor_2 == nullptr)
+                {
+                    ChipLogError(Zcl, "Could not find ChipStructs$CameraAvStreamManagementClusterDimensionStruct constructor");
+                    return nullptr;
+                }
+
+                newElement_0_maxResolution = env->NewObject(dimensionStructStructClass_2, dimensionStructStructCtor_2);
+                jobject newElement_0_minBitRate;
+                std::string newElement_0_minBitRateClassName     = "java/lang/Integer";
+                std::string newElement_0_minBitRateCtorSignature = "(I)V";
+                jint jninewElement_0_minBitRate                  = static_cast<jint>(entry_0.minBitRate);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(newElement_0_minBitRateClassName.c_str(),
+                                                                           newElement_0_minBitRateCtorSignature.c_str(),
+                                                                           jninewElement_0_minBitRate, newElement_0_minBitRate);
+                jobject newElement_0_maxBitRate;
+                std::string newElement_0_maxBitRateClassName     = "java/lang/Integer";
+                std::string newElement_0_maxBitRateCtorSignature = "(I)V";
+                jint jninewElement_0_maxBitRate                  = static_cast<jint>(entry_0.maxBitRate);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(newElement_0_maxBitRateClassName.c_str(),
+                                                                           newElement_0_maxBitRateCtorSignature.c_str(),
+                                                                           jninewElement_0_maxBitRate, newElement_0_maxBitRate);
+                jobject newElement_0_minFragmentLen;
+                std::string newElement_0_minFragmentLenClassName     = "java/lang/Integer";
+                std::string newElement_0_minFragmentLenCtorSignature = "(I)V";
+                jint jninewElement_0_minFragmentLen                  = static_cast<jint>(entry_0.minFragmentLen);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                    newElement_0_minFragmentLenClassName.c_str(), newElement_0_minFragmentLenCtorSignature.c_str(),
+                    jninewElement_0_minFragmentLen, newElement_0_minFragmentLen);
+                jobject newElement_0_maxFragmentLen;
+                std::string newElement_0_maxFragmentLenClassName     = "java/lang/Integer";
+                std::string newElement_0_maxFragmentLenCtorSignature = "(I)V";
+                jint jninewElement_0_maxFragmentLen                  = static_cast<jint>(entry_0.maxFragmentLen);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                    newElement_0_maxFragmentLenClassName.c_str(), newElement_0_maxFragmentLenCtorSignature.c_str(),
+                    jninewElement_0_maxFragmentLen, newElement_0_maxFragmentLen);
+                jobject newElement_0_referenceCount;
+                std::string newElement_0_referenceCountClassName     = "java/lang/Integer";
+                std::string newElement_0_referenceCountCtorSignature = "(I)V";
+                jint jninewElement_0_referenceCount                  = static_cast<jint>(entry_0.referenceCount);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                    newElement_0_referenceCountClassName.c_str(), newElement_0_referenceCountCtorSignature.c_str(),
+                    jninewElement_0_referenceCount, newElement_0_referenceCount);
+
+                jclass videoStreamStructStructClass_1;
+                err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                    env, "chip/devicecontroller/ChipStructs$CameraAvStreamManagementClusterVideoStreamStruct",
+                    videoStreamStructStructClass_1);
+                if (err != CHIP_NO_ERROR)
+                {
+                    ChipLogError(Zcl, "Could not find class ChipStructs$CameraAvStreamManagementClusterVideoStreamStruct");
+                    return nullptr;
+                }
+
+                jmethodID videoStreamStructStructCtor_1;
+                err = chip::JniReferences::GetInstance().FindMethod(
+                    env, videoStreamStructStructClass_1, "<init>",
+                    "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Lchip/"
+                    "devicecontroller/ChipStructs$CameraAvStreamManagementClusterDimensionStruct;Lchip/devicecontroller/"
+                    "ChipStructs$CameraAvStreamManagementClusterDimensionStruct;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/"
+                    "Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V",
+                    &videoStreamStructStructCtor_1);
+                if (err != CHIP_NO_ERROR || videoStreamStructStructCtor_1 == nullptr)
+                {
+                    ChipLogError(Zcl, "Could not find ChipStructs$CameraAvStreamManagementClusterVideoStreamStruct constructor");
+                    return nullptr;
+                }
+
+                newElement_0 = env->NewObject(
+                    videoStreamStructStructClass_1, videoStreamStructStructCtor_1, newElement_0_videoStreamID,
+                    newElement_0_streamType, newElement_0_videoCodec, newElement_0_minFrameRate, newElement_0_maxFrameRate,
+                    newElement_0_minResolution, newElement_0_maxResolution, newElement_0_minBitRate, newElement_0_maxBitRate,
+                    newElement_0_minFragmentLen, newElement_0_maxFragmentLen, newElement_0_referenceCount);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::AllocatedAudioStreams::Id: {
+            using TypeInfo = Attributes::AllocatedAudioStreams::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                jobject newElement_0_audioStreamID;
+                std::string newElement_0_audioStreamIDClassName     = "java/lang/Integer";
+                std::string newElement_0_audioStreamIDCtorSignature = "(I)V";
+                jint jninewElement_0_audioStreamID                  = static_cast<jint>(entry_0.audioStreamID);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                    newElement_0_audioStreamIDClassName.c_str(), newElement_0_audioStreamIDCtorSignature.c_str(),
+                    jninewElement_0_audioStreamID, newElement_0_audioStreamID);
+                jobject newElement_0_streamType;
+                std::string newElement_0_streamTypeClassName     = "java/lang/Integer";
+                std::string newElement_0_streamTypeCtorSignature = "(I)V";
+                jint jninewElement_0_streamType                  = static_cast<jint>(entry_0.streamType);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(newElement_0_streamTypeClassName.c_str(),
+                                                                           newElement_0_streamTypeCtorSignature.c_str(),
+                                                                           jninewElement_0_streamType, newElement_0_streamType);
+                jobject newElement_0_audioCodec;
+                std::string newElement_0_audioCodecClassName     = "java/lang/Integer";
+                std::string newElement_0_audioCodecCtorSignature = "(I)V";
+                jint jninewElement_0_audioCodec                  = static_cast<jint>(entry_0.audioCodec);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(newElement_0_audioCodecClassName.c_str(),
+                                                                           newElement_0_audioCodecCtorSignature.c_str(),
+                                                                           jninewElement_0_audioCodec, newElement_0_audioCodec);
+                jobject newElement_0_channelCount;
+                std::string newElement_0_channelCountClassName     = "java/lang/Integer";
+                std::string newElement_0_channelCountCtorSignature = "(I)V";
+                jint jninewElement_0_channelCount                  = static_cast<jint>(entry_0.channelCount);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(newElement_0_channelCountClassName.c_str(),
+                                                                           newElement_0_channelCountCtorSignature.c_str(),
+                                                                           jninewElement_0_channelCount, newElement_0_channelCount);
+                jobject newElement_0_sampleRate;
+                std::string newElement_0_sampleRateClassName     = "java/lang/Long";
+                std::string newElement_0_sampleRateCtorSignature = "(J)V";
+                jlong jninewElement_0_sampleRate                 = static_cast<jlong>(entry_0.sampleRate);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(newElement_0_sampleRateClassName.c_str(),
+                                                                            newElement_0_sampleRateCtorSignature.c_str(),
+                                                                            jninewElement_0_sampleRate, newElement_0_sampleRate);
+                jobject newElement_0_bitRate;
+                std::string newElement_0_bitRateClassName     = "java/lang/Long";
+                std::string newElement_0_bitRateCtorSignature = "(J)V";
+                jlong jninewElement_0_bitRate                 = static_cast<jlong>(entry_0.bitRate);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(newElement_0_bitRateClassName.c_str(),
+                                                                            newElement_0_bitRateCtorSignature.c_str(),
+                                                                            jninewElement_0_bitRate, newElement_0_bitRate);
+                jobject newElement_0_bitDepth;
+                std::string newElement_0_bitDepthClassName     = "java/lang/Integer";
+                std::string newElement_0_bitDepthCtorSignature = "(I)V";
+                jint jninewElement_0_bitDepth                  = static_cast<jint>(entry_0.bitDepth);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(newElement_0_bitDepthClassName.c_str(),
+                                                                           newElement_0_bitDepthCtorSignature.c_str(),
+                                                                           jninewElement_0_bitDepth, newElement_0_bitDepth);
+                jobject newElement_0_referenceCount;
+                std::string newElement_0_referenceCountClassName     = "java/lang/Integer";
+                std::string newElement_0_referenceCountCtorSignature = "(I)V";
+                jint jninewElement_0_referenceCount                  = static_cast<jint>(entry_0.referenceCount);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                    newElement_0_referenceCountClassName.c_str(), newElement_0_referenceCountCtorSignature.c_str(),
+                    jninewElement_0_referenceCount, newElement_0_referenceCount);
+
+                jclass audioStreamStructStructClass_1;
+                err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                    env, "chip/devicecontroller/ChipStructs$CameraAvStreamManagementClusterAudioStreamStruct",
+                    audioStreamStructStructClass_1);
+                if (err != CHIP_NO_ERROR)
+                {
+                    ChipLogError(Zcl, "Could not find class ChipStructs$CameraAvStreamManagementClusterAudioStreamStruct");
+                    return nullptr;
+                }
+
+                jmethodID audioStreamStructStructCtor_1;
+                err = chip::JniReferences::GetInstance().FindMethod(
+                    env, audioStreamStructStructClass_1, "<init>",
+                    "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Long;Ljava/lang/"
+                    "Long;Ljava/lang/Integer;Ljava/lang/Integer;)V",
+                    &audioStreamStructStructCtor_1);
+                if (err != CHIP_NO_ERROR || audioStreamStructStructCtor_1 == nullptr)
+                {
+                    ChipLogError(Zcl, "Could not find ChipStructs$CameraAvStreamManagementClusterAudioStreamStruct constructor");
+                    return nullptr;
+                }
+
+                newElement_0 = env->NewObject(audioStreamStructStructClass_1, audioStreamStructStructCtor_1,
+                                              newElement_0_audioStreamID, newElement_0_streamType, newElement_0_audioCodec,
+                                              newElement_0_channelCount, newElement_0_sampleRate, newElement_0_bitRate,
+                                              newElement_0_bitDepth, newElement_0_referenceCount);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::AllocatedSnapshotStreams::Id: {
+            using TypeInfo = Attributes::AllocatedSnapshotStreams::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                jobject newElement_0_snapshotStreamID;
+                std::string newElement_0_snapshotStreamIDClassName     = "java/lang/Integer";
+                std::string newElement_0_snapshotStreamIDCtorSignature = "(I)V";
+                jint jninewElement_0_snapshotStreamID                  = static_cast<jint>(entry_0.snapshotStreamID);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                    newElement_0_snapshotStreamIDClassName.c_str(), newElement_0_snapshotStreamIDCtorSignature.c_str(),
+                    jninewElement_0_snapshotStreamID, newElement_0_snapshotStreamID);
+                jobject newElement_0_imageCodec;
+                std::string newElement_0_imageCodecClassName     = "java/lang/Integer";
+                std::string newElement_0_imageCodecCtorSignature = "(I)V";
+                jint jninewElement_0_imageCodec                  = static_cast<jint>(entry_0.imageCodec);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(newElement_0_imageCodecClassName.c_str(),
+                                                                           newElement_0_imageCodecCtorSignature.c_str(),
+                                                                           jninewElement_0_imageCodec, newElement_0_imageCodec);
+                jobject newElement_0_frameRate;
+                std::string newElement_0_frameRateClassName     = "java/lang/Integer";
+                std::string newElement_0_frameRateCtorSignature = "(I)V";
+                jint jninewElement_0_frameRate                  = static_cast<jint>(entry_0.frameRate);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(newElement_0_frameRateClassName.c_str(),
+                                                                           newElement_0_frameRateCtorSignature.c_str(),
+                                                                           jninewElement_0_frameRate, newElement_0_frameRate);
+                jobject newElement_0_bitRate;
+                std::string newElement_0_bitRateClassName     = "java/lang/Long";
+                std::string newElement_0_bitRateCtorSignature = "(J)V";
+                jlong jninewElement_0_bitRate                 = static_cast<jlong>(entry_0.bitRate);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(newElement_0_bitRateClassName.c_str(),
+                                                                            newElement_0_bitRateCtorSignature.c_str(),
+                                                                            jninewElement_0_bitRate, newElement_0_bitRate);
+                jobject newElement_0_minResolution;
+
+                jclass dimensionStructStructClass_2;
+                err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                    env, "chip/devicecontroller/ChipStructs$CameraAvStreamManagementClusterDimensionStruct",
+                    dimensionStructStructClass_2);
+                if (err != CHIP_NO_ERROR)
+                {
+                    ChipLogError(Zcl, "Could not find class ChipStructs$CameraAvStreamManagementClusterDimensionStruct");
+                    return nullptr;
+                }
+
+                jmethodID dimensionStructStructCtor_2;
+                err = chip::JniReferences::GetInstance().FindMethod(env, dimensionStructStructClass_2, "<init>", "()V",
+                                                                    &dimensionStructStructCtor_2);
+                if (err != CHIP_NO_ERROR || dimensionStructStructCtor_2 == nullptr)
+                {
+                    ChipLogError(Zcl, "Could not find ChipStructs$CameraAvStreamManagementClusterDimensionStruct constructor");
+                    return nullptr;
+                }
+
+                newElement_0_minResolution = env->NewObject(dimensionStructStructClass_2, dimensionStructStructCtor_2);
+                jobject newElement_0_maxResolution;
+
+                jclass dimensionStructStructClass_2;
+                err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                    env, "chip/devicecontroller/ChipStructs$CameraAvStreamManagementClusterDimensionStruct",
+                    dimensionStructStructClass_2);
+                if (err != CHIP_NO_ERROR)
+                {
+                    ChipLogError(Zcl, "Could not find class ChipStructs$CameraAvStreamManagementClusterDimensionStruct");
+                    return nullptr;
+                }
+
+                jmethodID dimensionStructStructCtor_2;
+                err = chip::JniReferences::GetInstance().FindMethod(env, dimensionStructStructClass_2, "<init>", "()V",
+                                                                    &dimensionStructStructCtor_2);
+                if (err != CHIP_NO_ERROR || dimensionStructStructCtor_2 == nullptr)
+                {
+                    ChipLogError(Zcl, "Could not find ChipStructs$CameraAvStreamManagementClusterDimensionStruct constructor");
+                    return nullptr;
+                }
+
+                newElement_0_maxResolution = env->NewObject(dimensionStructStructClass_2, dimensionStructStructCtor_2);
+                jobject newElement_0_quality;
+                std::string newElement_0_qualityClassName     = "java/lang/Integer";
+                std::string newElement_0_qualityCtorSignature = "(I)V";
+                jint jninewElement_0_quality                  = static_cast<jint>(entry_0.quality);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(newElement_0_qualityClassName.c_str(),
+                                                                           newElement_0_qualityCtorSignature.c_str(),
+                                                                           jninewElement_0_quality, newElement_0_quality);
+                jobject newElement_0_referenceCount;
+                std::string newElement_0_referenceCountClassName     = "java/lang/Integer";
+                std::string newElement_0_referenceCountCtorSignature = "(I)V";
+                jint jninewElement_0_referenceCount                  = static_cast<jint>(entry_0.referenceCount);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                    newElement_0_referenceCountClassName.c_str(), newElement_0_referenceCountCtorSignature.c_str(),
+                    jninewElement_0_referenceCount, newElement_0_referenceCount);
+
+                jclass snapshotStreamStructStructClass_1;
+                err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                    env, "chip/devicecontroller/ChipStructs$CameraAvStreamManagementClusterSnapshotStreamStruct",
+                    snapshotStreamStructStructClass_1);
+                if (err != CHIP_NO_ERROR)
+                {
+                    ChipLogError(Zcl, "Could not find class ChipStructs$CameraAvStreamManagementClusterSnapshotStreamStruct");
+                    return nullptr;
+                }
+
+                jmethodID snapshotStreamStructStructCtor_1;
+                err = chip::JniReferences::GetInstance().FindMethod(
+                    env, snapshotStreamStructStructClass_1, "<init>",
+                    "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Long;Lchip/devicecontroller/"
+                    "ChipStructs$CameraAvStreamManagementClusterDimensionStruct;Lchip/devicecontroller/"
+                    "ChipStructs$CameraAvStreamManagementClusterDimensionStruct;Ljava/lang/Integer;Ljava/lang/Integer;)V",
+                    &snapshotStreamStructStructCtor_1);
+                if (err != CHIP_NO_ERROR || snapshotStreamStructStructCtor_1 == nullptr)
+                {
+                    ChipLogError(Zcl, "Could not find ChipStructs$CameraAvStreamManagementClusterSnapshotStreamStruct constructor");
+                    return nullptr;
+                }
+
+                newElement_0 = env->NewObject(snapshotStreamStructStructClass_1, snapshotStreamStructStructCtor_1,
+                                              newElement_0_snapshotStreamID, newElement_0_imageCodec, newElement_0_frameRate,
+                                              newElement_0_bitRate, newElement_0_minResolution, newElement_0_maxResolution,
+                                              newElement_0_quality, newElement_0_referenceCount);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::RankedVideoStreamPrioritiesList::Id: {
+            using TypeInfo = Attributes::RankedVideoStreamPrioritiesList::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                std::string newElement_0ClassName     = "java/lang/Integer";
+                std::string newElement_0CtorSignature = "(I)V";
+                jint jninewElement_0                  = static_cast<jint>(entry_0);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                    newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::SoftRecordingPrivacyModeSetting::Id: {
+            using TypeInfo = Attributes::SoftRecordingPrivacyModeSetting::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Boolean";
+            std::string valueCtorSignature = "(Z)V";
+            jboolean jnivalue              = static_cast<jboolean>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jboolean>(valueClassName.c_str(), valueCtorSignature.c_str(),
+                                                                           jnivalue, value);
+            return value;
+        }
+        case Attributes::SoftLivestreamPrivacyModeSetting::Id: {
+            using TypeInfo = Attributes::SoftLivestreamPrivacyModeSetting::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Boolean";
+            std::string valueCtorSignature = "(Z)V";
+            jboolean jnivalue              = static_cast<jboolean>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jboolean>(valueClassName.c_str(), valueCtorSignature.c_str(),
+                                                                           jnivalue, value);
+            return value;
+        }
+        case Attributes::HardPrivacyMode::Id: {
+            using TypeInfo = Attributes::HardPrivacyMode::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Boolean";
+            std::string valueCtorSignature = "(Z)V";
+            jboolean jnivalue              = static_cast<jboolean>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jboolean>(valueClassName.c_str(), valueCtorSignature.c_str(),
+                                                                           jnivalue, value);
+            return value;
+        }
+        case Attributes::NightVision::Id: {
+            using TypeInfo = Attributes::NightVision::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Integer";
+            std::string valueCtorSignature = "(I)V";
+            jint jnivalue                  = static_cast<jint>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue,
+                                                                       value);
+            return value;
+        }
+        case Attributes::NightVisionIllum::Id: {
+            using TypeInfo = Attributes::NightVisionIllum::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Integer";
+            std::string valueCtorSignature = "(I)V";
+            jint jnivalue                  = static_cast<jint>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue,
+                                                                       value);
+            return value;
+        }
+        case Attributes::Awb::Id: {
+            using TypeInfo = Attributes::Awb::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Boolean";
+            std::string valueCtorSignature = "(Z)V";
+            jboolean jnivalue              = static_cast<jboolean>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jboolean>(valueClassName.c_str(), valueCtorSignature.c_str(),
+                                                                           jnivalue, value);
+            return value;
+        }
+        case Attributes::ShutterSpeed::Id: {
+            using TypeInfo = Attributes::ShutterSpeed::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Boolean";
+            std::string valueCtorSignature = "(Z)V";
+            jboolean jnivalue              = static_cast<jboolean>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jboolean>(valueClassName.c_str(), valueCtorSignature.c_str(),
+                                                                           jnivalue, value);
+            return value;
+        }
+        case Attributes::Iso::Id: {
+            using TypeInfo = Attributes::Iso::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Boolean";
+            std::string valueCtorSignature = "(Z)V";
+            jboolean jnivalue              = static_cast<jboolean>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jboolean>(valueClassName.c_str(), valueCtorSignature.c_str(),
+                                                                           jnivalue, value);
+            return value;
+        }
+        case Attributes::Viewport::Id: {
+            using TypeInfo = Attributes::Viewport::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            jobject value_x1;
+            std::string value_x1ClassName     = "java/lang/Integer";
+            std::string value_x1CtorSignature = "(I)V";
+            jint jnivalue_x1                  = static_cast<jint>(cppValue.x1);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(value_x1ClassName.c_str(), value_x1CtorSignature.c_str(),
+                                                                       jnivalue_x1, value_x1);
+            jobject value_y1;
+            std::string value_y1ClassName     = "java/lang/Integer";
+            std::string value_y1CtorSignature = "(I)V";
+            jint jnivalue_y1                  = static_cast<jint>(cppValue.y1);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(value_y1ClassName.c_str(), value_y1CtorSignature.c_str(),
+                                                                       jnivalue_y1, value_y1);
+            jobject value_x2;
+            std::string value_x2ClassName     = "java/lang/Integer";
+            std::string value_x2CtorSignature = "(I)V";
+            jint jnivalue_x2                  = static_cast<jint>(cppValue.x2);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(value_x2ClassName.c_str(), value_x2CtorSignature.c_str(),
+                                                                       jnivalue_x2, value_x2);
+            jobject value_y2;
+            std::string value_y2ClassName     = "java/lang/Integer";
+            std::string value_y2CtorSignature = "(I)V";
+            jint jnivalue_y2                  = static_cast<jint>(cppValue.y2);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(value_y2ClassName.c_str(), value_y2CtorSignature.c_str(),
+                                                                       jnivalue_y2, value_y2);
+
+            jclass viewportStructStructClass_0;
+            err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                env, "chip/devicecontroller/ChipStructs$CameraAvStreamManagementClusterViewportStruct",
+                viewportStructStructClass_0);
+            if (err != CHIP_NO_ERROR)
+            {
+                ChipLogError(Zcl, "Could not find class ChipStructs$CameraAvStreamManagementClusterViewportStruct");
+                return nullptr;
+            }
+
+            jmethodID viewportStructStructCtor_0;
+            err = chip::JniReferences::GetInstance().FindMethod(
+                env, viewportStructStructClass_0, "<init>",
+                "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V", &viewportStructStructCtor_0);
+            if (err != CHIP_NO_ERROR || viewportStructStructCtor_0 == nullptr)
+            {
+                ChipLogError(Zcl, "Could not find ChipStructs$CameraAvStreamManagementClusterViewportStruct constructor");
+                return nullptr;
+            }
+
+            value = env->NewObject(viewportStructStructClass_0, viewportStructStructCtor_0, value_x1, value_y1, value_x2, value_y2);
+            return value;
+        }
+        case Attributes::SpkrOnOff::Id: {
+            using TypeInfo = Attributes::SpkrOnOff::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Boolean";
+            std::string valueCtorSignature = "(Z)V";
+            jboolean jnivalue              = static_cast<jboolean>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jboolean>(valueClassName.c_str(), valueCtorSignature.c_str(),
+                                                                           jnivalue, value);
+            return value;
+        }
+        case Attributes::SpkrVolumeLevel::Id: {
+            using TypeInfo = Attributes::SpkrVolumeLevel::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Integer";
+            std::string valueCtorSignature = "(I)V";
+            jint jnivalue                  = static_cast<jint>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue,
+                                                                       value);
+            return value;
+        }
+        case Attributes::SpkrMaxLevel::Id: {
+            using TypeInfo = Attributes::SpkrMaxLevel::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Integer";
+            std::string valueCtorSignature = "(I)V";
+            jint jnivalue                  = static_cast<jint>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue,
+                                                                       value);
+            return value;
+        }
+        case Attributes::SpkrMinLevel::Id: {
+            using TypeInfo = Attributes::SpkrMinLevel::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Integer";
+            std::string valueCtorSignature = "(I)V";
+            jint jnivalue                  = static_cast<jint>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue,
+                                                                       value);
+            return value;
+        }
+        case Attributes::MicOnOff::Id: {
+            using TypeInfo = Attributes::MicOnOff::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Boolean";
+            std::string valueCtorSignature = "(Z)V";
+            jboolean jnivalue              = static_cast<jboolean>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jboolean>(valueClassName.c_str(), valueCtorSignature.c_str(),
+                                                                           jnivalue, value);
+            return value;
+        }
+        case Attributes::MicCurrentLevel::Id: {
+            using TypeInfo = Attributes::MicCurrentLevel::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Integer";
+            std::string valueCtorSignature = "(I)V";
+            jint jnivalue                  = static_cast<jint>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue,
+                                                                       value);
+            return value;
+        }
+        case Attributes::MicMaxLevel::Id: {
+            using TypeInfo = Attributes::MicMaxLevel::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Integer";
+            std::string valueCtorSignature = "(I)V";
+            jint jnivalue                  = static_cast<jint>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue,
+                                                                       value);
+            return value;
+        }
+        case Attributes::MicMinLevel::Id: {
+            using TypeInfo = Attributes::MicMinLevel::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Integer";
+            std::string valueCtorSignature = "(I)V";
+            jint jnivalue                  = static_cast<jint>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue,
+                                                                       value);
+            return value;
+        }
+        case Attributes::MicAGC::Id: {
+            using TypeInfo = Attributes::MicAGC::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Boolean";
+            std::string valueCtorSignature = "(Z)V";
+            jboolean jnivalue              = static_cast<jboolean>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jboolean>(valueClassName.c_str(), valueCtorSignature.c_str(),
+                                                                           jnivalue, value);
+            return value;
+        }
+        case Attributes::ImageRotation::Id: {
+            using TypeInfo = Attributes::ImageRotation::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Integer";
+            std::string valueCtorSignature = "(I)V";
+            jint jnivalue                  = static_cast<jint>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue,
+                                                                       value);
+            return value;
+        }
+        case Attributes::ImageFlipHorizontal::Id: {
+            using TypeInfo = Attributes::ImageFlipHorizontal::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Boolean";
+            std::string valueCtorSignature = "(Z)V";
+            jboolean jnivalue              = static_cast<jboolean>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jboolean>(valueClassName.c_str(), valueCtorSignature.c_str(),
+                                                                           jnivalue, value);
+            return value;
+        }
+        case Attributes::ImageFlipVertical::Id: {
+            using TypeInfo = Attributes::ImageFlipVertical::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Boolean";
+            std::string valueCtorSignature = "(Z)V";
+            jboolean jnivalue              = static_cast<jboolean>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jboolean>(valueClassName.c_str(), valueCtorSignature.c_str(),
+                                                                           jnivalue, value);
+            return value;
+        }
+        case Attributes::LocalVideoRecordingEnabled::Id: {
+            using TypeInfo = Attributes::LocalVideoRecordingEnabled::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Boolean";
+            std::string valueCtorSignature = "(Z)V";
+            jboolean jnivalue              = static_cast<jboolean>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jboolean>(valueClassName.c_str(), valueCtorSignature.c_str(),
+                                                                           jnivalue, value);
+            return value;
+        }
+        case Attributes::LocalSnapshotRecordingEnabled::Id: {
+            using TypeInfo = Attributes::LocalSnapshotRecordingEnabled::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Boolean";
+            std::string valueCtorSignature = "(Z)V";
+            jboolean jnivalue              = static_cast<jboolean>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jboolean>(valueClassName.c_str(), valueCtorSignature.c_str(),
+                                                                           jnivalue, value);
+            return value;
+        }
+        case Attributes::StatusLight::Id: {
+            using TypeInfo = Attributes::StatusLight::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Boolean";
+            std::string valueCtorSignature = "(Z)V";
+            jboolean jnivalue              = static_cast<jboolean>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jboolean>(valueClassName.c_str(), valueCtorSignature.c_str(),
+                                                                           jnivalue, value);
+            return value;
+        }
+        case Attributes::StatusLightBrightness::Id: {
+            using TypeInfo = Attributes::StatusLightBrightness::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Integer";
+            std::string valueCtorSignature = "(I)V";
+            jint jnivalue                  = static_cast<jint>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue,
+                                                                       value);
+            return value;
+        }
+        case Attributes::DepthSensorStatus::Id: {
+            using TypeInfo = Attributes::DepthSensorStatus::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Integer";
+            std::string valueCtorSignature = "(I)V";
+            jint jnivalue                  = static_cast<jint>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue,
+                                                                       value);
+            return value;
+        }
+        case Attributes::WatermarkEnabled::Id: {
+            using TypeInfo = Attributes::WatermarkEnabled::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                jobject newElement_0_streamID;
+                std::string newElement_0_streamIDClassName     = "java/lang/Integer";
+                std::string newElement_0_streamIDCtorSignature = "(I)V";
+                jint jninewElement_0_streamID                  = static_cast<jint>(entry_0.streamID);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(newElement_0_streamIDClassName.c_str(),
+                                                                           newElement_0_streamIDCtorSignature.c_str(),
+                                                                           jninewElement_0_streamID, newElement_0_streamID);
+                jobject newElement_0_onOff;
+                std::string newElement_0_onOffClassName     = "java/lang/Boolean";
+                std::string newElement_0_onOffCtorSignature = "(Z)V";
+                jboolean jninewElement_0_onOff              = static_cast<jboolean>(entry_0.onOff);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jboolean>(newElement_0_onOffClassName.c_str(),
+                                                                               newElement_0_onOffCtorSignature.c_str(),
+                                                                               jninewElement_0_onOff, newElement_0_onOff);
+
+                jclass perStreamStructStructClass_1;
+                err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                    env, "chip/devicecontroller/ChipStructs$CameraAvStreamManagementClusterPerStreamStruct",
+                    perStreamStructStructClass_1);
+                if (err != CHIP_NO_ERROR)
+                {
+                    ChipLogError(Zcl, "Could not find class ChipStructs$CameraAvStreamManagementClusterPerStreamStruct");
+                    return nullptr;
+                }
+
+                jmethodID perStreamStructStructCtor_1;
+                err = chip::JniReferences::GetInstance().FindMethod(env, perStreamStructStructClass_1, "<init>",
+                                                                    "(Ljava/lang/Integer;Ljava/lang/Boolean;)V",
+                                                                    &perStreamStructStructCtor_1);
+                if (err != CHIP_NO_ERROR || perStreamStructStructCtor_1 == nullptr)
+                {
+                    ChipLogError(Zcl, "Could not find ChipStructs$CameraAvStreamManagementClusterPerStreamStruct constructor");
+                    return nullptr;
+                }
+
+                newElement_0 = env->NewObject(perStreamStructStructClass_1, perStreamStructStructCtor_1, newElement_0_streamID,
+                                              newElement_0_onOff);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::OSDEnabled::Id: {
+            using TypeInfo = Attributes::OSDEnabled::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                jobject newElement_0_streamID;
+                std::string newElement_0_streamIDClassName     = "java/lang/Integer";
+                std::string newElement_0_streamIDCtorSignature = "(I)V";
+                jint jninewElement_0_streamID                  = static_cast<jint>(entry_0.streamID);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(newElement_0_streamIDClassName.c_str(),
+                                                                           newElement_0_streamIDCtorSignature.c_str(),
+                                                                           jninewElement_0_streamID, newElement_0_streamID);
+                jobject newElement_0_onOff;
+                std::string newElement_0_onOffClassName     = "java/lang/Boolean";
+                std::string newElement_0_onOffCtorSignature = "(Z)V";
+                jboolean jninewElement_0_onOff              = static_cast<jboolean>(entry_0.onOff);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jboolean>(newElement_0_onOffClassName.c_str(),
+                                                                               newElement_0_onOffCtorSignature.c_str(),
+                                                                               jninewElement_0_onOff, newElement_0_onOff);
+
+                jclass perStreamStructStructClass_1;
+                err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                    env, "chip/devicecontroller/ChipStructs$CameraAvStreamManagementClusterPerStreamStruct",
+                    perStreamStructStructClass_1);
+                if (err != CHIP_NO_ERROR)
+                {
+                    ChipLogError(Zcl, "Could not find class ChipStructs$CameraAvStreamManagementClusterPerStreamStruct");
+                    return nullptr;
+                }
+
+                jmethodID perStreamStructStructCtor_1;
+                err = chip::JniReferences::GetInstance().FindMethod(env, perStreamStructStructClass_1, "<init>",
+                                                                    "(Ljava/lang/Integer;Ljava/lang/Boolean;)V",
+                                                                    &perStreamStructStructCtor_1);
+                if (err != CHIP_NO_ERROR || perStreamStructStructCtor_1 == nullptr)
+                {
+                    ChipLogError(Zcl, "Could not find ChipStructs$CameraAvStreamManagementClusterPerStreamStruct constructor");
+                    return nullptr;
+                }
+
+                newElement_0 = env->NewObject(perStreamStructStructClass_1, perStreamStructStructCtor_1, newElement_0_streamID,
+                                              newElement_0_onOff);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::GeneratedCommandList::Id: {
+            using TypeInfo = Attributes::GeneratedCommandList::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                std::string newElement_0ClassName     = "java/lang/Long";
+                std::string newElement_0CtorSignature = "(J)V";
+                jlong jninewElement_0                 = static_cast<jlong>(entry_0);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
+                    newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::AcceptedCommandList::Id: {
+            using TypeInfo = Attributes::AcceptedCommandList::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                std::string newElement_0ClassName     = "java/lang/Long";
+                std::string newElement_0CtorSignature = "(J)V";
+                jlong jninewElement_0                 = static_cast<jlong>(entry_0);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
+                    newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::EventList::Id: {
+            using TypeInfo = Attributes::EventList::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                std::string newElement_0ClassName     = "java/lang/Long";
+                std::string newElement_0CtorSignature = "(J)V";
+                jlong jninewElement_0                 = static_cast<jlong>(entry_0);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
+                    newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::AttributeList::Id: {
+            using TypeInfo = Attributes::AttributeList::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                std::string newElement_0ClassName     = "java/lang/Long";
+                std::string newElement_0CtorSignature = "(J)V";
+                jlong jninewElement_0                 = static_cast<jlong>(entry_0);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
+                    newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::FeatureMap::Id: {
+            using TypeInfo = Attributes::FeatureMap::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Long";
+            std::string valueCtorSignature = "(J)V";
+            jlong jnivalue                 = static_cast<jlong>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(valueClassName.c_str(), valueCtorSignature.c_str(),
+                                                                        jnivalue, value);
+            return value;
+        }
+        case Attributes::ClusterRevision::Id: {
+            using TypeInfo = Attributes::ClusterRevision::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Integer";
+            std::string valueCtorSignature = "(I)V";
+            jint jnivalue                  = static_cast<jint>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue,
+                                                                       value);
+            return value;
+        }
+        default:
+            *aError = CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB;
+            break;
+        }
+        break;
+    }
+    case app::Clusters::CameraAvSettingsUserLevelManagement::Id: {
+        using namespace app::Clusters::CameraAvSettingsUserLevelManagement;
+        switch (aPath.mAttributeId)
+        {
+        case Attributes::Mptz::Id: {
+            using TypeInfo = Attributes::Mptz::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            jobject value_MPan;
+            if (!cppValue.MPan.HasValue())
+            {
+                chip::JniReferences::GetInstance().CreateOptional(nullptr, value_MPan);
+            }
+            else
+            {
+                jobject value_MPanInsideOptional;
+                if (cppValue.MPan.Value().IsNull())
+                {
+                    value_MPanInsideOptional = nullptr;
+                }
+                else
+                {
+                    std::string value_MPanInsideOptionalClassName     = "java/lang/Integer";
+                    std::string value_MPanInsideOptionalCtorSignature = "(I)V";
+                    jint jnivalue_MPanInsideOptional                  = static_cast<jint>(cppValue.MPan.Value().Value());
+                    chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                        value_MPanInsideOptionalClassName.c_str(), value_MPanInsideOptionalCtorSignature.c_str(),
+                        jnivalue_MPanInsideOptional, value_MPanInsideOptional);
+                }
+                chip::JniReferences::GetInstance().CreateOptional(value_MPanInsideOptional, value_MPan);
+            }
+            jobject value_MTilt;
+            if (!cppValue.MTilt.HasValue())
+            {
+                chip::JniReferences::GetInstance().CreateOptional(nullptr, value_MTilt);
+            }
+            else
+            {
+                jobject value_MTiltInsideOptional;
+                if (cppValue.MTilt.Value().IsNull())
+                {
+                    value_MTiltInsideOptional = nullptr;
+                }
+                else
+                {
+                    std::string value_MTiltInsideOptionalClassName     = "java/lang/Integer";
+                    std::string value_MTiltInsideOptionalCtorSignature = "(I)V";
+                    jint jnivalue_MTiltInsideOptional                  = static_cast<jint>(cppValue.MTilt.Value().Value());
+                    chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                        value_MTiltInsideOptionalClassName.c_str(), value_MTiltInsideOptionalCtorSignature.c_str(),
+                        jnivalue_MTiltInsideOptional, value_MTiltInsideOptional);
+                }
+                chip::JniReferences::GetInstance().CreateOptional(value_MTiltInsideOptional, value_MTilt);
+            }
+            jobject value_MZoom;
+            if (!cppValue.MZoom.HasValue())
+            {
+                chip::JniReferences::GetInstance().CreateOptional(nullptr, value_MZoom);
+            }
+            else
+            {
+                jobject value_MZoomInsideOptional;
+                if (cppValue.MZoom.Value().IsNull())
+                {
+                    value_MZoomInsideOptional = nullptr;
+                }
+                else
+                {
+                    std::string value_MZoomInsideOptionalClassName     = "java/lang/Integer";
+                    std::string value_MZoomInsideOptionalCtorSignature = "(I)V";
+                    jint jnivalue_MZoomInsideOptional                  = static_cast<jint>(cppValue.MZoom.Value().Value());
+                    chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                        value_MZoomInsideOptionalClassName.c_str(), value_MZoomInsideOptionalCtorSignature.c_str(),
+                        jnivalue_MZoomInsideOptional, value_MZoomInsideOptional);
+                }
+                chip::JniReferences::GetInstance().CreateOptional(value_MZoomInsideOptional, value_MZoom);
+            }
+
+            jclass MPTZStructStructClass_0;
+            err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                env, "chip/devicecontroller/ChipStructs$CameraAvSettingsUserLevelManagementClusterMPTZStruct",
+                MPTZStructStructClass_0);
+            if (err != CHIP_NO_ERROR)
+            {
+                ChipLogError(Zcl, "Could not find class ChipStructs$CameraAvSettingsUserLevelManagementClusterMPTZStruct");
+                return nullptr;
+            }
+
+            jmethodID MPTZStructStructCtor_0;
+            err = chip::JniReferences::GetInstance().FindMethod(env, MPTZStructStructClass_0, "<init>",
+                                                                "(Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;)V",
+                                                                &MPTZStructStructCtor_0);
+            if (err != CHIP_NO_ERROR || MPTZStructStructCtor_0 == nullptr)
+            {
+                ChipLogError(Zcl, "Could not find ChipStructs$CameraAvSettingsUserLevelManagementClusterMPTZStruct constructor");
+                return nullptr;
+            }
+
+            value = env->NewObject(MPTZStructStructClass_0, MPTZStructStructCtor_0, value_MPan, value_MTilt, value_MZoom);
+            return value;
+        }
+        case Attributes::MaxPresets::Id: {
+            using TypeInfo = Attributes::MaxPresets::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Integer";
+            std::string valueCtorSignature = "(I)V";
+            jint jnivalue                  = static_cast<jint>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue,
+                                                                       value);
+            return value;
+        }
+        case Attributes::PresetMptzTable::Id: {
+            using TypeInfo = Attributes::PresetMptzTable::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                jobject newElement_0_MPan;
+                if (!entry_0.MPan.HasValue())
+                {
+                    chip::JniReferences::GetInstance().CreateOptional(nullptr, newElement_0_MPan);
+                }
+                else
+                {
+                    jobject newElement_0_MPanInsideOptional;
+                    if (entry_0.MPan.Value().IsNull())
+                    {
+                        newElement_0_MPanInsideOptional = nullptr;
+                    }
+                    else
+                    {
+                        std::string newElement_0_MPanInsideOptionalClassName     = "java/lang/Integer";
+                        std::string newElement_0_MPanInsideOptionalCtorSignature = "(I)V";
+                        jint jninewElement_0_MPanInsideOptional                  = static_cast<jint>(entry_0.MPan.Value().Value());
+                        chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                            newElement_0_MPanInsideOptionalClassName.c_str(), newElement_0_MPanInsideOptionalCtorSignature.c_str(),
+                            jninewElement_0_MPanInsideOptional, newElement_0_MPanInsideOptional);
+                    }
+                    chip::JniReferences::GetInstance().CreateOptional(newElement_0_MPanInsideOptional, newElement_0_MPan);
+                }
+                jobject newElement_0_MTilt;
+                if (!entry_0.MTilt.HasValue())
+                {
+                    chip::JniReferences::GetInstance().CreateOptional(nullptr, newElement_0_MTilt);
+                }
+                else
+                {
+                    jobject newElement_0_MTiltInsideOptional;
+                    if (entry_0.MTilt.Value().IsNull())
+                    {
+                        newElement_0_MTiltInsideOptional = nullptr;
+                    }
+                    else
+                    {
+                        std::string newElement_0_MTiltInsideOptionalClassName     = "java/lang/Integer";
+                        std::string newElement_0_MTiltInsideOptionalCtorSignature = "(I)V";
+                        jint jninewElement_0_MTiltInsideOptional = static_cast<jint>(entry_0.MTilt.Value().Value());
+                        chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                            newElement_0_MTiltInsideOptionalClassName.c_str(),
+                            newElement_0_MTiltInsideOptionalCtorSignature.c_str(), jninewElement_0_MTiltInsideOptional,
+                            newElement_0_MTiltInsideOptional);
+                    }
+                    chip::JniReferences::GetInstance().CreateOptional(newElement_0_MTiltInsideOptional, newElement_0_MTilt);
+                }
+                jobject newElement_0_MZoom;
+                if (!entry_0.MZoom.HasValue())
+                {
+                    chip::JniReferences::GetInstance().CreateOptional(nullptr, newElement_0_MZoom);
+                }
+                else
+                {
+                    jobject newElement_0_MZoomInsideOptional;
+                    if (entry_0.MZoom.Value().IsNull())
+                    {
+                        newElement_0_MZoomInsideOptional = nullptr;
+                    }
+                    else
+                    {
+                        std::string newElement_0_MZoomInsideOptionalClassName     = "java/lang/Integer";
+                        std::string newElement_0_MZoomInsideOptionalCtorSignature = "(I)V";
+                        jint jninewElement_0_MZoomInsideOptional = static_cast<jint>(entry_0.MZoom.Value().Value());
+                        chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                            newElement_0_MZoomInsideOptionalClassName.c_str(),
+                            newElement_0_MZoomInsideOptionalCtorSignature.c_str(), jninewElement_0_MZoomInsideOptional,
+                            newElement_0_MZoomInsideOptional);
+                    }
+                    chip::JniReferences::GetInstance().CreateOptional(newElement_0_MZoomInsideOptional, newElement_0_MZoom);
+                }
+
+                jclass MPTZStructStructClass_1;
+                err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                    env, "chip/devicecontroller/ChipStructs$CameraAvSettingsUserLevelManagementClusterMPTZStruct",
+                    MPTZStructStructClass_1);
+                if (err != CHIP_NO_ERROR)
+                {
+                    ChipLogError(Zcl, "Could not find class ChipStructs$CameraAvSettingsUserLevelManagementClusterMPTZStruct");
+                    return nullptr;
+                }
+
+                jmethodID MPTZStructStructCtor_1;
+                err = chip::JniReferences::GetInstance().FindMethod(
+                    env, MPTZStructStructClass_1, "<init>", "(Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;)V",
+                    &MPTZStructStructCtor_1);
+                if (err != CHIP_NO_ERROR || MPTZStructStructCtor_1 == nullptr)
+                {
+                    ChipLogError(Zcl,
+                                 "Could not find ChipStructs$CameraAvSettingsUserLevelManagementClusterMPTZStruct constructor");
+                    return nullptr;
+                }
+
+                newElement_0 = env->NewObject(MPTZStructStructClass_1, MPTZStructStructCtor_1, newElement_0_MPan,
+                                              newElement_0_MTilt, newElement_0_MZoom);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::MptzRelativeMove::Id: {
+            using TypeInfo = Attributes::MptzRelativeMove::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Boolean";
+            std::string valueCtorSignature = "(Z)V";
+            jboolean jnivalue              = static_cast<jboolean>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jboolean>(valueClassName.c_str(), valueCtorSignature.c_str(),
+                                                                           jnivalue, value);
+            return value;
+        }
+        case Attributes::DptzRelativeMove::Id: {
+            using TypeInfo = Attributes::DptzRelativeMove::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                jobject newElement_0_streamID;
+                std::string newElement_0_streamIDClassName     = "java/lang/Integer";
+                std::string newElement_0_streamIDCtorSignature = "(I)V";
+                jint jninewElement_0_streamID                  = static_cast<jint>(entry_0.streamID);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(newElement_0_streamIDClassName.c_str(),
+                                                                           newElement_0_streamIDCtorSignature.c_str(),
+                                                                           jninewElement_0_streamID, newElement_0_streamID);
+                jobject newElement_0_onOff;
+                std::string newElement_0_onOffClassName     = "java/lang/Boolean";
+                std::string newElement_0_onOffCtorSignature = "(Z)V";
+                jboolean jninewElement_0_onOff              = static_cast<jboolean>(entry_0.onOff);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jboolean>(newElement_0_onOffClassName.c_str(),
+                                                                               newElement_0_onOffCtorSignature.c_str(),
+                                                                               jninewElement_0_onOff, newElement_0_onOff);
+
+                jclass perStreamStructStructClass_1;
+                err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                    env, "chip/devicecontroller/ChipStructs$CameraAvSettingsUserLevelManagementClusterPerStreamStruct",
+                    perStreamStructStructClass_1);
+                if (err != CHIP_NO_ERROR)
+                {
+                    ChipLogError(Zcl, "Could not find class ChipStructs$CameraAvSettingsUserLevelManagementClusterPerStreamStruct");
+                    return nullptr;
+                }
+
+                jmethodID perStreamStructStructCtor_1;
+                err = chip::JniReferences::GetInstance().FindMethod(env, perStreamStructStructClass_1, "<init>",
+                                                                    "(Ljava/lang/Integer;Ljava/lang/Boolean;)V",
+                                                                    &perStreamStructStructCtor_1);
+                if (err != CHIP_NO_ERROR || perStreamStructStructCtor_1 == nullptr)
+                {
+                    ChipLogError(
+                        Zcl, "Could not find ChipStructs$CameraAvSettingsUserLevelManagementClusterPerStreamStruct constructor");
+                    return nullptr;
+                }
+
+                newElement_0 = env->NewObject(perStreamStructStructClass_1, perStreamStructStructCtor_1, newElement_0_streamID,
+                                              newElement_0_onOff);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::GeneratedCommandList::Id: {
+            using TypeInfo = Attributes::GeneratedCommandList::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                std::string newElement_0ClassName     = "java/lang/Long";
+                std::string newElement_0CtorSignature = "(J)V";
+                jlong jninewElement_0                 = static_cast<jlong>(entry_0);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
+                    newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::AcceptedCommandList::Id: {
+            using TypeInfo = Attributes::AcceptedCommandList::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                std::string newElement_0ClassName     = "java/lang/Long";
+                std::string newElement_0CtorSignature = "(J)V";
+                jlong jninewElement_0                 = static_cast<jlong>(entry_0);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
+                    newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::EventList::Id: {
+            using TypeInfo = Attributes::EventList::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                std::string newElement_0ClassName     = "java/lang/Long";
+                std::string newElement_0CtorSignature = "(J)V";
+                jlong jninewElement_0                 = static_cast<jlong>(entry_0);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
+                    newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::AttributeList::Id: {
+            using TypeInfo = Attributes::AttributeList::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                std::string newElement_0ClassName     = "java/lang/Long";
+                std::string newElement_0CtorSignature = "(J)V";
+                jlong jninewElement_0                 = static_cast<jlong>(entry_0);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
+                    newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::FeatureMap::Id: {
+            using TypeInfo = Attributes::FeatureMap::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Long";
+            std::string valueCtorSignature = "(J)V";
+            jlong jnivalue                 = static_cast<jlong>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(valueClassName.c_str(), valueCtorSignature.c_str(),
+                                                                        jnivalue, value);
+            return value;
+        }
+        case Attributes::ClusterRevision::Id: {
+            using TypeInfo = Attributes::ClusterRevision::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Integer";
+            std::string valueCtorSignature = "(I)V";
+            jint jnivalue                  = static_cast<jint>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue,
+                                                                       value);
+            return value;
+        }
+        default:
+            *aError = CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB;
+            break;
+        }
+        break;
+    }
+    case app::Clusters::WebRTCTransportProvider::Id: {
+        using namespace app::Clusters::WebRTCTransportProvider;
+        switch (aPath.mAttributeId)
+        {
+        case Attributes::CurrentSessions::Id: {
+            using TypeInfo = Attributes::CurrentSessions::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                jobject newElement_0_id;
+                std::string newElement_0_idClassName     = "java/lang/Integer";
+                std::string newElement_0_idCtorSignature = "(I)V";
+                jint jninewElement_0_id                  = static_cast<jint>(entry_0.id);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                    newElement_0_idClassName.c_str(), newElement_0_idCtorSignature.c_str(), jninewElement_0_id, newElement_0_id);
+                jobject newElement_0_peerNodeId;
+                std::string newElement_0_peerNodeIdClassName     = "java/lang/Long";
+                std::string newElement_0_peerNodeIdCtorSignature = "(J)V";
+                jlong jninewElement_0_peerNodeId                 = static_cast<jlong>(entry_0.peerNodeId);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(newElement_0_peerNodeIdClassName.c_str(),
+                                                                            newElement_0_peerNodeIdCtorSignature.c_str(),
+                                                                            jninewElement_0_peerNodeId, newElement_0_peerNodeId);
+                jobject newElement_0_peerFabricIndex;
+                std::string newElement_0_peerFabricIndexClassName     = "java/lang/Integer";
+                std::string newElement_0_peerFabricIndexCtorSignature = "(I)V";
+                jint jninewElement_0_peerFabricIndex                  = static_cast<jint>(entry_0.peerFabricIndex);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                    newElement_0_peerFabricIndexClassName.c_str(), newElement_0_peerFabricIndexCtorSignature.c_str(),
+                    jninewElement_0_peerFabricIndex, newElement_0_peerFabricIndex);
+                jobject newElement_0_streamType;
+                std::string newElement_0_streamTypeClassName     = "java/lang/Integer";
+                std::string newElement_0_streamTypeCtorSignature = "(I)V";
+                jint jninewElement_0_streamType                  = static_cast<jint>(entry_0.streamType);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(newElement_0_streamTypeClassName.c_str(),
+                                                                           newElement_0_streamTypeCtorSignature.c_str(),
+                                                                           jninewElement_0_streamType, newElement_0_streamType);
+                jobject newElement_0_videoStreamID;
+                if (entry_0.videoStreamID.IsNull())
+                {
+                    newElement_0_videoStreamID = nullptr;
+                }
+                else
+                {
+                    std::string newElement_0_videoStreamIDClassName     = "java/lang/Integer";
+                    std::string newElement_0_videoStreamIDCtorSignature = "(I)V";
+                    jint jninewElement_0_videoStreamID                  = static_cast<jint>(entry_0.videoStreamID.Value());
+                    chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                        newElement_0_videoStreamIDClassName.c_str(), newElement_0_videoStreamIDCtorSignature.c_str(),
+                        jninewElement_0_videoStreamID, newElement_0_videoStreamID);
+                }
+                jobject newElement_0_audioStreamID;
+                if (entry_0.audioStreamID.IsNull())
+                {
+                    newElement_0_audioStreamID = nullptr;
+                }
+                else
+                {
+                    std::string newElement_0_audioStreamIDClassName     = "java/lang/Integer";
+                    std::string newElement_0_audioStreamIDCtorSignature = "(I)V";
+                    jint jninewElement_0_audioStreamID                  = static_cast<jint>(entry_0.audioStreamID.Value());
+                    chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                        newElement_0_audioStreamIDClassName.c_str(), newElement_0_audioStreamIDCtorSignature.c_str(),
+                        jninewElement_0_audioStreamID, newElement_0_audioStreamID);
+                }
+                jobject newElement_0_metadataOptions;
+                std::string newElement_0_metadataOptionsClassName     = "java/lang/Integer";
+                std::string newElement_0_metadataOptionsCtorSignature = "(I)V";
+                jint jninewElement_0_metadataOptions                  = static_cast<jint>(entry_0.metadataOptions.Raw());
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                    newElement_0_metadataOptionsClassName.c_str(), newElement_0_metadataOptionsCtorSignature.c_str(),
+                    jninewElement_0_metadataOptions, newElement_0_metadataOptions);
+
+                jclass webRTCSessionStructStructClass_1;
+                err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                    env, "chip/devicecontroller/ChipStructs$WebRTCTransportProviderClusterWebRTCSessionStruct",
+                    webRTCSessionStructStructClass_1);
+                if (err != CHIP_NO_ERROR)
+                {
+                    ChipLogError(Zcl, "Could not find class ChipStructs$WebRTCTransportProviderClusterWebRTCSessionStruct");
+                    return nullptr;
+                }
+
+                jmethodID webRTCSessionStructStructCtor_1;
+                err = chip::JniReferences::GetInstance().FindMethod(
+                    env, webRTCSessionStructStructClass_1, "<init>",
+                    "(Ljava/lang/Integer;Ljava/lang/Long;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/"
+                    "Integer;Ljava/lang/Integer;)V",
+                    &webRTCSessionStructStructCtor_1);
+                if (err != CHIP_NO_ERROR || webRTCSessionStructStructCtor_1 == nullptr)
+                {
+                    ChipLogError(Zcl, "Could not find ChipStructs$WebRTCTransportProviderClusterWebRTCSessionStruct constructor");
+                    return nullptr;
+                }
+
+                newElement_0 = env->NewObject(webRTCSessionStructStructClass_1, webRTCSessionStructStructCtor_1, newElement_0_id,
+                                              newElement_0_peerNodeId, newElement_0_peerFabricIndex, newElement_0_streamType,
+                                              newElement_0_videoStreamID, newElement_0_audioStreamID, newElement_0_metadataOptions);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::GeneratedCommandList::Id: {
+            using TypeInfo = Attributes::GeneratedCommandList::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                std::string newElement_0ClassName     = "java/lang/Long";
+                std::string newElement_0CtorSignature = "(J)V";
+                jlong jninewElement_0                 = static_cast<jlong>(entry_0);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
+                    newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::AcceptedCommandList::Id: {
+            using TypeInfo = Attributes::AcceptedCommandList::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                std::string newElement_0ClassName     = "java/lang/Long";
+                std::string newElement_0CtorSignature = "(J)V";
+                jlong jninewElement_0                 = static_cast<jlong>(entry_0);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
+                    newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::EventList::Id: {
+            using TypeInfo = Attributes::EventList::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                std::string newElement_0ClassName     = "java/lang/Long";
+                std::string newElement_0CtorSignature = "(J)V";
+                jlong jninewElement_0                 = static_cast<jlong>(entry_0);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
+                    newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::AttributeList::Id: {
+            using TypeInfo = Attributes::AttributeList::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                std::string newElement_0ClassName     = "java/lang/Long";
+                std::string newElement_0CtorSignature = "(J)V";
+                jlong jninewElement_0                 = static_cast<jlong>(entry_0);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
+                    newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::FeatureMap::Id: {
+            using TypeInfo = Attributes::FeatureMap::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Long";
+            std::string valueCtorSignature = "(J)V";
+            jlong jnivalue                 = static_cast<jlong>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(valueClassName.c_str(), valueCtorSignature.c_str(),
+                                                                        jnivalue, value);
+            return value;
+        }
+        case Attributes::ClusterRevision::Id: {
+            using TypeInfo = Attributes::ClusterRevision::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Integer";
+            std::string valueCtorSignature = "(I)V";
+            jint jnivalue                  = static_cast<jint>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue,
+                                                                       value);
+            return value;
+        }
+        default:
+            *aError = CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB;
+            break;
+        }
+        break;
+    }
+    case app::Clusters::WebRTCTransportRequestor::Id: {
+        using namespace app::Clusters::WebRTCTransportRequestor;
+        switch (aPath.mAttributeId)
+        {
+        case Attributes::CurrentSessions::Id: {
+            using TypeInfo = Attributes::CurrentSessions::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                jobject newElement_0_id;
+                std::string newElement_0_idClassName     = "java/lang/Integer";
+                std::string newElement_0_idCtorSignature = "(I)V";
+                jint jninewElement_0_id                  = static_cast<jint>(entry_0.id);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                    newElement_0_idClassName.c_str(), newElement_0_idCtorSignature.c_str(), jninewElement_0_id, newElement_0_id);
+                jobject newElement_0_peerNodeId;
+                std::string newElement_0_peerNodeIdClassName     = "java/lang/Long";
+                std::string newElement_0_peerNodeIdCtorSignature = "(J)V";
+                jlong jninewElement_0_peerNodeId                 = static_cast<jlong>(entry_0.peerNodeId);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(newElement_0_peerNodeIdClassName.c_str(),
+                                                                            newElement_0_peerNodeIdCtorSignature.c_str(),
+                                                                            jninewElement_0_peerNodeId, newElement_0_peerNodeId);
+                jobject newElement_0_peerFabricIndex;
+                std::string newElement_0_peerFabricIndexClassName     = "java/lang/Integer";
+                std::string newElement_0_peerFabricIndexCtorSignature = "(I)V";
+                jint jninewElement_0_peerFabricIndex                  = static_cast<jint>(entry_0.peerFabricIndex);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                    newElement_0_peerFabricIndexClassName.c_str(), newElement_0_peerFabricIndexCtorSignature.c_str(),
+                    jninewElement_0_peerFabricIndex, newElement_0_peerFabricIndex);
+                jobject newElement_0_streamType;
+                std::string newElement_0_streamTypeClassName     = "java/lang/Integer";
+                std::string newElement_0_streamTypeCtorSignature = "(I)V";
+                jint jninewElement_0_streamType                  = static_cast<jint>(entry_0.streamType);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(newElement_0_streamTypeClassName.c_str(),
+                                                                           newElement_0_streamTypeCtorSignature.c_str(),
+                                                                           jninewElement_0_streamType, newElement_0_streamType);
+                jobject newElement_0_videoStreamID;
+                if (entry_0.videoStreamID.IsNull())
+                {
+                    newElement_0_videoStreamID = nullptr;
+                }
+                else
+                {
+                    std::string newElement_0_videoStreamIDClassName     = "java/lang/Integer";
+                    std::string newElement_0_videoStreamIDCtorSignature = "(I)V";
+                    jint jninewElement_0_videoStreamID                  = static_cast<jint>(entry_0.videoStreamID.Value());
+                    chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                        newElement_0_videoStreamIDClassName.c_str(), newElement_0_videoStreamIDCtorSignature.c_str(),
+                        jninewElement_0_videoStreamID, newElement_0_videoStreamID);
+                }
+                jobject newElement_0_audioStreamID;
+                if (entry_0.audioStreamID.IsNull())
+                {
+                    newElement_0_audioStreamID = nullptr;
+                }
+                else
+                {
+                    std::string newElement_0_audioStreamIDClassName     = "java/lang/Integer";
+                    std::string newElement_0_audioStreamIDCtorSignature = "(I)V";
+                    jint jninewElement_0_audioStreamID                  = static_cast<jint>(entry_0.audioStreamID.Value());
+                    chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                        newElement_0_audioStreamIDClassName.c_str(), newElement_0_audioStreamIDCtorSignature.c_str(),
+                        jninewElement_0_audioStreamID, newElement_0_audioStreamID);
+                }
+                jobject newElement_0_metadataOptions;
+                std::string newElement_0_metadataOptionsClassName     = "java/lang/Integer";
+                std::string newElement_0_metadataOptionsCtorSignature = "(I)V";
+                jint jninewElement_0_metadataOptions                  = static_cast<jint>(entry_0.metadataOptions.Raw());
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                    newElement_0_metadataOptionsClassName.c_str(), newElement_0_metadataOptionsCtorSignature.c_str(),
+                    jninewElement_0_metadataOptions, newElement_0_metadataOptions);
+
+                jclass webRTCSessionStructStructClass_1;
+                err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                    env, "chip/devicecontroller/ChipStructs$WebRTCTransportRequestorClusterWebRTCSessionStruct",
+                    webRTCSessionStructStructClass_1);
+                if (err != CHIP_NO_ERROR)
+                {
+                    ChipLogError(Zcl, "Could not find class ChipStructs$WebRTCTransportRequestorClusterWebRTCSessionStruct");
+                    return nullptr;
+                }
+
+                jmethodID webRTCSessionStructStructCtor_1;
+                err = chip::JniReferences::GetInstance().FindMethod(
+                    env, webRTCSessionStructStructClass_1, "<init>",
+                    "(Ljava/lang/Integer;Ljava/lang/Long;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/"
+                    "Integer;Ljava/lang/Integer;)V",
+                    &webRTCSessionStructStructCtor_1);
+                if (err != CHIP_NO_ERROR || webRTCSessionStructStructCtor_1 == nullptr)
+                {
+                    ChipLogError(Zcl, "Could not find ChipStructs$WebRTCTransportRequestorClusterWebRTCSessionStruct constructor");
+                    return nullptr;
+                }
+
+                newElement_0 = env->NewObject(webRTCSessionStructStructClass_1, webRTCSessionStructStructCtor_1, newElement_0_id,
+                                              newElement_0_peerNodeId, newElement_0_peerFabricIndex, newElement_0_streamType,
+                                              newElement_0_videoStreamID, newElement_0_audioStreamID, newElement_0_metadataOptions);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::GeneratedCommandList::Id: {
+            using TypeInfo = Attributes::GeneratedCommandList::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                std::string newElement_0ClassName     = "java/lang/Long";
+                std::string newElement_0CtorSignature = "(J)V";
+                jlong jninewElement_0                 = static_cast<jlong>(entry_0);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
+                    newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::AcceptedCommandList::Id: {
+            using TypeInfo = Attributes::AcceptedCommandList::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                std::string newElement_0ClassName     = "java/lang/Long";
+                std::string newElement_0CtorSignature = "(J)V";
+                jlong jninewElement_0                 = static_cast<jlong>(entry_0);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
+                    newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::EventList::Id: {
+            using TypeInfo = Attributes::EventList::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                std::string newElement_0ClassName     = "java/lang/Long";
+                std::string newElement_0CtorSignature = "(J)V";
+                jlong jninewElement_0                 = static_cast<jlong>(entry_0);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
+                    newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::AttributeList::Id: {
+            using TypeInfo = Attributes::AttributeList::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                std::string newElement_0ClassName     = "java/lang/Long";
+                std::string newElement_0CtorSignature = "(J)V";
+                jlong jninewElement_0                 = static_cast<jlong>(entry_0);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
+                    newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::FeatureMap::Id: {
+            using TypeInfo = Attributes::FeatureMap::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Long";
+            std::string valueCtorSignature = "(J)V";
+            jlong jnivalue                 = static_cast<jlong>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(valueClassName.c_str(), valueCtorSignature.c_str(),
+                                                                        jnivalue, value);
+            return value;
+        }
+        case Attributes::ClusterRevision::Id: {
+            using TypeInfo = Attributes::ClusterRevision::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Integer";
+            std::string valueCtorSignature = "(I)V";
+            jint jnivalue                  = static_cast<jint>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue,
+                                                                       value);
+            return value;
+        }
+        default:
+            *aError = CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB;
+            break;
+        }
+        break;
+    }
+    case app::Clusters::PushAvStreamTransport::Id: {
+        using namespace app::Clusters::PushAvStreamTransport;
+        switch (aPath.mAttributeId)
+        {
+        case Attributes::SupportedContainerFormats::Id: {
+            using TypeInfo = Attributes::SupportedContainerFormats::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Integer";
+            std::string valueCtorSignature = "(I)V";
+            jint jnivalue                  = static_cast<jint>(cppValue.Raw());
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue,
+                                                                       value);
+            return value;
+        }
+        case Attributes::SupportedIngestMethods::Id: {
+            using TypeInfo = Attributes::SupportedIngestMethods::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Integer";
+            std::string valueCtorSignature = "(I)V";
+            jint jnivalue                  = static_cast<jint>(cppValue.Raw());
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue,
+                                                                       value);
+            return value;
+        }
+        case Attributes::CurrentConnections::Id: {
+            using TypeInfo = Attributes::CurrentConnections::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                std::string newElement_0ClassName     = "java/lang/Integer";
+                std::string newElement_0CtorSignature = "(I)V";
+                jint jninewElement_0                  = static_cast<jint>(entry_0);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                    newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::GeneratedCommandList::Id: {
+            using TypeInfo = Attributes::GeneratedCommandList::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                std::string newElement_0ClassName     = "java/lang/Long";
+                std::string newElement_0CtorSignature = "(J)V";
+                jlong jninewElement_0                 = static_cast<jlong>(entry_0);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
+                    newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::AcceptedCommandList::Id: {
+            using TypeInfo = Attributes::AcceptedCommandList::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                std::string newElement_0ClassName     = "java/lang/Long";
+                std::string newElement_0CtorSignature = "(J)V";
+                jlong jninewElement_0                 = static_cast<jlong>(entry_0);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
+                    newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::EventList::Id: {
+            using TypeInfo = Attributes::EventList::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                std::string newElement_0ClassName     = "java/lang/Long";
+                std::string newElement_0CtorSignature = "(J)V";
+                jlong jninewElement_0                 = static_cast<jlong>(entry_0);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
+                    newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::AttributeList::Id: {
+            using TypeInfo = Attributes::AttributeList::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                std::string newElement_0ClassName     = "java/lang/Long";
+                std::string newElement_0CtorSignature = "(J)V";
+                jlong jninewElement_0                 = static_cast<jlong>(entry_0);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
+                    newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::FeatureMap::Id: {
+            using TypeInfo = Attributes::FeatureMap::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Long";
+            std::string valueCtorSignature = "(J)V";
+            jlong jnivalue                 = static_cast<jlong>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(valueClassName.c_str(), valueCtorSignature.c_str(),
+                                                                        jnivalue, value);
+            return value;
+        }
+        case Attributes::ClusterRevision::Id: {
+            using TypeInfo = Attributes::ClusterRevision::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Integer";
+            std::string valueCtorSignature = "(I)V";
+            jint jnivalue                  = static_cast<jint>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue,
+                                                                       value);
+            return value;
+        }
+        default:
+            *aError = CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB;
+            break;
+        }
+        break;
+    }
+    case app::Clusters::Chime::Id: {
+        using namespace app::Clusters::Chime;
+        switch (aPath.mAttributeId)
+        {
+        case Attributes::InstalledChimeSounds::Id: {
+            using TypeInfo = Attributes::InstalledChimeSounds::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                jobject newElement_0_chimeId;
+                std::string newElement_0_chimeIdClassName     = "java/lang/Integer";
+                std::string newElement_0_chimeIdCtorSignature = "(I)V";
+                jint jninewElement_0_chimeId                  = static_cast<jint>(entry_0.chimeId);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(newElement_0_chimeIdClassName.c_str(),
+                                                                           newElement_0_chimeIdCtorSignature.c_str(),
+                                                                           jninewElement_0_chimeId, newElement_0_chimeId);
+                jobject newElement_0_name;
+                LogErrorOnFailure(chip::JniReferences::GetInstance().CharToStringUTF(entry_0.name, newElement_0_name));
+
+                jclass chimeSoundStructStructClass_1;
+                err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                    env, "chip/devicecontroller/ChipStructs$ChimeClusterChimeSoundStruct", chimeSoundStructStructClass_1);
+                if (err != CHIP_NO_ERROR)
+                {
+                    ChipLogError(Zcl, "Could not find class ChipStructs$ChimeClusterChimeSoundStruct");
+                    return nullptr;
+                }
+
+                jmethodID chimeSoundStructStructCtor_1;
+                err = chip::JniReferences::GetInstance().FindMethod(env, chimeSoundStructStructClass_1, "<init>",
+                                                                    "(Ljava/lang/Integer;Ljava/lang/String;)V",
+                                                                    &chimeSoundStructStructCtor_1);
+                if (err != CHIP_NO_ERROR || chimeSoundStructStructCtor_1 == nullptr)
+                {
+                    ChipLogError(Zcl, "Could not find ChipStructs$ChimeClusterChimeSoundStruct constructor");
+                    return nullptr;
+                }
+
+                newElement_0 = env->NewObject(chimeSoundStructStructClass_1, chimeSoundStructStructCtor_1, newElement_0_chimeId,
+                                              newElement_0_name);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::ActiveChimeSoundId::Id: {
+            using TypeInfo = Attributes::ActiveChimeSoundId::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Integer";
+            std::string valueCtorSignature = "(I)V";
+            jint jnivalue                  = static_cast<jint>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue,
+                                                                       value);
+            return value;
+        }
+        case Attributes::Enabled::Id: {
+            using TypeInfo = Attributes::Enabled::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Boolean";
+            std::string valueCtorSignature = "(Z)V";
+            jboolean jnivalue              = static_cast<jboolean>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jboolean>(valueClassName.c_str(), valueCtorSignature.c_str(),
+                                                                           jnivalue, value);
+            return value;
+        }
+        case Attributes::GeneratedCommandList::Id: {
+            using TypeInfo = Attributes::GeneratedCommandList::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                std::string newElement_0ClassName     = "java/lang/Long";
+                std::string newElement_0CtorSignature = "(J)V";
+                jlong jninewElement_0                 = static_cast<jlong>(entry_0);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
+                    newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::AcceptedCommandList::Id: {
+            using TypeInfo = Attributes::AcceptedCommandList::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                std::string newElement_0ClassName     = "java/lang/Long";
+                std::string newElement_0CtorSignature = "(J)V";
+                jlong jninewElement_0                 = static_cast<jlong>(entry_0);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
+                    newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::EventList::Id: {
+            using TypeInfo = Attributes::EventList::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                std::string newElement_0ClassName     = "java/lang/Long";
+                std::string newElement_0CtorSignature = "(J)V";
+                jlong jninewElement_0                 = static_cast<jlong>(entry_0);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
+                    newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::AttributeList::Id: {
+            using TypeInfo = Attributes::AttributeList::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            chip::JniReferences::GetInstance().CreateArrayList(value);
+
+            auto iter_value_0 = cppValue.begin();
+            while (iter_value_0.Next())
+            {
+                auto & entry_0 = iter_value_0.GetValue();
+                jobject newElement_0;
+                std::string newElement_0ClassName     = "java/lang/Long";
+                std::string newElement_0CtorSignature = "(J)V";
+                jlong jninewElement_0                 = static_cast<jlong>(entry_0);
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
+                    newElement_0ClassName.c_str(), newElement_0CtorSignature.c_str(), jninewElement_0, newElement_0);
+                chip::JniReferences::GetInstance().AddToList(value, newElement_0);
+            }
+            return value;
+        }
+        case Attributes::FeatureMap::Id: {
+            using TypeInfo = Attributes::FeatureMap::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Long";
+            std::string valueCtorSignature = "(J)V";
+            jlong jnivalue                 = static_cast<jlong>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(valueClassName.c_str(), valueCtorSignature.c_str(),
+                                                                        jnivalue, value);
+            return value;
+        }
+        case Attributes::ClusterRevision::Id: {
+            using TypeInfo = Attributes::ClusterRevision::TypeInfo;
+            TypeInfo::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value;
+            std::string valueClassName     = "java/lang/Integer";
+            std::string valueCtorSignature = "(I)V";
+            jint jnivalue                  = static_cast<jint>(cppValue);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(valueClassName.c_str(), valueCtorSignature.c_str(), jnivalue,
+                                                                       value);
+            return value;
+        }
+        default:
+            *aError = CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB;
+            break;
+        }
+        break;
+    }
     case app::Clusters::EcosystemInformation::Id: {
         using namespace app::Clusters::EcosystemInformation;
         switch (aPath.mAttributeId)
diff --git a/src/controller/java/zap-generated/CHIPEventTLVValueDecoder.cpp b/src/controller/java/zap-generated/CHIPEventTLVValueDecoder.cpp
index a133eceb499a0f..07104e2a654ee4 100644
--- a/src/controller/java/zap-generated/CHIPEventTLVValueDecoder.cpp
+++ b/src/controller/java/zap-generated/CHIPEventTLVValueDecoder.cpp
@@ -8278,6 +8278,927 @@ jobject DecodeEventValue(const app::ConcreteEventPath & aPath, TLV::TLVReader &
         }
         break;
     }
+    case app::Clusters::CameraAvStreamManagement::Id: {
+        using namespace app::Clusters::CameraAvStreamManagement;
+        switch (aPath.mEventId)
+        {
+        case Events::VideoStreamChanged::Id: {
+            Events::VideoStreamChanged::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value_videoStreamID;
+            std::string value_videoStreamIDClassName     = "java/lang/Integer";
+            std::string value_videoStreamIDCtorSignature = "(I)V";
+            jint jnivalue_videoStreamID                  = static_cast<jint>(cppValue.videoStreamID);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(value_videoStreamIDClassName.c_str(),
+                                                                       value_videoStreamIDCtorSignature.c_str(),
+                                                                       jnivalue_videoStreamID, value_videoStreamID);
+
+            jobject value_streamType;
+            if (!cppValue.streamType.HasValue())
+            {
+                chip::JniReferences::GetInstance().CreateOptional(nullptr, value_streamType);
+            }
+            else
+            {
+                jobject value_streamTypeInsideOptional;
+                std::string value_streamTypeInsideOptionalClassName     = "java/lang/Integer";
+                std::string value_streamTypeInsideOptionalCtorSignature = "(I)V";
+                jint jnivalue_streamTypeInsideOptional                  = static_cast<jint>(cppValue.streamType.Value());
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                    value_streamTypeInsideOptionalClassName.c_str(), value_streamTypeInsideOptionalCtorSignature.c_str(),
+                    jnivalue_streamTypeInsideOptional, value_streamTypeInsideOptional);
+                chip::JniReferences::GetInstance().CreateOptional(value_streamTypeInsideOptional, value_streamType);
+            }
+
+            jobject value_videoCodec;
+            if (!cppValue.videoCodec.HasValue())
+            {
+                chip::JniReferences::GetInstance().CreateOptional(nullptr, value_videoCodec);
+            }
+            else
+            {
+                jobject value_videoCodecInsideOptional;
+                std::string value_videoCodecInsideOptionalClassName     = "java/lang/Integer";
+                std::string value_videoCodecInsideOptionalCtorSignature = "(I)V";
+                jint jnivalue_videoCodecInsideOptional                  = static_cast<jint>(cppValue.videoCodec.Value());
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                    value_videoCodecInsideOptionalClassName.c_str(), value_videoCodecInsideOptionalCtorSignature.c_str(),
+                    jnivalue_videoCodecInsideOptional, value_videoCodecInsideOptional);
+                chip::JniReferences::GetInstance().CreateOptional(value_videoCodecInsideOptional, value_videoCodec);
+            }
+
+            jobject value_minFrameRate;
+            if (!cppValue.minFrameRate.HasValue())
+            {
+                chip::JniReferences::GetInstance().CreateOptional(nullptr, value_minFrameRate);
+            }
+            else
+            {
+                jobject value_minFrameRateInsideOptional;
+                std::string value_minFrameRateInsideOptionalClassName     = "java/lang/Integer";
+                std::string value_minFrameRateInsideOptionalCtorSignature = "(I)V";
+                jint jnivalue_minFrameRateInsideOptional                  = static_cast<jint>(cppValue.minFrameRate.Value());
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                    value_minFrameRateInsideOptionalClassName.c_str(), value_minFrameRateInsideOptionalCtorSignature.c_str(),
+                    jnivalue_minFrameRateInsideOptional, value_minFrameRateInsideOptional);
+                chip::JniReferences::GetInstance().CreateOptional(value_minFrameRateInsideOptional, value_minFrameRate);
+            }
+
+            jobject value_maxFrameRate;
+            if (!cppValue.maxFrameRate.HasValue())
+            {
+                chip::JniReferences::GetInstance().CreateOptional(nullptr, value_maxFrameRate);
+            }
+            else
+            {
+                jobject value_maxFrameRateInsideOptional;
+                std::string value_maxFrameRateInsideOptionalClassName     = "java/lang/Integer";
+                std::string value_maxFrameRateInsideOptionalCtorSignature = "(I)V";
+                jint jnivalue_maxFrameRateInsideOptional                  = static_cast<jint>(cppValue.maxFrameRate.Value());
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                    value_maxFrameRateInsideOptionalClassName.c_str(), value_maxFrameRateInsideOptionalCtorSignature.c_str(),
+                    jnivalue_maxFrameRateInsideOptional, value_maxFrameRateInsideOptional);
+                chip::JniReferences::GetInstance().CreateOptional(value_maxFrameRateInsideOptional, value_maxFrameRate);
+            }
+
+            jobject value_minResolution;
+            if (!cppValue.minResolution.HasValue())
+            {
+                chip::JniReferences::GetInstance().CreateOptional(nullptr, value_minResolution);
+            }
+            else
+            {
+                jobject value_minResolutionInsideOptional;
+
+                jclass dimensionStructStructClass_1;
+                err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                    env, "chip/devicecontroller/ChipStructs$CameraAvStreamManagementClusterDimensionStruct",
+                    dimensionStructStructClass_1);
+                if (err != CHIP_NO_ERROR)
+                {
+                    ChipLogError(Zcl, "Could not find class ChipStructs$CameraAvStreamManagementClusterDimensionStruct");
+                    return nullptr;
+                }
+
+                jmethodID dimensionStructStructCtor_1;
+                err = chip::JniReferences::GetInstance().FindMethod(env, dimensionStructStructClass_1, "<init>", "()V",
+                                                                    &dimensionStructStructCtor_1);
+                if (err != CHIP_NO_ERROR || dimensionStructStructCtor_1 == nullptr)
+                {
+                    ChipLogError(Zcl, "Could not find ChipStructs$CameraAvStreamManagementClusterDimensionStruct constructor");
+                    return nullptr;
+                }
+
+                value_minResolutionInsideOptional = env->NewObject(dimensionStructStructClass_1, dimensionStructStructCtor_1);
+                chip::JniReferences::GetInstance().CreateOptional(value_minResolutionInsideOptional, value_minResolution);
+            }
+
+            jobject value_maxResolution;
+            if (!cppValue.maxResolution.HasValue())
+            {
+                chip::JniReferences::GetInstance().CreateOptional(nullptr, value_maxResolution);
+            }
+            else
+            {
+                jobject value_maxResolutionInsideOptional;
+
+                jclass dimensionStructStructClass_1;
+                err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                    env, "chip/devicecontroller/ChipStructs$CameraAvStreamManagementClusterDimensionStruct",
+                    dimensionStructStructClass_1);
+                if (err != CHIP_NO_ERROR)
+                {
+                    ChipLogError(Zcl, "Could not find class ChipStructs$CameraAvStreamManagementClusterDimensionStruct");
+                    return nullptr;
+                }
+
+                jmethodID dimensionStructStructCtor_1;
+                err = chip::JniReferences::GetInstance().FindMethod(env, dimensionStructStructClass_1, "<init>", "()V",
+                                                                    &dimensionStructStructCtor_1);
+                if (err != CHIP_NO_ERROR || dimensionStructStructCtor_1 == nullptr)
+                {
+                    ChipLogError(Zcl, "Could not find ChipStructs$CameraAvStreamManagementClusterDimensionStruct constructor");
+                    return nullptr;
+                }
+
+                value_maxResolutionInsideOptional = env->NewObject(dimensionStructStructClass_1, dimensionStructStructCtor_1);
+                chip::JniReferences::GetInstance().CreateOptional(value_maxResolutionInsideOptional, value_maxResolution);
+            }
+
+            jobject value_minBitRate;
+            if (!cppValue.minBitRate.HasValue())
+            {
+                chip::JniReferences::GetInstance().CreateOptional(nullptr, value_minBitRate);
+            }
+            else
+            {
+                jobject value_minBitRateInsideOptional;
+                std::string value_minBitRateInsideOptionalClassName     = "java/lang/Integer";
+                std::string value_minBitRateInsideOptionalCtorSignature = "(I)V";
+                jint jnivalue_minBitRateInsideOptional                  = static_cast<jint>(cppValue.minBitRate.Value());
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                    value_minBitRateInsideOptionalClassName.c_str(), value_minBitRateInsideOptionalCtorSignature.c_str(),
+                    jnivalue_minBitRateInsideOptional, value_minBitRateInsideOptional);
+                chip::JniReferences::GetInstance().CreateOptional(value_minBitRateInsideOptional, value_minBitRate);
+            }
+
+            jobject value_maxBitRate;
+            if (!cppValue.maxBitRate.HasValue())
+            {
+                chip::JniReferences::GetInstance().CreateOptional(nullptr, value_maxBitRate);
+            }
+            else
+            {
+                jobject value_maxBitRateInsideOptional;
+                std::string value_maxBitRateInsideOptionalClassName     = "java/lang/Integer";
+                std::string value_maxBitRateInsideOptionalCtorSignature = "(I)V";
+                jint jnivalue_maxBitRateInsideOptional                  = static_cast<jint>(cppValue.maxBitRate.Value());
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                    value_maxBitRateInsideOptionalClassName.c_str(), value_maxBitRateInsideOptionalCtorSignature.c_str(),
+                    jnivalue_maxBitRateInsideOptional, value_maxBitRateInsideOptional);
+                chip::JniReferences::GetInstance().CreateOptional(value_maxBitRateInsideOptional, value_maxBitRate);
+            }
+
+            jobject value_minFragmentLen;
+            if (!cppValue.minFragmentLen.HasValue())
+            {
+                chip::JniReferences::GetInstance().CreateOptional(nullptr, value_minFragmentLen);
+            }
+            else
+            {
+                jobject value_minFragmentLenInsideOptional;
+                std::string value_minFragmentLenInsideOptionalClassName     = "java/lang/Integer";
+                std::string value_minFragmentLenInsideOptionalCtorSignature = "(I)V";
+                jint jnivalue_minFragmentLenInsideOptional                  = static_cast<jint>(cppValue.minFragmentLen.Value());
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                    value_minFragmentLenInsideOptionalClassName.c_str(), value_minFragmentLenInsideOptionalCtorSignature.c_str(),
+                    jnivalue_minFragmentLenInsideOptional, value_minFragmentLenInsideOptional);
+                chip::JniReferences::GetInstance().CreateOptional(value_minFragmentLenInsideOptional, value_minFragmentLen);
+            }
+
+            jobject value_maxFragmentLen;
+            if (!cppValue.maxFragmentLen.HasValue())
+            {
+                chip::JniReferences::GetInstance().CreateOptional(nullptr, value_maxFragmentLen);
+            }
+            else
+            {
+                jobject value_maxFragmentLenInsideOptional;
+                std::string value_maxFragmentLenInsideOptionalClassName     = "java/lang/Integer";
+                std::string value_maxFragmentLenInsideOptionalCtorSignature = "(I)V";
+                jint jnivalue_maxFragmentLenInsideOptional                  = static_cast<jint>(cppValue.maxFragmentLen.Value());
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                    value_maxFragmentLenInsideOptionalClassName.c_str(), value_maxFragmentLenInsideOptionalCtorSignature.c_str(),
+                    jnivalue_maxFragmentLenInsideOptional, value_maxFragmentLenInsideOptional);
+                chip::JniReferences::GetInstance().CreateOptional(value_maxFragmentLenInsideOptional, value_maxFragmentLen);
+            }
+
+            jclass videoStreamChangedStructClass;
+            err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                env, "chip/devicecontroller/ChipEventStructs$CameraAvStreamManagementClusterVideoStreamChangedEvent",
+                videoStreamChangedStructClass);
+            if (err != CHIP_NO_ERROR)
+            {
+                ChipLogError(Zcl, "Could not find class ChipEventStructs$CameraAvStreamManagementClusterVideoStreamChangedEvent");
+                return nullptr;
+            }
+
+            jmethodID videoStreamChangedStructCtor;
+            err = chip::JniReferences::GetInstance().FindMethod(
+                env, videoStreamChangedStructClass, "<init>",
+                "(Ljava/lang/Integer;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/"
+                "Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;)V",
+                &videoStreamChangedStructCtor);
+            if (err != CHIP_NO_ERROR || videoStreamChangedStructCtor == nullptr)
+            {
+                ChipLogError(Zcl,
+                             "Could not find ChipEventStructs$CameraAvStreamManagementClusterVideoStreamChangedEvent constructor");
+                return nullptr;
+            }
+
+            jobject value =
+                env->NewObject(videoStreamChangedStructClass, videoStreamChangedStructCtor, value_videoStreamID, value_streamType,
+                               value_videoCodec, value_minFrameRate, value_maxFrameRate, value_minResolution, value_maxResolution,
+                               value_minBitRate, value_maxBitRate, value_minFragmentLen, value_maxFragmentLen);
+
+            return value;
+        }
+        case Events::AudioStreamChanged::Id: {
+            Events::AudioStreamChanged::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value_audioStreamID;
+            std::string value_audioStreamIDClassName     = "java/lang/Integer";
+            std::string value_audioStreamIDCtorSignature = "(I)V";
+            jint jnivalue_audioStreamID                  = static_cast<jint>(cppValue.audioStreamID);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(value_audioStreamIDClassName.c_str(),
+                                                                       value_audioStreamIDCtorSignature.c_str(),
+                                                                       jnivalue_audioStreamID, value_audioStreamID);
+
+            jobject value_streamType;
+            if (!cppValue.streamType.HasValue())
+            {
+                chip::JniReferences::GetInstance().CreateOptional(nullptr, value_streamType);
+            }
+            else
+            {
+                jobject value_streamTypeInsideOptional;
+                std::string value_streamTypeInsideOptionalClassName     = "java/lang/Integer";
+                std::string value_streamTypeInsideOptionalCtorSignature = "(I)V";
+                jint jnivalue_streamTypeInsideOptional                  = static_cast<jint>(cppValue.streamType.Value());
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                    value_streamTypeInsideOptionalClassName.c_str(), value_streamTypeInsideOptionalCtorSignature.c_str(),
+                    jnivalue_streamTypeInsideOptional, value_streamTypeInsideOptional);
+                chip::JniReferences::GetInstance().CreateOptional(value_streamTypeInsideOptional, value_streamType);
+            }
+
+            jobject value_audioCodec;
+            if (!cppValue.audioCodec.HasValue())
+            {
+                chip::JniReferences::GetInstance().CreateOptional(nullptr, value_audioCodec);
+            }
+            else
+            {
+                jobject value_audioCodecInsideOptional;
+                std::string value_audioCodecInsideOptionalClassName     = "java/lang/Integer";
+                std::string value_audioCodecInsideOptionalCtorSignature = "(I)V";
+                jint jnivalue_audioCodecInsideOptional                  = static_cast<jint>(cppValue.audioCodec.Value());
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                    value_audioCodecInsideOptionalClassName.c_str(), value_audioCodecInsideOptionalCtorSignature.c_str(),
+                    jnivalue_audioCodecInsideOptional, value_audioCodecInsideOptional);
+                chip::JniReferences::GetInstance().CreateOptional(value_audioCodecInsideOptional, value_audioCodec);
+            }
+
+            jobject value_channelCount;
+            if (!cppValue.channelCount.HasValue())
+            {
+                chip::JniReferences::GetInstance().CreateOptional(nullptr, value_channelCount);
+            }
+            else
+            {
+                jobject value_channelCountInsideOptional;
+                std::string value_channelCountInsideOptionalClassName     = "java/lang/Integer";
+                std::string value_channelCountInsideOptionalCtorSignature = "(I)V";
+                jint jnivalue_channelCountInsideOptional                  = static_cast<jint>(cppValue.channelCount.Value());
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                    value_channelCountInsideOptionalClassName.c_str(), value_channelCountInsideOptionalCtorSignature.c_str(),
+                    jnivalue_channelCountInsideOptional, value_channelCountInsideOptional);
+                chip::JniReferences::GetInstance().CreateOptional(value_channelCountInsideOptional, value_channelCount);
+            }
+
+            jobject value_sampleRate;
+            if (!cppValue.sampleRate.HasValue())
+            {
+                chip::JniReferences::GetInstance().CreateOptional(nullptr, value_sampleRate);
+            }
+            else
+            {
+                jobject value_sampleRateInsideOptional;
+                std::string value_sampleRateInsideOptionalClassName     = "java/lang/Long";
+                std::string value_sampleRateInsideOptionalCtorSignature = "(J)V";
+                jlong jnivalue_sampleRateInsideOptional                 = static_cast<jlong>(cppValue.sampleRate.Value());
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
+                    value_sampleRateInsideOptionalClassName.c_str(), value_sampleRateInsideOptionalCtorSignature.c_str(),
+                    jnivalue_sampleRateInsideOptional, value_sampleRateInsideOptional);
+                chip::JniReferences::GetInstance().CreateOptional(value_sampleRateInsideOptional, value_sampleRate);
+            }
+
+            jobject value_bitRate;
+            if (!cppValue.bitRate.HasValue())
+            {
+                chip::JniReferences::GetInstance().CreateOptional(nullptr, value_bitRate);
+            }
+            else
+            {
+                jobject value_bitRateInsideOptional;
+                std::string value_bitRateInsideOptionalClassName     = "java/lang/Long";
+                std::string value_bitRateInsideOptionalCtorSignature = "(J)V";
+                jlong jnivalue_bitRateInsideOptional                 = static_cast<jlong>(cppValue.bitRate.Value());
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
+                    value_bitRateInsideOptionalClassName.c_str(), value_bitRateInsideOptionalCtorSignature.c_str(),
+                    jnivalue_bitRateInsideOptional, value_bitRateInsideOptional);
+                chip::JniReferences::GetInstance().CreateOptional(value_bitRateInsideOptional, value_bitRate);
+            }
+
+            jobject value_bitDepth;
+            if (!cppValue.bitDepth.HasValue())
+            {
+                chip::JniReferences::GetInstance().CreateOptional(nullptr, value_bitDepth);
+            }
+            else
+            {
+                jobject value_bitDepthInsideOptional;
+                std::string value_bitDepthInsideOptionalClassName     = "java/lang/Integer";
+                std::string value_bitDepthInsideOptionalCtorSignature = "(I)V";
+                jint jnivalue_bitDepthInsideOptional                  = static_cast<jint>(cppValue.bitDepth.Value());
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                    value_bitDepthInsideOptionalClassName.c_str(), value_bitDepthInsideOptionalCtorSignature.c_str(),
+                    jnivalue_bitDepthInsideOptional, value_bitDepthInsideOptional);
+                chip::JniReferences::GetInstance().CreateOptional(value_bitDepthInsideOptional, value_bitDepth);
+            }
+
+            jclass audioStreamChangedStructClass;
+            err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                env, "chip/devicecontroller/ChipEventStructs$CameraAvStreamManagementClusterAudioStreamChangedEvent",
+                audioStreamChangedStructClass);
+            if (err != CHIP_NO_ERROR)
+            {
+                ChipLogError(Zcl, "Could not find class ChipEventStructs$CameraAvStreamManagementClusterAudioStreamChangedEvent");
+                return nullptr;
+            }
+
+            jmethodID audioStreamChangedStructCtor;
+            err = chip::JniReferences::GetInstance().FindMethod(
+                env, audioStreamChangedStructClass, "<init>",
+                "(Ljava/lang/Integer;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/"
+                "Optional;Ljava/util/Optional;)V",
+                &audioStreamChangedStructCtor);
+            if (err != CHIP_NO_ERROR || audioStreamChangedStructCtor == nullptr)
+            {
+                ChipLogError(Zcl,
+                             "Could not find ChipEventStructs$CameraAvStreamManagementClusterAudioStreamChangedEvent constructor");
+                return nullptr;
+            }
+
+            jobject value =
+                env->NewObject(audioStreamChangedStructClass, audioStreamChangedStructCtor, value_audioStreamID, value_streamType,
+                               value_audioCodec, value_channelCount, value_sampleRate, value_bitRate, value_bitDepth);
+
+            return value;
+        }
+        case Events::SnapshotStreamChanged::Id: {
+            Events::SnapshotStreamChanged::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value_snapshotStreamID;
+            std::string value_snapshotStreamIDClassName     = "java/lang/Integer";
+            std::string value_snapshotStreamIDCtorSignature = "(I)V";
+            jint jnivalue_snapshotStreamID                  = static_cast<jint>(cppValue.snapshotStreamID);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(value_snapshotStreamIDClassName.c_str(),
+                                                                       value_snapshotStreamIDCtorSignature.c_str(),
+                                                                       jnivalue_snapshotStreamID, value_snapshotStreamID);
+
+            jobject value_imageCodec;
+            if (!cppValue.imageCodec.HasValue())
+            {
+                chip::JniReferences::GetInstance().CreateOptional(nullptr, value_imageCodec);
+            }
+            else
+            {
+                jobject value_imageCodecInsideOptional;
+                std::string value_imageCodecInsideOptionalClassName     = "java/lang/Integer";
+                std::string value_imageCodecInsideOptionalCtorSignature = "(I)V";
+                jint jnivalue_imageCodecInsideOptional                  = static_cast<jint>(cppValue.imageCodec.Value());
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                    value_imageCodecInsideOptionalClassName.c_str(), value_imageCodecInsideOptionalCtorSignature.c_str(),
+                    jnivalue_imageCodecInsideOptional, value_imageCodecInsideOptional);
+                chip::JniReferences::GetInstance().CreateOptional(value_imageCodecInsideOptional, value_imageCodec);
+            }
+
+            jobject value_frameRate;
+            if (!cppValue.frameRate.HasValue())
+            {
+                chip::JniReferences::GetInstance().CreateOptional(nullptr, value_frameRate);
+            }
+            else
+            {
+                jobject value_frameRateInsideOptional;
+                std::string value_frameRateInsideOptionalClassName     = "java/lang/Integer";
+                std::string value_frameRateInsideOptionalCtorSignature = "(I)V";
+                jint jnivalue_frameRateInsideOptional                  = static_cast<jint>(cppValue.frameRate.Value());
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                    value_frameRateInsideOptionalClassName.c_str(), value_frameRateInsideOptionalCtorSignature.c_str(),
+                    jnivalue_frameRateInsideOptional, value_frameRateInsideOptional);
+                chip::JniReferences::GetInstance().CreateOptional(value_frameRateInsideOptional, value_frameRate);
+            }
+
+            jobject value_bitRate;
+            if (!cppValue.bitRate.HasValue())
+            {
+                chip::JniReferences::GetInstance().CreateOptional(nullptr, value_bitRate);
+            }
+            else
+            {
+                jobject value_bitRateInsideOptional;
+                std::string value_bitRateInsideOptionalClassName     = "java/lang/Long";
+                std::string value_bitRateInsideOptionalCtorSignature = "(J)V";
+                jlong jnivalue_bitRateInsideOptional                 = static_cast<jlong>(cppValue.bitRate.Value());
+                chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
+                    value_bitRateInsideOptionalClassName.c_str(), value_bitRateInsideOptionalCtorSignature.c_str(),
+                    jnivalue_bitRateInsideOptional, value_bitRateInsideOptional);
+                chip::JniReferences::GetInstance().CreateOptional(value_bitRateInsideOptional, value_bitRate);
+            }
+
+            jobject value_minResolution;
+            if (!cppValue.minResolution.HasValue())
+            {
+                chip::JniReferences::GetInstance().CreateOptional(nullptr, value_minResolution);
+            }
+            else
+            {
+                jobject value_minResolutionInsideOptional;
+
+                jclass dimensionStructStructClass_1;
+                err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                    env, "chip/devicecontroller/ChipStructs$CameraAvStreamManagementClusterDimensionStruct",
+                    dimensionStructStructClass_1);
+                if (err != CHIP_NO_ERROR)
+                {
+                    ChipLogError(Zcl, "Could not find class ChipStructs$CameraAvStreamManagementClusterDimensionStruct");
+                    return nullptr;
+                }
+
+                jmethodID dimensionStructStructCtor_1;
+                err = chip::JniReferences::GetInstance().FindMethod(env, dimensionStructStructClass_1, "<init>", "()V",
+                                                                    &dimensionStructStructCtor_1);
+                if (err != CHIP_NO_ERROR || dimensionStructStructCtor_1 == nullptr)
+                {
+                    ChipLogError(Zcl, "Could not find ChipStructs$CameraAvStreamManagementClusterDimensionStruct constructor");
+                    return nullptr;
+                }
+
+                value_minResolutionInsideOptional = env->NewObject(dimensionStructStructClass_1, dimensionStructStructCtor_1);
+                chip::JniReferences::GetInstance().CreateOptional(value_minResolutionInsideOptional, value_minResolution);
+            }
+
+            jobject value_maxResolution;
+            if (!cppValue.maxResolution.HasValue())
+            {
+                chip::JniReferences::GetInstance().CreateOptional(nullptr, value_maxResolution);
+            }
+            else
+            {
+                jobject value_maxResolutionInsideOptional;
+
+                jclass dimensionStructStructClass_1;
+                err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                    env, "chip/devicecontroller/ChipStructs$CameraAvStreamManagementClusterDimensionStruct",
+                    dimensionStructStructClass_1);
+                if (err != CHIP_NO_ERROR)
+                {
+                    ChipLogError(Zcl, "Could not find class ChipStructs$CameraAvStreamManagementClusterDimensionStruct");
+                    return nullptr;
+                }
+
+                jmethodID dimensionStructStructCtor_1;
+                err = chip::JniReferences::GetInstance().FindMethod(env, dimensionStructStructClass_1, "<init>", "()V",
+                                                                    &dimensionStructStructCtor_1);
+                if (err != CHIP_NO_ERROR || dimensionStructStructCtor_1 == nullptr)
+                {
+                    ChipLogError(Zcl, "Could not find ChipStructs$CameraAvStreamManagementClusterDimensionStruct constructor");
+                    return nullptr;
+                }
+
+                value_maxResolutionInsideOptional = env->NewObject(dimensionStructStructClass_1, dimensionStructStructCtor_1);
+                chip::JniReferences::GetInstance().CreateOptional(value_maxResolutionInsideOptional, value_maxResolution);
+            }
+
+            jobject value_quality;
+            if (!cppValue.quality.HasValue())
+            {
+                chip::JniReferences::GetInstance().CreateOptional(nullptr, value_quality);
+            }
+            else
+            {
+                jobject value_qualityInsideOptional;
+                std::string value_qualityInsideOptionalClassName     = "java/lang/Integer";
+                std::string value_qualityInsideOptionalCtorSignature = "(I)V";
+                jint jnivalue_qualityInsideOptional                  = static_cast<jint>(cppValue.quality.Value());
+                chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                    value_qualityInsideOptionalClassName.c_str(), value_qualityInsideOptionalCtorSignature.c_str(),
+                    jnivalue_qualityInsideOptional, value_qualityInsideOptional);
+                chip::JniReferences::GetInstance().CreateOptional(value_qualityInsideOptional, value_quality);
+            }
+
+            jclass snapshotStreamChangedStructClass;
+            err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                env, "chip/devicecontroller/ChipEventStructs$CameraAvStreamManagementClusterSnapshotStreamChangedEvent",
+                snapshotStreamChangedStructClass);
+            if (err != CHIP_NO_ERROR)
+            {
+                ChipLogError(Zcl,
+                             "Could not find class ChipEventStructs$CameraAvStreamManagementClusterSnapshotStreamChangedEvent");
+                return nullptr;
+            }
+
+            jmethodID snapshotStreamChangedStructCtor;
+            err = chip::JniReferences::GetInstance().FindMethod(
+                env, snapshotStreamChangedStructClass, "<init>",
+                "(Ljava/lang/Integer;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/"
+                "Optional;Ljava/util/Optional;)V",
+                &snapshotStreamChangedStructCtor);
+            if (err != CHIP_NO_ERROR || snapshotStreamChangedStructCtor == nullptr)
+            {
+                ChipLogError(
+                    Zcl, "Could not find ChipEventStructs$CameraAvStreamManagementClusterSnapshotStreamChangedEvent constructor");
+                return nullptr;
+            }
+
+            jobject value = env->NewObject(snapshotStreamChangedStructClass, snapshotStreamChangedStructCtor,
+                                           value_snapshotStreamID, value_imageCodec, value_frameRate, value_bitRate,
+                                           value_minResolution, value_maxResolution, value_quality);
+
+            return value;
+        }
+        default:
+            *aError = CHIP_ERROR_IM_MALFORMED_EVENT_PATH_IB;
+            break;
+        }
+        break;
+    }
+    case app::Clusters::CameraAvSettingsUserLevelManagement::Id: {
+        using namespace app::Clusters::CameraAvSettingsUserLevelManagement;
+        switch (aPath.mEventId)
+        {
+        default:
+            *aError = CHIP_ERROR_IM_MALFORMED_EVENT_PATH_IB;
+            break;
+        }
+        break;
+    }
+    case app::Clusters::WebRTCTransportProvider::Id: {
+        using namespace app::Clusters::WebRTCTransportProvider;
+        switch (aPath.mEventId)
+        {
+        default:
+            *aError = CHIP_ERROR_IM_MALFORMED_EVENT_PATH_IB;
+            break;
+        }
+        break;
+    }
+    case app::Clusters::WebRTCTransportRequestor::Id: {
+        using namespace app::Clusters::WebRTCTransportRequestor;
+        switch (aPath.mEventId)
+        {
+        default:
+            *aError = CHIP_ERROR_IM_MALFORMED_EVENT_PATH_IB;
+            break;
+        }
+        break;
+    }
+    case app::Clusters::PushAvStreamTransport::Id: {
+        using namespace app::Clusters::PushAvStreamTransport;
+        switch (aPath.mEventId)
+        {
+        case Events::PushTransportBegin::Id: {
+            Events::PushTransportBegin::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jclass pushTransportBeginStructClass;
+            err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                env, "chip/devicecontroller/ChipEventStructs$PushAvStreamTransportClusterPushTransportBeginEvent",
+                pushTransportBeginStructClass);
+            if (err != CHIP_NO_ERROR)
+            {
+                ChipLogError(Zcl, "Could not find class ChipEventStructs$PushAvStreamTransportClusterPushTransportBeginEvent");
+                return nullptr;
+            }
+
+            jmethodID pushTransportBeginStructCtor;
+            err = chip::JniReferences::GetInstance().FindMethod(env, pushTransportBeginStructClass, "<init>", "()V",
+                                                                &pushTransportBeginStructCtor);
+            if (err != CHIP_NO_ERROR || pushTransportBeginStructCtor == nullptr)
+            {
+                ChipLogError(Zcl,
+                             "Could not find ChipEventStructs$PushAvStreamTransportClusterPushTransportBeginEvent constructor");
+                return nullptr;
+            }
+
+            jobject value = env->NewObject(pushTransportBeginStructClass, pushTransportBeginStructCtor);
+
+            return value;
+        }
+        case Events::PushTransportEnd::Id: {
+            Events::PushTransportEnd::DecodableType cppValue;
+            *aError = app::DataModel::Decode(aReader, cppValue);
+            if (*aError != CHIP_NO_ERROR)
+            {
+                return nullptr;
+            }
+            jobject value_connectionID;
+            std::string value_connectionIDClassName     = "java/lang/Integer";
+            std::string value_connectionIDCtorSignature = "(I)V";
+            jint jnivalue_connectionID                  = static_cast<jint>(cppValue.connectionID);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(value_connectionIDClassName.c_str(),
+                                                                       value_connectionIDCtorSignature.c_str(),
+                                                                       jnivalue_connectionID, value_connectionID);
+
+            jobject value_triggerDetails;
+            jobject value_triggerDetails_triggerType;
+            std::string value_triggerDetails_triggerTypeClassName     = "java/lang/Integer";
+            std::string value_triggerDetails_triggerTypeCtorSignature = "(I)V";
+            jint jnivalue_triggerDetails_triggerType                  = static_cast<jint>(cppValue.triggerDetails.triggerType);
+            chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                value_triggerDetails_triggerTypeClassName.c_str(), value_triggerDetails_triggerTypeCtorSignature.c_str(),
+                jnivalue_triggerDetails_triggerType, value_triggerDetails_triggerType);
+            jobject value_triggerDetails_motionZones;
+            if (!cppValue.triggerDetails.motionZones.HasValue())
+            {
+                chip::JniReferences::GetInstance().CreateOptional(nullptr, value_triggerDetails_motionZones);
+            }
+            else
+            {
+                jobject value_triggerDetails_motionZonesInsideOptional;
+                if (cppValue.triggerDetails.motionZones.Value().IsNull())
+                {
+                    value_triggerDetails_motionZonesInsideOptional = nullptr;
+                }
+                else
+                {
+                    chip::JniReferences::GetInstance().CreateArrayList(value_triggerDetails_motionZonesInsideOptional);
+
+                    auto iter_value_triggerDetails_motionZonesInsideOptional_3 =
+                        cppValue.triggerDetails.motionZones.Value().Value().begin();
+                    while (iter_value_triggerDetails_motionZonesInsideOptional_3.Next())
+                    {
+                        auto & entry_3 = iter_value_triggerDetails_motionZonesInsideOptional_3.GetValue();
+                        jobject newElement_3;
+                        std::string newElement_3ClassName     = "java/lang/Integer";
+                        std::string newElement_3CtorSignature = "(I)V";
+                        jint jninewElement_3                  = static_cast<jint>(entry_3);
+                        chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                            newElement_3ClassName.c_str(), newElement_3CtorSignature.c_str(), jninewElement_3, newElement_3);
+                        chip::JniReferences::GetInstance().AddToList(value_triggerDetails_motionZonesInsideOptional, newElement_3);
+                    }
+                }
+                chip::JniReferences::GetInstance().CreateOptional(value_triggerDetails_motionZonesInsideOptional,
+                                                                  value_triggerDetails_motionZones);
+            }
+            jobject value_triggerDetails_motionSensitivity;
+            if (!cppValue.triggerDetails.motionSensitivity.HasValue())
+            {
+                chip::JniReferences::GetInstance().CreateOptional(nullptr, value_triggerDetails_motionSensitivity);
+            }
+            else
+            {
+                jobject value_triggerDetails_motionSensitivityInsideOptional;
+                if (cppValue.triggerDetails.motionSensitivity.Value().IsNull())
+                {
+                    value_triggerDetails_motionSensitivityInsideOptional = nullptr;
+                }
+                else
+                {
+                    std::string value_triggerDetails_motionSensitivityInsideOptionalClassName     = "java/lang/Integer";
+                    std::string value_triggerDetails_motionSensitivityInsideOptionalCtorSignature = "(I)V";
+                    jint jnivalue_triggerDetails_motionSensitivityInsideOptional =
+                        static_cast<jint>(cppValue.triggerDetails.motionSensitivity.Value().Value());
+                    chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                        value_triggerDetails_motionSensitivityInsideOptionalClassName.c_str(),
+                        value_triggerDetails_motionSensitivityInsideOptionalCtorSignature.c_str(),
+                        jnivalue_triggerDetails_motionSensitivityInsideOptional,
+                        value_triggerDetails_motionSensitivityInsideOptional);
+                }
+                chip::JniReferences::GetInstance().CreateOptional(value_triggerDetails_motionSensitivityInsideOptional,
+                                                                  value_triggerDetails_motionSensitivity);
+            }
+            jobject value_triggerDetails_motionTimeControl;
+            if (!cppValue.triggerDetails.motionTimeControl.HasValue())
+            {
+                chip::JniReferences::GetInstance().CreateOptional(nullptr, value_triggerDetails_motionTimeControl);
+            }
+            else
+            {
+                jobject value_triggerDetails_motionTimeControlInsideOptional;
+                if (cppValue.triggerDetails.motionTimeControl.Value().IsNull())
+                {
+                    value_triggerDetails_motionTimeControlInsideOptional = nullptr;
+                }
+                else
+                {
+                    jobject value_triggerDetails_motionTimeControlInsideOptional_initialDuration;
+                    std::string value_triggerDetails_motionTimeControlInsideOptional_initialDurationClassName = "java/lang/Integer";
+                    std::string value_triggerDetails_motionTimeControlInsideOptional_initialDurationCtorSignature = "(I)V";
+                    jint jnivalue_triggerDetails_motionTimeControlInsideOptional_initialDuration =
+                        static_cast<jint>(cppValue.triggerDetails.motionTimeControl.Value().Value().initialDuration);
+                    chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                        value_triggerDetails_motionTimeControlInsideOptional_initialDurationClassName.c_str(),
+                        value_triggerDetails_motionTimeControlInsideOptional_initialDurationCtorSignature.c_str(),
+                        jnivalue_triggerDetails_motionTimeControlInsideOptional_initialDuration,
+                        value_triggerDetails_motionTimeControlInsideOptional_initialDuration);
+                    jobject value_triggerDetails_motionTimeControlInsideOptional_augmentationDuration;
+                    std::string value_triggerDetails_motionTimeControlInsideOptional_augmentationDurationClassName =
+                        "java/lang/Integer";
+                    std::string value_triggerDetails_motionTimeControlInsideOptional_augmentationDurationCtorSignature = "(I)V";
+                    jint jnivalue_triggerDetails_motionTimeControlInsideOptional_augmentationDuration =
+                        static_cast<jint>(cppValue.triggerDetails.motionTimeControl.Value().Value().augmentationDuration);
+                    chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                        value_triggerDetails_motionTimeControlInsideOptional_augmentationDurationClassName.c_str(),
+                        value_triggerDetails_motionTimeControlInsideOptional_augmentationDurationCtorSignature.c_str(),
+                        jnivalue_triggerDetails_motionTimeControlInsideOptional_augmentationDuration,
+                        value_triggerDetails_motionTimeControlInsideOptional_augmentationDuration);
+                    jobject value_triggerDetails_motionTimeControlInsideOptional_maxDuration;
+                    std::string value_triggerDetails_motionTimeControlInsideOptional_maxDurationClassName     = "java/lang/Long";
+                    std::string value_triggerDetails_motionTimeControlInsideOptional_maxDurationCtorSignature = "(J)V";
+                    jlong jnivalue_triggerDetails_motionTimeControlInsideOptional_maxDuration =
+                        static_cast<jlong>(cppValue.triggerDetails.motionTimeControl.Value().Value().maxDuration);
+                    chip::JniReferences::GetInstance().CreateBoxedObject<jlong>(
+                        value_triggerDetails_motionTimeControlInsideOptional_maxDurationClassName.c_str(),
+                        value_triggerDetails_motionTimeControlInsideOptional_maxDurationCtorSignature.c_str(),
+                        jnivalue_triggerDetails_motionTimeControlInsideOptional_maxDuration,
+                        value_triggerDetails_motionTimeControlInsideOptional_maxDuration);
+                    jobject value_triggerDetails_motionTimeControlInsideOptional_blindDuration;
+                    std::string value_triggerDetails_motionTimeControlInsideOptional_blindDurationClassName = "java/lang/Integer";
+                    std::string value_triggerDetails_motionTimeControlInsideOptional_blindDurationCtorSignature = "(I)V";
+                    jint jnivalue_triggerDetails_motionTimeControlInsideOptional_blindDuration =
+                        static_cast<jint>(cppValue.triggerDetails.motionTimeControl.Value().Value().blindDuration);
+                    chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                        value_triggerDetails_motionTimeControlInsideOptional_blindDurationClassName.c_str(),
+                        value_triggerDetails_motionTimeControlInsideOptional_blindDurationCtorSignature.c_str(),
+                        jnivalue_triggerDetails_motionTimeControlInsideOptional_blindDuration,
+                        value_triggerDetails_motionTimeControlInsideOptional_blindDuration);
+
+                    jclass pushAVStreamTransportMotionTriggerTimeControlStructStructClass_3;
+                    err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                        env,
+                        "chip/devicecontroller/"
+                        "ChipStructs$PushAvStreamTransportClusterPushAVStreamTransportMotionTriggerTimeControlStruct",
+                        pushAVStreamTransportMotionTriggerTimeControlStructStructClass_3);
+                    if (err != CHIP_NO_ERROR)
+                    {
+                        ChipLogError(Zcl,
+                                     "Could not find class "
+                                     "ChipStructs$PushAvStreamTransportClusterPushAVStreamTransportMotionTriggerTimeControlStruct");
+                        return nullptr;
+                    }
+
+                    jmethodID pushAVStreamTransportMotionTriggerTimeControlStructStructCtor_3;
+                    err = chip::JniReferences::GetInstance().FindMethod(
+                        env, pushAVStreamTransportMotionTriggerTimeControlStructStructClass_3, "<init>",
+                        "(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Long;Ljava/lang/Integer;)V",
+                        &pushAVStreamTransportMotionTriggerTimeControlStructStructCtor_3);
+                    if (err != CHIP_NO_ERROR || pushAVStreamTransportMotionTriggerTimeControlStructStructCtor_3 == nullptr)
+                    {
+                        ChipLogError(Zcl,
+                                     "Could not find "
+                                     "ChipStructs$PushAvStreamTransportClusterPushAVStreamTransportMotionTriggerTimeControlStruct "
+                                     "constructor");
+                        return nullptr;
+                    }
+
+                    value_triggerDetails_motionTimeControlInsideOptional =
+                        env->NewObject(pushAVStreamTransportMotionTriggerTimeControlStructStructClass_3,
+                                       pushAVStreamTransportMotionTriggerTimeControlStructStructCtor_3,
+                                       value_triggerDetails_motionTimeControlInsideOptional_initialDuration,
+                                       value_triggerDetails_motionTimeControlInsideOptional_augmentationDuration,
+                                       value_triggerDetails_motionTimeControlInsideOptional_maxDuration,
+                                       value_triggerDetails_motionTimeControlInsideOptional_blindDuration);
+                }
+                chip::JniReferences::GetInstance().CreateOptional(value_triggerDetails_motionTimeControlInsideOptional,
+                                                                  value_triggerDetails_motionTimeControl);
+            }
+            jobject value_triggerDetails_activationReason;
+            if (!cppValue.triggerDetails.activationReason.HasValue())
+            {
+                chip::JniReferences::GetInstance().CreateOptional(nullptr, value_triggerDetails_activationReason);
+            }
+            else
+            {
+                jobject value_triggerDetails_activationReasonInsideOptional;
+                if (cppValue.triggerDetails.activationReason.Value().IsNull())
+                {
+                    value_triggerDetails_activationReasonInsideOptional = nullptr;
+                }
+                else
+                {
+                    std::string value_triggerDetails_activationReasonInsideOptionalClassName     = "java/lang/Integer";
+                    std::string value_triggerDetails_activationReasonInsideOptionalCtorSignature = "(I)V";
+                    jint jnivalue_triggerDetails_activationReasonInsideOptional =
+                        static_cast<jint>(cppValue.triggerDetails.activationReason.Value().Value());
+                    chip::JniReferences::GetInstance().CreateBoxedObject<jint>(
+                        value_triggerDetails_activationReasonInsideOptionalClassName.c_str(),
+                        value_triggerDetails_activationReasonInsideOptionalCtorSignature.c_str(),
+                        jnivalue_triggerDetails_activationReasonInsideOptional,
+                        value_triggerDetails_activationReasonInsideOptional);
+                }
+                chip::JniReferences::GetInstance().CreateOptional(value_triggerDetails_activationReasonInsideOptional,
+                                                                  value_triggerDetails_activationReason);
+            }
+
+            jclass pushAVStreamTransportTriggerOptionsStructStructClass_0;
+            err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                env, "chip/devicecontroller/ChipStructs$PushAvStreamTransportClusterPushAVStreamTransportTriggerOptionsStruct",
+                pushAVStreamTransportTriggerOptionsStructStructClass_0);
+            if (err != CHIP_NO_ERROR)
+            {
+                ChipLogError(
+                    Zcl, "Could not find class ChipStructs$PushAvStreamTransportClusterPushAVStreamTransportTriggerOptionsStruct");
+                return nullptr;
+            }
+
+            jmethodID pushAVStreamTransportTriggerOptionsStructStructCtor_0;
+            err = chip::JniReferences::GetInstance().FindMethod(
+                env, pushAVStreamTransportTriggerOptionsStructStructClass_0, "<init>",
+                "(Ljava/lang/Integer;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;)V",
+                &pushAVStreamTransportTriggerOptionsStructStructCtor_0);
+            if (err != CHIP_NO_ERROR || pushAVStreamTransportTriggerOptionsStructStructCtor_0 == nullptr)
+            {
+                ChipLogError(
+                    Zcl,
+                    "Could not find ChipStructs$PushAvStreamTransportClusterPushAVStreamTransportTriggerOptionsStruct constructor");
+                return nullptr;
+            }
+
+            value_triggerDetails = env->NewObject(
+                pushAVStreamTransportTriggerOptionsStructStructClass_0, pushAVStreamTransportTriggerOptionsStructStructCtor_0,
+                value_triggerDetails_triggerType, value_triggerDetails_motionZones, value_triggerDetails_motionSensitivity,
+                value_triggerDetails_motionTimeControl, value_triggerDetails_activationReason);
+
+            jclass pushTransportEndStructClass;
+            err = chip::JniReferences::GetInstance().GetLocalClassRef(
+                env, "chip/devicecontroller/ChipEventStructs$PushAvStreamTransportClusterPushTransportEndEvent",
+                pushTransportEndStructClass);
+            if (err != CHIP_NO_ERROR)
+            {
+                ChipLogError(Zcl, "Could not find class ChipEventStructs$PushAvStreamTransportClusterPushTransportEndEvent");
+                return nullptr;
+            }
+
+            jmethodID pushTransportEndStructCtor;
+            err = chip::JniReferences::GetInstance().FindMethod(
+                env, pushTransportEndStructClass, "<init>",
+                "(Ljava/lang/Integer;Lchip/devicecontroller/"
+                "ChipStructs$PushAvStreamTransportClusterPushAVStreamTransportTriggerOptionsStruct;)V",
+                &pushTransportEndStructCtor);
+            if (err != CHIP_NO_ERROR || pushTransportEndStructCtor == nullptr)
+            {
+                ChipLogError(Zcl, "Could not find ChipEventStructs$PushAvStreamTransportClusterPushTransportEndEvent constructor");
+                return nullptr;
+            }
+
+            jobject value =
+                env->NewObject(pushTransportEndStructClass, pushTransportEndStructCtor, value_connectionID, value_triggerDetails);
+
+            return value;
+        }
+        default:
+            *aError = CHIP_ERROR_IM_MALFORMED_EVENT_PATH_IB;
+            break;
+        }
+        break;
+    }
+    case app::Clusters::Chime::Id: {
+        using namespace app::Clusters::Chime;
+        switch (aPath.mEventId)
+        {
+        default:
+            *aError = CHIP_ERROR_IM_MALFORMED_EVENT_PATH_IB;
+            break;
+        }
+        break;
+    }
     case app::Clusters::EcosystemInformation::Id: {
         using namespace app::Clusters::EcosystemInformation;
         switch (aPath.mEventId)
diff --git a/src/controller/python/chip/clusters/CHIPClusters.py b/src/controller/python/chip/clusters/CHIPClusters.py
index 268dd1abfb574c..46a0d93d52f423 100644
--- a/src/controller/python/chip/clusters/CHIPClusters.py
+++ b/src/controller/python/chip/clusters/CHIPClusters.py
@@ -13313,6 +13313,969 @@ class ChipClusters:
             },
         },
     }
+    _CAMERA_AV_STREAM_MANAGEMENT_CLUSTER_INFO = {
+        "clusterName": "CameraAvStreamManagement",
+        "clusterId": 0x00000551,
+        "commands": {
+            0x00000000: {
+                "commandId": 0x00000000,
+                "commandName": "AudioStreamAllocate",
+                "args": {
+                    "streamType": "int",
+                    "audioCodec": "int",
+                    "channelCount": "int",
+                    "sampleRate": "int",
+                    "bitRate": "int",
+                    "bitDepth": "int",
+                },
+            },
+            0x00000002: {
+                "commandId": 0x00000002,
+                "commandName": "AudioStreamDeallocate",
+                "args": {
+                    "audioStreamID": "int",
+                },
+            },
+            0x00000003: {
+                "commandId": 0x00000003,
+                "commandName": "VideoStreamAllocate",
+                "args": {
+                    "streamType": "int",
+                    "videoCodec": "int",
+                    "minFrameRate": "int",
+                    "maxFrameRate": "int",
+                    "minResolution": "DimensionStruct",
+                    "maxResolution": "DimensionStruct",
+                    "minBitRate": "int",
+                    "maxBitRate": "int",
+                    "minFragmentLen": "int",
+                    "maxFragmentLen": "int",
+                },
+            },
+            0x00000005: {
+                "commandId": 0x00000005,
+                "commandName": "VideoStreamModify",
+                "args": {
+                    "videoStreamID": "int",
+                    "resolution": "DimensionStruct",
+                },
+            },
+            0x00000006: {
+                "commandId": 0x00000006,
+                "commandName": "VideoStreamDeallocate",
+                "args": {
+                    "videoStreamID": "int",
+                },
+            },
+            0x00000007: {
+                "commandId": 0x00000007,
+                "commandName": "SnapshotStreamAllocate",
+                "args": {
+                    "imageCodec": "int",
+                    "frameRate": "int",
+                    "bitRate": "int",
+                    "minResolution": "DimensionStruct",
+                    "maxResolution": "DimensionStruct",
+                    "quality": "int",
+                },
+            },
+            0x00000009: {
+                "commandId": 0x00000009,
+                "commandName": "SnapshotStreamDeallocate",
+                "args": {
+                    "snapshotStreamID": "int",
+                },
+            },
+            0x0000000A: {
+                "commandId": 0x0000000A,
+                "commandName": "SetStreamPriority",
+                "args": {
+                },
+            },
+            0x0000000B: {
+                "commandId": 0x0000000B,
+                "commandName": "CaptureSnapshot",
+                "args": {
+                    "snapshotStreamID": "int",
+                    "requestedResolution": "DimensionStruct",
+                },
+            },
+            0x0000000D: {
+                "commandId": 0x0000000D,
+                "commandName": "SetViewport",
+                "args": {
+                    "viewport": "ViewportStruct",
+                },
+            },
+            0x0000000E: {
+                "commandId": 0x0000000E,
+                "commandName": "SetImageRotation",
+                "args": {
+                    "angle": "int",
+                },
+            },
+            0x0000000F: {
+                "commandId": 0x0000000F,
+                "commandName": "SetImageFlipHorizontal",
+                "args": {
+                    "onOff": "bool",
+                },
+            },
+            0x00000010: {
+                "commandId": 0x00000010,
+                "commandName": "SetImageFlipVertical",
+                "args": {
+                    "onOff": "bool",
+                },
+            },
+        },
+        "attributes": {
+            0x00000000: {
+                "attributeName": "MaxConcurrentVideoEncoders",
+                "attributeId": 0x00000000,
+                "type": "int",
+                "reportable": True,
+            },
+            0x00000001: {
+                "attributeName": "MaxEncodedPixelRate",
+                "attributeId": 0x00000001,
+                "type": "int",
+                "reportable": True,
+            },
+            0x00000002: {
+                "attributeName": "VideoSensorParams",
+                "attributeId": 0x00000002,
+                "type": "",
+                "reportable": True,
+            },
+            0x00000003: {
+                "attributeName": "NightVisionCapable",
+                "attributeId": 0x00000003,
+                "type": "bool",
+                "reportable": True,
+            },
+            0x00000004: {
+                "attributeName": "MinViewPortWidth",
+                "attributeId": 0x00000004,
+                "type": "",
+                "reportable": True,
+            },
+            0x00000005: {
+                "attributeName": "MinViewPortHeight",
+                "attributeId": 0x00000005,
+                "type": "",
+                "reportable": True,
+            },
+            0x00000006: {
+                "attributeName": "RateDistortionTradeOffPoints",
+                "attributeId": 0x00000006,
+                "type": "",
+                "reportable": True,
+            },
+            0x00000007: {
+                "attributeName": "MaxPreRollBufferSize",
+                "attributeId": 0x00000007,
+                "type": "int",
+                "reportable": True,
+            },
+            0x00000008: {
+                "attributeName": "MicrophoneCapabilities",
+                "attributeId": 0x00000008,
+                "type": "",
+                "reportable": True,
+            },
+            0x00000009: {
+                "attributeName": "SpeakerCapabilities",
+                "attributeId": 0x00000009,
+                "type": "",
+                "reportable": True,
+            },
+            0x0000000A: {
+                "attributeName": "TwoWayTalkSupport",
+                "attributeId": 0x0000000A,
+                "type": "int",
+                "reportable": True,
+            },
+            0x0000000B: {
+                "attributeName": "SupportedSnapshotParams",
+                "attributeId": 0x0000000B,
+                "type": "",
+                "reportable": True,
+            },
+            0x0000000C: {
+                "attributeName": "HDRCapable",
+                "attributeId": 0x0000000C,
+                "type": "bool",
+                "reportable": True,
+            },
+            0x0000000D: {
+                "attributeName": "MaxNetworkBandwidth",
+                "attributeId": 0x0000000D,
+                "type": "int",
+                "reportable": True,
+            },
+            0x0000000E: {
+                "attributeName": "CurrentFrameRate",
+                "attributeId": 0x0000000E,
+                "type": "int",
+                "reportable": True,
+            },
+            0x0000000F: {
+                "attributeName": "HDRMode",
+                "attributeId": 0x0000000F,
+                "type": "bool",
+                "reportable": True,
+                "writable": True,
+            },
+            0x00000010: {
+                "attributeName": "CurrentVideoCodecs",
+                "attributeId": 0x00000010,
+                "type": "int",
+                "reportable": True,
+            },
+            0x00000011: {
+                "attributeName": "CurrentSnapshotConfig",
+                "attributeId": 0x00000011,
+                "type": "",
+                "reportable": True,
+            },
+            0x00000012: {
+                "attributeName": "FabricsUsingCamera",
+                "attributeId": 0x00000012,
+                "type": "int",
+                "reportable": True,
+            },
+            0x00000013: {
+                "attributeName": "AllocatedVideoStreams",
+                "attributeId": 0x00000013,
+                "type": "",
+                "reportable": True,
+            },
+            0x00000014: {
+                "attributeName": "AllocatedAudioStreams",
+                "attributeId": 0x00000014,
+                "type": "",
+                "reportable": True,
+            },
+            0x00000015: {
+                "attributeName": "AllocatedSnapshotStreams",
+                "attributeId": 0x00000015,
+                "type": "",
+                "reportable": True,
+            },
+            0x00000016: {
+                "attributeName": "RankedVideoStreamPrioritiesList",
+                "attributeId": 0x00000016,
+                "type": "int",
+                "reportable": True,
+                "writable": True,
+            },
+            0x00000017: {
+                "attributeName": "SoftRecordingPrivacyModeSetting",
+                "attributeId": 0x00000017,
+                "type": "bool",
+                "reportable": True,
+                "writable": True,
+            },
+            0x00000018: {
+                "attributeName": "SoftLivestreamPrivacyModeSetting",
+                "attributeId": 0x00000018,
+                "type": "bool",
+                "reportable": True,
+                "writable": True,
+            },
+            0x00000019: {
+                "attributeName": "HardPrivacyMode",
+                "attributeId": 0x00000019,
+                "type": "bool",
+                "reportable": True,
+            },
+            0x0000001A: {
+                "attributeName": "NightVision",
+                "attributeId": 0x0000001A,
+                "type": "int",
+                "reportable": True,
+                "writable": True,
+            },
+            0x0000001B: {
+                "attributeName": "NightVisionIllum",
+                "attributeId": 0x0000001B,
+                "type": "int",
+                "reportable": True,
+                "writable": True,
+            },
+            0x0000001C: {
+                "attributeName": "Awb",
+                "attributeId": 0x0000001C,
+                "type": "bool",
+                "reportable": True,
+                "writable": True,
+            },
+            0x0000001D: {
+                "attributeName": "ShutterSpeed",
+                "attributeId": 0x0000001D,
+                "type": "bool",
+                "reportable": True,
+                "writable": True,
+            },
+            0x0000001E: {
+                "attributeName": "Iso",
+                "attributeId": 0x0000001E,
+                "type": "bool",
+                "reportable": True,
+                "writable": True,
+            },
+            0x0000001F: {
+                "attributeName": "Viewport",
+                "attributeId": 0x0000001F,
+                "type": "",
+                "reportable": True,
+            },
+            0x00000020: {
+                "attributeName": "SpkrOnOff",
+                "attributeId": 0x00000020,
+                "type": "bool",
+                "reportable": True,
+                "writable": True,
+            },
+            0x00000021: {
+                "attributeName": "SpkrVolumeLevel",
+                "attributeId": 0x00000021,
+                "type": "int",
+                "reportable": True,
+                "writable": True,
+            },
+            0x00000022: {
+                "attributeName": "SpkrMaxLevel",
+                "attributeId": 0x00000022,
+                "type": "int",
+                "reportable": True,
+                "writable": True,
+            },
+            0x00000023: {
+                "attributeName": "SpkrMinLevel",
+                "attributeId": 0x00000023,
+                "type": "int",
+                "reportable": True,
+                "writable": True,
+            },
+            0x00000024: {
+                "attributeName": "MicOnOff",
+                "attributeId": 0x00000024,
+                "type": "bool",
+                "reportable": True,
+                "writable": True,
+            },
+            0x00000025: {
+                "attributeName": "MicCurrentLevel",
+                "attributeId": 0x00000025,
+                "type": "int",
+                "reportable": True,
+                "writable": True,
+            },
+            0x00000026: {
+                "attributeName": "MicMaxLevel",
+                "attributeId": 0x00000026,
+                "type": "int",
+                "reportable": True,
+                "writable": True,
+            },
+            0x00000027: {
+                "attributeName": "MicMinLevel",
+                "attributeId": 0x00000027,
+                "type": "int",
+                "reportable": True,
+                "writable": True,
+            },
+            0x00000028: {
+                "attributeName": "MicAGC",
+                "attributeId": 0x00000028,
+                "type": "bool",
+                "reportable": True,
+                "writable": True,
+            },
+            0x00000029: {
+                "attributeName": "ImageRotation",
+                "attributeId": 0x00000029,
+                "type": "int",
+                "reportable": True,
+            },
+            0x0000002A: {
+                "attributeName": "ImageFlipHorizontal",
+                "attributeId": 0x0000002A,
+                "type": "bool",
+                "reportable": True,
+            },
+            0x0000002B: {
+                "attributeName": "ImageFlipVertical",
+                "attributeId": 0x0000002B,
+                "type": "bool",
+                "reportable": True,
+            },
+            0x0000002C: {
+                "attributeName": "LocalVideoRecordingEnabled",
+                "attributeId": 0x0000002C,
+                "type": "bool",
+                "reportable": True,
+                "writable": True,
+            },
+            0x0000002D: {
+                "attributeName": "LocalSnapshotRecordingEnabled",
+                "attributeId": 0x0000002D,
+                "type": "bool",
+                "reportable": True,
+                "writable": True,
+            },
+            0x0000002E: {
+                "attributeName": "StatusLight",
+                "attributeId": 0x0000002E,
+                "type": "bool",
+                "reportable": True,
+                "writable": True,
+            },
+            0x0000002F: {
+                "attributeName": "StatusLightBrightness",
+                "attributeId": 0x0000002F,
+                "type": "int",
+                "reportable": True,
+                "writable": True,
+            },
+            0x00000030: {
+                "attributeName": "DepthSensorStatus",
+                "attributeId": 0x00000030,
+                "type": "int",
+                "reportable": True,
+                "writable": True,
+            },
+            0x00000031: {
+                "attributeName": "WatermarkEnabled",
+                "attributeId": 0x00000031,
+                "type": "",
+                "reportable": True,
+                "writable": True,
+            },
+            0x00000032: {
+                "attributeName": "OSDEnabled",
+                "attributeId": 0x00000032,
+                "type": "",
+                "reportable": True,
+                "writable": True,
+            },
+            0x0000FFF8: {
+                "attributeName": "GeneratedCommandList",
+                "attributeId": 0x0000FFF8,
+                "type": "int",
+                "reportable": True,
+            },
+            0x0000FFF9: {
+                "attributeName": "AcceptedCommandList",
+                "attributeId": 0x0000FFF9,
+                "type": "int",
+                "reportable": True,
+            },
+            0x0000FFFA: {
+                "attributeName": "EventList",
+                "attributeId": 0x0000FFFA,
+                "type": "int",
+                "reportable": True,
+            },
+            0x0000FFFB: {
+                "attributeName": "AttributeList",
+                "attributeId": 0x0000FFFB,
+                "type": "int",
+                "reportable": True,
+            },
+            0x0000FFFC: {
+                "attributeName": "FeatureMap",
+                "attributeId": 0x0000FFFC,
+                "type": "int",
+                "reportable": True,
+            },
+            0x0000FFFD: {
+                "attributeName": "ClusterRevision",
+                "attributeId": 0x0000FFFD,
+                "type": "int",
+                "reportable": True,
+            },
+        },
+    }
+    _CAMERA_AV_SETTINGS_USER_LEVEL_MANAGEMENT_CLUSTER_INFO = {
+        "clusterName": "CameraAvSettingsUserLevelManagement",
+        "clusterId": 0x00000552,
+        "commands": {
+            0x00000000: {
+                "commandId": 0x00000000,
+                "commandName": "MptzSet",
+                "args": {
+                    "newPTZ": "MPTZStruct",
+                    "presetID": "int",
+                },
+            },
+            0x00000001: {
+                "commandId": 0x00000001,
+                "commandName": "MptzRelativeMove",
+                "args": {
+                    "pan": "int",
+                    "tilt": "int",
+                    "zoom": "int",
+                },
+            },
+            0x00000002: {
+                "commandId": 0x00000002,
+                "commandName": "SetAsPreset",
+                "args": {
+                },
+            },
+            0x00000003: {
+                "commandId": 0x00000003,
+                "commandName": "DptzSetViewport",
+                "args": {
+                    "videoStreamID": "int",
+                    "viewport": "ViewportStruct",
+                },
+            },
+            0x00000004: {
+                "commandId": 0x00000004,
+                "commandName": "DptzRelativeMove",
+                "args": {
+                    "videoStreamID": "int",
+                    "pan": "int",
+                    "tilt": "int",
+                    "zoom": "int",
+                },
+            },
+        },
+        "attributes": {
+            0x00000000: {
+                "attributeName": "Mptz",
+                "attributeId": 0x00000000,
+                "type": "",
+                "reportable": True,
+            },
+            0x00000001: {
+                "attributeName": "MaxPresets",
+                "attributeId": 0x00000001,
+                "type": "int",
+                "reportable": True,
+            },
+            0x00000002: {
+                "attributeName": "PresetMptzTable",
+                "attributeId": 0x00000002,
+                "type": "",
+                "reportable": True,
+            },
+            0x00000003: {
+                "attributeName": "MptzRelativeMove",
+                "attributeId": 0x00000003,
+                "type": "bool",
+                "reportable": True,
+            },
+            0x00000004: {
+                "attributeName": "DptzRelativeMove",
+                "attributeId": 0x00000004,
+                "type": "",
+                "reportable": True,
+            },
+            0x0000FFF8: {
+                "attributeName": "GeneratedCommandList",
+                "attributeId": 0x0000FFF8,
+                "type": "int",
+                "reportable": True,
+            },
+            0x0000FFF9: {
+                "attributeName": "AcceptedCommandList",
+                "attributeId": 0x0000FFF9,
+                "type": "int",
+                "reportable": True,
+            },
+            0x0000FFFA: {
+                "attributeName": "EventList",
+                "attributeId": 0x0000FFFA,
+                "type": "int",
+                "reportable": True,
+            },
+            0x0000FFFB: {
+                "attributeName": "AttributeList",
+                "attributeId": 0x0000FFFB,
+                "type": "int",
+                "reportable": True,
+            },
+            0x0000FFFC: {
+                "attributeName": "FeatureMap",
+                "attributeId": 0x0000FFFC,
+                "type": "int",
+                "reportable": True,
+            },
+            0x0000FFFD: {
+                "attributeName": "ClusterRevision",
+                "attributeId": 0x0000FFFD,
+                "type": "int",
+                "reportable": True,
+            },
+        },
+    }
+    _WEB_RTC_TRANSPORT_PROVIDER_CLUSTER_INFO = {
+        "clusterName": "WebRTCTransportProvider",
+        "clusterId": 0x00000553,
+        "commands": {
+            0x00000001: {
+                "commandId": 0x00000001,
+                "commandName": "WebRTCSolicitOffer",
+                "args": {
+                    "streamType": "int",
+                    "videoStreamID": "int",
+                    "audioStreamID": "int",
+                    "ICEServers": "ICEServerStruct",
+                    "ICETransportPolicy": "str",
+                    "metadataOptions": "int",
+                },
+            },
+            0x00000003: {
+                "commandId": 0x00000003,
+                "commandName": "WebRTCProvideOffer",
+                "args": {
+                    "webRTCSessionID": "int",
+                    "sdp": "str",
+                    "streamType": "int",
+                    "videoStreamID": "int",
+                    "audioStreamID": "int",
+                    "ICEServers": "ICEServerStruct",
+                    "ICETransportPolicy": "str",
+                    "metadataOptions": "int",
+                },
+            },
+            0x00000005: {
+                "commandId": 0x00000005,
+                "commandName": "WebRTCProvideAnswer",
+                "args": {
+                    "webRTCSessionID": "int",
+                    "sdp": "str",
+                },
+            },
+            0x00000006: {
+                "commandId": 0x00000006,
+                "commandName": "WebRTCProvideICECandidate",
+                "args": {
+                    "webRTCSessionID": "int",
+                    "ICECandidate": "str",
+                },
+            },
+            0x00000007: {
+                "commandId": 0x00000007,
+                "commandName": "WebRTCEndSession",
+                "args": {
+                    "webRTCSessionID": "int",
+                    "reason": "int",
+                },
+            },
+        },
+        "attributes": {
+            0x00000000: {
+                "attributeName": "CurrentSessions",
+                "attributeId": 0x00000000,
+                "type": "",
+                "reportable": True,
+            },
+            0x0000FFF8: {
+                "attributeName": "GeneratedCommandList",
+                "attributeId": 0x0000FFF8,
+                "type": "int",
+                "reportable": True,
+            },
+            0x0000FFF9: {
+                "attributeName": "AcceptedCommandList",
+                "attributeId": 0x0000FFF9,
+                "type": "int",
+                "reportable": True,
+            },
+            0x0000FFFA: {
+                "attributeName": "EventList",
+                "attributeId": 0x0000FFFA,
+                "type": "int",
+                "reportable": True,
+            },
+            0x0000FFFB: {
+                "attributeName": "AttributeList",
+                "attributeId": 0x0000FFFB,
+                "type": "int",
+                "reportable": True,
+            },
+            0x0000FFFC: {
+                "attributeName": "FeatureMap",
+                "attributeId": 0x0000FFFC,
+                "type": "int",
+                "reportable": True,
+            },
+            0x0000FFFD: {
+                "attributeName": "ClusterRevision",
+                "attributeId": 0x0000FFFD,
+                "type": "int",
+                "reportable": True,
+            },
+        },
+    }
+    _WEB_RTC_TRANSPORT_REQUESTOR_CLUSTER_INFO = {
+        "clusterName": "WebRTCTransportRequestor",
+        "clusterId": 0x00000554,
+        "commands": {
+            0x00000001: {
+                "commandId": 0x00000001,
+                "commandName": "WebRTCOffer",
+                "args": {
+                    "webRTCSessionID": "int",
+                    "sdp": "str",
+                    "ICEServers": "ICEServerStruct",
+                    "ICETransportPolicy": "str",
+                },
+            },
+            0x00000002: {
+                "commandId": 0x00000002,
+                "commandName": "WebRTCAnswer",
+                "args": {
+                    "webRTCSessionID": "int",
+                    "sdp": "str",
+                },
+            },
+            0x00000003: {
+                "commandId": 0x00000003,
+                "commandName": "WebRTCICECandidate",
+                "args": {
+                    "webRTCSessionID": "int",
+                    "ICECandidate": "str",
+                },
+            },
+            0x00000004: {
+                "commandId": 0x00000004,
+                "commandName": "WebRTCEnd",
+                "args": {
+                    "webRTCSessionID": "int",
+                    "reason": "int",
+                },
+            },
+        },
+        "attributes": {
+            0x00000000: {
+                "attributeName": "CurrentSessions",
+                "attributeId": 0x00000000,
+                "type": "",
+                "reportable": True,
+            },
+            0x0000FFF8: {
+                "attributeName": "GeneratedCommandList",
+                "attributeId": 0x0000FFF8,
+                "type": "int",
+                "reportable": True,
+            },
+            0x0000FFF9: {
+                "attributeName": "AcceptedCommandList",
+                "attributeId": 0x0000FFF9,
+                "type": "int",
+                "reportable": True,
+            },
+            0x0000FFFA: {
+                "attributeName": "EventList",
+                "attributeId": 0x0000FFFA,
+                "type": "int",
+                "reportable": True,
+            },
+            0x0000FFFB: {
+                "attributeName": "AttributeList",
+                "attributeId": 0x0000FFFB,
+                "type": "int",
+                "reportable": True,
+            },
+            0x0000FFFC: {
+                "attributeName": "FeatureMap",
+                "attributeId": 0x0000FFFC,
+                "type": "int",
+                "reportable": True,
+            },
+            0x0000FFFD: {
+                "attributeName": "ClusterRevision",
+                "attributeId": 0x0000FFFD,
+                "type": "int",
+                "reportable": True,
+            },
+        },
+    }
+    _PUSH_AV_STREAM_TRANSPORT_CLUSTER_INFO = {
+        "clusterName": "PushAvStreamTransport",
+        "clusterId": 0x00000555,
+        "commands": {
+            0x00000000: {
+                "commandId": 0x00000000,
+                "commandName": "AllocatePushTransport",
+                "args": {
+                    "streamTransportOptions": "PushAVStreamTransportOptionsStruct",
+                },
+            },
+            0x00000002: {
+                "commandId": 0x00000002,
+                "commandName": "DeallocatePushTransport",
+                "args": {
+                    "connectionID": "int",
+                },
+            },
+            0x00000003: {
+                "commandId": 0x00000003,
+                "commandName": "ModifyPushTransport",
+                "args": {
+                    "connectionID": "int",
+                    "streamTransportOptions": "PushAVStreamTransportOptionsStruct",
+                },
+            },
+            0x00000004: {
+                "commandId": 0x00000004,
+                "commandName": "SetTransportStatus",
+                "args": {
+                    "connectionID": "int",
+                    "streamTransportStatus": "int",
+                },
+            },
+            0x00000005: {
+                "commandId": 0x00000005,
+                "commandName": "ManuallyTriggerTransport",
+                "args": {
+                    "connectionID": "int",
+                    "activationReason": "int",
+                    "timeControl": "PushAVStreamTransportMotionTriggerTimeControlStruct",
+                },
+            },
+            0x00000006: {
+                "commandId": 0x00000006,
+                "commandName": "FindStreamConfiguration",
+                "args": {
+                    "connectionID": "int",
+                },
+            },
+        },
+        "attributes": {
+            0x00000000: {
+                "attributeName": "SupportedContainerFormats",
+                "attributeId": 0x00000000,
+                "type": "int",
+                "reportable": True,
+            },
+            0x00000001: {
+                "attributeName": "SupportedIngestMethods",
+                "attributeId": 0x00000001,
+                "type": "int",
+                "reportable": True,
+            },
+            0x00000002: {
+                "attributeName": "CurrentConnections",
+                "attributeId": 0x00000002,
+                "type": "int",
+                "reportable": True,
+            },
+            0x0000FFF8: {
+                "attributeName": "GeneratedCommandList",
+                "attributeId": 0x0000FFF8,
+                "type": "int",
+                "reportable": True,
+            },
+            0x0000FFF9: {
+                "attributeName": "AcceptedCommandList",
+                "attributeId": 0x0000FFF9,
+                "type": "int",
+                "reportable": True,
+            },
+            0x0000FFFA: {
+                "attributeName": "EventList",
+                "attributeId": 0x0000FFFA,
+                "type": "int",
+                "reportable": True,
+            },
+            0x0000FFFB: {
+                "attributeName": "AttributeList",
+                "attributeId": 0x0000FFFB,
+                "type": "int",
+                "reportable": True,
+            },
+            0x0000FFFC: {
+                "attributeName": "FeatureMap",
+                "attributeId": 0x0000FFFC,
+                "type": "int",
+                "reportable": True,
+            },
+            0x0000FFFD: {
+                "attributeName": "ClusterRevision",
+                "attributeId": 0x0000FFFD,
+                "type": "int",
+                "reportable": True,
+            },
+        },
+    }
+    _CHIME_CLUSTER_INFO = {
+        "clusterName": "Chime",
+        "clusterId": 0x00000556,
+        "commands": {
+            0x00000000: {
+                "commandId": 0x00000000,
+                "commandName": "PlayChimeSound",
+                "args": {
+                },
+            },
+        },
+        "attributes": {
+            0x00000000: {
+                "attributeName": "InstalledChimeSounds",
+                "attributeId": 0x00000000,
+                "type": "",
+                "reportable": True,
+            },
+            0x00000001: {
+                "attributeName": "ActiveChimeSoundId",
+                "attributeId": 0x00000001,
+                "type": "int",
+                "reportable": True,
+                "writable": True,
+            },
+            0x00000002: {
+                "attributeName": "Enabled",
+                "attributeId": 0x00000002,
+                "type": "bool",
+                "reportable": True,
+                "writable": True,
+            },
+            0x0000FFF8: {
+                "attributeName": "GeneratedCommandList",
+                "attributeId": 0x0000FFF8,
+                "type": "int",
+                "reportable": True,
+            },
+            0x0000FFF9: {
+                "attributeName": "AcceptedCommandList",
+                "attributeId": 0x0000FFF9,
+                "type": "int",
+                "reportable": True,
+            },
+            0x0000FFFA: {
+                "attributeName": "EventList",
+                "attributeId": 0x0000FFFA,
+                "type": "int",
+                "reportable": True,
+            },
+            0x0000FFFB: {
+                "attributeName": "AttributeList",
+                "attributeId": 0x0000FFFB,
+                "type": "int",
+                "reportable": True,
+            },
+            0x0000FFFC: {
+                "attributeName": "FeatureMap",
+                "attributeId": 0x0000FFFC,
+                "type": "int",
+                "reportable": True,
+            },
+            0x0000FFFD: {
+                "attributeName": "ClusterRevision",
+                "attributeId": 0x0000FFFD,
+                "type": "int",
+                "reportable": True,
+            },
+        },
+    }
     _ECOSYSTEM_INFORMATION_CLUSTER_INFO = {
         "clusterName": "EcosystemInformation",
         "clusterId": 0x00000750,
@@ -15399,6 +16362,12 @@ class ChipClusters:
         0x0000050E: _ACCOUNT_LOGIN_CLUSTER_INFO,
         0x0000050F: _CONTENT_CONTROL_CLUSTER_INFO,
         0x00000510: _CONTENT_APP_OBSERVER_CLUSTER_INFO,
+        0x00000551: _CAMERA_AV_STREAM_MANAGEMENT_CLUSTER_INFO,
+        0x00000552: _CAMERA_AV_SETTINGS_USER_LEVEL_MANAGEMENT_CLUSTER_INFO,
+        0x00000553: _WEB_RTC_TRANSPORT_PROVIDER_CLUSTER_INFO,
+        0x00000554: _WEB_RTC_TRANSPORT_REQUESTOR_CLUSTER_INFO,
+        0x00000555: _PUSH_AV_STREAM_TRANSPORT_CLUSTER_INFO,
+        0x00000556: _CHIME_CLUSTER_INFO,
         0x00000750: _ECOSYSTEM_INFORMATION_CLUSTER_INFO,
         0x00000751: _COMMISSIONER_CONTROL_CLUSTER_INFO,
         0x00000B04: _ELECTRICAL_MEASUREMENT_CLUSTER_INFO,
@@ -15528,6 +16497,12 @@ class ChipClusters:
         "AccountLogin": _ACCOUNT_LOGIN_CLUSTER_INFO,
         "ContentControl": _CONTENT_CONTROL_CLUSTER_INFO,
         "ContentAppObserver": _CONTENT_APP_OBSERVER_CLUSTER_INFO,
+        "CameraAvStreamManagement": _CAMERA_AV_STREAM_MANAGEMENT_CLUSTER_INFO,
+        "CameraAvSettingsUserLevelManagement": _CAMERA_AV_SETTINGS_USER_LEVEL_MANAGEMENT_CLUSTER_INFO,
+        "WebRTCTransportProvider": _WEB_RTC_TRANSPORT_PROVIDER_CLUSTER_INFO,
+        "WebRTCTransportRequestor": _WEB_RTC_TRANSPORT_REQUESTOR_CLUSTER_INFO,
+        "PushAvStreamTransport": _PUSH_AV_STREAM_TRANSPORT_CLUSTER_INFO,
+        "Chime": _CHIME_CLUSTER_INFO,
         "EcosystemInformation": _ECOSYSTEM_INFORMATION_CLUSTER_INFO,
         "CommissionerControl": _COMMISSIONER_CONTROL_CLUSTER_INFO,
         "ElectricalMeasurement": _ELECTRICAL_MEASUREMENT_CLUSTER_INFO,
diff --git a/src/controller/python/chip/clusters/Objects.py b/src/controller/python/chip/clusters/Objects.py
index b408fb5fd57e71..fd1783ac751095 100644
--- a/src/controller/python/chip/clusters/Objects.py
+++ b/src/controller/python/chip/clusters/Objects.py
@@ -159,6 +159,12 @@
     "AccountLogin",
     "ContentControl",
     "ContentAppObserver",
+    "CameraAvStreamManagement",
+    "CameraAvSettingsUserLevelManagement",
+    "WebRTCTransportProvider",
+    "WebRTCTransportRequestor",
+    "PushAvStreamTransport",
+    "Chime",
     "EcosystemInformation",
     "CommissionerControl",
     "ElectricalMeasurement",
@@ -409,6 +415,17 @@ class TestGlobalEnum(MatterIntEnum):
             # enum value. This specific value should never be transmitted.
             kUnknownEnumValue = 3,
 
+        class ThreeLevelAutoEnum(MatterIntEnum):
+            kLow = 0x00
+            kMedium = 0x01
+            kHigh = 0x02
+            kAutomatic = 0x03
+            # All received enum values that are not listed above will be mapped
+            # to kUnknownEnumValue. This is a helper enum value that should only
+            # be used by code to process how it handles receiving an unknown
+            # enum value. This specific value should never be transmitted.
+            kUnknownEnumValue = 4,
+
     class Bitmaps:
         class TestGlobalBitmap(IntFlag):
             kFirstBit = 0x1
@@ -47180,6 +47197,3518 @@ def attribute_type(cls) -> ClusterObjectFieldDescriptor:
             value: 'uint' = 0
 
 
+@dataclass
+class CameraAvStreamManagement(Cluster):
+    id: typing.ClassVar[int] = 0x00000551
+
+    @ChipUtility.classproperty
+    def descriptor(cls) -> ClusterObjectDescriptor:
+        return ClusterObjectDescriptor(
+            Fields=[
+                ClusterObjectFieldDescriptor(Label="maxConcurrentVideoEncoders", Tag=0x00000000, Type=typing.Optional[uint]),
+                ClusterObjectFieldDescriptor(Label="maxEncodedPixelRate", Tag=0x00000001, Type=typing.Optional[uint]),
+                ClusterObjectFieldDescriptor(Label="videoSensorParams", Tag=0x00000002, Type=typing.Optional[CameraAvStreamManagement.Structs.VideoSensorParamsStruct]),
+                ClusterObjectFieldDescriptor(Label="nightVisionCapable", Tag=0x00000003, Type=typing.Optional[bool]),
+                ClusterObjectFieldDescriptor(Label="minViewPortWidth", Tag=0x00000004, Type=typing.Optional[CameraAvStreamManagement.Structs.DimensionStruct]),
+                ClusterObjectFieldDescriptor(Label="minViewPortHeight", Tag=0x00000005, Type=typing.Optional[CameraAvStreamManagement.Structs.DimensionStruct]),
+                ClusterObjectFieldDescriptor(Label="rateDistortionTradeOffPoints", Tag=0x00000006, Type=typing.Optional[typing.List[CameraAvStreamManagement.Structs.RateDistortionTradeOffPointsStruct]]),
+                ClusterObjectFieldDescriptor(Label="maxPreRollBufferSize", Tag=0x00000007, Type=typing.Optional[uint]),
+                ClusterObjectFieldDescriptor(Label="microphoneCapabilities", Tag=0x00000008, Type=typing.Optional[CameraAvStreamManagement.Structs.AudioCapabilitiesStruct]),
+                ClusterObjectFieldDescriptor(Label="speakerCapabilities", Tag=0x00000009, Type=typing.Optional[CameraAvStreamManagement.Structs.AudioCapabilitiesStruct]),
+                ClusterObjectFieldDescriptor(Label="twoWayTalkSupport", Tag=0x0000000A, Type=typing.Optional[CameraAvStreamManagement.Enums.TwowayTalkSupportTypeEnum]),
+                ClusterObjectFieldDescriptor(Label="supportedSnapshotParams", Tag=0x0000000B, Type=typing.Optional[typing.List[CameraAvStreamManagement.Structs.SnapshotParamsStruct]]),
+                ClusterObjectFieldDescriptor(Label="HDRCapable", Tag=0x0000000C, Type=typing.Optional[bool]),
+                ClusterObjectFieldDescriptor(Label="maxNetworkBandwidth", Tag=0x0000000D, Type=uint),
+                ClusterObjectFieldDescriptor(Label="currentFrameRate", Tag=0x0000000E, Type=typing.Optional[uint]),
+                ClusterObjectFieldDescriptor(Label="HDRMode", Tag=0x0000000F, Type=typing.Optional[bool]),
+                ClusterObjectFieldDescriptor(Label="currentVideoCodecs", Tag=0x00000010, Type=typing.Optional[typing.List[CameraAvStreamManagement.Enums.VideoCodecEnum]]),
+                ClusterObjectFieldDescriptor(Label="currentSnapshotConfig", Tag=0x00000011, Type=typing.Optional[CameraAvStreamManagement.Structs.SnapshotParamsStruct]),
+                ClusterObjectFieldDescriptor(Label="fabricsUsingCamera", Tag=0x00000012, Type=typing.List[uint]),
+                ClusterObjectFieldDescriptor(Label="allocatedVideoStreams", Tag=0x00000013, Type=typing.Optional[typing.List[CameraAvStreamManagement.Structs.VideoStreamStruct]]),
+                ClusterObjectFieldDescriptor(Label="allocatedAudioStreams", Tag=0x00000014, Type=typing.Optional[typing.List[CameraAvStreamManagement.Structs.AudioStreamStruct]]),
+                ClusterObjectFieldDescriptor(Label="allocatedSnapshotStreams", Tag=0x00000015, Type=typing.Optional[typing.List[CameraAvStreamManagement.Structs.SnapshotStreamStruct]]),
+                ClusterObjectFieldDescriptor(Label="rankedVideoStreamPrioritiesList", Tag=0x00000016, Type=typing.Optional[typing.List[CameraAvStreamManagement.Enums.StreamTypeEnum]]),
+                ClusterObjectFieldDescriptor(Label="softRecordingPrivacyModeSetting", Tag=0x00000017, Type=typing.Optional[bool]),
+                ClusterObjectFieldDescriptor(Label="softLivestreamPrivacyModeSetting", Tag=0x00000018, Type=typing.Optional[bool]),
+                ClusterObjectFieldDescriptor(Label="hardPrivacyMode", Tag=0x00000019, Type=typing.Optional[bool]),
+                ClusterObjectFieldDescriptor(Label="nightVision", Tag=0x0000001A, Type=typing.Optional[CameraAvStreamManagement.Enums.TriStateAuto]),
+                ClusterObjectFieldDescriptor(Label="nightVisionIllum", Tag=0x0000001B, Type=typing.Optional[CameraAvStreamManagement.Enums.TriStateAuto]),
+                ClusterObjectFieldDescriptor(Label="awb", Tag=0x0000001C, Type=typing.Optional[bool]),
+                ClusterObjectFieldDescriptor(Label="shutterSpeed", Tag=0x0000001D, Type=typing.Optional[bool]),
+                ClusterObjectFieldDescriptor(Label="iso", Tag=0x0000001E, Type=typing.Optional[bool]),
+                ClusterObjectFieldDescriptor(Label="viewport", Tag=0x0000001F, Type=typing.Optional[CameraAvStreamManagement.Structs.ViewportStruct]),
+                ClusterObjectFieldDescriptor(Label="spkrOnOff", Tag=0x00000020, Type=typing.Optional[bool]),
+                ClusterObjectFieldDescriptor(Label="spkrVolumeLevel", Tag=0x00000021, Type=typing.Optional[uint]),
+                ClusterObjectFieldDescriptor(Label="spkrMaxLevel", Tag=0x00000022, Type=typing.Optional[uint]),
+                ClusterObjectFieldDescriptor(Label="spkrMinLevel", Tag=0x00000023, Type=typing.Optional[uint]),
+                ClusterObjectFieldDescriptor(Label="micOnOff", Tag=0x00000024, Type=typing.Optional[bool]),
+                ClusterObjectFieldDescriptor(Label="micCurrentLevel", Tag=0x00000025, Type=typing.Optional[uint]),
+                ClusterObjectFieldDescriptor(Label="micMaxLevel", Tag=0x00000026, Type=typing.Optional[uint]),
+                ClusterObjectFieldDescriptor(Label="micMinLevel", Tag=0x00000027, Type=typing.Optional[uint]),
+                ClusterObjectFieldDescriptor(Label="micAGC", Tag=0x00000028, Type=typing.Optional[bool]),
+                ClusterObjectFieldDescriptor(Label="imageRotation", Tag=0x00000029, Type=typing.Optional[uint]),
+                ClusterObjectFieldDescriptor(Label="imageFlipHorizontal", Tag=0x0000002A, Type=typing.Optional[bool]),
+                ClusterObjectFieldDescriptor(Label="imageFlipVertical", Tag=0x0000002B, Type=typing.Optional[bool]),
+                ClusterObjectFieldDescriptor(Label="localVideoRecordingEnabled", Tag=0x0000002C, Type=typing.Optional[bool]),
+                ClusterObjectFieldDescriptor(Label="localSnapshotRecordingEnabled", Tag=0x0000002D, Type=typing.Optional[bool]),
+                ClusterObjectFieldDescriptor(Label="statusLight", Tag=0x0000002E, Type=typing.Optional[bool]),
+                ClusterObjectFieldDescriptor(Label="statusLightBrightness", Tag=0x0000002F, Type=typing.Optional[Globals.Enums.ThreeLevelAutoEnum]),
+                ClusterObjectFieldDescriptor(Label="depthSensorStatus", Tag=0x00000030, Type=typing.Optional[CameraAvStreamManagement.Enums.TriStateAuto]),
+                ClusterObjectFieldDescriptor(Label="watermarkEnabled", Tag=0x00000031, Type=typing.Optional[typing.List[CameraAvStreamManagement.Structs.PerStreamStruct]]),
+                ClusterObjectFieldDescriptor(Label="OSDEnabled", Tag=0x00000032, Type=typing.Optional[typing.List[CameraAvStreamManagement.Structs.PerStreamStruct]]),
+                ClusterObjectFieldDescriptor(Label="generatedCommandList", Tag=0x0000FFF8, Type=typing.List[uint]),
+                ClusterObjectFieldDescriptor(Label="acceptedCommandList", Tag=0x0000FFF9, Type=typing.List[uint]),
+                ClusterObjectFieldDescriptor(Label="eventList", Tag=0x0000FFFA, Type=typing.List[uint]),
+                ClusterObjectFieldDescriptor(Label="attributeList", Tag=0x0000FFFB, Type=typing.List[uint]),
+                ClusterObjectFieldDescriptor(Label="featureMap", Tag=0x0000FFFC, Type=uint),
+                ClusterObjectFieldDescriptor(Label="clusterRevision", Tag=0x0000FFFD, Type=uint),
+            ])
+
+    maxConcurrentVideoEncoders: 'typing.Optional[uint]' = None
+    maxEncodedPixelRate: 'typing.Optional[uint]' = None
+    videoSensorParams: 'typing.Optional[CameraAvStreamManagement.Structs.VideoSensorParamsStruct]' = None
+    nightVisionCapable: 'typing.Optional[bool]' = None
+    minViewPortWidth: 'typing.Optional[CameraAvStreamManagement.Structs.DimensionStruct]' = None
+    minViewPortHeight: 'typing.Optional[CameraAvStreamManagement.Structs.DimensionStruct]' = None
+    rateDistortionTradeOffPoints: 'typing.Optional[typing.List[CameraAvStreamManagement.Structs.RateDistortionTradeOffPointsStruct]]' = None
+    maxPreRollBufferSize: 'typing.Optional[uint]' = None
+    microphoneCapabilities: 'typing.Optional[CameraAvStreamManagement.Structs.AudioCapabilitiesStruct]' = None
+    speakerCapabilities: 'typing.Optional[CameraAvStreamManagement.Structs.AudioCapabilitiesStruct]' = None
+    twoWayTalkSupport: 'typing.Optional[CameraAvStreamManagement.Enums.TwowayTalkSupportTypeEnum]' = None
+    supportedSnapshotParams: 'typing.Optional[typing.List[CameraAvStreamManagement.Structs.SnapshotParamsStruct]]' = None
+    HDRCapable: 'typing.Optional[bool]' = None
+    maxNetworkBandwidth: 'uint' = None
+    currentFrameRate: 'typing.Optional[uint]' = None
+    HDRMode: 'typing.Optional[bool]' = None
+    currentVideoCodecs: 'typing.Optional[typing.List[CameraAvStreamManagement.Enums.VideoCodecEnum]]' = None
+    currentSnapshotConfig: 'typing.Optional[CameraAvStreamManagement.Structs.SnapshotParamsStruct]' = None
+    fabricsUsingCamera: 'typing.List[uint]' = None
+    allocatedVideoStreams: 'typing.Optional[typing.List[CameraAvStreamManagement.Structs.VideoStreamStruct]]' = None
+    allocatedAudioStreams: 'typing.Optional[typing.List[CameraAvStreamManagement.Structs.AudioStreamStruct]]' = None
+    allocatedSnapshotStreams: 'typing.Optional[typing.List[CameraAvStreamManagement.Structs.SnapshotStreamStruct]]' = None
+    rankedVideoStreamPrioritiesList: 'typing.Optional[typing.List[CameraAvStreamManagement.Enums.StreamTypeEnum]]' = None
+    softRecordingPrivacyModeSetting: 'typing.Optional[bool]' = None
+    softLivestreamPrivacyModeSetting: 'typing.Optional[bool]' = None
+    hardPrivacyMode: 'typing.Optional[bool]' = None
+    nightVision: 'typing.Optional[CameraAvStreamManagement.Enums.TriStateAuto]' = None
+    nightVisionIllum: 'typing.Optional[CameraAvStreamManagement.Enums.TriStateAuto]' = None
+    awb: 'typing.Optional[bool]' = None
+    shutterSpeed: 'typing.Optional[bool]' = None
+    iso: 'typing.Optional[bool]' = None
+    viewport: 'typing.Optional[CameraAvStreamManagement.Structs.ViewportStruct]' = None
+    spkrOnOff: 'typing.Optional[bool]' = None
+    spkrVolumeLevel: 'typing.Optional[uint]' = None
+    spkrMaxLevel: 'typing.Optional[uint]' = None
+    spkrMinLevel: 'typing.Optional[uint]' = None
+    micOnOff: 'typing.Optional[bool]' = None
+    micCurrentLevel: 'typing.Optional[uint]' = None
+    micMaxLevel: 'typing.Optional[uint]' = None
+    micMinLevel: 'typing.Optional[uint]' = None
+    micAGC: 'typing.Optional[bool]' = None
+    imageRotation: 'typing.Optional[uint]' = None
+    imageFlipHorizontal: 'typing.Optional[bool]' = None
+    imageFlipVertical: 'typing.Optional[bool]' = None
+    localVideoRecordingEnabled: 'typing.Optional[bool]' = None
+    localSnapshotRecordingEnabled: 'typing.Optional[bool]' = None
+    statusLight: 'typing.Optional[bool]' = None
+    statusLightBrightness: 'typing.Optional[Globals.Enums.ThreeLevelAutoEnum]' = None
+    depthSensorStatus: 'typing.Optional[CameraAvStreamManagement.Enums.TriStateAuto]' = None
+    watermarkEnabled: 'typing.Optional[typing.List[CameraAvStreamManagement.Structs.PerStreamStruct]]' = None
+    OSDEnabled: 'typing.Optional[typing.List[CameraAvStreamManagement.Structs.PerStreamStruct]]' = None
+    generatedCommandList: 'typing.List[uint]' = None
+    acceptedCommandList: 'typing.List[uint]' = None
+    eventList: 'typing.List[uint]' = None
+    attributeList: 'typing.List[uint]' = None
+    featureMap: 'uint' = None
+    clusterRevision: 'uint' = None
+
+    class Enums:
+        class AudioCodecEnum(MatterIntEnum):
+            kOpus = 0x00
+            kAacLc = 0x01
+            # All received enum values that are not listed above will be mapped
+            # to kUnknownEnumValue. This is a helper enum value that should only
+            # be used by code to process how it handles receiving an unknown
+            # enum value. This specific value should never be transmitted.
+            kUnknownEnumValue = 2,
+
+        class ImageCodecEnum(MatterIntEnum):
+            kJpeg = 0x00
+            # All received enum values that are not listed above will be mapped
+            # to kUnknownEnumValue. This is a helper enum value that should only
+            # be used by code to process how it handles receiving an unknown
+            # enum value. This specific value should never be transmitted.
+            kUnknownEnumValue = 1,
+
+        class StreamTypeEnum(MatterIntEnum):
+            kInternal = 0x00
+            kRecording = 0x01
+            kAnalysis = 0x02
+            kLiveView = 0x03
+            # All received enum values that are not listed above will be mapped
+            # to kUnknownEnumValue. This is a helper enum value that should only
+            # be used by code to process how it handles receiving an unknown
+            # enum value. This specific value should never be transmitted.
+            kUnknownEnumValue = 4,
+
+        class TriStateAuto(MatterIntEnum):
+            kOff = 0x00
+            kOn = 0x01
+            kAuto = 0x02
+            # All received enum values that are not listed above will be mapped
+            # to kUnknownEnumValue. This is a helper enum value that should only
+            # be used by code to process how it handles receiving an unknown
+            # enum value. This specific value should never be transmitted.
+            kUnknownEnumValue = 3,
+
+        class TwowayTalkSupportTypeEnum(MatterIntEnum):
+            kNotSupported = 0x00
+            kHalfDuplex = 0x01
+            kFullDuplex = 0x02
+            # All received enum values that are not listed above will be mapped
+            # to kUnknownEnumValue. This is a helper enum value that should only
+            # be used by code to process how it handles receiving an unknown
+            # enum value. This specific value should never be transmitted.
+            kUnknownEnumValue = 3,
+
+        class VideoCodecEnum(MatterIntEnum):
+            kH264 = 0x00
+            kHevc = 0x01
+            kVvc = 0x02
+            kAv1 = 0x03
+            # All received enum values that are not listed above will be mapped
+            # to kUnknownEnumValue. This is a helper enum value that should only
+            # be used by code to process how it handles receiving an unknown
+            # enum value. This specific value should never be transmitted.
+            kUnknownEnumValue = 4,
+
+    class Bitmaps:
+        class Feature(IntFlag):
+            kPrivacy = 0x1
+            kSensorControl = 0x2
+            kAudio = 0x4
+            kImageControl = 0x8
+            kVideo = 0x10
+            kSnapshot = 0x20
+            kLocalStorage = 0x40
+
+    class Structs:
+        @dataclass
+        class AudioCapabilitiesStruct(ClusterObject):
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="maxNumberOfChannels", Tag=0, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="supportedCodecs", Tag=1, Type=typing.List[CameraAvStreamManagement.Enums.AudioCodecEnum]),
+                        ClusterObjectFieldDescriptor(Label="supportedSampleRates", Tag=2, Type=typing.List[uint]),
+                        ClusterObjectFieldDescriptor(Label="supportedBitDepths", Tag=3, Type=typing.List[uint]),
+                    ])
+
+            maxNumberOfChannels: 'uint' = 0
+            supportedCodecs: 'typing.List[CameraAvStreamManagement.Enums.AudioCodecEnum]' = field(default_factory=lambda: [])
+            supportedSampleRates: 'typing.List[uint]' = field(default_factory=lambda: [])
+            supportedBitDepths: 'typing.List[uint]' = field(default_factory=lambda: [])
+
+        @dataclass
+        class AudioStreamStruct(ClusterObject):
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="audioStreamID", Tag=0, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="streamType", Tag=1, Type=CameraAvStreamManagement.Enums.StreamTypeEnum),
+                        ClusterObjectFieldDescriptor(Label="audioCodec", Tag=2, Type=CameraAvStreamManagement.Enums.AudioCodecEnum),
+                        ClusterObjectFieldDescriptor(Label="channelCount", Tag=3, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="sampleRate", Tag=4, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="bitRate", Tag=5, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="bitDepth", Tag=6, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="referenceCount", Tag=7, Type=uint),
+                    ])
+
+            audioStreamID: 'uint' = 0
+            streamType: 'CameraAvStreamManagement.Enums.StreamTypeEnum' = 0
+            audioCodec: 'CameraAvStreamManagement.Enums.AudioCodecEnum' = 0
+            channelCount: 'uint' = 0
+            sampleRate: 'uint' = 0
+            bitRate: 'uint' = 0
+            bitDepth: 'uint' = 0
+            referenceCount: 'uint' = 0
+
+        @dataclass
+        class PerStreamStruct(ClusterObject):
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="streamID", Tag=0, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="onOff", Tag=1, Type=bool),
+                    ])
+
+            streamID: 'uint' = 0
+            onOff: 'bool' = False
+
+        @dataclass
+        class RateDistortionTradeOffPointsStruct(ClusterObject):
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="codec", Tag=0, Type=CameraAvStreamManagement.Enums.VideoCodecEnum),
+                        ClusterObjectFieldDescriptor(Label="resolution", Tag=1, Type=CameraAvStreamManagement.Structs.DimensionStruct),
+                        ClusterObjectFieldDescriptor(Label="minBitRate", Tag=2, Type=uint),
+                    ])
+
+            codec: 'CameraAvStreamManagement.Enums.VideoCodecEnum' = 0
+            resolution: 'CameraAvStreamManagement.Structs.DimensionStruct' = field(default_factory=lambda: CameraAvStreamManagement.Structs.DimensionStruct())
+            minBitRate: 'uint' = 0
+
+        @dataclass
+        class SnapshotParamsStruct(ClusterObject):
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="resolution", Tag=0, Type=CameraAvStreamManagement.Structs.DimensionStruct),
+                        ClusterObjectFieldDescriptor(Label="maxFrameRate", Tag=1, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="imageCodec", Tag=2, Type=CameraAvStreamManagement.Enums.ImageCodecEnum),
+                    ])
+
+            resolution: 'CameraAvStreamManagement.Structs.DimensionStruct' = field(default_factory=lambda: CameraAvStreamManagement.Structs.DimensionStruct())
+            maxFrameRate: 'uint' = 0
+            imageCodec: 'CameraAvStreamManagement.Enums.ImageCodecEnum' = 0
+
+        @dataclass
+        class SnapshotStreamStruct(ClusterObject):
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="snapshotStreamID", Tag=0, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="imageCodec", Tag=1, Type=CameraAvStreamManagement.Enums.ImageCodecEnum),
+                        ClusterObjectFieldDescriptor(Label="frameRate", Tag=2, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="bitRate", Tag=3, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="minResolution", Tag=4, Type=CameraAvStreamManagement.Structs.DimensionStruct),
+                        ClusterObjectFieldDescriptor(Label="maxResolution", Tag=5, Type=CameraAvStreamManagement.Structs.DimensionStruct),
+                        ClusterObjectFieldDescriptor(Label="quality", Tag=6, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="referenceCount", Tag=7, Type=uint),
+                    ])
+
+            snapshotStreamID: 'uint' = 0
+            imageCodec: 'CameraAvStreamManagement.Enums.ImageCodecEnum' = 0
+            frameRate: 'uint' = 0
+            bitRate: 'uint' = 0
+            minResolution: 'CameraAvStreamManagement.Structs.DimensionStruct' = field(default_factory=lambda: CameraAvStreamManagement.Structs.DimensionStruct())
+            maxResolution: 'CameraAvStreamManagement.Structs.DimensionStruct' = field(default_factory=lambda: CameraAvStreamManagement.Structs.DimensionStruct())
+            quality: 'uint' = 0
+            referenceCount: 'uint' = 0
+
+        @dataclass
+        class VideoSensorParamsStruct(ClusterObject):
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="sensorWidth", Tag=0, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="sensorHeight", Tag=1, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="HDRCapable", Tag=2, Type=bool),
+                        ClusterObjectFieldDescriptor(Label="maxFPS", Tag=3, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="maxHDRFPS", Tag=4, Type=uint),
+                    ])
+
+            sensorWidth: 'uint' = 0
+            sensorHeight: 'uint' = 0
+            HDRCapable: 'bool' = False
+            maxFPS: 'uint' = 0
+            maxHDRFPS: 'uint' = 0
+
+        @dataclass
+        class VideoStreamStruct(ClusterObject):
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="videoStreamID", Tag=0, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="streamType", Tag=1, Type=CameraAvStreamManagement.Enums.StreamTypeEnum),
+                        ClusterObjectFieldDescriptor(Label="videoCodec", Tag=2, Type=CameraAvStreamManagement.Enums.VideoCodecEnum),
+                        ClusterObjectFieldDescriptor(Label="minFrameRate", Tag=3, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="maxFrameRate", Tag=4, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="minResolution", Tag=5, Type=CameraAvStreamManagement.Structs.DimensionStruct),
+                        ClusterObjectFieldDescriptor(Label="maxResolution", Tag=6, Type=CameraAvStreamManagement.Structs.DimensionStruct),
+                        ClusterObjectFieldDescriptor(Label="minBitRate", Tag=7, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="maxBitRate", Tag=8, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="minFragmentLen", Tag=9, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="maxFragmentLen", Tag=10, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="referenceCount", Tag=11, Type=uint),
+                    ])
+
+            videoStreamID: 'uint' = 0
+            streamType: 'CameraAvStreamManagement.Enums.StreamTypeEnum' = 0
+            videoCodec: 'CameraAvStreamManagement.Enums.VideoCodecEnum' = 0
+            minFrameRate: 'uint' = 0
+            maxFrameRate: 'uint' = 0
+            minResolution: 'CameraAvStreamManagement.Structs.DimensionStruct' = field(default_factory=lambda: CameraAvStreamManagement.Structs.DimensionStruct())
+            maxResolution: 'CameraAvStreamManagement.Structs.DimensionStruct' = field(default_factory=lambda: CameraAvStreamManagement.Structs.DimensionStruct())
+            minBitRate: 'uint' = 0
+            maxBitRate: 'uint' = 0
+            minFragmentLen: 'uint' = 0
+            maxFragmentLen: 'uint' = 0
+            referenceCount: 'uint' = 0
+
+        @dataclass
+        class ViewportStruct(ClusterObject):
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="x1", Tag=0, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="y1", Tag=1, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="x2", Tag=2, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="y2", Tag=3, Type=uint),
+                    ])
+
+            x1: 'uint' = 0
+            y1: 'uint' = 0
+            x2: 'uint' = 0
+            y2: 'uint' = 0
+
+    class Commands:
+        @dataclass
+        class AudioStreamAllocate(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000551
+            command_id: typing.ClassVar[int] = 0x00000000
+            is_client: typing.ClassVar[bool] = True
+            response_type: typing.ClassVar[str] = 'AudioStreamAllocateResponse'
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="streamType", Tag=0, Type=CameraAvStreamManagement.Enums.StreamTypeEnum),
+                        ClusterObjectFieldDescriptor(Label="audioCodec", Tag=1, Type=CameraAvStreamManagement.Enums.AudioCodecEnum),
+                        ClusterObjectFieldDescriptor(Label="channelCount", Tag=2, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="sampleRate", Tag=3, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="bitRate", Tag=4, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="bitDepth", Tag=5, Type=uint),
+                    ])
+
+            streamType: 'CameraAvStreamManagement.Enums.StreamTypeEnum' = 0
+            audioCodec: 'CameraAvStreamManagement.Enums.AudioCodecEnum' = 0
+            channelCount: 'uint' = 0
+            sampleRate: 'uint' = 0
+            bitRate: 'uint' = 0
+            bitDepth: 'uint' = 0
+
+        @dataclass
+        class AudioStreamAllocateResponse(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000551
+            command_id: typing.ClassVar[int] = 0x00000001
+            is_client: typing.ClassVar[bool] = False
+            response_type: typing.ClassVar[str] = None
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="audioStreamID", Tag=0, Type=uint),
+                    ])
+
+            audioStreamID: 'uint' = 0
+
+        @dataclass
+        class AudioStreamDeallocate(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000551
+            command_id: typing.ClassVar[int] = 0x00000002
+            is_client: typing.ClassVar[bool] = True
+            response_type: typing.ClassVar[str] = None
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="audioStreamID", Tag=0, Type=uint),
+                    ])
+
+            audioStreamID: 'uint' = 0
+
+        @dataclass
+        class VideoStreamAllocate(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000551
+            command_id: typing.ClassVar[int] = 0x00000003
+            is_client: typing.ClassVar[bool] = True
+            response_type: typing.ClassVar[str] = 'VideoStreamAllocateResponse'
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="streamType", Tag=0, Type=CameraAvStreamManagement.Enums.StreamTypeEnum),
+                        ClusterObjectFieldDescriptor(Label="videoCodec", Tag=1, Type=CameraAvStreamManagement.Enums.VideoCodecEnum),
+                        ClusterObjectFieldDescriptor(Label="minFrameRate", Tag=2, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="maxFrameRate", Tag=3, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="minResolution", Tag=4, Type=CameraAvStreamManagement.Structs.DimensionStruct),
+                        ClusterObjectFieldDescriptor(Label="maxResolution", Tag=5, Type=CameraAvStreamManagement.Structs.DimensionStruct),
+                        ClusterObjectFieldDescriptor(Label="minBitRate", Tag=6, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="maxBitRate", Tag=7, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="minFragmentLen", Tag=8, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="maxFragmentLen", Tag=9, Type=uint),
+                    ])
+
+            streamType: 'CameraAvStreamManagement.Enums.StreamTypeEnum' = 0
+            videoCodec: 'CameraAvStreamManagement.Enums.VideoCodecEnum' = 0
+            minFrameRate: 'uint' = 0
+            maxFrameRate: 'uint' = 0
+            minResolution: 'CameraAvStreamManagement.Structs.DimensionStruct' = field(default_factory=lambda: CameraAvStreamManagement.Structs.DimensionStruct())
+            maxResolution: 'CameraAvStreamManagement.Structs.DimensionStruct' = field(default_factory=lambda: CameraAvStreamManagement.Structs.DimensionStruct())
+            minBitRate: 'uint' = 0
+            maxBitRate: 'uint' = 0
+            minFragmentLen: 'uint' = 0
+            maxFragmentLen: 'uint' = 0
+
+        @dataclass
+        class VideoStreamAllocateResponse(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000551
+            command_id: typing.ClassVar[int] = 0x00000004
+            is_client: typing.ClassVar[bool] = False
+            response_type: typing.ClassVar[str] = None
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="videoStreamID", Tag=0, Type=uint),
+                    ])
+
+            videoStreamID: 'uint' = 0
+
+        @dataclass
+        class VideoStreamModify(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000551
+            command_id: typing.ClassVar[int] = 0x00000005
+            is_client: typing.ClassVar[bool] = True
+            response_type: typing.ClassVar[str] = None
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="videoStreamID", Tag=0, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="resolution", Tag=1, Type=CameraAvStreamManagement.Structs.DimensionStruct),
+                    ])
+
+            videoStreamID: 'uint' = 0
+            resolution: 'CameraAvStreamManagement.Structs.DimensionStruct' = field(default_factory=lambda: CameraAvStreamManagement.Structs.DimensionStruct())
+
+        @dataclass
+        class VideoStreamDeallocate(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000551
+            command_id: typing.ClassVar[int] = 0x00000006
+            is_client: typing.ClassVar[bool] = True
+            response_type: typing.ClassVar[str] = None
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="videoStreamID", Tag=0, Type=uint),
+                    ])
+
+            videoStreamID: 'uint' = 0
+
+        @dataclass
+        class SnapshotStreamAllocate(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000551
+            command_id: typing.ClassVar[int] = 0x00000007
+            is_client: typing.ClassVar[bool] = True
+            response_type: typing.ClassVar[str] = 'SnapshotStreamAllocateResponse'
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="imageCodec", Tag=0, Type=CameraAvStreamManagement.Enums.ImageCodecEnum),
+                        ClusterObjectFieldDescriptor(Label="frameRate", Tag=1, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="bitRate", Tag=2, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="minResolution", Tag=3, Type=CameraAvStreamManagement.Structs.DimensionStruct),
+                        ClusterObjectFieldDescriptor(Label="maxResolution", Tag=4, Type=CameraAvStreamManagement.Structs.DimensionStruct),
+                        ClusterObjectFieldDescriptor(Label="quality", Tag=5, Type=uint),
+                    ])
+
+            imageCodec: 'CameraAvStreamManagement.Enums.ImageCodecEnum' = 0
+            frameRate: 'uint' = 0
+            bitRate: 'uint' = 0
+            minResolution: 'CameraAvStreamManagement.Structs.DimensionStruct' = field(default_factory=lambda: CameraAvStreamManagement.Structs.DimensionStruct())
+            maxResolution: 'CameraAvStreamManagement.Structs.DimensionStruct' = field(default_factory=lambda: CameraAvStreamManagement.Structs.DimensionStruct())
+            quality: 'uint' = 0
+
+        @dataclass
+        class SnapshotStreamAllocateResponse(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000551
+            command_id: typing.ClassVar[int] = 0x00000008
+            is_client: typing.ClassVar[bool] = False
+            response_type: typing.ClassVar[str] = None
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="snapshotStreamID", Tag=0, Type=uint),
+                    ])
+
+            snapshotStreamID: 'uint' = 0
+
+        @dataclass
+        class SnapshotStreamDeallocate(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000551
+            command_id: typing.ClassVar[int] = 0x00000009
+            is_client: typing.ClassVar[bool] = True
+            response_type: typing.ClassVar[str] = None
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="snapshotStreamID", Tag=0, Type=uint),
+                    ])
+
+            snapshotStreamID: 'uint' = 0
+
+        @dataclass
+        class SetStreamPriority(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000551
+            command_id: typing.ClassVar[int] = 0x0000000A
+            is_client: typing.ClassVar[bool] = True
+            response_type: typing.ClassVar[str] = None
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                    ])
+
+        @dataclass
+        class CaptureSnapshot(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000551
+            command_id: typing.ClassVar[int] = 0x0000000B
+            is_client: typing.ClassVar[bool] = True
+            response_type: typing.ClassVar[str] = None
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="snapshotStreamID", Tag=0, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="requestedResolution", Tag=1, Type=CameraAvStreamManagement.Structs.DimensionStruct),
+                    ])
+
+            snapshotStreamID: 'uint' = 0
+            requestedResolution: 'CameraAvStreamManagement.Structs.DimensionStruct' = field(default_factory=lambda: CameraAvStreamManagement.Structs.DimensionStruct())
+
+        @dataclass
+        class CaptureSnapshotResponse(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000551
+            command_id: typing.ClassVar[int] = 0x0000000C
+            is_client: typing.ClassVar[bool] = False
+            response_type: typing.ClassVar[str] = None
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="data", Tag=0, Type=bytes),
+                        ClusterObjectFieldDescriptor(Label="imageCodec", Tag=1, Type=CameraAvStreamManagement.Enums.ImageCodecEnum),
+                        ClusterObjectFieldDescriptor(Label="resolution", Tag=2, Type=CameraAvStreamManagement.Structs.DimensionStruct),
+                    ])
+
+            data: 'bytes' = b""
+            imageCodec: 'CameraAvStreamManagement.Enums.ImageCodecEnum' = 0
+            resolution: 'CameraAvStreamManagement.Structs.DimensionStruct' = field(default_factory=lambda: CameraAvStreamManagement.Structs.DimensionStruct())
+
+        @dataclass
+        class SetViewport(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000551
+            command_id: typing.ClassVar[int] = 0x0000000D
+            is_client: typing.ClassVar[bool] = True
+            response_type: typing.ClassVar[str] = None
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="viewport", Tag=0, Type=CameraAvStreamManagement.Structs.ViewportStruct),
+                    ])
+
+            viewport: 'CameraAvStreamManagement.Structs.ViewportStruct' = field(default_factory=lambda: CameraAvStreamManagement.Structs.ViewportStruct())
+
+        @dataclass
+        class SetImageRotation(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000551
+            command_id: typing.ClassVar[int] = 0x0000000E
+            is_client: typing.ClassVar[bool] = True
+            response_type: typing.ClassVar[str] = None
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="angle", Tag=0, Type=uint),
+                    ])
+
+            angle: 'uint' = 0
+
+        @dataclass
+        class SetImageFlipHorizontal(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000551
+            command_id: typing.ClassVar[int] = 0x0000000F
+            is_client: typing.ClassVar[bool] = True
+            response_type: typing.ClassVar[str] = None
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="onOff", Tag=0, Type=bool),
+                    ])
+
+            onOff: 'bool' = False
+
+        @dataclass
+        class SetImageFlipVertical(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000551
+            command_id: typing.ClassVar[int] = 0x00000010
+            is_client: typing.ClassVar[bool] = True
+            response_type: typing.ClassVar[str] = None
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="onOff", Tag=0, Type=bool),
+                    ])
+
+            onOff: 'bool' = False
+
+    class Attributes:
+        @dataclass
+        class MaxConcurrentVideoEncoders(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000000
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[uint])
+
+            value: 'typing.Optional[uint]' = None
+
+        @dataclass
+        class MaxEncodedPixelRate(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000001
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[uint])
+
+            value: 'typing.Optional[uint]' = None
+
+        @dataclass
+        class VideoSensorParams(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000002
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[CameraAvStreamManagement.Structs.VideoSensorParamsStruct])
+
+            value: 'typing.Optional[CameraAvStreamManagement.Structs.VideoSensorParamsStruct]' = None
+
+        @dataclass
+        class NightVisionCapable(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000003
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[bool])
+
+            value: 'typing.Optional[bool]' = None
+
+        @dataclass
+        class MinViewPortWidth(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000004
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[CameraAvStreamManagement.Structs.DimensionStruct])
+
+            value: 'typing.Optional[CameraAvStreamManagement.Structs.DimensionStruct]' = None
+
+        @dataclass
+        class MinViewPortHeight(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000005
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[CameraAvStreamManagement.Structs.DimensionStruct])
+
+            value: 'typing.Optional[CameraAvStreamManagement.Structs.DimensionStruct]' = None
+
+        @dataclass
+        class RateDistortionTradeOffPoints(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000006
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[typing.List[CameraAvStreamManagement.Structs.RateDistortionTradeOffPointsStruct]])
+
+            value: 'typing.Optional[typing.List[CameraAvStreamManagement.Structs.RateDistortionTradeOffPointsStruct]]' = None
+
+        @dataclass
+        class MaxPreRollBufferSize(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000007
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[uint])
+
+            value: 'typing.Optional[uint]' = None
+
+        @dataclass
+        class MicrophoneCapabilities(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000008
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[CameraAvStreamManagement.Structs.AudioCapabilitiesStruct])
+
+            value: 'typing.Optional[CameraAvStreamManagement.Structs.AudioCapabilitiesStruct]' = None
+
+        @dataclass
+        class SpeakerCapabilities(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000009
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[CameraAvStreamManagement.Structs.AudioCapabilitiesStruct])
+
+            value: 'typing.Optional[CameraAvStreamManagement.Structs.AudioCapabilitiesStruct]' = None
+
+        @dataclass
+        class TwoWayTalkSupport(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000000A
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[CameraAvStreamManagement.Enums.TwowayTalkSupportTypeEnum])
+
+            value: 'typing.Optional[CameraAvStreamManagement.Enums.TwowayTalkSupportTypeEnum]' = None
+
+        @dataclass
+        class SupportedSnapshotParams(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000000B
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[typing.List[CameraAvStreamManagement.Structs.SnapshotParamsStruct]])
+
+            value: 'typing.Optional[typing.List[CameraAvStreamManagement.Structs.SnapshotParamsStruct]]' = None
+
+        @dataclass
+        class HDRCapable(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000000C
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[bool])
+
+            value: 'typing.Optional[bool]' = None
+
+        @dataclass
+        class MaxNetworkBandwidth(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000000D
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=uint)
+
+            value: 'uint' = 0
+
+        @dataclass
+        class CurrentFrameRate(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000000E
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[uint])
+
+            value: 'typing.Optional[uint]' = None
+
+        @dataclass
+        class HDRMode(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000000F
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[bool])
+
+            value: 'typing.Optional[bool]' = None
+
+        @dataclass
+        class CurrentVideoCodecs(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000010
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[typing.List[CameraAvStreamManagement.Enums.VideoCodecEnum]])
+
+            value: 'typing.Optional[typing.List[CameraAvStreamManagement.Enums.VideoCodecEnum]]' = None
+
+        @dataclass
+        class CurrentSnapshotConfig(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000011
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[CameraAvStreamManagement.Structs.SnapshotParamsStruct])
+
+            value: 'typing.Optional[CameraAvStreamManagement.Structs.SnapshotParamsStruct]' = None
+
+        @dataclass
+        class FabricsUsingCamera(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000012
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.List[uint])
+
+            value: 'typing.List[uint]' = field(default_factory=lambda: [])
+
+        @dataclass
+        class AllocatedVideoStreams(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000013
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[typing.List[CameraAvStreamManagement.Structs.VideoStreamStruct]])
+
+            value: 'typing.Optional[typing.List[CameraAvStreamManagement.Structs.VideoStreamStruct]]' = None
+
+        @dataclass
+        class AllocatedAudioStreams(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000014
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[typing.List[CameraAvStreamManagement.Structs.AudioStreamStruct]])
+
+            value: 'typing.Optional[typing.List[CameraAvStreamManagement.Structs.AudioStreamStruct]]' = None
+
+        @dataclass
+        class AllocatedSnapshotStreams(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000015
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[typing.List[CameraAvStreamManagement.Structs.SnapshotStreamStruct]])
+
+            value: 'typing.Optional[typing.List[CameraAvStreamManagement.Structs.SnapshotStreamStruct]]' = None
+
+        @dataclass
+        class RankedVideoStreamPrioritiesList(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000016
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[typing.List[CameraAvStreamManagement.Enums.StreamTypeEnum]])
+
+            value: 'typing.Optional[typing.List[CameraAvStreamManagement.Enums.StreamTypeEnum]]' = None
+
+        @dataclass
+        class SoftRecordingPrivacyModeSetting(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000017
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[bool])
+
+            value: 'typing.Optional[bool]' = None
+
+        @dataclass
+        class SoftLivestreamPrivacyModeSetting(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000018
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[bool])
+
+            value: 'typing.Optional[bool]' = None
+
+        @dataclass
+        class HardPrivacyMode(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000019
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[bool])
+
+            value: 'typing.Optional[bool]' = None
+
+        @dataclass
+        class NightVision(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000001A
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[CameraAvStreamManagement.Enums.TriStateAuto])
+
+            value: 'typing.Optional[CameraAvStreamManagement.Enums.TriStateAuto]' = None
+
+        @dataclass
+        class NightVisionIllum(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000001B
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[CameraAvStreamManagement.Enums.TriStateAuto])
+
+            value: 'typing.Optional[CameraAvStreamManagement.Enums.TriStateAuto]' = None
+
+        @dataclass
+        class Awb(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000001C
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[bool])
+
+            value: 'typing.Optional[bool]' = None
+
+        @dataclass
+        class ShutterSpeed(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000001D
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[bool])
+
+            value: 'typing.Optional[bool]' = None
+
+        @dataclass
+        class Iso(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000001E
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[bool])
+
+            value: 'typing.Optional[bool]' = None
+
+        @dataclass
+        class Viewport(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000001F
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[CameraAvStreamManagement.Structs.ViewportStruct])
+
+            value: 'typing.Optional[CameraAvStreamManagement.Structs.ViewportStruct]' = None
+
+        @dataclass
+        class SpkrOnOff(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000020
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[bool])
+
+            value: 'typing.Optional[bool]' = None
+
+        @dataclass
+        class SpkrVolumeLevel(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000021
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[uint])
+
+            value: 'typing.Optional[uint]' = None
+
+        @dataclass
+        class SpkrMaxLevel(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000022
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[uint])
+
+            value: 'typing.Optional[uint]' = None
+
+        @dataclass
+        class SpkrMinLevel(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000023
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[uint])
+
+            value: 'typing.Optional[uint]' = None
+
+        @dataclass
+        class MicOnOff(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000024
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[bool])
+
+            value: 'typing.Optional[bool]' = None
+
+        @dataclass
+        class MicCurrentLevel(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000025
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[uint])
+
+            value: 'typing.Optional[uint]' = None
+
+        @dataclass
+        class MicMaxLevel(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000026
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[uint])
+
+            value: 'typing.Optional[uint]' = None
+
+        @dataclass
+        class MicMinLevel(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000027
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[uint])
+
+            value: 'typing.Optional[uint]' = None
+
+        @dataclass
+        class MicAGC(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000028
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[bool])
+
+            value: 'typing.Optional[bool]' = None
+
+        @dataclass
+        class ImageRotation(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000029
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[uint])
+
+            value: 'typing.Optional[uint]' = None
+
+        @dataclass
+        class ImageFlipHorizontal(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000002A
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[bool])
+
+            value: 'typing.Optional[bool]' = None
+
+        @dataclass
+        class ImageFlipVertical(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000002B
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[bool])
+
+            value: 'typing.Optional[bool]' = None
+
+        @dataclass
+        class LocalVideoRecordingEnabled(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000002C
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[bool])
+
+            value: 'typing.Optional[bool]' = None
+
+        @dataclass
+        class LocalSnapshotRecordingEnabled(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000002D
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[bool])
+
+            value: 'typing.Optional[bool]' = None
+
+        @dataclass
+        class StatusLight(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000002E
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[bool])
+
+            value: 'typing.Optional[bool]' = None
+
+        @dataclass
+        class StatusLightBrightness(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000002F
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[Globals.Enums.ThreeLevelAutoEnum])
+
+            value: 'typing.Optional[Globals.Enums.ThreeLevelAutoEnum]' = None
+
+        @dataclass
+        class DepthSensorStatus(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000030
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[CameraAvStreamManagement.Enums.TriStateAuto])
+
+            value: 'typing.Optional[CameraAvStreamManagement.Enums.TriStateAuto]' = None
+
+        @dataclass
+        class WatermarkEnabled(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000031
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[typing.List[CameraAvStreamManagement.Structs.PerStreamStruct]])
+
+            value: 'typing.Optional[typing.List[CameraAvStreamManagement.Structs.PerStreamStruct]]' = None
+
+        @dataclass
+        class OSDEnabled(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000032
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[typing.List[CameraAvStreamManagement.Structs.PerStreamStruct]])
+
+            value: 'typing.Optional[typing.List[CameraAvStreamManagement.Structs.PerStreamStruct]]' = None
+
+        @dataclass
+        class GeneratedCommandList(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000FFF8
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.List[uint])
+
+            value: 'typing.List[uint]' = field(default_factory=lambda: [])
+
+        @dataclass
+        class AcceptedCommandList(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000FFF9
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.List[uint])
+
+            value: 'typing.List[uint]' = field(default_factory=lambda: [])
+
+        @dataclass
+        class EventList(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000FFFA
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.List[uint])
+
+            value: 'typing.List[uint]' = field(default_factory=lambda: [])
+
+        @dataclass
+        class AttributeList(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000FFFB
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.List[uint])
+
+            value: 'typing.List[uint]' = field(default_factory=lambda: [])
+
+        @dataclass
+        class FeatureMap(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000FFFC
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=uint)
+
+            value: 'uint' = 0
+
+        @dataclass
+        class ClusterRevision(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000FFFD
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=uint)
+
+            value: 'uint' = 0
+
+    class Events:
+        @dataclass
+        class VideoStreamChanged(ClusterEvent):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def event_id(cls) -> int:
+                return 0x00000000
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="videoStreamID", Tag=0, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="streamType", Tag=1, Type=typing.Optional[CameraAvStreamManagement.Enums.StreamTypeEnum]),
+                        ClusterObjectFieldDescriptor(Label="videoCodec", Tag=2, Type=typing.Optional[CameraAvStreamManagement.Enums.VideoCodecEnum]),
+                        ClusterObjectFieldDescriptor(Label="minFrameRate", Tag=3, Type=typing.Optional[uint]),
+                        ClusterObjectFieldDescriptor(Label="maxFrameRate", Tag=4, Type=typing.Optional[uint]),
+                        ClusterObjectFieldDescriptor(Label="minResolution", Tag=5, Type=typing.Optional[CameraAvStreamManagement.Structs.DimensionStruct]),
+                        ClusterObjectFieldDescriptor(Label="maxResolution", Tag=6, Type=typing.Optional[CameraAvStreamManagement.Structs.DimensionStruct]),
+                        ClusterObjectFieldDescriptor(Label="minBitRate", Tag=7, Type=typing.Optional[uint]),
+                        ClusterObjectFieldDescriptor(Label="maxBitRate", Tag=8, Type=typing.Optional[uint]),
+                        ClusterObjectFieldDescriptor(Label="minFragmentLen", Tag=9, Type=typing.Optional[uint]),
+                        ClusterObjectFieldDescriptor(Label="maxFragmentLen", Tag=10, Type=typing.Optional[uint]),
+                    ])
+
+            videoStreamID: 'uint' = 0
+            streamType: 'typing.Optional[CameraAvStreamManagement.Enums.StreamTypeEnum]' = None
+            videoCodec: 'typing.Optional[CameraAvStreamManagement.Enums.VideoCodecEnum]' = None
+            minFrameRate: 'typing.Optional[uint]' = None
+            maxFrameRate: 'typing.Optional[uint]' = None
+            minResolution: 'typing.Optional[CameraAvStreamManagement.Structs.DimensionStruct]' = None
+            maxResolution: 'typing.Optional[CameraAvStreamManagement.Structs.DimensionStruct]' = None
+            minBitRate: 'typing.Optional[uint]' = None
+            maxBitRate: 'typing.Optional[uint]' = None
+            minFragmentLen: 'typing.Optional[uint]' = None
+            maxFragmentLen: 'typing.Optional[uint]' = None
+
+        @dataclass
+        class AudioStreamChanged(ClusterEvent):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def event_id(cls) -> int:
+                return 0x00000001
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="audioStreamID", Tag=0, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="streamType", Tag=1, Type=typing.Optional[CameraAvStreamManagement.Enums.StreamTypeEnum]),
+                        ClusterObjectFieldDescriptor(Label="audioCodec", Tag=2, Type=typing.Optional[CameraAvStreamManagement.Enums.AudioCodecEnum]),
+                        ClusterObjectFieldDescriptor(Label="channelCount", Tag=3, Type=typing.Optional[uint]),
+                        ClusterObjectFieldDescriptor(Label="sampleRate", Tag=4, Type=typing.Optional[uint]),
+                        ClusterObjectFieldDescriptor(Label="bitRate", Tag=5, Type=typing.Optional[uint]),
+                        ClusterObjectFieldDescriptor(Label="bitDepth", Tag=6, Type=typing.Optional[uint]),
+                    ])
+
+            audioStreamID: 'uint' = 0
+            streamType: 'typing.Optional[CameraAvStreamManagement.Enums.StreamTypeEnum]' = None
+            audioCodec: 'typing.Optional[CameraAvStreamManagement.Enums.AudioCodecEnum]' = None
+            channelCount: 'typing.Optional[uint]' = None
+            sampleRate: 'typing.Optional[uint]' = None
+            bitRate: 'typing.Optional[uint]' = None
+            bitDepth: 'typing.Optional[uint]' = None
+
+        @dataclass
+        class SnapshotStreamChanged(ClusterEvent):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000551
+
+            @ChipUtility.classproperty
+            def event_id(cls) -> int:
+                return 0x00000002
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="snapshotStreamID", Tag=0, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="imageCodec", Tag=1, Type=typing.Optional[CameraAvStreamManagement.Enums.ImageCodecEnum]),
+                        ClusterObjectFieldDescriptor(Label="frameRate", Tag=2, Type=typing.Optional[uint]),
+                        ClusterObjectFieldDescriptor(Label="bitRate", Tag=3, Type=typing.Optional[uint]),
+                        ClusterObjectFieldDescriptor(Label="minResolution", Tag=4, Type=typing.Optional[CameraAvStreamManagement.Structs.DimensionStruct]),
+                        ClusterObjectFieldDescriptor(Label="maxResolution", Tag=5, Type=typing.Optional[CameraAvStreamManagement.Structs.DimensionStruct]),
+                        ClusterObjectFieldDescriptor(Label="quality", Tag=6, Type=typing.Optional[uint]),
+                    ])
+
+            snapshotStreamID: 'uint' = 0
+            imageCodec: 'typing.Optional[CameraAvStreamManagement.Enums.ImageCodecEnum]' = None
+            frameRate: 'typing.Optional[uint]' = None
+            bitRate: 'typing.Optional[uint]' = None
+            minResolution: 'typing.Optional[CameraAvStreamManagement.Structs.DimensionStruct]' = None
+            maxResolution: 'typing.Optional[CameraAvStreamManagement.Structs.DimensionStruct]' = None
+            quality: 'typing.Optional[uint]' = None
+
+
+@dataclass
+class CameraAvSettingsUserLevelManagement(Cluster):
+    id: typing.ClassVar[int] = 0x00000552
+
+    @ChipUtility.classproperty
+    def descriptor(cls) -> ClusterObjectDescriptor:
+        return ClusterObjectDescriptor(
+            Fields=[
+                ClusterObjectFieldDescriptor(Label="mptz", Tag=0x00000000, Type=typing.Optional[CameraAvSettingsUserLevelManagement.Structs.MPTZStruct]),
+                ClusterObjectFieldDescriptor(Label="maxPresets", Tag=0x00000001, Type=typing.Optional[uint]),
+                ClusterObjectFieldDescriptor(Label="presetMptzTable", Tag=0x00000002, Type=typing.Optional[typing.List[CameraAvSettingsUserLevelManagement.Structs.MPTZStruct]]),
+                ClusterObjectFieldDescriptor(Label="mptzRelativeMove", Tag=0x00000003, Type=typing.Optional[bool]),
+                ClusterObjectFieldDescriptor(Label="dptzRelativeMove", Tag=0x00000004, Type=typing.Optional[typing.List[CameraAvSettingsUserLevelManagement.Structs.PerStreamStruct]]),
+                ClusterObjectFieldDescriptor(Label="generatedCommandList", Tag=0x0000FFF8, Type=typing.List[uint]),
+                ClusterObjectFieldDescriptor(Label="acceptedCommandList", Tag=0x0000FFF9, Type=typing.List[uint]),
+                ClusterObjectFieldDescriptor(Label="eventList", Tag=0x0000FFFA, Type=typing.List[uint]),
+                ClusterObjectFieldDescriptor(Label="attributeList", Tag=0x0000FFFB, Type=typing.List[uint]),
+                ClusterObjectFieldDescriptor(Label="featureMap", Tag=0x0000FFFC, Type=uint),
+                ClusterObjectFieldDescriptor(Label="clusterRevision", Tag=0x0000FFFD, Type=uint),
+            ])
+
+    mptz: 'typing.Optional[CameraAvSettingsUserLevelManagement.Structs.MPTZStruct]' = None
+    maxPresets: 'typing.Optional[uint]' = None
+    presetMptzTable: 'typing.Optional[typing.List[CameraAvSettingsUserLevelManagement.Structs.MPTZStruct]]' = None
+    mptzRelativeMove: 'typing.Optional[bool]' = None
+    dptzRelativeMove: 'typing.Optional[typing.List[CameraAvSettingsUserLevelManagement.Structs.PerStreamStruct]]' = None
+    generatedCommandList: 'typing.List[uint]' = None
+    acceptedCommandList: 'typing.List[uint]' = None
+    eventList: 'typing.List[uint]' = None
+    attributeList: 'typing.List[uint]' = None
+    featureMap: 'uint' = None
+    clusterRevision: 'uint' = None
+
+    class Bitmaps:
+        class Feature(IntFlag):
+            kMechanicalPTZ = 0x1
+            kDigitalPTZ = 0x2
+
+    class Structs:
+        @dataclass
+        class MPTZStruct(ClusterObject):
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="MPan", Tag=0, Type=typing.Union[None, Nullable, int]),
+                        ClusterObjectFieldDescriptor(Label="MTilt", Tag=1, Type=typing.Union[None, Nullable, int]),
+                        ClusterObjectFieldDescriptor(Label="MZoom", Tag=2, Type=typing.Union[None, Nullable, uint]),
+                    ])
+
+            MPan: 'typing.Union[None, Nullable, int]' = None
+            MTilt: 'typing.Union[None, Nullable, int]' = None
+            MZoom: 'typing.Union[None, Nullable, uint]' = None
+
+        @dataclass
+        class PerStreamStruct(ClusterObject):
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="streamID", Tag=0, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="onOff", Tag=1, Type=bool),
+                    ])
+
+            streamID: 'uint' = 0
+            onOff: 'bool' = False
+
+        @dataclass
+        class ViewportStruct(ClusterObject):
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="x1", Tag=0, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="y1", Tag=1, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="x2", Tag=2, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="y2", Tag=3, Type=uint),
+                    ])
+
+            x1: 'uint' = 0
+            y1: 'uint' = 0
+            x2: 'uint' = 0
+            y2: 'uint' = 0
+
+    class Commands:
+        @dataclass
+        class MptzSet(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000552
+            command_id: typing.ClassVar[int] = 0x00000000
+            is_client: typing.ClassVar[bool] = True
+            response_type: typing.ClassVar[str] = None
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="newPTZ", Tag=0, Type=typing.Optional[CameraAvSettingsUserLevelManagement.Structs.MPTZStruct]),
+                        ClusterObjectFieldDescriptor(Label="presetID", Tag=1, Type=typing.Optional[uint]),
+                    ])
+
+            newPTZ: 'typing.Optional[CameraAvSettingsUserLevelManagement.Structs.MPTZStruct]' = None
+            presetID: 'typing.Optional[uint]' = None
+
+        @dataclass
+        class MptzRelativeMove(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000552
+            command_id: typing.ClassVar[int] = 0x00000001
+            is_client: typing.ClassVar[bool] = True
+            response_type: typing.ClassVar[str] = None
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="pan", Tag=0, Type=int),
+                        ClusterObjectFieldDescriptor(Label="tilt", Tag=1, Type=int),
+                        ClusterObjectFieldDescriptor(Label="zoom", Tag=2, Type=int),
+                    ])
+
+            pan: 'int' = 0
+            tilt: 'int' = 0
+            zoom: 'int' = 0
+
+        @dataclass
+        class SetAsPreset(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000552
+            command_id: typing.ClassVar[int] = 0x00000002
+            is_client: typing.ClassVar[bool] = True
+            response_type: typing.ClassVar[str] = None
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                    ])
+
+        @dataclass
+        class DptzSetViewport(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000552
+            command_id: typing.ClassVar[int] = 0x00000003
+            is_client: typing.ClassVar[bool] = True
+            response_type: typing.ClassVar[str] = None
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="videoStreamID", Tag=0, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="viewport", Tag=1, Type=CameraAvSettingsUserLevelManagement.Structs.ViewportStruct),
+                    ])
+
+            videoStreamID: 'uint' = 0
+            viewport: 'CameraAvSettingsUserLevelManagement.Structs.ViewportStruct' = field(default_factory=lambda: CameraAvSettingsUserLevelManagement.Structs.ViewportStruct())
+
+        @dataclass
+        class DptzRelativeMove(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000552
+            command_id: typing.ClassVar[int] = 0x00000004
+            is_client: typing.ClassVar[bool] = True
+            response_type: typing.ClassVar[str] = None
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="videoStreamID", Tag=0, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="pan", Tag=1, Type=int),
+                        ClusterObjectFieldDescriptor(Label="tilt", Tag=2, Type=int),
+                        ClusterObjectFieldDescriptor(Label="zoom", Tag=3, Type=int),
+                    ])
+
+            videoStreamID: 'uint' = 0
+            pan: 'int' = 0
+            tilt: 'int' = 0
+            zoom: 'int' = 0
+
+    class Attributes:
+        @dataclass
+        class Mptz(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000552
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000000
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[CameraAvSettingsUserLevelManagement.Structs.MPTZStruct])
+
+            value: 'typing.Optional[CameraAvSettingsUserLevelManagement.Structs.MPTZStruct]' = None
+
+        @dataclass
+        class MaxPresets(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000552
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000001
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[uint])
+
+            value: 'typing.Optional[uint]' = None
+
+        @dataclass
+        class PresetMptzTable(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000552
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000002
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[typing.List[CameraAvSettingsUserLevelManagement.Structs.MPTZStruct]])
+
+            value: 'typing.Optional[typing.List[CameraAvSettingsUserLevelManagement.Structs.MPTZStruct]]' = None
+
+        @dataclass
+        class MptzRelativeMove(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000552
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000003
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[bool])
+
+            value: 'typing.Optional[bool]' = None
+
+        @dataclass
+        class DptzRelativeMove(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000552
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000004
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.Optional[typing.List[CameraAvSettingsUserLevelManagement.Structs.PerStreamStruct]])
+
+            value: 'typing.Optional[typing.List[CameraAvSettingsUserLevelManagement.Structs.PerStreamStruct]]' = None
+
+        @dataclass
+        class GeneratedCommandList(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000552
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000FFF8
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.List[uint])
+
+            value: 'typing.List[uint]' = field(default_factory=lambda: [])
+
+        @dataclass
+        class AcceptedCommandList(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000552
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000FFF9
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.List[uint])
+
+            value: 'typing.List[uint]' = field(default_factory=lambda: [])
+
+        @dataclass
+        class EventList(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000552
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000FFFA
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.List[uint])
+
+            value: 'typing.List[uint]' = field(default_factory=lambda: [])
+
+        @dataclass
+        class AttributeList(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000552
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000FFFB
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.List[uint])
+
+            value: 'typing.List[uint]' = field(default_factory=lambda: [])
+
+        @dataclass
+        class FeatureMap(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000552
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000FFFC
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=uint)
+
+            value: 'uint' = 0
+
+        @dataclass
+        class ClusterRevision(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000552
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000FFFD
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=uint)
+
+            value: 'uint' = 0
+
+
+@dataclass
+class WebRTCTransportProvider(Cluster):
+    id: typing.ClassVar[int] = 0x00000553
+
+    @ChipUtility.classproperty
+    def descriptor(cls) -> ClusterObjectDescriptor:
+        return ClusterObjectDescriptor(
+            Fields=[
+                ClusterObjectFieldDescriptor(Label="currentSessions", Tag=0x00000000, Type=typing.List[WebRTCTransportProvider.Structs.WebRTCSessionStruct]),
+                ClusterObjectFieldDescriptor(Label="generatedCommandList", Tag=0x0000FFF8, Type=typing.List[uint]),
+                ClusterObjectFieldDescriptor(Label="acceptedCommandList", Tag=0x0000FFF9, Type=typing.List[uint]),
+                ClusterObjectFieldDescriptor(Label="eventList", Tag=0x0000FFFA, Type=typing.List[uint]),
+                ClusterObjectFieldDescriptor(Label="attributeList", Tag=0x0000FFFB, Type=typing.List[uint]),
+                ClusterObjectFieldDescriptor(Label="featureMap", Tag=0x0000FFFC, Type=uint),
+                ClusterObjectFieldDescriptor(Label="clusterRevision", Tag=0x0000FFFD, Type=uint),
+            ])
+
+    currentSessions: 'typing.List[WebRTCTransportProvider.Structs.WebRTCSessionStruct]' = None
+    generatedCommandList: 'typing.List[uint]' = None
+    acceptedCommandList: 'typing.List[uint]' = None
+    eventList: 'typing.List[uint]' = None
+    attributeList: 'typing.List[uint]' = None
+    featureMap: 'uint' = None
+    clusterRevision: 'uint' = None
+
+    class Enums:
+        class StreamTypeEnum(MatterIntEnum):
+            kInternal = 0x00
+            kRecording = 0x01
+            kAnalysis = 0x02
+            kLiveView = 0x03
+            # All received enum values that are not listed above will be mapped
+            # to kUnknownEnumValue. This is a helper enum value that should only
+            # be used by code to process how it handles receiving an unknown
+            # enum value. This specific value should never be transmitted.
+            kUnknownEnumValue = 4,
+
+        class StreamTypeEnum(MatterIntEnum):
+            kInternal = 0x00
+            kRecording = 0x01
+            kAnalysis = 0x02
+            kLiveView = 0x03
+            # All received enum values that are not listed above will be mapped
+            # to kUnknownEnumValue. This is a helper enum value that should only
+            # be used by code to process how it handles receiving an unknown
+            # enum value. This specific value should never be transmitted.
+            kUnknownEnumValue = 4,
+
+        class WebRTCEndReasonEnum(MatterIntEnum):
+            kIceFailed = 0x01
+            kIceTimeout = 0x02
+            kUserHangup = 0x03
+            kUserBusy = 0x04
+            kReplaced = 0x05
+            kNoUserMedia = 0x06
+            kInviteTimeout = 0x07
+            kAnsweredElsewhere = 0x08
+            kOutOfResources = 0x09
+            kMediaTimeout = 0x0A
+            kLowPower = 0x0B
+            kUnknownError = 0x0C
+            # All received enum values that are not listed above will be mapped
+            # to kUnknownEnumValue. This is a helper enum value that should only
+            # be used by code to process how it handles receiving an unknown
+            # enum value. This specific value should never be transmitted.
+            kUnknownEnumValue = 0,
+
+    class Bitmaps:
+        class WebRTCMetadataOptions(IntFlag):
+            kDataTLV = 0x1
+
+    class Structs:
+        @dataclass
+        class ICEServerStruct(ClusterObject):
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="urls", Tag=1, Type=typing.List[str]),
+                        ClusterObjectFieldDescriptor(Label="username", Tag=2, Type=typing.Optional[str]),
+                        ClusterObjectFieldDescriptor(Label="credential", Tag=3, Type=typing.Optional[str]),
+                        ClusterObjectFieldDescriptor(Label="caid", Tag=4, Type=typing.Optional[uint]),
+                    ])
+
+            urls: 'typing.List[str]' = field(default_factory=lambda: [])
+            username: 'typing.Optional[str]' = None
+            credential: 'typing.Optional[str]' = None
+            caid: 'typing.Optional[uint]' = None
+
+        @dataclass
+        class WebRTCSessionStruct(ClusterObject):
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="id", Tag=1, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="peerNodeId", Tag=2, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="peerFabricIndex", Tag=3, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="streamType", Tag=4, Type=WebRTCTransportProvider.Enums.StreamTypeEnum),
+                        ClusterObjectFieldDescriptor(Label="videoStreamID", Tag=5, Type=typing.Union[Nullable, uint]),
+                        ClusterObjectFieldDescriptor(Label="audioStreamID", Tag=6, Type=typing.Union[Nullable, uint]),
+                        ClusterObjectFieldDescriptor(Label="metadataOptions", Tag=7, Type=uint),
+                    ])
+
+            id: 'uint' = 0
+            peerNodeId: 'uint' = 0
+            peerFabricIndex: 'uint' = 0
+            streamType: 'WebRTCTransportProvider.Enums.StreamTypeEnum' = 0
+            videoStreamID: 'typing.Union[Nullable, uint]' = NullValue
+            audioStreamID: 'typing.Union[Nullable, uint]' = NullValue
+            metadataOptions: 'uint' = 0
+
+    class Commands:
+        @dataclass
+        class WebRTCSolicitOffer(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000553
+            command_id: typing.ClassVar[int] = 0x00000001
+            is_client: typing.ClassVar[bool] = True
+            response_type: typing.ClassVar[str] = 'WebRTCSolicitOfferResponse'
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="streamType", Tag=0, Type=WebRTCTransportProvider.Enums.StreamTypeEnum),
+                        ClusterObjectFieldDescriptor(Label="videoStreamID", Tag=1, Type=typing.Union[None, Nullable, uint]),
+                        ClusterObjectFieldDescriptor(Label="audioStreamID", Tag=2, Type=typing.Union[None, Nullable, uint]),
+                        ClusterObjectFieldDescriptor(Label="ICEServers", Tag=3, Type=typing.Optional[typing.List[WebRTCTransportProvider.Structs.ICEServerStruct]]),
+                        ClusterObjectFieldDescriptor(Label="ICETransportPolicy", Tag=4, Type=typing.Optional[str]),
+                        ClusterObjectFieldDescriptor(Label="metadataOptions", Tag=5, Type=typing.Optional[uint]),
+                    ])
+
+            streamType: 'WebRTCTransportProvider.Enums.StreamTypeEnum' = 0
+            videoStreamID: 'typing.Union[None, Nullable, uint]' = None
+            audioStreamID: 'typing.Union[None, Nullable, uint]' = None
+            ICEServers: 'typing.Optional[typing.List[WebRTCTransportProvider.Structs.ICEServerStruct]]' = None
+            ICETransportPolicy: 'typing.Optional[str]' = None
+            metadataOptions: 'typing.Optional[uint]' = None
+
+        @dataclass
+        class WebRTCSolicitOfferResponse(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000553
+            command_id: typing.ClassVar[int] = 0x00000002
+            is_client: typing.ClassVar[bool] = False
+            response_type: typing.ClassVar[str] = None
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="webRTCSessionID", Tag=0, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="deferredOffer", Tag=1, Type=bool),
+                        ClusterObjectFieldDescriptor(Label="videoStreamID", Tag=2, Type=typing.Union[None, Nullable, uint]),
+                        ClusterObjectFieldDescriptor(Label="audioStreamID", Tag=3, Type=typing.Union[None, Nullable, uint]),
+                    ])
+
+            webRTCSessionID: 'uint' = 0
+            deferredOffer: 'bool' = False
+            videoStreamID: 'typing.Union[None, Nullable, uint]' = None
+            audioStreamID: 'typing.Union[None, Nullable, uint]' = None
+
+        @dataclass
+        class WebRTCProvideOffer(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000553
+            command_id: typing.ClassVar[int] = 0x00000003
+            is_client: typing.ClassVar[bool] = True
+            response_type: typing.ClassVar[str] = 'WebRTCProvideOfferResponse'
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="webRTCSessionID", Tag=0, Type=typing.Union[Nullable, uint]),
+                        ClusterObjectFieldDescriptor(Label="sdp", Tag=1, Type=str),
+                        ClusterObjectFieldDescriptor(Label="streamType", Tag=2, Type=WebRTCTransportProvider.Enums.StreamTypeEnum),
+                        ClusterObjectFieldDescriptor(Label="videoStreamID", Tag=3, Type=typing.Union[None, Nullable, uint]),
+                        ClusterObjectFieldDescriptor(Label="audioStreamID", Tag=4, Type=typing.Union[None, Nullable, uint]),
+                        ClusterObjectFieldDescriptor(Label="ICEServers", Tag=5, Type=typing.Optional[typing.List[WebRTCTransportProvider.Structs.ICEServerStruct]]),
+                        ClusterObjectFieldDescriptor(Label="ICETransportPolicy", Tag=6, Type=typing.Optional[str]),
+                        ClusterObjectFieldDescriptor(Label="metadataOptions", Tag=7, Type=typing.Optional[uint]),
+                    ])
+
+            webRTCSessionID: 'typing.Union[Nullable, uint]' = NullValue
+            sdp: 'str' = ""
+            streamType: 'WebRTCTransportProvider.Enums.StreamTypeEnum' = 0
+            videoStreamID: 'typing.Union[None, Nullable, uint]' = None
+            audioStreamID: 'typing.Union[None, Nullable, uint]' = None
+            ICEServers: 'typing.Optional[typing.List[WebRTCTransportProvider.Structs.ICEServerStruct]]' = None
+            ICETransportPolicy: 'typing.Optional[str]' = None
+            metadataOptions: 'typing.Optional[uint]' = None
+
+        @dataclass
+        class WebRTCProvideOfferResponse(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000553
+            command_id: typing.ClassVar[int] = 0x00000004
+            is_client: typing.ClassVar[bool] = False
+            response_type: typing.ClassVar[str] = None
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="webRTCSessionID", Tag=0, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="videoStreamID", Tag=1, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="audioStreamID", Tag=2, Type=uint),
+                    ])
+
+            webRTCSessionID: 'uint' = 0
+            videoStreamID: 'uint' = 0
+            audioStreamID: 'uint' = 0
+
+        @dataclass
+        class WebRTCProvideAnswer(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000553
+            command_id: typing.ClassVar[int] = 0x00000005
+            is_client: typing.ClassVar[bool] = True
+            response_type: typing.ClassVar[str] = None
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="webRTCSessionID", Tag=0, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="sdp", Tag=1, Type=str),
+                    ])
+
+            webRTCSessionID: 'uint' = 0
+            sdp: 'str' = ""
+
+        @dataclass
+        class WebRTCProvideICECandidate(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000553
+            command_id: typing.ClassVar[int] = 0x00000006
+            is_client: typing.ClassVar[bool] = True
+            response_type: typing.ClassVar[str] = None
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="webRTCSessionID", Tag=0, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="ICECandidate", Tag=1, Type=str),
+                    ])
+
+            webRTCSessionID: 'uint' = 0
+            ICECandidate: 'str' = ""
+
+        @dataclass
+        class WebRTCEndSession(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000553
+            command_id: typing.ClassVar[int] = 0x00000007
+            is_client: typing.ClassVar[bool] = True
+            response_type: typing.ClassVar[str] = None
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="webRTCSessionID", Tag=0, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="reason", Tag=1, Type=WebRTCTransportProvider.Enums.WebRTCEndReasonEnum),
+                    ])
+
+            webRTCSessionID: 'uint' = 0
+            reason: 'WebRTCTransportProvider.Enums.WebRTCEndReasonEnum' = 0
+
+    class Attributes:
+        @dataclass
+        class CurrentSessions(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000553
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000000
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.List[WebRTCTransportProvider.Structs.WebRTCSessionStruct])
+
+            value: 'typing.List[WebRTCTransportProvider.Structs.WebRTCSessionStruct]' = field(default_factory=lambda: [])
+
+        @dataclass
+        class GeneratedCommandList(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000553
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000FFF8
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.List[uint])
+
+            value: 'typing.List[uint]' = field(default_factory=lambda: [])
+
+        @dataclass
+        class AcceptedCommandList(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000553
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000FFF9
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.List[uint])
+
+            value: 'typing.List[uint]' = field(default_factory=lambda: [])
+
+        @dataclass
+        class EventList(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000553
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000FFFA
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.List[uint])
+
+            value: 'typing.List[uint]' = field(default_factory=lambda: [])
+
+        @dataclass
+        class AttributeList(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000553
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000FFFB
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.List[uint])
+
+            value: 'typing.List[uint]' = field(default_factory=lambda: [])
+
+        @dataclass
+        class FeatureMap(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000553
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000FFFC
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=uint)
+
+            value: 'uint' = 0
+
+        @dataclass
+        class ClusterRevision(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000553
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000FFFD
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=uint)
+
+            value: 'uint' = 0
+
+
+@dataclass
+class WebRTCTransportRequestor(Cluster):
+    id: typing.ClassVar[int] = 0x00000554
+
+    @ChipUtility.classproperty
+    def descriptor(cls) -> ClusterObjectDescriptor:
+        return ClusterObjectDescriptor(
+            Fields=[
+                ClusterObjectFieldDescriptor(Label="currentSessions", Tag=0x00000000, Type=typing.List[WebRTCTransportRequestor.Structs.WebRTCSessionStruct]),
+                ClusterObjectFieldDescriptor(Label="generatedCommandList", Tag=0x0000FFF8, Type=typing.List[uint]),
+                ClusterObjectFieldDescriptor(Label="acceptedCommandList", Tag=0x0000FFF9, Type=typing.List[uint]),
+                ClusterObjectFieldDescriptor(Label="eventList", Tag=0x0000FFFA, Type=typing.List[uint]),
+                ClusterObjectFieldDescriptor(Label="attributeList", Tag=0x0000FFFB, Type=typing.List[uint]),
+                ClusterObjectFieldDescriptor(Label="featureMap", Tag=0x0000FFFC, Type=uint),
+                ClusterObjectFieldDescriptor(Label="clusterRevision", Tag=0x0000FFFD, Type=uint),
+            ])
+
+    currentSessions: 'typing.List[WebRTCTransportRequestor.Structs.WebRTCSessionStruct]' = None
+    generatedCommandList: 'typing.List[uint]' = None
+    acceptedCommandList: 'typing.List[uint]' = None
+    eventList: 'typing.List[uint]' = None
+    attributeList: 'typing.List[uint]' = None
+    featureMap: 'uint' = None
+    clusterRevision: 'uint' = None
+
+    class Enums:
+        class StreamTypeEnum(MatterIntEnum):
+            kInternal = 0x00
+            kRecording = 0x01
+            kAnalysis = 0x02
+            kLiveView = 0x03
+            # All received enum values that are not listed above will be mapped
+            # to kUnknownEnumValue. This is a helper enum value that should only
+            # be used by code to process how it handles receiving an unknown
+            # enum value. This specific value should never be transmitted.
+            kUnknownEnumValue = 4,
+
+        class StreamTypeEnum(MatterIntEnum):
+            kInternal = 0x00
+            kRecording = 0x01
+            kAnalysis = 0x02
+            kLiveView = 0x03
+            # All received enum values that are not listed above will be mapped
+            # to kUnknownEnumValue. This is a helper enum value that should only
+            # be used by code to process how it handles receiving an unknown
+            # enum value. This specific value should never be transmitted.
+            kUnknownEnumValue = 4,
+
+        class WebRTCEndReasonEnum(MatterIntEnum):
+            kIceFailed = 0x01
+            kIceTimeout = 0x02
+            kUserHangup = 0x03
+            kUserBusy = 0x04
+            kReplaced = 0x05
+            kNoUserMedia = 0x06
+            kInviteTimeout = 0x07
+            kAnsweredElsewhere = 0x08
+            kOutOfResources = 0x09
+            kMediaTimeout = 0x0A
+            kLowPower = 0x0B
+            kUnknownError = 0x0C
+            # All received enum values that are not listed above will be mapped
+            # to kUnknownEnumValue. This is a helper enum value that should only
+            # be used by code to process how it handles receiving an unknown
+            # enum value. This specific value should never be transmitted.
+            kUnknownEnumValue = 0,
+
+    class Bitmaps:
+        class WebRTCMetadataOptions(IntFlag):
+            kDataTLV = 0x1
+
+    class Structs:
+        @dataclass
+        class ICEServerStruct(ClusterObject):
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="urls", Tag=1, Type=typing.List[str]),
+                        ClusterObjectFieldDescriptor(Label="username", Tag=2, Type=typing.Optional[str]),
+                        ClusterObjectFieldDescriptor(Label="credential", Tag=3, Type=typing.Optional[str]),
+                        ClusterObjectFieldDescriptor(Label="caid", Tag=4, Type=typing.Optional[uint]),
+                    ])
+
+            urls: 'typing.List[str]' = field(default_factory=lambda: [])
+            username: 'typing.Optional[str]' = None
+            credential: 'typing.Optional[str]' = None
+            caid: 'typing.Optional[uint]' = None
+
+        @dataclass
+        class WebRTCSessionStruct(ClusterObject):
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="id", Tag=1, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="peerNodeId", Tag=2, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="peerFabricIndex", Tag=3, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="streamType", Tag=4, Type=WebRTCTransportRequestor.Enums.StreamTypeEnum),
+                        ClusterObjectFieldDescriptor(Label="videoStreamID", Tag=5, Type=typing.Union[Nullable, uint]),
+                        ClusterObjectFieldDescriptor(Label="audioStreamID", Tag=6, Type=typing.Union[Nullable, uint]),
+                        ClusterObjectFieldDescriptor(Label="metadataOptions", Tag=7, Type=uint),
+                    ])
+
+            id: 'uint' = 0
+            peerNodeId: 'uint' = 0
+            peerFabricIndex: 'uint' = 0
+            streamType: 'WebRTCTransportRequestor.Enums.StreamTypeEnum' = 0
+            videoStreamID: 'typing.Union[Nullable, uint]' = NullValue
+            audioStreamID: 'typing.Union[Nullable, uint]' = NullValue
+            metadataOptions: 'uint' = 0
+
+    class Commands:
+        @dataclass
+        class WebRTCOffer(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000554
+            command_id: typing.ClassVar[int] = 0x00000001
+            is_client: typing.ClassVar[bool] = True
+            response_type: typing.ClassVar[str] = None
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="webRTCSessionID", Tag=0, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="sdp", Tag=1, Type=str),
+                        ClusterObjectFieldDescriptor(Label="ICEServers", Tag=2, Type=typing.Optional[typing.List[WebRTCTransportRequestor.Structs.ICEServerStruct]]),
+                        ClusterObjectFieldDescriptor(Label="ICETransportPolicy", Tag=3, Type=typing.Optional[str]),
+                    ])
+
+            webRTCSessionID: 'uint' = 0
+            sdp: 'str' = ""
+            ICEServers: 'typing.Optional[typing.List[WebRTCTransportRequestor.Structs.ICEServerStruct]]' = None
+            ICETransportPolicy: 'typing.Optional[str]' = None
+
+        @dataclass
+        class WebRTCAnswer(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000554
+            command_id: typing.ClassVar[int] = 0x00000002
+            is_client: typing.ClassVar[bool] = True
+            response_type: typing.ClassVar[str] = None
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="webRTCSessionID", Tag=0, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="sdp", Tag=1, Type=str),
+                    ])
+
+            webRTCSessionID: 'uint' = 0
+            sdp: 'str' = ""
+
+        @dataclass
+        class WebRTCICECandidate(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000554
+            command_id: typing.ClassVar[int] = 0x00000003
+            is_client: typing.ClassVar[bool] = True
+            response_type: typing.ClassVar[str] = None
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="webRTCSessionID", Tag=0, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="ICECandidate", Tag=1, Type=str),
+                    ])
+
+            webRTCSessionID: 'uint' = 0
+            ICECandidate: 'str' = ""
+
+        @dataclass
+        class WebRTCEnd(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000554
+            command_id: typing.ClassVar[int] = 0x00000004
+            is_client: typing.ClassVar[bool] = True
+            response_type: typing.ClassVar[str] = None
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="webRTCSessionID", Tag=0, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="reason", Tag=1, Type=WebRTCTransportRequestor.Enums.WebRTCEndReasonEnum),
+                    ])
+
+            webRTCSessionID: 'uint' = 0
+            reason: 'WebRTCTransportRequestor.Enums.WebRTCEndReasonEnum' = 0
+
+    class Attributes:
+        @dataclass
+        class CurrentSessions(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000554
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000000
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.List[WebRTCTransportRequestor.Structs.WebRTCSessionStruct])
+
+            value: 'typing.List[WebRTCTransportRequestor.Structs.WebRTCSessionStruct]' = field(default_factory=lambda: [])
+
+        @dataclass
+        class GeneratedCommandList(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000554
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000FFF8
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.List[uint])
+
+            value: 'typing.List[uint]' = field(default_factory=lambda: [])
+
+        @dataclass
+        class AcceptedCommandList(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000554
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000FFF9
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.List[uint])
+
+            value: 'typing.List[uint]' = field(default_factory=lambda: [])
+
+        @dataclass
+        class EventList(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000554
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000FFFA
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.List[uint])
+
+            value: 'typing.List[uint]' = field(default_factory=lambda: [])
+
+        @dataclass
+        class AttributeList(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000554
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000FFFB
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.List[uint])
+
+            value: 'typing.List[uint]' = field(default_factory=lambda: [])
+
+        @dataclass
+        class FeatureMap(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000554
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000FFFC
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=uint)
+
+            value: 'uint' = 0
+
+        @dataclass
+        class ClusterRevision(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000554
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000FFFD
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=uint)
+
+            value: 'uint' = 0
+
+
+@dataclass
+class PushAvStreamTransport(Cluster):
+    id: typing.ClassVar[int] = 0x00000555
+
+    @ChipUtility.classproperty
+    def descriptor(cls) -> ClusterObjectDescriptor:
+        return ClusterObjectDescriptor(
+            Fields=[
+                ClusterObjectFieldDescriptor(Label="supportedContainerFormats", Tag=0x00000000, Type=uint),
+                ClusterObjectFieldDescriptor(Label="supportedIngestMethods", Tag=0x00000001, Type=uint),
+                ClusterObjectFieldDescriptor(Label="currentConnections", Tag=0x00000002, Type=typing.List[uint]),
+                ClusterObjectFieldDescriptor(Label="generatedCommandList", Tag=0x0000FFF8, Type=typing.List[uint]),
+                ClusterObjectFieldDescriptor(Label="acceptedCommandList", Tag=0x0000FFF9, Type=typing.List[uint]),
+                ClusterObjectFieldDescriptor(Label="eventList", Tag=0x0000FFFA, Type=typing.List[uint]),
+                ClusterObjectFieldDescriptor(Label="attributeList", Tag=0x0000FFFB, Type=typing.List[uint]),
+                ClusterObjectFieldDescriptor(Label="featureMap", Tag=0x0000FFFC, Type=uint),
+                ClusterObjectFieldDescriptor(Label="clusterRevision", Tag=0x0000FFFD, Type=uint),
+            ])
+
+    supportedContainerFormats: 'uint' = None
+    supportedIngestMethods: 'uint' = None
+    currentConnections: 'typing.List[uint]' = None
+    generatedCommandList: 'typing.List[uint]' = None
+    acceptedCommandList: 'typing.List[uint]' = None
+    eventList: 'typing.List[uint]' = None
+    attributeList: 'typing.List[uint]' = None
+    featureMap: 'uint' = None
+    clusterRevision: 'uint' = None
+
+    class Enums:
+        class PushAVStreamTransportContainerFormatEnum(MatterIntEnum):
+            kCmaf = 0x00
+            # All received enum values that are not listed above will be mapped
+            # to kUnknownEnumValue. This is a helper enum value that should only
+            # be used by code to process how it handles receiving an unknown
+            # enum value. This specific value should never be transmitted.
+            kUnknownEnumValue = 1,
+
+        class PushAVStreamTransportIngestMethodEnum(MatterIntEnum):
+            kCMAFIngest = 0x00
+            # All received enum values that are not listed above will be mapped
+            # to kUnknownEnumValue. This is a helper enum value that should only
+            # be used by code to process how it handles receiving an unknown
+            # enum value. This specific value should never be transmitted.
+            kUnknownEnumValue = 1,
+
+        class PushAVStreamTransportStatusEnum(MatterIntEnum):
+            kActive = 0x00
+            kInactive = 0x01
+            # All received enum values that are not listed above will be mapped
+            # to kUnknownEnumValue. This is a helper enum value that should only
+            # be used by code to process how it handles receiving an unknown
+            # enum value. This specific value should never be transmitted.
+            kUnknownEnumValue = 2,
+
+        class PushAVStreamTransportStreamMultiplexingEnum(MatterIntEnum):
+            kInterleaved = 0x00
+            # All received enum values that are not listed above will be mapped
+            # to kUnknownEnumValue. This is a helper enum value that should only
+            # be used by code to process how it handles receiving an unknown
+            # enum value. This specific value should never be transmitted.
+            kUnknownEnumValue = 1,
+
+        class PushAVStreamTransportTriggerActivationReasonEnum(MatterIntEnum):
+            kUserInitiated = 0x00
+            kAutomation = 0x01
+            kEmergency = 0x02
+            # All received enum values that are not listed above will be mapped
+            # to kUnknownEnumValue. This is a helper enum value that should only
+            # be used by code to process how it handles receiving an unknown
+            # enum value. This specific value should never be transmitted.
+            kUnknownEnumValue = 3,
+
+        class PushAVStreamTransportTriggerTypeEnum(MatterIntEnum):
+            kCommand = 0x00
+            kMotion = 0x01
+            kContinuous = 0x02
+            # All received enum values that are not listed above will be mapped
+            # to kUnknownEnumValue. This is a helper enum value that should only
+            # be used by code to process how it handles receiving an unknown
+            # enum value. This specific value should never be transmitted.
+            kUnknownEnumValue = 3,
+
+        class StatusCodeEnum(MatterIntEnum):
+            kAllocationNotPermitted = 0x02
+            kInvalidParameters = 0x03
+            kInvalidUrl = 0x04
+            kInvalidTriggerOptions = 0x05
+            kUnsupportedContainerFormat = 0x06
+            kUnsupportedIngestMethod = 0x07
+            kPavstNotInUse = 0x08
+            kInvalidTriggerFormat = 0x09
+            kInvalidTransportStatus = 0x10
+            # All received enum values that are not listed above will be mapped
+            # to kUnknownEnumValue. This is a helper enum value that should only
+            # be used by code to process how it handles receiving an unknown
+            # enum value. This specific value should never be transmitted.
+            kUnknownEnumValue = 0,
+
+        class StreamTypeEnum(MatterIntEnum):
+            kInternal = 0x00
+            kRecording = 0x01
+            kAnalysis = 0x02
+            kLiveView = 0x03
+            # All received enum values that are not listed above will be mapped
+            # to kUnknownEnumValue. This is a helper enum value that should only
+            # be used by code to process how it handles receiving an unknown
+            # enum value. This specific value should never be transmitted.
+            kUnknownEnumValue = 4,
+
+    class Bitmaps:
+        class PushAVStreamTransportSupportedContainerFormatsBitmap(IntFlag):
+            kCmaf = 0x1
+
+        class PushAVStreamTransportSupportedIngestMethodsBitmap(IntFlag):
+            kCMAFIngest = 0x1
+
+    class Structs:
+        @dataclass
+        class PushAVStreamTransportMotionTriggerTimeControlStruct(ClusterObject):
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="initialDuration", Tag=0, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="augmentationDuration", Tag=1, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="maxDuration", Tag=2, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="blindDuration", Tag=3, Type=uint),
+                    ])
+
+            initialDuration: 'uint' = 0
+            augmentationDuration: 'uint' = 0
+            maxDuration: 'uint' = 0
+            blindDuration: 'uint' = 0
+
+        @dataclass
+        class PushAVStreamTransportMetadataOptionsStruct(ClusterObject):
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="multiplexing", Tag=0, Type=PushAvStreamTransport.Enums.PushAVStreamTransportStreamMultiplexingEnum),
+                        ClusterObjectFieldDescriptor(Label="includeMotionZones", Tag=1, Type=bool),
+                        ClusterObjectFieldDescriptor(Label="enableMetadataPrivacySensitive", Tag=2, Type=bool),
+                    ])
+
+            multiplexing: 'PushAvStreamTransport.Enums.PushAVStreamTransportStreamMultiplexingEnum' = 0
+            includeMotionZones: 'bool' = False
+            enableMetadataPrivacySensitive: 'bool' = False
+
+        @dataclass
+        class PushAVStreamTransportTriggerOptionsStruct(ClusterObject):
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="triggerType", Tag=0, Type=PushAvStreamTransport.Enums.PushAVStreamTransportTriggerTypeEnum),
+                        ClusterObjectFieldDescriptor(Label="motionZones", Tag=1, Type=typing.Union[None, Nullable, typing.List[uint]]),
+                        ClusterObjectFieldDescriptor(Label="motionSensitivity", Tag=2, Type=typing.Union[None, Nullable, uint]),
+                        ClusterObjectFieldDescriptor(Label="motionTimeControl", Tag=3, Type=typing.Union[None, Nullable, PushAvStreamTransport.Structs.PushAVStreamTransportMotionTriggerTimeControlStruct]),
+                        ClusterObjectFieldDescriptor(Label="activationReason", Tag=4, Type=typing.Union[None, Nullable, PushAvStreamTransport.Enums.PushAVStreamTransportTriggerActivationReasonEnum]),
+                    ])
+
+            triggerType: 'PushAvStreamTransport.Enums.PushAVStreamTransportTriggerTypeEnum' = 0
+            motionZones: 'typing.Union[None, Nullable, typing.List[uint]]' = None
+            motionSensitivity: 'typing.Union[None, Nullable, uint]' = None
+            motionTimeControl: 'typing.Union[None, Nullable, PushAvStreamTransport.Structs.PushAVStreamTransportMotionTriggerTimeControlStruct]' = None
+            activationReason: 'typing.Union[None, Nullable, PushAvStreamTransport.Enums.PushAVStreamTransportTriggerActivationReasonEnum]' = None
+
+        @dataclass
+        class PushAVStreamTransportCMAFContainerOptionsStruct(ClusterObject):
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="chunkDuration", Tag=0, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="CENCKey", Tag=1, Type=typing.Union[None, Nullable, bytes]),
+                    ])
+
+            chunkDuration: 'uint' = 0
+            CENCKey: 'typing.Union[None, Nullable, bytes]' = None
+
+        @dataclass
+        class PushAVStreamTransportContainerOptionsStruct(ClusterObject):
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="containerType", Tag=0, Type=PushAvStreamTransport.Enums.PushAVStreamTransportContainerFormatEnum),
+                        ClusterObjectFieldDescriptor(Label="CMAFContainerOptions", Tag=1, Type=typing.Union[None, Nullable, PushAvStreamTransport.Structs.PushAVStreamTransportCMAFContainerOptionsStruct]),
+                    ])
+
+            containerType: 'PushAvStreamTransport.Enums.PushAVStreamTransportContainerFormatEnum' = 0
+            CMAFContainerOptions: 'typing.Union[None, Nullable, PushAvStreamTransport.Structs.PushAVStreamTransportCMAFContainerOptionsStruct]' = None
+
+        @dataclass
+        class PushAVStreamTransportOptionsStruct(ClusterObject):
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="streamType", Tag=0, Type=PushAvStreamTransport.Enums.StreamTypeEnum),
+                        ClusterObjectFieldDescriptor(Label="videoStreamID", Tag=1, Type=typing.Union[None, Nullable, uint]),
+                        ClusterObjectFieldDescriptor(Label="audioStreamID", Tag=2, Type=typing.Union[None, Nullable, uint]),
+                        ClusterObjectFieldDescriptor(Label="TLSEndpointID", Tag=3, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="url", Tag=4, Type=str),
+                        ClusterObjectFieldDescriptor(Label="triggerOptions", Tag=5, Type=PushAvStreamTransport.Structs.PushAVStreamTransportTriggerOptionsStruct),
+                        ClusterObjectFieldDescriptor(Label="containerFormat", Tag=6, Type=PushAvStreamTransport.Enums.PushAVStreamTransportContainerFormatEnum),
+                        ClusterObjectFieldDescriptor(Label="ingestMethod", Tag=7, Type=PushAvStreamTransport.Enums.PushAVStreamTransportIngestMethodEnum),
+                        ClusterObjectFieldDescriptor(Label="containerOptions", Tag=8, Type=PushAvStreamTransport.Structs.PushAVStreamTransportContainerOptionsStruct),
+                        ClusterObjectFieldDescriptor(Label="metadataOptions", Tag=9, Type=typing.Union[None, Nullable, PushAvStreamTransport.Structs.PushAVStreamTransportMetadataOptionsStruct]),
+                        ClusterObjectFieldDescriptor(Label="expiryTime", Tag=10, Type=typing.Union[None, Nullable, uint]),
+                    ])
+
+            streamType: 'PushAvStreamTransport.Enums.StreamTypeEnum' = 0
+            videoStreamID: 'typing.Union[None, Nullable, uint]' = None
+            audioStreamID: 'typing.Union[None, Nullable, uint]' = None
+            TLSEndpointID: 'uint' = 0
+            url: 'str' = ""
+            triggerOptions: 'PushAvStreamTransport.Structs.PushAVStreamTransportTriggerOptionsStruct' = field(default_factory=lambda: PushAvStreamTransport.Structs.PushAVStreamTransportTriggerOptionsStruct())
+            containerFormat: 'PushAvStreamTransport.Enums.PushAVStreamTransportContainerFormatEnum' = 0
+            ingestMethod: 'PushAvStreamTransport.Enums.PushAVStreamTransportIngestMethodEnum' = 0
+            containerOptions: 'PushAvStreamTransport.Structs.PushAVStreamTransportContainerOptionsStruct' = field(default_factory=lambda: PushAvStreamTransport.Structs.PushAVStreamTransportContainerOptionsStruct())
+            metadataOptions: 'typing.Union[None, Nullable, PushAvStreamTransport.Structs.PushAVStreamTransportMetadataOptionsStruct]' = None
+            expiryTime: 'typing.Union[None, Nullable, uint]' = None
+
+        @dataclass
+        class PushAVStreamConfigurationStruct(ClusterObject):
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="connectionID", Tag=0, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="streamTransportStatus", Tag=1, Type=PushAvStreamTransport.Enums.PushAVStreamTransportStatusEnum),
+                        ClusterObjectFieldDescriptor(Label="streamTransportOptions", Tag=2, Type=PushAvStreamTransport.Structs.PushAVStreamTransportOptionsStruct),
+                    ])
+
+            connectionID: 'uint' = 0
+            streamTransportStatus: 'PushAvStreamTransport.Enums.PushAVStreamTransportStatusEnum' = 0
+            streamTransportOptions: 'PushAvStreamTransport.Structs.PushAVStreamTransportOptionsStruct' = field(default_factory=lambda: PushAvStreamTransport.Structs.PushAVStreamTransportOptionsStruct())
+
+    class Commands:
+        @dataclass
+        class AllocatePushTransport(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000555
+            command_id: typing.ClassVar[int] = 0x00000000
+            is_client: typing.ClassVar[bool] = True
+            response_type: typing.ClassVar[str] = 'AllocatePushTransportResponse'
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="streamTransportOptions", Tag=0, Type=PushAvStreamTransport.Structs.PushAVStreamTransportOptionsStruct),
+                    ])
+
+            streamTransportOptions: 'PushAvStreamTransport.Structs.PushAVStreamTransportOptionsStruct' = field(default_factory=lambda: PushAvStreamTransport.Structs.PushAVStreamTransportOptionsStruct())
+
+        @dataclass
+        class AllocatePushTransportResponse(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000555
+            command_id: typing.ClassVar[int] = 0x00000001
+            is_client: typing.ClassVar[bool] = False
+            response_type: typing.ClassVar[str] = None
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="connectionID", Tag=0, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="streamTransportOptions", Tag=1, Type=PushAvStreamTransport.Structs.PushAVStreamTransportOptionsStruct),
+                        ClusterObjectFieldDescriptor(Label="transportStatus", Tag=2, Type=PushAvStreamTransport.Enums.PushAVStreamTransportStatusEnum),
+                    ])
+
+            connectionID: 'uint' = 0
+            streamTransportOptions: 'PushAvStreamTransport.Structs.PushAVStreamTransportOptionsStruct' = field(default_factory=lambda: PushAvStreamTransport.Structs.PushAVStreamTransportOptionsStruct())
+            transportStatus: 'PushAvStreamTransport.Enums.PushAVStreamTransportStatusEnum' = 0
+
+        @dataclass
+        class DeallocatePushTransport(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000555
+            command_id: typing.ClassVar[int] = 0x00000002
+            is_client: typing.ClassVar[bool] = True
+            response_type: typing.ClassVar[str] = None
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="connectionID", Tag=0, Type=uint),
+                    ])
+
+            connectionID: 'uint' = 0
+
+        @dataclass
+        class ModifyPushTransport(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000555
+            command_id: typing.ClassVar[int] = 0x00000003
+            is_client: typing.ClassVar[bool] = True
+            response_type: typing.ClassVar[str] = None
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="connectionID", Tag=0, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="streamTransportOptions", Tag=1, Type=PushAvStreamTransport.Structs.PushAVStreamTransportOptionsStruct),
+                    ])
+
+            connectionID: 'uint' = 0
+            streamTransportOptions: 'PushAvStreamTransport.Structs.PushAVStreamTransportOptionsStruct' = field(default_factory=lambda: PushAvStreamTransport.Structs.PushAVStreamTransportOptionsStruct())
+
+        @dataclass
+        class SetTransportStatus(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000555
+            command_id: typing.ClassVar[int] = 0x00000004
+            is_client: typing.ClassVar[bool] = True
+            response_type: typing.ClassVar[str] = None
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="connectionID", Tag=0, Type=typing.Union[Nullable, uint]),
+                        ClusterObjectFieldDescriptor(Label="streamTransportStatus", Tag=1, Type=PushAvStreamTransport.Enums.PushAVStreamTransportStatusEnum),
+                    ])
+
+            connectionID: 'typing.Union[Nullable, uint]' = NullValue
+            streamTransportStatus: 'PushAvStreamTransport.Enums.PushAVStreamTransportStatusEnum' = 0
+
+        @dataclass
+        class ManuallyTriggerTransport(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000555
+            command_id: typing.ClassVar[int] = 0x00000005
+            is_client: typing.ClassVar[bool] = True
+            response_type: typing.ClassVar[str] = None
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="connectionID", Tag=0, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="activationReason", Tag=1, Type=typing.Union[Nullable, PushAvStreamTransport.Enums.PushAVStreamTransportTriggerActivationReasonEnum]),
+                        ClusterObjectFieldDescriptor(Label="timeControl", Tag=2, Type=typing.Union[None, Nullable, PushAvStreamTransport.Structs.PushAVStreamTransportMotionTriggerTimeControlStruct]),
+                    ])
+
+            connectionID: 'uint' = 0
+            activationReason: 'typing.Union[Nullable, PushAvStreamTransport.Enums.PushAVStreamTransportTriggerActivationReasonEnum]' = NullValue
+            timeControl: 'typing.Union[None, Nullable, PushAvStreamTransport.Structs.PushAVStreamTransportMotionTriggerTimeControlStruct]' = None
+
+        @dataclass
+        class FindStreamConfiguration(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000555
+            command_id: typing.ClassVar[int] = 0x00000006
+            is_client: typing.ClassVar[bool] = True
+            response_type: typing.ClassVar[str] = 'FindStreamConfigurationResponse'
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="connectionID", Tag=0, Type=typing.Union[None, Nullable, uint]),
+                    ])
+
+            connectionID: 'typing.Union[None, Nullable, uint]' = None
+
+        @dataclass
+        class FindStreamConfigurationResponse(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000555
+            command_id: typing.ClassVar[int] = 0x00000007
+            is_client: typing.ClassVar[bool] = False
+            response_type: typing.ClassVar[str] = None
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="streamConfigurations", Tag=0, Type=typing.List[PushAvStreamTransport.Structs.PushAVStreamConfigurationStruct]),
+                    ])
+
+            streamConfigurations: 'typing.List[PushAvStreamTransport.Structs.PushAVStreamConfigurationStruct]' = field(default_factory=lambda: [])
+
+    class Attributes:
+        @dataclass
+        class SupportedContainerFormats(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000555
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000000
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=uint)
+
+            value: 'uint' = 0
+
+        @dataclass
+        class SupportedIngestMethods(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000555
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000001
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=uint)
+
+            value: 'uint' = 0
+
+        @dataclass
+        class CurrentConnections(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000555
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000002
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.List[uint])
+
+            value: 'typing.List[uint]' = field(default_factory=lambda: [])
+
+        @dataclass
+        class GeneratedCommandList(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000555
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000FFF8
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.List[uint])
+
+            value: 'typing.List[uint]' = field(default_factory=lambda: [])
+
+        @dataclass
+        class AcceptedCommandList(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000555
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000FFF9
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.List[uint])
+
+            value: 'typing.List[uint]' = field(default_factory=lambda: [])
+
+        @dataclass
+        class EventList(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000555
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000FFFA
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.List[uint])
+
+            value: 'typing.List[uint]' = field(default_factory=lambda: [])
+
+        @dataclass
+        class AttributeList(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000555
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000FFFB
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.List[uint])
+
+            value: 'typing.List[uint]' = field(default_factory=lambda: [])
+
+        @dataclass
+        class FeatureMap(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000555
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000FFFC
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=uint)
+
+            value: 'uint' = 0
+
+        @dataclass
+        class ClusterRevision(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000555
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000FFFD
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=uint)
+
+            value: 'uint' = 0
+
+    class Events:
+        @dataclass
+        class PushTransportBegin(ClusterEvent):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000555
+
+            @ChipUtility.classproperty
+            def event_id(cls) -> int:
+                return 0x00000000
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                    ])
+
+        @dataclass
+        class PushTransportEnd(ClusterEvent):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000555
+
+            @ChipUtility.classproperty
+            def event_id(cls) -> int:
+                return 0x00000001
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="connectionID", Tag=0, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="triggerDetails", Tag=1, Type=PushAvStreamTransport.Structs.PushAVStreamTransportTriggerOptionsStruct),
+                    ])
+
+            connectionID: 'uint' = 0
+            triggerDetails: 'PushAvStreamTransport.Structs.PushAVStreamTransportTriggerOptionsStruct' = field(default_factory=lambda: PushAvStreamTransport.Structs.PushAVStreamTransportTriggerOptionsStruct())
+
+
+@dataclass
+class Chime(Cluster):
+    id: typing.ClassVar[int] = 0x00000556
+
+    @ChipUtility.classproperty
+    def descriptor(cls) -> ClusterObjectDescriptor:
+        return ClusterObjectDescriptor(
+            Fields=[
+                ClusterObjectFieldDescriptor(Label="installedChimeSounds", Tag=0x00000000, Type=typing.List[Chime.Structs.ChimeSoundStruct]),
+                ClusterObjectFieldDescriptor(Label="activeChimeSoundId", Tag=0x00000001, Type=uint),
+                ClusterObjectFieldDescriptor(Label="enabled", Tag=0x00000002, Type=bool),
+                ClusterObjectFieldDescriptor(Label="generatedCommandList", Tag=0x0000FFF8, Type=typing.List[uint]),
+                ClusterObjectFieldDescriptor(Label="acceptedCommandList", Tag=0x0000FFF9, Type=typing.List[uint]),
+                ClusterObjectFieldDescriptor(Label="eventList", Tag=0x0000FFFA, Type=typing.List[uint]),
+                ClusterObjectFieldDescriptor(Label="attributeList", Tag=0x0000FFFB, Type=typing.List[uint]),
+                ClusterObjectFieldDescriptor(Label="featureMap", Tag=0x0000FFFC, Type=uint),
+                ClusterObjectFieldDescriptor(Label="clusterRevision", Tag=0x0000FFFD, Type=uint),
+            ])
+
+    installedChimeSounds: 'typing.List[Chime.Structs.ChimeSoundStruct]' = None
+    activeChimeSoundId: 'uint' = None
+    enabled: 'bool' = None
+    generatedCommandList: 'typing.List[uint]' = None
+    acceptedCommandList: 'typing.List[uint]' = None
+    eventList: 'typing.List[uint]' = None
+    attributeList: 'typing.List[uint]' = None
+    featureMap: 'uint' = None
+    clusterRevision: 'uint' = None
+
+    class Structs:
+        @dataclass
+        class ChimeSoundStruct(ClusterObject):
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                        ClusterObjectFieldDescriptor(Label="chimeId", Tag=0, Type=uint),
+                        ClusterObjectFieldDescriptor(Label="name", Tag=1, Type=str),
+                    ])
+
+            chimeId: 'uint' = 0
+            name: 'str' = ""
+
+    class Commands:
+        @dataclass
+        class PlayChimeSound(ClusterCommand):
+            cluster_id: typing.ClassVar[int] = 0x00000556
+            command_id: typing.ClassVar[int] = 0x00000000
+            is_client: typing.ClassVar[bool] = True
+            response_type: typing.ClassVar[str] = None
+
+            @ChipUtility.classproperty
+            def descriptor(cls) -> ClusterObjectDescriptor:
+                return ClusterObjectDescriptor(
+                    Fields=[
+                    ])
+
+    class Attributes:
+        @dataclass
+        class InstalledChimeSounds(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000556
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000000
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.List[Chime.Structs.ChimeSoundStruct])
+
+            value: 'typing.List[Chime.Structs.ChimeSoundStruct]' = field(default_factory=lambda: [])
+
+        @dataclass
+        class ActiveChimeSoundId(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000556
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000001
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=uint)
+
+            value: 'uint' = 0
+
+        @dataclass
+        class Enabled(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000556
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x00000002
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=bool)
+
+            value: 'bool' = False
+
+        @dataclass
+        class GeneratedCommandList(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000556
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000FFF8
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.List[uint])
+
+            value: 'typing.List[uint]' = field(default_factory=lambda: [])
+
+        @dataclass
+        class AcceptedCommandList(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000556
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000FFF9
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.List[uint])
+
+            value: 'typing.List[uint]' = field(default_factory=lambda: [])
+
+        @dataclass
+        class EventList(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000556
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000FFFA
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.List[uint])
+
+            value: 'typing.List[uint]' = field(default_factory=lambda: [])
+
+        @dataclass
+        class AttributeList(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000556
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000FFFB
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=typing.List[uint])
+
+            value: 'typing.List[uint]' = field(default_factory=lambda: [])
+
+        @dataclass
+        class FeatureMap(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000556
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000FFFC
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=uint)
+
+            value: 'uint' = 0
+
+        @dataclass
+        class ClusterRevision(ClusterAttributeDescriptor):
+            @ChipUtility.classproperty
+            def cluster_id(cls) -> int:
+                return 0x00000556
+
+            @ChipUtility.classproperty
+            def attribute_id(cls) -> int:
+                return 0x0000FFFD
+
+            @ChipUtility.classproperty
+            def attribute_type(cls) -> ClusterObjectFieldDescriptor:
+                return ClusterObjectFieldDescriptor(Type=uint)
+
+            value: 'uint' = 0
+
+
 @dataclass
 class EcosystemInformation(Cluster):
     id: typing.ClassVar[int] = 0x00000750
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRAttributeSpecifiedCheck.mm b/src/darwin/Framework/CHIP/zap-generated/MTRAttributeSpecifiedCheck.mm
index b2da0cf9db04ad..09139206ddd88c 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRAttributeSpecifiedCheck.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRAttributeSpecifiedCheck.mm
@@ -6056,6 +6056,360 @@ static BOOL AttributeIsSpecifiedInContentAppObserverCluster(AttributeId aAttribu
     }
     }
 }
+static BOOL AttributeIsSpecifiedInCameraAVStreamManagementCluster(AttributeId aAttributeId)
+{
+    using namespace Clusters::CameraAvStreamManagement;
+    switch (aAttributeId) {
+    case Attributes::MaxConcurrentVideoEncoders::Id: {
+        return YES;
+    }
+    case Attributes::MaxEncodedPixelRate::Id: {
+        return YES;
+    }
+    case Attributes::VideoSensorParams::Id: {
+        return YES;
+    }
+    case Attributes::NightVisionCapable::Id: {
+        return YES;
+    }
+    case Attributes::MinViewPortWidth::Id: {
+        return YES;
+    }
+    case Attributes::MinViewPortHeight::Id: {
+        return YES;
+    }
+    case Attributes::RateDistortionTradeOffPoints::Id: {
+        return YES;
+    }
+    case Attributes::MaxPreRollBufferSize::Id: {
+        return YES;
+    }
+    case Attributes::MicrophoneCapabilities::Id: {
+        return YES;
+    }
+    case Attributes::SpeakerCapabilities::Id: {
+        return YES;
+    }
+    case Attributes::TwoWayTalkSupport::Id: {
+        return YES;
+    }
+    case Attributes::SupportedSnapshotParams::Id: {
+        return YES;
+    }
+    case Attributes::HDRCapable::Id: {
+        return YES;
+    }
+    case Attributes::MaxNetworkBandwidth::Id: {
+        return YES;
+    }
+    case Attributes::CurrentFrameRate::Id: {
+        return YES;
+    }
+    case Attributes::HDRMode::Id: {
+        return YES;
+    }
+    case Attributes::CurrentVideoCodecs::Id: {
+        return YES;
+    }
+    case Attributes::CurrentSnapshotConfig::Id: {
+        return YES;
+    }
+    case Attributes::FabricsUsingCamera::Id: {
+        return YES;
+    }
+    case Attributes::AllocatedVideoStreams::Id: {
+        return YES;
+    }
+    case Attributes::AllocatedAudioStreams::Id: {
+        return YES;
+    }
+    case Attributes::AllocatedSnapshotStreams::Id: {
+        return YES;
+    }
+    case Attributes::RankedVideoStreamPrioritiesList::Id: {
+        return YES;
+    }
+    case Attributes::SoftRecordingPrivacyModeSetting::Id: {
+        return YES;
+    }
+    case Attributes::SoftLivestreamPrivacyModeSetting::Id: {
+        return YES;
+    }
+    case Attributes::HardPrivacyMode::Id: {
+        return YES;
+    }
+    case Attributes::NightVision::Id: {
+        return YES;
+    }
+    case Attributes::NightVisionIllum::Id: {
+        return YES;
+    }
+    case Attributes::Awb::Id: {
+        return YES;
+    }
+    case Attributes::ShutterSpeed::Id: {
+        return YES;
+    }
+    case Attributes::Iso::Id: {
+        return YES;
+    }
+    case Attributes::Viewport::Id: {
+        return YES;
+    }
+    case Attributes::SpkrOnOff::Id: {
+        return YES;
+    }
+    case Attributes::SpkrVolumeLevel::Id: {
+        return YES;
+    }
+    case Attributes::SpkrMaxLevel::Id: {
+        return YES;
+    }
+    case Attributes::SpkrMinLevel::Id: {
+        return YES;
+    }
+    case Attributes::MicOnOff::Id: {
+        return YES;
+    }
+    case Attributes::MicCurrentLevel::Id: {
+        return YES;
+    }
+    case Attributes::MicMaxLevel::Id: {
+        return YES;
+    }
+    case Attributes::MicMinLevel::Id: {
+        return YES;
+    }
+    case Attributes::MicAGC::Id: {
+        return YES;
+    }
+    case Attributes::ImageRotation::Id: {
+        return YES;
+    }
+    case Attributes::ImageFlipHorizontal::Id: {
+        return YES;
+    }
+    case Attributes::ImageFlipVertical::Id: {
+        return YES;
+    }
+    case Attributes::LocalVideoRecordingEnabled::Id: {
+        return YES;
+    }
+    case Attributes::LocalSnapshotRecordingEnabled::Id: {
+        return YES;
+    }
+    case Attributes::StatusLight::Id: {
+        return YES;
+    }
+    case Attributes::StatusLightBrightness::Id: {
+        return YES;
+    }
+    case Attributes::DepthSensorStatus::Id: {
+        return YES;
+    }
+    case Attributes::WatermarkEnabled::Id: {
+        return YES;
+    }
+    case Attributes::OSDEnabled::Id: {
+        return YES;
+    }
+    case Attributes::GeneratedCommandList::Id: {
+        return YES;
+    }
+    case Attributes::AcceptedCommandList::Id: {
+        return YES;
+    }
+    case Attributes::EventList::Id: {
+        return YES;
+    }
+    case Attributes::AttributeList::Id: {
+        return YES;
+    }
+    case Attributes::FeatureMap::Id: {
+        return YES;
+    }
+    case Attributes::ClusterRevision::Id: {
+        return YES;
+    }
+    default: {
+        return NO;
+    }
+    }
+}
+static BOOL AttributeIsSpecifiedInCameraAVSettingsUserLevelManagementCluster(AttributeId aAttributeId)
+{
+    using namespace Clusters::CameraAvSettingsUserLevelManagement;
+    switch (aAttributeId) {
+    case Attributes::Mptz::Id: {
+        return YES;
+    }
+    case Attributes::MaxPresets::Id: {
+        return YES;
+    }
+    case Attributes::PresetMptzTable::Id: {
+        return YES;
+    }
+    case Attributes::MptzRelativeMove::Id: {
+        return YES;
+    }
+    case Attributes::DptzRelativeMove::Id: {
+        return YES;
+    }
+    case Attributes::GeneratedCommandList::Id: {
+        return YES;
+    }
+    case Attributes::AcceptedCommandList::Id: {
+        return YES;
+    }
+    case Attributes::EventList::Id: {
+        return YES;
+    }
+    case Attributes::AttributeList::Id: {
+        return YES;
+    }
+    case Attributes::FeatureMap::Id: {
+        return YES;
+    }
+    case Attributes::ClusterRevision::Id: {
+        return YES;
+    }
+    default: {
+        return NO;
+    }
+    }
+}
+static BOOL AttributeIsSpecifiedInWebRTCTransportProviderCluster(AttributeId aAttributeId)
+{
+    using namespace Clusters::WebRTCTransportProvider;
+    switch (aAttributeId) {
+    case Attributes::CurrentSessions::Id: {
+        return YES;
+    }
+    case Attributes::GeneratedCommandList::Id: {
+        return YES;
+    }
+    case Attributes::AcceptedCommandList::Id: {
+        return YES;
+    }
+    case Attributes::EventList::Id: {
+        return YES;
+    }
+    case Attributes::AttributeList::Id: {
+        return YES;
+    }
+    case Attributes::FeatureMap::Id: {
+        return YES;
+    }
+    case Attributes::ClusterRevision::Id: {
+        return YES;
+    }
+    default: {
+        return NO;
+    }
+    }
+}
+static BOOL AttributeIsSpecifiedInWebRTCTransportRequestorCluster(AttributeId aAttributeId)
+{
+    using namespace Clusters::WebRTCTransportRequestor;
+    switch (aAttributeId) {
+    case Attributes::CurrentSessions::Id: {
+        return YES;
+    }
+    case Attributes::GeneratedCommandList::Id: {
+        return YES;
+    }
+    case Attributes::AcceptedCommandList::Id: {
+        return YES;
+    }
+    case Attributes::EventList::Id: {
+        return YES;
+    }
+    case Attributes::AttributeList::Id: {
+        return YES;
+    }
+    case Attributes::FeatureMap::Id: {
+        return YES;
+    }
+    case Attributes::ClusterRevision::Id: {
+        return YES;
+    }
+    default: {
+        return NO;
+    }
+    }
+}
+static BOOL AttributeIsSpecifiedInPushAVStreamTransportCluster(AttributeId aAttributeId)
+{
+    using namespace Clusters::PushAvStreamTransport;
+    switch (aAttributeId) {
+    case Attributes::SupportedContainerFormats::Id: {
+        return YES;
+    }
+    case Attributes::SupportedIngestMethods::Id: {
+        return YES;
+    }
+    case Attributes::CurrentConnections::Id: {
+        return YES;
+    }
+    case Attributes::GeneratedCommandList::Id: {
+        return YES;
+    }
+    case Attributes::AcceptedCommandList::Id: {
+        return YES;
+    }
+    case Attributes::EventList::Id: {
+        return YES;
+    }
+    case Attributes::AttributeList::Id: {
+        return YES;
+    }
+    case Attributes::FeatureMap::Id: {
+        return YES;
+    }
+    case Attributes::ClusterRevision::Id: {
+        return YES;
+    }
+    default: {
+        return NO;
+    }
+    }
+}
+static BOOL AttributeIsSpecifiedInChimeCluster(AttributeId aAttributeId)
+{
+    using namespace Clusters::Chime;
+    switch (aAttributeId) {
+    case Attributes::InstalledChimeSounds::Id: {
+        return YES;
+    }
+    case Attributes::ActiveChimeSoundId::Id: {
+        return YES;
+    }
+    case Attributes::Enabled::Id: {
+        return YES;
+    }
+    case Attributes::GeneratedCommandList::Id: {
+        return YES;
+    }
+    case Attributes::AcceptedCommandList::Id: {
+        return YES;
+    }
+    case Attributes::EventList::Id: {
+        return YES;
+    }
+    case Attributes::AttributeList::Id: {
+        return YES;
+    }
+    case Attributes::FeatureMap::Id: {
+        return YES;
+    }
+    case Attributes::ClusterRevision::Id: {
+        return YES;
+    }
+    default: {
+        return NO;
+    }
+    }
+}
 static BOOL AttributeIsSpecifiedInEcosystemInformationCluster(AttributeId aAttributeId)
 {
     using namespace Clusters::EcosystemInformation;
@@ -7209,6 +7563,24 @@ BOOL MTRAttributeIsSpecified(ClusterId aClusterId, AttributeId aAttributeId)
     case Clusters::ContentAppObserver::Id: {
         return AttributeIsSpecifiedInContentAppObserverCluster(aAttributeId);
     }
+    case Clusters::CameraAvStreamManagement::Id: {
+        return AttributeIsSpecifiedInCameraAVStreamManagementCluster(aAttributeId);
+    }
+    case Clusters::CameraAvSettingsUserLevelManagement::Id: {
+        return AttributeIsSpecifiedInCameraAVSettingsUserLevelManagementCluster(aAttributeId);
+    }
+    case Clusters::WebRTCTransportProvider::Id: {
+        return AttributeIsSpecifiedInWebRTCTransportProviderCluster(aAttributeId);
+    }
+    case Clusters::WebRTCTransportRequestor::Id: {
+        return AttributeIsSpecifiedInWebRTCTransportRequestorCluster(aAttributeId);
+    }
+    case Clusters::PushAvStreamTransport::Id: {
+        return AttributeIsSpecifiedInPushAVStreamTransportCluster(aAttributeId);
+    }
+    case Clusters::Chime::Id: {
+        return AttributeIsSpecifiedInChimeCluster(aAttributeId);
+    }
     case Clusters::EcosystemInformation::Id: {
         return AttributeIsSpecifiedInEcosystemInformationCluster(aAttributeId);
     }
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm b/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm
index de61e4dd22cf7d..a248b73bf9a18a 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm
@@ -17181,6 +17181,1263 @@ static id _Nullable DecodeAttributeValueForContentAppObserverCluster(AttributeId
     *aError = CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB;
     return nil;
 }
+static id _Nullable DecodeAttributeValueForCameraAVStreamManagementCluster(AttributeId aAttributeId, TLV::TLVReader & aReader, CHIP_ERROR * aError)
+{
+    using namespace Clusters::CameraAvStreamManagement;
+    switch (aAttributeId) {
+    case Attributes::MaxConcurrentVideoEncoders::Id: {
+        using TypeInfo = Attributes::MaxConcurrentVideoEncoders::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithUnsignedChar:cppValue];
+        return value;
+    }
+    case Attributes::MaxEncodedPixelRate::Id: {
+        using TypeInfo = Attributes::MaxEncodedPixelRate::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithUnsignedInt:cppValue];
+        return value;
+    }
+    case Attributes::VideoSensorParams::Id: {
+        using TypeInfo = Attributes::VideoSensorParams::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        MTRCameraAVStreamManagementClusterVideoSensorParamsStruct * _Nonnull value;
+        value = [MTRCameraAVStreamManagementClusterVideoSensorParamsStruct new];
+        value.sensorWidth = [NSNumber numberWithUnsignedShort:cppValue.sensorWidth];
+        value.sensorHeight = [NSNumber numberWithUnsignedShort:cppValue.sensorHeight];
+        value.hdrCapable = [NSNumber numberWithBool:cppValue.HDRCapable];
+        value.maxFPS = [NSNumber numberWithUnsignedShort:cppValue.maxFPS];
+        value.maxHDRFPS = [NSNumber numberWithUnsignedShort:cppValue.maxHDRFPS];
+        return value;
+    }
+    case Attributes::NightVisionCapable::Id: {
+        using TypeInfo = Attributes::NightVisionCapable::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithBool:cppValue];
+        return value;
+    }
+    case Attributes::MinViewPortWidth::Id: {
+        using TypeInfo = Attributes::MinViewPortWidth::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        MTRCameraAVStreamManagementClusterDimensionStruct * _Nonnull value;
+        value = [MTRCameraAVStreamManagementClusterDimensionStruct new];
+        return value;
+    }
+    case Attributes::MinViewPortHeight::Id: {
+        using TypeInfo = Attributes::MinViewPortHeight::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        MTRCameraAVStreamManagementClusterDimensionStruct * _Nonnull value;
+        value = [MTRCameraAVStreamManagementClusterDimensionStruct new];
+        return value;
+    }
+    case Attributes::RateDistortionTradeOffPoints::Id: {
+        using TypeInfo = Attributes::RateDistortionTradeOffPoints::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSArray * _Nonnull value;
+        { // Scope for our temporary variables
+            auto * array_0 = [NSMutableArray new];
+            auto iter_0 = cppValue.begin();
+            while (iter_0.Next()) {
+                auto & entry_0 = iter_0.GetValue();
+                MTRCameraAVStreamManagementClusterRateDistortionTradeOffPointsStruct * newElement_0;
+                newElement_0 = [MTRCameraAVStreamManagementClusterRateDistortionTradeOffPointsStruct new];
+                newElement_0.codec = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0.codec)];
+                newElement_0.resolution = [MTRCameraAVStreamManagementClusterDimensionStruct new];
+                newElement_0.minBitRate = [NSNumber numberWithUnsignedInt:entry_0.minBitRate];
+                [array_0 addObject:newElement_0];
+            }
+            CHIP_ERROR err = iter_0.GetStatus();
+            if (err != CHIP_NO_ERROR) {
+                *aError = err;
+                return nil;
+            }
+            value = array_0;
+        }
+        return value;
+    }
+    case Attributes::MaxPreRollBufferSize::Id: {
+        using TypeInfo = Attributes::MaxPreRollBufferSize::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithUnsignedInt:cppValue];
+        return value;
+    }
+    case Attributes::MicrophoneCapabilities::Id: {
+        using TypeInfo = Attributes::MicrophoneCapabilities::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        MTRCameraAVStreamManagementClusterAudioCapabilitiesStruct * _Nonnull value;
+        value = [MTRCameraAVStreamManagementClusterAudioCapabilitiesStruct new];
+        value.maxNumberOfChannels = [NSNumber numberWithUnsignedChar:cppValue.maxNumberOfChannels];
+        { // Scope for our temporary variables
+            auto * array_1 = [NSMutableArray new];
+            auto iter_1 = cppValue.supportedCodecs.begin();
+            while (iter_1.Next()) {
+                auto & entry_1 = iter_1.GetValue();
+                NSNumber * newElement_1;
+                newElement_1 = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_1)];
+                [array_1 addObject:newElement_1];
+            }
+            CHIP_ERROR err = iter_1.GetStatus();
+            if (err != CHIP_NO_ERROR) {
+                *aError = err;
+                return nil;
+            }
+            value.supportedCodecs = array_1;
+        }
+        { // Scope for our temporary variables
+            auto * array_1 = [NSMutableArray new];
+            auto iter_1 = cppValue.supportedSampleRates.begin();
+            while (iter_1.Next()) {
+                auto & entry_1 = iter_1.GetValue();
+                NSNumber * newElement_1;
+                newElement_1 = [NSNumber numberWithUnsignedInt:entry_1];
+                [array_1 addObject:newElement_1];
+            }
+            CHIP_ERROR err = iter_1.GetStatus();
+            if (err != CHIP_NO_ERROR) {
+                *aError = err;
+                return nil;
+            }
+            value.supportedSampleRates = array_1;
+        }
+        { // Scope for our temporary variables
+            auto * array_1 = [NSMutableArray new];
+            auto iter_1 = cppValue.supportedBitDepths.begin();
+            while (iter_1.Next()) {
+                auto & entry_1 = iter_1.GetValue();
+                NSNumber * newElement_1;
+                newElement_1 = [NSNumber numberWithUnsignedInt:entry_1];
+                [array_1 addObject:newElement_1];
+            }
+            CHIP_ERROR err = iter_1.GetStatus();
+            if (err != CHIP_NO_ERROR) {
+                *aError = err;
+                return nil;
+            }
+            value.supportedBitDepths = array_1;
+        }
+        return value;
+    }
+    case Attributes::SpeakerCapabilities::Id: {
+        using TypeInfo = Attributes::SpeakerCapabilities::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        MTRCameraAVStreamManagementClusterAudioCapabilitiesStruct * _Nonnull value;
+        value = [MTRCameraAVStreamManagementClusterAudioCapabilitiesStruct new];
+        value.maxNumberOfChannels = [NSNumber numberWithUnsignedChar:cppValue.maxNumberOfChannels];
+        { // Scope for our temporary variables
+            auto * array_1 = [NSMutableArray new];
+            auto iter_1 = cppValue.supportedCodecs.begin();
+            while (iter_1.Next()) {
+                auto & entry_1 = iter_1.GetValue();
+                NSNumber * newElement_1;
+                newElement_1 = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_1)];
+                [array_1 addObject:newElement_1];
+            }
+            CHIP_ERROR err = iter_1.GetStatus();
+            if (err != CHIP_NO_ERROR) {
+                *aError = err;
+                return nil;
+            }
+            value.supportedCodecs = array_1;
+        }
+        { // Scope for our temporary variables
+            auto * array_1 = [NSMutableArray new];
+            auto iter_1 = cppValue.supportedSampleRates.begin();
+            while (iter_1.Next()) {
+                auto & entry_1 = iter_1.GetValue();
+                NSNumber * newElement_1;
+                newElement_1 = [NSNumber numberWithUnsignedInt:entry_1];
+                [array_1 addObject:newElement_1];
+            }
+            CHIP_ERROR err = iter_1.GetStatus();
+            if (err != CHIP_NO_ERROR) {
+                *aError = err;
+                return nil;
+            }
+            value.supportedSampleRates = array_1;
+        }
+        { // Scope for our temporary variables
+            auto * array_1 = [NSMutableArray new];
+            auto iter_1 = cppValue.supportedBitDepths.begin();
+            while (iter_1.Next()) {
+                auto & entry_1 = iter_1.GetValue();
+                NSNumber * newElement_1;
+                newElement_1 = [NSNumber numberWithUnsignedInt:entry_1];
+                [array_1 addObject:newElement_1];
+            }
+            CHIP_ERROR err = iter_1.GetStatus();
+            if (err != CHIP_NO_ERROR) {
+                *aError = err;
+                return nil;
+            }
+            value.supportedBitDepths = array_1;
+        }
+        return value;
+    }
+    case Attributes::TwoWayTalkSupport::Id: {
+        using TypeInfo = Attributes::TwoWayTalkSupport::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithUnsignedChar:chip::to_underlying(cppValue)];
+        return value;
+    }
+    case Attributes::SupportedSnapshotParams::Id: {
+        using TypeInfo = Attributes::SupportedSnapshotParams::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSArray * _Nonnull value;
+        { // Scope for our temporary variables
+            auto * array_0 = [NSMutableArray new];
+            auto iter_0 = cppValue.begin();
+            while (iter_0.Next()) {
+                auto & entry_0 = iter_0.GetValue();
+                MTRCameraAVStreamManagementClusterSnapshotParamsStruct * newElement_0;
+                newElement_0 = [MTRCameraAVStreamManagementClusterSnapshotParamsStruct new];
+                newElement_0.resolution = [MTRCameraAVStreamManagementClusterDimensionStruct new];
+                newElement_0.maxFrameRate = [NSNumber numberWithUnsignedShort:entry_0.maxFrameRate];
+                newElement_0.imageCodec = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0.imageCodec)];
+                [array_0 addObject:newElement_0];
+            }
+            CHIP_ERROR err = iter_0.GetStatus();
+            if (err != CHIP_NO_ERROR) {
+                *aError = err;
+                return nil;
+            }
+            value = array_0;
+        }
+        return value;
+    }
+    case Attributes::HDRCapable::Id: {
+        using TypeInfo = Attributes::HDRCapable::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithBool:cppValue];
+        return value;
+    }
+    case Attributes::MaxNetworkBandwidth::Id: {
+        using TypeInfo = Attributes::MaxNetworkBandwidth::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithUnsignedInt:cppValue];
+        return value;
+    }
+    case Attributes::CurrentFrameRate::Id: {
+        using TypeInfo = Attributes::CurrentFrameRate::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithUnsignedShort:cppValue];
+        return value;
+    }
+    case Attributes::HDRMode::Id: {
+        using TypeInfo = Attributes::HDRMode::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithBool:cppValue];
+        return value;
+    }
+    case Attributes::CurrentVideoCodecs::Id: {
+        using TypeInfo = Attributes::CurrentVideoCodecs::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSArray * _Nonnull value;
+        { // Scope for our temporary variables
+            auto * array_0 = [NSMutableArray new];
+            auto iter_0 = cppValue.begin();
+            while (iter_0.Next()) {
+                auto & entry_0 = iter_0.GetValue();
+                NSNumber * newElement_0;
+                newElement_0 = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0)];
+                [array_0 addObject:newElement_0];
+            }
+            CHIP_ERROR err = iter_0.GetStatus();
+            if (err != CHIP_NO_ERROR) {
+                *aError = err;
+                return nil;
+            }
+            value = array_0;
+        }
+        return value;
+    }
+    case Attributes::CurrentSnapshotConfig::Id: {
+        using TypeInfo = Attributes::CurrentSnapshotConfig::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        MTRCameraAVStreamManagementClusterSnapshotParamsStruct * _Nonnull value;
+        value = [MTRCameraAVStreamManagementClusterSnapshotParamsStruct new];
+        value.resolution = [MTRCameraAVStreamManagementClusterDimensionStruct new];
+        value.maxFrameRate = [NSNumber numberWithUnsignedShort:cppValue.maxFrameRate];
+        value.imageCodec = [NSNumber numberWithUnsignedChar:chip::to_underlying(cppValue.imageCodec)];
+        return value;
+    }
+    case Attributes::FabricsUsingCamera::Id: {
+        using TypeInfo = Attributes::FabricsUsingCamera::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSArray * _Nonnull value;
+        { // Scope for our temporary variables
+            auto * array_0 = [NSMutableArray new];
+            auto iter_0 = cppValue.begin();
+            while (iter_0.Next()) {
+                auto & entry_0 = iter_0.GetValue();
+                NSNumber * newElement_0;
+                newElement_0 = [NSNumber numberWithUnsignedChar:entry_0];
+                [array_0 addObject:newElement_0];
+            }
+            CHIP_ERROR err = iter_0.GetStatus();
+            if (err != CHIP_NO_ERROR) {
+                *aError = err;
+                return nil;
+            }
+            value = array_0;
+        }
+        return value;
+    }
+    case Attributes::AllocatedVideoStreams::Id: {
+        using TypeInfo = Attributes::AllocatedVideoStreams::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSArray * _Nonnull value;
+        { // Scope for our temporary variables
+            auto * array_0 = [NSMutableArray new];
+            auto iter_0 = cppValue.begin();
+            while (iter_0.Next()) {
+                auto & entry_0 = iter_0.GetValue();
+                MTRCameraAVStreamManagementClusterVideoStreamStruct * newElement_0;
+                newElement_0 = [MTRCameraAVStreamManagementClusterVideoStreamStruct new];
+                newElement_0.videoStreamID = [NSNumber numberWithUnsignedShort:entry_0.videoStreamID];
+                newElement_0.streamType = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0.streamType)];
+                newElement_0.videoCodec = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0.videoCodec)];
+                newElement_0.minFrameRate = [NSNumber numberWithUnsignedShort:entry_0.minFrameRate];
+                newElement_0.maxFrameRate = [NSNumber numberWithUnsignedShort:entry_0.maxFrameRate];
+                newElement_0.minResolution = [MTRCameraAVStreamManagementClusterDimensionStruct new];
+                newElement_0.maxResolution = [MTRCameraAVStreamManagementClusterDimensionStruct new];
+                newElement_0.minBitRate = [NSNumber numberWithUnsignedShort:entry_0.minBitRate];
+                newElement_0.maxBitRate = [NSNumber numberWithUnsignedShort:entry_0.maxBitRate];
+                newElement_0.minFragmentLen = [NSNumber numberWithUnsignedShort:entry_0.minFragmentLen];
+                newElement_0.maxFragmentLen = [NSNumber numberWithUnsignedShort:entry_0.maxFragmentLen];
+                newElement_0.referenceCount = [NSNumber numberWithUnsignedChar:entry_0.referenceCount];
+                [array_0 addObject:newElement_0];
+            }
+            CHIP_ERROR err = iter_0.GetStatus();
+            if (err != CHIP_NO_ERROR) {
+                *aError = err;
+                return nil;
+            }
+            value = array_0;
+        }
+        return value;
+    }
+    case Attributes::AllocatedAudioStreams::Id: {
+        using TypeInfo = Attributes::AllocatedAudioStreams::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSArray * _Nonnull value;
+        { // Scope for our temporary variables
+            auto * array_0 = [NSMutableArray new];
+            auto iter_0 = cppValue.begin();
+            while (iter_0.Next()) {
+                auto & entry_0 = iter_0.GetValue();
+                MTRCameraAVStreamManagementClusterAudioStreamStruct * newElement_0;
+                newElement_0 = [MTRCameraAVStreamManagementClusterAudioStreamStruct new];
+                newElement_0.audioStreamID = [NSNumber numberWithUnsignedShort:entry_0.audioStreamID];
+                newElement_0.streamType = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0.streamType)];
+                newElement_0.audioCodec = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0.audioCodec)];
+                newElement_0.channelCount = [NSNumber numberWithUnsignedChar:entry_0.channelCount];
+                newElement_0.sampleRate = [NSNumber numberWithUnsignedInt:entry_0.sampleRate];
+                newElement_0.bitRate = [NSNumber numberWithUnsignedInt:entry_0.bitRate];
+                newElement_0.bitDepth = [NSNumber numberWithUnsignedChar:entry_0.bitDepth];
+                newElement_0.referenceCount = [NSNumber numberWithUnsignedChar:entry_0.referenceCount];
+                [array_0 addObject:newElement_0];
+            }
+            CHIP_ERROR err = iter_0.GetStatus();
+            if (err != CHIP_NO_ERROR) {
+                *aError = err;
+                return nil;
+            }
+            value = array_0;
+        }
+        return value;
+    }
+    case Attributes::AllocatedSnapshotStreams::Id: {
+        using TypeInfo = Attributes::AllocatedSnapshotStreams::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSArray * _Nonnull value;
+        { // Scope for our temporary variables
+            auto * array_0 = [NSMutableArray new];
+            auto iter_0 = cppValue.begin();
+            while (iter_0.Next()) {
+                auto & entry_0 = iter_0.GetValue();
+                MTRCameraAVStreamManagementClusterSnapshotStreamStruct * newElement_0;
+                newElement_0 = [MTRCameraAVStreamManagementClusterSnapshotStreamStruct new];
+                newElement_0.snapshotStreamID = [NSNumber numberWithUnsignedShort:entry_0.snapshotStreamID];
+                newElement_0.imageCodec = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0.imageCodec)];
+                newElement_0.frameRate = [NSNumber numberWithUnsignedShort:entry_0.frameRate];
+                newElement_0.bitRate = [NSNumber numberWithUnsignedInt:entry_0.bitRate];
+                newElement_0.minResolution = [MTRCameraAVStreamManagementClusterDimensionStruct new];
+                newElement_0.maxResolution = [MTRCameraAVStreamManagementClusterDimensionStruct new];
+                newElement_0.quality = [NSNumber numberWithUnsignedChar:entry_0.quality];
+                newElement_0.referenceCount = [NSNumber numberWithUnsignedChar:entry_0.referenceCount];
+                [array_0 addObject:newElement_0];
+            }
+            CHIP_ERROR err = iter_0.GetStatus();
+            if (err != CHIP_NO_ERROR) {
+                *aError = err;
+                return nil;
+            }
+            value = array_0;
+        }
+        return value;
+    }
+    case Attributes::RankedVideoStreamPrioritiesList::Id: {
+        using TypeInfo = Attributes::RankedVideoStreamPrioritiesList::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSArray * _Nonnull value;
+        { // Scope for our temporary variables
+            auto * array_0 = [NSMutableArray new];
+            auto iter_0 = cppValue.begin();
+            while (iter_0.Next()) {
+                auto & entry_0 = iter_0.GetValue();
+                NSNumber * newElement_0;
+                newElement_0 = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0)];
+                [array_0 addObject:newElement_0];
+            }
+            CHIP_ERROR err = iter_0.GetStatus();
+            if (err != CHIP_NO_ERROR) {
+                *aError = err;
+                return nil;
+            }
+            value = array_0;
+        }
+        return value;
+    }
+    case Attributes::SoftRecordingPrivacyModeSetting::Id: {
+        using TypeInfo = Attributes::SoftRecordingPrivacyModeSetting::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithBool:cppValue];
+        return value;
+    }
+    case Attributes::SoftLivestreamPrivacyModeSetting::Id: {
+        using TypeInfo = Attributes::SoftLivestreamPrivacyModeSetting::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithBool:cppValue];
+        return value;
+    }
+    case Attributes::HardPrivacyMode::Id: {
+        using TypeInfo = Attributes::HardPrivacyMode::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithBool:cppValue];
+        return value;
+    }
+    case Attributes::NightVision::Id: {
+        using TypeInfo = Attributes::NightVision::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithUnsignedChar:chip::to_underlying(cppValue)];
+        return value;
+    }
+    case Attributes::NightVisionIllum::Id: {
+        using TypeInfo = Attributes::NightVisionIllum::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithUnsignedChar:chip::to_underlying(cppValue)];
+        return value;
+    }
+    case Attributes::Awb::Id: {
+        using TypeInfo = Attributes::Awb::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithBool:cppValue];
+        return value;
+    }
+    case Attributes::ShutterSpeed::Id: {
+        using TypeInfo = Attributes::ShutterSpeed::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithBool:cppValue];
+        return value;
+    }
+    case Attributes::Iso::Id: {
+        using TypeInfo = Attributes::Iso::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithBool:cppValue];
+        return value;
+    }
+    case Attributes::Viewport::Id: {
+        using TypeInfo = Attributes::Viewport::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        MTRCameraAVStreamManagementClusterViewportStruct * _Nonnull value;
+        value = [MTRCameraAVStreamManagementClusterViewportStruct new];
+        value.x1 = [NSNumber numberWithUnsignedShort:cppValue.x1];
+        value.y1 = [NSNumber numberWithUnsignedShort:cppValue.y1];
+        value.x2 = [NSNumber numberWithUnsignedShort:cppValue.x2];
+        value.y2 = [NSNumber numberWithUnsignedShort:cppValue.y2];
+        return value;
+    }
+    case Attributes::SpkrOnOff::Id: {
+        using TypeInfo = Attributes::SpkrOnOff::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithBool:cppValue];
+        return value;
+    }
+    case Attributes::SpkrVolumeLevel::Id: {
+        using TypeInfo = Attributes::SpkrVolumeLevel::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithUnsignedChar:cppValue];
+        return value;
+    }
+    case Attributes::SpkrMaxLevel::Id: {
+        using TypeInfo = Attributes::SpkrMaxLevel::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithUnsignedChar:cppValue];
+        return value;
+    }
+    case Attributes::SpkrMinLevel::Id: {
+        using TypeInfo = Attributes::SpkrMinLevel::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithUnsignedChar:cppValue];
+        return value;
+    }
+    case Attributes::MicOnOff::Id: {
+        using TypeInfo = Attributes::MicOnOff::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithBool:cppValue];
+        return value;
+    }
+    case Attributes::MicCurrentLevel::Id: {
+        using TypeInfo = Attributes::MicCurrentLevel::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithUnsignedChar:cppValue];
+        return value;
+    }
+    case Attributes::MicMaxLevel::Id: {
+        using TypeInfo = Attributes::MicMaxLevel::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithUnsignedChar:cppValue];
+        return value;
+    }
+    case Attributes::MicMinLevel::Id: {
+        using TypeInfo = Attributes::MicMinLevel::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithUnsignedChar:cppValue];
+        return value;
+    }
+    case Attributes::MicAGC::Id: {
+        using TypeInfo = Attributes::MicAGC::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithBool:cppValue];
+        return value;
+    }
+    case Attributes::ImageRotation::Id: {
+        using TypeInfo = Attributes::ImageRotation::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithUnsignedShort:cppValue];
+        return value;
+    }
+    case Attributes::ImageFlipHorizontal::Id: {
+        using TypeInfo = Attributes::ImageFlipHorizontal::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithBool:cppValue];
+        return value;
+    }
+    case Attributes::ImageFlipVertical::Id: {
+        using TypeInfo = Attributes::ImageFlipVertical::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithBool:cppValue];
+        return value;
+    }
+    case Attributes::LocalVideoRecordingEnabled::Id: {
+        using TypeInfo = Attributes::LocalVideoRecordingEnabled::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithBool:cppValue];
+        return value;
+    }
+    case Attributes::LocalSnapshotRecordingEnabled::Id: {
+        using TypeInfo = Attributes::LocalSnapshotRecordingEnabled::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithBool:cppValue];
+        return value;
+    }
+    case Attributes::StatusLight::Id: {
+        using TypeInfo = Attributes::StatusLight::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithBool:cppValue];
+        return value;
+    }
+    case Attributes::StatusLightBrightness::Id: {
+        using TypeInfo = Attributes::StatusLightBrightness::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithUnsignedChar:chip::to_underlying(cppValue)];
+        return value;
+    }
+    case Attributes::DepthSensorStatus::Id: {
+        using TypeInfo = Attributes::DepthSensorStatus::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithUnsignedChar:chip::to_underlying(cppValue)];
+        return value;
+    }
+    case Attributes::WatermarkEnabled::Id: {
+        using TypeInfo = Attributes::WatermarkEnabled::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSArray * _Nonnull value;
+        { // Scope for our temporary variables
+            auto * array_0 = [NSMutableArray new];
+            auto iter_0 = cppValue.begin();
+            while (iter_0.Next()) {
+                auto & entry_0 = iter_0.GetValue();
+                MTRCameraAVStreamManagementClusterPerStreamStruct * newElement_0;
+                newElement_0 = [MTRCameraAVStreamManagementClusterPerStreamStruct new];
+                newElement_0.streamID = [NSNumber numberWithUnsignedShort:entry_0.streamID];
+                newElement_0.onOff = [NSNumber numberWithBool:entry_0.onOff];
+                [array_0 addObject:newElement_0];
+            }
+            CHIP_ERROR err = iter_0.GetStatus();
+            if (err != CHIP_NO_ERROR) {
+                *aError = err;
+                return nil;
+            }
+            value = array_0;
+        }
+        return value;
+    }
+    case Attributes::OSDEnabled::Id: {
+        using TypeInfo = Attributes::OSDEnabled::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSArray * _Nonnull value;
+        { // Scope for our temporary variables
+            auto * array_0 = [NSMutableArray new];
+            auto iter_0 = cppValue.begin();
+            while (iter_0.Next()) {
+                auto & entry_0 = iter_0.GetValue();
+                MTRCameraAVStreamManagementClusterPerStreamStruct * newElement_0;
+                newElement_0 = [MTRCameraAVStreamManagementClusterPerStreamStruct new];
+                newElement_0.streamID = [NSNumber numberWithUnsignedShort:entry_0.streamID];
+                newElement_0.onOff = [NSNumber numberWithBool:entry_0.onOff];
+                [array_0 addObject:newElement_0];
+            }
+            CHIP_ERROR err = iter_0.GetStatus();
+            if (err != CHIP_NO_ERROR) {
+                *aError = err;
+                return nil;
+            }
+            value = array_0;
+        }
+        return value;
+    }
+    default: {
+        break;
+    }
+    }
+
+    *aError = CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB;
+    return nil;
+}
+static id _Nullable DecodeAttributeValueForCameraAVSettingsUserLevelManagementCluster(AttributeId aAttributeId, TLV::TLVReader & aReader, CHIP_ERROR * aError)
+{
+    using namespace Clusters::CameraAvSettingsUserLevelManagement;
+    switch (aAttributeId) {
+    case Attributes::Mptz::Id: {
+        using TypeInfo = Attributes::Mptz::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        MTRCameraAVSettingsUserLevelManagementClusterMPTZStruct * _Nonnull value;
+        value = [MTRCameraAVSettingsUserLevelManagementClusterMPTZStruct new];
+        if (cppValue.MPan.HasValue()) {
+            if (cppValue.MPan.Value().IsNull()) {
+                value.mPan = nil;
+            } else {
+                value.mPan = [NSNumber numberWithShort:cppValue.MPan.Value().Value()];
+            }
+        } else {
+            value.mPan = nil;
+        }
+        if (cppValue.MTilt.HasValue()) {
+            if (cppValue.MTilt.Value().IsNull()) {
+                value.mTilt = nil;
+            } else {
+                value.mTilt = [NSNumber numberWithChar:cppValue.MTilt.Value().Value()];
+            }
+        } else {
+            value.mTilt = nil;
+        }
+        if (cppValue.MZoom.HasValue()) {
+            if (cppValue.MZoom.Value().IsNull()) {
+                value.mZoom = nil;
+            } else {
+                value.mZoom = [NSNumber numberWithUnsignedShort:cppValue.MZoom.Value().Value()];
+            }
+        } else {
+            value.mZoom = nil;
+        }
+        return value;
+    }
+    case Attributes::MaxPresets::Id: {
+        using TypeInfo = Attributes::MaxPresets::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithUnsignedChar:cppValue];
+        return value;
+    }
+    case Attributes::PresetMptzTable::Id: {
+        using TypeInfo = Attributes::PresetMptzTable::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSArray * _Nonnull value;
+        { // Scope for our temporary variables
+            auto * array_0 = [NSMutableArray new];
+            auto iter_0 = cppValue.begin();
+            while (iter_0.Next()) {
+                auto & entry_0 = iter_0.GetValue();
+                MTRCameraAVSettingsUserLevelManagementClusterMPTZStruct * newElement_0;
+                newElement_0 = [MTRCameraAVSettingsUserLevelManagementClusterMPTZStruct new];
+                if (entry_0.MPan.HasValue()) {
+                    if (entry_0.MPan.Value().IsNull()) {
+                        newElement_0.mPan = nil;
+                    } else {
+                        newElement_0.mPan = [NSNumber numberWithShort:entry_0.MPan.Value().Value()];
+                    }
+                } else {
+                    newElement_0.mPan = nil;
+                }
+                if (entry_0.MTilt.HasValue()) {
+                    if (entry_0.MTilt.Value().IsNull()) {
+                        newElement_0.mTilt = nil;
+                    } else {
+                        newElement_0.mTilt = [NSNumber numberWithChar:entry_0.MTilt.Value().Value()];
+                    }
+                } else {
+                    newElement_0.mTilt = nil;
+                }
+                if (entry_0.MZoom.HasValue()) {
+                    if (entry_0.MZoom.Value().IsNull()) {
+                        newElement_0.mZoom = nil;
+                    } else {
+                        newElement_0.mZoom = [NSNumber numberWithUnsignedShort:entry_0.MZoom.Value().Value()];
+                    }
+                } else {
+                    newElement_0.mZoom = nil;
+                }
+                [array_0 addObject:newElement_0];
+            }
+            CHIP_ERROR err = iter_0.GetStatus();
+            if (err != CHIP_NO_ERROR) {
+                *aError = err;
+                return nil;
+            }
+            value = array_0;
+        }
+        return value;
+    }
+    case Attributes::MptzRelativeMove::Id: {
+        using TypeInfo = Attributes::MptzRelativeMove::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithBool:cppValue];
+        return value;
+    }
+    case Attributes::DptzRelativeMove::Id: {
+        using TypeInfo = Attributes::DptzRelativeMove::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSArray * _Nonnull value;
+        { // Scope for our temporary variables
+            auto * array_0 = [NSMutableArray new];
+            auto iter_0 = cppValue.begin();
+            while (iter_0.Next()) {
+                auto & entry_0 = iter_0.GetValue();
+                MTRCameraAVSettingsUserLevelManagementClusterPerStreamStruct * newElement_0;
+                newElement_0 = [MTRCameraAVSettingsUserLevelManagementClusterPerStreamStruct new];
+                newElement_0.streamID = [NSNumber numberWithUnsignedShort:entry_0.streamID];
+                newElement_0.onOff = [NSNumber numberWithBool:entry_0.onOff];
+                [array_0 addObject:newElement_0];
+            }
+            CHIP_ERROR err = iter_0.GetStatus();
+            if (err != CHIP_NO_ERROR) {
+                *aError = err;
+                return nil;
+            }
+            value = array_0;
+        }
+        return value;
+    }
+    default: {
+        break;
+    }
+    }
+
+    *aError = CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB;
+    return nil;
+}
+static id _Nullable DecodeAttributeValueForWebRTCTransportProviderCluster(AttributeId aAttributeId, TLV::TLVReader & aReader, CHIP_ERROR * aError)
+{
+    using namespace Clusters::WebRTCTransportProvider;
+    switch (aAttributeId) {
+    case Attributes::CurrentSessions::Id: {
+        using TypeInfo = Attributes::CurrentSessions::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSArray * _Nonnull value;
+        { // Scope for our temporary variables
+            auto * array_0 = [NSMutableArray new];
+            auto iter_0 = cppValue.begin();
+            while (iter_0.Next()) {
+                auto & entry_0 = iter_0.GetValue();
+                MTRWebRTCTransportProviderClusterWebRTCSessionStruct * newElement_0;
+                newElement_0 = [MTRWebRTCTransportProviderClusterWebRTCSessionStruct new];
+                newElement_0.id = [NSNumber numberWithUnsignedShort:entry_0.id];
+                newElement_0.peerNodeId = [NSNumber numberWithUnsignedLongLong:entry_0.peerNodeId];
+                newElement_0.peerFabricIndex = [NSNumber numberWithUnsignedChar:entry_0.peerFabricIndex];
+                newElement_0.streamType = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0.streamType)];
+                if (entry_0.videoStreamID.IsNull()) {
+                    newElement_0.videoStreamID = nil;
+                } else {
+                    newElement_0.videoStreamID = [NSNumber numberWithUnsignedShort:entry_0.videoStreamID.Value()];
+                }
+                if (entry_0.audioStreamID.IsNull()) {
+                    newElement_0.audioStreamID = nil;
+                } else {
+                    newElement_0.audioStreamID = [NSNumber numberWithUnsignedShort:entry_0.audioStreamID.Value()];
+                }
+                newElement_0.metadataOptions = [NSNumber numberWithUnsignedChar:entry_0.metadataOptions.Raw()];
+                [array_0 addObject:newElement_0];
+            }
+            CHIP_ERROR err = iter_0.GetStatus();
+            if (err != CHIP_NO_ERROR) {
+                *aError = err;
+                return nil;
+            }
+            value = array_0;
+        }
+        return value;
+    }
+    default: {
+        break;
+    }
+    }
+
+    *aError = CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB;
+    return nil;
+}
+static id _Nullable DecodeAttributeValueForWebRTCTransportRequestorCluster(AttributeId aAttributeId, TLV::TLVReader & aReader, CHIP_ERROR * aError)
+{
+    using namespace Clusters::WebRTCTransportRequestor;
+    switch (aAttributeId) {
+    case Attributes::CurrentSessions::Id: {
+        using TypeInfo = Attributes::CurrentSessions::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSArray * _Nonnull value;
+        { // Scope for our temporary variables
+            auto * array_0 = [NSMutableArray new];
+            auto iter_0 = cppValue.begin();
+            while (iter_0.Next()) {
+                auto & entry_0 = iter_0.GetValue();
+                MTRWebRTCTransportRequestorClusterWebRTCSessionStruct * newElement_0;
+                newElement_0 = [MTRWebRTCTransportRequestorClusterWebRTCSessionStruct new];
+                newElement_0.id = [NSNumber numberWithUnsignedShort:entry_0.id];
+                newElement_0.peerNodeId = [NSNumber numberWithUnsignedLongLong:entry_0.peerNodeId];
+                newElement_0.peerFabricIndex = [NSNumber numberWithUnsignedChar:entry_0.peerFabricIndex];
+                newElement_0.streamType = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0.streamType)];
+                if (entry_0.videoStreamID.IsNull()) {
+                    newElement_0.videoStreamID = nil;
+                } else {
+                    newElement_0.videoStreamID = [NSNumber numberWithUnsignedShort:entry_0.videoStreamID.Value()];
+                }
+                if (entry_0.audioStreamID.IsNull()) {
+                    newElement_0.audioStreamID = nil;
+                } else {
+                    newElement_0.audioStreamID = [NSNumber numberWithUnsignedShort:entry_0.audioStreamID.Value()];
+                }
+                newElement_0.metadataOptions = [NSNumber numberWithUnsignedChar:entry_0.metadataOptions.Raw()];
+                [array_0 addObject:newElement_0];
+            }
+            CHIP_ERROR err = iter_0.GetStatus();
+            if (err != CHIP_NO_ERROR) {
+                *aError = err;
+                return nil;
+            }
+            value = array_0;
+        }
+        return value;
+    }
+    default: {
+        break;
+    }
+    }
+
+    *aError = CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB;
+    return nil;
+}
+static id _Nullable DecodeAttributeValueForPushAVStreamTransportCluster(AttributeId aAttributeId, TLV::TLVReader & aReader, CHIP_ERROR * aError)
+{
+    using namespace Clusters::PushAvStreamTransport;
+    switch (aAttributeId) {
+    case Attributes::SupportedContainerFormats::Id: {
+        using TypeInfo = Attributes::SupportedContainerFormats::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithUnsignedChar:cppValue.Raw()];
+        return value;
+    }
+    case Attributes::SupportedIngestMethods::Id: {
+        using TypeInfo = Attributes::SupportedIngestMethods::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithUnsignedChar:cppValue.Raw()];
+        return value;
+    }
+    case Attributes::CurrentConnections::Id: {
+        using TypeInfo = Attributes::CurrentConnections::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSArray * _Nonnull value;
+        { // Scope for our temporary variables
+            auto * array_0 = [NSMutableArray new];
+            auto iter_0 = cppValue.begin();
+            while (iter_0.Next()) {
+                auto & entry_0 = iter_0.GetValue();
+                NSNumber * newElement_0;
+                newElement_0 = [NSNumber numberWithUnsignedShort:entry_0];
+                [array_0 addObject:newElement_0];
+            }
+            CHIP_ERROR err = iter_0.GetStatus();
+            if (err != CHIP_NO_ERROR) {
+                *aError = err;
+                return nil;
+            }
+            value = array_0;
+        }
+        return value;
+    }
+    default: {
+        break;
+    }
+    }
+
+    *aError = CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB;
+    return nil;
+}
+static id _Nullable DecodeAttributeValueForChimeCluster(AttributeId aAttributeId, TLV::TLVReader & aReader, CHIP_ERROR * aError)
+{
+    using namespace Clusters::Chime;
+    switch (aAttributeId) {
+    case Attributes::InstalledChimeSounds::Id: {
+        using TypeInfo = Attributes::InstalledChimeSounds::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSArray * _Nonnull value;
+        { // Scope for our temporary variables
+            auto * array_0 = [NSMutableArray new];
+            auto iter_0 = cppValue.begin();
+            while (iter_0.Next()) {
+                auto & entry_0 = iter_0.GetValue();
+                MTRChimeClusterChimeSoundStruct * newElement_0;
+                newElement_0 = [MTRChimeClusterChimeSoundStruct new];
+                newElement_0.chimeId = [NSNumber numberWithUnsignedChar:entry_0.chimeId];
+                newElement_0.name = AsString(entry_0.name);
+                if (newElement_0.name == nil) {
+                    CHIP_ERROR err = CHIP_ERROR_INVALID_ARGUMENT;
+                    *aError = err;
+                    return nil;
+                }
+                [array_0 addObject:newElement_0];
+            }
+            CHIP_ERROR err = iter_0.GetStatus();
+            if (err != CHIP_NO_ERROR) {
+                *aError = err;
+                return nil;
+            }
+            value = array_0;
+        }
+        return value;
+    }
+    case Attributes::ActiveChimeSoundId::Id: {
+        using TypeInfo = Attributes::ActiveChimeSoundId::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithUnsignedChar:cppValue];
+        return value;
+    }
+    case Attributes::Enabled::Id: {
+        using TypeInfo = Attributes::Enabled::TypeInfo;
+        TypeInfo::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+        NSNumber * _Nonnull value;
+        value = [NSNumber numberWithBool:cppValue];
+        return value;
+    }
+    default: {
+        break;
+    }
+    }
+
+    *aError = CHIP_ERROR_IM_MALFORMED_ATTRIBUTE_PATH_IB;
+    return nil;
+}
 static id _Nullable DecodeAttributeValueForEcosystemInformationCluster(AttributeId aAttributeId, TLV::TLVReader & aReader, CHIP_ERROR * aError)
 {
     using namespace Clusters::EcosystemInformation;
@@ -20719,6 +21976,24 @@ id _Nullable MTRDecodeAttributeValue(const ConcreteAttributePath & aPath, TLV::T
     case Clusters::ContentAppObserver::Id: {
         return DecodeAttributeValueForContentAppObserverCluster(aPath.mAttributeId, aReader, aError);
     }
+    case Clusters::CameraAvStreamManagement::Id: {
+        return DecodeAttributeValueForCameraAVStreamManagementCluster(aPath.mAttributeId, aReader, aError);
+    }
+    case Clusters::CameraAvSettingsUserLevelManagement::Id: {
+        return DecodeAttributeValueForCameraAVSettingsUserLevelManagementCluster(aPath.mAttributeId, aReader, aError);
+    }
+    case Clusters::WebRTCTransportProvider::Id: {
+        return DecodeAttributeValueForWebRTCTransportProviderCluster(aPath.mAttributeId, aReader, aError);
+    }
+    case Clusters::WebRTCTransportRequestor::Id: {
+        return DecodeAttributeValueForWebRTCTransportRequestorCluster(aPath.mAttributeId, aReader, aError);
+    }
+    case Clusters::PushAvStreamTransport::Id: {
+        return DecodeAttributeValueForPushAVStreamTransportCluster(aPath.mAttributeId, aReader, aError);
+    }
+    case Clusters::Chime::Id: {
+        return DecodeAttributeValueForChimeCluster(aPath.mAttributeId, aReader, aError);
+    }
     case Clusters::EcosystemInformation::Id: {
         return DecodeAttributeValueForEcosystemInformationCluster(aPath.mAttributeId, aReader, aError);
     }
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h
index 60c65ac382561d..f2f38812e621df 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h
@@ -15106,6 +15106,1031 @@ MTR_PROVISIONALLY_AVAILABLE
 
 @end
 
+/**
+ * Cluster Camera AV Stream Management
+ *
+ * This cluster is used to allow clients to manage, control, and configure various
+      audio, video, and snapshot streams on a camera.
+ */
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRBaseClusterCameraAVStreamManagement : MTRGenericBaseCluster
+
+/**
+ * Command AudioStreamAllocate
+ *
+ * This command SHALL allocate an audio stream on the camera and return an allocated audio stream identifier.
+ */
+- (void)audioStreamAllocateWithParams:(MTRCameraAVStreamManagementClusterAudioStreamAllocateParams *)params completion:(void (^)(MTRCameraAVStreamManagementClusterAudioStreamAllocateResponseParams * _Nullable data, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Command AudioStreamDeallocate
+ *
+ * This command SHALL deallocate an audio stream on the camera, corresponding to the given audio stream identifier.
+ */
+- (void)audioStreamDeallocateWithParams:(MTRCameraAVStreamManagementClusterAudioStreamDeallocateParams *)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Command VideoStreamAllocate
+ *
+ * This command SHALL allocate a video stream on the camera and return an allocated video stream identifier.
+ */
+- (void)videoStreamAllocateWithParams:(MTRCameraAVStreamManagementClusterVideoStreamAllocateParams *)params completion:(void (^)(MTRCameraAVStreamManagementClusterVideoStreamAllocateResponseParams * _Nullable data, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Command VideoStreamModify
+ *
+ * This command SHALL be used to modify the resolution of a stream specified by the VideoStreamID.
+ */
+- (void)videoStreamModifyWithParams:(MTRCameraAVStreamManagementClusterVideoStreamModifyParams *)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Command VideoStreamDeallocate
+ *
+ * This command SHALL deallocate a video stream on the camera, corresponding to the given video stream identifier.
+ */
+- (void)videoStreamDeallocateWithParams:(MTRCameraAVStreamManagementClusterVideoStreamDeallocateParams *)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Command SnapshotStreamAllocate
+ *
+ * This command SHALL allocate a snapshot stream on the device and return an allocated snapshot stream identifier.
+ */
+- (void)snapshotStreamAllocateWithParams:(MTRCameraAVStreamManagementClusterSnapshotStreamAllocateParams *)params completion:(void (^)(MTRCameraAVStreamManagementClusterSnapshotStreamAllocateResponseParams * _Nullable data, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Command SnapshotStreamDeallocate
+ *
+ * This command SHALL deallocate an snapshot stream on the camera, corresponding to the given snapshot stream identifier.
+ */
+- (void)snapshotStreamDeallocateWithParams:(MTRCameraAVStreamManagementClusterSnapshotStreamDeallocateParams *)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Command SetStreamPriority
+ *
+ *
+ */
+- (void)setStreamPriorityWithParams:(MTRCameraAVStreamManagementClusterSetStreamPriorityParams * _Nullable)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)setStreamPriorityWithCompletion:(MTRStatusCompletion)completion
+    MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Command CaptureSnapshot
+ *
+ * This command SHALL return a Snapshot from the camera.
+ */
+- (void)captureSnapshotWithParams:(MTRCameraAVStreamManagementClusterCaptureSnapshotParams *)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Command SetViewport
+ *
+ * This command SHALL set the viewport in all video streams.
+ */
+- (void)setViewportWithParams:(MTRCameraAVStreamManagementClusterSetViewportParams *)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Command SetImageRotation
+ *
+ * The data fields for this command SHALL be as follows:
+ */
+- (void)setImageRotationWithParams:(MTRCameraAVStreamManagementClusterSetImageRotationParams *)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Command SetImageFlipHorizontal
+ *
+ * The data fields for this command SHALL be as follows:
+ */
+- (void)setImageFlipHorizontalWithParams:(MTRCameraAVStreamManagementClusterSetImageFlipHorizontalParams *)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Command SetImageFlipVertical
+ *
+ * The data fields for this command SHALL be as follows:
+ */
+- (void)setImageFlipVerticalWithParams:(MTRCameraAVStreamManagementClusterSetImageFlipVerticalParams *)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeMaxConcurrentVideoEncodersWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeMaxConcurrentVideoEncodersWithParams:(MTRSubscribeParams *)params
+                                       subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                                 reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeMaxConcurrentVideoEncodersWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeMaxEncodedPixelRateWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeMaxEncodedPixelRateWithParams:(MTRSubscribeParams *)params
+                                subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                          reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeMaxEncodedPixelRateWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeVideoSensorParamsWithCompletion:(void (^)(MTRCameraAVStreamManagementClusterVideoSensorParamsStruct * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeVideoSensorParamsWithParams:(MTRSubscribeParams *)params
+                              subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                        reportHandler:(void (^)(MTRCameraAVStreamManagementClusterVideoSensorParamsStruct * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeVideoSensorParamsWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(MTRCameraAVStreamManagementClusterVideoSensorParamsStruct * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeNightVisionCapableWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeNightVisionCapableWithParams:(MTRSubscribeParams *)params
+                               subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                         reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeNightVisionCapableWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeMinViewPortWidthWithCompletion:(void (^)(MTRCameraAVStreamManagementClusterDimensionStruct * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeMinViewPortWidthWithParams:(MTRSubscribeParams *)params
+                             subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                       reportHandler:(void (^)(MTRCameraAVStreamManagementClusterDimensionStruct * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeMinViewPortWidthWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(MTRCameraAVStreamManagementClusterDimensionStruct * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeMinViewPortHeightWithCompletion:(void (^)(MTRCameraAVStreamManagementClusterDimensionStruct * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeMinViewPortHeightWithParams:(MTRSubscribeParams *)params
+                              subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                        reportHandler:(void (^)(MTRCameraAVStreamManagementClusterDimensionStruct * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeMinViewPortHeightWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(MTRCameraAVStreamManagementClusterDimensionStruct * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeRateDistortionTradeOffPointsWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeRateDistortionTradeOffPointsWithParams:(MTRSubscribeParams *)params
+                                         subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                                   reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeRateDistortionTradeOffPointsWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeMaxPreRollBufferSizeWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeMaxPreRollBufferSizeWithParams:(MTRSubscribeParams *)params
+                                 subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                           reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeMaxPreRollBufferSizeWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeMicrophoneCapabilitiesWithCompletion:(void (^)(MTRCameraAVStreamManagementClusterAudioCapabilitiesStruct * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeMicrophoneCapabilitiesWithParams:(MTRSubscribeParams *)params
+                                   subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                             reportHandler:(void (^)(MTRCameraAVStreamManagementClusterAudioCapabilitiesStruct * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeMicrophoneCapabilitiesWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(MTRCameraAVStreamManagementClusterAudioCapabilitiesStruct * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeSpeakerCapabilitiesWithCompletion:(void (^)(MTRCameraAVStreamManagementClusterAudioCapabilitiesStruct * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeSpeakerCapabilitiesWithParams:(MTRSubscribeParams *)params
+                                subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                          reportHandler:(void (^)(MTRCameraAVStreamManagementClusterAudioCapabilitiesStruct * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeSpeakerCapabilitiesWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(MTRCameraAVStreamManagementClusterAudioCapabilitiesStruct * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeTwoWayTalkSupportWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeTwoWayTalkSupportWithParams:(MTRSubscribeParams *)params
+                              subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                        reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeTwoWayTalkSupportWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeSupportedSnapshotParamsWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeSupportedSnapshotParamsWithParams:(MTRSubscribeParams *)params
+                                    subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                              reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeSupportedSnapshotParamsWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeHDRCapableWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeHDRCapableWithParams:(MTRSubscribeParams *)params
+                       subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                 reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeHDRCapableWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeMaxNetworkBandwidthWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeMaxNetworkBandwidthWithParams:(MTRSubscribeParams *)params
+                                subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                          reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeMaxNetworkBandwidthWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeCurrentFrameRateWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeCurrentFrameRateWithParams:(MTRSubscribeParams *)params
+                             subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                       reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeCurrentFrameRateWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeHDRModeWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeHDRModeWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeHDRModeWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeHDRModeWithParams:(MTRSubscribeParams *)params
+                    subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                              reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeHDRModeWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeCurrentVideoCodecsWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeCurrentVideoCodecsWithParams:(MTRSubscribeParams *)params
+                               subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                         reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeCurrentVideoCodecsWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeCurrentSnapshotConfigWithCompletion:(void (^)(MTRCameraAVStreamManagementClusterSnapshotParamsStruct * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeCurrentSnapshotConfigWithParams:(MTRSubscribeParams *)params
+                                  subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                            reportHandler:(void (^)(MTRCameraAVStreamManagementClusterSnapshotParamsStruct * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeCurrentSnapshotConfigWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(MTRCameraAVStreamManagementClusterSnapshotParamsStruct * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeFabricsUsingCameraWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeFabricsUsingCameraWithParams:(MTRSubscribeParams *)params
+                               subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                         reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeFabricsUsingCameraWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeAllocatedVideoStreamsWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeAllocatedVideoStreamsWithParams:(MTRSubscribeParams *)params
+                                  subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                            reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeAllocatedVideoStreamsWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeAllocatedAudioStreamsWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeAllocatedAudioStreamsWithParams:(MTRSubscribeParams *)params
+                                  subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                            reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeAllocatedAudioStreamsWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeAllocatedSnapshotStreamsWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeAllocatedSnapshotStreamsWithParams:(MTRSubscribeParams *)params
+                                     subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                               reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeAllocatedSnapshotStreamsWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeRankedVideoStreamPrioritiesListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeRankedVideoStreamPrioritiesListWithValue:(NSArray * _Nonnull)value completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeRankedVideoStreamPrioritiesListWithValue:(NSArray * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeRankedVideoStreamPrioritiesListWithParams:(MTRSubscribeParams *)params
+                                            subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                                      reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeRankedVideoStreamPrioritiesListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeSoftRecordingPrivacyModeSettingWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeSoftRecordingPrivacyModeSettingWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeSoftRecordingPrivacyModeSettingWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeSoftRecordingPrivacyModeSettingWithParams:(MTRSubscribeParams *)params
+                                            subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                                      reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeSoftRecordingPrivacyModeSettingWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeSoftLivestreamPrivacyModeSettingWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeSoftLivestreamPrivacyModeSettingWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeSoftLivestreamPrivacyModeSettingWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeSoftLivestreamPrivacyModeSettingWithParams:(MTRSubscribeParams *)params
+                                             subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                                       reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeSoftLivestreamPrivacyModeSettingWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeHardPrivacyModeWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeHardPrivacyModeWithParams:(MTRSubscribeParams *)params
+                            subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                      reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeHardPrivacyModeWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeNightVisionWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeNightVisionWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeNightVisionWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeNightVisionWithParams:(MTRSubscribeParams *)params
+                        subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                  reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeNightVisionWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeNightVisionIllumWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeNightVisionIllumWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeNightVisionIllumWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeNightVisionIllumWithParams:(MTRSubscribeParams *)params
+                             subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                       reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeNightVisionIllumWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeAWBWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeAWBWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeAWBWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeAWBWithParams:(MTRSubscribeParams *)params
+                subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                          reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeAWBWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeShutterSpeedWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeShutterSpeedWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeShutterSpeedWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeShutterSpeedWithParams:(MTRSubscribeParams *)params
+                         subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                   reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeShutterSpeedWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeISOWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeISOWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeISOWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeISOWithParams:(MTRSubscribeParams *)params
+                subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                          reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeISOWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeViewportWithCompletion:(void (^)(MTRCameraAVStreamManagementClusterViewportStruct * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeViewportWithParams:(MTRSubscribeParams *)params
+                     subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                               reportHandler:(void (^)(MTRCameraAVStreamManagementClusterViewportStruct * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeViewportWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(MTRCameraAVStreamManagementClusterViewportStruct * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeSpkrOnOffWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeSpkrOnOffWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeSpkrOnOffWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeSpkrOnOffWithParams:(MTRSubscribeParams *)params
+                      subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeSpkrOnOffWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeSpkrVolumeLevelWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeSpkrVolumeLevelWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeSpkrVolumeLevelWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeSpkrVolumeLevelWithParams:(MTRSubscribeParams *)params
+                            subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                      reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeSpkrVolumeLevelWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeSpkrMaxLevelWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeSpkrMaxLevelWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeSpkrMaxLevelWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeSpkrMaxLevelWithParams:(MTRSubscribeParams *)params
+                         subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                   reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeSpkrMaxLevelWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeSpkrMinLevelWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeSpkrMinLevelWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeSpkrMinLevelWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeSpkrMinLevelWithParams:(MTRSubscribeParams *)params
+                         subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                   reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeSpkrMinLevelWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeMicOnOffWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeMicOnOffWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeMicOnOffWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeMicOnOffWithParams:(MTRSubscribeParams *)params
+                     subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                               reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeMicOnOffWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeMicCurrentLevelWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeMicCurrentLevelWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeMicCurrentLevelWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeMicCurrentLevelWithParams:(MTRSubscribeParams *)params
+                            subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                      reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeMicCurrentLevelWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeMicMaxLevelWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeMicMaxLevelWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeMicMaxLevelWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeMicMaxLevelWithParams:(MTRSubscribeParams *)params
+                        subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                  reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeMicMaxLevelWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeMicMinLevelWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeMicMinLevelWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeMicMinLevelWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeMicMinLevelWithParams:(MTRSubscribeParams *)params
+                        subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                  reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeMicMinLevelWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeMicAGCWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeMicAGCWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeMicAGCWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeMicAGCWithParams:(MTRSubscribeParams *)params
+                   subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                             reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeMicAGCWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeImageRotationWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeImageRotationWithParams:(MTRSubscribeParams *)params
+                          subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                    reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeImageRotationWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeImageFlipHorizontalWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeImageFlipHorizontalWithParams:(MTRSubscribeParams *)params
+                                subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                          reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeImageFlipHorizontalWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeImageFlipVerticalWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeImageFlipVerticalWithParams:(MTRSubscribeParams *)params
+                              subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                        reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeImageFlipVerticalWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeLocalVideoRecordingEnabledWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeLocalVideoRecordingEnabledWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeLocalVideoRecordingEnabledWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeLocalVideoRecordingEnabledWithParams:(MTRSubscribeParams *)params
+                                       subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                                 reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeLocalVideoRecordingEnabledWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeLocalSnapshotRecordingEnabledWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeLocalSnapshotRecordingEnabledWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeLocalSnapshotRecordingEnabledWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeLocalSnapshotRecordingEnabledWithParams:(MTRSubscribeParams *)params
+                                          subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                                    reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeLocalSnapshotRecordingEnabledWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeStatusLightWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeStatusLightWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeStatusLightWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeStatusLightWithParams:(MTRSubscribeParams *)params
+                        subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                  reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeStatusLightWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeStatusLightBrightnessWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeStatusLightBrightnessWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeStatusLightBrightnessWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeStatusLightBrightnessWithParams:(MTRSubscribeParams *)params
+                                  subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                            reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeStatusLightBrightnessWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeDepthSensorStatusWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeDepthSensorStatusWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeDepthSensorStatusWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeDepthSensorStatusWithParams:(MTRSubscribeParams *)params
+                              subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                        reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeDepthSensorStatusWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeWatermarkEnabledWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeWatermarkEnabledWithValue:(NSArray * _Nonnull)value completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeWatermarkEnabledWithValue:(NSArray * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeWatermarkEnabledWithParams:(MTRSubscribeParams *)params
+                             subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                       reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeWatermarkEnabledWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeOSDEnabledWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeOSDEnabledWithValue:(NSArray * _Nonnull)value completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeOSDEnabledWithValue:(NSArray * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeOSDEnabledWithParams:(MTRSubscribeParams *)params
+                       subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                 reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeOSDEnabledWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeGeneratedCommandListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeGeneratedCommandListWithParams:(MTRSubscribeParams *)params
+                                 subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                           reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeGeneratedCommandListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeAcceptedCommandListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeAcceptedCommandListWithParams:(MTRSubscribeParams *)params
+                                subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                          reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeAcceptedCommandListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeEventListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeEventListWithParams:(MTRSubscribeParams *)params
+                      subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeEventListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeAttributeListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeAttributeListWithParams:(MTRSubscribeParams *)params
+                          subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                    reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeAttributeListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeFeatureMapWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeFeatureMapWithParams:(MTRSubscribeParams *)params
+                       subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                 reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeFeatureMapWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeClusterRevisionWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeClusterRevisionWithParams:(MTRSubscribeParams *)params
+                            subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                      reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeClusterRevisionWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+@end
+
+@interface MTRBaseClusterCameraAVStreamManagement (Availability)
+
+/**
+ * For all instance methods (reads, writes, commands) that take a completion,
+ * the completion will be called on the provided queue.
+ */
+- (instancetype _Nullable)initWithDevice:(MTRBaseDevice *)device
+                              endpointID:(NSNumber *)endpointID
+                                   queue:(dispatch_queue_t)queue MTR_PROVISIONALLY_AVAILABLE;
+
+@end
+
+/**
+ * Cluster Camera AV Settings User Level Management
+ *
+ * This cluster provides an interface into controls associated with the operation of a device that provides pan, tilt, and zoom functions, either mechanically, or against a digital image.
+ */
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRBaseClusterCameraAVSettingsUserLevelManagement : MTRGenericBaseCluster
+
+/**
+ * Command MptzSet
+ *
+ * This command SHALL set the values for the pan, tilt, and zoom in the mechanical PTZ.
+ */
+- (void)mptzSetWithParams:(MTRCameraAVSettingsUserLevelManagementClusterMptzSetParams * _Nullable)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)mptzSetWithCompletion:(MTRStatusCompletion)completion
+    MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Command MptzRelativeMove
+ *
+ * This command SHALL move the device by the values for pan, tilt, and zoom relative to the currently defined position.
+ */
+- (void)mptzRelativeMoveWithParams:(MTRCameraAVSettingsUserLevelManagementClusterMptzRelativeMoveParams *)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Command SetAsPreset
+ *
+ * This command SHALL set the next available index in the PresetMptzTable to the current, known, values of pan, tilt, and zoom on the camera.
+ */
+- (void)setAsPresetWithParams:(MTRCameraAVSettingsUserLevelManagementClusterSetAsPresetParams * _Nullable)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)setAsPresetWithCompletion:(MTRStatusCompletion)completion
+    MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Command DptzSetViewport
+ *
+ * This command SHALL set the viewport in the digital PTZ for a specific Video Stream.
+ */
+- (void)dptzSetViewportWithParams:(MTRCameraAVSettingsUserLevelManagementClusterDptzSetViewportParams *)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Command DptzRelativeMove
+ *
+ * This command SHALL change the viewports location by the amount specified in a relative fashion.
+ */
+- (void)dptzRelativeMoveWithParams:(MTRCameraAVSettingsUserLevelManagementClusterDptzRelativeMoveParams *)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeMptzWithCompletion:(void (^)(MTRCameraAVSettingsUserLevelManagementClusterMPTZStruct * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeMptzWithParams:(MTRSubscribeParams *)params
+                 subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                           reportHandler:(void (^)(MTRCameraAVSettingsUserLevelManagementClusterMPTZStruct * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeMptzWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(MTRCameraAVSettingsUserLevelManagementClusterMPTZStruct * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeMaxPresetsWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeMaxPresetsWithParams:(MTRSubscribeParams *)params
+                       subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                 reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeMaxPresetsWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributePresetMptzTableWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributePresetMptzTableWithParams:(MTRSubscribeParams *)params
+                            subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                      reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributePresetMptzTableWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeMptzRelativeMoveWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeMptzRelativeMoveWithParams:(MTRSubscribeParams *)params
+                             subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                       reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeMptzRelativeMoveWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeDptzRelativeMoveWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeDptzRelativeMoveWithParams:(MTRSubscribeParams *)params
+                             subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                       reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeDptzRelativeMoveWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeGeneratedCommandListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeGeneratedCommandListWithParams:(MTRSubscribeParams *)params
+                                 subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                           reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeGeneratedCommandListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeAcceptedCommandListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeAcceptedCommandListWithParams:(MTRSubscribeParams *)params
+                                subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                          reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeAcceptedCommandListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeEventListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeEventListWithParams:(MTRSubscribeParams *)params
+                      subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeEventListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeAttributeListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeAttributeListWithParams:(MTRSubscribeParams *)params
+                          subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                    reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeAttributeListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeFeatureMapWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeFeatureMapWithParams:(MTRSubscribeParams *)params
+                       subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                 reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeFeatureMapWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeClusterRevisionWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeClusterRevisionWithParams:(MTRSubscribeParams *)params
+                            subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                      reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeClusterRevisionWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+@end
+
+@interface MTRBaseClusterCameraAVSettingsUserLevelManagement (Availability)
+
+/**
+ * For all instance methods (reads, writes, commands) that take a completion,
+ * the completion will be called on the provided queue.
+ */
+- (instancetype _Nullable)initWithDevice:(MTRBaseDevice *)device
+                              endpointID:(NSNumber *)endpointID
+                                   queue:(dispatch_queue_t)queue MTR_PROVISIONALLY_AVAILABLE;
+
+@end
+
+/**
+ * Cluster WebRTC Transport Provider
+ *
+ * The WebRTC transport provider cluster provides a way for stream providers (e.g. Cameras) to stream or receive their data through WebRTC.
+ */
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRBaseClusterWebRTCTransportProvider : MTRGenericBaseCluster
+
+/**
+ * Command WebRTCSolicitOffer
+ *
+ * Requests that the Provider initiates a new session with the Offer / Answer flow in a way that allows for options to be passed and work with devices needing the standby flow.
+ */
+- (void)webRTCSolicitOfferWithParams:(MTRWebRTCTransportProviderClusterWebRTCSolicitOfferParams *)params completion:(void (^)(MTRWebRTCTransportProviderClusterWebRTCSolicitOfferResponseParams * _Nullable data, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Command WebRTCProvideOffer
+ *
+ * This command allows an SDP Offer to be set and start a new session.
+ */
+- (void)webRTCProvideOfferWithParams:(MTRWebRTCTransportProviderClusterWebRTCProvideOfferParams *)params completion:(void (^)(MTRWebRTCTransportProviderClusterWebRTCProvideOfferResponseParams * _Nullable data, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Command WebRTCProvideAnswer
+ *
+ * This command will be initiated from a local Node as a response to an offer that was previously provided by the remote peer.
+ */
+- (void)webRTCProvideAnswerWithParams:(MTRWebRTCTransportProviderClusterWebRTCProvideAnswerParams *)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Command WebRTCProvideICECandidate
+ *
+ * This command allows for https://www.rfc-editor.org/rfc/rfc8839#section-4.2.1.2 nominated after the initial Offer / Answer exchange to be added to a session during the gathering phase.
+ */
+- (void)webRTCProvideICECandidateWithParams:(MTRWebRTCTransportProviderClusterWebRTCProvideICECandidateParams *)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Command WebRTCEndSession
+ *
+ * This command instructs the stream provider to end the WebRTC session.
+ */
+- (void)webRTCEndSessionWithParams:(MTRWebRTCTransportProviderClusterWebRTCEndSessionParams *)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeCurrentSessionsWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeCurrentSessionsWithParams:(MTRSubscribeParams *)params
+                            subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                      reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeCurrentSessionsWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeGeneratedCommandListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeGeneratedCommandListWithParams:(MTRSubscribeParams *)params
+                                 subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                           reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeGeneratedCommandListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeAcceptedCommandListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeAcceptedCommandListWithParams:(MTRSubscribeParams *)params
+                                subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                          reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeAcceptedCommandListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeEventListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeEventListWithParams:(MTRSubscribeParams *)params
+                      subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeEventListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeAttributeListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeAttributeListWithParams:(MTRSubscribeParams *)params
+                          subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                    reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeAttributeListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeFeatureMapWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeFeatureMapWithParams:(MTRSubscribeParams *)params
+                       subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                 reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeFeatureMapWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeClusterRevisionWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeClusterRevisionWithParams:(MTRSubscribeParams *)params
+                            subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                      reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeClusterRevisionWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+@end
+
+@interface MTRBaseClusterWebRTCTransportProvider (Availability)
+
+/**
+ * For all instance methods (reads, writes, commands) that take a completion,
+ * the completion will be called on the provided queue.
+ */
+- (instancetype _Nullable)initWithDevice:(MTRBaseDevice *)device
+                              endpointID:(NSNumber *)endpointID
+                                   queue:(dispatch_queue_t)queue MTR_PROVISIONALLY_AVAILABLE;
+
+@end
+
+/**
+ * Cluster WebRTC Transport Requestor
+ *
+ * The WebRTC transport requestor cluster provides a way for stream consumers (e.g. Matter Stream Viewer) to establish a WebRTC connection with a stream provider that implements the WebRTC Transport Provider Cluster
+ */
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRBaseClusterWebRTCTransportRequestor : MTRGenericBaseCluster
+
+/**
+ * Command WebRTCOffer
+ *
+ * This command provides the stream requestor with WebRTC session details.
+ */
+- (void)webRTCOfferWithParams:(MTRWebRTCTransportRequestorClusterWebRTCOfferParams *)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Command WebRTCAnswer
+ *
+ * This command provides the stream requestor with the WebRTC session details (i.e.
+ */
+- (void)webRTCAnswerWithParams:(MTRWebRTCTransportRequestorClusterWebRTCAnswerParams *)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Command WebRTCICECandidate
+ *
+ * This command provides an ICE candidate to the stream requestor in a WebRTC session.
+ */
+- (void)webRTCICECandidateWithParams:(MTRWebRTCTransportRequestorClusterWebRTCICECandidateParams *)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Command WebRTCEnd
+ *
+ * This command notifies the stream requestor that the provider has ended the WebRTC session.
+ */
+- (void)webRTCEndWithParams:(MTRWebRTCTransportRequestorClusterWebRTCEndParams *)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeCurrentSessionsWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeCurrentSessionsWithParams:(MTRSubscribeParams *)params
+                            subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                      reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeCurrentSessionsWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeGeneratedCommandListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeGeneratedCommandListWithParams:(MTRSubscribeParams *)params
+                                 subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                           reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeGeneratedCommandListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeAcceptedCommandListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeAcceptedCommandListWithParams:(MTRSubscribeParams *)params
+                                subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                          reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeAcceptedCommandListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeEventListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeEventListWithParams:(MTRSubscribeParams *)params
+                      subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeEventListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeAttributeListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeAttributeListWithParams:(MTRSubscribeParams *)params
+                          subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                    reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeAttributeListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeFeatureMapWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeFeatureMapWithParams:(MTRSubscribeParams *)params
+                       subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                 reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeFeatureMapWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeClusterRevisionWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeClusterRevisionWithParams:(MTRSubscribeParams *)params
+                            subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                      reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeClusterRevisionWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+@end
+
+@interface MTRBaseClusterWebRTCTransportRequestor (Availability)
+
+/**
+ * For all instance methods (reads, writes, commands) that take a completion,
+ * the completion will be called on the provided queue.
+ */
+- (instancetype _Nullable)initWithDevice:(MTRBaseDevice *)device
+                              endpointID:(NSNumber *)endpointID
+                                   queue:(dispatch_queue_t)queue MTR_PROVISIONALLY_AVAILABLE;
+
+@end
+
+/**
+ * Cluster Push AV Stream Transport
+ *
+ * This cluster implements the upload of Audio and Video streams from the Camera AV Stream Management Cluster using suitable push-based transports.
+ */
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRBaseClusterPushAVStreamTransport : MTRGenericBaseCluster
+
+/**
+ * Command AllocatePushTransport
+ *
+ * This command SHALL allocate a transport and return a PushTransportConnectionID.
+ */
+- (void)allocatePushTransportWithParams:(MTRPushAVStreamTransportClusterAllocatePushTransportParams *)params completion:(void (^)(MTRPushAVStreamTransportClusterAllocatePushTransportResponseParams * _Nullable data, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Command DeallocatePushTransport
+ *
+ * This command SHALL be generated to request the Node deallocates the specified transport.
+ */
+- (void)deallocatePushTransportWithParams:(MTRPushAVStreamTransportClusterDeallocatePushTransportParams *)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Command ModifyPushTransport
+ *
+ * This command is used to request the Node modifies the configuration of the specified push transport.
+ */
+- (void)modifyPushTransportWithParams:(MTRPushAVStreamTransportClusterModifyPushTransportParams *)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Command SetTransportStatus
+ *
+ * This command SHALL be generated to request the Node modifies the Transport Status of the transport.
+ */
+- (void)setTransportStatusWithParams:(MTRPushAVStreamTransportClusterSetTransportStatusParams *)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Command ManuallyTriggerTransport
+ *
+ * This command SHALL be generated to request the Node to manually start the specified push transport.
+ */
+- (void)manuallyTriggerTransportWithParams:(MTRPushAVStreamTransportClusterManuallyTriggerTransportParams *)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Command FindStreamConfiguration
+ *
+ * This command SHALL return the Stream Options Configuration for the specified push transport.
+ */
+- (void)findStreamConfigurationWithParams:(MTRPushAVStreamTransportClusterFindStreamConfigurationParams * _Nullable)params completion:(void (^)(MTRPushAVStreamTransportClusterFindStreamConfigurationResponseParams * _Nullable data, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)findStreamConfigurationWithCompletion:(void (^)(MTRPushAVStreamTransportClusterFindStreamConfigurationResponseParams * _Nullable data, NSError * _Nullable error))completion
+    MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeSupportedContainerFormatsWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeSupportedContainerFormatsWithParams:(MTRSubscribeParams *)params
+                                      subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                                reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeSupportedContainerFormatsWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeSupportedIngestMethodsWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeSupportedIngestMethodsWithParams:(MTRSubscribeParams *)params
+                                   subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                             reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeSupportedIngestMethodsWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeCurrentConnectionsWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeCurrentConnectionsWithParams:(MTRSubscribeParams *)params
+                               subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                         reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeCurrentConnectionsWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeGeneratedCommandListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeGeneratedCommandListWithParams:(MTRSubscribeParams *)params
+                                 subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                           reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeGeneratedCommandListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeAcceptedCommandListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeAcceptedCommandListWithParams:(MTRSubscribeParams *)params
+                                subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                          reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeAcceptedCommandListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeEventListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeEventListWithParams:(MTRSubscribeParams *)params
+                      subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeEventListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeAttributeListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeAttributeListWithParams:(MTRSubscribeParams *)params
+                          subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                    reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeAttributeListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeFeatureMapWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeFeatureMapWithParams:(MTRSubscribeParams *)params
+                       subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                 reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeFeatureMapWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeClusterRevisionWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeClusterRevisionWithParams:(MTRSubscribeParams *)params
+                            subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                      reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeClusterRevisionWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+@end
+
+@interface MTRBaseClusterPushAVStreamTransport (Availability)
+
+/**
+ * For all instance methods (reads, writes, commands) that take a completion,
+ * the completion will be called on the provided queue.
+ */
+- (instancetype _Nullable)initWithDevice:(MTRBaseDevice *)device
+                              endpointID:(NSNumber *)endpointID
+                                   queue:(dispatch_queue_t)queue MTR_PROVISIONALLY_AVAILABLE;
+
+@end
+
+/**
+ * Cluster Chime
+ *
+ * This cluster provides facilities to configure and play Chime sounds, such as those used in a doorbell.
+ */
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRBaseClusterChime : MTRGenericBaseCluster
+
+/**
+ * Command PlayChimeSound
+ *
+ *
+ */
+- (void)playChimeSoundWithParams:(MTRChimeClusterPlayChimeSoundParams * _Nullable)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)playChimeSoundWithCompletion:(MTRStatusCompletion)completion
+    MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeInstalledChimeSoundsWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeInstalledChimeSoundsWithParams:(MTRSubscribeParams *)params
+                                 subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                           reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeInstalledChimeSoundsWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeActiveChimeSoundIdWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeActiveChimeSoundIdWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeActiveChimeSoundIdWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeActiveChimeSoundIdWithParams:(MTRSubscribeParams *)params
+                               subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                         reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeActiveChimeSoundIdWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeEnabledWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeEnabledWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeEnabledWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeEnabledWithParams:(MTRSubscribeParams *)params
+                    subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                              reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeEnabledWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeGeneratedCommandListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeGeneratedCommandListWithParams:(MTRSubscribeParams *)params
+                                 subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                           reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeGeneratedCommandListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeAcceptedCommandListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeAcceptedCommandListWithParams:(MTRSubscribeParams *)params
+                                subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                          reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeAcceptedCommandListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeEventListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeEventListWithParams:(MTRSubscribeParams *)params
+                      subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeEventListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeAttributeListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeAttributeListWithParams:(MTRSubscribeParams *)params
+                          subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                    reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeAttributeListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeFeatureMapWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeFeatureMapWithParams:(MTRSubscribeParams *)params
+                       subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                 reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeFeatureMapWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (void)readAttributeClusterRevisionWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)subscribeAttributeClusterRevisionWithParams:(MTRSubscribeParams *)params
+                            subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                      reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE;
++ (void)readAttributeClusterRevisionWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+@end
+
+@interface MTRBaseClusterChime (Availability)
+
+/**
+ * For all instance methods (reads, writes, commands) that take a completion,
+ * the completion will be called on the provided queue.
+ */
+- (instancetype _Nullable)initWithDevice:(MTRBaseDevice *)device
+                              endpointID:(NSNumber *)endpointID
+                                   queue:(dispatch_queue_t)queue MTR_PROVISIONALLY_AVAILABLE;
+
+@end
+
 /**
  * Cluster Ecosystem Information
  *
@@ -17413,6 +18438,13 @@ typedef NS_ENUM(uint8_t, MTRDataTypeTestGlobalEnum) {
     MTRDataTypeTestGlobalEnumFinalValue MTR_PROVISIONALLY_AVAILABLE = 0x02,
 } MTR_PROVISIONALLY_AVAILABLE;
 
+typedef NS_ENUM(uint8_t, MTRDataTypeThreeLevelAutoEnum) {
+    MTRDataTypeThreeLevelAutoEnumLow MTR_PROVISIONALLY_AVAILABLE = 0x00,
+    MTRDataTypeThreeLevelAutoEnumMedium MTR_PROVISIONALLY_AVAILABLE = 0x01,
+    MTRDataTypeThreeLevelAutoEnumHigh MTR_PROVISIONALLY_AVAILABLE = 0x02,
+    MTRDataTypeThreeLevelAutoEnumAutomatic MTR_PROVISIONALLY_AVAILABLE = 0x03,
+} MTR_PROVISIONALLY_AVAILABLE;
+
 typedef NS_ENUM(uint8_t, MTRIdentifyEffectIdentifier) {
     MTRIdentifyEffectIdentifierBlink MTR_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)) = 0x00,
     MTRIdentifyEffectIdentifierBreathe MTR_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)) = 0x01,
@@ -21188,6 +22220,178 @@ typedef NS_ENUM(uint8_t, MTRContentAppObserverStatus) {
     MTRContentAppObserverStatusUnexpectedData MTR_PROVISIONALLY_AVAILABLE = 0x01,
 } MTR_PROVISIONALLY_AVAILABLE;
 
+typedef NS_ENUM(uint8_t, MTRCameraAVStreamManagementAudioCodec) {
+    MTRCameraAVStreamManagementAudioCodecOPUS MTR_PROVISIONALLY_AVAILABLE = 0x00,
+    MTRCameraAVStreamManagementAudioCodecAACLC MTR_PROVISIONALLY_AVAILABLE = 0x01,
+} MTR_PROVISIONALLY_AVAILABLE;
+
+typedef NS_ENUM(uint8_t, MTRCameraAVStreamManagementImageCodec) {
+    MTRCameraAVStreamManagementImageCodecJPEG MTR_PROVISIONALLY_AVAILABLE = 0x00,
+} MTR_PROVISIONALLY_AVAILABLE;
+
+typedef NS_ENUM(uint8_t, MTRCameraAVStreamManagementStreamType) {
+    MTRCameraAVStreamManagementStreamTypeInternal MTR_PROVISIONALLY_AVAILABLE = 0x00,
+    MTRCameraAVStreamManagementStreamTypeRecording MTR_PROVISIONALLY_AVAILABLE = 0x01,
+    MTRCameraAVStreamManagementStreamTypeAnalysis MTR_PROVISIONALLY_AVAILABLE = 0x02,
+    MTRCameraAVStreamManagementStreamTypeLiveView MTR_PROVISIONALLY_AVAILABLE = 0x03,
+} MTR_PROVISIONALLY_AVAILABLE;
+
+typedef NS_ENUM(uint8_t, MTRCameraAVStreamManagementTriStateAuto) {
+    MTRCameraAVStreamManagementTriStateAutoOff MTR_PROVISIONALLY_AVAILABLE = 0x00,
+    MTRCameraAVStreamManagementTriStateAutoOn MTR_PROVISIONALLY_AVAILABLE = 0x01,
+    MTRCameraAVStreamManagementTriStateAutoAuto MTR_PROVISIONALLY_AVAILABLE = 0x02,
+} MTR_PROVISIONALLY_AVAILABLE;
+
+typedef NS_ENUM(uint8_t, MTRCameraAVStreamManagementTwowayTalkSupportType) {
+    MTRCameraAVStreamManagementTwowayTalkSupportTypeNotSupported MTR_PROVISIONALLY_AVAILABLE = 0x00,
+    MTRCameraAVStreamManagementTwowayTalkSupportTypeHalfDuplex MTR_PROVISIONALLY_AVAILABLE = 0x01,
+    MTRCameraAVStreamManagementTwowayTalkSupportTypeFullDuplex MTR_PROVISIONALLY_AVAILABLE = 0x02,
+} MTR_PROVISIONALLY_AVAILABLE;
+
+typedef NS_ENUM(uint8_t, MTRCameraAVStreamManagementVideoCodec) {
+    MTRCameraAVStreamManagementVideoCodecH264 MTR_PROVISIONALLY_AVAILABLE = 0x00,
+    MTRCameraAVStreamManagementVideoCodecHEVC MTR_PROVISIONALLY_AVAILABLE = 0x01,
+    MTRCameraAVStreamManagementVideoCodecVVC MTR_PROVISIONALLY_AVAILABLE = 0x02,
+    MTRCameraAVStreamManagementVideoCodecAV1 MTR_PROVISIONALLY_AVAILABLE = 0x03,
+} MTR_PROVISIONALLY_AVAILABLE;
+
+typedef NS_OPTIONS(uint32_t, MTRCameraAVStreamManagementFeature) {
+    MTRCameraAVStreamManagementFeaturePrivacy MTR_PROVISIONALLY_AVAILABLE = 0x1,
+    MTRCameraAVStreamManagementFeatureSensorControl MTR_PROVISIONALLY_AVAILABLE = 0x2,
+    MTRCameraAVStreamManagementFeatureAudio MTR_PROVISIONALLY_AVAILABLE = 0x4,
+    MTRCameraAVStreamManagementFeatureImageControl MTR_PROVISIONALLY_AVAILABLE = 0x8,
+    MTRCameraAVStreamManagementFeatureVideo MTR_PROVISIONALLY_AVAILABLE = 0x10,
+    MTRCameraAVStreamManagementFeatureSnapshot MTR_PROVISIONALLY_AVAILABLE = 0x20,
+    MTRCameraAVStreamManagementFeatureLocalStorage MTR_PROVISIONALLY_AVAILABLE = 0x40,
+} MTR_PROVISIONALLY_AVAILABLE;
+
+typedef NS_OPTIONS(uint32_t, MTRCameraAVSettingsUserLevelManagementFeature) {
+    MTRCameraAVSettingsUserLevelManagementFeatureMechanicalPTZ MTR_PROVISIONALLY_AVAILABLE = 0x1,
+    MTRCameraAVSettingsUserLevelManagementFeatureDigitalPTZ MTR_PROVISIONALLY_AVAILABLE = 0x2,
+} MTR_PROVISIONALLY_AVAILABLE;
+
+typedef NS_ENUM(uint8_t, MTRWebRTCTransportProviderStreamType) {
+    MTRWebRTCTransportProviderStreamTypeInternal MTR_PROVISIONALLY_AVAILABLE = 0x00,
+    MTRWebRTCTransportProviderStreamTypeRecording MTR_PROVISIONALLY_AVAILABLE = 0x01,
+    MTRWebRTCTransportProviderStreamTypeAnalysis MTR_PROVISIONALLY_AVAILABLE = 0x02,
+    MTRWebRTCTransportProviderStreamTypeLiveView MTR_PROVISIONALLY_AVAILABLE = 0x03,
+} MTR_PROVISIONALLY_AVAILABLE;
+
+typedef NS_ENUM(uint8_t, MTRWebRTCTransportProviderStreamType) {
+    MTRWebRTCTransportProviderStreamTypeInternal MTR_PROVISIONALLY_AVAILABLE = 0x00,
+    MTRWebRTCTransportProviderStreamTypeRecording MTR_PROVISIONALLY_AVAILABLE = 0x01,
+    MTRWebRTCTransportProviderStreamTypeAnalysis MTR_PROVISIONALLY_AVAILABLE = 0x02,
+    MTRWebRTCTransportProviderStreamTypeLiveView MTR_PROVISIONALLY_AVAILABLE = 0x03,
+} MTR_PROVISIONALLY_AVAILABLE;
+
+typedef NS_ENUM(uint8_t, MTRWebRTCTransportProviderWebRTCEndReason) {
+    MTRWebRTCTransportProviderWebRTCEndReasonICEFAILED MTR_PROVISIONALLY_AVAILABLE = 0x01,
+    MTRWebRTCTransportProviderWebRTCEndReasonICETIMEOUT MTR_PROVISIONALLY_AVAILABLE = 0x02,
+    MTRWebRTCTransportProviderWebRTCEndReasonUSERHANGUP MTR_PROVISIONALLY_AVAILABLE = 0x03,
+    MTRWebRTCTransportProviderWebRTCEndReasonUSERBUSY MTR_PROVISIONALLY_AVAILABLE = 0x04,
+    MTRWebRTCTransportProviderWebRTCEndReasonREPLACED MTR_PROVISIONALLY_AVAILABLE = 0x05,
+    MTRWebRTCTransportProviderWebRTCEndReasonNOUSERMEDIA MTR_PROVISIONALLY_AVAILABLE = 0x06,
+    MTRWebRTCTransportProviderWebRTCEndReasonINVITETIMEOUT MTR_PROVISIONALLY_AVAILABLE = 0x07,
+    MTRWebRTCTransportProviderWebRTCEndReasonANSWEREDELSEWHERE MTR_PROVISIONALLY_AVAILABLE = 0x08,
+    MTRWebRTCTransportProviderWebRTCEndReasonOUTOFRESOURCES MTR_PROVISIONALLY_AVAILABLE = 0x09,
+    MTRWebRTCTransportProviderWebRTCEndReasonMEDIATIMEOUT MTR_PROVISIONALLY_AVAILABLE = 0x0A,
+    MTRWebRTCTransportProviderWebRTCEndReasonLOWPOWER MTR_PROVISIONALLY_AVAILABLE = 0x0B,
+    MTRWebRTCTransportProviderWebRTCEndReasonUNKNOWNERROR MTR_PROVISIONALLY_AVAILABLE = 0x0C,
+} MTR_PROVISIONALLY_AVAILABLE;
+
+typedef NS_OPTIONS(uint8_t, MTRWebRTCTransportProviderWebRTCMetadataOptions) {
+    MTRWebRTCTransportProviderWebRTCMetadataOptionsDataTLV MTR_PROVISIONALLY_AVAILABLE = 0x1,
+} MTR_PROVISIONALLY_AVAILABLE;
+
+typedef NS_ENUM(uint8_t, MTRWebRTCTransportRequestorStreamType) {
+    MTRWebRTCTransportRequestorStreamTypeInternal MTR_PROVISIONALLY_AVAILABLE = 0x00,
+    MTRWebRTCTransportRequestorStreamTypeRecording MTR_PROVISIONALLY_AVAILABLE = 0x01,
+    MTRWebRTCTransportRequestorStreamTypeAnalysis MTR_PROVISIONALLY_AVAILABLE = 0x02,
+    MTRWebRTCTransportRequestorStreamTypeLiveView MTR_PROVISIONALLY_AVAILABLE = 0x03,
+} MTR_PROVISIONALLY_AVAILABLE;
+
+typedef NS_ENUM(uint8_t, MTRWebRTCTransportRequestorStreamType) {
+    MTRWebRTCTransportRequestorStreamTypeInternal MTR_PROVISIONALLY_AVAILABLE = 0x00,
+    MTRWebRTCTransportRequestorStreamTypeRecording MTR_PROVISIONALLY_AVAILABLE = 0x01,
+    MTRWebRTCTransportRequestorStreamTypeAnalysis MTR_PROVISIONALLY_AVAILABLE = 0x02,
+    MTRWebRTCTransportRequestorStreamTypeLiveView MTR_PROVISIONALLY_AVAILABLE = 0x03,
+} MTR_PROVISIONALLY_AVAILABLE;
+
+typedef NS_ENUM(uint8_t, MTRWebRTCTransportRequestorWebRTCEndReason) {
+    MTRWebRTCTransportRequestorWebRTCEndReasonICEFAILED MTR_PROVISIONALLY_AVAILABLE = 0x01,
+    MTRWebRTCTransportRequestorWebRTCEndReasonICETIMEOUT MTR_PROVISIONALLY_AVAILABLE = 0x02,
+    MTRWebRTCTransportRequestorWebRTCEndReasonUSERHANGUP MTR_PROVISIONALLY_AVAILABLE = 0x03,
+    MTRWebRTCTransportRequestorWebRTCEndReasonUSERBUSY MTR_PROVISIONALLY_AVAILABLE = 0x04,
+    MTRWebRTCTransportRequestorWebRTCEndReasonREPLACED MTR_PROVISIONALLY_AVAILABLE = 0x05,
+    MTRWebRTCTransportRequestorWebRTCEndReasonNOUSERMEDIA MTR_PROVISIONALLY_AVAILABLE = 0x06,
+    MTRWebRTCTransportRequestorWebRTCEndReasonINVITETIMEOUT MTR_PROVISIONALLY_AVAILABLE = 0x07,
+    MTRWebRTCTransportRequestorWebRTCEndReasonANSWEREDELSEWHERE MTR_PROVISIONALLY_AVAILABLE = 0x08,
+    MTRWebRTCTransportRequestorWebRTCEndReasonOUTOFRESOURCES MTR_PROVISIONALLY_AVAILABLE = 0x09,
+    MTRWebRTCTransportRequestorWebRTCEndReasonMEDIATIMEOUT MTR_PROVISIONALLY_AVAILABLE = 0x0A,
+    MTRWebRTCTransportRequestorWebRTCEndReasonLOWPOWER MTR_PROVISIONALLY_AVAILABLE = 0x0B,
+    MTRWebRTCTransportRequestorWebRTCEndReasonUNKNOWNERROR MTR_PROVISIONALLY_AVAILABLE = 0x0C,
+} MTR_PROVISIONALLY_AVAILABLE;
+
+typedef NS_OPTIONS(uint8_t, MTRWebRTCTransportRequestorWebRTCMetadataOptions) {
+    MTRWebRTCTransportRequestorWebRTCMetadataOptionsDataTLV MTR_PROVISIONALLY_AVAILABLE = 0x1,
+} MTR_PROVISIONALLY_AVAILABLE;
+
+typedef NS_ENUM(uint8_t, MTRPushAVStreamTransportContainerFormat) {
+    MTRPushAVStreamTransportContainerFormatCMAF MTR_PROVISIONALLY_AVAILABLE = 0x00,
+} MTR_PROVISIONALLY_AVAILABLE;
+
+typedef NS_ENUM(uint8_t, MTRPushAVStreamTransportIngestMethod) {
+    MTRPushAVStreamTransportIngestMethodCMAFIngest MTR_PROVISIONALLY_AVAILABLE = 0x00,
+} MTR_PROVISIONALLY_AVAILABLE;
+
+typedef NS_ENUM(uint8_t, MTRPushAVStreamTransportStatus) {
+    MTRPushAVStreamTransportStatusActive MTR_PROVISIONALLY_AVAILABLE = 0x00,
+    MTRPushAVStreamTransportStatusInactive MTR_PROVISIONALLY_AVAILABLE = 0x01,
+} MTR_PROVISIONALLY_AVAILABLE;
+
+typedef NS_ENUM(uint8_t, MTRPushAVStreamTransportStreamMultiplexing) {
+    MTRPushAVStreamTransportStreamMultiplexingInterleaved MTR_PROVISIONALLY_AVAILABLE = 0x00,
+} MTR_PROVISIONALLY_AVAILABLE;
+
+typedef NS_ENUM(uint8_t, MTRPushAVStreamTransportTriggerActivationReason) {
+    MTRPushAVStreamTransportTriggerActivationReasonUserInitiated MTR_PROVISIONALLY_AVAILABLE = 0x00,
+    MTRPushAVStreamTransportTriggerActivationReasonAutomation MTR_PROVISIONALLY_AVAILABLE = 0x01,
+    MTRPushAVStreamTransportTriggerActivationReasonEmergency MTR_PROVISIONALLY_AVAILABLE = 0x02,
+} MTR_PROVISIONALLY_AVAILABLE;
+
+typedef NS_ENUM(uint8_t, MTRPushAVStreamTransportTriggerType) {
+    MTRPushAVStreamTransportTriggerTypeCommand MTR_PROVISIONALLY_AVAILABLE = 0x00,
+    MTRPushAVStreamTransportTriggerTypeMotion MTR_PROVISIONALLY_AVAILABLE = 0x01,
+    MTRPushAVStreamTransportTriggerTypeContinuous MTR_PROVISIONALLY_AVAILABLE = 0x02,
+} MTR_PROVISIONALLY_AVAILABLE;
+
+typedef NS_ENUM(uint8_t, MTRPushAVStreamTransportStatusCode) {
+    MTRPushAVStreamTransportStatusCodeALLOCATIONNOTPERMITTED MTR_PROVISIONALLY_AVAILABLE = 0x02,
+    MTRPushAVStreamTransportStatusCodeINVALIDPARAMETERS MTR_PROVISIONALLY_AVAILABLE = 0x03,
+    MTRPushAVStreamTransportStatusCodeINVALIDURL MTR_PROVISIONALLY_AVAILABLE = 0x04,
+    MTRPushAVStreamTransportStatusCodeINVALIDTRIGGEROPTIONS MTR_PROVISIONALLY_AVAILABLE = 0x05,
+    MTRPushAVStreamTransportStatusCodeUNSUPPORTEDCONTAINERFORMAT MTR_PROVISIONALLY_AVAILABLE = 0x06,
+    MTRPushAVStreamTransportStatusCodeUNSUPPORTEDINGESTMETHOD MTR_PROVISIONALLY_AVAILABLE = 0x07,
+    MTRPushAVStreamTransportStatusCodePAVSTNOTINUSE MTR_PROVISIONALLY_AVAILABLE = 0x08,
+    MTRPushAVStreamTransportStatusCodeINVALIDTRIGGERFORMAT MTR_PROVISIONALLY_AVAILABLE = 0x09,
+    MTRPushAVStreamTransportStatusCodeINVALIDTRANSPORTSTATUS MTR_PROVISIONALLY_AVAILABLE = 0x10,
+} MTR_PROVISIONALLY_AVAILABLE;
+
+typedef NS_ENUM(uint8_t, MTRPushAVStreamTransportStreamType) {
+    MTRPushAVStreamTransportStreamTypeInternal MTR_PROVISIONALLY_AVAILABLE = 0x00,
+    MTRPushAVStreamTransportStreamTypeRecording MTR_PROVISIONALLY_AVAILABLE = 0x01,
+    MTRPushAVStreamTransportStreamTypeAnalysis MTR_PROVISIONALLY_AVAILABLE = 0x02,
+    MTRPushAVStreamTransportStreamTypeLiveView MTR_PROVISIONALLY_AVAILABLE = 0x03,
+} MTR_PROVISIONALLY_AVAILABLE;
+
+typedef NS_OPTIONS(uint8_t, MTRPushAVStreamTransportSupportedContainerFormatsBitmap) {
+    MTRPushAVStreamTransportSupportedContainerFormatsBitmapCMAF MTR_PROVISIONALLY_AVAILABLE = 0x1,
+} MTR_PROVISIONALLY_AVAILABLE;
+
+typedef NS_OPTIONS(uint8_t, MTRPushAVStreamTransportSupportedIngestMethodsBitmap) {
+    MTRPushAVStreamTransportSupportedIngestMethodsBitmapCMAFIngest MTR_PROVISIONALLY_AVAILABLE = 0x1,
+} MTR_PROVISIONALLY_AVAILABLE;
+
 typedef NS_OPTIONS(uint32_t, MTRCommissionerControlSupportedDeviceCategoryBitmap) {
     MTRCommissionerControlSupportedDeviceCategoryBitmapFabricSynchronization MTR_PROVISIONALLY_AVAILABLE = 0x1,
 } MTR_PROVISIONALLY_AVAILABLE;
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm
index 84e03c5adeb430..ecbce4bec7b493 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm
@@ -105330,6 +105330,5293 @@ + (void)readAttributeClusterRevisionWithClusterStateCache:(MTRClusterStateCacheC
 
 @end
 
+@implementation MTRBaseClusterCameraAVStreamManagement
+
+- (void)audioStreamAllocateWithParams:(MTRCameraAVStreamManagementClusterAudioStreamAllocateParams *)params completion:(void (^)(MTRCameraAVStreamManagementClusterAudioStreamAllocateResponseParams * _Nullable data, NSError * _Nullable error))completion
+{
+    if (params == nil) {
+        params = [[MTRCameraAVStreamManagementClusterAudioStreamAllocateParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(response, error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = CameraAvStreamManagement::Commands::AudioStreamAllocate::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:MTRCameraAVStreamManagementClusterAudioStreamAllocateResponseParams.class
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+- (void)audioStreamDeallocateWithParams:(MTRCameraAVStreamManagementClusterAudioStreamDeallocateParams *)params completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRCameraAVStreamManagementClusterAudioStreamDeallocateParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = CameraAvStreamManagement::Commands::AudioStreamDeallocate::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+- (void)videoStreamAllocateWithParams:(MTRCameraAVStreamManagementClusterVideoStreamAllocateParams *)params completion:(void (^)(MTRCameraAVStreamManagementClusterVideoStreamAllocateResponseParams * _Nullable data, NSError * _Nullable error))completion
+{
+    if (params == nil) {
+        params = [[MTRCameraAVStreamManagementClusterVideoStreamAllocateParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(response, error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = CameraAvStreamManagement::Commands::VideoStreamAllocate::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:MTRCameraAVStreamManagementClusterVideoStreamAllocateResponseParams.class
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+- (void)videoStreamModifyWithParams:(MTRCameraAVStreamManagementClusterVideoStreamModifyParams *)params completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRCameraAVStreamManagementClusterVideoStreamModifyParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = CameraAvStreamManagement::Commands::VideoStreamModify::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+- (void)videoStreamDeallocateWithParams:(MTRCameraAVStreamManagementClusterVideoStreamDeallocateParams *)params completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRCameraAVStreamManagementClusterVideoStreamDeallocateParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = CameraAvStreamManagement::Commands::VideoStreamDeallocate::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+- (void)snapshotStreamAllocateWithParams:(MTRCameraAVStreamManagementClusterSnapshotStreamAllocateParams *)params completion:(void (^)(MTRCameraAVStreamManagementClusterSnapshotStreamAllocateResponseParams * _Nullable data, NSError * _Nullable error))completion
+{
+    if (params == nil) {
+        params = [[MTRCameraAVStreamManagementClusterSnapshotStreamAllocateParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(response, error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = CameraAvStreamManagement::Commands::SnapshotStreamAllocate::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:MTRCameraAVStreamManagementClusterSnapshotStreamAllocateResponseParams.class
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+- (void)snapshotStreamDeallocateWithParams:(MTRCameraAVStreamManagementClusterSnapshotStreamDeallocateParams *)params completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRCameraAVStreamManagementClusterSnapshotStreamDeallocateParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = CameraAvStreamManagement::Commands::SnapshotStreamDeallocate::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+- (void)setStreamPriorityWithCompletion:(MTRStatusCompletion)completion
+{
+    [self setStreamPriorityWithParams:nil completion:completion];
+}
+- (void)setStreamPriorityWithParams:(MTRCameraAVStreamManagementClusterSetStreamPriorityParams * _Nullable)params completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRCameraAVStreamManagementClusterSetStreamPriorityParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = CameraAvStreamManagement::Commands::SetStreamPriority::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+- (void)captureSnapshotWithParams:(MTRCameraAVStreamManagementClusterCaptureSnapshotParams *)params completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRCameraAVStreamManagementClusterCaptureSnapshotParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = CameraAvStreamManagement::Commands::CaptureSnapshot::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+- (void)setViewportWithParams:(MTRCameraAVStreamManagementClusterSetViewportParams *)params completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRCameraAVStreamManagementClusterSetViewportParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = CameraAvStreamManagement::Commands::SetViewport::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+- (void)setImageRotationWithParams:(MTRCameraAVStreamManagementClusterSetImageRotationParams *)params completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRCameraAVStreamManagementClusterSetImageRotationParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = CameraAvStreamManagement::Commands::SetImageRotation::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+- (void)setImageFlipHorizontalWithParams:(MTRCameraAVStreamManagementClusterSetImageFlipHorizontalParams *)params completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRCameraAVStreamManagementClusterSetImageFlipHorizontalParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = CameraAvStreamManagement::Commands::SetImageFlipHorizontal::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+- (void)setImageFlipVerticalWithParams:(MTRCameraAVStreamManagementClusterSetImageFlipVerticalParams *)params completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRCameraAVStreamManagementClusterSetImageFlipVerticalParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = CameraAvStreamManagement::Commands::SetImageFlipVertical::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (void)readAttributeMaxConcurrentVideoEncodersWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::MaxConcurrentVideoEncoders::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeMaxConcurrentVideoEncodersWithParams:(MTRSubscribeParams * _Nonnull)params
+                                       subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                                 reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::MaxConcurrentVideoEncoders::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeMaxConcurrentVideoEncodersWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::MaxConcurrentVideoEncoders::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeMaxEncodedPixelRateWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::MaxEncodedPixelRate::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeMaxEncodedPixelRateWithParams:(MTRSubscribeParams * _Nonnull)params
+                                subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                          reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::MaxEncodedPixelRate::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeMaxEncodedPixelRateWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::MaxEncodedPixelRate::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeVideoSensorParamsWithCompletion:(void (^)(MTRCameraAVStreamManagementClusterVideoSensorParamsStruct * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::VideoSensorParams::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeVideoSensorParamsWithParams:(MTRSubscribeParams * _Nonnull)params
+                              subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                        reportHandler:(void (^)(MTRCameraAVStreamManagementClusterVideoSensorParamsStruct * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::VideoSensorParams::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeVideoSensorParamsWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(MTRCameraAVStreamManagementClusterVideoSensorParamsStruct * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::VideoSensorParams::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeNightVisionCapableWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::NightVisionCapable::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeNightVisionCapableWithParams:(MTRSubscribeParams * _Nonnull)params
+                               subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                         reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::NightVisionCapable::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeNightVisionCapableWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::NightVisionCapable::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeMinViewPortWidthWithCompletion:(void (^)(MTRCameraAVStreamManagementClusterDimensionStruct * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::MinViewPortWidth::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeMinViewPortWidthWithParams:(MTRSubscribeParams * _Nonnull)params
+                             subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                       reportHandler:(void (^)(MTRCameraAVStreamManagementClusterDimensionStruct * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::MinViewPortWidth::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeMinViewPortWidthWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(MTRCameraAVStreamManagementClusterDimensionStruct * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::MinViewPortWidth::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeMinViewPortHeightWithCompletion:(void (^)(MTRCameraAVStreamManagementClusterDimensionStruct * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::MinViewPortHeight::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeMinViewPortHeightWithParams:(MTRSubscribeParams * _Nonnull)params
+                              subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                        reportHandler:(void (^)(MTRCameraAVStreamManagementClusterDimensionStruct * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::MinViewPortHeight::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeMinViewPortHeightWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(MTRCameraAVStreamManagementClusterDimensionStruct * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::MinViewPortHeight::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeRateDistortionTradeOffPointsWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::RateDistortionTradeOffPoints::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeRateDistortionTradeOffPointsWithParams:(MTRSubscribeParams * _Nonnull)params
+                                         subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                                   reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::RateDistortionTradeOffPoints::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeRateDistortionTradeOffPointsWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::RateDistortionTradeOffPoints::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeMaxPreRollBufferSizeWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::MaxPreRollBufferSize::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeMaxPreRollBufferSizeWithParams:(MTRSubscribeParams * _Nonnull)params
+                                 subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                           reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::MaxPreRollBufferSize::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeMaxPreRollBufferSizeWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::MaxPreRollBufferSize::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeMicrophoneCapabilitiesWithCompletion:(void (^)(MTRCameraAVStreamManagementClusterAudioCapabilitiesStruct * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::MicrophoneCapabilities::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeMicrophoneCapabilitiesWithParams:(MTRSubscribeParams * _Nonnull)params
+                                   subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                             reportHandler:(void (^)(MTRCameraAVStreamManagementClusterAudioCapabilitiesStruct * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::MicrophoneCapabilities::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeMicrophoneCapabilitiesWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(MTRCameraAVStreamManagementClusterAudioCapabilitiesStruct * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::MicrophoneCapabilities::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeSpeakerCapabilitiesWithCompletion:(void (^)(MTRCameraAVStreamManagementClusterAudioCapabilitiesStruct * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::SpeakerCapabilities::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeSpeakerCapabilitiesWithParams:(MTRSubscribeParams * _Nonnull)params
+                                subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                          reportHandler:(void (^)(MTRCameraAVStreamManagementClusterAudioCapabilitiesStruct * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::SpeakerCapabilities::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeSpeakerCapabilitiesWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(MTRCameraAVStreamManagementClusterAudioCapabilitiesStruct * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::SpeakerCapabilities::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeTwoWayTalkSupportWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::TwoWayTalkSupport::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeTwoWayTalkSupportWithParams:(MTRSubscribeParams * _Nonnull)params
+                              subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                        reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::TwoWayTalkSupport::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeTwoWayTalkSupportWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::TwoWayTalkSupport::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeSupportedSnapshotParamsWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::SupportedSnapshotParams::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeSupportedSnapshotParamsWithParams:(MTRSubscribeParams * _Nonnull)params
+                                    subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                              reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::SupportedSnapshotParams::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeSupportedSnapshotParamsWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::SupportedSnapshotParams::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeHDRCapableWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::HDRCapable::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeHDRCapableWithParams:(MTRSubscribeParams * _Nonnull)params
+                       subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                 reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::HDRCapable::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeHDRCapableWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::HDRCapable::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeMaxNetworkBandwidthWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::MaxNetworkBandwidth::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeMaxNetworkBandwidthWithParams:(MTRSubscribeParams * _Nonnull)params
+                                subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                          reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::MaxNetworkBandwidth::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeMaxNetworkBandwidthWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::MaxNetworkBandwidth::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeCurrentFrameRateWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::CurrentFrameRate::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeCurrentFrameRateWithParams:(MTRSubscribeParams * _Nonnull)params
+                             subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                       reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::CurrentFrameRate::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeCurrentFrameRateWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::CurrentFrameRate::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeHDRModeWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::HDRMode::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)writeAttributeHDRModeWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion
+{
+    [self writeAttributeHDRModeWithValue:(NSNumber * _Nonnull) value params:nil completion:completion];
+}
+- (void)writeAttributeHDRModeWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion
+{
+    // Make a copy of params before we go async.
+    params = [params copy];
+    value = [value copy];
+
+    auto * bridge = new MTRDefaultSuccessCallbackBridge(self.callbackQueue, ^(id _Nullable ignored, NSError * _Nullable error) { completion(error); }, ^(ExchangeManager & exchangeManager, const SessionHandle & session, DefaultSuccessCallbackType successCb, MTRErrorCallback failureCb, MTRCallbackBridgeBase * bridge) {
+        chip::Optional<uint16_t> timedWriteTimeout;
+        if (params != nil) {
+          if (params.timedWriteTimeout != nil){
+            timedWriteTimeout.SetValue(params.timedWriteTimeout.unsignedShortValue);
+          }
+        }
+
+        ListFreer listFreer;
+        using TypeInfo = CameraAvStreamManagement::Attributes::HDRMode::TypeInfo;
+        TypeInfo::Type cppValue;
+                cppValue = value.boolValue;
+
+        chip::Controller::ClusterBase cppCluster(exchangeManager, session, self.endpointID.unsignedShortValue);
+        return cppCluster.WriteAttribute<TypeInfo>(cppValue, bridge, successCb, failureCb, timedWriteTimeout); });
+    std::move(*bridge).DispatchAction(self.device);
+}
+
+- (void)subscribeAttributeHDRModeWithParams:(MTRSubscribeParams * _Nonnull)params
+                    subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                              reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::HDRMode::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeHDRModeWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::HDRMode::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeCurrentVideoCodecsWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::CurrentVideoCodecs::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeCurrentVideoCodecsWithParams:(MTRSubscribeParams * _Nonnull)params
+                               subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                         reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::CurrentVideoCodecs::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeCurrentVideoCodecsWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::CurrentVideoCodecs::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeCurrentSnapshotConfigWithCompletion:(void (^)(MTRCameraAVStreamManagementClusterSnapshotParamsStruct * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::CurrentSnapshotConfig::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeCurrentSnapshotConfigWithParams:(MTRSubscribeParams * _Nonnull)params
+                                  subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                            reportHandler:(void (^)(MTRCameraAVStreamManagementClusterSnapshotParamsStruct * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::CurrentSnapshotConfig::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeCurrentSnapshotConfigWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(MTRCameraAVStreamManagementClusterSnapshotParamsStruct * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::CurrentSnapshotConfig::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeFabricsUsingCameraWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::FabricsUsingCamera::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeFabricsUsingCameraWithParams:(MTRSubscribeParams * _Nonnull)params
+                               subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                         reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::FabricsUsingCamera::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeFabricsUsingCameraWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::FabricsUsingCamera::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeAllocatedVideoStreamsWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::AllocatedVideoStreams::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeAllocatedVideoStreamsWithParams:(MTRSubscribeParams * _Nonnull)params
+                                  subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                            reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::AllocatedVideoStreams::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeAllocatedVideoStreamsWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::AllocatedVideoStreams::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeAllocatedAudioStreamsWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::AllocatedAudioStreams::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeAllocatedAudioStreamsWithParams:(MTRSubscribeParams * _Nonnull)params
+                                  subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                            reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::AllocatedAudioStreams::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeAllocatedAudioStreamsWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::AllocatedAudioStreams::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeAllocatedSnapshotStreamsWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::AllocatedSnapshotStreams::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeAllocatedSnapshotStreamsWithParams:(MTRSubscribeParams * _Nonnull)params
+                                     subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                               reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::AllocatedSnapshotStreams::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeAllocatedSnapshotStreamsWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::AllocatedSnapshotStreams::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeRankedVideoStreamPrioritiesListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::RankedVideoStreamPrioritiesList::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)writeAttributeRankedVideoStreamPrioritiesListWithValue:(NSArray * _Nonnull)value completion:(MTRStatusCompletion)completion
+{
+    [self writeAttributeRankedVideoStreamPrioritiesListWithValue:(NSArray * _Nonnull) value params:nil completion:completion];
+}
+- (void)writeAttributeRankedVideoStreamPrioritiesListWithValue:(NSArray * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion
+{
+    // Make a copy of params before we go async.
+    params = [params copy];
+    value = [value copy];
+
+    auto * bridge = new MTRDefaultSuccessCallbackBridge(self.callbackQueue, ^(id _Nullable ignored, NSError * _Nullable error) { completion(error); }, ^(ExchangeManager & exchangeManager, const SessionHandle & session, DefaultSuccessCallbackType successCb, MTRErrorCallback failureCb, MTRCallbackBridgeBase * bridge) {
+        chip::Optional<uint16_t> timedWriteTimeout;
+        if (params != nil) {
+          if (params.timedWriteTimeout != nil){
+            timedWriteTimeout.SetValue(params.timedWriteTimeout.unsignedShortValue);
+          }
+        }
+
+        ListFreer listFreer;
+        using TypeInfo = CameraAvStreamManagement::Attributes::RankedVideoStreamPrioritiesList::TypeInfo;
+        TypeInfo::Type cppValue;
+          {
+            using ListType_0 = std::remove_reference_t<decltype(cppValue)>;
+            using ListMemberType_0 = ListMemberTypeGetter<ListType_0>::Type;
+            if (value.count != 0) {
+              auto * listHolder_0 = new ListHolder<ListMemberType_0>(value.count);
+              if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) {
+                return CHIP_ERROR_INVALID_ARGUMENT;
+              }
+              listFreer.add(listHolder_0);
+              for (size_t i_0 = 0; i_0 < value.count; ++i_0) {
+                if ( ! [value[i_0] isKindOfClass: [NSNumber class]] ) {
+                  // Wrong kind of value.
+                  return CHIP_ERROR_INVALID_ARGUMENT;
+                }
+                auto element_0 = (NSNumber *)value[i_0];
+                      listHolder_0->mList[i_0] = static_cast<std::remove_reference_t<decltype(listHolder_0->mList[i_0])>>(element_0.unsignedCharValue);
+      }
+              cppValue = ListType_0(listHolder_0->mList, value.count);
+            } else {
+              cppValue = ListType_0();
+            }
+          }
+
+        chip::Controller::ClusterBase cppCluster(exchangeManager, session, self.endpointID.unsignedShortValue);
+        return cppCluster.WriteAttribute<TypeInfo>(cppValue, bridge, successCb, failureCb, timedWriteTimeout); });
+    std::move(*bridge).DispatchAction(self.device);
+}
+
+- (void)subscribeAttributeRankedVideoStreamPrioritiesListWithParams:(MTRSubscribeParams * _Nonnull)params
+                                            subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                                      reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::RankedVideoStreamPrioritiesList::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeRankedVideoStreamPrioritiesListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::RankedVideoStreamPrioritiesList::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeSoftRecordingPrivacyModeSettingWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::SoftRecordingPrivacyModeSetting::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)writeAttributeSoftRecordingPrivacyModeSettingWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion
+{
+    [self writeAttributeSoftRecordingPrivacyModeSettingWithValue:(NSNumber * _Nonnull) value params:nil completion:completion];
+}
+- (void)writeAttributeSoftRecordingPrivacyModeSettingWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion
+{
+    // Make a copy of params before we go async.
+    params = [params copy];
+    value = [value copy];
+
+    auto * bridge = new MTRDefaultSuccessCallbackBridge(self.callbackQueue, ^(id _Nullable ignored, NSError * _Nullable error) { completion(error); }, ^(ExchangeManager & exchangeManager, const SessionHandle & session, DefaultSuccessCallbackType successCb, MTRErrorCallback failureCb, MTRCallbackBridgeBase * bridge) {
+        chip::Optional<uint16_t> timedWriteTimeout;
+        if (params != nil) {
+          if (params.timedWriteTimeout != nil){
+            timedWriteTimeout.SetValue(params.timedWriteTimeout.unsignedShortValue);
+          }
+        }
+
+        ListFreer listFreer;
+        using TypeInfo = CameraAvStreamManagement::Attributes::SoftRecordingPrivacyModeSetting::TypeInfo;
+        TypeInfo::Type cppValue;
+                cppValue = value.boolValue;
+
+        chip::Controller::ClusterBase cppCluster(exchangeManager, session, self.endpointID.unsignedShortValue);
+        return cppCluster.WriteAttribute<TypeInfo>(cppValue, bridge, successCb, failureCb, timedWriteTimeout); });
+    std::move(*bridge).DispatchAction(self.device);
+}
+
+- (void)subscribeAttributeSoftRecordingPrivacyModeSettingWithParams:(MTRSubscribeParams * _Nonnull)params
+                                            subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                                      reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::SoftRecordingPrivacyModeSetting::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeSoftRecordingPrivacyModeSettingWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::SoftRecordingPrivacyModeSetting::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeSoftLivestreamPrivacyModeSettingWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::SoftLivestreamPrivacyModeSetting::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)writeAttributeSoftLivestreamPrivacyModeSettingWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion
+{
+    [self writeAttributeSoftLivestreamPrivacyModeSettingWithValue:(NSNumber * _Nonnull) value params:nil completion:completion];
+}
+- (void)writeAttributeSoftLivestreamPrivacyModeSettingWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion
+{
+    // Make a copy of params before we go async.
+    params = [params copy];
+    value = [value copy];
+
+    auto * bridge = new MTRDefaultSuccessCallbackBridge(self.callbackQueue, ^(id _Nullable ignored, NSError * _Nullable error) { completion(error); }, ^(ExchangeManager & exchangeManager, const SessionHandle & session, DefaultSuccessCallbackType successCb, MTRErrorCallback failureCb, MTRCallbackBridgeBase * bridge) {
+        chip::Optional<uint16_t> timedWriteTimeout;
+        if (params != nil) {
+          if (params.timedWriteTimeout != nil){
+            timedWriteTimeout.SetValue(params.timedWriteTimeout.unsignedShortValue);
+          }
+        }
+
+        ListFreer listFreer;
+        using TypeInfo = CameraAvStreamManagement::Attributes::SoftLivestreamPrivacyModeSetting::TypeInfo;
+        TypeInfo::Type cppValue;
+                cppValue = value.boolValue;
+
+        chip::Controller::ClusterBase cppCluster(exchangeManager, session, self.endpointID.unsignedShortValue);
+        return cppCluster.WriteAttribute<TypeInfo>(cppValue, bridge, successCb, failureCb, timedWriteTimeout); });
+    std::move(*bridge).DispatchAction(self.device);
+}
+
+- (void)subscribeAttributeSoftLivestreamPrivacyModeSettingWithParams:(MTRSubscribeParams * _Nonnull)params
+                                             subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                                       reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::SoftLivestreamPrivacyModeSetting::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeSoftLivestreamPrivacyModeSettingWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::SoftLivestreamPrivacyModeSetting::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeHardPrivacyModeWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::HardPrivacyMode::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeHardPrivacyModeWithParams:(MTRSubscribeParams * _Nonnull)params
+                            subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                      reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::HardPrivacyMode::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeHardPrivacyModeWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::HardPrivacyMode::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeNightVisionWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::NightVision::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)writeAttributeNightVisionWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion
+{
+    [self writeAttributeNightVisionWithValue:(NSNumber * _Nonnull) value params:nil completion:completion];
+}
+- (void)writeAttributeNightVisionWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion
+{
+    // Make a copy of params before we go async.
+    params = [params copy];
+    value = [value copy];
+
+    auto * bridge = new MTRDefaultSuccessCallbackBridge(self.callbackQueue, ^(id _Nullable ignored, NSError * _Nullable error) { completion(error); }, ^(ExchangeManager & exchangeManager, const SessionHandle & session, DefaultSuccessCallbackType successCb, MTRErrorCallback failureCb, MTRCallbackBridgeBase * bridge) {
+        chip::Optional<uint16_t> timedWriteTimeout;
+        if (params != nil) {
+          if (params.timedWriteTimeout != nil){
+            timedWriteTimeout.SetValue(params.timedWriteTimeout.unsignedShortValue);
+          }
+        }
+
+        ListFreer listFreer;
+        using TypeInfo = CameraAvStreamManagement::Attributes::NightVision::TypeInfo;
+        TypeInfo::Type cppValue;
+              cppValue = static_cast<std::remove_reference_t<decltype(cppValue)>>(value.unsignedCharValue);
+
+        chip::Controller::ClusterBase cppCluster(exchangeManager, session, self.endpointID.unsignedShortValue);
+        return cppCluster.WriteAttribute<TypeInfo>(cppValue, bridge, successCb, failureCb, timedWriteTimeout); });
+    std::move(*bridge).DispatchAction(self.device);
+}
+
+- (void)subscribeAttributeNightVisionWithParams:(MTRSubscribeParams * _Nonnull)params
+                        subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                  reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::NightVision::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeNightVisionWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::NightVision::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeNightVisionIllumWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::NightVisionIllum::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)writeAttributeNightVisionIllumWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion
+{
+    [self writeAttributeNightVisionIllumWithValue:(NSNumber * _Nonnull) value params:nil completion:completion];
+}
+- (void)writeAttributeNightVisionIllumWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion
+{
+    // Make a copy of params before we go async.
+    params = [params copy];
+    value = [value copy];
+
+    auto * bridge = new MTRDefaultSuccessCallbackBridge(self.callbackQueue, ^(id _Nullable ignored, NSError * _Nullable error) { completion(error); }, ^(ExchangeManager & exchangeManager, const SessionHandle & session, DefaultSuccessCallbackType successCb, MTRErrorCallback failureCb, MTRCallbackBridgeBase * bridge) {
+        chip::Optional<uint16_t> timedWriteTimeout;
+        if (params != nil) {
+          if (params.timedWriteTimeout != nil){
+            timedWriteTimeout.SetValue(params.timedWriteTimeout.unsignedShortValue);
+          }
+        }
+
+        ListFreer listFreer;
+        using TypeInfo = CameraAvStreamManagement::Attributes::NightVisionIllum::TypeInfo;
+        TypeInfo::Type cppValue;
+              cppValue = static_cast<std::remove_reference_t<decltype(cppValue)>>(value.unsignedCharValue);
+
+        chip::Controller::ClusterBase cppCluster(exchangeManager, session, self.endpointID.unsignedShortValue);
+        return cppCluster.WriteAttribute<TypeInfo>(cppValue, bridge, successCb, failureCb, timedWriteTimeout); });
+    std::move(*bridge).DispatchAction(self.device);
+}
+
+- (void)subscribeAttributeNightVisionIllumWithParams:(MTRSubscribeParams * _Nonnull)params
+                             subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                       reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::NightVisionIllum::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeNightVisionIllumWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::NightVisionIllum::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeAWBWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::Awb::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)writeAttributeAWBWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion
+{
+    [self writeAttributeAWBWithValue:(NSNumber * _Nonnull) value params:nil completion:completion];
+}
+- (void)writeAttributeAWBWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion
+{
+    // Make a copy of params before we go async.
+    params = [params copy];
+    value = [value copy];
+
+    auto * bridge = new MTRDefaultSuccessCallbackBridge(self.callbackQueue, ^(id _Nullable ignored, NSError * _Nullable error) { completion(error); }, ^(ExchangeManager & exchangeManager, const SessionHandle & session, DefaultSuccessCallbackType successCb, MTRErrorCallback failureCb, MTRCallbackBridgeBase * bridge) {
+        chip::Optional<uint16_t> timedWriteTimeout;
+        if (params != nil) {
+          if (params.timedWriteTimeout != nil){
+            timedWriteTimeout.SetValue(params.timedWriteTimeout.unsignedShortValue);
+          }
+        }
+
+        ListFreer listFreer;
+        using TypeInfo = CameraAvStreamManagement::Attributes::Awb::TypeInfo;
+        TypeInfo::Type cppValue;
+                cppValue = value.boolValue;
+
+        chip::Controller::ClusterBase cppCluster(exchangeManager, session, self.endpointID.unsignedShortValue);
+        return cppCluster.WriteAttribute<TypeInfo>(cppValue, bridge, successCb, failureCb, timedWriteTimeout); });
+    std::move(*bridge).DispatchAction(self.device);
+}
+
+- (void)subscribeAttributeAWBWithParams:(MTRSubscribeParams * _Nonnull)params
+                subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                          reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::Awb::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeAWBWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::Awb::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeShutterSpeedWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::ShutterSpeed::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)writeAttributeShutterSpeedWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion
+{
+    [self writeAttributeShutterSpeedWithValue:(NSNumber * _Nonnull) value params:nil completion:completion];
+}
+- (void)writeAttributeShutterSpeedWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion
+{
+    // Make a copy of params before we go async.
+    params = [params copy];
+    value = [value copy];
+
+    auto * bridge = new MTRDefaultSuccessCallbackBridge(self.callbackQueue, ^(id _Nullable ignored, NSError * _Nullable error) { completion(error); }, ^(ExchangeManager & exchangeManager, const SessionHandle & session, DefaultSuccessCallbackType successCb, MTRErrorCallback failureCb, MTRCallbackBridgeBase * bridge) {
+        chip::Optional<uint16_t> timedWriteTimeout;
+        if (params != nil) {
+          if (params.timedWriteTimeout != nil){
+            timedWriteTimeout.SetValue(params.timedWriteTimeout.unsignedShortValue);
+          }
+        }
+
+        ListFreer listFreer;
+        using TypeInfo = CameraAvStreamManagement::Attributes::ShutterSpeed::TypeInfo;
+        TypeInfo::Type cppValue;
+                cppValue = value.boolValue;
+
+        chip::Controller::ClusterBase cppCluster(exchangeManager, session, self.endpointID.unsignedShortValue);
+        return cppCluster.WriteAttribute<TypeInfo>(cppValue, bridge, successCb, failureCb, timedWriteTimeout); });
+    std::move(*bridge).DispatchAction(self.device);
+}
+
+- (void)subscribeAttributeShutterSpeedWithParams:(MTRSubscribeParams * _Nonnull)params
+                         subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                   reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::ShutterSpeed::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeShutterSpeedWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::ShutterSpeed::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeISOWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::Iso::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)writeAttributeISOWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion
+{
+    [self writeAttributeISOWithValue:(NSNumber * _Nonnull) value params:nil completion:completion];
+}
+- (void)writeAttributeISOWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion
+{
+    // Make a copy of params before we go async.
+    params = [params copy];
+    value = [value copy];
+
+    auto * bridge = new MTRDefaultSuccessCallbackBridge(self.callbackQueue, ^(id _Nullable ignored, NSError * _Nullable error) { completion(error); }, ^(ExchangeManager & exchangeManager, const SessionHandle & session, DefaultSuccessCallbackType successCb, MTRErrorCallback failureCb, MTRCallbackBridgeBase * bridge) {
+        chip::Optional<uint16_t> timedWriteTimeout;
+        if (params != nil) {
+          if (params.timedWriteTimeout != nil){
+            timedWriteTimeout.SetValue(params.timedWriteTimeout.unsignedShortValue);
+          }
+        }
+
+        ListFreer listFreer;
+        using TypeInfo = CameraAvStreamManagement::Attributes::Iso::TypeInfo;
+        TypeInfo::Type cppValue;
+                cppValue = value.boolValue;
+
+        chip::Controller::ClusterBase cppCluster(exchangeManager, session, self.endpointID.unsignedShortValue);
+        return cppCluster.WriteAttribute<TypeInfo>(cppValue, bridge, successCb, failureCb, timedWriteTimeout); });
+    std::move(*bridge).DispatchAction(self.device);
+}
+
+- (void)subscribeAttributeISOWithParams:(MTRSubscribeParams * _Nonnull)params
+                subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                          reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::Iso::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeISOWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::Iso::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeViewportWithCompletion:(void (^)(MTRCameraAVStreamManagementClusterViewportStruct * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::Viewport::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeViewportWithParams:(MTRSubscribeParams * _Nonnull)params
+                     subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                               reportHandler:(void (^)(MTRCameraAVStreamManagementClusterViewportStruct * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::Viewport::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeViewportWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(MTRCameraAVStreamManagementClusterViewportStruct * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::Viewport::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeSpkrOnOffWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::SpkrOnOff::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)writeAttributeSpkrOnOffWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion
+{
+    [self writeAttributeSpkrOnOffWithValue:(NSNumber * _Nonnull) value params:nil completion:completion];
+}
+- (void)writeAttributeSpkrOnOffWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion
+{
+    // Make a copy of params before we go async.
+    params = [params copy];
+    value = [value copy];
+
+    auto * bridge = new MTRDefaultSuccessCallbackBridge(self.callbackQueue, ^(id _Nullable ignored, NSError * _Nullable error) { completion(error); }, ^(ExchangeManager & exchangeManager, const SessionHandle & session, DefaultSuccessCallbackType successCb, MTRErrorCallback failureCb, MTRCallbackBridgeBase * bridge) {
+        chip::Optional<uint16_t> timedWriteTimeout;
+        if (params != nil) {
+          if (params.timedWriteTimeout != nil){
+            timedWriteTimeout.SetValue(params.timedWriteTimeout.unsignedShortValue);
+          }
+        }
+
+        ListFreer listFreer;
+        using TypeInfo = CameraAvStreamManagement::Attributes::SpkrOnOff::TypeInfo;
+        TypeInfo::Type cppValue;
+                cppValue = value.boolValue;
+
+        chip::Controller::ClusterBase cppCluster(exchangeManager, session, self.endpointID.unsignedShortValue);
+        return cppCluster.WriteAttribute<TypeInfo>(cppValue, bridge, successCb, failureCb, timedWriteTimeout); });
+    std::move(*bridge).DispatchAction(self.device);
+}
+
+- (void)subscribeAttributeSpkrOnOffWithParams:(MTRSubscribeParams * _Nonnull)params
+                      subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::SpkrOnOff::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeSpkrOnOffWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::SpkrOnOff::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeSpkrVolumeLevelWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::SpkrVolumeLevel::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)writeAttributeSpkrVolumeLevelWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion
+{
+    [self writeAttributeSpkrVolumeLevelWithValue:(NSNumber * _Nonnull) value params:nil completion:completion];
+}
+- (void)writeAttributeSpkrVolumeLevelWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion
+{
+    // Make a copy of params before we go async.
+    params = [params copy];
+    value = [value copy];
+
+    auto * bridge = new MTRDefaultSuccessCallbackBridge(self.callbackQueue, ^(id _Nullable ignored, NSError * _Nullable error) { completion(error); }, ^(ExchangeManager & exchangeManager, const SessionHandle & session, DefaultSuccessCallbackType successCb, MTRErrorCallback failureCb, MTRCallbackBridgeBase * bridge) {
+        chip::Optional<uint16_t> timedWriteTimeout;
+        if (params != nil) {
+          if (params.timedWriteTimeout != nil){
+            timedWriteTimeout.SetValue(params.timedWriteTimeout.unsignedShortValue);
+          }
+        }
+
+        ListFreer listFreer;
+        using TypeInfo = CameraAvStreamManagement::Attributes::SpkrVolumeLevel::TypeInfo;
+        TypeInfo::Type cppValue;
+                cppValue = value.unsignedCharValue;
+
+        chip::Controller::ClusterBase cppCluster(exchangeManager, session, self.endpointID.unsignedShortValue);
+        return cppCluster.WriteAttribute<TypeInfo>(cppValue, bridge, successCb, failureCb, timedWriteTimeout); });
+    std::move(*bridge).DispatchAction(self.device);
+}
+
+- (void)subscribeAttributeSpkrVolumeLevelWithParams:(MTRSubscribeParams * _Nonnull)params
+                            subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                      reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::SpkrVolumeLevel::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeSpkrVolumeLevelWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::SpkrVolumeLevel::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeSpkrMaxLevelWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::SpkrMaxLevel::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)writeAttributeSpkrMaxLevelWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion
+{
+    [self writeAttributeSpkrMaxLevelWithValue:(NSNumber * _Nonnull) value params:nil completion:completion];
+}
+- (void)writeAttributeSpkrMaxLevelWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion
+{
+    // Make a copy of params before we go async.
+    params = [params copy];
+    value = [value copy];
+
+    auto * bridge = new MTRDefaultSuccessCallbackBridge(self.callbackQueue, ^(id _Nullable ignored, NSError * _Nullable error) { completion(error); }, ^(ExchangeManager & exchangeManager, const SessionHandle & session, DefaultSuccessCallbackType successCb, MTRErrorCallback failureCb, MTRCallbackBridgeBase * bridge) {
+        chip::Optional<uint16_t> timedWriteTimeout;
+        if (params != nil) {
+          if (params.timedWriteTimeout != nil){
+            timedWriteTimeout.SetValue(params.timedWriteTimeout.unsignedShortValue);
+          }
+        }
+
+        ListFreer listFreer;
+        using TypeInfo = CameraAvStreamManagement::Attributes::SpkrMaxLevel::TypeInfo;
+        TypeInfo::Type cppValue;
+                cppValue = value.unsignedCharValue;
+
+        chip::Controller::ClusterBase cppCluster(exchangeManager, session, self.endpointID.unsignedShortValue);
+        return cppCluster.WriteAttribute<TypeInfo>(cppValue, bridge, successCb, failureCb, timedWriteTimeout); });
+    std::move(*bridge).DispatchAction(self.device);
+}
+
+- (void)subscribeAttributeSpkrMaxLevelWithParams:(MTRSubscribeParams * _Nonnull)params
+                         subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                   reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::SpkrMaxLevel::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeSpkrMaxLevelWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::SpkrMaxLevel::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeSpkrMinLevelWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::SpkrMinLevel::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)writeAttributeSpkrMinLevelWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion
+{
+    [self writeAttributeSpkrMinLevelWithValue:(NSNumber * _Nonnull) value params:nil completion:completion];
+}
+- (void)writeAttributeSpkrMinLevelWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion
+{
+    // Make a copy of params before we go async.
+    params = [params copy];
+    value = [value copy];
+
+    auto * bridge = new MTRDefaultSuccessCallbackBridge(self.callbackQueue, ^(id _Nullable ignored, NSError * _Nullable error) { completion(error); }, ^(ExchangeManager & exchangeManager, const SessionHandle & session, DefaultSuccessCallbackType successCb, MTRErrorCallback failureCb, MTRCallbackBridgeBase * bridge) {
+        chip::Optional<uint16_t> timedWriteTimeout;
+        if (params != nil) {
+          if (params.timedWriteTimeout != nil){
+            timedWriteTimeout.SetValue(params.timedWriteTimeout.unsignedShortValue);
+          }
+        }
+
+        ListFreer listFreer;
+        using TypeInfo = CameraAvStreamManagement::Attributes::SpkrMinLevel::TypeInfo;
+        TypeInfo::Type cppValue;
+                cppValue = value.unsignedCharValue;
+
+        chip::Controller::ClusterBase cppCluster(exchangeManager, session, self.endpointID.unsignedShortValue);
+        return cppCluster.WriteAttribute<TypeInfo>(cppValue, bridge, successCb, failureCb, timedWriteTimeout); });
+    std::move(*bridge).DispatchAction(self.device);
+}
+
+- (void)subscribeAttributeSpkrMinLevelWithParams:(MTRSubscribeParams * _Nonnull)params
+                         subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                   reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::SpkrMinLevel::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeSpkrMinLevelWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::SpkrMinLevel::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeMicOnOffWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::MicOnOff::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)writeAttributeMicOnOffWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion
+{
+    [self writeAttributeMicOnOffWithValue:(NSNumber * _Nonnull) value params:nil completion:completion];
+}
+- (void)writeAttributeMicOnOffWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion
+{
+    // Make a copy of params before we go async.
+    params = [params copy];
+    value = [value copy];
+
+    auto * bridge = new MTRDefaultSuccessCallbackBridge(self.callbackQueue, ^(id _Nullable ignored, NSError * _Nullable error) { completion(error); }, ^(ExchangeManager & exchangeManager, const SessionHandle & session, DefaultSuccessCallbackType successCb, MTRErrorCallback failureCb, MTRCallbackBridgeBase * bridge) {
+        chip::Optional<uint16_t> timedWriteTimeout;
+        if (params != nil) {
+          if (params.timedWriteTimeout != nil){
+            timedWriteTimeout.SetValue(params.timedWriteTimeout.unsignedShortValue);
+          }
+        }
+
+        ListFreer listFreer;
+        using TypeInfo = CameraAvStreamManagement::Attributes::MicOnOff::TypeInfo;
+        TypeInfo::Type cppValue;
+                cppValue = value.boolValue;
+
+        chip::Controller::ClusterBase cppCluster(exchangeManager, session, self.endpointID.unsignedShortValue);
+        return cppCluster.WriteAttribute<TypeInfo>(cppValue, bridge, successCb, failureCb, timedWriteTimeout); });
+    std::move(*bridge).DispatchAction(self.device);
+}
+
+- (void)subscribeAttributeMicOnOffWithParams:(MTRSubscribeParams * _Nonnull)params
+                     subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                               reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::MicOnOff::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeMicOnOffWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::MicOnOff::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeMicCurrentLevelWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::MicCurrentLevel::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)writeAttributeMicCurrentLevelWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion
+{
+    [self writeAttributeMicCurrentLevelWithValue:(NSNumber * _Nonnull) value params:nil completion:completion];
+}
+- (void)writeAttributeMicCurrentLevelWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion
+{
+    // Make a copy of params before we go async.
+    params = [params copy];
+    value = [value copy];
+
+    auto * bridge = new MTRDefaultSuccessCallbackBridge(self.callbackQueue, ^(id _Nullable ignored, NSError * _Nullable error) { completion(error); }, ^(ExchangeManager & exchangeManager, const SessionHandle & session, DefaultSuccessCallbackType successCb, MTRErrorCallback failureCb, MTRCallbackBridgeBase * bridge) {
+        chip::Optional<uint16_t> timedWriteTimeout;
+        if (params != nil) {
+          if (params.timedWriteTimeout != nil){
+            timedWriteTimeout.SetValue(params.timedWriteTimeout.unsignedShortValue);
+          }
+        }
+
+        ListFreer listFreer;
+        using TypeInfo = CameraAvStreamManagement::Attributes::MicCurrentLevel::TypeInfo;
+        TypeInfo::Type cppValue;
+                cppValue = value.unsignedCharValue;
+
+        chip::Controller::ClusterBase cppCluster(exchangeManager, session, self.endpointID.unsignedShortValue);
+        return cppCluster.WriteAttribute<TypeInfo>(cppValue, bridge, successCb, failureCb, timedWriteTimeout); });
+    std::move(*bridge).DispatchAction(self.device);
+}
+
+- (void)subscribeAttributeMicCurrentLevelWithParams:(MTRSubscribeParams * _Nonnull)params
+                            subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                      reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::MicCurrentLevel::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeMicCurrentLevelWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::MicCurrentLevel::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeMicMaxLevelWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::MicMaxLevel::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)writeAttributeMicMaxLevelWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion
+{
+    [self writeAttributeMicMaxLevelWithValue:(NSNumber * _Nonnull) value params:nil completion:completion];
+}
+- (void)writeAttributeMicMaxLevelWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion
+{
+    // Make a copy of params before we go async.
+    params = [params copy];
+    value = [value copy];
+
+    auto * bridge = new MTRDefaultSuccessCallbackBridge(self.callbackQueue, ^(id _Nullable ignored, NSError * _Nullable error) { completion(error); }, ^(ExchangeManager & exchangeManager, const SessionHandle & session, DefaultSuccessCallbackType successCb, MTRErrorCallback failureCb, MTRCallbackBridgeBase * bridge) {
+        chip::Optional<uint16_t> timedWriteTimeout;
+        if (params != nil) {
+          if (params.timedWriteTimeout != nil){
+            timedWriteTimeout.SetValue(params.timedWriteTimeout.unsignedShortValue);
+          }
+        }
+
+        ListFreer listFreer;
+        using TypeInfo = CameraAvStreamManagement::Attributes::MicMaxLevel::TypeInfo;
+        TypeInfo::Type cppValue;
+                cppValue = value.unsignedCharValue;
+
+        chip::Controller::ClusterBase cppCluster(exchangeManager, session, self.endpointID.unsignedShortValue);
+        return cppCluster.WriteAttribute<TypeInfo>(cppValue, bridge, successCb, failureCb, timedWriteTimeout); });
+    std::move(*bridge).DispatchAction(self.device);
+}
+
+- (void)subscribeAttributeMicMaxLevelWithParams:(MTRSubscribeParams * _Nonnull)params
+                        subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                  reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::MicMaxLevel::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeMicMaxLevelWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::MicMaxLevel::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeMicMinLevelWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::MicMinLevel::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)writeAttributeMicMinLevelWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion
+{
+    [self writeAttributeMicMinLevelWithValue:(NSNumber * _Nonnull) value params:nil completion:completion];
+}
+- (void)writeAttributeMicMinLevelWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion
+{
+    // Make a copy of params before we go async.
+    params = [params copy];
+    value = [value copy];
+
+    auto * bridge = new MTRDefaultSuccessCallbackBridge(self.callbackQueue, ^(id _Nullable ignored, NSError * _Nullable error) { completion(error); }, ^(ExchangeManager & exchangeManager, const SessionHandle & session, DefaultSuccessCallbackType successCb, MTRErrorCallback failureCb, MTRCallbackBridgeBase * bridge) {
+        chip::Optional<uint16_t> timedWriteTimeout;
+        if (params != nil) {
+          if (params.timedWriteTimeout != nil){
+            timedWriteTimeout.SetValue(params.timedWriteTimeout.unsignedShortValue);
+          }
+        }
+
+        ListFreer listFreer;
+        using TypeInfo = CameraAvStreamManagement::Attributes::MicMinLevel::TypeInfo;
+        TypeInfo::Type cppValue;
+                cppValue = value.unsignedCharValue;
+
+        chip::Controller::ClusterBase cppCluster(exchangeManager, session, self.endpointID.unsignedShortValue);
+        return cppCluster.WriteAttribute<TypeInfo>(cppValue, bridge, successCb, failureCb, timedWriteTimeout); });
+    std::move(*bridge).DispatchAction(self.device);
+}
+
+- (void)subscribeAttributeMicMinLevelWithParams:(MTRSubscribeParams * _Nonnull)params
+                        subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                  reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::MicMinLevel::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeMicMinLevelWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::MicMinLevel::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeMicAGCWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::MicAGC::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)writeAttributeMicAGCWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion
+{
+    [self writeAttributeMicAGCWithValue:(NSNumber * _Nonnull) value params:nil completion:completion];
+}
+- (void)writeAttributeMicAGCWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion
+{
+    // Make a copy of params before we go async.
+    params = [params copy];
+    value = [value copy];
+
+    auto * bridge = new MTRDefaultSuccessCallbackBridge(self.callbackQueue, ^(id _Nullable ignored, NSError * _Nullable error) { completion(error); }, ^(ExchangeManager & exchangeManager, const SessionHandle & session, DefaultSuccessCallbackType successCb, MTRErrorCallback failureCb, MTRCallbackBridgeBase * bridge) {
+        chip::Optional<uint16_t> timedWriteTimeout;
+        if (params != nil) {
+          if (params.timedWriteTimeout != nil){
+            timedWriteTimeout.SetValue(params.timedWriteTimeout.unsignedShortValue);
+          }
+        }
+
+        ListFreer listFreer;
+        using TypeInfo = CameraAvStreamManagement::Attributes::MicAGC::TypeInfo;
+        TypeInfo::Type cppValue;
+                cppValue = value.boolValue;
+
+        chip::Controller::ClusterBase cppCluster(exchangeManager, session, self.endpointID.unsignedShortValue);
+        return cppCluster.WriteAttribute<TypeInfo>(cppValue, bridge, successCb, failureCb, timedWriteTimeout); });
+    std::move(*bridge).DispatchAction(self.device);
+}
+
+- (void)subscribeAttributeMicAGCWithParams:(MTRSubscribeParams * _Nonnull)params
+                   subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                             reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::MicAGC::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeMicAGCWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::MicAGC::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeImageRotationWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::ImageRotation::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeImageRotationWithParams:(MTRSubscribeParams * _Nonnull)params
+                          subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                    reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::ImageRotation::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeImageRotationWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::ImageRotation::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeImageFlipHorizontalWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::ImageFlipHorizontal::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeImageFlipHorizontalWithParams:(MTRSubscribeParams * _Nonnull)params
+                                subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                          reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::ImageFlipHorizontal::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeImageFlipHorizontalWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::ImageFlipHorizontal::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeImageFlipVerticalWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::ImageFlipVertical::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeImageFlipVerticalWithParams:(MTRSubscribeParams * _Nonnull)params
+                              subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                        reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::ImageFlipVertical::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeImageFlipVerticalWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::ImageFlipVertical::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeLocalVideoRecordingEnabledWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::LocalVideoRecordingEnabled::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)writeAttributeLocalVideoRecordingEnabledWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion
+{
+    [self writeAttributeLocalVideoRecordingEnabledWithValue:(NSNumber * _Nonnull) value params:nil completion:completion];
+}
+- (void)writeAttributeLocalVideoRecordingEnabledWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion
+{
+    // Make a copy of params before we go async.
+    params = [params copy];
+    value = [value copy];
+
+    auto * bridge = new MTRDefaultSuccessCallbackBridge(self.callbackQueue, ^(id _Nullable ignored, NSError * _Nullable error) { completion(error); }, ^(ExchangeManager & exchangeManager, const SessionHandle & session, DefaultSuccessCallbackType successCb, MTRErrorCallback failureCb, MTRCallbackBridgeBase * bridge) {
+        chip::Optional<uint16_t> timedWriteTimeout;
+        if (params != nil) {
+          if (params.timedWriteTimeout != nil){
+            timedWriteTimeout.SetValue(params.timedWriteTimeout.unsignedShortValue);
+          }
+        }
+
+        ListFreer listFreer;
+        using TypeInfo = CameraAvStreamManagement::Attributes::LocalVideoRecordingEnabled::TypeInfo;
+        TypeInfo::Type cppValue;
+                cppValue = value.boolValue;
+
+        chip::Controller::ClusterBase cppCluster(exchangeManager, session, self.endpointID.unsignedShortValue);
+        return cppCluster.WriteAttribute<TypeInfo>(cppValue, bridge, successCb, failureCb, timedWriteTimeout); });
+    std::move(*bridge).DispatchAction(self.device);
+}
+
+- (void)subscribeAttributeLocalVideoRecordingEnabledWithParams:(MTRSubscribeParams * _Nonnull)params
+                                       subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                                 reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::LocalVideoRecordingEnabled::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeLocalVideoRecordingEnabledWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::LocalVideoRecordingEnabled::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeLocalSnapshotRecordingEnabledWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::LocalSnapshotRecordingEnabled::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)writeAttributeLocalSnapshotRecordingEnabledWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion
+{
+    [self writeAttributeLocalSnapshotRecordingEnabledWithValue:(NSNumber * _Nonnull) value params:nil completion:completion];
+}
+- (void)writeAttributeLocalSnapshotRecordingEnabledWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion
+{
+    // Make a copy of params before we go async.
+    params = [params copy];
+    value = [value copy];
+
+    auto * bridge = new MTRDefaultSuccessCallbackBridge(self.callbackQueue, ^(id _Nullable ignored, NSError * _Nullable error) { completion(error); }, ^(ExchangeManager & exchangeManager, const SessionHandle & session, DefaultSuccessCallbackType successCb, MTRErrorCallback failureCb, MTRCallbackBridgeBase * bridge) {
+        chip::Optional<uint16_t> timedWriteTimeout;
+        if (params != nil) {
+          if (params.timedWriteTimeout != nil){
+            timedWriteTimeout.SetValue(params.timedWriteTimeout.unsignedShortValue);
+          }
+        }
+
+        ListFreer listFreer;
+        using TypeInfo = CameraAvStreamManagement::Attributes::LocalSnapshotRecordingEnabled::TypeInfo;
+        TypeInfo::Type cppValue;
+                cppValue = value.boolValue;
+
+        chip::Controller::ClusterBase cppCluster(exchangeManager, session, self.endpointID.unsignedShortValue);
+        return cppCluster.WriteAttribute<TypeInfo>(cppValue, bridge, successCb, failureCb, timedWriteTimeout); });
+    std::move(*bridge).DispatchAction(self.device);
+}
+
+- (void)subscribeAttributeLocalSnapshotRecordingEnabledWithParams:(MTRSubscribeParams * _Nonnull)params
+                                          subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                                    reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::LocalSnapshotRecordingEnabled::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeLocalSnapshotRecordingEnabledWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::LocalSnapshotRecordingEnabled::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeStatusLightWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::StatusLight::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)writeAttributeStatusLightWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion
+{
+    [self writeAttributeStatusLightWithValue:(NSNumber * _Nonnull) value params:nil completion:completion];
+}
+- (void)writeAttributeStatusLightWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion
+{
+    // Make a copy of params before we go async.
+    params = [params copy];
+    value = [value copy];
+
+    auto * bridge = new MTRDefaultSuccessCallbackBridge(self.callbackQueue, ^(id _Nullable ignored, NSError * _Nullable error) { completion(error); }, ^(ExchangeManager & exchangeManager, const SessionHandle & session, DefaultSuccessCallbackType successCb, MTRErrorCallback failureCb, MTRCallbackBridgeBase * bridge) {
+        chip::Optional<uint16_t> timedWriteTimeout;
+        if (params != nil) {
+          if (params.timedWriteTimeout != nil){
+            timedWriteTimeout.SetValue(params.timedWriteTimeout.unsignedShortValue);
+          }
+        }
+
+        ListFreer listFreer;
+        using TypeInfo = CameraAvStreamManagement::Attributes::StatusLight::TypeInfo;
+        TypeInfo::Type cppValue;
+                cppValue = value.boolValue;
+
+        chip::Controller::ClusterBase cppCluster(exchangeManager, session, self.endpointID.unsignedShortValue);
+        return cppCluster.WriteAttribute<TypeInfo>(cppValue, bridge, successCb, failureCb, timedWriteTimeout); });
+    std::move(*bridge).DispatchAction(self.device);
+}
+
+- (void)subscribeAttributeStatusLightWithParams:(MTRSubscribeParams * _Nonnull)params
+                        subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                  reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::StatusLight::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeStatusLightWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::StatusLight::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeStatusLightBrightnessWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::StatusLightBrightness::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)writeAttributeStatusLightBrightnessWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion
+{
+    [self writeAttributeStatusLightBrightnessWithValue:(NSNumber * _Nonnull) value params:nil completion:completion];
+}
+- (void)writeAttributeStatusLightBrightnessWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion
+{
+    // Make a copy of params before we go async.
+    params = [params copy];
+    value = [value copy];
+
+    auto * bridge = new MTRDefaultSuccessCallbackBridge(self.callbackQueue, ^(id _Nullable ignored, NSError * _Nullable error) { completion(error); }, ^(ExchangeManager & exchangeManager, const SessionHandle & session, DefaultSuccessCallbackType successCb, MTRErrorCallback failureCb, MTRCallbackBridgeBase * bridge) {
+        chip::Optional<uint16_t> timedWriteTimeout;
+        if (params != nil) {
+          if (params.timedWriteTimeout != nil){
+            timedWriteTimeout.SetValue(params.timedWriteTimeout.unsignedShortValue);
+          }
+        }
+
+        ListFreer listFreer;
+        using TypeInfo = CameraAvStreamManagement::Attributes::StatusLightBrightness::TypeInfo;
+        TypeInfo::Type cppValue;
+              cppValue = static_cast<std::remove_reference_t<decltype(cppValue)>>(value.unsignedCharValue);
+
+        chip::Controller::ClusterBase cppCluster(exchangeManager, session, self.endpointID.unsignedShortValue);
+        return cppCluster.WriteAttribute<TypeInfo>(cppValue, bridge, successCb, failureCb, timedWriteTimeout); });
+    std::move(*bridge).DispatchAction(self.device);
+}
+
+- (void)subscribeAttributeStatusLightBrightnessWithParams:(MTRSubscribeParams * _Nonnull)params
+                                  subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                            reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::StatusLightBrightness::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeStatusLightBrightnessWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::StatusLightBrightness::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeDepthSensorStatusWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::DepthSensorStatus::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)writeAttributeDepthSensorStatusWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion
+{
+    [self writeAttributeDepthSensorStatusWithValue:(NSNumber * _Nonnull) value params:nil completion:completion];
+}
+- (void)writeAttributeDepthSensorStatusWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion
+{
+    // Make a copy of params before we go async.
+    params = [params copy];
+    value = [value copy];
+
+    auto * bridge = new MTRDefaultSuccessCallbackBridge(self.callbackQueue, ^(id _Nullable ignored, NSError * _Nullable error) { completion(error); }, ^(ExchangeManager & exchangeManager, const SessionHandle & session, DefaultSuccessCallbackType successCb, MTRErrorCallback failureCb, MTRCallbackBridgeBase * bridge) {
+        chip::Optional<uint16_t> timedWriteTimeout;
+        if (params != nil) {
+          if (params.timedWriteTimeout != nil){
+            timedWriteTimeout.SetValue(params.timedWriteTimeout.unsignedShortValue);
+          }
+        }
+
+        ListFreer listFreer;
+        using TypeInfo = CameraAvStreamManagement::Attributes::DepthSensorStatus::TypeInfo;
+        TypeInfo::Type cppValue;
+              cppValue = static_cast<std::remove_reference_t<decltype(cppValue)>>(value.unsignedCharValue);
+
+        chip::Controller::ClusterBase cppCluster(exchangeManager, session, self.endpointID.unsignedShortValue);
+        return cppCluster.WriteAttribute<TypeInfo>(cppValue, bridge, successCb, failureCb, timedWriteTimeout); });
+    std::move(*bridge).DispatchAction(self.device);
+}
+
+- (void)subscribeAttributeDepthSensorStatusWithParams:(MTRSubscribeParams * _Nonnull)params
+                              subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                        reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::DepthSensorStatus::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeDepthSensorStatusWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::DepthSensorStatus::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeWatermarkEnabledWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::WatermarkEnabled::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)writeAttributeWatermarkEnabledWithValue:(NSArray * _Nonnull)value completion:(MTRStatusCompletion)completion
+{
+    [self writeAttributeWatermarkEnabledWithValue:(NSArray * _Nonnull) value params:nil completion:completion];
+}
+- (void)writeAttributeWatermarkEnabledWithValue:(NSArray * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion
+{
+    // Make a copy of params before we go async.
+    params = [params copy];
+    value = [value copy];
+
+    auto * bridge = new MTRDefaultSuccessCallbackBridge(self.callbackQueue, ^(id _Nullable ignored, NSError * _Nullable error) { completion(error); }, ^(ExchangeManager & exchangeManager, const SessionHandle & session, DefaultSuccessCallbackType successCb, MTRErrorCallback failureCb, MTRCallbackBridgeBase * bridge) {
+        chip::Optional<uint16_t> timedWriteTimeout;
+        if (params != nil) {
+          if (params.timedWriteTimeout != nil){
+            timedWriteTimeout.SetValue(params.timedWriteTimeout.unsignedShortValue);
+          }
+        }
+
+        ListFreer listFreer;
+        using TypeInfo = CameraAvStreamManagement::Attributes::WatermarkEnabled::TypeInfo;
+        TypeInfo::Type cppValue;
+          {
+            using ListType_0 = std::remove_reference_t<decltype(cppValue)>;
+            using ListMemberType_0 = ListMemberTypeGetter<ListType_0>::Type;
+            if (value.count != 0) {
+              auto * listHolder_0 = new ListHolder<ListMemberType_0>(value.count);
+              if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) {
+                return CHIP_ERROR_INVALID_ARGUMENT;
+              }
+              listFreer.add(listHolder_0);
+              for (size_t i_0 = 0; i_0 < value.count; ++i_0) {
+                if ( ! [value[i_0] isKindOfClass: [MTRCameraAVStreamManagementClusterPerStreamStruct class]] ) {
+                  // Wrong kind of value.
+                  return CHIP_ERROR_INVALID_ARGUMENT;
+                }
+                auto element_0 = (MTRCameraAVStreamManagementClusterPerStreamStruct *)value[i_0];
+                             listHolder_0->mList[i_0].streamID = element_0.streamID.unsignedShortValue;
+             listHolder_0->mList[i_0].onOff = element_0.onOff.boolValue;
+      }
+              cppValue = ListType_0(listHolder_0->mList, value.count);
+            } else {
+              cppValue = ListType_0();
+            }
+          }
+
+        chip::Controller::ClusterBase cppCluster(exchangeManager, session, self.endpointID.unsignedShortValue);
+        return cppCluster.WriteAttribute<TypeInfo>(cppValue, bridge, successCb, failureCb, timedWriteTimeout); });
+    std::move(*bridge).DispatchAction(self.device);
+}
+
+- (void)subscribeAttributeWatermarkEnabledWithParams:(MTRSubscribeParams * _Nonnull)params
+                             subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                       reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::WatermarkEnabled::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeWatermarkEnabledWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::WatermarkEnabled::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeOSDEnabledWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::OSDEnabled::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)writeAttributeOSDEnabledWithValue:(NSArray * _Nonnull)value completion:(MTRStatusCompletion)completion
+{
+    [self writeAttributeOSDEnabledWithValue:(NSArray * _Nonnull) value params:nil completion:completion];
+}
+- (void)writeAttributeOSDEnabledWithValue:(NSArray * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion
+{
+    // Make a copy of params before we go async.
+    params = [params copy];
+    value = [value copy];
+
+    auto * bridge = new MTRDefaultSuccessCallbackBridge(self.callbackQueue, ^(id _Nullable ignored, NSError * _Nullable error) { completion(error); }, ^(ExchangeManager & exchangeManager, const SessionHandle & session, DefaultSuccessCallbackType successCb, MTRErrorCallback failureCb, MTRCallbackBridgeBase * bridge) {
+        chip::Optional<uint16_t> timedWriteTimeout;
+        if (params != nil) {
+          if (params.timedWriteTimeout != nil){
+            timedWriteTimeout.SetValue(params.timedWriteTimeout.unsignedShortValue);
+          }
+        }
+
+        ListFreer listFreer;
+        using TypeInfo = CameraAvStreamManagement::Attributes::OSDEnabled::TypeInfo;
+        TypeInfo::Type cppValue;
+          {
+            using ListType_0 = std::remove_reference_t<decltype(cppValue)>;
+            using ListMemberType_0 = ListMemberTypeGetter<ListType_0>::Type;
+            if (value.count != 0) {
+              auto * listHolder_0 = new ListHolder<ListMemberType_0>(value.count);
+              if (listHolder_0 == nullptr || listHolder_0->mList == nullptr) {
+                return CHIP_ERROR_INVALID_ARGUMENT;
+              }
+              listFreer.add(listHolder_0);
+              for (size_t i_0 = 0; i_0 < value.count; ++i_0) {
+                if ( ! [value[i_0] isKindOfClass: [MTRCameraAVStreamManagementClusterPerStreamStruct class]] ) {
+                  // Wrong kind of value.
+                  return CHIP_ERROR_INVALID_ARGUMENT;
+                }
+                auto element_0 = (MTRCameraAVStreamManagementClusterPerStreamStruct *)value[i_0];
+                             listHolder_0->mList[i_0].streamID = element_0.streamID.unsignedShortValue;
+             listHolder_0->mList[i_0].onOff = element_0.onOff.boolValue;
+      }
+              cppValue = ListType_0(listHolder_0->mList, value.count);
+            } else {
+              cppValue = ListType_0();
+            }
+          }
+
+        chip::Controller::ClusterBase cppCluster(exchangeManager, session, self.endpointID.unsignedShortValue);
+        return cppCluster.WriteAttribute<TypeInfo>(cppValue, bridge, successCb, failureCb, timedWriteTimeout); });
+    std::move(*bridge).DispatchAction(self.device);
+}
+
+- (void)subscribeAttributeOSDEnabledWithParams:(MTRSubscribeParams * _Nonnull)params
+                       subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                 reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::OSDEnabled::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeOSDEnabledWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::OSDEnabled::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeGeneratedCommandListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::GeneratedCommandList::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeGeneratedCommandListWithParams:(MTRSubscribeParams * _Nonnull)params
+                                 subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                           reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::GeneratedCommandList::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeGeneratedCommandListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::GeneratedCommandList::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeAcceptedCommandListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::AcceptedCommandList::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeAcceptedCommandListWithParams:(MTRSubscribeParams * _Nonnull)params
+                                subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                          reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::AcceptedCommandList::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeAcceptedCommandListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::AcceptedCommandList::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeEventListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::EventList::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeEventListWithParams:(MTRSubscribeParams * _Nonnull)params
+                      subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::EventList::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeEventListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::EventList::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeAttributeListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::AttributeList::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeAttributeListWithParams:(MTRSubscribeParams * _Nonnull)params
+                          subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                    reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::AttributeList::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeAttributeListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::AttributeList::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeFeatureMapWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::FeatureMap::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeFeatureMapWithParams:(MTRSubscribeParams * _Nonnull)params
+                       subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                 reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::FeatureMap::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeFeatureMapWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::FeatureMap::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeClusterRevisionWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::ClusterRevision::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeClusterRevisionWithParams:(MTRSubscribeParams * _Nonnull)params
+                            subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                      reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::ClusterRevision::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeClusterRevisionWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvStreamManagement::Attributes::ClusterRevision::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+@end
+
+@implementation MTRBaseClusterCameraAVSettingsUserLevelManagement
+
+- (void)mptzSetWithCompletion:(MTRStatusCompletion)completion
+{
+    [self mptzSetWithParams:nil completion:completion];
+}
+- (void)mptzSetWithParams:(MTRCameraAVSettingsUserLevelManagementClusterMptzSetParams * _Nullable)params completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRCameraAVSettingsUserLevelManagementClusterMptzSetParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = CameraAvSettingsUserLevelManagement::Commands::MptzSet::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+- (void)mptzRelativeMoveWithParams:(MTRCameraAVSettingsUserLevelManagementClusterMptzRelativeMoveParams *)params completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRCameraAVSettingsUserLevelManagementClusterMptzRelativeMoveParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = CameraAvSettingsUserLevelManagement::Commands::MptzRelativeMove::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+- (void)setAsPresetWithCompletion:(MTRStatusCompletion)completion
+{
+    [self setAsPresetWithParams:nil completion:completion];
+}
+- (void)setAsPresetWithParams:(MTRCameraAVSettingsUserLevelManagementClusterSetAsPresetParams * _Nullable)params completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRCameraAVSettingsUserLevelManagementClusterSetAsPresetParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = CameraAvSettingsUserLevelManagement::Commands::SetAsPreset::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+- (void)dptzSetViewportWithParams:(MTRCameraAVSettingsUserLevelManagementClusterDptzSetViewportParams *)params completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRCameraAVSettingsUserLevelManagementClusterDptzSetViewportParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = CameraAvSettingsUserLevelManagement::Commands::DptzSetViewport::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+- (void)dptzRelativeMoveWithParams:(MTRCameraAVSettingsUserLevelManagementClusterDptzRelativeMoveParams *)params completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRCameraAVSettingsUserLevelManagementClusterDptzRelativeMoveParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = CameraAvSettingsUserLevelManagement::Commands::DptzRelativeMove::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (void)readAttributeMptzWithCompletion:(void (^)(MTRCameraAVSettingsUserLevelManagementClusterMPTZStruct * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvSettingsUserLevelManagement::Attributes::Mptz::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeMptzWithParams:(MTRSubscribeParams * _Nonnull)params
+                 subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                           reportHandler:(void (^)(MTRCameraAVSettingsUserLevelManagementClusterMPTZStruct * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvSettingsUserLevelManagement::Attributes::Mptz::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeMptzWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(MTRCameraAVSettingsUserLevelManagementClusterMPTZStruct * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvSettingsUserLevelManagement::Attributes::Mptz::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeMaxPresetsWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvSettingsUserLevelManagement::Attributes::MaxPresets::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeMaxPresetsWithParams:(MTRSubscribeParams * _Nonnull)params
+                       subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                 reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvSettingsUserLevelManagement::Attributes::MaxPresets::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeMaxPresetsWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvSettingsUserLevelManagement::Attributes::MaxPresets::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributePresetMptzTableWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvSettingsUserLevelManagement::Attributes::PresetMptzTable::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributePresetMptzTableWithParams:(MTRSubscribeParams * _Nonnull)params
+                            subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                      reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvSettingsUserLevelManagement::Attributes::PresetMptzTable::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributePresetMptzTableWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvSettingsUserLevelManagement::Attributes::PresetMptzTable::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeMptzRelativeMoveWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvSettingsUserLevelManagement::Attributes::MptzRelativeMove::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeMptzRelativeMoveWithParams:(MTRSubscribeParams * _Nonnull)params
+                             subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                       reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvSettingsUserLevelManagement::Attributes::MptzRelativeMove::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeMptzRelativeMoveWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvSettingsUserLevelManagement::Attributes::MptzRelativeMove::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeDptzRelativeMoveWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvSettingsUserLevelManagement::Attributes::DptzRelativeMove::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeDptzRelativeMoveWithParams:(MTRSubscribeParams * _Nonnull)params
+                             subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                       reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvSettingsUserLevelManagement::Attributes::DptzRelativeMove::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeDptzRelativeMoveWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvSettingsUserLevelManagement::Attributes::DptzRelativeMove::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeGeneratedCommandListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvSettingsUserLevelManagement::Attributes::GeneratedCommandList::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeGeneratedCommandListWithParams:(MTRSubscribeParams * _Nonnull)params
+                                 subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                           reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvSettingsUserLevelManagement::Attributes::GeneratedCommandList::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeGeneratedCommandListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvSettingsUserLevelManagement::Attributes::GeneratedCommandList::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeAcceptedCommandListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvSettingsUserLevelManagement::Attributes::AcceptedCommandList::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeAcceptedCommandListWithParams:(MTRSubscribeParams * _Nonnull)params
+                                subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                          reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvSettingsUserLevelManagement::Attributes::AcceptedCommandList::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeAcceptedCommandListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvSettingsUserLevelManagement::Attributes::AcceptedCommandList::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeEventListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvSettingsUserLevelManagement::Attributes::EventList::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeEventListWithParams:(MTRSubscribeParams * _Nonnull)params
+                      subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvSettingsUserLevelManagement::Attributes::EventList::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeEventListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvSettingsUserLevelManagement::Attributes::EventList::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeAttributeListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvSettingsUserLevelManagement::Attributes::AttributeList::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeAttributeListWithParams:(MTRSubscribeParams * _Nonnull)params
+                          subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                    reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvSettingsUserLevelManagement::Attributes::AttributeList::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeAttributeListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvSettingsUserLevelManagement::Attributes::AttributeList::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeFeatureMapWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvSettingsUserLevelManagement::Attributes::FeatureMap::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeFeatureMapWithParams:(MTRSubscribeParams * _Nonnull)params
+                       subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                 reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvSettingsUserLevelManagement::Attributes::FeatureMap::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeFeatureMapWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvSettingsUserLevelManagement::Attributes::FeatureMap::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeClusterRevisionWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvSettingsUserLevelManagement::Attributes::ClusterRevision::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeClusterRevisionWithParams:(MTRSubscribeParams * _Nonnull)params
+                            subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                      reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = CameraAvSettingsUserLevelManagement::Attributes::ClusterRevision::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeClusterRevisionWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = CameraAvSettingsUserLevelManagement::Attributes::ClusterRevision::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+@end
+
+@implementation MTRBaseClusterWebRTCTransportProvider
+
+- (void)webRTCSolicitOfferWithParams:(MTRWebRTCTransportProviderClusterWebRTCSolicitOfferParams *)params completion:(void (^)(MTRWebRTCTransportProviderClusterWebRTCSolicitOfferResponseParams * _Nullable data, NSError * _Nullable error))completion
+{
+    if (params == nil) {
+        params = [[MTRWebRTCTransportProviderClusterWebRTCSolicitOfferParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(response, error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = WebRTCTransportProvider::Commands::WebRTCSolicitOffer::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:MTRWebRTCTransportProviderClusterWebRTCSolicitOfferResponseParams.class
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+- (void)webRTCProvideOfferWithParams:(MTRWebRTCTransportProviderClusterWebRTCProvideOfferParams *)params completion:(void (^)(MTRWebRTCTransportProviderClusterWebRTCProvideOfferResponseParams * _Nullable data, NSError * _Nullable error))completion
+{
+    if (params == nil) {
+        params = [[MTRWebRTCTransportProviderClusterWebRTCProvideOfferParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(response, error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = WebRTCTransportProvider::Commands::WebRTCProvideOffer::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:MTRWebRTCTransportProviderClusterWebRTCProvideOfferResponseParams.class
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+- (void)webRTCProvideAnswerWithParams:(MTRWebRTCTransportProviderClusterWebRTCProvideAnswerParams *)params completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRWebRTCTransportProviderClusterWebRTCProvideAnswerParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = WebRTCTransportProvider::Commands::WebRTCProvideAnswer::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+- (void)webRTCProvideICECandidateWithParams:(MTRWebRTCTransportProviderClusterWebRTCProvideICECandidateParams *)params completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRWebRTCTransportProviderClusterWebRTCProvideICECandidateParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = WebRTCTransportProvider::Commands::WebRTCProvideICECandidate::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+- (void)webRTCEndSessionWithParams:(MTRWebRTCTransportProviderClusterWebRTCEndSessionParams *)params completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRWebRTCTransportProviderClusterWebRTCEndSessionParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = WebRTCTransportProvider::Commands::WebRTCEndSession::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (void)readAttributeCurrentSessionsWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = WebRTCTransportProvider::Attributes::CurrentSessions::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeCurrentSessionsWithParams:(MTRSubscribeParams * _Nonnull)params
+                            subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                      reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = WebRTCTransportProvider::Attributes::CurrentSessions::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeCurrentSessionsWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = WebRTCTransportProvider::Attributes::CurrentSessions::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeGeneratedCommandListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = WebRTCTransportProvider::Attributes::GeneratedCommandList::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeGeneratedCommandListWithParams:(MTRSubscribeParams * _Nonnull)params
+                                 subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                           reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = WebRTCTransportProvider::Attributes::GeneratedCommandList::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeGeneratedCommandListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = WebRTCTransportProvider::Attributes::GeneratedCommandList::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeAcceptedCommandListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = WebRTCTransportProvider::Attributes::AcceptedCommandList::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeAcceptedCommandListWithParams:(MTRSubscribeParams * _Nonnull)params
+                                subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                          reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = WebRTCTransportProvider::Attributes::AcceptedCommandList::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeAcceptedCommandListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = WebRTCTransportProvider::Attributes::AcceptedCommandList::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeEventListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = WebRTCTransportProvider::Attributes::EventList::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeEventListWithParams:(MTRSubscribeParams * _Nonnull)params
+                      subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = WebRTCTransportProvider::Attributes::EventList::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeEventListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = WebRTCTransportProvider::Attributes::EventList::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeAttributeListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = WebRTCTransportProvider::Attributes::AttributeList::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeAttributeListWithParams:(MTRSubscribeParams * _Nonnull)params
+                          subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                    reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = WebRTCTransportProvider::Attributes::AttributeList::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeAttributeListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = WebRTCTransportProvider::Attributes::AttributeList::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeFeatureMapWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = WebRTCTransportProvider::Attributes::FeatureMap::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeFeatureMapWithParams:(MTRSubscribeParams * _Nonnull)params
+                       subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                 reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = WebRTCTransportProvider::Attributes::FeatureMap::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeFeatureMapWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = WebRTCTransportProvider::Attributes::FeatureMap::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeClusterRevisionWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = WebRTCTransportProvider::Attributes::ClusterRevision::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeClusterRevisionWithParams:(MTRSubscribeParams * _Nonnull)params
+                            subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                      reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = WebRTCTransportProvider::Attributes::ClusterRevision::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeClusterRevisionWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = WebRTCTransportProvider::Attributes::ClusterRevision::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+@end
+
+@implementation MTRBaseClusterWebRTCTransportRequestor
+
+- (void)webRTCOfferWithParams:(MTRWebRTCTransportRequestorClusterWebRTCOfferParams *)params completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRWebRTCTransportRequestorClusterWebRTCOfferParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = WebRTCTransportRequestor::Commands::WebRTCOffer::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+- (void)webRTCAnswerWithParams:(MTRWebRTCTransportRequestorClusterWebRTCAnswerParams *)params completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRWebRTCTransportRequestorClusterWebRTCAnswerParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = WebRTCTransportRequestor::Commands::WebRTCAnswer::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+- (void)webRTCICECandidateWithParams:(MTRWebRTCTransportRequestorClusterWebRTCICECandidateParams *)params completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRWebRTCTransportRequestorClusterWebRTCICECandidateParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = WebRTCTransportRequestor::Commands::WebRTCICECandidate::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+- (void)webRTCEndWithParams:(MTRWebRTCTransportRequestorClusterWebRTCEndParams *)params completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRWebRTCTransportRequestorClusterWebRTCEndParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = WebRTCTransportRequestor::Commands::WebRTCEnd::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (void)readAttributeCurrentSessionsWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = WebRTCTransportRequestor::Attributes::CurrentSessions::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeCurrentSessionsWithParams:(MTRSubscribeParams * _Nonnull)params
+                            subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                      reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = WebRTCTransportRequestor::Attributes::CurrentSessions::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeCurrentSessionsWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = WebRTCTransportRequestor::Attributes::CurrentSessions::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeGeneratedCommandListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = WebRTCTransportRequestor::Attributes::GeneratedCommandList::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeGeneratedCommandListWithParams:(MTRSubscribeParams * _Nonnull)params
+                                 subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                           reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = WebRTCTransportRequestor::Attributes::GeneratedCommandList::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeGeneratedCommandListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = WebRTCTransportRequestor::Attributes::GeneratedCommandList::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeAcceptedCommandListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = WebRTCTransportRequestor::Attributes::AcceptedCommandList::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeAcceptedCommandListWithParams:(MTRSubscribeParams * _Nonnull)params
+                                subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                          reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = WebRTCTransportRequestor::Attributes::AcceptedCommandList::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeAcceptedCommandListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = WebRTCTransportRequestor::Attributes::AcceptedCommandList::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeEventListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = WebRTCTransportRequestor::Attributes::EventList::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeEventListWithParams:(MTRSubscribeParams * _Nonnull)params
+                      subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = WebRTCTransportRequestor::Attributes::EventList::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeEventListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = WebRTCTransportRequestor::Attributes::EventList::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeAttributeListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = WebRTCTransportRequestor::Attributes::AttributeList::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeAttributeListWithParams:(MTRSubscribeParams * _Nonnull)params
+                          subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                    reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = WebRTCTransportRequestor::Attributes::AttributeList::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeAttributeListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = WebRTCTransportRequestor::Attributes::AttributeList::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeFeatureMapWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = WebRTCTransportRequestor::Attributes::FeatureMap::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeFeatureMapWithParams:(MTRSubscribeParams * _Nonnull)params
+                       subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                 reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = WebRTCTransportRequestor::Attributes::FeatureMap::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeFeatureMapWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = WebRTCTransportRequestor::Attributes::FeatureMap::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeClusterRevisionWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = WebRTCTransportRequestor::Attributes::ClusterRevision::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeClusterRevisionWithParams:(MTRSubscribeParams * _Nonnull)params
+                            subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                      reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = WebRTCTransportRequestor::Attributes::ClusterRevision::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeClusterRevisionWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = WebRTCTransportRequestor::Attributes::ClusterRevision::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+@end
+
+@implementation MTRBaseClusterPushAVStreamTransport
+
+- (void)allocatePushTransportWithParams:(MTRPushAVStreamTransportClusterAllocatePushTransportParams *)params completion:(void (^)(MTRPushAVStreamTransportClusterAllocatePushTransportResponseParams * _Nullable data, NSError * _Nullable error))completion
+{
+    if (params == nil) {
+        params = [[MTRPushAVStreamTransportClusterAllocatePushTransportParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(response, error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = PushAvStreamTransport::Commands::AllocatePushTransport::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:MTRPushAVStreamTransportClusterAllocatePushTransportResponseParams.class
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+- (void)deallocatePushTransportWithParams:(MTRPushAVStreamTransportClusterDeallocatePushTransportParams *)params completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRPushAVStreamTransportClusterDeallocatePushTransportParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = PushAvStreamTransport::Commands::DeallocatePushTransport::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+- (void)modifyPushTransportWithParams:(MTRPushAVStreamTransportClusterModifyPushTransportParams *)params completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRPushAVStreamTransportClusterModifyPushTransportParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = PushAvStreamTransport::Commands::ModifyPushTransport::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+- (void)setTransportStatusWithParams:(MTRPushAVStreamTransportClusterSetTransportStatusParams *)params completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRPushAVStreamTransportClusterSetTransportStatusParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = PushAvStreamTransport::Commands::SetTransportStatus::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+- (void)manuallyTriggerTransportWithParams:(MTRPushAVStreamTransportClusterManuallyTriggerTransportParams *)params completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRPushAVStreamTransportClusterManuallyTriggerTransportParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = PushAvStreamTransport::Commands::ManuallyTriggerTransport::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+- (void)findStreamConfigurationWithCompletion:(void (^)(MTRPushAVStreamTransportClusterFindStreamConfigurationResponseParams * _Nullable data, NSError * _Nullable error))completion
+{
+    [self findStreamConfigurationWithParams:nil completion:completion];
+}
+- (void)findStreamConfigurationWithParams:(MTRPushAVStreamTransportClusterFindStreamConfigurationParams * _Nullable)params completion:(void (^)(MTRPushAVStreamTransportClusterFindStreamConfigurationResponseParams * _Nullable data, NSError * _Nullable error))completion
+{
+    if (params == nil) {
+        params = [[MTRPushAVStreamTransportClusterFindStreamConfigurationParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(response, error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = PushAvStreamTransport::Commands::FindStreamConfiguration::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:MTRPushAVStreamTransportClusterFindStreamConfigurationResponseParams.class
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (void)readAttributeSupportedContainerFormatsWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = PushAvStreamTransport::Attributes::SupportedContainerFormats::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeSupportedContainerFormatsWithParams:(MTRSubscribeParams * _Nonnull)params
+                                      subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                                reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = PushAvStreamTransport::Attributes::SupportedContainerFormats::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeSupportedContainerFormatsWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = PushAvStreamTransport::Attributes::SupportedContainerFormats::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeSupportedIngestMethodsWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = PushAvStreamTransport::Attributes::SupportedIngestMethods::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeSupportedIngestMethodsWithParams:(MTRSubscribeParams * _Nonnull)params
+                                   subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                             reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = PushAvStreamTransport::Attributes::SupportedIngestMethods::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeSupportedIngestMethodsWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = PushAvStreamTransport::Attributes::SupportedIngestMethods::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeCurrentConnectionsWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = PushAvStreamTransport::Attributes::CurrentConnections::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeCurrentConnectionsWithParams:(MTRSubscribeParams * _Nonnull)params
+                               subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                         reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = PushAvStreamTransport::Attributes::CurrentConnections::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeCurrentConnectionsWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = PushAvStreamTransport::Attributes::CurrentConnections::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeGeneratedCommandListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = PushAvStreamTransport::Attributes::GeneratedCommandList::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeGeneratedCommandListWithParams:(MTRSubscribeParams * _Nonnull)params
+                                 subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                           reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = PushAvStreamTransport::Attributes::GeneratedCommandList::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeGeneratedCommandListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = PushAvStreamTransport::Attributes::GeneratedCommandList::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeAcceptedCommandListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = PushAvStreamTransport::Attributes::AcceptedCommandList::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeAcceptedCommandListWithParams:(MTRSubscribeParams * _Nonnull)params
+                                subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                          reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = PushAvStreamTransport::Attributes::AcceptedCommandList::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeAcceptedCommandListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = PushAvStreamTransport::Attributes::AcceptedCommandList::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeEventListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = PushAvStreamTransport::Attributes::EventList::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeEventListWithParams:(MTRSubscribeParams * _Nonnull)params
+                      subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = PushAvStreamTransport::Attributes::EventList::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeEventListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = PushAvStreamTransport::Attributes::EventList::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeAttributeListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = PushAvStreamTransport::Attributes::AttributeList::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeAttributeListWithParams:(MTRSubscribeParams * _Nonnull)params
+                          subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                    reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = PushAvStreamTransport::Attributes::AttributeList::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeAttributeListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = PushAvStreamTransport::Attributes::AttributeList::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeFeatureMapWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = PushAvStreamTransport::Attributes::FeatureMap::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeFeatureMapWithParams:(MTRSubscribeParams * _Nonnull)params
+                       subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                 reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = PushAvStreamTransport::Attributes::FeatureMap::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeFeatureMapWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = PushAvStreamTransport::Attributes::FeatureMap::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeClusterRevisionWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = PushAvStreamTransport::Attributes::ClusterRevision::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeClusterRevisionWithParams:(MTRSubscribeParams * _Nonnull)params
+                            subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                      reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = PushAvStreamTransport::Attributes::ClusterRevision::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeClusterRevisionWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = PushAvStreamTransport::Attributes::ClusterRevision::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+@end
+
+@implementation MTRBaseClusterChime
+
+- (void)playChimeSoundWithCompletion:(MTRStatusCompletion)completion
+{
+    [self playChimeSoundWithParams:nil completion:completion];
+}
+- (void)playChimeSoundWithParams:(MTRChimeClusterPlayChimeSoundParams * _Nullable)params completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRChimeClusterPlayChimeSoundParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = Chime::Commands::PlayChimeSound::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (void)readAttributeInstalledChimeSoundsWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = Chime::Attributes::InstalledChimeSounds::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeInstalledChimeSoundsWithParams:(MTRSubscribeParams * _Nonnull)params
+                                 subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                           reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = Chime::Attributes::InstalledChimeSounds::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeInstalledChimeSoundsWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = Chime::Attributes::InstalledChimeSounds::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeActiveChimeSoundIdWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = Chime::Attributes::ActiveChimeSoundId::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)writeAttributeActiveChimeSoundIdWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion
+{
+    [self writeAttributeActiveChimeSoundIdWithValue:(NSNumber * _Nonnull) value params:nil completion:completion];
+}
+- (void)writeAttributeActiveChimeSoundIdWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion
+{
+    // Make a copy of params before we go async.
+    params = [params copy];
+    value = [value copy];
+
+    auto * bridge = new MTRDefaultSuccessCallbackBridge(self.callbackQueue, ^(id _Nullable ignored, NSError * _Nullable error) { completion(error); }, ^(ExchangeManager & exchangeManager, const SessionHandle & session, DefaultSuccessCallbackType successCb, MTRErrorCallback failureCb, MTRCallbackBridgeBase * bridge) {
+        chip::Optional<uint16_t> timedWriteTimeout;
+        if (params != nil) {
+          if (params.timedWriteTimeout != nil){
+            timedWriteTimeout.SetValue(params.timedWriteTimeout.unsignedShortValue);
+          }
+        }
+
+        ListFreer listFreer;
+        using TypeInfo = Chime::Attributes::ActiveChimeSoundId::TypeInfo;
+        TypeInfo::Type cppValue;
+                cppValue = value.unsignedCharValue;
+
+        chip::Controller::ClusterBase cppCluster(exchangeManager, session, self.endpointID.unsignedShortValue);
+        return cppCluster.WriteAttribute<TypeInfo>(cppValue, bridge, successCb, failureCb, timedWriteTimeout); });
+    std::move(*bridge).DispatchAction(self.device);
+}
+
+- (void)subscribeAttributeActiveChimeSoundIdWithParams:(MTRSubscribeParams * _Nonnull)params
+                               subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                         reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = Chime::Attributes::ActiveChimeSoundId::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeActiveChimeSoundIdWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = Chime::Attributes::ActiveChimeSoundId::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeEnabledWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = Chime::Attributes::Enabled::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)writeAttributeEnabledWithValue:(NSNumber * _Nonnull)value completion:(MTRStatusCompletion)completion
+{
+    [self writeAttributeEnabledWithValue:(NSNumber * _Nonnull) value params:nil completion:completion];
+}
+- (void)writeAttributeEnabledWithValue:(NSNumber * _Nonnull)value params:(MTRWriteParams * _Nullable)params completion:(MTRStatusCompletion)completion
+{
+    // Make a copy of params before we go async.
+    params = [params copy];
+    value = [value copy];
+
+    auto * bridge = new MTRDefaultSuccessCallbackBridge(self.callbackQueue, ^(id _Nullable ignored, NSError * _Nullable error) { completion(error); }, ^(ExchangeManager & exchangeManager, const SessionHandle & session, DefaultSuccessCallbackType successCb, MTRErrorCallback failureCb, MTRCallbackBridgeBase * bridge) {
+        chip::Optional<uint16_t> timedWriteTimeout;
+        if (params != nil) {
+          if (params.timedWriteTimeout != nil){
+            timedWriteTimeout.SetValue(params.timedWriteTimeout.unsignedShortValue);
+          }
+        }
+
+        ListFreer listFreer;
+        using TypeInfo = Chime::Attributes::Enabled::TypeInfo;
+        TypeInfo::Type cppValue;
+                cppValue = value.boolValue;
+
+        chip::Controller::ClusterBase cppCluster(exchangeManager, session, self.endpointID.unsignedShortValue);
+        return cppCluster.WriteAttribute<TypeInfo>(cppValue, bridge, successCb, failureCb, timedWriteTimeout); });
+    std::move(*bridge).DispatchAction(self.device);
+}
+
+- (void)subscribeAttributeEnabledWithParams:(MTRSubscribeParams * _Nonnull)params
+                    subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                              reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = Chime::Attributes::Enabled::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeEnabledWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = Chime::Attributes::Enabled::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeGeneratedCommandListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = Chime::Attributes::GeneratedCommandList::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeGeneratedCommandListWithParams:(MTRSubscribeParams * _Nonnull)params
+                                 subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                           reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = Chime::Attributes::GeneratedCommandList::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeGeneratedCommandListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = Chime::Attributes::GeneratedCommandList::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeAcceptedCommandListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = Chime::Attributes::AcceptedCommandList::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeAcceptedCommandListWithParams:(MTRSubscribeParams * _Nonnull)params
+                                subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                          reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = Chime::Attributes::AcceptedCommandList::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeAcceptedCommandListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = Chime::Attributes::AcceptedCommandList::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeEventListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = Chime::Attributes::EventList::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeEventListWithParams:(MTRSubscribeParams * _Nonnull)params
+                      subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = Chime::Attributes::EventList::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeEventListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = Chime::Attributes::EventList::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeAttributeListWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = Chime::Attributes::AttributeList::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeAttributeListWithParams:(MTRSubscribeParams * _Nonnull)params
+                          subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                    reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = Chime::Attributes::AttributeList::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeAttributeListWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = Chime::Attributes::AttributeList::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeFeatureMapWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = Chime::Attributes::FeatureMap::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeFeatureMapWithParams:(MTRSubscribeParams * _Nonnull)params
+                       subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                 reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = Chime::Attributes::FeatureMap::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeFeatureMapWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = Chime::Attributes::FeatureMap::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+- (void)readAttributeClusterRevisionWithCompletion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = Chime::Attributes::ClusterRevision::TypeInfo;
+    [self.device _readKnownAttributeWithEndpointID:self.endpointID
+                                         clusterID:@(TypeInfo::GetClusterId())
+                                       attributeID:@(TypeInfo::GetAttributeId())
+                                            params:nil
+                                             queue:self.callbackQueue
+                                        completion:completion];
+}
+
+- (void)subscribeAttributeClusterRevisionWithParams:(MTRSubscribeParams * _Nonnull)params
+                            subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished
+                                      reportHandler:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))reportHandler
+{
+    using TypeInfo = Chime::Attributes::ClusterRevision::TypeInfo;
+    [self.device _subscribeToKnownAttributeWithEndpointID:self.endpointID
+                                                clusterID:@(TypeInfo::GetClusterId())
+                                              attributeID:@(TypeInfo::GetAttributeId())
+                                                   params:params
+                                                    queue:self.callbackQueue
+                                            reportHandler:reportHandler
+                                  subscriptionEstablished:subscriptionEstablished];
+}
+
++ (void)readAttributeClusterRevisionWithClusterStateCache:(MTRClusterStateCacheContainer *)clusterStateCacheContainer endpoint:(NSNumber *)endpoint queue:(dispatch_queue_t)queue completion:(void (^)(NSNumber * _Nullable value, NSError * _Nullable error))completion
+{
+    using TypeInfo = Chime::Attributes::ClusterRevision::TypeInfo;
+    [clusterStateCacheContainer
+        _readKnownCachedAttributeWithEndpointID:static_cast<chip::EndpointId>([endpoint unsignedShortValue])
+                                      clusterID:TypeInfo::GetClusterId()
+                                    attributeID:TypeInfo::GetAttributeId()
+                                          queue:queue
+                                     completion:completion];
+}
+
+@end
+
 @implementation MTRBaseClusterEcosystemInformation
 
 - (void)readAttributeDeviceDirectoryWithParams:(MTRReadParams * _Nullable)params completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRClusterConstants.h b/src/darwin/Framework/CHIP/zap-generated/MTRClusterConstants.h
index 3ab34174b53453..4cbd73e84e0599 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRClusterConstants.h
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRClusterConstants.h
@@ -204,6 +204,12 @@ typedef NS_ENUM(uint32_t, MTRClusterIDType) {
     MTRClusterIDTypeAccountLoginID MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) = 0x0000050E,
     MTRClusterIDTypeContentControlID MTR_PROVISIONALLY_AVAILABLE = 0x0000050F,
     MTRClusterIDTypeContentAppObserverID MTR_PROVISIONALLY_AVAILABLE = 0x00000510,
+    MTRClusterIDTypeCameraAVStreamManagementID MTR_PROVISIONALLY_AVAILABLE = 0x00000551,
+    MTRClusterIDTypeCameraAVSettingsUserLevelManagementID MTR_PROVISIONALLY_AVAILABLE = 0x00000552,
+    MTRClusterIDTypeWebRTCTransportProviderID MTR_PROVISIONALLY_AVAILABLE = 0x00000553,
+    MTRClusterIDTypeWebRTCTransportRequestorID MTR_PROVISIONALLY_AVAILABLE = 0x00000554,
+    MTRClusterIDTypePushAVStreamTransportID MTR_PROVISIONALLY_AVAILABLE = 0x00000555,
+    MTRClusterIDTypeChimeID MTR_PROVISIONALLY_AVAILABLE = 0x00000556,
     MTRClusterIDTypeEcosystemInformationID MTR_PROVISIONALLY_AVAILABLE = 0x00000750,
     MTRClusterIDTypeCommissionerControlID MTR_PROVISIONALLY_AVAILABLE = 0x00000751,
     MTRClusterIDTypeElectricalMeasurementID MTR_AVAILABLE(ios(16.4), macos(13.3), watchos(9.4), tvos(16.4)) = 0x00000B04,
@@ -4896,6 +4902,118 @@ typedef NS_ENUM(uint32_t, MTRAttributeIDType) {
     MTRAttributeIDTypeClusterContentAppObserverAttributeFeatureMapID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeFeatureMapID,
     MTRAttributeIDTypeClusterContentAppObserverAttributeClusterRevisionID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeClusterRevisionID,
 
+    // Cluster CameraAVStreamManagement attributes
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMaxConcurrentVideoEncodersID MTR_PROVISIONALLY_AVAILABLE = 0x00000000,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMaxEncodedPixelRateID MTR_PROVISIONALLY_AVAILABLE = 0x00000001,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeVideoSensorParamsID MTR_PROVISIONALLY_AVAILABLE = 0x00000002,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeNightVisionCapableID MTR_PROVISIONALLY_AVAILABLE = 0x00000003,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMinViewPortWidthID MTR_PROVISIONALLY_AVAILABLE = 0x00000004,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMinViewPortHeightID MTR_PROVISIONALLY_AVAILABLE = 0x00000005,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeRateDistortionTradeOffPointsID MTR_PROVISIONALLY_AVAILABLE = 0x00000006,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMaxPreRollBufferSizeID MTR_PROVISIONALLY_AVAILABLE = 0x00000007,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMicrophoneCapabilitiesID MTR_PROVISIONALLY_AVAILABLE = 0x00000008,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeSpeakerCapabilitiesID MTR_PROVISIONALLY_AVAILABLE = 0x00000009,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeTwoWayTalkSupportID MTR_PROVISIONALLY_AVAILABLE = 0x0000000A,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeSupportedSnapshotParamsID MTR_PROVISIONALLY_AVAILABLE = 0x0000000B,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeHDRCapableID MTR_PROVISIONALLY_AVAILABLE = 0x0000000C,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMaxNetworkBandwidthID MTR_PROVISIONALLY_AVAILABLE = 0x0000000D,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeCurrentFrameRateID MTR_PROVISIONALLY_AVAILABLE = 0x0000000E,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeHDRModeID MTR_PROVISIONALLY_AVAILABLE = 0x0000000F,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeCurrentVideoCodecsID MTR_PROVISIONALLY_AVAILABLE = 0x00000010,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeCurrentSnapshotConfigID MTR_PROVISIONALLY_AVAILABLE = 0x00000011,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeFabricsUsingCameraID MTR_PROVISIONALLY_AVAILABLE = 0x00000012,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeAllocatedVideoStreamsID MTR_PROVISIONALLY_AVAILABLE = 0x00000013,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeAllocatedAudioStreamsID MTR_PROVISIONALLY_AVAILABLE = 0x00000014,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeAllocatedSnapshotStreamsID MTR_PROVISIONALLY_AVAILABLE = 0x00000015,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeRankedVideoStreamPrioritiesListID MTR_PROVISIONALLY_AVAILABLE = 0x00000016,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeSoftRecordingPrivacyModeSettingID MTR_PROVISIONALLY_AVAILABLE = 0x00000017,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeSoftLivestreamPrivacyModeSettingID MTR_PROVISIONALLY_AVAILABLE = 0x00000018,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeHardPrivacyModeID MTR_PROVISIONALLY_AVAILABLE = 0x00000019,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeNightVisionID MTR_PROVISIONALLY_AVAILABLE = 0x0000001A,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeNightVisionIllumID MTR_PROVISIONALLY_AVAILABLE = 0x0000001B,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeAWBID MTR_PROVISIONALLY_AVAILABLE = 0x0000001C,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeShutterSpeedID MTR_PROVISIONALLY_AVAILABLE = 0x0000001D,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeISOID MTR_PROVISIONALLY_AVAILABLE = 0x0000001E,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeViewportID MTR_PROVISIONALLY_AVAILABLE = 0x0000001F,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeSpkrOnOffID MTR_PROVISIONALLY_AVAILABLE = 0x00000020,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeSpkrVolumeLevelID MTR_PROVISIONALLY_AVAILABLE = 0x00000021,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeSpkrMaxLevelID MTR_PROVISIONALLY_AVAILABLE = 0x00000022,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeSpkrMinLevelID MTR_PROVISIONALLY_AVAILABLE = 0x00000023,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMicOnOffID MTR_PROVISIONALLY_AVAILABLE = 0x00000024,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMicCurrentLevelID MTR_PROVISIONALLY_AVAILABLE = 0x00000025,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMicMaxLevelID MTR_PROVISIONALLY_AVAILABLE = 0x00000026,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMicMinLevelID MTR_PROVISIONALLY_AVAILABLE = 0x00000027,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMicAGCID MTR_PROVISIONALLY_AVAILABLE = 0x00000028,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeImageRotationID MTR_PROVISIONALLY_AVAILABLE = 0x00000029,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeImageFlipHorizontalID MTR_PROVISIONALLY_AVAILABLE = 0x0000002A,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeImageFlipVerticalID MTR_PROVISIONALLY_AVAILABLE = 0x0000002B,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeLocalVideoRecordingEnabledID MTR_PROVISIONALLY_AVAILABLE = 0x0000002C,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeLocalSnapshotRecordingEnabledID MTR_PROVISIONALLY_AVAILABLE = 0x0000002D,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeStatusLightID MTR_PROVISIONALLY_AVAILABLE = 0x0000002E,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeStatusLightBrightnessID MTR_PROVISIONALLY_AVAILABLE = 0x0000002F,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeDepthSensorStatusID MTR_PROVISIONALLY_AVAILABLE = 0x00000030,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeWatermarkEnabledID MTR_PROVISIONALLY_AVAILABLE = 0x00000031,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeOSDEnabledID MTR_PROVISIONALLY_AVAILABLE = 0x00000032,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeGeneratedCommandListID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeGeneratedCommandListID,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeAcceptedCommandListID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeAcceptedCommandListID,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeEventListID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeEventListID,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeAttributeListID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeAttributeListID,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeFeatureMapID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeFeatureMapID,
+    MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeClusterRevisionID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeClusterRevisionID,
+
+    // Cluster CameraAVSettingsUserLevelManagement attributes
+    MTRAttributeIDTypeClusterCameraAVSettingsUserLevelManagementAttributeMptzID MTR_PROVISIONALLY_AVAILABLE = 0x00000000,
+    MTRAttributeIDTypeClusterCameraAVSettingsUserLevelManagementAttributeMaxPresetsID MTR_PROVISIONALLY_AVAILABLE = 0x00000001,
+    MTRAttributeIDTypeClusterCameraAVSettingsUserLevelManagementAttributePresetMptzTableID MTR_PROVISIONALLY_AVAILABLE = 0x00000002,
+    MTRAttributeIDTypeClusterCameraAVSettingsUserLevelManagementAttributeMptzRelativeMoveID MTR_PROVISIONALLY_AVAILABLE = 0x00000003,
+    MTRAttributeIDTypeClusterCameraAVSettingsUserLevelManagementAttributeDptzRelativeMoveID MTR_PROVISIONALLY_AVAILABLE = 0x00000004,
+    MTRAttributeIDTypeClusterCameraAVSettingsUserLevelManagementAttributeGeneratedCommandListID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeGeneratedCommandListID,
+    MTRAttributeIDTypeClusterCameraAVSettingsUserLevelManagementAttributeAcceptedCommandListID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeAcceptedCommandListID,
+    MTRAttributeIDTypeClusterCameraAVSettingsUserLevelManagementAttributeEventListID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeEventListID,
+    MTRAttributeIDTypeClusterCameraAVSettingsUserLevelManagementAttributeAttributeListID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeAttributeListID,
+    MTRAttributeIDTypeClusterCameraAVSettingsUserLevelManagementAttributeFeatureMapID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeFeatureMapID,
+    MTRAttributeIDTypeClusterCameraAVSettingsUserLevelManagementAttributeClusterRevisionID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeClusterRevisionID,
+
+    // Cluster WebRTCTransportProvider attributes
+    MTRAttributeIDTypeClusterWebRTCTransportProviderAttributeCurrentSessionsID MTR_PROVISIONALLY_AVAILABLE = 0x00000000,
+    MTRAttributeIDTypeClusterWebRTCTransportProviderAttributeGeneratedCommandListID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeGeneratedCommandListID,
+    MTRAttributeIDTypeClusterWebRTCTransportProviderAttributeAcceptedCommandListID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeAcceptedCommandListID,
+    MTRAttributeIDTypeClusterWebRTCTransportProviderAttributeEventListID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeEventListID,
+    MTRAttributeIDTypeClusterWebRTCTransportProviderAttributeAttributeListID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeAttributeListID,
+    MTRAttributeIDTypeClusterWebRTCTransportProviderAttributeFeatureMapID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeFeatureMapID,
+    MTRAttributeIDTypeClusterWebRTCTransportProviderAttributeClusterRevisionID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeClusterRevisionID,
+
+    // Cluster WebRTCTransportRequestor attributes
+    MTRAttributeIDTypeClusterWebRTCTransportRequestorAttributeCurrentSessionsID MTR_PROVISIONALLY_AVAILABLE = 0x00000000,
+    MTRAttributeIDTypeClusterWebRTCTransportRequestorAttributeGeneratedCommandListID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeGeneratedCommandListID,
+    MTRAttributeIDTypeClusterWebRTCTransportRequestorAttributeAcceptedCommandListID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeAcceptedCommandListID,
+    MTRAttributeIDTypeClusterWebRTCTransportRequestorAttributeEventListID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeEventListID,
+    MTRAttributeIDTypeClusterWebRTCTransportRequestorAttributeAttributeListID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeAttributeListID,
+    MTRAttributeIDTypeClusterWebRTCTransportRequestorAttributeFeatureMapID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeFeatureMapID,
+    MTRAttributeIDTypeClusterWebRTCTransportRequestorAttributeClusterRevisionID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeClusterRevisionID,
+
+    // Cluster PushAVStreamTransport attributes
+    MTRAttributeIDTypeClusterPushAVStreamTransportAttributeSupportedContainerFormatsID MTR_PROVISIONALLY_AVAILABLE = 0x00000000,
+    MTRAttributeIDTypeClusterPushAVStreamTransportAttributeSupportedIngestMethodsID MTR_PROVISIONALLY_AVAILABLE = 0x00000001,
+    MTRAttributeIDTypeClusterPushAVStreamTransportAttributeCurrentConnectionsID MTR_PROVISIONALLY_AVAILABLE = 0x00000002,
+    MTRAttributeIDTypeClusterPushAVStreamTransportAttributeGeneratedCommandListID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeGeneratedCommandListID,
+    MTRAttributeIDTypeClusterPushAVStreamTransportAttributeAcceptedCommandListID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeAcceptedCommandListID,
+    MTRAttributeIDTypeClusterPushAVStreamTransportAttributeEventListID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeEventListID,
+    MTRAttributeIDTypeClusterPushAVStreamTransportAttributeAttributeListID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeAttributeListID,
+    MTRAttributeIDTypeClusterPushAVStreamTransportAttributeFeatureMapID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeFeatureMapID,
+    MTRAttributeIDTypeClusterPushAVStreamTransportAttributeClusterRevisionID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeClusterRevisionID,
+
+    // Cluster Chime attributes
+    MTRAttributeIDTypeClusterChimeAttributeInstalledChimeSoundsID MTR_PROVISIONALLY_AVAILABLE = 0x00000000,
+    MTRAttributeIDTypeClusterChimeAttributeActiveChimeSoundIdID MTR_PROVISIONALLY_AVAILABLE = 0x00000001,
+    MTRAttributeIDTypeClusterChimeAttributeEnabledID MTR_PROVISIONALLY_AVAILABLE = 0x00000002,
+    MTRAttributeIDTypeClusterChimeAttributeGeneratedCommandListID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeGeneratedCommandListID,
+    MTRAttributeIDTypeClusterChimeAttributeAcceptedCommandListID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeAcceptedCommandListID,
+    MTRAttributeIDTypeClusterChimeAttributeEventListID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeEventListID,
+    MTRAttributeIDTypeClusterChimeAttributeAttributeListID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeAttributeListID,
+    MTRAttributeIDTypeClusterChimeAttributeFeatureMapID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeFeatureMapID,
+    MTRAttributeIDTypeClusterChimeAttributeClusterRevisionID MTR_PROVISIONALLY_AVAILABLE = MTRAttributeIDTypeGlobalAttributeClusterRevisionID,
+
     // Cluster EcosystemInformation attributes
     MTRAttributeIDTypeClusterEcosystemInformationAttributeDeviceDirectoryID MTR_PROVISIONALLY_AVAILABLE = 0x00000000,
     MTRAttributeIDTypeClusterEcosystemInformationAttributeLocationDirectoryID MTR_PROVISIONALLY_AVAILABLE = 0x00000001,
@@ -6947,6 +7065,60 @@ typedef NS_ENUM(uint32_t, MTRCommandIDType) {
     MTRCommandIDTypeClusterContentAppObserverCommandContentAppMessageID MTR_PROVISIONALLY_AVAILABLE = 0x00000000,
     MTRCommandIDTypeClusterContentAppObserverCommandContentAppMessageResponseID MTR_PROVISIONALLY_AVAILABLE = 0x00000001,
 
+    // Cluster CameraAVStreamManagement commands
+    MTRCommandIDTypeClusterCameraAVStreamManagementCommandAudioStreamAllocateID MTR_PROVISIONALLY_AVAILABLE = 0x00000000,
+    MTRCommandIDTypeClusterCameraAVStreamManagementCommandAudioStreamAllocateResponseID MTR_PROVISIONALLY_AVAILABLE = 0x00000001,
+    MTRCommandIDTypeClusterCameraAVStreamManagementCommandAudioStreamDeallocateID MTR_PROVISIONALLY_AVAILABLE = 0x00000002,
+    MTRCommandIDTypeClusterCameraAVStreamManagementCommandVideoStreamAllocateID MTR_PROVISIONALLY_AVAILABLE = 0x00000003,
+    MTRCommandIDTypeClusterCameraAVStreamManagementCommandVideoStreamAllocateResponseID MTR_PROVISIONALLY_AVAILABLE = 0x00000004,
+    MTRCommandIDTypeClusterCameraAVStreamManagementCommandVideoStreamModifyID MTR_PROVISIONALLY_AVAILABLE = 0x00000005,
+    MTRCommandIDTypeClusterCameraAVStreamManagementCommandVideoStreamDeallocateID MTR_PROVISIONALLY_AVAILABLE = 0x00000006,
+    MTRCommandIDTypeClusterCameraAVStreamManagementCommandSnapshotStreamAllocateID MTR_PROVISIONALLY_AVAILABLE = 0x00000007,
+    MTRCommandIDTypeClusterCameraAVStreamManagementCommandSnapshotStreamAllocateResponseID MTR_PROVISIONALLY_AVAILABLE = 0x00000008,
+    MTRCommandIDTypeClusterCameraAVStreamManagementCommandSnapshotStreamDeallocateID MTR_PROVISIONALLY_AVAILABLE = 0x00000009,
+    MTRCommandIDTypeClusterCameraAVStreamManagementCommandSetStreamPriorityID MTR_PROVISIONALLY_AVAILABLE = 0x0000000A,
+    MTRCommandIDTypeClusterCameraAVStreamManagementCommandCaptureSnapshotID MTR_PROVISIONALLY_AVAILABLE = 0x0000000B,
+    MTRCommandIDTypeClusterCameraAVStreamManagementCommandCaptureSnapshotResponseID MTR_PROVISIONALLY_AVAILABLE = 0x0000000C,
+    MTRCommandIDTypeClusterCameraAVStreamManagementCommandSetViewportID MTR_PROVISIONALLY_AVAILABLE = 0x0000000D,
+    MTRCommandIDTypeClusterCameraAVStreamManagementCommandSetImageRotationID MTR_PROVISIONALLY_AVAILABLE = 0x0000000E,
+    MTRCommandIDTypeClusterCameraAVStreamManagementCommandSetImageFlipHorizontalID MTR_PROVISIONALLY_AVAILABLE = 0x0000000F,
+    MTRCommandIDTypeClusterCameraAVStreamManagementCommandSetImageFlipVerticalID MTR_PROVISIONALLY_AVAILABLE = 0x00000010,
+
+    // Cluster CameraAVSettingsUserLevelManagement commands
+    MTRCommandIDTypeClusterCameraAVSettingsUserLevelManagementCommandMptzSetID MTR_PROVISIONALLY_AVAILABLE = 0x00000000,
+    MTRCommandIDTypeClusterCameraAVSettingsUserLevelManagementCommandMptzRelativeMoveID MTR_PROVISIONALLY_AVAILABLE = 0x00000001,
+    MTRCommandIDTypeClusterCameraAVSettingsUserLevelManagementCommandSetAsPresetID MTR_PROVISIONALLY_AVAILABLE = 0x00000002,
+    MTRCommandIDTypeClusterCameraAVSettingsUserLevelManagementCommandDptzSetViewportID MTR_PROVISIONALLY_AVAILABLE = 0x00000003,
+    MTRCommandIDTypeClusterCameraAVSettingsUserLevelManagementCommandDptzRelativeMoveID MTR_PROVISIONALLY_AVAILABLE = 0x00000004,
+
+    // Cluster WebRTCTransportProvider commands
+    MTRCommandIDTypeClusterWebRTCTransportProviderCommandWebRTCSolicitOfferID MTR_PROVISIONALLY_AVAILABLE = 0x00000001,
+    MTRCommandIDTypeClusterWebRTCTransportProviderCommandWebRTCSolicitOfferResponseID MTR_PROVISIONALLY_AVAILABLE = 0x00000002,
+    MTRCommandIDTypeClusterWebRTCTransportProviderCommandWebRTCProvideOfferID MTR_PROVISIONALLY_AVAILABLE = 0x00000003,
+    MTRCommandIDTypeClusterWebRTCTransportProviderCommandWebRTCProvideOfferResponseID MTR_PROVISIONALLY_AVAILABLE = 0x00000004,
+    MTRCommandIDTypeClusterWebRTCTransportProviderCommandWebRTCProvideAnswerID MTR_PROVISIONALLY_AVAILABLE = 0x00000005,
+    MTRCommandIDTypeClusterWebRTCTransportProviderCommandWebRTCProvideICECandidateID MTR_PROVISIONALLY_AVAILABLE = 0x00000006,
+    MTRCommandIDTypeClusterWebRTCTransportProviderCommandWebRTCEndSessionID MTR_PROVISIONALLY_AVAILABLE = 0x00000007,
+
+    // Cluster WebRTCTransportRequestor commands
+    MTRCommandIDTypeClusterWebRTCTransportRequestorCommandWebRTCOfferID MTR_PROVISIONALLY_AVAILABLE = 0x00000001,
+    MTRCommandIDTypeClusterWebRTCTransportRequestorCommandWebRTCAnswerID MTR_PROVISIONALLY_AVAILABLE = 0x00000002,
+    MTRCommandIDTypeClusterWebRTCTransportRequestorCommandWebRTCICECandidateID MTR_PROVISIONALLY_AVAILABLE = 0x00000003,
+    MTRCommandIDTypeClusterWebRTCTransportRequestorCommandWebRTCEndID MTR_PROVISIONALLY_AVAILABLE = 0x00000004,
+
+    // Cluster PushAVStreamTransport commands
+    MTRCommandIDTypeClusterPushAVStreamTransportCommandAllocatePushTransportID MTR_PROVISIONALLY_AVAILABLE = 0x00000000,
+    MTRCommandIDTypeClusterPushAVStreamTransportCommandAllocatePushTransportResponseID MTR_PROVISIONALLY_AVAILABLE = 0x00000001,
+    MTRCommandIDTypeClusterPushAVStreamTransportCommandDeallocatePushTransportID MTR_PROVISIONALLY_AVAILABLE = 0x00000002,
+    MTRCommandIDTypeClusterPushAVStreamTransportCommandModifyPushTransportID MTR_PROVISIONALLY_AVAILABLE = 0x00000003,
+    MTRCommandIDTypeClusterPushAVStreamTransportCommandSetTransportStatusID MTR_PROVISIONALLY_AVAILABLE = 0x00000004,
+    MTRCommandIDTypeClusterPushAVStreamTransportCommandManuallyTriggerTransportID MTR_PROVISIONALLY_AVAILABLE = 0x00000005,
+    MTRCommandIDTypeClusterPushAVStreamTransportCommandFindStreamConfigurationID MTR_PROVISIONALLY_AVAILABLE = 0x00000006,
+    MTRCommandIDTypeClusterPushAVStreamTransportCommandFindStreamConfigurationResponseID MTR_PROVISIONALLY_AVAILABLE = 0x00000007,
+
+    // Cluster Chime commands
+    MTRCommandIDTypeClusterChimeCommandPlayChimeSoundID MTR_PROVISIONALLY_AVAILABLE = 0x00000000,
+
     // Cluster CommissionerControl commands
     MTRCommandIDTypeClusterCommissionerControlCommandRequestCommissioningApprovalID MTR_PROVISIONALLY_AVAILABLE = 0x00000000,
     MTRCommandIDTypeClusterCommissionerControlCommandCommissionNodeID MTR_PROVISIONALLY_AVAILABLE = 0x00000001,
@@ -7517,6 +7689,15 @@ typedef NS_ENUM(uint32_t, MTREventIDType) {
     // Cluster ContentControl events
     MTREventIDTypeClusterContentControlEventRemainingScreenTimeExpiredID MTR_PROVISIONALLY_AVAILABLE = 0x00000000,
 
+    // Cluster CameraAVStreamManagement events
+    MTREventIDTypeClusterCameraAVStreamManagementEventVideoStreamChangedID MTR_PROVISIONALLY_AVAILABLE = 0x00000000,
+    MTREventIDTypeClusterCameraAVStreamManagementEventAudioStreamChangedID MTR_PROVISIONALLY_AVAILABLE = 0x00000001,
+    MTREventIDTypeClusterCameraAVStreamManagementEventSnapshotStreamChangedID MTR_PROVISIONALLY_AVAILABLE = 0x00000002,
+
+    // Cluster PushAVStreamTransport events
+    MTREventIDTypeClusterPushAVStreamTransportEventPushTransportBeginID MTR_PROVISIONALLY_AVAILABLE = 0x00000000,
+    MTREventIDTypeClusterPushAVStreamTransportEventPushTransportEndID MTR_PROVISIONALLY_AVAILABLE = 0x00000001,
+
     // Cluster CommissionerControl events
     MTREventIDTypeClusterCommissionerControlEventCommissioningRequestResultID MTR_PROVISIONALLY_AVAILABLE = 0x00000000,
 
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRClusterNames.mm b/src/darwin/Framework/CHIP/zap-generated/MTRClusterNames.mm
index f5beab931c57fa..2c53ef33294d4e 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRClusterNames.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRClusterNames.mm
@@ -378,6 +378,24 @@
     case MTRClusterIDTypeContentAppObserverID:
         result = @"ContentAppObserver";
         break;
+    case MTRClusterIDTypeCameraAVStreamManagementID:
+        result = @"CameraAVStreamManagement";
+        break;
+    case MTRClusterIDTypeCameraAVSettingsUserLevelManagementID:
+        result = @"CameraAVSettingsUserLevelManagement";
+        break;
+    case MTRClusterIDTypeWebRTCTransportProviderID:
+        result = @"WebRTCTransportProvider";
+        break;
+    case MTRClusterIDTypeWebRTCTransportRequestorID:
+        result = @"WebRTCTransportRequestor";
+        break;
+    case MTRClusterIDTypePushAVStreamTransportID:
+        result = @"PushAVStreamTransport";
+        break;
+    case MTRClusterIDTypeChimeID:
+        result = @"Chime";
+        break;
     case MTRClusterIDTypeEcosystemInformationID:
         result = @"EcosystemInformation";
         break;
@@ -8337,6 +8355,472 @@
         }
         break;
 
+    case MTRClusterIDTypeCameraAVStreamManagementID:
+
+        switch (attributeID) {
+
+            // Cluster CameraAVStreamManagement attributes
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMaxConcurrentVideoEncodersID:
+            result = @"MaxConcurrentVideoEncoders";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMaxEncodedPixelRateID:
+            result = @"MaxEncodedPixelRate";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeVideoSensorParamsID:
+            result = @"VideoSensorParams";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeNightVisionCapableID:
+            result = @"NightVisionCapable";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMinViewPortWidthID:
+            result = @"MinViewPortWidth";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMinViewPortHeightID:
+            result = @"MinViewPortHeight";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeRateDistortionTradeOffPointsID:
+            result = @"RateDistortionTradeOffPoints";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMaxPreRollBufferSizeID:
+            result = @"MaxPreRollBufferSize";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMicrophoneCapabilitiesID:
+            result = @"MicrophoneCapabilities";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeSpeakerCapabilitiesID:
+            result = @"SpeakerCapabilities";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeTwoWayTalkSupportID:
+            result = @"TwoWayTalkSupport";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeSupportedSnapshotParamsID:
+            result = @"SupportedSnapshotParams";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeHDRCapableID:
+            result = @"HDRCapable";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMaxNetworkBandwidthID:
+            result = @"MaxNetworkBandwidth";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeCurrentFrameRateID:
+            result = @"CurrentFrameRate";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeHDRModeID:
+            result = @"HDRMode";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeCurrentVideoCodecsID:
+            result = @"CurrentVideoCodecs";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeCurrentSnapshotConfigID:
+            result = @"CurrentSnapshotConfig";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeFabricsUsingCameraID:
+            result = @"FabricsUsingCamera";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeAllocatedVideoStreamsID:
+            result = @"AllocatedVideoStreams";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeAllocatedAudioStreamsID:
+            result = @"AllocatedAudioStreams";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeAllocatedSnapshotStreamsID:
+            result = @"AllocatedSnapshotStreams";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeRankedVideoStreamPrioritiesListID:
+            result = @"RankedVideoStreamPrioritiesList";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeSoftRecordingPrivacyModeSettingID:
+            result = @"SoftRecordingPrivacyModeSetting";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeSoftLivestreamPrivacyModeSettingID:
+            result = @"SoftLivestreamPrivacyModeSetting";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeHardPrivacyModeID:
+            result = @"HardPrivacyMode";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeNightVisionID:
+            result = @"NightVision";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeNightVisionIllumID:
+            result = @"NightVisionIllum";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeAWBID:
+            result = @"AWB";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeShutterSpeedID:
+            result = @"ShutterSpeed";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeISOID:
+            result = @"ISO";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeViewportID:
+            result = @"Viewport";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeSpkrOnOffID:
+            result = @"SpkrOnOff";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeSpkrVolumeLevelID:
+            result = @"SpkrVolumeLevel";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeSpkrMaxLevelID:
+            result = @"SpkrMaxLevel";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeSpkrMinLevelID:
+            result = @"SpkrMinLevel";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMicOnOffID:
+            result = @"MicOnOff";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMicCurrentLevelID:
+            result = @"MicCurrentLevel";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMicMaxLevelID:
+            result = @"MicMaxLevel";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMicMinLevelID:
+            result = @"MicMinLevel";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMicAGCID:
+            result = @"MicAGC";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeImageRotationID:
+            result = @"ImageRotation";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeImageFlipHorizontalID:
+            result = @"ImageFlipHorizontal";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeImageFlipVerticalID:
+            result = @"ImageFlipVertical";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeLocalVideoRecordingEnabledID:
+            result = @"LocalVideoRecordingEnabled";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeLocalSnapshotRecordingEnabledID:
+            result = @"LocalSnapshotRecordingEnabled";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeStatusLightID:
+            result = @"StatusLight";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeStatusLightBrightnessID:
+            result = @"StatusLightBrightness";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeDepthSensorStatusID:
+            result = @"DepthSensorStatus";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeWatermarkEnabledID:
+            result = @"WatermarkEnabled";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeOSDEnabledID:
+            result = @"OSDEnabled";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeGeneratedCommandListID:
+            result = @"GeneratedCommandList";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeAcceptedCommandListID:
+            result = @"AcceptedCommandList";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeEventListID:
+            result = @"EventList";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeAttributeListID:
+            result = @"AttributeList";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeFeatureMapID:
+            result = @"FeatureMap";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeClusterRevisionID:
+            result = @"ClusterRevision";
+            break;
+
+        default:
+            result = [NSString stringWithFormat:@"<Unknown attributeID %d>", attributeID];
+            break;
+        }
+        break;
+
+    case MTRClusterIDTypeCameraAVSettingsUserLevelManagementID:
+
+        switch (attributeID) {
+
+            // Cluster CameraAVSettingsUserLevelManagement attributes
+        case MTRAttributeIDTypeClusterCameraAVSettingsUserLevelManagementAttributeMptzID:
+            result = @"Mptz";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVSettingsUserLevelManagementAttributeMaxPresetsID:
+            result = @"MaxPresets";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVSettingsUserLevelManagementAttributePresetMptzTableID:
+            result = @"PresetMptzTable";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVSettingsUserLevelManagementAttributeMptzRelativeMoveID:
+            result = @"MptzRelativeMove";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVSettingsUserLevelManagementAttributeDptzRelativeMoveID:
+            result = @"DptzRelativeMove";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVSettingsUserLevelManagementAttributeGeneratedCommandListID:
+            result = @"GeneratedCommandList";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVSettingsUserLevelManagementAttributeAcceptedCommandListID:
+            result = @"AcceptedCommandList";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVSettingsUserLevelManagementAttributeEventListID:
+            result = @"EventList";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVSettingsUserLevelManagementAttributeAttributeListID:
+            result = @"AttributeList";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVSettingsUserLevelManagementAttributeFeatureMapID:
+            result = @"FeatureMap";
+            break;
+
+        case MTRAttributeIDTypeClusterCameraAVSettingsUserLevelManagementAttributeClusterRevisionID:
+            result = @"ClusterRevision";
+            break;
+
+        default:
+            result = [NSString stringWithFormat:@"<Unknown attributeID %d>", attributeID];
+            break;
+        }
+        break;
+
+    case MTRClusterIDTypeWebRTCTransportProviderID:
+
+        switch (attributeID) {
+
+            // Cluster WebRTCTransportProvider attributes
+        case MTRAttributeIDTypeClusterWebRTCTransportProviderAttributeCurrentSessionsID:
+            result = @"CurrentSessions";
+            break;
+
+        case MTRAttributeIDTypeClusterWebRTCTransportProviderAttributeGeneratedCommandListID:
+            result = @"GeneratedCommandList";
+            break;
+
+        case MTRAttributeIDTypeClusterWebRTCTransportProviderAttributeAcceptedCommandListID:
+            result = @"AcceptedCommandList";
+            break;
+
+        case MTRAttributeIDTypeClusterWebRTCTransportProviderAttributeEventListID:
+            result = @"EventList";
+            break;
+
+        case MTRAttributeIDTypeClusterWebRTCTransportProviderAttributeAttributeListID:
+            result = @"AttributeList";
+            break;
+
+        case MTRAttributeIDTypeClusterWebRTCTransportProviderAttributeFeatureMapID:
+            result = @"FeatureMap";
+            break;
+
+        case MTRAttributeIDTypeClusterWebRTCTransportProviderAttributeClusterRevisionID:
+            result = @"ClusterRevision";
+            break;
+
+        default:
+            result = [NSString stringWithFormat:@"<Unknown attributeID %d>", attributeID];
+            break;
+        }
+        break;
+
+    case MTRClusterIDTypeWebRTCTransportRequestorID:
+
+        switch (attributeID) {
+
+            // Cluster WebRTCTransportRequestor attributes
+        case MTRAttributeIDTypeClusterWebRTCTransportRequestorAttributeCurrentSessionsID:
+            result = @"CurrentSessions";
+            break;
+
+        case MTRAttributeIDTypeClusterWebRTCTransportRequestorAttributeGeneratedCommandListID:
+            result = @"GeneratedCommandList";
+            break;
+
+        case MTRAttributeIDTypeClusterWebRTCTransportRequestorAttributeAcceptedCommandListID:
+            result = @"AcceptedCommandList";
+            break;
+
+        case MTRAttributeIDTypeClusterWebRTCTransportRequestorAttributeEventListID:
+            result = @"EventList";
+            break;
+
+        case MTRAttributeIDTypeClusterWebRTCTransportRequestorAttributeAttributeListID:
+            result = @"AttributeList";
+            break;
+
+        case MTRAttributeIDTypeClusterWebRTCTransportRequestorAttributeFeatureMapID:
+            result = @"FeatureMap";
+            break;
+
+        case MTRAttributeIDTypeClusterWebRTCTransportRequestorAttributeClusterRevisionID:
+            result = @"ClusterRevision";
+            break;
+
+        default:
+            result = [NSString stringWithFormat:@"<Unknown attributeID %d>", attributeID];
+            break;
+        }
+        break;
+
+    case MTRClusterIDTypePushAVStreamTransportID:
+
+        switch (attributeID) {
+
+            // Cluster PushAVStreamTransport attributes
+        case MTRAttributeIDTypeClusterPushAVStreamTransportAttributeSupportedContainerFormatsID:
+            result = @"SupportedContainerFormats";
+            break;
+
+        case MTRAttributeIDTypeClusterPushAVStreamTransportAttributeSupportedIngestMethodsID:
+            result = @"SupportedIngestMethods";
+            break;
+
+        case MTRAttributeIDTypeClusterPushAVStreamTransportAttributeCurrentConnectionsID:
+            result = @"CurrentConnections";
+            break;
+
+        case MTRAttributeIDTypeClusterPushAVStreamTransportAttributeGeneratedCommandListID:
+            result = @"GeneratedCommandList";
+            break;
+
+        case MTRAttributeIDTypeClusterPushAVStreamTransportAttributeAcceptedCommandListID:
+            result = @"AcceptedCommandList";
+            break;
+
+        case MTRAttributeIDTypeClusterPushAVStreamTransportAttributeEventListID:
+            result = @"EventList";
+            break;
+
+        case MTRAttributeIDTypeClusterPushAVStreamTransportAttributeAttributeListID:
+            result = @"AttributeList";
+            break;
+
+        case MTRAttributeIDTypeClusterPushAVStreamTransportAttributeFeatureMapID:
+            result = @"FeatureMap";
+            break;
+
+        case MTRAttributeIDTypeClusterPushAVStreamTransportAttributeClusterRevisionID:
+            result = @"ClusterRevision";
+            break;
+
+        default:
+            result = [NSString stringWithFormat:@"<Unknown attributeID %d>", attributeID];
+            break;
+        }
+        break;
+
+    case MTRClusterIDTypeChimeID:
+
+        switch (attributeID) {
+
+            // Cluster Chime attributes
+        case MTRAttributeIDTypeClusterChimeAttributeInstalledChimeSoundsID:
+            result = @"InstalledChimeSounds";
+            break;
+
+        case MTRAttributeIDTypeClusterChimeAttributeActiveChimeSoundIdID:
+            result = @"ActiveChimeSoundId";
+            break;
+
+        case MTRAttributeIDTypeClusterChimeAttributeEnabledID:
+            result = @"Enabled";
+            break;
+
+        case MTRAttributeIDTypeClusterChimeAttributeGeneratedCommandListID:
+            result = @"GeneratedCommandList";
+            break;
+
+        case MTRAttributeIDTypeClusterChimeAttributeAcceptedCommandListID:
+            result = @"AcceptedCommandList";
+            break;
+
+        case MTRAttributeIDTypeClusterChimeAttributeEventListID:
+            result = @"EventList";
+            break;
+
+        case MTRAttributeIDTypeClusterChimeAttributeAttributeListID:
+            result = @"AttributeList";
+            break;
+
+        case MTRAttributeIDTypeClusterChimeAttributeFeatureMapID:
+            result = @"FeatureMap";
+            break;
+
+        case MTRAttributeIDTypeClusterChimeAttributeClusterRevisionID:
+            result = @"ClusterRevision";
+            break;
+
+        default:
+            result = [NSString stringWithFormat:@"<Unknown attributeID %d>", attributeID];
+            break;
+        }
+        break;
+
     case MTRClusterIDTypeEcosystemInformationID:
 
         switch (attributeID) {
@@ -11065,6 +11549,88 @@
         }
         break;
 
+    case MTRClusterIDTypeCameraAVStreamManagementID:
+
+        switch (eventID) {
+
+            // Cluster CameraAVStreamManagement events
+        case MTREventIDTypeClusterCameraAVStreamManagementEventVideoStreamChangedID:
+            result = @"VideoStreamChanged";
+            break;
+
+        case MTREventIDTypeClusterCameraAVStreamManagementEventAudioStreamChangedID:
+            result = @"AudioStreamChanged";
+            break;
+
+        case MTREventIDTypeClusterCameraAVStreamManagementEventSnapshotStreamChangedID:
+            result = @"SnapshotStreamChanged";
+            break;
+
+        default:
+            result = [NSString stringWithFormat:@"<Unknown eventID %d>", eventID];
+            break;
+        }
+        break;
+
+    case MTRClusterIDTypeCameraAVSettingsUserLevelManagementID:
+
+        switch (eventID) {
+
+        default:
+            result = [NSString stringWithFormat:@"<Unknown eventID %d>", eventID];
+            break;
+        }
+        break;
+
+    case MTRClusterIDTypeWebRTCTransportProviderID:
+
+        switch (eventID) {
+
+        default:
+            result = [NSString stringWithFormat:@"<Unknown eventID %d>", eventID];
+            break;
+        }
+        break;
+
+    case MTRClusterIDTypeWebRTCTransportRequestorID:
+
+        switch (eventID) {
+
+        default:
+            result = [NSString stringWithFormat:@"<Unknown eventID %d>", eventID];
+            break;
+        }
+        break;
+
+    case MTRClusterIDTypePushAVStreamTransportID:
+
+        switch (eventID) {
+
+            // Cluster PushAVStreamTransport events
+        case MTREventIDTypeClusterPushAVStreamTransportEventPushTransportBeginID:
+            result = @"PushTransportBegin";
+            break;
+
+        case MTREventIDTypeClusterPushAVStreamTransportEventPushTransportEndID:
+            result = @"PushTransportEnd";
+            break;
+
+        default:
+            result = [NSString stringWithFormat:@"<Unknown eventID %d>", eventID];
+            break;
+        }
+        break;
+
+    case MTRClusterIDTypeChimeID:
+
+        switch (eventID) {
+
+        default:
+            result = [NSString stringWithFormat:@"<Unknown eventID %d>", eventID];
+            break;
+        }
+        break;
+
     case MTRClusterIDTypeEcosystemInformationID:
 
         switch (eventID) {
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRClusters.h b/src/darwin/Framework/CHIP/zap-generated/MTRClusters.h
index e2197784a01237..4fabee00f0ffcd 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRClusters.h
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRClusters.h
@@ -7005,6 +7005,455 @@ MTR_PROVISIONALLY_AVAILABLE
 
 @end
 
+/**
+ * Cluster Camera AV Stream Management
+ *    This cluster is used to allow clients to manage, control, and configure various
+      audio, video, and snapshot streams on a camera.
+ */
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRClusterCameraAVStreamManagement : MTRGenericCluster
+
+- (void)audioStreamAllocateWithParams:(MTRCameraAVStreamManagementClusterAudioStreamAllocateParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(void (^)(MTRCameraAVStreamManagementClusterAudioStreamAllocateResponseParams * _Nullable data, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)audioStreamDeallocateWithParams:(MTRCameraAVStreamManagementClusterAudioStreamDeallocateParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)videoStreamAllocateWithParams:(MTRCameraAVStreamManagementClusterVideoStreamAllocateParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(void (^)(MTRCameraAVStreamManagementClusterVideoStreamAllocateResponseParams * _Nullable data, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)videoStreamModifyWithParams:(MTRCameraAVStreamManagementClusterVideoStreamModifyParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)videoStreamDeallocateWithParams:(MTRCameraAVStreamManagementClusterVideoStreamDeallocateParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)snapshotStreamAllocateWithParams:(MTRCameraAVStreamManagementClusterSnapshotStreamAllocateParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(void (^)(MTRCameraAVStreamManagementClusterSnapshotStreamAllocateResponseParams * _Nullable data, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)snapshotStreamDeallocateWithParams:(MTRCameraAVStreamManagementClusterSnapshotStreamDeallocateParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)setStreamPriorityWithParams:(MTRCameraAVStreamManagementClusterSetStreamPriorityParams * _Nullable)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)setStreamPriorityWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion
+    MTR_PROVISIONALLY_AVAILABLE;
+- (void)captureSnapshotWithParams:(MTRCameraAVStreamManagementClusterCaptureSnapshotParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)setViewportWithParams:(MTRCameraAVStreamManagementClusterSetViewportParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)setImageRotationWithParams:(MTRCameraAVStreamManagementClusterSetImageRotationParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)setImageFlipHorizontalWithParams:(MTRCameraAVStreamManagementClusterSetImageFlipHorizontalParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)setImageFlipVerticalWithParams:(MTRCameraAVStreamManagementClusterSetImageFlipVerticalParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeMaxConcurrentVideoEncodersWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeMaxEncodedPixelRateWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeVideoSensorParamsWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeNightVisionCapableWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeMinViewPortWidthWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeMinViewPortHeightWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeRateDistortionTradeOffPointsWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeMaxPreRollBufferSizeWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeMicrophoneCapabilitiesWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeSpeakerCapabilitiesWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeTwoWayTalkSupportWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeSupportedSnapshotParamsWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeHDRCapableWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeMaxNetworkBandwidthWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeCurrentFrameRateWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeHDRModeWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeHDRModeWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeHDRModeWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeCurrentVideoCodecsWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeCurrentSnapshotConfigWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeFabricsUsingCameraWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeAllocatedVideoStreamsWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeAllocatedAudioStreamsWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeAllocatedSnapshotStreamsWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeRankedVideoStreamPrioritiesListWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeRankedVideoStreamPrioritiesListWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeRankedVideoStreamPrioritiesListWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeSoftRecordingPrivacyModeSettingWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeSoftRecordingPrivacyModeSettingWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeSoftRecordingPrivacyModeSettingWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeSoftLivestreamPrivacyModeSettingWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeSoftLivestreamPrivacyModeSettingWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeSoftLivestreamPrivacyModeSettingWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeHardPrivacyModeWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeNightVisionWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeNightVisionWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeNightVisionWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeNightVisionIllumWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeNightVisionIllumWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeNightVisionIllumWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeAWBWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeAWBWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeAWBWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeShutterSpeedWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeShutterSpeedWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeShutterSpeedWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeISOWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeISOWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeISOWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeViewportWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeSpkrOnOffWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeSpkrOnOffWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeSpkrOnOffWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeSpkrVolumeLevelWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeSpkrVolumeLevelWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeSpkrVolumeLevelWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeSpkrMaxLevelWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeSpkrMaxLevelWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeSpkrMaxLevelWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeSpkrMinLevelWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeSpkrMinLevelWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeSpkrMinLevelWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeMicOnOffWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeMicOnOffWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeMicOnOffWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeMicCurrentLevelWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeMicCurrentLevelWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeMicCurrentLevelWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeMicMaxLevelWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeMicMaxLevelWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeMicMaxLevelWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeMicMinLevelWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeMicMinLevelWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeMicMinLevelWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeMicAGCWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeMicAGCWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeMicAGCWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeImageRotationWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeImageFlipHorizontalWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeImageFlipVerticalWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeLocalVideoRecordingEnabledWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeLocalVideoRecordingEnabledWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeLocalVideoRecordingEnabledWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeLocalSnapshotRecordingEnabledWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeLocalSnapshotRecordingEnabledWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeLocalSnapshotRecordingEnabledWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeStatusLightWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeStatusLightWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeStatusLightWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeStatusLightBrightnessWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeStatusLightBrightnessWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeStatusLightBrightnessWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeDepthSensorStatusWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeDepthSensorStatusWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeDepthSensorStatusWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeWatermarkEnabledWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeWatermarkEnabledWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeWatermarkEnabledWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeOSDEnabledWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeOSDEnabledWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeOSDEnabledWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeEventListWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+@end
+
+@interface MTRClusterCameraAVStreamManagement (Availability)
+
+/**
+ * For all instance methods that take a completion (i.e. command invocations),
+ * the completion will be called on the provided queue.
+ */
+- (instancetype _Nullable)initWithDevice:(MTRDevice *)device
+                              endpointID:(NSNumber *)endpointID
+                                   queue:(dispatch_queue_t)queue MTR_PROVISIONALLY_AVAILABLE;
+
+@end
+
+/**
+ * Cluster Camera AV Settings User Level Management
+ *    This cluster provides an interface into controls associated with the operation of a device that provides pan, tilt, and zoom functions, either mechanically, or against a digital image.
+ */
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRClusterCameraAVSettingsUserLevelManagement : MTRGenericCluster
+
+- (void)mptzSetWithParams:(MTRCameraAVSettingsUserLevelManagementClusterMptzSetParams * _Nullable)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)mptzSetWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion
+    MTR_PROVISIONALLY_AVAILABLE;
+- (void)mptzRelativeMoveWithParams:(MTRCameraAVSettingsUserLevelManagementClusterMptzRelativeMoveParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)setAsPresetWithParams:(MTRCameraAVSettingsUserLevelManagementClusterSetAsPresetParams * _Nullable)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)setAsPresetWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion
+    MTR_PROVISIONALLY_AVAILABLE;
+- (void)dptzSetViewportWithParams:(MTRCameraAVSettingsUserLevelManagementClusterDptzSetViewportParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)dptzRelativeMoveWithParams:(MTRCameraAVSettingsUserLevelManagementClusterDptzRelativeMoveParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeMptzWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeMaxPresetsWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributePresetMptzTableWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeMptzRelativeMoveWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeDptzRelativeMoveWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeEventListWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+@end
+
+@interface MTRClusterCameraAVSettingsUserLevelManagement (Availability)
+
+/**
+ * For all instance methods that take a completion (i.e. command invocations),
+ * the completion will be called on the provided queue.
+ */
+- (instancetype _Nullable)initWithDevice:(MTRDevice *)device
+                              endpointID:(NSNumber *)endpointID
+                                   queue:(dispatch_queue_t)queue MTR_PROVISIONALLY_AVAILABLE;
+
+@end
+
+/**
+ * Cluster WebRTC Transport Provider
+ *    The WebRTC transport provider cluster provides a way for stream providers (e.g. Cameras) to stream or receive their data through WebRTC.
+ */
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRClusterWebRTCTransportProvider : MTRGenericCluster
+
+- (void)webRTCSolicitOfferWithParams:(MTRWebRTCTransportProviderClusterWebRTCSolicitOfferParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(void (^)(MTRWebRTCTransportProviderClusterWebRTCSolicitOfferResponseParams * _Nullable data, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)webRTCProvideOfferWithParams:(MTRWebRTCTransportProviderClusterWebRTCProvideOfferParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(void (^)(MTRWebRTCTransportProviderClusterWebRTCProvideOfferResponseParams * _Nullable data, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)webRTCProvideAnswerWithParams:(MTRWebRTCTransportProviderClusterWebRTCProvideAnswerParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)webRTCProvideICECandidateWithParams:(MTRWebRTCTransportProviderClusterWebRTCProvideICECandidateParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)webRTCEndSessionWithParams:(MTRWebRTCTransportProviderClusterWebRTCEndSessionParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeCurrentSessionsWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeEventListWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+@end
+
+@interface MTRClusterWebRTCTransportProvider (Availability)
+
+/**
+ * For all instance methods that take a completion (i.e. command invocations),
+ * the completion will be called on the provided queue.
+ */
+- (instancetype _Nullable)initWithDevice:(MTRDevice *)device
+                              endpointID:(NSNumber *)endpointID
+                                   queue:(dispatch_queue_t)queue MTR_PROVISIONALLY_AVAILABLE;
+
+@end
+
+/**
+ * Cluster WebRTC Transport Requestor
+ *    The WebRTC transport requestor cluster provides a way for stream consumers (e.g. Matter Stream Viewer) to establish a WebRTC connection with a stream provider that implements the WebRTC Transport Provider Cluster
+ */
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRClusterWebRTCTransportRequestor : MTRGenericCluster
+
+- (void)webRTCOfferWithParams:(MTRWebRTCTransportRequestorClusterWebRTCOfferParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)webRTCAnswerWithParams:(MTRWebRTCTransportRequestorClusterWebRTCAnswerParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)webRTCICECandidateWithParams:(MTRWebRTCTransportRequestorClusterWebRTCICECandidateParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)webRTCEndWithParams:(MTRWebRTCTransportRequestorClusterWebRTCEndParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeCurrentSessionsWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeEventListWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+@end
+
+@interface MTRClusterWebRTCTransportRequestor (Availability)
+
+/**
+ * For all instance methods that take a completion (i.e. command invocations),
+ * the completion will be called on the provided queue.
+ */
+- (instancetype _Nullable)initWithDevice:(MTRDevice *)device
+                              endpointID:(NSNumber *)endpointID
+                                   queue:(dispatch_queue_t)queue MTR_PROVISIONALLY_AVAILABLE;
+
+@end
+
+/**
+ * Cluster Push AV Stream Transport
+ *    This cluster implements the upload of Audio and Video streams from the Camera AV Stream Management Cluster using suitable push-based transports.
+ */
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRClusterPushAVStreamTransport : MTRGenericCluster
+
+- (void)allocatePushTransportWithParams:(MTRPushAVStreamTransportClusterAllocatePushTransportParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(void (^)(MTRPushAVStreamTransportClusterAllocatePushTransportResponseParams * _Nullable data, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)deallocatePushTransportWithParams:(MTRPushAVStreamTransportClusterDeallocatePushTransportParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)modifyPushTransportWithParams:(MTRPushAVStreamTransportClusterModifyPushTransportParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)setTransportStatusWithParams:(MTRPushAVStreamTransportClusterSetTransportStatusParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)manuallyTriggerTransportWithParams:(MTRPushAVStreamTransportClusterManuallyTriggerTransportParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)findStreamConfigurationWithParams:(MTRPushAVStreamTransportClusterFindStreamConfigurationParams * _Nullable)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(void (^)(MTRPushAVStreamTransportClusterFindStreamConfigurationResponseParams * _Nullable data, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)findStreamConfigurationWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(void (^)(MTRPushAVStreamTransportClusterFindStreamConfigurationResponseParams * _Nullable data, NSError * _Nullable error))completion
+    MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeSupportedContainerFormatsWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeSupportedIngestMethodsWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeCurrentConnectionsWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeEventListWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+@end
+
+@interface MTRClusterPushAVStreamTransport (Availability)
+
+/**
+ * For all instance methods that take a completion (i.e. command invocations),
+ * the completion will be called on the provided queue.
+ */
+- (instancetype _Nullable)initWithDevice:(MTRDevice *)device
+                              endpointID:(NSNumber *)endpointID
+                                   queue:(dispatch_queue_t)queue MTR_PROVISIONALLY_AVAILABLE;
+
+@end
+
+/**
+ * Cluster Chime
+ *    This cluster provides facilities to configure and play Chime sounds, such as those used in a doorbell.
+ */
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRClusterChime : MTRGenericCluster
+
+- (void)playChimeSoundWithParams:(MTRChimeClusterPlayChimeSoundParams * _Nullable)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedDataValueDictionaries expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE;
+- (void)playChimeSoundWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion
+    MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeInstalledChimeSoundsWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeActiveChimeSoundIdWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeActiveChimeSoundIdWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeActiveChimeSoundIdWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeEnabledWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeEnabledWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs MTR_PROVISIONALLY_AVAILABLE;
+- (void)writeAttributeEnabledWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeEventListWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params MTR_PROVISIONALLY_AVAILABLE;
+
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+@end
+
+@interface MTRClusterChime (Availability)
+
+/**
+ * For all instance methods that take a completion (i.e. command invocations),
+ * the completion will be called on the provided queue.
+ */
+- (instancetype _Nullable)initWithDevice:(MTRDevice *)device
+                              endpointID:(NSNumber *)endpointID
+                                   queue:(dispatch_queue_t)queue MTR_PROVISIONALLY_AVAILABLE;
+
+@end
+
 /**
  * Cluster Ecosystem Information
  *    Provides extended device information for all the logical devices represented by a Bridged Node.
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm b/src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm
index 26d1ec95ecf1f6..a24a65df3952a9 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm
@@ -19998,6 +19998,1765 @@ - (void)contentAppMessageWithParams:(MTRContentAppObserverClusterContentAppMessa
 
 @end
 
+@implementation MTRClusterCameraAVStreamManagement
+
+- (void)audioStreamAllocateWithParams:(MTRCameraAVStreamManagementClusterAudioStreamAllocateParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(void (^)(MTRCameraAVStreamManagementClusterAudioStreamAllocateResponseParams * _Nullable data, NSError * _Nullable error))completion
+{
+    if (params == nil) {
+        params = [[MTRCameraAVStreamManagementClusterAudioStreamAllocateParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(response, error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = CameraAvStreamManagement::Commands::AudioStreamAllocate::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                    expectedValues:expectedValues
+                             expectedValueInterval:expectedValueIntervalMs
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:MTRCameraAVStreamManagementClusterAudioStreamAllocateResponseParams.class
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (void)audioStreamDeallocateWithParams:(MTRCameraAVStreamManagementClusterAudioStreamDeallocateParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRCameraAVStreamManagementClusterAudioStreamDeallocateParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = CameraAvStreamManagement::Commands::AudioStreamDeallocate::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                    expectedValues:expectedValues
+                             expectedValueInterval:expectedValueIntervalMs
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (void)videoStreamAllocateWithParams:(MTRCameraAVStreamManagementClusterVideoStreamAllocateParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(void (^)(MTRCameraAVStreamManagementClusterVideoStreamAllocateResponseParams * _Nullable data, NSError * _Nullable error))completion
+{
+    if (params == nil) {
+        params = [[MTRCameraAVStreamManagementClusterVideoStreamAllocateParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(response, error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = CameraAvStreamManagement::Commands::VideoStreamAllocate::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                    expectedValues:expectedValues
+                             expectedValueInterval:expectedValueIntervalMs
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:MTRCameraAVStreamManagementClusterVideoStreamAllocateResponseParams.class
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (void)videoStreamModifyWithParams:(MTRCameraAVStreamManagementClusterVideoStreamModifyParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRCameraAVStreamManagementClusterVideoStreamModifyParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = CameraAvStreamManagement::Commands::VideoStreamModify::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                    expectedValues:expectedValues
+                             expectedValueInterval:expectedValueIntervalMs
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (void)videoStreamDeallocateWithParams:(MTRCameraAVStreamManagementClusterVideoStreamDeallocateParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRCameraAVStreamManagementClusterVideoStreamDeallocateParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = CameraAvStreamManagement::Commands::VideoStreamDeallocate::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                    expectedValues:expectedValues
+                             expectedValueInterval:expectedValueIntervalMs
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (void)snapshotStreamAllocateWithParams:(MTRCameraAVStreamManagementClusterSnapshotStreamAllocateParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(void (^)(MTRCameraAVStreamManagementClusterSnapshotStreamAllocateResponseParams * _Nullable data, NSError * _Nullable error))completion
+{
+    if (params == nil) {
+        params = [[MTRCameraAVStreamManagementClusterSnapshotStreamAllocateParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(response, error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = CameraAvStreamManagement::Commands::SnapshotStreamAllocate::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                    expectedValues:expectedValues
+                             expectedValueInterval:expectedValueIntervalMs
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:MTRCameraAVStreamManagementClusterSnapshotStreamAllocateResponseParams.class
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (void)snapshotStreamDeallocateWithParams:(MTRCameraAVStreamManagementClusterSnapshotStreamDeallocateParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRCameraAVStreamManagementClusterSnapshotStreamDeallocateParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = CameraAvStreamManagement::Commands::SnapshotStreamDeallocate::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                    expectedValues:expectedValues
+                             expectedValueInterval:expectedValueIntervalMs
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (void)setStreamPriorityWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues expectedValueInterval:(NSNumber *)expectedValueIntervalMs completion:(MTRStatusCompletion)completion
+{
+    [self setStreamPriorityWithParams:nil expectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs completion:completion];
+}
+- (void)setStreamPriorityWithParams:(MTRCameraAVStreamManagementClusterSetStreamPriorityParams * _Nullable)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRCameraAVStreamManagementClusterSetStreamPriorityParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = CameraAvStreamManagement::Commands::SetStreamPriority::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                    expectedValues:expectedValues
+                             expectedValueInterval:expectedValueIntervalMs
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (void)captureSnapshotWithParams:(MTRCameraAVStreamManagementClusterCaptureSnapshotParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRCameraAVStreamManagementClusterCaptureSnapshotParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = CameraAvStreamManagement::Commands::CaptureSnapshot::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                    expectedValues:expectedValues
+                             expectedValueInterval:expectedValueIntervalMs
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (void)setViewportWithParams:(MTRCameraAVStreamManagementClusterSetViewportParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRCameraAVStreamManagementClusterSetViewportParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = CameraAvStreamManagement::Commands::SetViewport::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                    expectedValues:expectedValues
+                             expectedValueInterval:expectedValueIntervalMs
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (void)setImageRotationWithParams:(MTRCameraAVStreamManagementClusterSetImageRotationParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRCameraAVStreamManagementClusterSetImageRotationParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = CameraAvStreamManagement::Commands::SetImageRotation::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                    expectedValues:expectedValues
+                             expectedValueInterval:expectedValueIntervalMs
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (void)setImageFlipHorizontalWithParams:(MTRCameraAVStreamManagementClusterSetImageFlipHorizontalParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRCameraAVStreamManagementClusterSetImageFlipHorizontalParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = CameraAvStreamManagement::Commands::SetImageFlipHorizontal::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                    expectedValues:expectedValues
+                             expectedValueInterval:expectedValueIntervalMs
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (void)setImageFlipVerticalWithParams:(MTRCameraAVStreamManagementClusterSetImageFlipVerticalParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRCameraAVStreamManagementClusterSetImageFlipVerticalParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = CameraAvStreamManagement::Commands::SetImageFlipVertical::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                    expectedValues:expectedValues
+                             expectedValueInterval:expectedValueIntervalMs
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeMaxConcurrentVideoEncodersWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMaxConcurrentVideoEncodersID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeMaxEncodedPixelRateWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMaxEncodedPixelRateID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeVideoSensorParamsWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeVideoSensorParamsID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeNightVisionCapableWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeNightVisionCapableID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeMinViewPortWidthWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMinViewPortWidthID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeMinViewPortHeightWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMinViewPortHeightID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeRateDistortionTradeOffPointsWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeRateDistortionTradeOffPointsID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeMaxPreRollBufferSizeWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMaxPreRollBufferSizeID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeMicrophoneCapabilitiesWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMicrophoneCapabilitiesID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeSpeakerCapabilitiesWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeSpeakerCapabilitiesID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeTwoWayTalkSupportWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeTwoWayTalkSupportID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeSupportedSnapshotParamsWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeSupportedSnapshotParamsID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeHDRCapableWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeHDRCapableID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeMaxNetworkBandwidthWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMaxNetworkBandwidthID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeCurrentFrameRateWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeCurrentFrameRateID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeHDRModeWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeHDRModeID) params:params];
+}
+
+- (void)writeAttributeHDRModeWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+{
+    [self writeAttributeHDRModeWithValue:dataValueDictionary expectedValueInterval:expectedValueIntervalMs params:nil];
+}
+- (void)writeAttributeHDRModeWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params
+{
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
+
+    [self.device writeAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeHDRModeID) value:dataValueDictionary expectedValueInterval:expectedValueIntervalMs timedWriteTimeout:timedWriteTimeout];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeCurrentVideoCodecsWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeCurrentVideoCodecsID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeCurrentSnapshotConfigWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeCurrentSnapshotConfigID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeFabricsUsingCameraWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeFabricsUsingCameraID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeAllocatedVideoStreamsWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeAllocatedVideoStreamsID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeAllocatedAudioStreamsWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeAllocatedAudioStreamsID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeAllocatedSnapshotStreamsWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeAllocatedSnapshotStreamsID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeRankedVideoStreamPrioritiesListWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeRankedVideoStreamPrioritiesListID) params:params];
+}
+
+- (void)writeAttributeRankedVideoStreamPrioritiesListWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+{
+    [self writeAttributeRankedVideoStreamPrioritiesListWithValue:dataValueDictionary expectedValueInterval:expectedValueIntervalMs params:nil];
+}
+- (void)writeAttributeRankedVideoStreamPrioritiesListWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params
+{
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
+
+    [self.device writeAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeRankedVideoStreamPrioritiesListID) value:dataValueDictionary expectedValueInterval:expectedValueIntervalMs timedWriteTimeout:timedWriteTimeout];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeSoftRecordingPrivacyModeSettingWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeSoftRecordingPrivacyModeSettingID) params:params];
+}
+
+- (void)writeAttributeSoftRecordingPrivacyModeSettingWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+{
+    [self writeAttributeSoftRecordingPrivacyModeSettingWithValue:dataValueDictionary expectedValueInterval:expectedValueIntervalMs params:nil];
+}
+- (void)writeAttributeSoftRecordingPrivacyModeSettingWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params
+{
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
+
+    [self.device writeAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeSoftRecordingPrivacyModeSettingID) value:dataValueDictionary expectedValueInterval:expectedValueIntervalMs timedWriteTimeout:timedWriteTimeout];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeSoftLivestreamPrivacyModeSettingWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeSoftLivestreamPrivacyModeSettingID) params:params];
+}
+
+- (void)writeAttributeSoftLivestreamPrivacyModeSettingWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+{
+    [self writeAttributeSoftLivestreamPrivacyModeSettingWithValue:dataValueDictionary expectedValueInterval:expectedValueIntervalMs params:nil];
+}
+- (void)writeAttributeSoftLivestreamPrivacyModeSettingWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params
+{
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
+
+    [self.device writeAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeSoftLivestreamPrivacyModeSettingID) value:dataValueDictionary expectedValueInterval:expectedValueIntervalMs timedWriteTimeout:timedWriteTimeout];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeHardPrivacyModeWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeHardPrivacyModeID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeNightVisionWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeNightVisionID) params:params];
+}
+
+- (void)writeAttributeNightVisionWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+{
+    [self writeAttributeNightVisionWithValue:dataValueDictionary expectedValueInterval:expectedValueIntervalMs params:nil];
+}
+- (void)writeAttributeNightVisionWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params
+{
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
+
+    [self.device writeAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeNightVisionID) value:dataValueDictionary expectedValueInterval:expectedValueIntervalMs timedWriteTimeout:timedWriteTimeout];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeNightVisionIllumWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeNightVisionIllumID) params:params];
+}
+
+- (void)writeAttributeNightVisionIllumWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+{
+    [self writeAttributeNightVisionIllumWithValue:dataValueDictionary expectedValueInterval:expectedValueIntervalMs params:nil];
+}
+- (void)writeAttributeNightVisionIllumWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params
+{
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
+
+    [self.device writeAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeNightVisionIllumID) value:dataValueDictionary expectedValueInterval:expectedValueIntervalMs timedWriteTimeout:timedWriteTimeout];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeAWBWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeAWBID) params:params];
+}
+
+- (void)writeAttributeAWBWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+{
+    [self writeAttributeAWBWithValue:dataValueDictionary expectedValueInterval:expectedValueIntervalMs params:nil];
+}
+- (void)writeAttributeAWBWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params
+{
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
+
+    [self.device writeAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeAWBID) value:dataValueDictionary expectedValueInterval:expectedValueIntervalMs timedWriteTimeout:timedWriteTimeout];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeShutterSpeedWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeShutterSpeedID) params:params];
+}
+
+- (void)writeAttributeShutterSpeedWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+{
+    [self writeAttributeShutterSpeedWithValue:dataValueDictionary expectedValueInterval:expectedValueIntervalMs params:nil];
+}
+- (void)writeAttributeShutterSpeedWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params
+{
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
+
+    [self.device writeAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeShutterSpeedID) value:dataValueDictionary expectedValueInterval:expectedValueIntervalMs timedWriteTimeout:timedWriteTimeout];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeISOWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeISOID) params:params];
+}
+
+- (void)writeAttributeISOWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+{
+    [self writeAttributeISOWithValue:dataValueDictionary expectedValueInterval:expectedValueIntervalMs params:nil];
+}
+- (void)writeAttributeISOWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params
+{
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
+
+    [self.device writeAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeISOID) value:dataValueDictionary expectedValueInterval:expectedValueIntervalMs timedWriteTimeout:timedWriteTimeout];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeViewportWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeViewportID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeSpkrOnOffWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeSpkrOnOffID) params:params];
+}
+
+- (void)writeAttributeSpkrOnOffWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+{
+    [self writeAttributeSpkrOnOffWithValue:dataValueDictionary expectedValueInterval:expectedValueIntervalMs params:nil];
+}
+- (void)writeAttributeSpkrOnOffWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params
+{
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
+
+    [self.device writeAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeSpkrOnOffID) value:dataValueDictionary expectedValueInterval:expectedValueIntervalMs timedWriteTimeout:timedWriteTimeout];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeSpkrVolumeLevelWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeSpkrVolumeLevelID) params:params];
+}
+
+- (void)writeAttributeSpkrVolumeLevelWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+{
+    [self writeAttributeSpkrVolumeLevelWithValue:dataValueDictionary expectedValueInterval:expectedValueIntervalMs params:nil];
+}
+- (void)writeAttributeSpkrVolumeLevelWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params
+{
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
+
+    [self.device writeAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeSpkrVolumeLevelID) value:dataValueDictionary expectedValueInterval:expectedValueIntervalMs timedWriteTimeout:timedWriteTimeout];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeSpkrMaxLevelWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeSpkrMaxLevelID) params:params];
+}
+
+- (void)writeAttributeSpkrMaxLevelWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+{
+    [self writeAttributeSpkrMaxLevelWithValue:dataValueDictionary expectedValueInterval:expectedValueIntervalMs params:nil];
+}
+- (void)writeAttributeSpkrMaxLevelWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params
+{
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
+
+    [self.device writeAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeSpkrMaxLevelID) value:dataValueDictionary expectedValueInterval:expectedValueIntervalMs timedWriteTimeout:timedWriteTimeout];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeSpkrMinLevelWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeSpkrMinLevelID) params:params];
+}
+
+- (void)writeAttributeSpkrMinLevelWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+{
+    [self writeAttributeSpkrMinLevelWithValue:dataValueDictionary expectedValueInterval:expectedValueIntervalMs params:nil];
+}
+- (void)writeAttributeSpkrMinLevelWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params
+{
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
+
+    [self.device writeAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeSpkrMinLevelID) value:dataValueDictionary expectedValueInterval:expectedValueIntervalMs timedWriteTimeout:timedWriteTimeout];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeMicOnOffWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMicOnOffID) params:params];
+}
+
+- (void)writeAttributeMicOnOffWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+{
+    [self writeAttributeMicOnOffWithValue:dataValueDictionary expectedValueInterval:expectedValueIntervalMs params:nil];
+}
+- (void)writeAttributeMicOnOffWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params
+{
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
+
+    [self.device writeAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMicOnOffID) value:dataValueDictionary expectedValueInterval:expectedValueIntervalMs timedWriteTimeout:timedWriteTimeout];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeMicCurrentLevelWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMicCurrentLevelID) params:params];
+}
+
+- (void)writeAttributeMicCurrentLevelWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+{
+    [self writeAttributeMicCurrentLevelWithValue:dataValueDictionary expectedValueInterval:expectedValueIntervalMs params:nil];
+}
+- (void)writeAttributeMicCurrentLevelWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params
+{
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
+
+    [self.device writeAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMicCurrentLevelID) value:dataValueDictionary expectedValueInterval:expectedValueIntervalMs timedWriteTimeout:timedWriteTimeout];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeMicMaxLevelWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMicMaxLevelID) params:params];
+}
+
+- (void)writeAttributeMicMaxLevelWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+{
+    [self writeAttributeMicMaxLevelWithValue:dataValueDictionary expectedValueInterval:expectedValueIntervalMs params:nil];
+}
+- (void)writeAttributeMicMaxLevelWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params
+{
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
+
+    [self.device writeAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMicMaxLevelID) value:dataValueDictionary expectedValueInterval:expectedValueIntervalMs timedWriteTimeout:timedWriteTimeout];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeMicMinLevelWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMicMinLevelID) params:params];
+}
+
+- (void)writeAttributeMicMinLevelWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+{
+    [self writeAttributeMicMinLevelWithValue:dataValueDictionary expectedValueInterval:expectedValueIntervalMs params:nil];
+}
+- (void)writeAttributeMicMinLevelWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params
+{
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
+
+    [self.device writeAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMicMinLevelID) value:dataValueDictionary expectedValueInterval:expectedValueIntervalMs timedWriteTimeout:timedWriteTimeout];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeMicAGCWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMicAGCID) params:params];
+}
+
+- (void)writeAttributeMicAGCWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+{
+    [self writeAttributeMicAGCWithValue:dataValueDictionary expectedValueInterval:expectedValueIntervalMs params:nil];
+}
+- (void)writeAttributeMicAGCWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params
+{
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
+
+    [self.device writeAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeMicAGCID) value:dataValueDictionary expectedValueInterval:expectedValueIntervalMs timedWriteTimeout:timedWriteTimeout];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeImageRotationWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeImageRotationID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeImageFlipHorizontalWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeImageFlipHorizontalID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeImageFlipVerticalWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeImageFlipVerticalID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeLocalVideoRecordingEnabledWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeLocalVideoRecordingEnabledID) params:params];
+}
+
+- (void)writeAttributeLocalVideoRecordingEnabledWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+{
+    [self writeAttributeLocalVideoRecordingEnabledWithValue:dataValueDictionary expectedValueInterval:expectedValueIntervalMs params:nil];
+}
+- (void)writeAttributeLocalVideoRecordingEnabledWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params
+{
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
+
+    [self.device writeAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeLocalVideoRecordingEnabledID) value:dataValueDictionary expectedValueInterval:expectedValueIntervalMs timedWriteTimeout:timedWriteTimeout];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeLocalSnapshotRecordingEnabledWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeLocalSnapshotRecordingEnabledID) params:params];
+}
+
+- (void)writeAttributeLocalSnapshotRecordingEnabledWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+{
+    [self writeAttributeLocalSnapshotRecordingEnabledWithValue:dataValueDictionary expectedValueInterval:expectedValueIntervalMs params:nil];
+}
+- (void)writeAttributeLocalSnapshotRecordingEnabledWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params
+{
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
+
+    [self.device writeAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeLocalSnapshotRecordingEnabledID) value:dataValueDictionary expectedValueInterval:expectedValueIntervalMs timedWriteTimeout:timedWriteTimeout];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeStatusLightWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeStatusLightID) params:params];
+}
+
+- (void)writeAttributeStatusLightWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+{
+    [self writeAttributeStatusLightWithValue:dataValueDictionary expectedValueInterval:expectedValueIntervalMs params:nil];
+}
+- (void)writeAttributeStatusLightWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params
+{
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
+
+    [self.device writeAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeStatusLightID) value:dataValueDictionary expectedValueInterval:expectedValueIntervalMs timedWriteTimeout:timedWriteTimeout];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeStatusLightBrightnessWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeStatusLightBrightnessID) params:params];
+}
+
+- (void)writeAttributeStatusLightBrightnessWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+{
+    [self writeAttributeStatusLightBrightnessWithValue:dataValueDictionary expectedValueInterval:expectedValueIntervalMs params:nil];
+}
+- (void)writeAttributeStatusLightBrightnessWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params
+{
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
+
+    [self.device writeAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeStatusLightBrightnessID) value:dataValueDictionary expectedValueInterval:expectedValueIntervalMs timedWriteTimeout:timedWriteTimeout];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeDepthSensorStatusWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeDepthSensorStatusID) params:params];
+}
+
+- (void)writeAttributeDepthSensorStatusWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+{
+    [self writeAttributeDepthSensorStatusWithValue:dataValueDictionary expectedValueInterval:expectedValueIntervalMs params:nil];
+}
+- (void)writeAttributeDepthSensorStatusWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params
+{
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
+
+    [self.device writeAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeDepthSensorStatusID) value:dataValueDictionary expectedValueInterval:expectedValueIntervalMs timedWriteTimeout:timedWriteTimeout];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeWatermarkEnabledWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeWatermarkEnabledID) params:params];
+}
+
+- (void)writeAttributeWatermarkEnabledWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+{
+    [self writeAttributeWatermarkEnabledWithValue:dataValueDictionary expectedValueInterval:expectedValueIntervalMs params:nil];
+}
+- (void)writeAttributeWatermarkEnabledWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params
+{
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
+
+    [self.device writeAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeWatermarkEnabledID) value:dataValueDictionary expectedValueInterval:expectedValueIntervalMs timedWriteTimeout:timedWriteTimeout];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeOSDEnabledWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeOSDEnabledID) params:params];
+}
+
+- (void)writeAttributeOSDEnabledWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+{
+    [self writeAttributeOSDEnabledWithValue:dataValueDictionary expectedValueInterval:expectedValueIntervalMs params:nil];
+}
+- (void)writeAttributeOSDEnabledWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params
+{
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
+
+    [self.device writeAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeOSDEnabledID) value:dataValueDictionary expectedValueInterval:expectedValueIntervalMs timedWriteTimeout:timedWriteTimeout];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeGeneratedCommandListID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeAcceptedCommandListID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeEventListWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeEventListID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeAttributeListID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeFeatureMapID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVStreamManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVStreamManagementAttributeClusterRevisionID) params:params];
+}
+
+@end
+
+@implementation MTRClusterCameraAVSettingsUserLevelManagement
+
+- (void)mptzSetWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues expectedValueInterval:(NSNumber *)expectedValueIntervalMs completion:(MTRStatusCompletion)completion
+{
+    [self mptzSetWithParams:nil expectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs completion:completion];
+}
+- (void)mptzSetWithParams:(MTRCameraAVSettingsUserLevelManagementClusterMptzSetParams * _Nullable)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRCameraAVSettingsUserLevelManagementClusterMptzSetParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = CameraAvSettingsUserLevelManagement::Commands::MptzSet::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                    expectedValues:expectedValues
+                             expectedValueInterval:expectedValueIntervalMs
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (void)mptzRelativeMoveWithParams:(MTRCameraAVSettingsUserLevelManagementClusterMptzRelativeMoveParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRCameraAVSettingsUserLevelManagementClusterMptzRelativeMoveParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = CameraAvSettingsUserLevelManagement::Commands::MptzRelativeMove::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                    expectedValues:expectedValues
+                             expectedValueInterval:expectedValueIntervalMs
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (void)setAsPresetWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues expectedValueInterval:(NSNumber *)expectedValueIntervalMs completion:(MTRStatusCompletion)completion
+{
+    [self setAsPresetWithParams:nil expectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs completion:completion];
+}
+- (void)setAsPresetWithParams:(MTRCameraAVSettingsUserLevelManagementClusterSetAsPresetParams * _Nullable)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRCameraAVSettingsUserLevelManagementClusterSetAsPresetParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = CameraAvSettingsUserLevelManagement::Commands::SetAsPreset::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                    expectedValues:expectedValues
+                             expectedValueInterval:expectedValueIntervalMs
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (void)dptzSetViewportWithParams:(MTRCameraAVSettingsUserLevelManagementClusterDptzSetViewportParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRCameraAVSettingsUserLevelManagementClusterDptzSetViewportParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = CameraAvSettingsUserLevelManagement::Commands::DptzSetViewport::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                    expectedValues:expectedValues
+                             expectedValueInterval:expectedValueIntervalMs
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (void)dptzRelativeMoveWithParams:(MTRCameraAVSettingsUserLevelManagementClusterDptzRelativeMoveParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRCameraAVSettingsUserLevelManagementClusterDptzRelativeMoveParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = CameraAvSettingsUserLevelManagement::Commands::DptzRelativeMove::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                    expectedValues:expectedValues
+                             expectedValueInterval:expectedValueIntervalMs
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeMptzWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVSettingsUserLevelManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVSettingsUserLevelManagementAttributeMptzID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeMaxPresetsWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVSettingsUserLevelManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVSettingsUserLevelManagementAttributeMaxPresetsID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributePresetMptzTableWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVSettingsUserLevelManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVSettingsUserLevelManagementAttributePresetMptzTableID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeMptzRelativeMoveWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVSettingsUserLevelManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVSettingsUserLevelManagementAttributeMptzRelativeMoveID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeDptzRelativeMoveWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVSettingsUserLevelManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVSettingsUserLevelManagementAttributeDptzRelativeMoveID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVSettingsUserLevelManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVSettingsUserLevelManagementAttributeGeneratedCommandListID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVSettingsUserLevelManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVSettingsUserLevelManagementAttributeAcceptedCommandListID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeEventListWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVSettingsUserLevelManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVSettingsUserLevelManagementAttributeEventListID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVSettingsUserLevelManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVSettingsUserLevelManagementAttributeAttributeListID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVSettingsUserLevelManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVSettingsUserLevelManagementAttributeFeatureMapID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeCameraAVSettingsUserLevelManagementID) attributeID:@(MTRAttributeIDTypeClusterCameraAVSettingsUserLevelManagementAttributeClusterRevisionID) params:params];
+}
+
+@end
+
+@implementation MTRClusterWebRTCTransportProvider
+
+- (void)webRTCSolicitOfferWithParams:(MTRWebRTCTransportProviderClusterWebRTCSolicitOfferParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(void (^)(MTRWebRTCTransportProviderClusterWebRTCSolicitOfferResponseParams * _Nullable data, NSError * _Nullable error))completion
+{
+    if (params == nil) {
+        params = [[MTRWebRTCTransportProviderClusterWebRTCSolicitOfferParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(response, error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = WebRTCTransportProvider::Commands::WebRTCSolicitOffer::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                    expectedValues:expectedValues
+                             expectedValueInterval:expectedValueIntervalMs
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:MTRWebRTCTransportProviderClusterWebRTCSolicitOfferResponseParams.class
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (void)webRTCProvideOfferWithParams:(MTRWebRTCTransportProviderClusterWebRTCProvideOfferParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(void (^)(MTRWebRTCTransportProviderClusterWebRTCProvideOfferResponseParams * _Nullable data, NSError * _Nullable error))completion
+{
+    if (params == nil) {
+        params = [[MTRWebRTCTransportProviderClusterWebRTCProvideOfferParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(response, error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = WebRTCTransportProvider::Commands::WebRTCProvideOffer::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                    expectedValues:expectedValues
+                             expectedValueInterval:expectedValueIntervalMs
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:MTRWebRTCTransportProviderClusterWebRTCProvideOfferResponseParams.class
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (void)webRTCProvideAnswerWithParams:(MTRWebRTCTransportProviderClusterWebRTCProvideAnswerParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRWebRTCTransportProviderClusterWebRTCProvideAnswerParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = WebRTCTransportProvider::Commands::WebRTCProvideAnswer::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                    expectedValues:expectedValues
+                             expectedValueInterval:expectedValueIntervalMs
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (void)webRTCProvideICECandidateWithParams:(MTRWebRTCTransportProviderClusterWebRTCProvideICECandidateParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRWebRTCTransportProviderClusterWebRTCProvideICECandidateParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = WebRTCTransportProvider::Commands::WebRTCProvideICECandidate::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                    expectedValues:expectedValues
+                             expectedValueInterval:expectedValueIntervalMs
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (void)webRTCEndSessionWithParams:(MTRWebRTCTransportProviderClusterWebRTCEndSessionParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRWebRTCTransportProviderClusterWebRTCEndSessionParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = WebRTCTransportProvider::Commands::WebRTCEndSession::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                    expectedValues:expectedValues
+                             expectedValueInterval:expectedValueIntervalMs
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeCurrentSessionsWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeWebRTCTransportProviderID) attributeID:@(MTRAttributeIDTypeClusterWebRTCTransportProviderAttributeCurrentSessionsID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeWebRTCTransportProviderID) attributeID:@(MTRAttributeIDTypeClusterWebRTCTransportProviderAttributeGeneratedCommandListID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeWebRTCTransportProviderID) attributeID:@(MTRAttributeIDTypeClusterWebRTCTransportProviderAttributeAcceptedCommandListID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeEventListWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeWebRTCTransportProviderID) attributeID:@(MTRAttributeIDTypeClusterWebRTCTransportProviderAttributeEventListID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeWebRTCTransportProviderID) attributeID:@(MTRAttributeIDTypeClusterWebRTCTransportProviderAttributeAttributeListID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeWebRTCTransportProviderID) attributeID:@(MTRAttributeIDTypeClusterWebRTCTransportProviderAttributeFeatureMapID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeWebRTCTransportProviderID) attributeID:@(MTRAttributeIDTypeClusterWebRTCTransportProviderAttributeClusterRevisionID) params:params];
+}
+
+@end
+
+@implementation MTRClusterWebRTCTransportRequestor
+
+- (void)webRTCOfferWithParams:(MTRWebRTCTransportRequestorClusterWebRTCOfferParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRWebRTCTransportRequestorClusterWebRTCOfferParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = WebRTCTransportRequestor::Commands::WebRTCOffer::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                    expectedValues:expectedValues
+                             expectedValueInterval:expectedValueIntervalMs
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (void)webRTCAnswerWithParams:(MTRWebRTCTransportRequestorClusterWebRTCAnswerParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRWebRTCTransportRequestorClusterWebRTCAnswerParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = WebRTCTransportRequestor::Commands::WebRTCAnswer::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                    expectedValues:expectedValues
+                             expectedValueInterval:expectedValueIntervalMs
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (void)webRTCICECandidateWithParams:(MTRWebRTCTransportRequestorClusterWebRTCICECandidateParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRWebRTCTransportRequestorClusterWebRTCICECandidateParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = WebRTCTransportRequestor::Commands::WebRTCICECandidate::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                    expectedValues:expectedValues
+                             expectedValueInterval:expectedValueIntervalMs
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (void)webRTCEndWithParams:(MTRWebRTCTransportRequestorClusterWebRTCEndParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRWebRTCTransportRequestorClusterWebRTCEndParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = WebRTCTransportRequestor::Commands::WebRTCEnd::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                    expectedValues:expectedValues
+                             expectedValueInterval:expectedValueIntervalMs
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeCurrentSessionsWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeWebRTCTransportRequestorID) attributeID:@(MTRAttributeIDTypeClusterWebRTCTransportRequestorAttributeCurrentSessionsID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeWebRTCTransportRequestorID) attributeID:@(MTRAttributeIDTypeClusterWebRTCTransportRequestorAttributeGeneratedCommandListID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeWebRTCTransportRequestorID) attributeID:@(MTRAttributeIDTypeClusterWebRTCTransportRequestorAttributeAcceptedCommandListID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeEventListWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeWebRTCTransportRequestorID) attributeID:@(MTRAttributeIDTypeClusterWebRTCTransportRequestorAttributeEventListID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeWebRTCTransportRequestorID) attributeID:@(MTRAttributeIDTypeClusterWebRTCTransportRequestorAttributeAttributeListID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeWebRTCTransportRequestorID) attributeID:@(MTRAttributeIDTypeClusterWebRTCTransportRequestorAttributeFeatureMapID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeWebRTCTransportRequestorID) attributeID:@(MTRAttributeIDTypeClusterWebRTCTransportRequestorAttributeClusterRevisionID) params:params];
+}
+
+@end
+
+@implementation MTRClusterPushAVStreamTransport
+
+- (void)allocatePushTransportWithParams:(MTRPushAVStreamTransportClusterAllocatePushTransportParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(void (^)(MTRPushAVStreamTransportClusterAllocatePushTransportResponseParams * _Nullable data, NSError * _Nullable error))completion
+{
+    if (params == nil) {
+        params = [[MTRPushAVStreamTransportClusterAllocatePushTransportParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(response, error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = PushAvStreamTransport::Commands::AllocatePushTransport::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                    expectedValues:expectedValues
+                             expectedValueInterval:expectedValueIntervalMs
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:MTRPushAVStreamTransportClusterAllocatePushTransportResponseParams.class
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (void)deallocatePushTransportWithParams:(MTRPushAVStreamTransportClusterDeallocatePushTransportParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRPushAVStreamTransportClusterDeallocatePushTransportParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = PushAvStreamTransport::Commands::DeallocatePushTransport::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                    expectedValues:expectedValues
+                             expectedValueInterval:expectedValueIntervalMs
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (void)modifyPushTransportWithParams:(MTRPushAVStreamTransportClusterModifyPushTransportParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRPushAVStreamTransportClusterModifyPushTransportParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = PushAvStreamTransport::Commands::ModifyPushTransport::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                    expectedValues:expectedValues
+                             expectedValueInterval:expectedValueIntervalMs
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (void)setTransportStatusWithParams:(MTRPushAVStreamTransportClusterSetTransportStatusParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRPushAVStreamTransportClusterSetTransportStatusParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = PushAvStreamTransport::Commands::SetTransportStatus::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                    expectedValues:expectedValues
+                             expectedValueInterval:expectedValueIntervalMs
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (void)manuallyTriggerTransportWithParams:(MTRPushAVStreamTransportClusterManuallyTriggerTransportParams *)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRPushAVStreamTransportClusterManuallyTriggerTransportParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = PushAvStreamTransport::Commands::ManuallyTriggerTransport::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                    expectedValues:expectedValues
+                             expectedValueInterval:expectedValueIntervalMs
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (void)findStreamConfigurationWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues expectedValueInterval:(NSNumber *)expectedValueIntervalMs completion:(void (^)(MTRPushAVStreamTransportClusterFindStreamConfigurationResponseParams * _Nullable data, NSError * _Nullable error))completion
+{
+    [self findStreamConfigurationWithParams:nil expectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs completion:completion];
+}
+- (void)findStreamConfigurationWithParams:(MTRPushAVStreamTransportClusterFindStreamConfigurationParams * _Nullable)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(void (^)(MTRPushAVStreamTransportClusterFindStreamConfigurationResponseParams * _Nullable data, NSError * _Nullable error))completion
+{
+    if (params == nil) {
+        params = [[MTRPushAVStreamTransportClusterFindStreamConfigurationParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(response, error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = PushAvStreamTransport::Commands::FindStreamConfiguration::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                    expectedValues:expectedValues
+                             expectedValueInterval:expectedValueIntervalMs
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:MTRPushAVStreamTransportClusterFindStreamConfigurationResponseParams.class
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeSupportedContainerFormatsWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypePushAVStreamTransportID) attributeID:@(MTRAttributeIDTypeClusterPushAVStreamTransportAttributeSupportedContainerFormatsID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeSupportedIngestMethodsWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypePushAVStreamTransportID) attributeID:@(MTRAttributeIDTypeClusterPushAVStreamTransportAttributeSupportedIngestMethodsID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeCurrentConnectionsWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypePushAVStreamTransportID) attributeID:@(MTRAttributeIDTypeClusterPushAVStreamTransportAttributeCurrentConnectionsID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypePushAVStreamTransportID) attributeID:@(MTRAttributeIDTypeClusterPushAVStreamTransportAttributeGeneratedCommandListID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypePushAVStreamTransportID) attributeID:@(MTRAttributeIDTypeClusterPushAVStreamTransportAttributeAcceptedCommandListID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeEventListWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypePushAVStreamTransportID) attributeID:@(MTRAttributeIDTypeClusterPushAVStreamTransportAttributeEventListID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypePushAVStreamTransportID) attributeID:@(MTRAttributeIDTypeClusterPushAVStreamTransportAttributeAttributeListID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypePushAVStreamTransportID) attributeID:@(MTRAttributeIDTypeClusterPushAVStreamTransportAttributeFeatureMapID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypePushAVStreamTransportID) attributeID:@(MTRAttributeIDTypeClusterPushAVStreamTransportAttributeClusterRevisionID) params:params];
+}
+
+@end
+
+@implementation MTRClusterChime
+
+- (void)playChimeSoundWithExpectedValues:(NSArray<NSDictionary<NSString *, id> *> *)expectedValues expectedValueInterval:(NSNumber *)expectedValueIntervalMs completion:(MTRStatusCompletion)completion
+{
+    [self playChimeSoundWithParams:nil expectedValues:expectedValues expectedValueInterval:expectedValueIntervalMs completion:completion];
+}
+- (void)playChimeSoundWithParams:(MTRChimeClusterPlayChimeSoundParams * _Nullable)params expectedValues:(NSArray<NSDictionary<NSString *, id> *> * _Nullable)expectedValues expectedValueInterval:(NSNumber * _Nullable)expectedValueIntervalMs completion:(MTRStatusCompletion)completion
+{
+    if (params == nil) {
+        params = [[MTRChimeClusterPlayChimeSoundParams
+            alloc] init];
+    }
+
+    auto responseHandler = ^(id _Nullable response, NSError * _Nullable error) {
+        completion(error);
+    };
+
+    auto * timedInvokeTimeoutMs = params.timedInvokeTimeoutMs;
+
+    using RequestType = Chime::Commands::PlayChimeSound::Type;
+    [self.device _invokeKnownCommandWithEndpointID:self.endpointID
+                                         clusterID:@(RequestType::GetClusterId())
+                                         commandID:@(RequestType::GetCommandId())
+                                    commandPayload:params
+                                    expectedValues:expectedValues
+                             expectedValueInterval:expectedValueIntervalMs
+                                timedInvokeTimeout:timedInvokeTimeoutMs
+                       serverSideProcessingTimeout:params.serverSideProcessingTimeout
+                                     responseClass:nil
+                                             queue:self.callbackQueue
+                                        completion:responseHandler];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeInstalledChimeSoundsWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeChimeID) attributeID:@(MTRAttributeIDTypeClusterChimeAttributeInstalledChimeSoundsID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeActiveChimeSoundIdWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeChimeID) attributeID:@(MTRAttributeIDTypeClusterChimeAttributeActiveChimeSoundIdID) params:params];
+}
+
+- (void)writeAttributeActiveChimeSoundIdWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+{
+    [self writeAttributeActiveChimeSoundIdWithValue:dataValueDictionary expectedValueInterval:expectedValueIntervalMs params:nil];
+}
+- (void)writeAttributeActiveChimeSoundIdWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params
+{
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
+
+    [self.device writeAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeChimeID) attributeID:@(MTRAttributeIDTypeClusterChimeAttributeActiveChimeSoundIdID) value:dataValueDictionary expectedValueInterval:expectedValueIntervalMs timedWriteTimeout:timedWriteTimeout];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeEnabledWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeChimeID) attributeID:@(MTRAttributeIDTypeClusterChimeAttributeEnabledID) params:params];
+}
+
+- (void)writeAttributeEnabledWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs
+{
+    [self writeAttributeEnabledWithValue:dataValueDictionary expectedValueInterval:expectedValueIntervalMs params:nil];
+}
+- (void)writeAttributeEnabledWithValue:(NSDictionary<NSString *, id> *)dataValueDictionary expectedValueInterval:(NSNumber *)expectedValueIntervalMs params:(MTRWriteParams * _Nullable)params
+{
+    NSNumber * timedWriteTimeout = params.timedWriteTimeout;
+
+    [self.device writeAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeChimeID) attributeID:@(MTRAttributeIDTypeClusterChimeAttributeEnabledID) value:dataValueDictionary expectedValueInterval:expectedValueIntervalMs timedWriteTimeout:timedWriteTimeout];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeGeneratedCommandListWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeChimeID) attributeID:@(MTRAttributeIDTypeClusterChimeAttributeGeneratedCommandListID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeAcceptedCommandListWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeChimeID) attributeID:@(MTRAttributeIDTypeClusterChimeAttributeAcceptedCommandListID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeEventListWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeChimeID) attributeID:@(MTRAttributeIDTypeClusterChimeAttributeEventListID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeAttributeListWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeChimeID) attributeID:@(MTRAttributeIDTypeClusterChimeAttributeAttributeListID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeFeatureMapWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeChimeID) attributeID:@(MTRAttributeIDTypeClusterChimeAttributeFeatureMapID) params:params];
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)readAttributeClusterRevisionWithParams:(MTRReadParams * _Nullable)params
+{
+    return [self.device readAttributeWithEndpointID:self.endpointID clusterID:@(MTRClusterIDTypeChimeID) attributeID:@(MTRAttributeIDTypeClusterChimeAttributeClusterRevisionID) params:params];
+}
+
+@end
+
 @implementation MTRClusterEcosystemInformation
 
 - (NSDictionary<NSString *, id> * _Nullable)readAttributeDeviceDirectoryWithParams:(MTRReadParams * _Nullable)params
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.h b/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.h
index 05bcb8213b6df9..0b89ad2e44dcbe 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.h
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.h
@@ -10891,6 +10891,1296 @@ MTR_PROVISIONALLY_AVAILABLE
                                          error:(NSError * __autoreleasing *)error MTR_PROVISIONALLY_AVAILABLE;
 @end
 
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVStreamManagementClusterAudioStreamAllocateParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) NSNumber * _Nonnull streamType MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nonnull audioCodec MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nonnull channelCount MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nonnull sampleRate MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nonnull bitRate MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nonnull bitDepth MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Controls whether the command is a timed command (using Timed Invoke).
+ *
+ * If nil (the default value), a regular invoke is done for commands that do
+ * not require a timed invoke and a timed invoke with some default timed request
+ * timeout is done for commands that require a timed invoke.
+ *
+ * If not nil, a timed invoke is done, with the provided value used as the timed
+ * request timeout.  The value should be chosen small enough to provide the
+ * desired security properties but large enough that it will allow a round-trip
+ * from the sever to the client (for the status response and actual invoke
+ * request) within the timeout window.
+ *
+ */
+@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs;
+
+/**
+ * Controls how much time, in seconds, we will allow for the server to process the command.
+ *
+ * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes.
+ *
+ * If nil, the framework will try to select an appropriate timeout value itself.
+ */
+@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVStreamManagementClusterAudioStreamAllocateResponseParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) NSNumber * _Nonnull audioStreamID MTR_PROVISIONALLY_AVAILABLE;
+
+/**
+ * Initialize an MTRCameraAVStreamManagementClusterAudioStreamAllocateResponseParams with a response-value dictionary
+ * of the sort that MTRDeviceResponseHandler would receive.
+ *
+ * Will return nil and hand out an error if the response-value dictionary is not
+ * a command data response or is not the right command response.
+ *
+ * Will return nil and hand out an error if the data response does not match the known
+ * schema for this command.
+ */
+- (nullable instancetype)initWithResponseValue:(NSDictionary<NSString *, id> *)responseValue
+                                         error:(NSError * __autoreleasing *)error MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVStreamManagementClusterAudioStreamDeallocateParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) NSNumber * _Nonnull audioStreamID MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Controls whether the command is a timed command (using Timed Invoke).
+ *
+ * If nil (the default value), a regular invoke is done for commands that do
+ * not require a timed invoke and a timed invoke with some default timed request
+ * timeout is done for commands that require a timed invoke.
+ *
+ * If not nil, a timed invoke is done, with the provided value used as the timed
+ * request timeout.  The value should be chosen small enough to provide the
+ * desired security properties but large enough that it will allow a round-trip
+ * from the sever to the client (for the status response and actual invoke
+ * request) within the timeout window.
+ *
+ */
+@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs;
+
+/**
+ * Controls how much time, in seconds, we will allow for the server to process the command.
+ *
+ * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes.
+ *
+ * If nil, the framework will try to select an appropriate timeout value itself.
+ */
+@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVStreamManagementClusterVideoStreamAllocateParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) NSNumber * _Nonnull streamType MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nonnull videoCodec MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nonnull minFrameRate MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nonnull maxFrameRate MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) MTRCameraAVStreamManagementClusterDimensionStruct * _Nonnull minResolution MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) MTRCameraAVStreamManagementClusterDimensionStruct * _Nonnull maxResolution MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nonnull minBitRate MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nonnull maxBitRate MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nonnull minFragmentLen MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nonnull maxFragmentLen MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Controls whether the command is a timed command (using Timed Invoke).
+ *
+ * If nil (the default value), a regular invoke is done for commands that do
+ * not require a timed invoke and a timed invoke with some default timed request
+ * timeout is done for commands that require a timed invoke.
+ *
+ * If not nil, a timed invoke is done, with the provided value used as the timed
+ * request timeout.  The value should be chosen small enough to provide the
+ * desired security properties but large enough that it will allow a round-trip
+ * from the sever to the client (for the status response and actual invoke
+ * request) within the timeout window.
+ *
+ */
+@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs;
+
+/**
+ * Controls how much time, in seconds, we will allow for the server to process the command.
+ *
+ * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes.
+ *
+ * If nil, the framework will try to select an appropriate timeout value itself.
+ */
+@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVStreamManagementClusterVideoStreamAllocateResponseParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) NSNumber * _Nonnull videoStreamID MTR_PROVISIONALLY_AVAILABLE;
+
+/**
+ * Initialize an MTRCameraAVStreamManagementClusterVideoStreamAllocateResponseParams with a response-value dictionary
+ * of the sort that MTRDeviceResponseHandler would receive.
+ *
+ * Will return nil and hand out an error if the response-value dictionary is not
+ * a command data response or is not the right command response.
+ *
+ * Will return nil and hand out an error if the data response does not match the known
+ * schema for this command.
+ */
+- (nullable instancetype)initWithResponseValue:(NSDictionary<NSString *, id> *)responseValue
+                                         error:(NSError * __autoreleasing *)error MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVStreamManagementClusterVideoStreamModifyParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) NSNumber * _Nonnull videoStreamID MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) MTRCameraAVStreamManagementClusterDimensionStruct * _Nonnull resolution MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Controls whether the command is a timed command (using Timed Invoke).
+ *
+ * If nil (the default value), a regular invoke is done for commands that do
+ * not require a timed invoke and a timed invoke with some default timed request
+ * timeout is done for commands that require a timed invoke.
+ *
+ * If not nil, a timed invoke is done, with the provided value used as the timed
+ * request timeout.  The value should be chosen small enough to provide the
+ * desired security properties but large enough that it will allow a round-trip
+ * from the sever to the client (for the status response and actual invoke
+ * request) within the timeout window.
+ *
+ */
+@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs;
+
+/**
+ * Controls how much time, in seconds, we will allow for the server to process the command.
+ *
+ * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes.
+ *
+ * If nil, the framework will try to select an appropriate timeout value itself.
+ */
+@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVStreamManagementClusterVideoStreamDeallocateParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) NSNumber * _Nonnull videoStreamID MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Controls whether the command is a timed command (using Timed Invoke).
+ *
+ * If nil (the default value), a regular invoke is done for commands that do
+ * not require a timed invoke and a timed invoke with some default timed request
+ * timeout is done for commands that require a timed invoke.
+ *
+ * If not nil, a timed invoke is done, with the provided value used as the timed
+ * request timeout.  The value should be chosen small enough to provide the
+ * desired security properties but large enough that it will allow a round-trip
+ * from the sever to the client (for the status response and actual invoke
+ * request) within the timeout window.
+ *
+ */
+@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs;
+
+/**
+ * Controls how much time, in seconds, we will allow for the server to process the command.
+ *
+ * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes.
+ *
+ * If nil, the framework will try to select an appropriate timeout value itself.
+ */
+@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVStreamManagementClusterSnapshotStreamAllocateParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) NSNumber * _Nonnull imageCodec MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nonnull frameRate MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nonnull bitRate MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) MTRCameraAVStreamManagementClusterDimensionStruct * _Nonnull minResolution MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) MTRCameraAVStreamManagementClusterDimensionStruct * _Nonnull maxResolution MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nonnull quality MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Controls whether the command is a timed command (using Timed Invoke).
+ *
+ * If nil (the default value), a regular invoke is done for commands that do
+ * not require a timed invoke and a timed invoke with some default timed request
+ * timeout is done for commands that require a timed invoke.
+ *
+ * If not nil, a timed invoke is done, with the provided value used as the timed
+ * request timeout.  The value should be chosen small enough to provide the
+ * desired security properties but large enough that it will allow a round-trip
+ * from the sever to the client (for the status response and actual invoke
+ * request) within the timeout window.
+ *
+ */
+@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs;
+
+/**
+ * Controls how much time, in seconds, we will allow for the server to process the command.
+ *
+ * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes.
+ *
+ * If nil, the framework will try to select an appropriate timeout value itself.
+ */
+@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVStreamManagementClusterSnapshotStreamAllocateResponseParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) NSNumber * _Nonnull snapshotStreamID MTR_PROVISIONALLY_AVAILABLE;
+
+/**
+ * Initialize an MTRCameraAVStreamManagementClusterSnapshotStreamAllocateResponseParams with a response-value dictionary
+ * of the sort that MTRDeviceResponseHandler would receive.
+ *
+ * Will return nil and hand out an error if the response-value dictionary is not
+ * a command data response or is not the right command response.
+ *
+ * Will return nil and hand out an error if the data response does not match the known
+ * schema for this command.
+ */
+- (nullable instancetype)initWithResponseValue:(NSDictionary<NSString *, id> *)responseValue
+                                         error:(NSError * __autoreleasing *)error MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVStreamManagementClusterSnapshotStreamDeallocateParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) NSNumber * _Nonnull snapshotStreamID MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Controls whether the command is a timed command (using Timed Invoke).
+ *
+ * If nil (the default value), a regular invoke is done for commands that do
+ * not require a timed invoke and a timed invoke with some default timed request
+ * timeout is done for commands that require a timed invoke.
+ *
+ * If not nil, a timed invoke is done, with the provided value used as the timed
+ * request timeout.  The value should be chosen small enough to provide the
+ * desired security properties but large enough that it will allow a round-trip
+ * from the sever to the client (for the status response and actual invoke
+ * request) within the timeout window.
+ *
+ */
+@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs;
+
+/**
+ * Controls how much time, in seconds, we will allow for the server to process the command.
+ *
+ * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes.
+ *
+ * If nil, the framework will try to select an appropriate timeout value itself.
+ */
+@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVStreamManagementClusterSetStreamPriorityParams : NSObject <NSCopying>
+/**
+ * Controls whether the command is a timed command (using Timed Invoke).
+ *
+ * If nil (the default value), a regular invoke is done for commands that do
+ * not require a timed invoke and a timed invoke with some default timed request
+ * timeout is done for commands that require a timed invoke.
+ *
+ * If not nil, a timed invoke is done, with the provided value used as the timed
+ * request timeout.  The value should be chosen small enough to provide the
+ * desired security properties but large enough that it will allow a round-trip
+ * from the sever to the client (for the status response and actual invoke
+ * request) within the timeout window.
+ *
+ */
+@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs;
+
+/**
+ * Controls how much time, in seconds, we will allow for the server to process the command.
+ *
+ * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes.
+ *
+ * If nil, the framework will try to select an appropriate timeout value itself.
+ */
+@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVStreamManagementClusterCaptureSnapshotParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) NSNumber * _Nonnull snapshotStreamID MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) MTRCameraAVStreamManagementClusterDimensionStruct * _Nonnull requestedResolution MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Controls whether the command is a timed command (using Timed Invoke).
+ *
+ * If nil (the default value), a regular invoke is done for commands that do
+ * not require a timed invoke and a timed invoke with some default timed request
+ * timeout is done for commands that require a timed invoke.
+ *
+ * If not nil, a timed invoke is done, with the provided value used as the timed
+ * request timeout.  The value should be chosen small enough to provide the
+ * desired security properties but large enough that it will allow a round-trip
+ * from the sever to the client (for the status response and actual invoke
+ * request) within the timeout window.
+ *
+ */
+@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs;
+
+/**
+ * Controls how much time, in seconds, we will allow for the server to process the command.
+ *
+ * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes.
+ *
+ * If nil, the framework will try to select an appropriate timeout value itself.
+ */
+@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVStreamManagementClusterCaptureSnapshotResponseParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) NSData * _Nonnull data MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nonnull imageCodec MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) MTRCameraAVStreamManagementClusterDimensionStruct * _Nonnull resolution MTR_PROVISIONALLY_AVAILABLE;
+
+/**
+ * Initialize an MTRCameraAVStreamManagementClusterCaptureSnapshotResponseParams with a response-value dictionary
+ * of the sort that MTRDeviceResponseHandler would receive.
+ *
+ * Will return nil and hand out an error if the response-value dictionary is not
+ * a command data response or is not the right command response.
+ *
+ * Will return nil and hand out an error if the data response does not match the known
+ * schema for this command.
+ */
+- (nullable instancetype)initWithResponseValue:(NSDictionary<NSString *, id> *)responseValue
+                                         error:(NSError * __autoreleasing *)error MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVStreamManagementClusterSetViewportParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) MTRCameraAVStreamManagementClusterViewportStruct * _Nonnull viewport MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Controls whether the command is a timed command (using Timed Invoke).
+ *
+ * If nil (the default value), a regular invoke is done for commands that do
+ * not require a timed invoke and a timed invoke with some default timed request
+ * timeout is done for commands that require a timed invoke.
+ *
+ * If not nil, a timed invoke is done, with the provided value used as the timed
+ * request timeout.  The value should be chosen small enough to provide the
+ * desired security properties but large enough that it will allow a round-trip
+ * from the sever to the client (for the status response and actual invoke
+ * request) within the timeout window.
+ *
+ */
+@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs;
+
+/**
+ * Controls how much time, in seconds, we will allow for the server to process the command.
+ *
+ * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes.
+ *
+ * If nil, the framework will try to select an appropriate timeout value itself.
+ */
+@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVStreamManagementClusterSetImageRotationParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) NSNumber * _Nonnull angle MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Controls whether the command is a timed command (using Timed Invoke).
+ *
+ * If nil (the default value), a regular invoke is done for commands that do
+ * not require a timed invoke and a timed invoke with some default timed request
+ * timeout is done for commands that require a timed invoke.
+ *
+ * If not nil, a timed invoke is done, with the provided value used as the timed
+ * request timeout.  The value should be chosen small enough to provide the
+ * desired security properties but large enough that it will allow a round-trip
+ * from the sever to the client (for the status response and actual invoke
+ * request) within the timeout window.
+ *
+ */
+@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs;
+
+/**
+ * Controls how much time, in seconds, we will allow for the server to process the command.
+ *
+ * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes.
+ *
+ * If nil, the framework will try to select an appropriate timeout value itself.
+ */
+@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVStreamManagementClusterSetImageFlipHorizontalParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) NSNumber * _Nonnull onOff MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Controls whether the command is a timed command (using Timed Invoke).
+ *
+ * If nil (the default value), a regular invoke is done for commands that do
+ * not require a timed invoke and a timed invoke with some default timed request
+ * timeout is done for commands that require a timed invoke.
+ *
+ * If not nil, a timed invoke is done, with the provided value used as the timed
+ * request timeout.  The value should be chosen small enough to provide the
+ * desired security properties but large enough that it will allow a round-trip
+ * from the sever to the client (for the status response and actual invoke
+ * request) within the timeout window.
+ *
+ */
+@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs;
+
+/**
+ * Controls how much time, in seconds, we will allow for the server to process the command.
+ *
+ * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes.
+ *
+ * If nil, the framework will try to select an appropriate timeout value itself.
+ */
+@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVStreamManagementClusterSetImageFlipVerticalParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) NSNumber * _Nonnull onOff MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Controls whether the command is a timed command (using Timed Invoke).
+ *
+ * If nil (the default value), a regular invoke is done for commands that do
+ * not require a timed invoke and a timed invoke with some default timed request
+ * timeout is done for commands that require a timed invoke.
+ *
+ * If not nil, a timed invoke is done, with the provided value used as the timed
+ * request timeout.  The value should be chosen small enough to provide the
+ * desired security properties but large enough that it will allow a round-trip
+ * from the sever to the client (for the status response and actual invoke
+ * request) within the timeout window.
+ *
+ */
+@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs;
+
+/**
+ * Controls how much time, in seconds, we will allow for the server to process the command.
+ *
+ * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes.
+ *
+ * If nil, the framework will try to select an appropriate timeout value itself.
+ */
+@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVSettingsUserLevelManagementClusterMptzSetParams : NSObject <NSCopying>
+
+@property (nonatomic, copy, getter=getNewPTZ) MTRCameraAVSettingsUserLevelManagementClusterMPTZStruct * _Nullable newPTZ MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nullable presetID MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Controls whether the command is a timed command (using Timed Invoke).
+ *
+ * If nil (the default value), a regular invoke is done for commands that do
+ * not require a timed invoke and a timed invoke with some default timed request
+ * timeout is done for commands that require a timed invoke.
+ *
+ * If not nil, a timed invoke is done, with the provided value used as the timed
+ * request timeout.  The value should be chosen small enough to provide the
+ * desired security properties but large enough that it will allow a round-trip
+ * from the sever to the client (for the status response and actual invoke
+ * request) within the timeout window.
+ *
+ */
+@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs;
+
+/**
+ * Controls how much time, in seconds, we will allow for the server to process the command.
+ *
+ * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes.
+ *
+ * If nil, the framework will try to select an appropriate timeout value itself.
+ */
+@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVSettingsUserLevelManagementClusterMptzRelativeMoveParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) NSNumber * _Nonnull pan MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nonnull tilt MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nonnull zoom MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Controls whether the command is a timed command (using Timed Invoke).
+ *
+ * If nil (the default value), a regular invoke is done for commands that do
+ * not require a timed invoke and a timed invoke with some default timed request
+ * timeout is done for commands that require a timed invoke.
+ *
+ * If not nil, a timed invoke is done, with the provided value used as the timed
+ * request timeout.  The value should be chosen small enough to provide the
+ * desired security properties but large enough that it will allow a round-trip
+ * from the sever to the client (for the status response and actual invoke
+ * request) within the timeout window.
+ *
+ */
+@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs;
+
+/**
+ * Controls how much time, in seconds, we will allow for the server to process the command.
+ *
+ * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes.
+ *
+ * If nil, the framework will try to select an appropriate timeout value itself.
+ */
+@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVSettingsUserLevelManagementClusterSetAsPresetParams : NSObject <NSCopying>
+/**
+ * Controls whether the command is a timed command (using Timed Invoke).
+ *
+ * If nil (the default value), a regular invoke is done for commands that do
+ * not require a timed invoke and a timed invoke with some default timed request
+ * timeout is done for commands that require a timed invoke.
+ *
+ * If not nil, a timed invoke is done, with the provided value used as the timed
+ * request timeout.  The value should be chosen small enough to provide the
+ * desired security properties but large enough that it will allow a round-trip
+ * from the sever to the client (for the status response and actual invoke
+ * request) within the timeout window.
+ *
+ */
+@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs;
+
+/**
+ * Controls how much time, in seconds, we will allow for the server to process the command.
+ *
+ * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes.
+ *
+ * If nil, the framework will try to select an appropriate timeout value itself.
+ */
+@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVSettingsUserLevelManagementClusterDptzSetViewportParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) NSNumber * _Nonnull videoStreamID MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) MTRCameraAVSettingsUserLevelManagementClusterViewportStruct * _Nonnull viewport MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Controls whether the command is a timed command (using Timed Invoke).
+ *
+ * If nil (the default value), a regular invoke is done for commands that do
+ * not require a timed invoke and a timed invoke with some default timed request
+ * timeout is done for commands that require a timed invoke.
+ *
+ * If not nil, a timed invoke is done, with the provided value used as the timed
+ * request timeout.  The value should be chosen small enough to provide the
+ * desired security properties but large enough that it will allow a round-trip
+ * from the sever to the client (for the status response and actual invoke
+ * request) within the timeout window.
+ *
+ */
+@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs;
+
+/**
+ * Controls how much time, in seconds, we will allow for the server to process the command.
+ *
+ * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes.
+ *
+ * If nil, the framework will try to select an appropriate timeout value itself.
+ */
+@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVSettingsUserLevelManagementClusterDptzRelativeMoveParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) NSNumber * _Nonnull videoStreamID MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nonnull pan MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nonnull tilt MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nonnull zoom MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Controls whether the command is a timed command (using Timed Invoke).
+ *
+ * If nil (the default value), a regular invoke is done for commands that do
+ * not require a timed invoke and a timed invoke with some default timed request
+ * timeout is done for commands that require a timed invoke.
+ *
+ * If not nil, a timed invoke is done, with the provided value used as the timed
+ * request timeout.  The value should be chosen small enough to provide the
+ * desired security properties but large enough that it will allow a round-trip
+ * from the sever to the client (for the status response and actual invoke
+ * request) within the timeout window.
+ *
+ */
+@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs;
+
+/**
+ * Controls how much time, in seconds, we will allow for the server to process the command.
+ *
+ * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes.
+ *
+ * If nil, the framework will try to select an appropriate timeout value itself.
+ */
+@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRWebRTCTransportProviderClusterWebRTCSolicitOfferParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) NSNumber * _Nonnull streamType MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nullable videoStreamID MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nullable audioStreamID MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSArray * _Nullable iceServers MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSString * _Nullable iceTransportPolicy MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nullable metadataOptions MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Controls whether the command is a timed command (using Timed Invoke).
+ *
+ * If nil (the default value), a regular invoke is done for commands that do
+ * not require a timed invoke and a timed invoke with some default timed request
+ * timeout is done for commands that require a timed invoke.
+ *
+ * If not nil, a timed invoke is done, with the provided value used as the timed
+ * request timeout.  The value should be chosen small enough to provide the
+ * desired security properties but large enough that it will allow a round-trip
+ * from the sever to the client (for the status response and actual invoke
+ * request) within the timeout window.
+ *
+ */
+@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs;
+
+/**
+ * Controls how much time, in seconds, we will allow for the server to process the command.
+ *
+ * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes.
+ *
+ * If nil, the framework will try to select an appropriate timeout value itself.
+ */
+@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRWebRTCTransportProviderClusterWebRTCSolicitOfferResponseParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) NSNumber * _Nonnull webRTCSessionID MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nonnull deferredOffer MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nullable videoStreamID MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nullable audioStreamID MTR_PROVISIONALLY_AVAILABLE;
+
+/**
+ * Initialize an MTRWebRTCTransportProviderClusterWebRTCSolicitOfferResponseParams with a response-value dictionary
+ * of the sort that MTRDeviceResponseHandler would receive.
+ *
+ * Will return nil and hand out an error if the response-value dictionary is not
+ * a command data response or is not the right command response.
+ *
+ * Will return nil and hand out an error if the data response does not match the known
+ * schema for this command.
+ */
+- (nullable instancetype)initWithResponseValue:(NSDictionary<NSString *, id> *)responseValue
+                                         error:(NSError * __autoreleasing *)error MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRWebRTCTransportProviderClusterWebRTCProvideOfferParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) NSNumber * _Nullable webRTCSessionID MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSString * _Nonnull sdp MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nonnull streamType MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nullable videoStreamID MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nullable audioStreamID MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSArray * _Nullable iceServers MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSString * _Nullable iceTransportPolicy MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nullable metadataOptions MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Controls whether the command is a timed command (using Timed Invoke).
+ *
+ * If nil (the default value), a regular invoke is done for commands that do
+ * not require a timed invoke and a timed invoke with some default timed request
+ * timeout is done for commands that require a timed invoke.
+ *
+ * If not nil, a timed invoke is done, with the provided value used as the timed
+ * request timeout.  The value should be chosen small enough to provide the
+ * desired security properties but large enough that it will allow a round-trip
+ * from the sever to the client (for the status response and actual invoke
+ * request) within the timeout window.
+ *
+ */
+@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs;
+
+/**
+ * Controls how much time, in seconds, we will allow for the server to process the command.
+ *
+ * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes.
+ *
+ * If nil, the framework will try to select an appropriate timeout value itself.
+ */
+@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRWebRTCTransportProviderClusterWebRTCProvideOfferResponseParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) NSNumber * _Nonnull webRTCSessionID MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nonnull videoStreamID MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nonnull audioStreamID MTR_PROVISIONALLY_AVAILABLE;
+
+/**
+ * Initialize an MTRWebRTCTransportProviderClusterWebRTCProvideOfferResponseParams with a response-value dictionary
+ * of the sort that MTRDeviceResponseHandler would receive.
+ *
+ * Will return nil and hand out an error if the response-value dictionary is not
+ * a command data response or is not the right command response.
+ *
+ * Will return nil and hand out an error if the data response does not match the known
+ * schema for this command.
+ */
+- (nullable instancetype)initWithResponseValue:(NSDictionary<NSString *, id> *)responseValue
+                                         error:(NSError * __autoreleasing *)error MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRWebRTCTransportProviderClusterWebRTCProvideAnswerParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) NSNumber * _Nonnull webRTCSessionID MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSString * _Nonnull sdp MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Controls whether the command is a timed command (using Timed Invoke).
+ *
+ * If nil (the default value), a regular invoke is done for commands that do
+ * not require a timed invoke and a timed invoke with some default timed request
+ * timeout is done for commands that require a timed invoke.
+ *
+ * If not nil, a timed invoke is done, with the provided value used as the timed
+ * request timeout.  The value should be chosen small enough to provide the
+ * desired security properties but large enough that it will allow a round-trip
+ * from the sever to the client (for the status response and actual invoke
+ * request) within the timeout window.
+ *
+ */
+@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs;
+
+/**
+ * Controls how much time, in seconds, we will allow for the server to process the command.
+ *
+ * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes.
+ *
+ * If nil, the framework will try to select an appropriate timeout value itself.
+ */
+@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRWebRTCTransportProviderClusterWebRTCProvideICECandidateParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) NSNumber * _Nonnull webRTCSessionID MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSString * _Nonnull iceCandidate MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Controls whether the command is a timed command (using Timed Invoke).
+ *
+ * If nil (the default value), a regular invoke is done for commands that do
+ * not require a timed invoke and a timed invoke with some default timed request
+ * timeout is done for commands that require a timed invoke.
+ *
+ * If not nil, a timed invoke is done, with the provided value used as the timed
+ * request timeout.  The value should be chosen small enough to provide the
+ * desired security properties but large enough that it will allow a round-trip
+ * from the sever to the client (for the status response and actual invoke
+ * request) within the timeout window.
+ *
+ */
+@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs;
+
+/**
+ * Controls how much time, in seconds, we will allow for the server to process the command.
+ *
+ * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes.
+ *
+ * If nil, the framework will try to select an appropriate timeout value itself.
+ */
+@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRWebRTCTransportProviderClusterWebRTCEndSessionParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) NSNumber * _Nonnull webRTCSessionID MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nonnull reason MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Controls whether the command is a timed command (using Timed Invoke).
+ *
+ * If nil (the default value), a regular invoke is done for commands that do
+ * not require a timed invoke and a timed invoke with some default timed request
+ * timeout is done for commands that require a timed invoke.
+ *
+ * If not nil, a timed invoke is done, with the provided value used as the timed
+ * request timeout.  The value should be chosen small enough to provide the
+ * desired security properties but large enough that it will allow a round-trip
+ * from the sever to the client (for the status response and actual invoke
+ * request) within the timeout window.
+ *
+ */
+@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs;
+
+/**
+ * Controls how much time, in seconds, we will allow for the server to process the command.
+ *
+ * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes.
+ *
+ * If nil, the framework will try to select an appropriate timeout value itself.
+ */
+@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRWebRTCTransportRequestorClusterWebRTCOfferParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) NSNumber * _Nonnull webRTCSessionID MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSString * _Nonnull sdp MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSArray * _Nullable iceServers MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSString * _Nullable iceTransportPolicy MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Controls whether the command is a timed command (using Timed Invoke).
+ *
+ * If nil (the default value), a regular invoke is done for commands that do
+ * not require a timed invoke and a timed invoke with some default timed request
+ * timeout is done for commands that require a timed invoke.
+ *
+ * If not nil, a timed invoke is done, with the provided value used as the timed
+ * request timeout.  The value should be chosen small enough to provide the
+ * desired security properties but large enough that it will allow a round-trip
+ * from the sever to the client (for the status response and actual invoke
+ * request) within the timeout window.
+ *
+ */
+@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs;
+
+/**
+ * Controls how much time, in seconds, we will allow for the server to process the command.
+ *
+ * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes.
+ *
+ * If nil, the framework will try to select an appropriate timeout value itself.
+ */
+@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRWebRTCTransportRequestorClusterWebRTCAnswerParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) NSNumber * _Nonnull webRTCSessionID MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSString * _Nonnull sdp MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Controls whether the command is a timed command (using Timed Invoke).
+ *
+ * If nil (the default value), a regular invoke is done for commands that do
+ * not require a timed invoke and a timed invoke with some default timed request
+ * timeout is done for commands that require a timed invoke.
+ *
+ * If not nil, a timed invoke is done, with the provided value used as the timed
+ * request timeout.  The value should be chosen small enough to provide the
+ * desired security properties but large enough that it will allow a round-trip
+ * from the sever to the client (for the status response and actual invoke
+ * request) within the timeout window.
+ *
+ */
+@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs;
+
+/**
+ * Controls how much time, in seconds, we will allow for the server to process the command.
+ *
+ * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes.
+ *
+ * If nil, the framework will try to select an appropriate timeout value itself.
+ */
+@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRWebRTCTransportRequestorClusterWebRTCICECandidateParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) NSNumber * _Nonnull webRTCSessionID MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSString * _Nonnull iceCandidate MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Controls whether the command is a timed command (using Timed Invoke).
+ *
+ * If nil (the default value), a regular invoke is done for commands that do
+ * not require a timed invoke and a timed invoke with some default timed request
+ * timeout is done for commands that require a timed invoke.
+ *
+ * If not nil, a timed invoke is done, with the provided value used as the timed
+ * request timeout.  The value should be chosen small enough to provide the
+ * desired security properties but large enough that it will allow a round-trip
+ * from the sever to the client (for the status response and actual invoke
+ * request) within the timeout window.
+ *
+ */
+@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs;
+
+/**
+ * Controls how much time, in seconds, we will allow for the server to process the command.
+ *
+ * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes.
+ *
+ * If nil, the framework will try to select an appropriate timeout value itself.
+ */
+@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRWebRTCTransportRequestorClusterWebRTCEndParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) NSNumber * _Nonnull webRTCSessionID MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nonnull reason MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Controls whether the command is a timed command (using Timed Invoke).
+ *
+ * If nil (the default value), a regular invoke is done for commands that do
+ * not require a timed invoke and a timed invoke with some default timed request
+ * timeout is done for commands that require a timed invoke.
+ *
+ * If not nil, a timed invoke is done, with the provided value used as the timed
+ * request timeout.  The value should be chosen small enough to provide the
+ * desired security properties but large enough that it will allow a round-trip
+ * from the sever to the client (for the status response and actual invoke
+ * request) within the timeout window.
+ *
+ */
+@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs;
+
+/**
+ * Controls how much time, in seconds, we will allow for the server to process the command.
+ *
+ * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes.
+ *
+ * If nil, the framework will try to select an appropriate timeout value itself.
+ */
+@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRPushAVStreamTransportClusterAllocatePushTransportParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) MTRPushAVStreamTransportClusterPushAVStreamTransportOptionsStruct * _Nonnull streamTransportOptions MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Controls whether the command is a timed command (using Timed Invoke).
+ *
+ * If nil (the default value), a regular invoke is done for commands that do
+ * not require a timed invoke and a timed invoke with some default timed request
+ * timeout is done for commands that require a timed invoke.
+ *
+ * If not nil, a timed invoke is done, with the provided value used as the timed
+ * request timeout.  The value should be chosen small enough to provide the
+ * desired security properties but large enough that it will allow a round-trip
+ * from the sever to the client (for the status response and actual invoke
+ * request) within the timeout window.
+ *
+ */
+@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs;
+
+/**
+ * Controls how much time, in seconds, we will allow for the server to process the command.
+ *
+ * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes.
+ *
+ * If nil, the framework will try to select an appropriate timeout value itself.
+ */
+@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRPushAVStreamTransportClusterAllocatePushTransportResponseParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) NSNumber * _Nonnull connectionID MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) MTRPushAVStreamTransportClusterPushAVStreamTransportOptionsStruct * _Nonnull streamTransportOptions MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nonnull transportStatus MTR_PROVISIONALLY_AVAILABLE;
+
+/**
+ * Initialize an MTRPushAVStreamTransportClusterAllocatePushTransportResponseParams with a response-value dictionary
+ * of the sort that MTRDeviceResponseHandler would receive.
+ *
+ * Will return nil and hand out an error if the response-value dictionary is not
+ * a command data response or is not the right command response.
+ *
+ * Will return nil and hand out an error if the data response does not match the known
+ * schema for this command.
+ */
+- (nullable instancetype)initWithResponseValue:(NSDictionary<NSString *, id> *)responseValue
+                                         error:(NSError * __autoreleasing *)error MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRPushAVStreamTransportClusterDeallocatePushTransportParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) NSNumber * _Nonnull connectionID MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Controls whether the command is a timed command (using Timed Invoke).
+ *
+ * If nil (the default value), a regular invoke is done for commands that do
+ * not require a timed invoke and a timed invoke with some default timed request
+ * timeout is done for commands that require a timed invoke.
+ *
+ * If not nil, a timed invoke is done, with the provided value used as the timed
+ * request timeout.  The value should be chosen small enough to provide the
+ * desired security properties but large enough that it will allow a round-trip
+ * from the sever to the client (for the status response and actual invoke
+ * request) within the timeout window.
+ *
+ */
+@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs;
+
+/**
+ * Controls how much time, in seconds, we will allow for the server to process the command.
+ *
+ * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes.
+ *
+ * If nil, the framework will try to select an appropriate timeout value itself.
+ */
+@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRPushAVStreamTransportClusterModifyPushTransportParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) NSNumber * _Nonnull connectionID MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) MTRPushAVStreamTransportClusterPushAVStreamTransportOptionsStruct * _Nonnull streamTransportOptions MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Controls whether the command is a timed command (using Timed Invoke).
+ *
+ * If nil (the default value), a regular invoke is done for commands that do
+ * not require a timed invoke and a timed invoke with some default timed request
+ * timeout is done for commands that require a timed invoke.
+ *
+ * If not nil, a timed invoke is done, with the provided value used as the timed
+ * request timeout.  The value should be chosen small enough to provide the
+ * desired security properties but large enough that it will allow a round-trip
+ * from the sever to the client (for the status response and actual invoke
+ * request) within the timeout window.
+ *
+ */
+@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs;
+
+/**
+ * Controls how much time, in seconds, we will allow for the server to process the command.
+ *
+ * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes.
+ *
+ * If nil, the framework will try to select an appropriate timeout value itself.
+ */
+@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRPushAVStreamTransportClusterSetTransportStatusParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) NSNumber * _Nullable connectionID MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nonnull streamTransportStatus MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Controls whether the command is a timed command (using Timed Invoke).
+ *
+ * If nil (the default value), a regular invoke is done for commands that do
+ * not require a timed invoke and a timed invoke with some default timed request
+ * timeout is done for commands that require a timed invoke.
+ *
+ * If not nil, a timed invoke is done, with the provided value used as the timed
+ * request timeout.  The value should be chosen small enough to provide the
+ * desired security properties but large enough that it will allow a round-trip
+ * from the sever to the client (for the status response and actual invoke
+ * request) within the timeout window.
+ *
+ */
+@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs;
+
+/**
+ * Controls how much time, in seconds, we will allow for the server to process the command.
+ *
+ * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes.
+ *
+ * If nil, the framework will try to select an appropriate timeout value itself.
+ */
+@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRPushAVStreamTransportClusterManuallyTriggerTransportParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) NSNumber * _Nonnull connectionID MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) NSNumber * _Nullable activationReason MTR_PROVISIONALLY_AVAILABLE;
+
+@property (nonatomic, copy) MTRPushAVStreamTransportClusterPushAVStreamTransportMotionTriggerTimeControlStruct * _Nullable timeControl MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Controls whether the command is a timed command (using Timed Invoke).
+ *
+ * If nil (the default value), a regular invoke is done for commands that do
+ * not require a timed invoke and a timed invoke with some default timed request
+ * timeout is done for commands that require a timed invoke.
+ *
+ * If not nil, a timed invoke is done, with the provided value used as the timed
+ * request timeout.  The value should be chosen small enough to provide the
+ * desired security properties but large enough that it will allow a round-trip
+ * from the sever to the client (for the status response and actual invoke
+ * request) within the timeout window.
+ *
+ */
+@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs;
+
+/**
+ * Controls how much time, in seconds, we will allow for the server to process the command.
+ *
+ * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes.
+ *
+ * If nil, the framework will try to select an appropriate timeout value itself.
+ */
+@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRPushAVStreamTransportClusterFindStreamConfigurationParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) NSNumber * _Nullable connectionID MTR_PROVISIONALLY_AVAILABLE;
+/**
+ * Controls whether the command is a timed command (using Timed Invoke).
+ *
+ * If nil (the default value), a regular invoke is done for commands that do
+ * not require a timed invoke and a timed invoke with some default timed request
+ * timeout is done for commands that require a timed invoke.
+ *
+ * If not nil, a timed invoke is done, with the provided value used as the timed
+ * request timeout.  The value should be chosen small enough to provide the
+ * desired security properties but large enough that it will allow a round-trip
+ * from the sever to the client (for the status response and actual invoke
+ * request) within the timeout window.
+ *
+ */
+@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs;
+
+/**
+ * Controls how much time, in seconds, we will allow for the server to process the command.
+ *
+ * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes.
+ *
+ * If nil, the framework will try to select an appropriate timeout value itself.
+ */
+@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRPushAVStreamTransportClusterFindStreamConfigurationResponseParams : NSObject <NSCopying>
+
+@property (nonatomic, copy) NSArray * _Nonnull streamConfigurations MTR_PROVISIONALLY_AVAILABLE;
+
+/**
+ * Initialize an MTRPushAVStreamTransportClusterFindStreamConfigurationResponseParams with a response-value dictionary
+ * of the sort that MTRDeviceResponseHandler would receive.
+ *
+ * Will return nil and hand out an error if the response-value dictionary is not
+ * a command data response or is not the right command response.
+ *
+ * Will return nil and hand out an error if the data response does not match the known
+ * schema for this command.
+ */
+- (nullable instancetype)initWithResponseValue:(NSDictionary<NSString *, id> *)responseValue
+                                         error:(NSError * __autoreleasing *)error MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRChimeClusterPlayChimeSoundParams : NSObject <NSCopying>
+/**
+ * Controls whether the command is a timed command (using Timed Invoke).
+ *
+ * If nil (the default value), a regular invoke is done for commands that do
+ * not require a timed invoke and a timed invoke with some default timed request
+ * timeout is done for commands that require a timed invoke.
+ *
+ * If not nil, a timed invoke is done, with the provided value used as the timed
+ * request timeout.  The value should be chosen small enough to provide the
+ * desired security properties but large enough that it will allow a round-trip
+ * from the sever to the client (for the status response and actual invoke
+ * request) within the timeout window.
+ *
+ */
+@property (nonatomic, copy, nullable) NSNumber * timedInvokeTimeoutMs;
+
+/**
+ * Controls how much time, in seconds, we will allow for the server to process the command.
+ *
+ * The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes.
+ *
+ * If nil, the framework will try to select an appropriate timeout value itself.
+ */
+@property (nonatomic, copy, nullable) NSNumber * serverSideProcessingTimeout;
+@end
+
 MTR_PROVISIONALLY_AVAILABLE
 @interface MTRCommissionerControlClusterRequestCommissioningApprovalParams : NSObject <NSCopying>
 
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.mm b/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.mm
index 87aacfd377eb82..3a98cc905901b5 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.mm
@@ -31475,6 +31475,4489 @@ - (CHIP_ERROR)_setFieldsFromDecodableStruct:(const chip::app::Clusters::ContentA
 
 @end
 
+@implementation MTRCameraAVStreamManagementClusterAudioStreamAllocateParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _streamType = @(0);
+
+        _audioCodec = @(0);
+
+        _channelCount = @(0);
+
+        _sampleRate = @(0);
+
+        _bitRate = @(0);
+
+        _bitDepth = @(0);
+        _timedInvokeTimeoutMs = nil;
+        _serverSideProcessingTimeout = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRCameraAVStreamManagementClusterAudioStreamAllocateParams alloc] init];
+
+    other.streamType = self.streamType;
+    other.audioCodec = self.audioCodec;
+    other.channelCount = self.channelCount;
+    other.sampleRate = self.sampleRate;
+    other.bitRate = self.bitRate;
+    other.bitDepth = self.bitDepth;
+    other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs;
+    other.serverSideProcessingTimeout = self.serverSideProcessingTimeout;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: streamType:%@; audioCodec:%@; channelCount:%@; sampleRate:%@; bitRate:%@; bitDepth:%@; >", NSStringFromClass([self class]), _streamType, _audioCodec, _channelCount, _sampleRate, _bitRate, _bitDepth];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRCameraAVStreamManagementClusterAudioStreamAllocateParams (InternalMethods)
+
+- (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader
+{
+    chip::app::Clusters::CameraAvStreamManagement::Commands::AudioStreamAllocate::Type encodableStruct;
+    ListFreer listFreer;
+    {
+        encodableStruct.streamType = static_cast<std::remove_reference_t<decltype(encodableStruct.streamType)>>(self.streamType.unsignedCharValue);
+    }
+    {
+        encodableStruct.audioCodec = static_cast<std::remove_reference_t<decltype(encodableStruct.audioCodec)>>(self.audioCodec.unsignedCharValue);
+    }
+    {
+        encodableStruct.channelCount = self.channelCount.unsignedCharValue;
+    }
+    {
+        encodableStruct.sampleRate = self.sampleRate.unsignedIntValue;
+    }
+    {
+        encodableStruct.bitRate = self.bitRate.unsignedIntValue;
+    }
+    {
+        encodableStruct.bitDepth = self.bitDepth.unsignedCharValue;
+    }
+
+    auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0);
+    if (buffer.IsNull()) {
+        return CHIP_ERROR_NO_MEMORY;
+    }
+
+    chip::System::PacketBufferTLVWriter writer;
+    // Commands never need chained buffers, since they cannot be chunked.
+    writer.Init(std::move(buffer), /* useChainedBuffers = */ false);
+
+    ReturnErrorOnFailure(chip::app::DataModel::Encode(writer, chip::TLV::AnonymousTag(), encodableStruct));
+
+    ReturnErrorOnFailure(writer.Finalize(&buffer));
+
+    reader.Init(std::move(buffer));
+    return reader.Next(chip::TLV::kTLVType_Structure, chip::TLV::AnonymousTag());
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error
+{
+    chip::System::PacketBufferTLVReader reader;
+    CHIP_ERROR err = [self _encodeToTLVReader:reader];
+    if (err != CHIP_NO_ERROR) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:err];
+        }
+        return nil;
+    }
+
+    auto decodedObj = MTRDecodeDataValueDictionaryFromCHIPTLV(&reader);
+    if (decodedObj == nil) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INCORRECT_STATE];
+        }
+    }
+    return decodedObj;
+}
+@end
+
+@implementation MTRCameraAVStreamManagementClusterAudioStreamAllocateResponseParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _audioStreamID = @(0);
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRCameraAVStreamManagementClusterAudioStreamAllocateResponseParams alloc] init];
+
+    other.audioStreamID = self.audioStreamID;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: audioStreamID:%@; >", NSStringFromClass([self class]), _audioStreamID];
+    return descriptionString;
+}
+
+- (nullable instancetype)initWithResponseValue:(NSDictionary<NSString *, id> *)responseValue
+                                         error:(NSError * __autoreleasing *)error
+{
+    if (!(self = [super init])) {
+        return nil;
+    }
+
+    using DecodableType = chip::app::Clusters::CameraAvStreamManagement::Commands::AudioStreamAllocateResponse::DecodableType;
+    chip::System::PacketBufferHandle buffer = [MTRBaseDevice _responseDataForCommand:responseValue
+                                                                           clusterID:DecodableType::GetClusterId()
+                                                                           commandID:DecodableType::GetCommandId()
+                                                                               error:error];
+    if (buffer.IsNull()) {
+        return nil;
+    }
+
+    chip::TLV::TLVReader reader;
+    reader.Init(buffer->Start(), buffer->DataLength());
+
+    CHIP_ERROR err = reader.Next(chip::TLV::AnonymousTag());
+    if (err == CHIP_NO_ERROR) {
+        DecodableType decodedStruct;
+        err = chip::app::DataModel::Decode(reader, decodedStruct);
+        if (err == CHIP_NO_ERROR) {
+            err = [self _setFieldsFromDecodableStruct:decodedStruct];
+            if (err == CHIP_NO_ERROR) {
+                return self;
+            }
+        }
+    }
+
+    NSString * errorStr = [NSString stringWithFormat:@"Command payload decoding failed: %s", err.AsString()];
+    MTR_LOG_ERROR("%s", errorStr.UTF8String);
+    if (error != nil) {
+        NSDictionary * userInfo = @{ NSLocalizedFailureReasonErrorKey : NSLocalizedString(errorStr, nil) };
+        *error = [NSError errorWithDomain:MTRErrorDomain code:MTRErrorCodeSchemaMismatch userInfo:userInfo];
+    }
+    return nil;
+}
+
+@end
+
+@implementation MTRCameraAVStreamManagementClusterAudioStreamAllocateResponseParams (InternalMethods)
+
+- (CHIP_ERROR)_setFieldsFromDecodableStruct:(const chip::app::Clusters::CameraAvStreamManagement::Commands::AudioStreamAllocateResponse::DecodableType &)decodableStruct
+{
+    {
+        self.audioStreamID = [NSNumber numberWithUnsignedShort:decodableStruct.audioStreamID];
+    }
+    return CHIP_NO_ERROR;
+}
+
+@end
+
+@implementation MTRCameraAVStreamManagementClusterAudioStreamDeallocateParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _audioStreamID = @(0);
+        _timedInvokeTimeoutMs = nil;
+        _serverSideProcessingTimeout = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRCameraAVStreamManagementClusterAudioStreamDeallocateParams alloc] init];
+
+    other.audioStreamID = self.audioStreamID;
+    other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs;
+    other.serverSideProcessingTimeout = self.serverSideProcessingTimeout;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: audioStreamID:%@; >", NSStringFromClass([self class]), _audioStreamID];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRCameraAVStreamManagementClusterAudioStreamDeallocateParams (InternalMethods)
+
+- (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader
+{
+    chip::app::Clusters::CameraAvStreamManagement::Commands::AudioStreamDeallocate::Type encodableStruct;
+    ListFreer listFreer;
+    {
+        encodableStruct.audioStreamID = self.audioStreamID.unsignedShortValue;
+    }
+
+    auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0);
+    if (buffer.IsNull()) {
+        return CHIP_ERROR_NO_MEMORY;
+    }
+
+    chip::System::PacketBufferTLVWriter writer;
+    // Commands never need chained buffers, since they cannot be chunked.
+    writer.Init(std::move(buffer), /* useChainedBuffers = */ false);
+
+    ReturnErrorOnFailure(chip::app::DataModel::Encode(writer, chip::TLV::AnonymousTag(), encodableStruct));
+
+    ReturnErrorOnFailure(writer.Finalize(&buffer));
+
+    reader.Init(std::move(buffer));
+    return reader.Next(chip::TLV::kTLVType_Structure, chip::TLV::AnonymousTag());
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error
+{
+    chip::System::PacketBufferTLVReader reader;
+    CHIP_ERROR err = [self _encodeToTLVReader:reader];
+    if (err != CHIP_NO_ERROR) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:err];
+        }
+        return nil;
+    }
+
+    auto decodedObj = MTRDecodeDataValueDictionaryFromCHIPTLV(&reader);
+    if (decodedObj == nil) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INCORRECT_STATE];
+        }
+    }
+    return decodedObj;
+}
+@end
+
+@implementation MTRCameraAVStreamManagementClusterVideoStreamAllocateParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _streamType = @(0);
+
+        _videoCodec = @(0);
+
+        _minFrameRate = @(0);
+
+        _maxFrameRate = @(0);
+
+        _minResolution = [MTRCameraAVStreamManagementClusterDimensionStruct new];
+
+        _maxResolution = [MTRCameraAVStreamManagementClusterDimensionStruct new];
+
+        _minBitRate = @(0);
+
+        _maxBitRate = @(0);
+
+        _minFragmentLen = @(0);
+
+        _maxFragmentLen = @(0);
+        _timedInvokeTimeoutMs = nil;
+        _serverSideProcessingTimeout = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRCameraAVStreamManagementClusterVideoStreamAllocateParams alloc] init];
+
+    other.streamType = self.streamType;
+    other.videoCodec = self.videoCodec;
+    other.minFrameRate = self.minFrameRate;
+    other.maxFrameRate = self.maxFrameRate;
+    other.minResolution = self.minResolution;
+    other.maxResolution = self.maxResolution;
+    other.minBitRate = self.minBitRate;
+    other.maxBitRate = self.maxBitRate;
+    other.minFragmentLen = self.minFragmentLen;
+    other.maxFragmentLen = self.maxFragmentLen;
+    other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs;
+    other.serverSideProcessingTimeout = self.serverSideProcessingTimeout;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: streamType:%@; videoCodec:%@; minFrameRate:%@; maxFrameRate:%@; minResolution:%@; maxResolution:%@; minBitRate:%@; maxBitRate:%@; minFragmentLen:%@; maxFragmentLen:%@; >", NSStringFromClass([self class]), _streamType, _videoCodec, _minFrameRate, _maxFrameRate, _minResolution, _maxResolution, _minBitRate, _maxBitRate, _minFragmentLen, _maxFragmentLen];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRCameraAVStreamManagementClusterVideoStreamAllocateParams (InternalMethods)
+
+- (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader
+{
+    chip::app::Clusters::CameraAvStreamManagement::Commands::VideoStreamAllocate::Type encodableStruct;
+    ListFreer listFreer;
+    {
+        encodableStruct.streamType = static_cast<std::remove_reference_t<decltype(encodableStruct.streamType)>>(self.streamType.unsignedCharValue);
+    }
+    {
+        encodableStruct.videoCodec = static_cast<std::remove_reference_t<decltype(encodableStruct.videoCodec)>>(self.videoCodec.unsignedCharValue);
+    }
+    {
+        encodableStruct.minFrameRate = self.minFrameRate.unsignedShortValue;
+    }
+    {
+        encodableStruct.maxFrameRate = self.maxFrameRate.unsignedShortValue;
+    }
+    {
+    }
+    {
+    }
+    {
+        encodableStruct.minBitRate = self.minBitRate.unsignedIntValue;
+    }
+    {
+        encodableStruct.maxBitRate = self.maxBitRate.unsignedIntValue;
+    }
+    {
+        encodableStruct.minFragmentLen = self.minFragmentLen.unsignedShortValue;
+    }
+    {
+        encodableStruct.maxFragmentLen = self.maxFragmentLen.unsignedShortValue;
+    }
+
+    auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0);
+    if (buffer.IsNull()) {
+        return CHIP_ERROR_NO_MEMORY;
+    }
+
+    chip::System::PacketBufferTLVWriter writer;
+    // Commands never need chained buffers, since they cannot be chunked.
+    writer.Init(std::move(buffer), /* useChainedBuffers = */ false);
+
+    ReturnErrorOnFailure(chip::app::DataModel::Encode(writer, chip::TLV::AnonymousTag(), encodableStruct));
+
+    ReturnErrorOnFailure(writer.Finalize(&buffer));
+
+    reader.Init(std::move(buffer));
+    return reader.Next(chip::TLV::kTLVType_Structure, chip::TLV::AnonymousTag());
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error
+{
+    chip::System::PacketBufferTLVReader reader;
+    CHIP_ERROR err = [self _encodeToTLVReader:reader];
+    if (err != CHIP_NO_ERROR) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:err];
+        }
+        return nil;
+    }
+
+    auto decodedObj = MTRDecodeDataValueDictionaryFromCHIPTLV(&reader);
+    if (decodedObj == nil) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INCORRECT_STATE];
+        }
+    }
+    return decodedObj;
+}
+@end
+
+@implementation MTRCameraAVStreamManagementClusterVideoStreamAllocateResponseParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _videoStreamID = @(0);
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRCameraAVStreamManagementClusterVideoStreamAllocateResponseParams alloc] init];
+
+    other.videoStreamID = self.videoStreamID;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: videoStreamID:%@; >", NSStringFromClass([self class]), _videoStreamID];
+    return descriptionString;
+}
+
+- (nullable instancetype)initWithResponseValue:(NSDictionary<NSString *, id> *)responseValue
+                                         error:(NSError * __autoreleasing *)error
+{
+    if (!(self = [super init])) {
+        return nil;
+    }
+
+    using DecodableType = chip::app::Clusters::CameraAvStreamManagement::Commands::VideoStreamAllocateResponse::DecodableType;
+    chip::System::PacketBufferHandle buffer = [MTRBaseDevice _responseDataForCommand:responseValue
+                                                                           clusterID:DecodableType::GetClusterId()
+                                                                           commandID:DecodableType::GetCommandId()
+                                                                               error:error];
+    if (buffer.IsNull()) {
+        return nil;
+    }
+
+    chip::TLV::TLVReader reader;
+    reader.Init(buffer->Start(), buffer->DataLength());
+
+    CHIP_ERROR err = reader.Next(chip::TLV::AnonymousTag());
+    if (err == CHIP_NO_ERROR) {
+        DecodableType decodedStruct;
+        err = chip::app::DataModel::Decode(reader, decodedStruct);
+        if (err == CHIP_NO_ERROR) {
+            err = [self _setFieldsFromDecodableStruct:decodedStruct];
+            if (err == CHIP_NO_ERROR) {
+                return self;
+            }
+        }
+    }
+
+    NSString * errorStr = [NSString stringWithFormat:@"Command payload decoding failed: %s", err.AsString()];
+    MTR_LOG_ERROR("%s", errorStr.UTF8String);
+    if (error != nil) {
+        NSDictionary * userInfo = @{ NSLocalizedFailureReasonErrorKey : NSLocalizedString(errorStr, nil) };
+        *error = [NSError errorWithDomain:MTRErrorDomain code:MTRErrorCodeSchemaMismatch userInfo:userInfo];
+    }
+    return nil;
+}
+
+@end
+
+@implementation MTRCameraAVStreamManagementClusterVideoStreamAllocateResponseParams (InternalMethods)
+
+- (CHIP_ERROR)_setFieldsFromDecodableStruct:(const chip::app::Clusters::CameraAvStreamManagement::Commands::VideoStreamAllocateResponse::DecodableType &)decodableStruct
+{
+    {
+        self.videoStreamID = [NSNumber numberWithUnsignedShort:decodableStruct.videoStreamID];
+    }
+    return CHIP_NO_ERROR;
+}
+
+@end
+
+@implementation MTRCameraAVStreamManagementClusterVideoStreamModifyParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _videoStreamID = @(0);
+
+        _resolution = [MTRCameraAVStreamManagementClusterDimensionStruct new];
+        _timedInvokeTimeoutMs = nil;
+        _serverSideProcessingTimeout = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRCameraAVStreamManagementClusterVideoStreamModifyParams alloc] init];
+
+    other.videoStreamID = self.videoStreamID;
+    other.resolution = self.resolution;
+    other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs;
+    other.serverSideProcessingTimeout = self.serverSideProcessingTimeout;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: videoStreamID:%@; resolution:%@; >", NSStringFromClass([self class]), _videoStreamID, _resolution];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRCameraAVStreamManagementClusterVideoStreamModifyParams (InternalMethods)
+
+- (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader
+{
+    chip::app::Clusters::CameraAvStreamManagement::Commands::VideoStreamModify::Type encodableStruct;
+    ListFreer listFreer;
+    {
+        encodableStruct.videoStreamID = self.videoStreamID.unsignedShortValue;
+    }
+    {
+    }
+
+    auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0);
+    if (buffer.IsNull()) {
+        return CHIP_ERROR_NO_MEMORY;
+    }
+
+    chip::System::PacketBufferTLVWriter writer;
+    // Commands never need chained buffers, since they cannot be chunked.
+    writer.Init(std::move(buffer), /* useChainedBuffers = */ false);
+
+    ReturnErrorOnFailure(chip::app::DataModel::Encode(writer, chip::TLV::AnonymousTag(), encodableStruct));
+
+    ReturnErrorOnFailure(writer.Finalize(&buffer));
+
+    reader.Init(std::move(buffer));
+    return reader.Next(chip::TLV::kTLVType_Structure, chip::TLV::AnonymousTag());
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error
+{
+    chip::System::PacketBufferTLVReader reader;
+    CHIP_ERROR err = [self _encodeToTLVReader:reader];
+    if (err != CHIP_NO_ERROR) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:err];
+        }
+        return nil;
+    }
+
+    auto decodedObj = MTRDecodeDataValueDictionaryFromCHIPTLV(&reader);
+    if (decodedObj == nil) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INCORRECT_STATE];
+        }
+    }
+    return decodedObj;
+}
+@end
+
+@implementation MTRCameraAVStreamManagementClusterVideoStreamDeallocateParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _videoStreamID = @(0);
+        _timedInvokeTimeoutMs = nil;
+        _serverSideProcessingTimeout = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRCameraAVStreamManagementClusterVideoStreamDeallocateParams alloc] init];
+
+    other.videoStreamID = self.videoStreamID;
+    other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs;
+    other.serverSideProcessingTimeout = self.serverSideProcessingTimeout;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: videoStreamID:%@; >", NSStringFromClass([self class]), _videoStreamID];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRCameraAVStreamManagementClusterVideoStreamDeallocateParams (InternalMethods)
+
+- (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader
+{
+    chip::app::Clusters::CameraAvStreamManagement::Commands::VideoStreamDeallocate::Type encodableStruct;
+    ListFreer listFreer;
+    {
+        encodableStruct.videoStreamID = self.videoStreamID.unsignedShortValue;
+    }
+
+    auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0);
+    if (buffer.IsNull()) {
+        return CHIP_ERROR_NO_MEMORY;
+    }
+
+    chip::System::PacketBufferTLVWriter writer;
+    // Commands never need chained buffers, since they cannot be chunked.
+    writer.Init(std::move(buffer), /* useChainedBuffers = */ false);
+
+    ReturnErrorOnFailure(chip::app::DataModel::Encode(writer, chip::TLV::AnonymousTag(), encodableStruct));
+
+    ReturnErrorOnFailure(writer.Finalize(&buffer));
+
+    reader.Init(std::move(buffer));
+    return reader.Next(chip::TLV::kTLVType_Structure, chip::TLV::AnonymousTag());
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error
+{
+    chip::System::PacketBufferTLVReader reader;
+    CHIP_ERROR err = [self _encodeToTLVReader:reader];
+    if (err != CHIP_NO_ERROR) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:err];
+        }
+        return nil;
+    }
+
+    auto decodedObj = MTRDecodeDataValueDictionaryFromCHIPTLV(&reader);
+    if (decodedObj == nil) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INCORRECT_STATE];
+        }
+    }
+    return decodedObj;
+}
+@end
+
+@implementation MTRCameraAVStreamManagementClusterSnapshotStreamAllocateParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _imageCodec = @(0);
+
+        _frameRate = @(0);
+
+        _bitRate = @(0);
+
+        _minResolution = [MTRCameraAVStreamManagementClusterDimensionStruct new];
+
+        _maxResolution = [MTRCameraAVStreamManagementClusterDimensionStruct new];
+
+        _quality = @(0);
+        _timedInvokeTimeoutMs = nil;
+        _serverSideProcessingTimeout = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRCameraAVStreamManagementClusterSnapshotStreamAllocateParams alloc] init];
+
+    other.imageCodec = self.imageCodec;
+    other.frameRate = self.frameRate;
+    other.bitRate = self.bitRate;
+    other.minResolution = self.minResolution;
+    other.maxResolution = self.maxResolution;
+    other.quality = self.quality;
+    other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs;
+    other.serverSideProcessingTimeout = self.serverSideProcessingTimeout;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: imageCodec:%@; frameRate:%@; bitRate:%@; minResolution:%@; maxResolution:%@; quality:%@; >", NSStringFromClass([self class]), _imageCodec, _frameRate, _bitRate, _minResolution, _maxResolution, _quality];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRCameraAVStreamManagementClusterSnapshotStreamAllocateParams (InternalMethods)
+
+- (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader
+{
+    chip::app::Clusters::CameraAvStreamManagement::Commands::SnapshotStreamAllocate::Type encodableStruct;
+    ListFreer listFreer;
+    {
+        encodableStruct.imageCodec = static_cast<std::remove_reference_t<decltype(encodableStruct.imageCodec)>>(self.imageCodec.unsignedCharValue);
+    }
+    {
+        encodableStruct.frameRate = self.frameRate.unsignedShortValue;
+    }
+    {
+        encodableStruct.bitRate = self.bitRate.unsignedIntValue;
+    }
+    {
+    }
+    {
+    }
+    {
+        encodableStruct.quality = self.quality.unsignedCharValue;
+    }
+
+    auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0);
+    if (buffer.IsNull()) {
+        return CHIP_ERROR_NO_MEMORY;
+    }
+
+    chip::System::PacketBufferTLVWriter writer;
+    // Commands never need chained buffers, since they cannot be chunked.
+    writer.Init(std::move(buffer), /* useChainedBuffers = */ false);
+
+    ReturnErrorOnFailure(chip::app::DataModel::Encode(writer, chip::TLV::AnonymousTag(), encodableStruct));
+
+    ReturnErrorOnFailure(writer.Finalize(&buffer));
+
+    reader.Init(std::move(buffer));
+    return reader.Next(chip::TLV::kTLVType_Structure, chip::TLV::AnonymousTag());
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error
+{
+    chip::System::PacketBufferTLVReader reader;
+    CHIP_ERROR err = [self _encodeToTLVReader:reader];
+    if (err != CHIP_NO_ERROR) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:err];
+        }
+        return nil;
+    }
+
+    auto decodedObj = MTRDecodeDataValueDictionaryFromCHIPTLV(&reader);
+    if (decodedObj == nil) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INCORRECT_STATE];
+        }
+    }
+    return decodedObj;
+}
+@end
+
+@implementation MTRCameraAVStreamManagementClusterSnapshotStreamAllocateResponseParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _snapshotStreamID = @(0);
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRCameraAVStreamManagementClusterSnapshotStreamAllocateResponseParams alloc] init];
+
+    other.snapshotStreamID = self.snapshotStreamID;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: snapshotStreamID:%@; >", NSStringFromClass([self class]), _snapshotStreamID];
+    return descriptionString;
+}
+
+- (nullable instancetype)initWithResponseValue:(NSDictionary<NSString *, id> *)responseValue
+                                         error:(NSError * __autoreleasing *)error
+{
+    if (!(self = [super init])) {
+        return nil;
+    }
+
+    using DecodableType = chip::app::Clusters::CameraAvStreamManagement::Commands::SnapshotStreamAllocateResponse::DecodableType;
+    chip::System::PacketBufferHandle buffer = [MTRBaseDevice _responseDataForCommand:responseValue
+                                                                           clusterID:DecodableType::GetClusterId()
+                                                                           commandID:DecodableType::GetCommandId()
+                                                                               error:error];
+    if (buffer.IsNull()) {
+        return nil;
+    }
+
+    chip::TLV::TLVReader reader;
+    reader.Init(buffer->Start(), buffer->DataLength());
+
+    CHIP_ERROR err = reader.Next(chip::TLV::AnonymousTag());
+    if (err == CHIP_NO_ERROR) {
+        DecodableType decodedStruct;
+        err = chip::app::DataModel::Decode(reader, decodedStruct);
+        if (err == CHIP_NO_ERROR) {
+            err = [self _setFieldsFromDecodableStruct:decodedStruct];
+            if (err == CHIP_NO_ERROR) {
+                return self;
+            }
+        }
+    }
+
+    NSString * errorStr = [NSString stringWithFormat:@"Command payload decoding failed: %s", err.AsString()];
+    MTR_LOG_ERROR("%s", errorStr.UTF8String);
+    if (error != nil) {
+        NSDictionary * userInfo = @{ NSLocalizedFailureReasonErrorKey : NSLocalizedString(errorStr, nil) };
+        *error = [NSError errorWithDomain:MTRErrorDomain code:MTRErrorCodeSchemaMismatch userInfo:userInfo];
+    }
+    return nil;
+}
+
+@end
+
+@implementation MTRCameraAVStreamManagementClusterSnapshotStreamAllocateResponseParams (InternalMethods)
+
+- (CHIP_ERROR)_setFieldsFromDecodableStruct:(const chip::app::Clusters::CameraAvStreamManagement::Commands::SnapshotStreamAllocateResponse::DecodableType &)decodableStruct
+{
+    {
+        self.snapshotStreamID = [NSNumber numberWithUnsignedShort:decodableStruct.snapshotStreamID];
+    }
+    return CHIP_NO_ERROR;
+}
+
+@end
+
+@implementation MTRCameraAVStreamManagementClusterSnapshotStreamDeallocateParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _snapshotStreamID = @(0);
+        _timedInvokeTimeoutMs = nil;
+        _serverSideProcessingTimeout = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRCameraAVStreamManagementClusterSnapshotStreamDeallocateParams alloc] init];
+
+    other.snapshotStreamID = self.snapshotStreamID;
+    other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs;
+    other.serverSideProcessingTimeout = self.serverSideProcessingTimeout;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: snapshotStreamID:%@; >", NSStringFromClass([self class]), _snapshotStreamID];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRCameraAVStreamManagementClusterSnapshotStreamDeallocateParams (InternalMethods)
+
+- (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader
+{
+    chip::app::Clusters::CameraAvStreamManagement::Commands::SnapshotStreamDeallocate::Type encodableStruct;
+    ListFreer listFreer;
+    {
+        encodableStruct.snapshotStreamID = self.snapshotStreamID.unsignedShortValue;
+    }
+
+    auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0);
+    if (buffer.IsNull()) {
+        return CHIP_ERROR_NO_MEMORY;
+    }
+
+    chip::System::PacketBufferTLVWriter writer;
+    // Commands never need chained buffers, since they cannot be chunked.
+    writer.Init(std::move(buffer), /* useChainedBuffers = */ false);
+
+    ReturnErrorOnFailure(chip::app::DataModel::Encode(writer, chip::TLV::AnonymousTag(), encodableStruct));
+
+    ReturnErrorOnFailure(writer.Finalize(&buffer));
+
+    reader.Init(std::move(buffer));
+    return reader.Next(chip::TLV::kTLVType_Structure, chip::TLV::AnonymousTag());
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error
+{
+    chip::System::PacketBufferTLVReader reader;
+    CHIP_ERROR err = [self _encodeToTLVReader:reader];
+    if (err != CHIP_NO_ERROR) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:err];
+        }
+        return nil;
+    }
+
+    auto decodedObj = MTRDecodeDataValueDictionaryFromCHIPTLV(&reader);
+    if (decodedObj == nil) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INCORRECT_STATE];
+        }
+    }
+    return decodedObj;
+}
+@end
+
+@implementation MTRCameraAVStreamManagementClusterSetStreamPriorityParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+        _timedInvokeTimeoutMs = nil;
+        _serverSideProcessingTimeout = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRCameraAVStreamManagementClusterSetStreamPriorityParams alloc] init];
+
+    other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs;
+    other.serverSideProcessingTimeout = self.serverSideProcessingTimeout;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: >", NSStringFromClass([self class])];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRCameraAVStreamManagementClusterSetStreamPriorityParams (InternalMethods)
+
+- (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader
+{
+    chip::app::Clusters::CameraAvStreamManagement::Commands::SetStreamPriority::Type encodableStruct;
+    ListFreer listFreer;
+
+    auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0);
+    if (buffer.IsNull()) {
+        return CHIP_ERROR_NO_MEMORY;
+    }
+
+    chip::System::PacketBufferTLVWriter writer;
+    // Commands never need chained buffers, since they cannot be chunked.
+    writer.Init(std::move(buffer), /* useChainedBuffers = */ false);
+
+    ReturnErrorOnFailure(chip::app::DataModel::Encode(writer, chip::TLV::AnonymousTag(), encodableStruct));
+
+    ReturnErrorOnFailure(writer.Finalize(&buffer));
+
+    reader.Init(std::move(buffer));
+    return reader.Next(chip::TLV::kTLVType_Structure, chip::TLV::AnonymousTag());
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error
+{
+    chip::System::PacketBufferTLVReader reader;
+    CHIP_ERROR err = [self _encodeToTLVReader:reader];
+    if (err != CHIP_NO_ERROR) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:err];
+        }
+        return nil;
+    }
+
+    auto decodedObj = MTRDecodeDataValueDictionaryFromCHIPTLV(&reader);
+    if (decodedObj == nil) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INCORRECT_STATE];
+        }
+    }
+    return decodedObj;
+}
+@end
+
+@implementation MTRCameraAVStreamManagementClusterCaptureSnapshotParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _snapshotStreamID = @(0);
+
+        _requestedResolution = [MTRCameraAVStreamManagementClusterDimensionStruct new];
+        _timedInvokeTimeoutMs = nil;
+        _serverSideProcessingTimeout = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRCameraAVStreamManagementClusterCaptureSnapshotParams alloc] init];
+
+    other.snapshotStreamID = self.snapshotStreamID;
+    other.requestedResolution = self.requestedResolution;
+    other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs;
+    other.serverSideProcessingTimeout = self.serverSideProcessingTimeout;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: snapshotStreamID:%@; requestedResolution:%@; >", NSStringFromClass([self class]), _snapshotStreamID, _requestedResolution];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRCameraAVStreamManagementClusterCaptureSnapshotParams (InternalMethods)
+
+- (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader
+{
+    chip::app::Clusters::CameraAvStreamManagement::Commands::CaptureSnapshot::Type encodableStruct;
+    ListFreer listFreer;
+    {
+        encodableStruct.snapshotStreamID = self.snapshotStreamID.unsignedShortValue;
+    }
+    {
+    }
+
+    auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0);
+    if (buffer.IsNull()) {
+        return CHIP_ERROR_NO_MEMORY;
+    }
+
+    chip::System::PacketBufferTLVWriter writer;
+    // Commands never need chained buffers, since they cannot be chunked.
+    writer.Init(std::move(buffer), /* useChainedBuffers = */ false);
+
+    ReturnErrorOnFailure(chip::app::DataModel::Encode(writer, chip::TLV::AnonymousTag(), encodableStruct));
+
+    ReturnErrorOnFailure(writer.Finalize(&buffer));
+
+    reader.Init(std::move(buffer));
+    return reader.Next(chip::TLV::kTLVType_Structure, chip::TLV::AnonymousTag());
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error
+{
+    chip::System::PacketBufferTLVReader reader;
+    CHIP_ERROR err = [self _encodeToTLVReader:reader];
+    if (err != CHIP_NO_ERROR) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:err];
+        }
+        return nil;
+    }
+
+    auto decodedObj = MTRDecodeDataValueDictionaryFromCHIPTLV(&reader);
+    if (decodedObj == nil) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INCORRECT_STATE];
+        }
+    }
+    return decodedObj;
+}
+@end
+
+@implementation MTRCameraAVStreamManagementClusterCaptureSnapshotResponseParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _data = [NSData data];
+
+        _imageCodec = @(0);
+
+        _resolution = [MTRCameraAVStreamManagementClusterDimensionStruct new];
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRCameraAVStreamManagementClusterCaptureSnapshotResponseParams alloc] init];
+
+    other.data = self.data;
+    other.imageCodec = self.imageCodec;
+    other.resolution = self.resolution;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: data:%@; imageCodec:%@; resolution:%@; >", NSStringFromClass([self class]), [_data base64EncodedStringWithOptions:0], _imageCodec, _resolution];
+    return descriptionString;
+}
+
+- (nullable instancetype)initWithResponseValue:(NSDictionary<NSString *, id> *)responseValue
+                                         error:(NSError * __autoreleasing *)error
+{
+    if (!(self = [super init])) {
+        return nil;
+    }
+
+    using DecodableType = chip::app::Clusters::CameraAvStreamManagement::Commands::CaptureSnapshotResponse::DecodableType;
+    chip::System::PacketBufferHandle buffer = [MTRBaseDevice _responseDataForCommand:responseValue
+                                                                           clusterID:DecodableType::GetClusterId()
+                                                                           commandID:DecodableType::GetCommandId()
+                                                                               error:error];
+    if (buffer.IsNull()) {
+        return nil;
+    }
+
+    chip::TLV::TLVReader reader;
+    reader.Init(buffer->Start(), buffer->DataLength());
+
+    CHIP_ERROR err = reader.Next(chip::TLV::AnonymousTag());
+    if (err == CHIP_NO_ERROR) {
+        DecodableType decodedStruct;
+        err = chip::app::DataModel::Decode(reader, decodedStruct);
+        if (err == CHIP_NO_ERROR) {
+            err = [self _setFieldsFromDecodableStruct:decodedStruct];
+            if (err == CHIP_NO_ERROR) {
+                return self;
+            }
+        }
+    }
+
+    NSString * errorStr = [NSString stringWithFormat:@"Command payload decoding failed: %s", err.AsString()];
+    MTR_LOG_ERROR("%s", errorStr.UTF8String);
+    if (error != nil) {
+        NSDictionary * userInfo = @{ NSLocalizedFailureReasonErrorKey : NSLocalizedString(errorStr, nil) };
+        *error = [NSError errorWithDomain:MTRErrorDomain code:MTRErrorCodeSchemaMismatch userInfo:userInfo];
+    }
+    return nil;
+}
+
+@end
+
+@implementation MTRCameraAVStreamManagementClusterCaptureSnapshotResponseParams (InternalMethods)
+
+- (CHIP_ERROR)_setFieldsFromDecodableStruct:(const chip::app::Clusters::CameraAvStreamManagement::Commands::CaptureSnapshotResponse::DecodableType &)decodableStruct
+{
+    {
+        self.data = AsData(decodableStruct.data);
+    }
+    {
+        self.imageCodec = [NSNumber numberWithUnsignedChar:chip::to_underlying(decodableStruct.imageCodec)];
+    }
+    {
+        self.resolution = [MTRCameraAVStreamManagementClusterDimensionStruct new];
+    }
+    return CHIP_NO_ERROR;
+}
+
+@end
+
+@implementation MTRCameraAVStreamManagementClusterSetViewportParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _viewport = [MTRCameraAVStreamManagementClusterViewportStruct new];
+        _timedInvokeTimeoutMs = nil;
+        _serverSideProcessingTimeout = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRCameraAVStreamManagementClusterSetViewportParams alloc] init];
+
+    other.viewport = self.viewport;
+    other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs;
+    other.serverSideProcessingTimeout = self.serverSideProcessingTimeout;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: viewport:%@; >", NSStringFromClass([self class]), _viewport];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRCameraAVStreamManagementClusterSetViewportParams (InternalMethods)
+
+- (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader
+{
+    chip::app::Clusters::CameraAvStreamManagement::Commands::SetViewport::Type encodableStruct;
+    ListFreer listFreer;
+    {
+        encodableStruct.viewport.x1 = self.viewport.x1.unsignedShortValue;
+        encodableStruct.viewport.y1 = self.viewport.y1.unsignedShortValue;
+        encodableStruct.viewport.x2 = self.viewport.x2.unsignedShortValue;
+        encodableStruct.viewport.y2 = self.viewport.y2.unsignedShortValue;
+    }
+
+    auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0);
+    if (buffer.IsNull()) {
+        return CHIP_ERROR_NO_MEMORY;
+    }
+
+    chip::System::PacketBufferTLVWriter writer;
+    // Commands never need chained buffers, since they cannot be chunked.
+    writer.Init(std::move(buffer), /* useChainedBuffers = */ false);
+
+    ReturnErrorOnFailure(chip::app::DataModel::Encode(writer, chip::TLV::AnonymousTag(), encodableStruct));
+
+    ReturnErrorOnFailure(writer.Finalize(&buffer));
+
+    reader.Init(std::move(buffer));
+    return reader.Next(chip::TLV::kTLVType_Structure, chip::TLV::AnonymousTag());
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error
+{
+    chip::System::PacketBufferTLVReader reader;
+    CHIP_ERROR err = [self _encodeToTLVReader:reader];
+    if (err != CHIP_NO_ERROR) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:err];
+        }
+        return nil;
+    }
+
+    auto decodedObj = MTRDecodeDataValueDictionaryFromCHIPTLV(&reader);
+    if (decodedObj == nil) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INCORRECT_STATE];
+        }
+    }
+    return decodedObj;
+}
+@end
+
+@implementation MTRCameraAVStreamManagementClusterSetImageRotationParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _angle = @(0);
+        _timedInvokeTimeoutMs = nil;
+        _serverSideProcessingTimeout = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRCameraAVStreamManagementClusterSetImageRotationParams alloc] init];
+
+    other.angle = self.angle;
+    other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs;
+    other.serverSideProcessingTimeout = self.serverSideProcessingTimeout;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: angle:%@; >", NSStringFromClass([self class]), _angle];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRCameraAVStreamManagementClusterSetImageRotationParams (InternalMethods)
+
+- (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader
+{
+    chip::app::Clusters::CameraAvStreamManagement::Commands::SetImageRotation::Type encodableStruct;
+    ListFreer listFreer;
+    {
+        encodableStruct.angle = self.angle.unsignedShortValue;
+    }
+
+    auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0);
+    if (buffer.IsNull()) {
+        return CHIP_ERROR_NO_MEMORY;
+    }
+
+    chip::System::PacketBufferTLVWriter writer;
+    // Commands never need chained buffers, since they cannot be chunked.
+    writer.Init(std::move(buffer), /* useChainedBuffers = */ false);
+
+    ReturnErrorOnFailure(chip::app::DataModel::Encode(writer, chip::TLV::AnonymousTag(), encodableStruct));
+
+    ReturnErrorOnFailure(writer.Finalize(&buffer));
+
+    reader.Init(std::move(buffer));
+    return reader.Next(chip::TLV::kTLVType_Structure, chip::TLV::AnonymousTag());
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error
+{
+    chip::System::PacketBufferTLVReader reader;
+    CHIP_ERROR err = [self _encodeToTLVReader:reader];
+    if (err != CHIP_NO_ERROR) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:err];
+        }
+        return nil;
+    }
+
+    auto decodedObj = MTRDecodeDataValueDictionaryFromCHIPTLV(&reader);
+    if (decodedObj == nil) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INCORRECT_STATE];
+        }
+    }
+    return decodedObj;
+}
+@end
+
+@implementation MTRCameraAVStreamManagementClusterSetImageFlipHorizontalParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _onOff = @(0);
+        _timedInvokeTimeoutMs = nil;
+        _serverSideProcessingTimeout = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRCameraAVStreamManagementClusterSetImageFlipHorizontalParams alloc] init];
+
+    other.onOff = self.onOff;
+    other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs;
+    other.serverSideProcessingTimeout = self.serverSideProcessingTimeout;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: onOff:%@; >", NSStringFromClass([self class]), _onOff];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRCameraAVStreamManagementClusterSetImageFlipHorizontalParams (InternalMethods)
+
+- (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader
+{
+    chip::app::Clusters::CameraAvStreamManagement::Commands::SetImageFlipHorizontal::Type encodableStruct;
+    ListFreer listFreer;
+    {
+        encodableStruct.onOff = self.onOff.boolValue;
+    }
+
+    auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0);
+    if (buffer.IsNull()) {
+        return CHIP_ERROR_NO_MEMORY;
+    }
+
+    chip::System::PacketBufferTLVWriter writer;
+    // Commands never need chained buffers, since they cannot be chunked.
+    writer.Init(std::move(buffer), /* useChainedBuffers = */ false);
+
+    ReturnErrorOnFailure(chip::app::DataModel::Encode(writer, chip::TLV::AnonymousTag(), encodableStruct));
+
+    ReturnErrorOnFailure(writer.Finalize(&buffer));
+
+    reader.Init(std::move(buffer));
+    return reader.Next(chip::TLV::kTLVType_Structure, chip::TLV::AnonymousTag());
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error
+{
+    chip::System::PacketBufferTLVReader reader;
+    CHIP_ERROR err = [self _encodeToTLVReader:reader];
+    if (err != CHIP_NO_ERROR) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:err];
+        }
+        return nil;
+    }
+
+    auto decodedObj = MTRDecodeDataValueDictionaryFromCHIPTLV(&reader);
+    if (decodedObj == nil) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INCORRECT_STATE];
+        }
+    }
+    return decodedObj;
+}
+@end
+
+@implementation MTRCameraAVStreamManagementClusterSetImageFlipVerticalParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _onOff = @(0);
+        _timedInvokeTimeoutMs = nil;
+        _serverSideProcessingTimeout = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRCameraAVStreamManagementClusterSetImageFlipVerticalParams alloc] init];
+
+    other.onOff = self.onOff;
+    other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs;
+    other.serverSideProcessingTimeout = self.serverSideProcessingTimeout;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: onOff:%@; >", NSStringFromClass([self class]), _onOff];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRCameraAVStreamManagementClusterSetImageFlipVerticalParams (InternalMethods)
+
+- (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader
+{
+    chip::app::Clusters::CameraAvStreamManagement::Commands::SetImageFlipVertical::Type encodableStruct;
+    ListFreer listFreer;
+    {
+        encodableStruct.onOff = self.onOff.boolValue;
+    }
+
+    auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0);
+    if (buffer.IsNull()) {
+        return CHIP_ERROR_NO_MEMORY;
+    }
+
+    chip::System::PacketBufferTLVWriter writer;
+    // Commands never need chained buffers, since they cannot be chunked.
+    writer.Init(std::move(buffer), /* useChainedBuffers = */ false);
+
+    ReturnErrorOnFailure(chip::app::DataModel::Encode(writer, chip::TLV::AnonymousTag(), encodableStruct));
+
+    ReturnErrorOnFailure(writer.Finalize(&buffer));
+
+    reader.Init(std::move(buffer));
+    return reader.Next(chip::TLV::kTLVType_Structure, chip::TLV::AnonymousTag());
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error
+{
+    chip::System::PacketBufferTLVReader reader;
+    CHIP_ERROR err = [self _encodeToTLVReader:reader];
+    if (err != CHIP_NO_ERROR) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:err];
+        }
+        return nil;
+    }
+
+    auto decodedObj = MTRDecodeDataValueDictionaryFromCHIPTLV(&reader);
+    if (decodedObj == nil) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INCORRECT_STATE];
+        }
+    }
+    return decodedObj;
+}
+@end
+
+@implementation MTRCameraAVSettingsUserLevelManagementClusterMptzSetParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _newPTZ = nil;
+
+        _presetID = nil;
+        _timedInvokeTimeoutMs = nil;
+        _serverSideProcessingTimeout = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRCameraAVSettingsUserLevelManagementClusterMptzSetParams alloc] init];
+
+    other.newPTZ = self.newPTZ;
+    other.presetID = self.presetID;
+    other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs;
+    other.serverSideProcessingTimeout = self.serverSideProcessingTimeout;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: newPTZ:%@; presetID:%@; >", NSStringFromClass([self class]), _newPTZ, _presetID];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRCameraAVSettingsUserLevelManagementClusterMptzSetParams (InternalMethods)
+
+- (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader
+{
+    chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::MptzSet::Type encodableStruct;
+    ListFreer listFreer;
+    {
+        if (self.newPTZ != nil) {
+            auto & definedValue_0 = encodableStruct.newPTZ.Emplace();
+            if (self.newPTZ.mPan != nil) {
+                auto & definedValue_2 = definedValue_0.MPan.Emplace();
+                if (self.newPTZ.mPan == nil) {
+                    definedValue_2.SetNull();
+                } else {
+                    auto & nonNullValue_3 = definedValue_2.SetNonNull();
+                    nonNullValue_3 = self.newPTZ.mPan.shortValue;
+                }
+            }
+            if (self.newPTZ.mTilt != nil) {
+                auto & definedValue_2 = definedValue_0.MTilt.Emplace();
+                if (self.newPTZ.mTilt == nil) {
+                    definedValue_2.SetNull();
+                } else {
+                    auto & nonNullValue_3 = definedValue_2.SetNonNull();
+                    nonNullValue_3 = self.newPTZ.mTilt.charValue;
+                }
+            }
+            if (self.newPTZ.mZoom != nil) {
+                auto & definedValue_2 = definedValue_0.MZoom.Emplace();
+                if (self.newPTZ.mZoom == nil) {
+                    definedValue_2.SetNull();
+                } else {
+                    auto & nonNullValue_3 = definedValue_2.SetNonNull();
+                    nonNullValue_3 = self.newPTZ.mZoom.unsignedShortValue;
+                }
+            }
+        }
+    }
+    {
+        if (self.presetID != nil) {
+            auto & definedValue_0 = encodableStruct.presetID.Emplace();
+            definedValue_0 = self.presetID.unsignedCharValue;
+        }
+    }
+
+    auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0);
+    if (buffer.IsNull()) {
+        return CHIP_ERROR_NO_MEMORY;
+    }
+
+    chip::System::PacketBufferTLVWriter writer;
+    // Commands never need chained buffers, since they cannot be chunked.
+    writer.Init(std::move(buffer), /* useChainedBuffers = */ false);
+
+    ReturnErrorOnFailure(chip::app::DataModel::Encode(writer, chip::TLV::AnonymousTag(), encodableStruct));
+
+    ReturnErrorOnFailure(writer.Finalize(&buffer));
+
+    reader.Init(std::move(buffer));
+    return reader.Next(chip::TLV::kTLVType_Structure, chip::TLV::AnonymousTag());
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error
+{
+    chip::System::PacketBufferTLVReader reader;
+    CHIP_ERROR err = [self _encodeToTLVReader:reader];
+    if (err != CHIP_NO_ERROR) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:err];
+        }
+        return nil;
+    }
+
+    auto decodedObj = MTRDecodeDataValueDictionaryFromCHIPTLV(&reader);
+    if (decodedObj == nil) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INCORRECT_STATE];
+        }
+    }
+    return decodedObj;
+}
+@end
+
+@implementation MTRCameraAVSettingsUserLevelManagementClusterMptzRelativeMoveParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _pan = @(0);
+
+        _tilt = @(0);
+
+        _zoom = @(0);
+        _timedInvokeTimeoutMs = nil;
+        _serverSideProcessingTimeout = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRCameraAVSettingsUserLevelManagementClusterMptzRelativeMoveParams alloc] init];
+
+    other.pan = self.pan;
+    other.tilt = self.tilt;
+    other.zoom = self.zoom;
+    other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs;
+    other.serverSideProcessingTimeout = self.serverSideProcessingTimeout;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: pan:%@; tilt:%@; zoom:%@; >", NSStringFromClass([self class]), _pan, _tilt, _zoom];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRCameraAVSettingsUserLevelManagementClusterMptzRelativeMoveParams (InternalMethods)
+
+- (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader
+{
+    chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::MptzRelativeMove::Type encodableStruct;
+    ListFreer listFreer;
+    {
+        encodableStruct.pan = self.pan.shortValue;
+    }
+    {
+        encodableStruct.tilt = self.tilt.shortValue;
+    }
+    {
+        encodableStruct.zoom = self.zoom.shortValue;
+    }
+
+    auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0);
+    if (buffer.IsNull()) {
+        return CHIP_ERROR_NO_MEMORY;
+    }
+
+    chip::System::PacketBufferTLVWriter writer;
+    // Commands never need chained buffers, since they cannot be chunked.
+    writer.Init(std::move(buffer), /* useChainedBuffers = */ false);
+
+    ReturnErrorOnFailure(chip::app::DataModel::Encode(writer, chip::TLV::AnonymousTag(), encodableStruct));
+
+    ReturnErrorOnFailure(writer.Finalize(&buffer));
+
+    reader.Init(std::move(buffer));
+    return reader.Next(chip::TLV::kTLVType_Structure, chip::TLV::AnonymousTag());
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error
+{
+    chip::System::PacketBufferTLVReader reader;
+    CHIP_ERROR err = [self _encodeToTLVReader:reader];
+    if (err != CHIP_NO_ERROR) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:err];
+        }
+        return nil;
+    }
+
+    auto decodedObj = MTRDecodeDataValueDictionaryFromCHIPTLV(&reader);
+    if (decodedObj == nil) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INCORRECT_STATE];
+        }
+    }
+    return decodedObj;
+}
+@end
+
+@implementation MTRCameraAVSettingsUserLevelManagementClusterSetAsPresetParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+        _timedInvokeTimeoutMs = nil;
+        _serverSideProcessingTimeout = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRCameraAVSettingsUserLevelManagementClusterSetAsPresetParams alloc] init];
+
+    other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs;
+    other.serverSideProcessingTimeout = self.serverSideProcessingTimeout;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: >", NSStringFromClass([self class])];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRCameraAVSettingsUserLevelManagementClusterSetAsPresetParams (InternalMethods)
+
+- (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader
+{
+    chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::SetAsPreset::Type encodableStruct;
+    ListFreer listFreer;
+
+    auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0);
+    if (buffer.IsNull()) {
+        return CHIP_ERROR_NO_MEMORY;
+    }
+
+    chip::System::PacketBufferTLVWriter writer;
+    // Commands never need chained buffers, since they cannot be chunked.
+    writer.Init(std::move(buffer), /* useChainedBuffers = */ false);
+
+    ReturnErrorOnFailure(chip::app::DataModel::Encode(writer, chip::TLV::AnonymousTag(), encodableStruct));
+
+    ReturnErrorOnFailure(writer.Finalize(&buffer));
+
+    reader.Init(std::move(buffer));
+    return reader.Next(chip::TLV::kTLVType_Structure, chip::TLV::AnonymousTag());
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error
+{
+    chip::System::PacketBufferTLVReader reader;
+    CHIP_ERROR err = [self _encodeToTLVReader:reader];
+    if (err != CHIP_NO_ERROR) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:err];
+        }
+        return nil;
+    }
+
+    auto decodedObj = MTRDecodeDataValueDictionaryFromCHIPTLV(&reader);
+    if (decodedObj == nil) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INCORRECT_STATE];
+        }
+    }
+    return decodedObj;
+}
+@end
+
+@implementation MTRCameraAVSettingsUserLevelManagementClusterDptzSetViewportParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _videoStreamID = @(0);
+
+        _viewport = [MTRCameraAVSettingsUserLevelManagementClusterViewportStruct new];
+        _timedInvokeTimeoutMs = nil;
+        _serverSideProcessingTimeout = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRCameraAVSettingsUserLevelManagementClusterDptzSetViewportParams alloc] init];
+
+    other.videoStreamID = self.videoStreamID;
+    other.viewport = self.viewport;
+    other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs;
+    other.serverSideProcessingTimeout = self.serverSideProcessingTimeout;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: videoStreamID:%@; viewport:%@; >", NSStringFromClass([self class]), _videoStreamID, _viewport];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRCameraAVSettingsUserLevelManagementClusterDptzSetViewportParams (InternalMethods)
+
+- (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader
+{
+    chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::DptzSetViewport::Type encodableStruct;
+    ListFreer listFreer;
+    {
+        encodableStruct.videoStreamID = self.videoStreamID.unsignedShortValue;
+    }
+    {
+        encodableStruct.viewport.x1 = self.viewport.x1.unsignedShortValue;
+        encodableStruct.viewport.y1 = self.viewport.y1.unsignedShortValue;
+        encodableStruct.viewport.x2 = self.viewport.x2.unsignedShortValue;
+        encodableStruct.viewport.y2 = self.viewport.y2.unsignedShortValue;
+    }
+
+    auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0);
+    if (buffer.IsNull()) {
+        return CHIP_ERROR_NO_MEMORY;
+    }
+
+    chip::System::PacketBufferTLVWriter writer;
+    // Commands never need chained buffers, since they cannot be chunked.
+    writer.Init(std::move(buffer), /* useChainedBuffers = */ false);
+
+    ReturnErrorOnFailure(chip::app::DataModel::Encode(writer, chip::TLV::AnonymousTag(), encodableStruct));
+
+    ReturnErrorOnFailure(writer.Finalize(&buffer));
+
+    reader.Init(std::move(buffer));
+    return reader.Next(chip::TLV::kTLVType_Structure, chip::TLV::AnonymousTag());
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error
+{
+    chip::System::PacketBufferTLVReader reader;
+    CHIP_ERROR err = [self _encodeToTLVReader:reader];
+    if (err != CHIP_NO_ERROR) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:err];
+        }
+        return nil;
+    }
+
+    auto decodedObj = MTRDecodeDataValueDictionaryFromCHIPTLV(&reader);
+    if (decodedObj == nil) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INCORRECT_STATE];
+        }
+    }
+    return decodedObj;
+}
+@end
+
+@implementation MTRCameraAVSettingsUserLevelManagementClusterDptzRelativeMoveParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _videoStreamID = @(0);
+
+        _pan = @(0);
+
+        _tilt = @(0);
+
+        _zoom = @(0);
+        _timedInvokeTimeoutMs = nil;
+        _serverSideProcessingTimeout = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRCameraAVSettingsUserLevelManagementClusterDptzRelativeMoveParams alloc] init];
+
+    other.videoStreamID = self.videoStreamID;
+    other.pan = self.pan;
+    other.tilt = self.tilt;
+    other.zoom = self.zoom;
+    other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs;
+    other.serverSideProcessingTimeout = self.serverSideProcessingTimeout;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: videoStreamID:%@; pan:%@; tilt:%@; zoom:%@; >", NSStringFromClass([self class]), _videoStreamID, _pan, _tilt, _zoom];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRCameraAVSettingsUserLevelManagementClusterDptzRelativeMoveParams (InternalMethods)
+
+- (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader
+{
+    chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::DptzRelativeMove::Type encodableStruct;
+    ListFreer listFreer;
+    {
+        encodableStruct.videoStreamID = self.videoStreamID.unsignedShortValue;
+    }
+    {
+        encodableStruct.pan = self.pan.shortValue;
+    }
+    {
+        encodableStruct.tilt = self.tilt.shortValue;
+    }
+    {
+        encodableStruct.zoom = self.zoom.charValue;
+    }
+
+    auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0);
+    if (buffer.IsNull()) {
+        return CHIP_ERROR_NO_MEMORY;
+    }
+
+    chip::System::PacketBufferTLVWriter writer;
+    // Commands never need chained buffers, since they cannot be chunked.
+    writer.Init(std::move(buffer), /* useChainedBuffers = */ false);
+
+    ReturnErrorOnFailure(chip::app::DataModel::Encode(writer, chip::TLV::AnonymousTag(), encodableStruct));
+
+    ReturnErrorOnFailure(writer.Finalize(&buffer));
+
+    reader.Init(std::move(buffer));
+    return reader.Next(chip::TLV::kTLVType_Structure, chip::TLV::AnonymousTag());
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error
+{
+    chip::System::PacketBufferTLVReader reader;
+    CHIP_ERROR err = [self _encodeToTLVReader:reader];
+    if (err != CHIP_NO_ERROR) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:err];
+        }
+        return nil;
+    }
+
+    auto decodedObj = MTRDecodeDataValueDictionaryFromCHIPTLV(&reader);
+    if (decodedObj == nil) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INCORRECT_STATE];
+        }
+    }
+    return decodedObj;
+}
+@end
+
+@implementation MTRWebRTCTransportProviderClusterWebRTCSolicitOfferParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _streamType = @(0);
+
+        _videoStreamID = nil;
+
+        _audioStreamID = nil;
+
+        _iceServers = nil;
+
+        _iceTransportPolicy = nil;
+
+        _metadataOptions = nil;
+        _timedInvokeTimeoutMs = nil;
+        _serverSideProcessingTimeout = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRWebRTCTransportProviderClusterWebRTCSolicitOfferParams alloc] init];
+
+    other.streamType = self.streamType;
+    other.videoStreamID = self.videoStreamID;
+    other.audioStreamID = self.audioStreamID;
+    other.iceServers = self.iceServers;
+    other.iceTransportPolicy = self.iceTransportPolicy;
+    other.metadataOptions = self.metadataOptions;
+    other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs;
+    other.serverSideProcessingTimeout = self.serverSideProcessingTimeout;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: streamType:%@; videoStreamID:%@; audioStreamID:%@; iceServers:%@; iceTransportPolicy:%@; metadataOptions:%@; >", NSStringFromClass([self class]), _streamType, _videoStreamID, _audioStreamID, _iceServers, _iceTransportPolicy, _metadataOptions];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRWebRTCTransportProviderClusterWebRTCSolicitOfferParams (InternalMethods)
+
+- (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader
+{
+    chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCSolicitOffer::Type encodableStruct;
+    ListFreer listFreer;
+    {
+        encodableStruct.streamType = static_cast<std::remove_reference_t<decltype(encodableStruct.streamType)>>(self.streamType.unsignedCharValue);
+    }
+    {
+        if (self.videoStreamID != nil) {
+            auto & definedValue_0 = encodableStruct.videoStreamID.Emplace();
+            if (self.videoStreamID == nil) {
+                definedValue_0.SetNull();
+            } else {
+                auto & nonNullValue_1 = definedValue_0.SetNonNull();
+                nonNullValue_1 = self.videoStreamID.unsignedShortValue;
+            }
+        }
+    }
+    {
+        if (self.audioStreamID != nil) {
+            auto & definedValue_0 = encodableStruct.audioStreamID.Emplace();
+            if (self.audioStreamID == nil) {
+                definedValue_0.SetNull();
+            } else {
+                auto & nonNullValue_1 = definedValue_0.SetNonNull();
+                nonNullValue_1 = self.audioStreamID.unsignedShortValue;
+            }
+        }
+    }
+    {
+        if (self.iceServers != nil) {
+            auto & definedValue_0 = encodableStruct.ICEServers.Emplace();
+            {
+                using ListType_1 = std::remove_reference_t<decltype(definedValue_0)>;
+                using ListMemberType_1 = ListMemberTypeGetter<ListType_1>::Type;
+                if (self.iceServers.count != 0) {
+                    auto * listHolder_1 = new ListHolder<ListMemberType_1>(self.iceServers.count);
+                    if (listHolder_1 == nullptr || listHolder_1->mList == nullptr) {
+                        return CHIP_ERROR_INVALID_ARGUMENT;
+                    }
+                    listFreer.add(listHolder_1);
+                    for (size_t i_1 = 0; i_1 < self.iceServers.count; ++i_1) {
+                        if (![self.iceServers[i_1] isKindOfClass:[MTRWebRTCTransportProviderClusterICEServerStruct class]]) {
+                            // Wrong kind of value.
+                            return CHIP_ERROR_INVALID_ARGUMENT;
+                        }
+                        auto element_1 = (MTRWebRTCTransportProviderClusterICEServerStruct *) self.iceServers[i_1];
+                        {
+                            using ListType_3 = std::remove_reference_t<decltype(listHolder_1->mList[i_1].urls)>;
+                            using ListMemberType_3 = ListMemberTypeGetter<ListType_3>::Type;
+                            if (element_1.urls.count != 0) {
+                                auto * listHolder_3 = new ListHolder<ListMemberType_3>(element_1.urls.count);
+                                if (listHolder_3 == nullptr || listHolder_3->mList == nullptr) {
+                                    return CHIP_ERROR_INVALID_ARGUMENT;
+                                }
+                                listFreer.add(listHolder_3);
+                                for (size_t i_3 = 0; i_3 < element_1.urls.count; ++i_3) {
+                                    if (![element_1.urls[i_3] isKindOfClass:[NSString class]]) {
+                                        // Wrong kind of value.
+                                        return CHIP_ERROR_INVALID_ARGUMENT;
+                                    }
+                                    auto element_3 = (NSString *) element_1.urls[i_3];
+                                    listHolder_3->mList[i_3] = AsCharSpan(element_3);
+                                }
+                                listHolder_1->mList[i_1].urls = ListType_3(listHolder_3->mList, element_1.urls.count);
+                            } else {
+                                listHolder_1->mList[i_1].urls = ListType_3();
+                            }
+                        }
+                        if (element_1.username != nil) {
+                            auto & definedValue_3 = listHolder_1->mList[i_1].username.Emplace();
+                            definedValue_3 = AsCharSpan(element_1.username);
+                        }
+                        if (element_1.credential != nil) {
+                            auto & definedValue_3 = listHolder_1->mList[i_1].credential.Emplace();
+                            definedValue_3 = AsCharSpan(element_1.credential);
+                        }
+                        if (element_1.caid != nil) {
+                            auto & definedValue_3 = listHolder_1->mList[i_1].caid.Emplace();
+                            definedValue_3 = element_1.caid.unsignedShortValue;
+                        }
+                    }
+                    definedValue_0 = ListType_1(listHolder_1->mList, self.iceServers.count);
+                } else {
+                    definedValue_0 = ListType_1();
+                }
+            }
+        }
+    }
+    {
+        if (self.iceTransportPolicy != nil) {
+            auto & definedValue_0 = encodableStruct.ICETransportPolicy.Emplace();
+            definedValue_0 = AsCharSpan(self.iceTransportPolicy);
+        }
+    }
+    {
+        if (self.metadataOptions != nil) {
+            auto & definedValue_0 = encodableStruct.metadataOptions.Emplace();
+            definedValue_0 = static_cast<std::remove_reference_t<decltype(definedValue_0)>>(self.metadataOptions.unsignedCharValue);
+        }
+    }
+
+    auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0);
+    if (buffer.IsNull()) {
+        return CHIP_ERROR_NO_MEMORY;
+    }
+
+    chip::System::PacketBufferTLVWriter writer;
+    // Commands never need chained buffers, since they cannot be chunked.
+    writer.Init(std::move(buffer), /* useChainedBuffers = */ false);
+
+    ReturnErrorOnFailure(chip::app::DataModel::Encode(writer, chip::TLV::AnonymousTag(), encodableStruct));
+
+    ReturnErrorOnFailure(writer.Finalize(&buffer));
+
+    reader.Init(std::move(buffer));
+    return reader.Next(chip::TLV::kTLVType_Structure, chip::TLV::AnonymousTag());
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error
+{
+    chip::System::PacketBufferTLVReader reader;
+    CHIP_ERROR err = [self _encodeToTLVReader:reader];
+    if (err != CHIP_NO_ERROR) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:err];
+        }
+        return nil;
+    }
+
+    auto decodedObj = MTRDecodeDataValueDictionaryFromCHIPTLV(&reader);
+    if (decodedObj == nil) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INCORRECT_STATE];
+        }
+    }
+    return decodedObj;
+}
+@end
+
+@implementation MTRWebRTCTransportProviderClusterWebRTCSolicitOfferResponseParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _webRTCSessionID = @(0);
+
+        _deferredOffer = @(0);
+
+        _videoStreamID = nil;
+
+        _audioStreamID = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRWebRTCTransportProviderClusterWebRTCSolicitOfferResponseParams alloc] init];
+
+    other.webRTCSessionID = self.webRTCSessionID;
+    other.deferredOffer = self.deferredOffer;
+    other.videoStreamID = self.videoStreamID;
+    other.audioStreamID = self.audioStreamID;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: webRTCSessionID:%@; deferredOffer:%@; videoStreamID:%@; audioStreamID:%@; >", NSStringFromClass([self class]), _webRTCSessionID, _deferredOffer, _videoStreamID, _audioStreamID];
+    return descriptionString;
+}
+
+- (nullable instancetype)initWithResponseValue:(NSDictionary<NSString *, id> *)responseValue
+                                         error:(NSError * __autoreleasing *)error
+{
+    if (!(self = [super init])) {
+        return nil;
+    }
+
+    using DecodableType = chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCSolicitOfferResponse::DecodableType;
+    chip::System::PacketBufferHandle buffer = [MTRBaseDevice _responseDataForCommand:responseValue
+                                                                           clusterID:DecodableType::GetClusterId()
+                                                                           commandID:DecodableType::GetCommandId()
+                                                                               error:error];
+    if (buffer.IsNull()) {
+        return nil;
+    }
+
+    chip::TLV::TLVReader reader;
+    reader.Init(buffer->Start(), buffer->DataLength());
+
+    CHIP_ERROR err = reader.Next(chip::TLV::AnonymousTag());
+    if (err == CHIP_NO_ERROR) {
+        DecodableType decodedStruct;
+        err = chip::app::DataModel::Decode(reader, decodedStruct);
+        if (err == CHIP_NO_ERROR) {
+            err = [self _setFieldsFromDecodableStruct:decodedStruct];
+            if (err == CHIP_NO_ERROR) {
+                return self;
+            }
+        }
+    }
+
+    NSString * errorStr = [NSString stringWithFormat:@"Command payload decoding failed: %s", err.AsString()];
+    MTR_LOG_ERROR("%s", errorStr.UTF8String);
+    if (error != nil) {
+        NSDictionary * userInfo = @{ NSLocalizedFailureReasonErrorKey : NSLocalizedString(errorStr, nil) };
+        *error = [NSError errorWithDomain:MTRErrorDomain code:MTRErrorCodeSchemaMismatch userInfo:userInfo];
+    }
+    return nil;
+}
+
+@end
+
+@implementation MTRWebRTCTransportProviderClusterWebRTCSolicitOfferResponseParams (InternalMethods)
+
+- (CHIP_ERROR)_setFieldsFromDecodableStruct:(const chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCSolicitOfferResponse::DecodableType &)decodableStruct
+{
+    {
+        self.webRTCSessionID = [NSNumber numberWithUnsignedShort:decodableStruct.webRTCSessionID];
+    }
+    {
+        self.deferredOffer = [NSNumber numberWithBool:decodableStruct.deferredOffer];
+    }
+    {
+        if (decodableStruct.videoStreamID.HasValue()) {
+            if (decodableStruct.videoStreamID.Value().IsNull()) {
+                self.videoStreamID = nil;
+            } else {
+                self.videoStreamID = [NSNumber numberWithUnsignedShort:decodableStruct.videoStreamID.Value().Value()];
+            }
+        } else {
+            self.videoStreamID = nil;
+        }
+    }
+    {
+        if (decodableStruct.audioStreamID.HasValue()) {
+            if (decodableStruct.audioStreamID.Value().IsNull()) {
+                self.audioStreamID = nil;
+            } else {
+                self.audioStreamID = [NSNumber numberWithUnsignedShort:decodableStruct.audioStreamID.Value().Value()];
+            }
+        } else {
+            self.audioStreamID = nil;
+        }
+    }
+    return CHIP_NO_ERROR;
+}
+
+@end
+
+@implementation MTRWebRTCTransportProviderClusterWebRTCProvideOfferParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _webRTCSessionID = nil;
+
+        _sdp = @"";
+
+        _streamType = @(0);
+
+        _videoStreamID = nil;
+
+        _audioStreamID = nil;
+
+        _iceServers = nil;
+
+        _iceTransportPolicy = nil;
+
+        _metadataOptions = nil;
+        _timedInvokeTimeoutMs = nil;
+        _serverSideProcessingTimeout = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRWebRTCTransportProviderClusterWebRTCProvideOfferParams alloc] init];
+
+    other.webRTCSessionID = self.webRTCSessionID;
+    other.sdp = self.sdp;
+    other.streamType = self.streamType;
+    other.videoStreamID = self.videoStreamID;
+    other.audioStreamID = self.audioStreamID;
+    other.iceServers = self.iceServers;
+    other.iceTransportPolicy = self.iceTransportPolicy;
+    other.metadataOptions = self.metadataOptions;
+    other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs;
+    other.serverSideProcessingTimeout = self.serverSideProcessingTimeout;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: webRTCSessionID:%@; sdp:%@; streamType:%@; videoStreamID:%@; audioStreamID:%@; iceServers:%@; iceTransportPolicy:%@; metadataOptions:%@; >", NSStringFromClass([self class]), _webRTCSessionID, _sdp, _streamType, _videoStreamID, _audioStreamID, _iceServers, _iceTransportPolicy, _metadataOptions];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRWebRTCTransportProviderClusterWebRTCProvideOfferParams (InternalMethods)
+
+- (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader
+{
+    chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCProvideOffer::Type encodableStruct;
+    ListFreer listFreer;
+    {
+        if (self.webRTCSessionID == nil) {
+            encodableStruct.webRTCSessionID.SetNull();
+        } else {
+            auto & nonNullValue_0 = encodableStruct.webRTCSessionID.SetNonNull();
+            nonNullValue_0 = self.webRTCSessionID.unsignedShortValue;
+        }
+    }
+    {
+        encodableStruct.sdp = AsCharSpan(self.sdp);
+    }
+    {
+        encodableStruct.streamType = static_cast<std::remove_reference_t<decltype(encodableStruct.streamType)>>(self.streamType.unsignedCharValue);
+    }
+    {
+        if (self.videoStreamID != nil) {
+            auto & definedValue_0 = encodableStruct.videoStreamID.Emplace();
+            if (self.videoStreamID == nil) {
+                definedValue_0.SetNull();
+            } else {
+                auto & nonNullValue_1 = definedValue_0.SetNonNull();
+                nonNullValue_1 = self.videoStreamID.unsignedShortValue;
+            }
+        }
+    }
+    {
+        if (self.audioStreamID != nil) {
+            auto & definedValue_0 = encodableStruct.audioStreamID.Emplace();
+            if (self.audioStreamID == nil) {
+                definedValue_0.SetNull();
+            } else {
+                auto & nonNullValue_1 = definedValue_0.SetNonNull();
+                nonNullValue_1 = self.audioStreamID.unsignedShortValue;
+            }
+        }
+    }
+    {
+        if (self.iceServers != nil) {
+            auto & definedValue_0 = encodableStruct.ICEServers.Emplace();
+            {
+                using ListType_1 = std::remove_reference_t<decltype(definedValue_0)>;
+                using ListMemberType_1 = ListMemberTypeGetter<ListType_1>::Type;
+                if (self.iceServers.count != 0) {
+                    auto * listHolder_1 = new ListHolder<ListMemberType_1>(self.iceServers.count);
+                    if (listHolder_1 == nullptr || listHolder_1->mList == nullptr) {
+                        return CHIP_ERROR_INVALID_ARGUMENT;
+                    }
+                    listFreer.add(listHolder_1);
+                    for (size_t i_1 = 0; i_1 < self.iceServers.count; ++i_1) {
+                        if (![self.iceServers[i_1] isKindOfClass:[MTRWebRTCTransportProviderClusterICEServerStruct class]]) {
+                            // Wrong kind of value.
+                            return CHIP_ERROR_INVALID_ARGUMENT;
+                        }
+                        auto element_1 = (MTRWebRTCTransportProviderClusterICEServerStruct *) self.iceServers[i_1];
+                        {
+                            using ListType_3 = std::remove_reference_t<decltype(listHolder_1->mList[i_1].urls)>;
+                            using ListMemberType_3 = ListMemberTypeGetter<ListType_3>::Type;
+                            if (element_1.urls.count != 0) {
+                                auto * listHolder_3 = new ListHolder<ListMemberType_3>(element_1.urls.count);
+                                if (listHolder_3 == nullptr || listHolder_3->mList == nullptr) {
+                                    return CHIP_ERROR_INVALID_ARGUMENT;
+                                }
+                                listFreer.add(listHolder_3);
+                                for (size_t i_3 = 0; i_3 < element_1.urls.count; ++i_3) {
+                                    if (![element_1.urls[i_3] isKindOfClass:[NSString class]]) {
+                                        // Wrong kind of value.
+                                        return CHIP_ERROR_INVALID_ARGUMENT;
+                                    }
+                                    auto element_3 = (NSString *) element_1.urls[i_3];
+                                    listHolder_3->mList[i_3] = AsCharSpan(element_3);
+                                }
+                                listHolder_1->mList[i_1].urls = ListType_3(listHolder_3->mList, element_1.urls.count);
+                            } else {
+                                listHolder_1->mList[i_1].urls = ListType_3();
+                            }
+                        }
+                        if (element_1.username != nil) {
+                            auto & definedValue_3 = listHolder_1->mList[i_1].username.Emplace();
+                            definedValue_3 = AsCharSpan(element_1.username);
+                        }
+                        if (element_1.credential != nil) {
+                            auto & definedValue_3 = listHolder_1->mList[i_1].credential.Emplace();
+                            definedValue_3 = AsCharSpan(element_1.credential);
+                        }
+                        if (element_1.caid != nil) {
+                            auto & definedValue_3 = listHolder_1->mList[i_1].caid.Emplace();
+                            definedValue_3 = element_1.caid.unsignedShortValue;
+                        }
+                    }
+                    definedValue_0 = ListType_1(listHolder_1->mList, self.iceServers.count);
+                } else {
+                    definedValue_0 = ListType_1();
+                }
+            }
+        }
+    }
+    {
+        if (self.iceTransportPolicy != nil) {
+            auto & definedValue_0 = encodableStruct.ICETransportPolicy.Emplace();
+            definedValue_0 = AsCharSpan(self.iceTransportPolicy);
+        }
+    }
+    {
+        if (self.metadataOptions != nil) {
+            auto & definedValue_0 = encodableStruct.metadataOptions.Emplace();
+            definedValue_0 = static_cast<std::remove_reference_t<decltype(definedValue_0)>>(self.metadataOptions.unsignedCharValue);
+        }
+    }
+
+    auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0);
+    if (buffer.IsNull()) {
+        return CHIP_ERROR_NO_MEMORY;
+    }
+
+    chip::System::PacketBufferTLVWriter writer;
+    // Commands never need chained buffers, since they cannot be chunked.
+    writer.Init(std::move(buffer), /* useChainedBuffers = */ false);
+
+    ReturnErrorOnFailure(chip::app::DataModel::Encode(writer, chip::TLV::AnonymousTag(), encodableStruct));
+
+    ReturnErrorOnFailure(writer.Finalize(&buffer));
+
+    reader.Init(std::move(buffer));
+    return reader.Next(chip::TLV::kTLVType_Structure, chip::TLV::AnonymousTag());
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error
+{
+    chip::System::PacketBufferTLVReader reader;
+    CHIP_ERROR err = [self _encodeToTLVReader:reader];
+    if (err != CHIP_NO_ERROR) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:err];
+        }
+        return nil;
+    }
+
+    auto decodedObj = MTRDecodeDataValueDictionaryFromCHIPTLV(&reader);
+    if (decodedObj == nil) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INCORRECT_STATE];
+        }
+    }
+    return decodedObj;
+}
+@end
+
+@implementation MTRWebRTCTransportProviderClusterWebRTCProvideOfferResponseParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _webRTCSessionID = @(0);
+
+        _videoStreamID = @(0);
+
+        _audioStreamID = @(0);
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRWebRTCTransportProviderClusterWebRTCProvideOfferResponseParams alloc] init];
+
+    other.webRTCSessionID = self.webRTCSessionID;
+    other.videoStreamID = self.videoStreamID;
+    other.audioStreamID = self.audioStreamID;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: webRTCSessionID:%@; videoStreamID:%@; audioStreamID:%@; >", NSStringFromClass([self class]), _webRTCSessionID, _videoStreamID, _audioStreamID];
+    return descriptionString;
+}
+
+- (nullable instancetype)initWithResponseValue:(NSDictionary<NSString *, id> *)responseValue
+                                         error:(NSError * __autoreleasing *)error
+{
+    if (!(self = [super init])) {
+        return nil;
+    }
+
+    using DecodableType = chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCProvideOfferResponse::DecodableType;
+    chip::System::PacketBufferHandle buffer = [MTRBaseDevice _responseDataForCommand:responseValue
+                                                                           clusterID:DecodableType::GetClusterId()
+                                                                           commandID:DecodableType::GetCommandId()
+                                                                               error:error];
+    if (buffer.IsNull()) {
+        return nil;
+    }
+
+    chip::TLV::TLVReader reader;
+    reader.Init(buffer->Start(), buffer->DataLength());
+
+    CHIP_ERROR err = reader.Next(chip::TLV::AnonymousTag());
+    if (err == CHIP_NO_ERROR) {
+        DecodableType decodedStruct;
+        err = chip::app::DataModel::Decode(reader, decodedStruct);
+        if (err == CHIP_NO_ERROR) {
+            err = [self _setFieldsFromDecodableStruct:decodedStruct];
+            if (err == CHIP_NO_ERROR) {
+                return self;
+            }
+        }
+    }
+
+    NSString * errorStr = [NSString stringWithFormat:@"Command payload decoding failed: %s", err.AsString()];
+    MTR_LOG_ERROR("%s", errorStr.UTF8String);
+    if (error != nil) {
+        NSDictionary * userInfo = @{ NSLocalizedFailureReasonErrorKey : NSLocalizedString(errorStr, nil) };
+        *error = [NSError errorWithDomain:MTRErrorDomain code:MTRErrorCodeSchemaMismatch userInfo:userInfo];
+    }
+    return nil;
+}
+
+@end
+
+@implementation MTRWebRTCTransportProviderClusterWebRTCProvideOfferResponseParams (InternalMethods)
+
+- (CHIP_ERROR)_setFieldsFromDecodableStruct:(const chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCProvideOfferResponse::DecodableType &)decodableStruct
+{
+    {
+        self.webRTCSessionID = [NSNumber numberWithUnsignedShort:decodableStruct.webRTCSessionID];
+    }
+    {
+        self.videoStreamID = [NSNumber numberWithUnsignedShort:decodableStruct.videoStreamID];
+    }
+    {
+        self.audioStreamID = [NSNumber numberWithUnsignedShort:decodableStruct.audioStreamID];
+    }
+    return CHIP_NO_ERROR;
+}
+
+@end
+
+@implementation MTRWebRTCTransportProviderClusterWebRTCProvideAnswerParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _webRTCSessionID = @(0);
+
+        _sdp = @"";
+        _timedInvokeTimeoutMs = nil;
+        _serverSideProcessingTimeout = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRWebRTCTransportProviderClusterWebRTCProvideAnswerParams alloc] init];
+
+    other.webRTCSessionID = self.webRTCSessionID;
+    other.sdp = self.sdp;
+    other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs;
+    other.serverSideProcessingTimeout = self.serverSideProcessingTimeout;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: webRTCSessionID:%@; sdp:%@; >", NSStringFromClass([self class]), _webRTCSessionID, _sdp];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRWebRTCTransportProviderClusterWebRTCProvideAnswerParams (InternalMethods)
+
+- (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader
+{
+    chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCProvideAnswer::Type encodableStruct;
+    ListFreer listFreer;
+    {
+        encodableStruct.webRTCSessionID = self.webRTCSessionID.unsignedShortValue;
+    }
+    {
+        encodableStruct.sdp = AsCharSpan(self.sdp);
+    }
+
+    auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0);
+    if (buffer.IsNull()) {
+        return CHIP_ERROR_NO_MEMORY;
+    }
+
+    chip::System::PacketBufferTLVWriter writer;
+    // Commands never need chained buffers, since they cannot be chunked.
+    writer.Init(std::move(buffer), /* useChainedBuffers = */ false);
+
+    ReturnErrorOnFailure(chip::app::DataModel::Encode(writer, chip::TLV::AnonymousTag(), encodableStruct));
+
+    ReturnErrorOnFailure(writer.Finalize(&buffer));
+
+    reader.Init(std::move(buffer));
+    return reader.Next(chip::TLV::kTLVType_Structure, chip::TLV::AnonymousTag());
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error
+{
+    chip::System::PacketBufferTLVReader reader;
+    CHIP_ERROR err = [self _encodeToTLVReader:reader];
+    if (err != CHIP_NO_ERROR) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:err];
+        }
+        return nil;
+    }
+
+    auto decodedObj = MTRDecodeDataValueDictionaryFromCHIPTLV(&reader);
+    if (decodedObj == nil) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INCORRECT_STATE];
+        }
+    }
+    return decodedObj;
+}
+@end
+
+@implementation MTRWebRTCTransportProviderClusterWebRTCProvideICECandidateParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _webRTCSessionID = @(0);
+
+        _iceCandidate = @"";
+        _timedInvokeTimeoutMs = nil;
+        _serverSideProcessingTimeout = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRWebRTCTransportProviderClusterWebRTCProvideICECandidateParams alloc] init];
+
+    other.webRTCSessionID = self.webRTCSessionID;
+    other.iceCandidate = self.iceCandidate;
+    other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs;
+    other.serverSideProcessingTimeout = self.serverSideProcessingTimeout;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: webRTCSessionID:%@; iceCandidate:%@; >", NSStringFromClass([self class]), _webRTCSessionID, _iceCandidate];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRWebRTCTransportProviderClusterWebRTCProvideICECandidateParams (InternalMethods)
+
+- (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader
+{
+    chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCProvideICECandidate::Type encodableStruct;
+    ListFreer listFreer;
+    {
+        encodableStruct.webRTCSessionID = self.webRTCSessionID.unsignedShortValue;
+    }
+    {
+        encodableStruct.ICECandidate = AsCharSpan(self.iceCandidate);
+    }
+
+    auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0);
+    if (buffer.IsNull()) {
+        return CHIP_ERROR_NO_MEMORY;
+    }
+
+    chip::System::PacketBufferTLVWriter writer;
+    // Commands never need chained buffers, since they cannot be chunked.
+    writer.Init(std::move(buffer), /* useChainedBuffers = */ false);
+
+    ReturnErrorOnFailure(chip::app::DataModel::Encode(writer, chip::TLV::AnonymousTag(), encodableStruct));
+
+    ReturnErrorOnFailure(writer.Finalize(&buffer));
+
+    reader.Init(std::move(buffer));
+    return reader.Next(chip::TLV::kTLVType_Structure, chip::TLV::AnonymousTag());
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error
+{
+    chip::System::PacketBufferTLVReader reader;
+    CHIP_ERROR err = [self _encodeToTLVReader:reader];
+    if (err != CHIP_NO_ERROR) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:err];
+        }
+        return nil;
+    }
+
+    auto decodedObj = MTRDecodeDataValueDictionaryFromCHIPTLV(&reader);
+    if (decodedObj == nil) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INCORRECT_STATE];
+        }
+    }
+    return decodedObj;
+}
+@end
+
+@implementation MTRWebRTCTransportProviderClusterWebRTCEndSessionParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _webRTCSessionID = @(0);
+
+        _reason = @(0);
+        _timedInvokeTimeoutMs = nil;
+        _serverSideProcessingTimeout = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRWebRTCTransportProviderClusterWebRTCEndSessionParams alloc] init];
+
+    other.webRTCSessionID = self.webRTCSessionID;
+    other.reason = self.reason;
+    other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs;
+    other.serverSideProcessingTimeout = self.serverSideProcessingTimeout;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: webRTCSessionID:%@; reason:%@; >", NSStringFromClass([self class]), _webRTCSessionID, _reason];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRWebRTCTransportProviderClusterWebRTCEndSessionParams (InternalMethods)
+
+- (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader
+{
+    chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCEndSession::Type encodableStruct;
+    ListFreer listFreer;
+    {
+        encodableStruct.webRTCSessionID = self.webRTCSessionID.unsignedShortValue;
+    }
+    {
+        encodableStruct.reason = static_cast<std::remove_reference_t<decltype(encodableStruct.reason)>>(self.reason.unsignedCharValue);
+    }
+
+    auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0);
+    if (buffer.IsNull()) {
+        return CHIP_ERROR_NO_MEMORY;
+    }
+
+    chip::System::PacketBufferTLVWriter writer;
+    // Commands never need chained buffers, since they cannot be chunked.
+    writer.Init(std::move(buffer), /* useChainedBuffers = */ false);
+
+    ReturnErrorOnFailure(chip::app::DataModel::Encode(writer, chip::TLV::AnonymousTag(), encodableStruct));
+
+    ReturnErrorOnFailure(writer.Finalize(&buffer));
+
+    reader.Init(std::move(buffer));
+    return reader.Next(chip::TLV::kTLVType_Structure, chip::TLV::AnonymousTag());
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error
+{
+    chip::System::PacketBufferTLVReader reader;
+    CHIP_ERROR err = [self _encodeToTLVReader:reader];
+    if (err != CHIP_NO_ERROR) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:err];
+        }
+        return nil;
+    }
+
+    auto decodedObj = MTRDecodeDataValueDictionaryFromCHIPTLV(&reader);
+    if (decodedObj == nil) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INCORRECT_STATE];
+        }
+    }
+    return decodedObj;
+}
+@end
+
+@implementation MTRWebRTCTransportRequestorClusterWebRTCOfferParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _webRTCSessionID = @(0);
+
+        _sdp = @"";
+
+        _iceServers = nil;
+
+        _iceTransportPolicy = nil;
+        _timedInvokeTimeoutMs = nil;
+        _serverSideProcessingTimeout = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRWebRTCTransportRequestorClusterWebRTCOfferParams alloc] init];
+
+    other.webRTCSessionID = self.webRTCSessionID;
+    other.sdp = self.sdp;
+    other.iceServers = self.iceServers;
+    other.iceTransportPolicy = self.iceTransportPolicy;
+    other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs;
+    other.serverSideProcessingTimeout = self.serverSideProcessingTimeout;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: webRTCSessionID:%@; sdp:%@; iceServers:%@; iceTransportPolicy:%@; >", NSStringFromClass([self class]), _webRTCSessionID, _sdp, _iceServers, _iceTransportPolicy];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRWebRTCTransportRequestorClusterWebRTCOfferParams (InternalMethods)
+
+- (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader
+{
+    chip::app::Clusters::WebRTCTransportRequestor::Commands::WebRTCOffer::Type encodableStruct;
+    ListFreer listFreer;
+    {
+        encodableStruct.webRTCSessionID = self.webRTCSessionID.unsignedShortValue;
+    }
+    {
+        encodableStruct.sdp = AsCharSpan(self.sdp);
+    }
+    {
+        if (self.iceServers != nil) {
+            auto & definedValue_0 = encodableStruct.ICEServers.Emplace();
+            {
+                using ListType_1 = std::remove_reference_t<decltype(definedValue_0)>;
+                using ListMemberType_1 = ListMemberTypeGetter<ListType_1>::Type;
+                if (self.iceServers.count != 0) {
+                    auto * listHolder_1 = new ListHolder<ListMemberType_1>(self.iceServers.count);
+                    if (listHolder_1 == nullptr || listHolder_1->mList == nullptr) {
+                        return CHIP_ERROR_INVALID_ARGUMENT;
+                    }
+                    listFreer.add(listHolder_1);
+                    for (size_t i_1 = 0; i_1 < self.iceServers.count; ++i_1) {
+                        if (![self.iceServers[i_1] isKindOfClass:[MTRWebRTCTransportRequestorClusterICEServerStruct class]]) {
+                            // Wrong kind of value.
+                            return CHIP_ERROR_INVALID_ARGUMENT;
+                        }
+                        auto element_1 = (MTRWebRTCTransportRequestorClusterICEServerStruct *) self.iceServers[i_1];
+                        {
+                            using ListType_3 = std::remove_reference_t<decltype(listHolder_1->mList[i_1].urls)>;
+                            using ListMemberType_3 = ListMemberTypeGetter<ListType_3>::Type;
+                            if (element_1.urls.count != 0) {
+                                auto * listHolder_3 = new ListHolder<ListMemberType_3>(element_1.urls.count);
+                                if (listHolder_3 == nullptr || listHolder_3->mList == nullptr) {
+                                    return CHIP_ERROR_INVALID_ARGUMENT;
+                                }
+                                listFreer.add(listHolder_3);
+                                for (size_t i_3 = 0; i_3 < element_1.urls.count; ++i_3) {
+                                    if (![element_1.urls[i_3] isKindOfClass:[NSString class]]) {
+                                        // Wrong kind of value.
+                                        return CHIP_ERROR_INVALID_ARGUMENT;
+                                    }
+                                    auto element_3 = (NSString *) element_1.urls[i_3];
+                                    listHolder_3->mList[i_3] = AsCharSpan(element_3);
+                                }
+                                listHolder_1->mList[i_1].urls = ListType_3(listHolder_3->mList, element_1.urls.count);
+                            } else {
+                                listHolder_1->mList[i_1].urls = ListType_3();
+                            }
+                        }
+                        if (element_1.username != nil) {
+                            auto & definedValue_3 = listHolder_1->mList[i_1].username.Emplace();
+                            definedValue_3 = AsCharSpan(element_1.username);
+                        }
+                        if (element_1.credential != nil) {
+                            auto & definedValue_3 = listHolder_1->mList[i_1].credential.Emplace();
+                            definedValue_3 = AsCharSpan(element_1.credential);
+                        }
+                        if (element_1.caid != nil) {
+                            auto & definedValue_3 = listHolder_1->mList[i_1].caid.Emplace();
+                            definedValue_3 = element_1.caid.unsignedShortValue;
+                        }
+                    }
+                    definedValue_0 = ListType_1(listHolder_1->mList, self.iceServers.count);
+                } else {
+                    definedValue_0 = ListType_1();
+                }
+            }
+        }
+    }
+    {
+        if (self.iceTransportPolicy != nil) {
+            auto & definedValue_0 = encodableStruct.ICETransportPolicy.Emplace();
+            definedValue_0 = AsCharSpan(self.iceTransportPolicy);
+        }
+    }
+
+    auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0);
+    if (buffer.IsNull()) {
+        return CHIP_ERROR_NO_MEMORY;
+    }
+
+    chip::System::PacketBufferTLVWriter writer;
+    // Commands never need chained buffers, since they cannot be chunked.
+    writer.Init(std::move(buffer), /* useChainedBuffers = */ false);
+
+    ReturnErrorOnFailure(chip::app::DataModel::Encode(writer, chip::TLV::AnonymousTag(), encodableStruct));
+
+    ReturnErrorOnFailure(writer.Finalize(&buffer));
+
+    reader.Init(std::move(buffer));
+    return reader.Next(chip::TLV::kTLVType_Structure, chip::TLV::AnonymousTag());
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error
+{
+    chip::System::PacketBufferTLVReader reader;
+    CHIP_ERROR err = [self _encodeToTLVReader:reader];
+    if (err != CHIP_NO_ERROR) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:err];
+        }
+        return nil;
+    }
+
+    auto decodedObj = MTRDecodeDataValueDictionaryFromCHIPTLV(&reader);
+    if (decodedObj == nil) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INCORRECT_STATE];
+        }
+    }
+    return decodedObj;
+}
+@end
+
+@implementation MTRWebRTCTransportRequestorClusterWebRTCAnswerParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _webRTCSessionID = @(0);
+
+        _sdp = @"";
+        _timedInvokeTimeoutMs = nil;
+        _serverSideProcessingTimeout = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRWebRTCTransportRequestorClusterWebRTCAnswerParams alloc] init];
+
+    other.webRTCSessionID = self.webRTCSessionID;
+    other.sdp = self.sdp;
+    other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs;
+    other.serverSideProcessingTimeout = self.serverSideProcessingTimeout;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: webRTCSessionID:%@; sdp:%@; >", NSStringFromClass([self class]), _webRTCSessionID, _sdp];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRWebRTCTransportRequestorClusterWebRTCAnswerParams (InternalMethods)
+
+- (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader
+{
+    chip::app::Clusters::WebRTCTransportRequestor::Commands::WebRTCAnswer::Type encodableStruct;
+    ListFreer listFreer;
+    {
+        encodableStruct.webRTCSessionID = self.webRTCSessionID.unsignedShortValue;
+    }
+    {
+        encodableStruct.sdp = AsCharSpan(self.sdp);
+    }
+
+    auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0);
+    if (buffer.IsNull()) {
+        return CHIP_ERROR_NO_MEMORY;
+    }
+
+    chip::System::PacketBufferTLVWriter writer;
+    // Commands never need chained buffers, since they cannot be chunked.
+    writer.Init(std::move(buffer), /* useChainedBuffers = */ false);
+
+    ReturnErrorOnFailure(chip::app::DataModel::Encode(writer, chip::TLV::AnonymousTag(), encodableStruct));
+
+    ReturnErrorOnFailure(writer.Finalize(&buffer));
+
+    reader.Init(std::move(buffer));
+    return reader.Next(chip::TLV::kTLVType_Structure, chip::TLV::AnonymousTag());
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error
+{
+    chip::System::PacketBufferTLVReader reader;
+    CHIP_ERROR err = [self _encodeToTLVReader:reader];
+    if (err != CHIP_NO_ERROR) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:err];
+        }
+        return nil;
+    }
+
+    auto decodedObj = MTRDecodeDataValueDictionaryFromCHIPTLV(&reader);
+    if (decodedObj == nil) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INCORRECT_STATE];
+        }
+    }
+    return decodedObj;
+}
+@end
+
+@implementation MTRWebRTCTransportRequestorClusterWebRTCICECandidateParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _webRTCSessionID = @(0);
+
+        _iceCandidate = @"";
+        _timedInvokeTimeoutMs = nil;
+        _serverSideProcessingTimeout = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRWebRTCTransportRequestorClusterWebRTCICECandidateParams alloc] init];
+
+    other.webRTCSessionID = self.webRTCSessionID;
+    other.iceCandidate = self.iceCandidate;
+    other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs;
+    other.serverSideProcessingTimeout = self.serverSideProcessingTimeout;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: webRTCSessionID:%@; iceCandidate:%@; >", NSStringFromClass([self class]), _webRTCSessionID, _iceCandidate];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRWebRTCTransportRequestorClusterWebRTCICECandidateParams (InternalMethods)
+
+- (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader
+{
+    chip::app::Clusters::WebRTCTransportRequestor::Commands::WebRTCICECandidate::Type encodableStruct;
+    ListFreer listFreer;
+    {
+        encodableStruct.webRTCSessionID = self.webRTCSessionID.unsignedShortValue;
+    }
+    {
+        encodableStruct.ICECandidate = AsCharSpan(self.iceCandidate);
+    }
+
+    auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0);
+    if (buffer.IsNull()) {
+        return CHIP_ERROR_NO_MEMORY;
+    }
+
+    chip::System::PacketBufferTLVWriter writer;
+    // Commands never need chained buffers, since they cannot be chunked.
+    writer.Init(std::move(buffer), /* useChainedBuffers = */ false);
+
+    ReturnErrorOnFailure(chip::app::DataModel::Encode(writer, chip::TLV::AnonymousTag(), encodableStruct));
+
+    ReturnErrorOnFailure(writer.Finalize(&buffer));
+
+    reader.Init(std::move(buffer));
+    return reader.Next(chip::TLV::kTLVType_Structure, chip::TLV::AnonymousTag());
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error
+{
+    chip::System::PacketBufferTLVReader reader;
+    CHIP_ERROR err = [self _encodeToTLVReader:reader];
+    if (err != CHIP_NO_ERROR) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:err];
+        }
+        return nil;
+    }
+
+    auto decodedObj = MTRDecodeDataValueDictionaryFromCHIPTLV(&reader);
+    if (decodedObj == nil) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INCORRECT_STATE];
+        }
+    }
+    return decodedObj;
+}
+@end
+
+@implementation MTRWebRTCTransportRequestorClusterWebRTCEndParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _webRTCSessionID = @(0);
+
+        _reason = @(0);
+        _timedInvokeTimeoutMs = nil;
+        _serverSideProcessingTimeout = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRWebRTCTransportRequestorClusterWebRTCEndParams alloc] init];
+
+    other.webRTCSessionID = self.webRTCSessionID;
+    other.reason = self.reason;
+    other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs;
+    other.serverSideProcessingTimeout = self.serverSideProcessingTimeout;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: webRTCSessionID:%@; reason:%@; >", NSStringFromClass([self class]), _webRTCSessionID, _reason];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRWebRTCTransportRequestorClusterWebRTCEndParams (InternalMethods)
+
+- (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader
+{
+    chip::app::Clusters::WebRTCTransportRequestor::Commands::WebRTCEnd::Type encodableStruct;
+    ListFreer listFreer;
+    {
+        encodableStruct.webRTCSessionID = self.webRTCSessionID.unsignedShortValue;
+    }
+    {
+        encodableStruct.reason = static_cast<std::remove_reference_t<decltype(encodableStruct.reason)>>(self.reason.unsignedCharValue);
+    }
+
+    auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0);
+    if (buffer.IsNull()) {
+        return CHIP_ERROR_NO_MEMORY;
+    }
+
+    chip::System::PacketBufferTLVWriter writer;
+    // Commands never need chained buffers, since they cannot be chunked.
+    writer.Init(std::move(buffer), /* useChainedBuffers = */ false);
+
+    ReturnErrorOnFailure(chip::app::DataModel::Encode(writer, chip::TLV::AnonymousTag(), encodableStruct));
+
+    ReturnErrorOnFailure(writer.Finalize(&buffer));
+
+    reader.Init(std::move(buffer));
+    return reader.Next(chip::TLV::kTLVType_Structure, chip::TLV::AnonymousTag());
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error
+{
+    chip::System::PacketBufferTLVReader reader;
+    CHIP_ERROR err = [self _encodeToTLVReader:reader];
+    if (err != CHIP_NO_ERROR) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:err];
+        }
+        return nil;
+    }
+
+    auto decodedObj = MTRDecodeDataValueDictionaryFromCHIPTLV(&reader);
+    if (decodedObj == nil) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INCORRECT_STATE];
+        }
+    }
+    return decodedObj;
+}
+@end
+
+@implementation MTRPushAVStreamTransportClusterAllocatePushTransportParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _streamTransportOptions = [MTRPushAVStreamTransportClusterPushAVStreamTransportOptionsStruct new];
+        _timedInvokeTimeoutMs = nil;
+        _serverSideProcessingTimeout = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRPushAVStreamTransportClusterAllocatePushTransportParams alloc] init];
+
+    other.streamTransportOptions = self.streamTransportOptions;
+    other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs;
+    other.serverSideProcessingTimeout = self.serverSideProcessingTimeout;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: streamTransportOptions:%@; >", NSStringFromClass([self class]), _streamTransportOptions];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRPushAVStreamTransportClusterAllocatePushTransportParams (InternalMethods)
+
+- (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader
+{
+    chip::app::Clusters::PushAvStreamTransport::Commands::AllocatePushTransport::Type encodableStruct;
+    ListFreer listFreer;
+    {
+        encodableStruct.streamTransportOptions.streamType = static_cast<std::remove_reference_t<decltype(encodableStruct.streamTransportOptions.streamType)>>(self.streamTransportOptions.streamType.unsignedCharValue);
+        if (self.streamTransportOptions.videoStreamID != nil) {
+            auto & definedValue_1 = encodableStruct.streamTransportOptions.videoStreamID.Emplace();
+            if (self.streamTransportOptions.videoStreamID == nil) {
+                definedValue_1.SetNull();
+            } else {
+                auto & nonNullValue_2 = definedValue_1.SetNonNull();
+                nonNullValue_2 = self.streamTransportOptions.videoStreamID.unsignedShortValue;
+            }
+        }
+        if (self.streamTransportOptions.audioStreamID != nil) {
+            auto & definedValue_1 = encodableStruct.streamTransportOptions.audioStreamID.Emplace();
+            if (self.streamTransportOptions.audioStreamID == nil) {
+                definedValue_1.SetNull();
+            } else {
+                auto & nonNullValue_2 = definedValue_1.SetNonNull();
+                nonNullValue_2 = self.streamTransportOptions.audioStreamID.unsignedShortValue;
+            }
+        }
+        encodableStruct.streamTransportOptions.TLSEndpointID = self.streamTransportOptions.tlsEndpointID.unsignedShortValue;
+        encodableStruct.streamTransportOptions.url = AsCharSpan(self.streamTransportOptions.url);
+        encodableStruct.streamTransportOptions.triggerOptions.triggerType = static_cast<std::remove_reference_t<decltype(encodableStruct.streamTransportOptions.triggerOptions.triggerType)>>(self.streamTransportOptions.triggerOptions.triggerType.unsignedCharValue);
+        if (self.streamTransportOptions.triggerOptions.motionZones != nil) {
+            auto & definedValue_2 = encodableStruct.streamTransportOptions.triggerOptions.motionZones.Emplace();
+            if (self.streamTransportOptions.triggerOptions.motionZones == nil) {
+                definedValue_2.SetNull();
+            } else {
+                auto & nonNullValue_3 = definedValue_2.SetNonNull();
+                {
+                    using ListType_4 = std::remove_reference_t<decltype(nonNullValue_3)>;
+                    using ListMemberType_4 = ListMemberTypeGetter<ListType_4>::Type;
+                    if (self.streamTransportOptions.triggerOptions.motionZones.count != 0) {
+                        auto * listHolder_4 = new ListHolder<ListMemberType_4>(self.streamTransportOptions.triggerOptions.motionZones.count);
+                        if (listHolder_4 == nullptr || listHolder_4->mList == nullptr) {
+                            return CHIP_ERROR_INVALID_ARGUMENT;
+                        }
+                        listFreer.add(listHolder_4);
+                        for (size_t i_4 = 0; i_4 < self.streamTransportOptions.triggerOptions.motionZones.count; ++i_4) {
+                            if (![self.streamTransportOptions.triggerOptions.motionZones[i_4] isKindOfClass:[NSNumber class]]) {
+                                // Wrong kind of value.
+                                return CHIP_ERROR_INVALID_ARGUMENT;
+                            }
+                            auto element_4 = (NSNumber *) self.streamTransportOptions.triggerOptions.motionZones[i_4];
+                            listHolder_4->mList[i_4] = element_4.unsignedShortValue;
+                        }
+                        nonNullValue_3 = ListType_4(listHolder_4->mList, self.streamTransportOptions.triggerOptions.motionZones.count);
+                    } else {
+                        nonNullValue_3 = ListType_4();
+                    }
+                }
+            }
+        }
+        if (self.streamTransportOptions.triggerOptions.motionSensitivity != nil) {
+            auto & definedValue_2 = encodableStruct.streamTransportOptions.triggerOptions.motionSensitivity.Emplace();
+            if (self.streamTransportOptions.triggerOptions.motionSensitivity == nil) {
+                definedValue_2.SetNull();
+            } else {
+                auto & nonNullValue_3 = definedValue_2.SetNonNull();
+                nonNullValue_3 = self.streamTransportOptions.triggerOptions.motionSensitivity.unsignedCharValue;
+            }
+        }
+        if (self.streamTransportOptions.triggerOptions.motionTimeControl != nil) {
+            auto & definedValue_2 = encodableStruct.streamTransportOptions.triggerOptions.motionTimeControl.Emplace();
+            if (self.streamTransportOptions.triggerOptions.motionTimeControl == nil) {
+                definedValue_2.SetNull();
+            } else {
+                auto & nonNullValue_3 = definedValue_2.SetNonNull();
+                nonNullValue_3.initialDuration = self.streamTransportOptions.triggerOptions.motionTimeControl.initialDuration.unsignedShortValue;
+                nonNullValue_3.augmentationDuration = self.streamTransportOptions.triggerOptions.motionTimeControl.augmentationDuration.unsignedShortValue;
+                nonNullValue_3.maxDuration = self.streamTransportOptions.triggerOptions.motionTimeControl.maxDuration.unsignedIntValue;
+                nonNullValue_3.blindDuration = self.streamTransportOptions.triggerOptions.motionTimeControl.blindDuration.unsignedShortValue;
+            }
+        }
+        if (self.streamTransportOptions.triggerOptions.activationReason != nil) {
+            auto & definedValue_2 = encodableStruct.streamTransportOptions.triggerOptions.activationReason.Emplace();
+            if (self.streamTransportOptions.triggerOptions.activationReason == nil) {
+                definedValue_2.SetNull();
+            } else {
+                auto & nonNullValue_3 = definedValue_2.SetNonNull();
+                nonNullValue_3 = static_cast<std::remove_reference_t<decltype(nonNullValue_3)>>(self.streamTransportOptions.triggerOptions.activationReason.unsignedCharValue);
+            }
+        }
+        encodableStruct.streamTransportOptions.containerFormat = static_cast<std::remove_reference_t<decltype(encodableStruct.streamTransportOptions.containerFormat)>>(self.streamTransportOptions.containerFormat.unsignedCharValue);
+        encodableStruct.streamTransportOptions.ingestMethod = static_cast<std::remove_reference_t<decltype(encodableStruct.streamTransportOptions.ingestMethod)>>(self.streamTransportOptions.ingestMethod.unsignedCharValue);
+        encodableStruct.streamTransportOptions.containerOptions.containerType = static_cast<std::remove_reference_t<decltype(encodableStruct.streamTransportOptions.containerOptions.containerType)>>(self.streamTransportOptions.containerOptions.containerType.unsignedCharValue);
+        if (self.streamTransportOptions.containerOptions.cmafContainerOptions != nil) {
+            auto & definedValue_2 = encodableStruct.streamTransportOptions.containerOptions.CMAFContainerOptions.Emplace();
+            if (self.streamTransportOptions.containerOptions.cmafContainerOptions == nil) {
+                definedValue_2.SetNull();
+            } else {
+                auto & nonNullValue_3 = definedValue_2.SetNonNull();
+                nonNullValue_3.chunkDuration = self.streamTransportOptions.containerOptions.cmafContainerOptions.chunkDuration.unsignedShortValue;
+                if (self.streamTransportOptions.containerOptions.cmafContainerOptions.cencKey != nil) {
+                    auto & definedValue_5 = nonNullValue_3.CENCKey.Emplace();
+                    if (self.streamTransportOptions.containerOptions.cmafContainerOptions.cencKey == nil) {
+                        definedValue_5.SetNull();
+                    } else {
+                        auto & nonNullValue_6 = definedValue_5.SetNonNull();
+                        nonNullValue_6 = AsByteSpan(self.streamTransportOptions.containerOptions.cmafContainerOptions.cencKey);
+                    }
+                }
+            }
+        }
+        if (self.streamTransportOptions.metadataOptions != nil) {
+            auto & definedValue_1 = encodableStruct.streamTransportOptions.metadataOptions.Emplace();
+            if (self.streamTransportOptions.metadataOptions == nil) {
+                definedValue_1.SetNull();
+            } else {
+                auto & nonNullValue_2 = definedValue_1.SetNonNull();
+                nonNullValue_2.multiplexing = static_cast<std::remove_reference_t<decltype(nonNullValue_2.multiplexing)>>(self.streamTransportOptions.metadataOptions.multiplexing.unsignedCharValue);
+                nonNullValue_2.includeMotionZones = self.streamTransportOptions.metadataOptions.includeMotionZones.boolValue;
+                nonNullValue_2.enableMetadataPrivacySensitive = self.streamTransportOptions.metadataOptions.enableMetadataPrivacySensitive.boolValue;
+            }
+        }
+        if (self.streamTransportOptions.expiryTime != nil) {
+            auto & definedValue_1 = encodableStruct.streamTransportOptions.expiryTime.Emplace();
+            if (self.streamTransportOptions.expiryTime == nil) {
+                definedValue_1.SetNull();
+            } else {
+                auto & nonNullValue_2 = definedValue_1.SetNonNull();
+                nonNullValue_2 = self.streamTransportOptions.expiryTime.unsignedIntValue;
+            }
+        }
+    }
+
+    auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0);
+    if (buffer.IsNull()) {
+        return CHIP_ERROR_NO_MEMORY;
+    }
+
+    chip::System::PacketBufferTLVWriter writer;
+    // Commands never need chained buffers, since they cannot be chunked.
+    writer.Init(std::move(buffer), /* useChainedBuffers = */ false);
+
+    ReturnErrorOnFailure(chip::app::DataModel::Encode(writer, chip::TLV::AnonymousTag(), encodableStruct));
+
+    ReturnErrorOnFailure(writer.Finalize(&buffer));
+
+    reader.Init(std::move(buffer));
+    return reader.Next(chip::TLV::kTLVType_Structure, chip::TLV::AnonymousTag());
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error
+{
+    chip::System::PacketBufferTLVReader reader;
+    CHIP_ERROR err = [self _encodeToTLVReader:reader];
+    if (err != CHIP_NO_ERROR) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:err];
+        }
+        return nil;
+    }
+
+    auto decodedObj = MTRDecodeDataValueDictionaryFromCHIPTLV(&reader);
+    if (decodedObj == nil) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INCORRECT_STATE];
+        }
+    }
+    return decodedObj;
+}
+@end
+
+@implementation MTRPushAVStreamTransportClusterAllocatePushTransportResponseParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _connectionID = @(0);
+
+        _streamTransportOptions = [MTRPushAVStreamTransportClusterPushAVStreamTransportOptionsStruct new];
+
+        _transportStatus = @(0);
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRPushAVStreamTransportClusterAllocatePushTransportResponseParams alloc] init];
+
+    other.connectionID = self.connectionID;
+    other.streamTransportOptions = self.streamTransportOptions;
+    other.transportStatus = self.transportStatus;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: connectionID:%@; streamTransportOptions:%@; transportStatus:%@; >", NSStringFromClass([self class]), _connectionID, _streamTransportOptions, _transportStatus];
+    return descriptionString;
+}
+
+- (nullable instancetype)initWithResponseValue:(NSDictionary<NSString *, id> *)responseValue
+                                         error:(NSError * __autoreleasing *)error
+{
+    if (!(self = [super init])) {
+        return nil;
+    }
+
+    using DecodableType = chip::app::Clusters::PushAvStreamTransport::Commands::AllocatePushTransportResponse::DecodableType;
+    chip::System::PacketBufferHandle buffer = [MTRBaseDevice _responseDataForCommand:responseValue
+                                                                           clusterID:DecodableType::GetClusterId()
+                                                                           commandID:DecodableType::GetCommandId()
+                                                                               error:error];
+    if (buffer.IsNull()) {
+        return nil;
+    }
+
+    chip::TLV::TLVReader reader;
+    reader.Init(buffer->Start(), buffer->DataLength());
+
+    CHIP_ERROR err = reader.Next(chip::TLV::AnonymousTag());
+    if (err == CHIP_NO_ERROR) {
+        DecodableType decodedStruct;
+        err = chip::app::DataModel::Decode(reader, decodedStruct);
+        if (err == CHIP_NO_ERROR) {
+            err = [self _setFieldsFromDecodableStruct:decodedStruct];
+            if (err == CHIP_NO_ERROR) {
+                return self;
+            }
+        }
+    }
+
+    NSString * errorStr = [NSString stringWithFormat:@"Command payload decoding failed: %s", err.AsString()];
+    MTR_LOG_ERROR("%s", errorStr.UTF8String);
+    if (error != nil) {
+        NSDictionary * userInfo = @{ NSLocalizedFailureReasonErrorKey : NSLocalizedString(errorStr, nil) };
+        *error = [NSError errorWithDomain:MTRErrorDomain code:MTRErrorCodeSchemaMismatch userInfo:userInfo];
+    }
+    return nil;
+}
+
+@end
+
+@implementation MTRPushAVStreamTransportClusterAllocatePushTransportResponseParams (InternalMethods)
+
+- (CHIP_ERROR)_setFieldsFromDecodableStruct:(const chip::app::Clusters::PushAvStreamTransport::Commands::AllocatePushTransportResponse::DecodableType &)decodableStruct
+{
+    {
+        self.connectionID = [NSNumber numberWithUnsignedShort:decodableStruct.connectionID];
+    }
+    {
+        self.streamTransportOptions = [MTRPushAVStreamTransportClusterPushAVStreamTransportOptionsStruct new];
+        self.streamTransportOptions.streamType = [NSNumber numberWithUnsignedChar:chip::to_underlying(decodableStruct.streamTransportOptions.streamType)];
+        if (decodableStruct.streamTransportOptions.videoStreamID.HasValue()) {
+            if (decodableStruct.streamTransportOptions.videoStreamID.Value().IsNull()) {
+                self.streamTransportOptions.videoStreamID = nil;
+            } else {
+                self.streamTransportOptions.videoStreamID = [NSNumber numberWithUnsignedShort:decodableStruct.streamTransportOptions.videoStreamID.Value().Value()];
+            }
+        } else {
+            self.streamTransportOptions.videoStreamID = nil;
+        }
+        if (decodableStruct.streamTransportOptions.audioStreamID.HasValue()) {
+            if (decodableStruct.streamTransportOptions.audioStreamID.Value().IsNull()) {
+                self.streamTransportOptions.audioStreamID = nil;
+            } else {
+                self.streamTransportOptions.audioStreamID = [NSNumber numberWithUnsignedShort:decodableStruct.streamTransportOptions.audioStreamID.Value().Value()];
+            }
+        } else {
+            self.streamTransportOptions.audioStreamID = nil;
+        }
+        self.streamTransportOptions.tlsEndpointID = [NSNumber numberWithUnsignedShort:decodableStruct.streamTransportOptions.TLSEndpointID];
+        self.streamTransportOptions.url = AsString(decodableStruct.streamTransportOptions.url);
+        if (self.streamTransportOptions.url == nil) {
+            CHIP_ERROR err = CHIP_ERROR_INVALID_ARGUMENT;
+            return err;
+        }
+        self.streamTransportOptions.triggerOptions = [MTRPushAVStreamTransportClusterPushAVStreamTransportTriggerOptionsStruct new];
+        self.streamTransportOptions.triggerOptions.triggerType = [NSNumber numberWithUnsignedChar:chip::to_underlying(decodableStruct.streamTransportOptions.triggerOptions.triggerType)];
+        if (decodableStruct.streamTransportOptions.triggerOptions.motionZones.HasValue()) {
+            if (decodableStruct.streamTransportOptions.triggerOptions.motionZones.Value().IsNull()) {
+                self.streamTransportOptions.triggerOptions.motionZones = nil;
+            } else {
+                { // Scope for our temporary variables
+                    auto * array_4 = [NSMutableArray new];
+                    auto iter_4 = decodableStruct.streamTransportOptions.triggerOptions.motionZones.Value().Value().begin();
+                    while (iter_4.Next()) {
+                        auto & entry_4 = iter_4.GetValue();
+                        NSNumber * newElement_4;
+                        newElement_4 = [NSNumber numberWithUnsignedShort:entry_4];
+                        [array_4 addObject:newElement_4];
+                    }
+                    CHIP_ERROR err = iter_4.GetStatus();
+                    if (err != CHIP_NO_ERROR) {
+                        return err;
+                    }
+                    self.streamTransportOptions.triggerOptions.motionZones = array_4;
+                }
+            }
+        } else {
+            self.streamTransportOptions.triggerOptions.motionZones = nil;
+        }
+        if (decodableStruct.streamTransportOptions.triggerOptions.motionSensitivity.HasValue()) {
+            if (decodableStruct.streamTransportOptions.triggerOptions.motionSensitivity.Value().IsNull()) {
+                self.streamTransportOptions.triggerOptions.motionSensitivity = nil;
+            } else {
+                self.streamTransportOptions.triggerOptions.motionSensitivity = [NSNumber numberWithUnsignedChar:decodableStruct.streamTransportOptions.triggerOptions.motionSensitivity.Value().Value()];
+            }
+        } else {
+            self.streamTransportOptions.triggerOptions.motionSensitivity = nil;
+        }
+        if (decodableStruct.streamTransportOptions.triggerOptions.motionTimeControl.HasValue()) {
+            if (decodableStruct.streamTransportOptions.triggerOptions.motionTimeControl.Value().IsNull()) {
+                self.streamTransportOptions.triggerOptions.motionTimeControl = nil;
+            } else {
+                self.streamTransportOptions.triggerOptions.motionTimeControl = [MTRPushAVStreamTransportClusterPushAVStreamTransportMotionTriggerTimeControlStruct new];
+                self.streamTransportOptions.triggerOptions.motionTimeControl.initialDuration = [NSNumber numberWithUnsignedShort:decodableStruct.streamTransportOptions.triggerOptions.motionTimeControl.Value().Value().initialDuration];
+                self.streamTransportOptions.triggerOptions.motionTimeControl.augmentationDuration = [NSNumber numberWithUnsignedShort:decodableStruct.streamTransportOptions.triggerOptions.motionTimeControl.Value().Value().augmentationDuration];
+                self.streamTransportOptions.triggerOptions.motionTimeControl.maxDuration = [NSNumber numberWithUnsignedInt:decodableStruct.streamTransportOptions.triggerOptions.motionTimeControl.Value().Value().maxDuration];
+                self.streamTransportOptions.triggerOptions.motionTimeControl.blindDuration = [NSNumber numberWithUnsignedShort:decodableStruct.streamTransportOptions.triggerOptions.motionTimeControl.Value().Value().blindDuration];
+            }
+        } else {
+            self.streamTransportOptions.triggerOptions.motionTimeControl = nil;
+        }
+        if (decodableStruct.streamTransportOptions.triggerOptions.activationReason.HasValue()) {
+            if (decodableStruct.streamTransportOptions.triggerOptions.activationReason.Value().IsNull()) {
+                self.streamTransportOptions.triggerOptions.activationReason = nil;
+            } else {
+                self.streamTransportOptions.triggerOptions.activationReason = [NSNumber numberWithUnsignedChar:chip::to_underlying(decodableStruct.streamTransportOptions.triggerOptions.activationReason.Value().Value())];
+            }
+        } else {
+            self.streamTransportOptions.triggerOptions.activationReason = nil;
+        }
+        self.streamTransportOptions.containerFormat = [NSNumber numberWithUnsignedChar:chip::to_underlying(decodableStruct.streamTransportOptions.containerFormat)];
+        self.streamTransportOptions.ingestMethod = [NSNumber numberWithUnsignedChar:chip::to_underlying(decodableStruct.streamTransportOptions.ingestMethod)];
+        self.streamTransportOptions.containerOptions = [MTRPushAVStreamTransportClusterPushAVStreamTransportContainerOptionsStruct new];
+        self.streamTransportOptions.containerOptions.containerType = [NSNumber numberWithUnsignedChar:chip::to_underlying(decodableStruct.streamTransportOptions.containerOptions.containerType)];
+        if (decodableStruct.streamTransportOptions.containerOptions.CMAFContainerOptions.HasValue()) {
+            if (decodableStruct.streamTransportOptions.containerOptions.CMAFContainerOptions.Value().IsNull()) {
+                self.streamTransportOptions.containerOptions.cmafContainerOptions = nil;
+            } else {
+                self.streamTransportOptions.containerOptions.cmafContainerOptions = [MTRPushAVStreamTransportClusterPushAVStreamTransportCMAFContainerOptionsStruct new];
+                self.streamTransportOptions.containerOptions.cmafContainerOptions.chunkDuration = [NSNumber numberWithUnsignedShort:decodableStruct.streamTransportOptions.containerOptions.CMAFContainerOptions.Value().Value().chunkDuration];
+                if (decodableStruct.streamTransportOptions.containerOptions.CMAFContainerOptions.Value().Value().CENCKey.HasValue()) {
+                    if (decodableStruct.streamTransportOptions.containerOptions.CMAFContainerOptions.Value().Value().CENCKey.Value().IsNull()) {
+                        self.streamTransportOptions.containerOptions.cmafContainerOptions.cencKey = nil;
+                    } else {
+                        self.streamTransportOptions.containerOptions.cmafContainerOptions.cencKey = AsData(decodableStruct.streamTransportOptions.containerOptions.CMAFContainerOptions.Value().Value().CENCKey.Value().Value());
+                    }
+                } else {
+                    self.streamTransportOptions.containerOptions.cmafContainerOptions.cencKey = nil;
+                }
+            }
+        } else {
+            self.streamTransportOptions.containerOptions.cmafContainerOptions = nil;
+        }
+        if (decodableStruct.streamTransportOptions.metadataOptions.HasValue()) {
+            if (decodableStruct.streamTransportOptions.metadataOptions.Value().IsNull()) {
+                self.streamTransportOptions.metadataOptions = nil;
+            } else {
+                self.streamTransportOptions.metadataOptions = [MTRPushAVStreamTransportClusterPushAVStreamTransportMetadataOptionsStruct new];
+                self.streamTransportOptions.metadataOptions.multiplexing = [NSNumber numberWithUnsignedChar:chip::to_underlying(decodableStruct.streamTransportOptions.metadataOptions.Value().Value().multiplexing)];
+                self.streamTransportOptions.metadataOptions.includeMotionZones = [NSNumber numberWithBool:decodableStruct.streamTransportOptions.metadataOptions.Value().Value().includeMotionZones];
+                self.streamTransportOptions.metadataOptions.enableMetadataPrivacySensitive = [NSNumber numberWithBool:decodableStruct.streamTransportOptions.metadataOptions.Value().Value().enableMetadataPrivacySensitive];
+            }
+        } else {
+            self.streamTransportOptions.metadataOptions = nil;
+        }
+        if (decodableStruct.streamTransportOptions.expiryTime.HasValue()) {
+            if (decodableStruct.streamTransportOptions.expiryTime.Value().IsNull()) {
+                self.streamTransportOptions.expiryTime = nil;
+            } else {
+                self.streamTransportOptions.expiryTime = [NSNumber numberWithUnsignedInt:decodableStruct.streamTransportOptions.expiryTime.Value().Value()];
+            }
+        } else {
+            self.streamTransportOptions.expiryTime = nil;
+        }
+    }
+    {
+        self.transportStatus = [NSNumber numberWithUnsignedChar:chip::to_underlying(decodableStruct.transportStatus)];
+    }
+    return CHIP_NO_ERROR;
+}
+
+@end
+
+@implementation MTRPushAVStreamTransportClusterDeallocatePushTransportParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _connectionID = @(0);
+        _timedInvokeTimeoutMs = nil;
+        _serverSideProcessingTimeout = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRPushAVStreamTransportClusterDeallocatePushTransportParams alloc] init];
+
+    other.connectionID = self.connectionID;
+    other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs;
+    other.serverSideProcessingTimeout = self.serverSideProcessingTimeout;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: connectionID:%@; >", NSStringFromClass([self class]), _connectionID];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRPushAVStreamTransportClusterDeallocatePushTransportParams (InternalMethods)
+
+- (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader
+{
+    chip::app::Clusters::PushAvStreamTransport::Commands::DeallocatePushTransport::Type encodableStruct;
+    ListFreer listFreer;
+    {
+        encodableStruct.connectionID = self.connectionID.unsignedShortValue;
+    }
+
+    auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0);
+    if (buffer.IsNull()) {
+        return CHIP_ERROR_NO_MEMORY;
+    }
+
+    chip::System::PacketBufferTLVWriter writer;
+    // Commands never need chained buffers, since they cannot be chunked.
+    writer.Init(std::move(buffer), /* useChainedBuffers = */ false);
+
+    ReturnErrorOnFailure(chip::app::DataModel::Encode(writer, chip::TLV::AnonymousTag(), encodableStruct));
+
+    ReturnErrorOnFailure(writer.Finalize(&buffer));
+
+    reader.Init(std::move(buffer));
+    return reader.Next(chip::TLV::kTLVType_Structure, chip::TLV::AnonymousTag());
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error
+{
+    chip::System::PacketBufferTLVReader reader;
+    CHIP_ERROR err = [self _encodeToTLVReader:reader];
+    if (err != CHIP_NO_ERROR) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:err];
+        }
+        return nil;
+    }
+
+    auto decodedObj = MTRDecodeDataValueDictionaryFromCHIPTLV(&reader);
+    if (decodedObj == nil) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INCORRECT_STATE];
+        }
+    }
+    return decodedObj;
+}
+@end
+
+@implementation MTRPushAVStreamTransportClusterModifyPushTransportParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _connectionID = @(0);
+
+        _streamTransportOptions = [MTRPushAVStreamTransportClusterPushAVStreamTransportOptionsStruct new];
+        _timedInvokeTimeoutMs = nil;
+        _serverSideProcessingTimeout = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRPushAVStreamTransportClusterModifyPushTransportParams alloc] init];
+
+    other.connectionID = self.connectionID;
+    other.streamTransportOptions = self.streamTransportOptions;
+    other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs;
+    other.serverSideProcessingTimeout = self.serverSideProcessingTimeout;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: connectionID:%@; streamTransportOptions:%@; >", NSStringFromClass([self class]), _connectionID, _streamTransportOptions];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRPushAVStreamTransportClusterModifyPushTransportParams (InternalMethods)
+
+- (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader
+{
+    chip::app::Clusters::PushAvStreamTransport::Commands::ModifyPushTransport::Type encodableStruct;
+    ListFreer listFreer;
+    {
+        encodableStruct.connectionID = self.connectionID.unsignedShortValue;
+    }
+    {
+        encodableStruct.streamTransportOptions.streamType = static_cast<std::remove_reference_t<decltype(encodableStruct.streamTransportOptions.streamType)>>(self.streamTransportOptions.streamType.unsignedCharValue);
+        if (self.streamTransportOptions.videoStreamID != nil) {
+            auto & definedValue_1 = encodableStruct.streamTransportOptions.videoStreamID.Emplace();
+            if (self.streamTransportOptions.videoStreamID == nil) {
+                definedValue_1.SetNull();
+            } else {
+                auto & nonNullValue_2 = definedValue_1.SetNonNull();
+                nonNullValue_2 = self.streamTransportOptions.videoStreamID.unsignedShortValue;
+            }
+        }
+        if (self.streamTransportOptions.audioStreamID != nil) {
+            auto & definedValue_1 = encodableStruct.streamTransportOptions.audioStreamID.Emplace();
+            if (self.streamTransportOptions.audioStreamID == nil) {
+                definedValue_1.SetNull();
+            } else {
+                auto & nonNullValue_2 = definedValue_1.SetNonNull();
+                nonNullValue_2 = self.streamTransportOptions.audioStreamID.unsignedShortValue;
+            }
+        }
+        encodableStruct.streamTransportOptions.TLSEndpointID = self.streamTransportOptions.tlsEndpointID.unsignedShortValue;
+        encodableStruct.streamTransportOptions.url = AsCharSpan(self.streamTransportOptions.url);
+        encodableStruct.streamTransportOptions.triggerOptions.triggerType = static_cast<std::remove_reference_t<decltype(encodableStruct.streamTransportOptions.triggerOptions.triggerType)>>(self.streamTransportOptions.triggerOptions.triggerType.unsignedCharValue);
+        if (self.streamTransportOptions.triggerOptions.motionZones != nil) {
+            auto & definedValue_2 = encodableStruct.streamTransportOptions.triggerOptions.motionZones.Emplace();
+            if (self.streamTransportOptions.triggerOptions.motionZones == nil) {
+                definedValue_2.SetNull();
+            } else {
+                auto & nonNullValue_3 = definedValue_2.SetNonNull();
+                {
+                    using ListType_4 = std::remove_reference_t<decltype(nonNullValue_3)>;
+                    using ListMemberType_4 = ListMemberTypeGetter<ListType_4>::Type;
+                    if (self.streamTransportOptions.triggerOptions.motionZones.count != 0) {
+                        auto * listHolder_4 = new ListHolder<ListMemberType_4>(self.streamTransportOptions.triggerOptions.motionZones.count);
+                        if (listHolder_4 == nullptr || listHolder_4->mList == nullptr) {
+                            return CHIP_ERROR_INVALID_ARGUMENT;
+                        }
+                        listFreer.add(listHolder_4);
+                        for (size_t i_4 = 0; i_4 < self.streamTransportOptions.triggerOptions.motionZones.count; ++i_4) {
+                            if (![self.streamTransportOptions.triggerOptions.motionZones[i_4] isKindOfClass:[NSNumber class]]) {
+                                // Wrong kind of value.
+                                return CHIP_ERROR_INVALID_ARGUMENT;
+                            }
+                            auto element_4 = (NSNumber *) self.streamTransportOptions.triggerOptions.motionZones[i_4];
+                            listHolder_4->mList[i_4] = element_4.unsignedShortValue;
+                        }
+                        nonNullValue_3 = ListType_4(listHolder_4->mList, self.streamTransportOptions.triggerOptions.motionZones.count);
+                    } else {
+                        nonNullValue_3 = ListType_4();
+                    }
+                }
+            }
+        }
+        if (self.streamTransportOptions.triggerOptions.motionSensitivity != nil) {
+            auto & definedValue_2 = encodableStruct.streamTransportOptions.triggerOptions.motionSensitivity.Emplace();
+            if (self.streamTransportOptions.triggerOptions.motionSensitivity == nil) {
+                definedValue_2.SetNull();
+            } else {
+                auto & nonNullValue_3 = definedValue_2.SetNonNull();
+                nonNullValue_3 = self.streamTransportOptions.triggerOptions.motionSensitivity.unsignedCharValue;
+            }
+        }
+        if (self.streamTransportOptions.triggerOptions.motionTimeControl != nil) {
+            auto & definedValue_2 = encodableStruct.streamTransportOptions.triggerOptions.motionTimeControl.Emplace();
+            if (self.streamTransportOptions.triggerOptions.motionTimeControl == nil) {
+                definedValue_2.SetNull();
+            } else {
+                auto & nonNullValue_3 = definedValue_2.SetNonNull();
+                nonNullValue_3.initialDuration = self.streamTransportOptions.triggerOptions.motionTimeControl.initialDuration.unsignedShortValue;
+                nonNullValue_3.augmentationDuration = self.streamTransportOptions.triggerOptions.motionTimeControl.augmentationDuration.unsignedShortValue;
+                nonNullValue_3.maxDuration = self.streamTransportOptions.triggerOptions.motionTimeControl.maxDuration.unsignedIntValue;
+                nonNullValue_3.blindDuration = self.streamTransportOptions.triggerOptions.motionTimeControl.blindDuration.unsignedShortValue;
+            }
+        }
+        if (self.streamTransportOptions.triggerOptions.activationReason != nil) {
+            auto & definedValue_2 = encodableStruct.streamTransportOptions.triggerOptions.activationReason.Emplace();
+            if (self.streamTransportOptions.triggerOptions.activationReason == nil) {
+                definedValue_2.SetNull();
+            } else {
+                auto & nonNullValue_3 = definedValue_2.SetNonNull();
+                nonNullValue_3 = static_cast<std::remove_reference_t<decltype(nonNullValue_3)>>(self.streamTransportOptions.triggerOptions.activationReason.unsignedCharValue);
+            }
+        }
+        encodableStruct.streamTransportOptions.containerFormat = static_cast<std::remove_reference_t<decltype(encodableStruct.streamTransportOptions.containerFormat)>>(self.streamTransportOptions.containerFormat.unsignedCharValue);
+        encodableStruct.streamTransportOptions.ingestMethod = static_cast<std::remove_reference_t<decltype(encodableStruct.streamTransportOptions.ingestMethod)>>(self.streamTransportOptions.ingestMethod.unsignedCharValue);
+        encodableStruct.streamTransportOptions.containerOptions.containerType = static_cast<std::remove_reference_t<decltype(encodableStruct.streamTransportOptions.containerOptions.containerType)>>(self.streamTransportOptions.containerOptions.containerType.unsignedCharValue);
+        if (self.streamTransportOptions.containerOptions.cmafContainerOptions != nil) {
+            auto & definedValue_2 = encodableStruct.streamTransportOptions.containerOptions.CMAFContainerOptions.Emplace();
+            if (self.streamTransportOptions.containerOptions.cmafContainerOptions == nil) {
+                definedValue_2.SetNull();
+            } else {
+                auto & nonNullValue_3 = definedValue_2.SetNonNull();
+                nonNullValue_3.chunkDuration = self.streamTransportOptions.containerOptions.cmafContainerOptions.chunkDuration.unsignedShortValue;
+                if (self.streamTransportOptions.containerOptions.cmafContainerOptions.cencKey != nil) {
+                    auto & definedValue_5 = nonNullValue_3.CENCKey.Emplace();
+                    if (self.streamTransportOptions.containerOptions.cmafContainerOptions.cencKey == nil) {
+                        definedValue_5.SetNull();
+                    } else {
+                        auto & nonNullValue_6 = definedValue_5.SetNonNull();
+                        nonNullValue_6 = AsByteSpan(self.streamTransportOptions.containerOptions.cmafContainerOptions.cencKey);
+                    }
+                }
+            }
+        }
+        if (self.streamTransportOptions.metadataOptions != nil) {
+            auto & definedValue_1 = encodableStruct.streamTransportOptions.metadataOptions.Emplace();
+            if (self.streamTransportOptions.metadataOptions == nil) {
+                definedValue_1.SetNull();
+            } else {
+                auto & nonNullValue_2 = definedValue_1.SetNonNull();
+                nonNullValue_2.multiplexing = static_cast<std::remove_reference_t<decltype(nonNullValue_2.multiplexing)>>(self.streamTransportOptions.metadataOptions.multiplexing.unsignedCharValue);
+                nonNullValue_2.includeMotionZones = self.streamTransportOptions.metadataOptions.includeMotionZones.boolValue;
+                nonNullValue_2.enableMetadataPrivacySensitive = self.streamTransportOptions.metadataOptions.enableMetadataPrivacySensitive.boolValue;
+            }
+        }
+        if (self.streamTransportOptions.expiryTime != nil) {
+            auto & definedValue_1 = encodableStruct.streamTransportOptions.expiryTime.Emplace();
+            if (self.streamTransportOptions.expiryTime == nil) {
+                definedValue_1.SetNull();
+            } else {
+                auto & nonNullValue_2 = definedValue_1.SetNonNull();
+                nonNullValue_2 = self.streamTransportOptions.expiryTime.unsignedIntValue;
+            }
+        }
+    }
+
+    auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0);
+    if (buffer.IsNull()) {
+        return CHIP_ERROR_NO_MEMORY;
+    }
+
+    chip::System::PacketBufferTLVWriter writer;
+    // Commands never need chained buffers, since they cannot be chunked.
+    writer.Init(std::move(buffer), /* useChainedBuffers = */ false);
+
+    ReturnErrorOnFailure(chip::app::DataModel::Encode(writer, chip::TLV::AnonymousTag(), encodableStruct));
+
+    ReturnErrorOnFailure(writer.Finalize(&buffer));
+
+    reader.Init(std::move(buffer));
+    return reader.Next(chip::TLV::kTLVType_Structure, chip::TLV::AnonymousTag());
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error
+{
+    chip::System::PacketBufferTLVReader reader;
+    CHIP_ERROR err = [self _encodeToTLVReader:reader];
+    if (err != CHIP_NO_ERROR) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:err];
+        }
+        return nil;
+    }
+
+    auto decodedObj = MTRDecodeDataValueDictionaryFromCHIPTLV(&reader);
+    if (decodedObj == nil) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INCORRECT_STATE];
+        }
+    }
+    return decodedObj;
+}
+@end
+
+@implementation MTRPushAVStreamTransportClusterSetTransportStatusParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _connectionID = nil;
+
+        _streamTransportStatus = @(0);
+        _timedInvokeTimeoutMs = nil;
+        _serverSideProcessingTimeout = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRPushAVStreamTransportClusterSetTransportStatusParams alloc] init];
+
+    other.connectionID = self.connectionID;
+    other.streamTransportStatus = self.streamTransportStatus;
+    other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs;
+    other.serverSideProcessingTimeout = self.serverSideProcessingTimeout;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: connectionID:%@; streamTransportStatus:%@; >", NSStringFromClass([self class]), _connectionID, _streamTransportStatus];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRPushAVStreamTransportClusterSetTransportStatusParams (InternalMethods)
+
+- (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader
+{
+    chip::app::Clusters::PushAvStreamTransport::Commands::SetTransportStatus::Type encodableStruct;
+    ListFreer listFreer;
+    {
+        if (self.connectionID == nil) {
+            encodableStruct.connectionID.SetNull();
+        } else {
+            auto & nonNullValue_0 = encodableStruct.connectionID.SetNonNull();
+            nonNullValue_0 = self.connectionID.unsignedShortValue;
+        }
+    }
+    {
+        encodableStruct.streamTransportStatus = static_cast<std::remove_reference_t<decltype(encodableStruct.streamTransportStatus)>>(self.streamTransportStatus.unsignedCharValue);
+    }
+
+    auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0);
+    if (buffer.IsNull()) {
+        return CHIP_ERROR_NO_MEMORY;
+    }
+
+    chip::System::PacketBufferTLVWriter writer;
+    // Commands never need chained buffers, since they cannot be chunked.
+    writer.Init(std::move(buffer), /* useChainedBuffers = */ false);
+
+    ReturnErrorOnFailure(chip::app::DataModel::Encode(writer, chip::TLV::AnonymousTag(), encodableStruct));
+
+    ReturnErrorOnFailure(writer.Finalize(&buffer));
+
+    reader.Init(std::move(buffer));
+    return reader.Next(chip::TLV::kTLVType_Structure, chip::TLV::AnonymousTag());
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error
+{
+    chip::System::PacketBufferTLVReader reader;
+    CHIP_ERROR err = [self _encodeToTLVReader:reader];
+    if (err != CHIP_NO_ERROR) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:err];
+        }
+        return nil;
+    }
+
+    auto decodedObj = MTRDecodeDataValueDictionaryFromCHIPTLV(&reader);
+    if (decodedObj == nil) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INCORRECT_STATE];
+        }
+    }
+    return decodedObj;
+}
+@end
+
+@implementation MTRPushAVStreamTransportClusterManuallyTriggerTransportParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _connectionID = @(0);
+
+        _activationReason = nil;
+
+        _timeControl = nil;
+        _timedInvokeTimeoutMs = nil;
+        _serverSideProcessingTimeout = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRPushAVStreamTransportClusterManuallyTriggerTransportParams alloc] init];
+
+    other.connectionID = self.connectionID;
+    other.activationReason = self.activationReason;
+    other.timeControl = self.timeControl;
+    other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs;
+    other.serverSideProcessingTimeout = self.serverSideProcessingTimeout;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: connectionID:%@; activationReason:%@; timeControl:%@; >", NSStringFromClass([self class]), _connectionID, _activationReason, _timeControl];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRPushAVStreamTransportClusterManuallyTriggerTransportParams (InternalMethods)
+
+- (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader
+{
+    chip::app::Clusters::PushAvStreamTransport::Commands::ManuallyTriggerTransport::Type encodableStruct;
+    ListFreer listFreer;
+    {
+        encodableStruct.connectionID = self.connectionID.unsignedShortValue;
+    }
+    {
+        if (self.activationReason == nil) {
+            encodableStruct.activationReason.SetNull();
+        } else {
+            auto & nonNullValue_0 = encodableStruct.activationReason.SetNonNull();
+            nonNullValue_0 = static_cast<std::remove_reference_t<decltype(nonNullValue_0)>>(self.activationReason.unsignedCharValue);
+        }
+    }
+    {
+        if (self.timeControl != nil) {
+            auto & definedValue_0 = encodableStruct.timeControl.Emplace();
+            if (self.timeControl == nil) {
+                definedValue_0.SetNull();
+            } else {
+                auto & nonNullValue_1 = definedValue_0.SetNonNull();
+                nonNullValue_1.initialDuration = self.timeControl.initialDuration.unsignedShortValue;
+                nonNullValue_1.augmentationDuration = self.timeControl.augmentationDuration.unsignedShortValue;
+                nonNullValue_1.maxDuration = self.timeControl.maxDuration.unsignedIntValue;
+                nonNullValue_1.blindDuration = self.timeControl.blindDuration.unsignedShortValue;
+            }
+        }
+    }
+
+    auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0);
+    if (buffer.IsNull()) {
+        return CHIP_ERROR_NO_MEMORY;
+    }
+
+    chip::System::PacketBufferTLVWriter writer;
+    // Commands never need chained buffers, since they cannot be chunked.
+    writer.Init(std::move(buffer), /* useChainedBuffers = */ false);
+
+    ReturnErrorOnFailure(chip::app::DataModel::Encode(writer, chip::TLV::AnonymousTag(), encodableStruct));
+
+    ReturnErrorOnFailure(writer.Finalize(&buffer));
+
+    reader.Init(std::move(buffer));
+    return reader.Next(chip::TLV::kTLVType_Structure, chip::TLV::AnonymousTag());
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error
+{
+    chip::System::PacketBufferTLVReader reader;
+    CHIP_ERROR err = [self _encodeToTLVReader:reader];
+    if (err != CHIP_NO_ERROR) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:err];
+        }
+        return nil;
+    }
+
+    auto decodedObj = MTRDecodeDataValueDictionaryFromCHIPTLV(&reader);
+    if (decodedObj == nil) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INCORRECT_STATE];
+        }
+    }
+    return decodedObj;
+}
+@end
+
+@implementation MTRPushAVStreamTransportClusterFindStreamConfigurationParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _connectionID = nil;
+        _timedInvokeTimeoutMs = nil;
+        _serverSideProcessingTimeout = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRPushAVStreamTransportClusterFindStreamConfigurationParams alloc] init];
+
+    other.connectionID = self.connectionID;
+    other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs;
+    other.serverSideProcessingTimeout = self.serverSideProcessingTimeout;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: connectionID:%@; >", NSStringFromClass([self class]), _connectionID];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRPushAVStreamTransportClusterFindStreamConfigurationParams (InternalMethods)
+
+- (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader
+{
+    chip::app::Clusters::PushAvStreamTransport::Commands::FindStreamConfiguration::Type encodableStruct;
+    ListFreer listFreer;
+    {
+        if (self.connectionID != nil) {
+            auto & definedValue_0 = encodableStruct.connectionID.Emplace();
+            if (self.connectionID == nil) {
+                definedValue_0.SetNull();
+            } else {
+                auto & nonNullValue_1 = definedValue_0.SetNonNull();
+                nonNullValue_1 = self.connectionID.unsignedShortValue;
+            }
+        }
+    }
+
+    auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0);
+    if (buffer.IsNull()) {
+        return CHIP_ERROR_NO_MEMORY;
+    }
+
+    chip::System::PacketBufferTLVWriter writer;
+    // Commands never need chained buffers, since they cannot be chunked.
+    writer.Init(std::move(buffer), /* useChainedBuffers = */ false);
+
+    ReturnErrorOnFailure(chip::app::DataModel::Encode(writer, chip::TLV::AnonymousTag(), encodableStruct));
+
+    ReturnErrorOnFailure(writer.Finalize(&buffer));
+
+    reader.Init(std::move(buffer));
+    return reader.Next(chip::TLV::kTLVType_Structure, chip::TLV::AnonymousTag());
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error
+{
+    chip::System::PacketBufferTLVReader reader;
+    CHIP_ERROR err = [self _encodeToTLVReader:reader];
+    if (err != CHIP_NO_ERROR) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:err];
+        }
+        return nil;
+    }
+
+    auto decodedObj = MTRDecodeDataValueDictionaryFromCHIPTLV(&reader);
+    if (decodedObj == nil) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INCORRECT_STATE];
+        }
+    }
+    return decodedObj;
+}
+@end
+
+@implementation MTRPushAVStreamTransportClusterFindStreamConfigurationResponseParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _streamConfigurations = [NSArray array];
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRPushAVStreamTransportClusterFindStreamConfigurationResponseParams alloc] init];
+
+    other.streamConfigurations = self.streamConfigurations;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: streamConfigurations:%@; >", NSStringFromClass([self class]), _streamConfigurations];
+    return descriptionString;
+}
+
+- (nullable instancetype)initWithResponseValue:(NSDictionary<NSString *, id> *)responseValue
+                                         error:(NSError * __autoreleasing *)error
+{
+    if (!(self = [super init])) {
+        return nil;
+    }
+
+    using DecodableType = chip::app::Clusters::PushAvStreamTransport::Commands::FindStreamConfigurationResponse::DecodableType;
+    chip::System::PacketBufferHandle buffer = [MTRBaseDevice _responseDataForCommand:responseValue
+                                                                           clusterID:DecodableType::GetClusterId()
+                                                                           commandID:DecodableType::GetCommandId()
+                                                                               error:error];
+    if (buffer.IsNull()) {
+        return nil;
+    }
+
+    chip::TLV::TLVReader reader;
+    reader.Init(buffer->Start(), buffer->DataLength());
+
+    CHIP_ERROR err = reader.Next(chip::TLV::AnonymousTag());
+    if (err == CHIP_NO_ERROR) {
+        DecodableType decodedStruct;
+        err = chip::app::DataModel::Decode(reader, decodedStruct);
+        if (err == CHIP_NO_ERROR) {
+            err = [self _setFieldsFromDecodableStruct:decodedStruct];
+            if (err == CHIP_NO_ERROR) {
+                return self;
+            }
+        }
+    }
+
+    NSString * errorStr = [NSString stringWithFormat:@"Command payload decoding failed: %s", err.AsString()];
+    MTR_LOG_ERROR("%s", errorStr.UTF8String);
+    if (error != nil) {
+        NSDictionary * userInfo = @{ NSLocalizedFailureReasonErrorKey : NSLocalizedString(errorStr, nil) };
+        *error = [NSError errorWithDomain:MTRErrorDomain code:MTRErrorCodeSchemaMismatch userInfo:userInfo];
+    }
+    return nil;
+}
+
+@end
+
+@implementation MTRPushAVStreamTransportClusterFindStreamConfigurationResponseParams (InternalMethods)
+
+- (CHIP_ERROR)_setFieldsFromDecodableStruct:(const chip::app::Clusters::PushAvStreamTransport::Commands::FindStreamConfigurationResponse::DecodableType &)decodableStruct
+{
+    {
+        { // Scope for our temporary variables
+            auto * array_0 = [NSMutableArray new];
+            auto iter_0 = decodableStruct.streamConfigurations.begin();
+            while (iter_0.Next()) {
+                auto & entry_0 = iter_0.GetValue();
+                MTRPushAVStreamTransportClusterPushAVStreamConfigurationStruct * newElement_0;
+                newElement_0 = [MTRPushAVStreamTransportClusterPushAVStreamConfigurationStruct new];
+                newElement_0.connectionID = [NSNumber numberWithUnsignedShort:entry_0.connectionID];
+                newElement_0.streamTransportStatus = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0.streamTransportStatus)];
+                newElement_0.streamTransportOptions = [MTRPushAVStreamTransportClusterPushAVStreamTransportOptionsStruct new];
+                newElement_0.streamTransportOptions.streamType = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0.streamTransportOptions.streamType)];
+                if (entry_0.streamTransportOptions.videoStreamID.HasValue()) {
+                    if (entry_0.streamTransportOptions.videoStreamID.Value().IsNull()) {
+                        newElement_0.streamTransportOptions.videoStreamID = nil;
+                    } else {
+                        newElement_0.streamTransportOptions.videoStreamID = [NSNumber numberWithUnsignedShort:entry_0.streamTransportOptions.videoStreamID.Value().Value()];
+                    }
+                } else {
+                    newElement_0.streamTransportOptions.videoStreamID = nil;
+                }
+                if (entry_0.streamTransportOptions.audioStreamID.HasValue()) {
+                    if (entry_0.streamTransportOptions.audioStreamID.Value().IsNull()) {
+                        newElement_0.streamTransportOptions.audioStreamID = nil;
+                    } else {
+                        newElement_0.streamTransportOptions.audioStreamID = [NSNumber numberWithUnsignedShort:entry_0.streamTransportOptions.audioStreamID.Value().Value()];
+                    }
+                } else {
+                    newElement_0.streamTransportOptions.audioStreamID = nil;
+                }
+                newElement_0.streamTransportOptions.tlsEndpointID = [NSNumber numberWithUnsignedShort:entry_0.streamTransportOptions.TLSEndpointID];
+                newElement_0.streamTransportOptions.url = AsString(entry_0.streamTransportOptions.url);
+                if (newElement_0.streamTransportOptions.url == nil) {
+                    CHIP_ERROR err = CHIP_ERROR_INVALID_ARGUMENT;
+                    return err;
+                }
+                newElement_0.streamTransportOptions.triggerOptions = [MTRPushAVStreamTransportClusterPushAVStreamTransportTriggerOptionsStruct new];
+                newElement_0.streamTransportOptions.triggerOptions.triggerType = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0.streamTransportOptions.triggerOptions.triggerType)];
+                if (entry_0.streamTransportOptions.triggerOptions.motionZones.HasValue()) {
+                    if (entry_0.streamTransportOptions.triggerOptions.motionZones.Value().IsNull()) {
+                        newElement_0.streamTransportOptions.triggerOptions.motionZones = nil;
+                    } else {
+                        { // Scope for our temporary variables
+                            auto * array_6 = [NSMutableArray new];
+                            auto iter_6 = entry_0.streamTransportOptions.triggerOptions.motionZones.Value().Value().begin();
+                            while (iter_6.Next()) {
+                                auto & entry_6 = iter_6.GetValue();
+                                NSNumber * newElement_6;
+                                newElement_6 = [NSNumber numberWithUnsignedShort:entry_6];
+                                [array_6 addObject:newElement_6];
+                            }
+                            CHIP_ERROR err = iter_6.GetStatus();
+                            if (err != CHIP_NO_ERROR) {
+                                return err;
+                            }
+                            newElement_0.streamTransportOptions.triggerOptions.motionZones = array_6;
+                        }
+                    }
+                } else {
+                    newElement_0.streamTransportOptions.triggerOptions.motionZones = nil;
+                }
+                if (entry_0.streamTransportOptions.triggerOptions.motionSensitivity.HasValue()) {
+                    if (entry_0.streamTransportOptions.triggerOptions.motionSensitivity.Value().IsNull()) {
+                        newElement_0.streamTransportOptions.triggerOptions.motionSensitivity = nil;
+                    } else {
+                        newElement_0.streamTransportOptions.triggerOptions.motionSensitivity = [NSNumber numberWithUnsignedChar:entry_0.streamTransportOptions.triggerOptions.motionSensitivity.Value().Value()];
+                    }
+                } else {
+                    newElement_0.streamTransportOptions.triggerOptions.motionSensitivity = nil;
+                }
+                if (entry_0.streamTransportOptions.triggerOptions.motionTimeControl.HasValue()) {
+                    if (entry_0.streamTransportOptions.triggerOptions.motionTimeControl.Value().IsNull()) {
+                        newElement_0.streamTransportOptions.triggerOptions.motionTimeControl = nil;
+                    } else {
+                        newElement_0.streamTransportOptions.triggerOptions.motionTimeControl = [MTRPushAVStreamTransportClusterPushAVStreamTransportMotionTriggerTimeControlStruct new];
+                        newElement_0.streamTransportOptions.triggerOptions.motionTimeControl.initialDuration = [NSNumber numberWithUnsignedShort:entry_0.streamTransportOptions.triggerOptions.motionTimeControl.Value().Value().initialDuration];
+                        newElement_0.streamTransportOptions.triggerOptions.motionTimeControl.augmentationDuration = [NSNumber numberWithUnsignedShort:entry_0.streamTransportOptions.triggerOptions.motionTimeControl.Value().Value().augmentationDuration];
+                        newElement_0.streamTransportOptions.triggerOptions.motionTimeControl.maxDuration = [NSNumber numberWithUnsignedInt:entry_0.streamTransportOptions.triggerOptions.motionTimeControl.Value().Value().maxDuration];
+                        newElement_0.streamTransportOptions.triggerOptions.motionTimeControl.blindDuration = [NSNumber numberWithUnsignedShort:entry_0.streamTransportOptions.triggerOptions.motionTimeControl.Value().Value().blindDuration];
+                    }
+                } else {
+                    newElement_0.streamTransportOptions.triggerOptions.motionTimeControl = nil;
+                }
+                if (entry_0.streamTransportOptions.triggerOptions.activationReason.HasValue()) {
+                    if (entry_0.streamTransportOptions.triggerOptions.activationReason.Value().IsNull()) {
+                        newElement_0.streamTransportOptions.triggerOptions.activationReason = nil;
+                    } else {
+                        newElement_0.streamTransportOptions.triggerOptions.activationReason = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0.streamTransportOptions.triggerOptions.activationReason.Value().Value())];
+                    }
+                } else {
+                    newElement_0.streamTransportOptions.triggerOptions.activationReason = nil;
+                }
+                newElement_0.streamTransportOptions.containerFormat = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0.streamTransportOptions.containerFormat)];
+                newElement_0.streamTransportOptions.ingestMethod = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0.streamTransportOptions.ingestMethod)];
+                newElement_0.streamTransportOptions.containerOptions = [MTRPushAVStreamTransportClusterPushAVStreamTransportContainerOptionsStruct new];
+                newElement_0.streamTransportOptions.containerOptions.containerType = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0.streamTransportOptions.containerOptions.containerType)];
+                if (entry_0.streamTransportOptions.containerOptions.CMAFContainerOptions.HasValue()) {
+                    if (entry_0.streamTransportOptions.containerOptions.CMAFContainerOptions.Value().IsNull()) {
+                        newElement_0.streamTransportOptions.containerOptions.cmafContainerOptions = nil;
+                    } else {
+                        newElement_0.streamTransportOptions.containerOptions.cmafContainerOptions = [MTRPushAVStreamTransportClusterPushAVStreamTransportCMAFContainerOptionsStruct new];
+                        newElement_0.streamTransportOptions.containerOptions.cmafContainerOptions.chunkDuration = [NSNumber numberWithUnsignedShort:entry_0.streamTransportOptions.containerOptions.CMAFContainerOptions.Value().Value().chunkDuration];
+                        if (entry_0.streamTransportOptions.containerOptions.CMAFContainerOptions.Value().Value().CENCKey.HasValue()) {
+                            if (entry_0.streamTransportOptions.containerOptions.CMAFContainerOptions.Value().Value().CENCKey.Value().IsNull()) {
+                                newElement_0.streamTransportOptions.containerOptions.cmafContainerOptions.cencKey = nil;
+                            } else {
+                                newElement_0.streamTransportOptions.containerOptions.cmafContainerOptions.cencKey = AsData(entry_0.streamTransportOptions.containerOptions.CMAFContainerOptions.Value().Value().CENCKey.Value().Value());
+                            }
+                        } else {
+                            newElement_0.streamTransportOptions.containerOptions.cmafContainerOptions.cencKey = nil;
+                        }
+                    }
+                } else {
+                    newElement_0.streamTransportOptions.containerOptions.cmafContainerOptions = nil;
+                }
+                if (entry_0.streamTransportOptions.metadataOptions.HasValue()) {
+                    if (entry_0.streamTransportOptions.metadataOptions.Value().IsNull()) {
+                        newElement_0.streamTransportOptions.metadataOptions = nil;
+                    } else {
+                        newElement_0.streamTransportOptions.metadataOptions = [MTRPushAVStreamTransportClusterPushAVStreamTransportMetadataOptionsStruct new];
+                        newElement_0.streamTransportOptions.metadataOptions.multiplexing = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0.streamTransportOptions.metadataOptions.Value().Value().multiplexing)];
+                        newElement_0.streamTransportOptions.metadataOptions.includeMotionZones = [NSNumber numberWithBool:entry_0.streamTransportOptions.metadataOptions.Value().Value().includeMotionZones];
+                        newElement_0.streamTransportOptions.metadataOptions.enableMetadataPrivacySensitive = [NSNumber numberWithBool:entry_0.streamTransportOptions.metadataOptions.Value().Value().enableMetadataPrivacySensitive];
+                    }
+                } else {
+                    newElement_0.streamTransportOptions.metadataOptions = nil;
+                }
+                if (entry_0.streamTransportOptions.expiryTime.HasValue()) {
+                    if (entry_0.streamTransportOptions.expiryTime.Value().IsNull()) {
+                        newElement_0.streamTransportOptions.expiryTime = nil;
+                    } else {
+                        newElement_0.streamTransportOptions.expiryTime = [NSNumber numberWithUnsignedInt:entry_0.streamTransportOptions.expiryTime.Value().Value()];
+                    }
+                } else {
+                    newElement_0.streamTransportOptions.expiryTime = nil;
+                }
+                [array_0 addObject:newElement_0];
+            }
+            CHIP_ERROR err = iter_0.GetStatus();
+            if (err != CHIP_NO_ERROR) {
+                return err;
+            }
+            self.streamConfigurations = array_0;
+        }
+    }
+    return CHIP_NO_ERROR;
+}
+
+@end
+
+@implementation MTRChimeClusterPlayChimeSoundParams
+- (instancetype)init
+{
+    if (self = [super init]) {
+        _timedInvokeTimeoutMs = nil;
+        _serverSideProcessingTimeout = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+    auto other = [[MTRChimeClusterPlayChimeSoundParams alloc] init];
+
+    other.timedInvokeTimeoutMs = self.timedInvokeTimeoutMs;
+    other.serverSideProcessingTimeout = self.serverSideProcessingTimeout;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: >", NSStringFromClass([self class])];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRChimeClusterPlayChimeSoundParams (InternalMethods)
+
+- (CHIP_ERROR)_encodeToTLVReader:(chip::System::PacketBufferTLVReader &)reader
+{
+    chip::app::Clusters::Chime::Commands::PlayChimeSound::Type encodableStruct;
+    ListFreer listFreer;
+
+    auto buffer = chip::System::PacketBufferHandle::New(chip::System::PacketBuffer::kMaxSizeWithoutReserve, 0);
+    if (buffer.IsNull()) {
+        return CHIP_ERROR_NO_MEMORY;
+    }
+
+    chip::System::PacketBufferTLVWriter writer;
+    // Commands never need chained buffers, since they cannot be chunked.
+    writer.Init(std::move(buffer), /* useChainedBuffers = */ false);
+
+    ReturnErrorOnFailure(chip::app::DataModel::Encode(writer, chip::TLV::AnonymousTag(), encodableStruct));
+
+    ReturnErrorOnFailure(writer.Finalize(&buffer));
+
+    reader.Init(std::move(buffer));
+    return reader.Next(chip::TLV::kTLVType_Structure, chip::TLV::AnonymousTag());
+}
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error
+{
+    chip::System::PacketBufferTLVReader reader;
+    CHIP_ERROR err = [self _encodeToTLVReader:reader];
+    if (err != CHIP_NO_ERROR) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:err];
+        }
+        return nil;
+    }
+
+    auto decodedObj = MTRDecodeDataValueDictionaryFromCHIPTLV(&reader);
+    if (decodedObj == nil) {
+        if (error) {
+            *error = [MTRError errorForCHIPErrorCode:CHIP_ERROR_INCORRECT_STATE];
+        }
+    }
+    return decodedObj;
+}
+@end
+
 @implementation MTRCommissionerControlClusterRequestCommissioningApprovalParams
 - (instancetype)init
 {
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloads_Internal.h b/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloads_Internal.h
index 91e4e865355198..f735ef9a7f5525 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloads_Internal.h
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloads_Internal.h
@@ -2044,6 +2044,258 @@ NS_ASSUME_NONNULL_BEGIN
 
 @end
 
+@interface MTRCameraAVStreamManagementClusterAudioStreamAllocateParams (InternalMethods)
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
+
+@end
+
+@interface MTRCameraAVStreamManagementClusterAudioStreamAllocateResponseParams (InternalMethods)
+
+- (CHIP_ERROR)_setFieldsFromDecodableStruct:(const chip::app::Clusters::CameraAvStreamManagement::Commands::AudioStreamAllocateResponse::DecodableType &)decodableStruct;
+
+@end
+
+@interface MTRCameraAVStreamManagementClusterAudioStreamDeallocateParams (InternalMethods)
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
+
+@end
+
+@interface MTRCameraAVStreamManagementClusterVideoStreamAllocateParams (InternalMethods)
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
+
+@end
+
+@interface MTRCameraAVStreamManagementClusterVideoStreamAllocateResponseParams (InternalMethods)
+
+- (CHIP_ERROR)_setFieldsFromDecodableStruct:(const chip::app::Clusters::CameraAvStreamManagement::Commands::VideoStreamAllocateResponse::DecodableType &)decodableStruct;
+
+@end
+
+@interface MTRCameraAVStreamManagementClusterVideoStreamModifyParams (InternalMethods)
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
+
+@end
+
+@interface MTRCameraAVStreamManagementClusterVideoStreamDeallocateParams (InternalMethods)
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
+
+@end
+
+@interface MTRCameraAVStreamManagementClusterSnapshotStreamAllocateParams (InternalMethods)
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
+
+@end
+
+@interface MTRCameraAVStreamManagementClusterSnapshotStreamAllocateResponseParams (InternalMethods)
+
+- (CHIP_ERROR)_setFieldsFromDecodableStruct:(const chip::app::Clusters::CameraAvStreamManagement::Commands::SnapshotStreamAllocateResponse::DecodableType &)decodableStruct;
+
+@end
+
+@interface MTRCameraAVStreamManagementClusterSnapshotStreamDeallocateParams (InternalMethods)
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
+
+@end
+
+@interface MTRCameraAVStreamManagementClusterSetStreamPriorityParams (InternalMethods)
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
+
+@end
+
+@interface MTRCameraAVStreamManagementClusterCaptureSnapshotParams (InternalMethods)
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
+
+@end
+
+@interface MTRCameraAVStreamManagementClusterCaptureSnapshotResponseParams (InternalMethods)
+
+- (CHIP_ERROR)_setFieldsFromDecodableStruct:(const chip::app::Clusters::CameraAvStreamManagement::Commands::CaptureSnapshotResponse::DecodableType &)decodableStruct;
+
+@end
+
+@interface MTRCameraAVStreamManagementClusterSetViewportParams (InternalMethods)
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
+
+@end
+
+@interface MTRCameraAVStreamManagementClusterSetImageRotationParams (InternalMethods)
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
+
+@end
+
+@interface MTRCameraAVStreamManagementClusterSetImageFlipHorizontalParams (InternalMethods)
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
+
+@end
+
+@interface MTRCameraAVStreamManagementClusterSetImageFlipVerticalParams (InternalMethods)
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
+
+@end
+
+@interface MTRCameraAVSettingsUserLevelManagementClusterMptzSetParams (InternalMethods)
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
+
+@end
+
+@interface MTRCameraAVSettingsUserLevelManagementClusterMptzRelativeMoveParams (InternalMethods)
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
+
+@end
+
+@interface MTRCameraAVSettingsUserLevelManagementClusterSetAsPresetParams (InternalMethods)
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
+
+@end
+
+@interface MTRCameraAVSettingsUserLevelManagementClusterDptzSetViewportParams (InternalMethods)
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
+
+@end
+
+@interface MTRCameraAVSettingsUserLevelManagementClusterDptzRelativeMoveParams (InternalMethods)
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
+
+@end
+
+@interface MTRWebRTCTransportProviderClusterWebRTCSolicitOfferParams (InternalMethods)
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
+
+@end
+
+@interface MTRWebRTCTransportProviderClusterWebRTCSolicitOfferResponseParams (InternalMethods)
+
+- (CHIP_ERROR)_setFieldsFromDecodableStruct:(const chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCSolicitOfferResponse::DecodableType &)decodableStruct;
+
+@end
+
+@interface MTRWebRTCTransportProviderClusterWebRTCProvideOfferParams (InternalMethods)
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
+
+@end
+
+@interface MTRWebRTCTransportProviderClusterWebRTCProvideOfferResponseParams (InternalMethods)
+
+- (CHIP_ERROR)_setFieldsFromDecodableStruct:(const chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCProvideOfferResponse::DecodableType &)decodableStruct;
+
+@end
+
+@interface MTRWebRTCTransportProviderClusterWebRTCProvideAnswerParams (InternalMethods)
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
+
+@end
+
+@interface MTRWebRTCTransportProviderClusterWebRTCProvideICECandidateParams (InternalMethods)
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
+
+@end
+
+@interface MTRWebRTCTransportProviderClusterWebRTCEndSessionParams (InternalMethods)
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
+
+@end
+
+@interface MTRWebRTCTransportRequestorClusterWebRTCOfferParams (InternalMethods)
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
+
+@end
+
+@interface MTRWebRTCTransportRequestorClusterWebRTCAnswerParams (InternalMethods)
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
+
+@end
+
+@interface MTRWebRTCTransportRequestorClusterWebRTCICECandidateParams (InternalMethods)
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
+
+@end
+
+@interface MTRWebRTCTransportRequestorClusterWebRTCEndParams (InternalMethods)
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
+
+@end
+
+@interface MTRPushAVStreamTransportClusterAllocatePushTransportParams (InternalMethods)
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
+
+@end
+
+@interface MTRPushAVStreamTransportClusterAllocatePushTransportResponseParams (InternalMethods)
+
+- (CHIP_ERROR)_setFieldsFromDecodableStruct:(const chip::app::Clusters::PushAvStreamTransport::Commands::AllocatePushTransportResponse::DecodableType &)decodableStruct;
+
+@end
+
+@interface MTRPushAVStreamTransportClusterDeallocatePushTransportParams (InternalMethods)
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
+
+@end
+
+@interface MTRPushAVStreamTransportClusterModifyPushTransportParams (InternalMethods)
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
+
+@end
+
+@interface MTRPushAVStreamTransportClusterSetTransportStatusParams (InternalMethods)
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
+
+@end
+
+@interface MTRPushAVStreamTransportClusterManuallyTriggerTransportParams (InternalMethods)
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
+
+@end
+
+@interface MTRPushAVStreamTransportClusterFindStreamConfigurationParams (InternalMethods)
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
+
+@end
+
+@interface MTRPushAVStreamTransportClusterFindStreamConfigurationResponseParams (InternalMethods)
+
+- (CHIP_ERROR)_setFieldsFromDecodableStruct:(const chip::app::Clusters::PushAvStreamTransport::Commands::FindStreamConfigurationResponse::DecodableType &)decodableStruct;
+
+@end
+
+@interface MTRChimeClusterPlayChimeSoundParams (InternalMethods)
+
+- (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
+
+@end
+
 @interface MTRCommissionerControlClusterRequestCommissioningApprovalParams (InternalMethods)
 
 - (NSDictionary<NSString *, id> * _Nullable)_encodeAsDataValue:(NSError * __autoreleasing *)error;
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRCommandTimedCheck.mm b/src/darwin/Framework/CHIP/zap-generated/MTRCommandTimedCheck.mm
index 6dc2c38f8447ef..fe1f13b31a07ec 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRCommandTimedCheck.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRCommandTimedCheck.mm
@@ -1151,6 +1151,60 @@ static BOOL CommandNeedsTimedInvokeInContentAppObserverCluster(AttributeId aAttr
     }
     }
 }
+static BOOL CommandNeedsTimedInvokeInCameraAVStreamManagementCluster(AttributeId aAttributeId)
+{
+    using namespace Clusters::CameraAvStreamManagement;
+    switch (aAttributeId) {
+    default: {
+        return NO;
+    }
+    }
+}
+static BOOL CommandNeedsTimedInvokeInCameraAVSettingsUserLevelManagementCluster(AttributeId aAttributeId)
+{
+    using namespace Clusters::CameraAvSettingsUserLevelManagement;
+    switch (aAttributeId) {
+    default: {
+        return NO;
+    }
+    }
+}
+static BOOL CommandNeedsTimedInvokeInWebRTCTransportProviderCluster(AttributeId aAttributeId)
+{
+    using namespace Clusters::WebRTCTransportProvider;
+    switch (aAttributeId) {
+    default: {
+        return NO;
+    }
+    }
+}
+static BOOL CommandNeedsTimedInvokeInWebRTCTransportRequestorCluster(AttributeId aAttributeId)
+{
+    using namespace Clusters::WebRTCTransportRequestor;
+    switch (aAttributeId) {
+    default: {
+        return NO;
+    }
+    }
+}
+static BOOL CommandNeedsTimedInvokeInPushAVStreamTransportCluster(AttributeId aAttributeId)
+{
+    using namespace Clusters::PushAvStreamTransport;
+    switch (aAttributeId) {
+    default: {
+        return NO;
+    }
+    }
+}
+static BOOL CommandNeedsTimedInvokeInChimeCluster(AttributeId aAttributeId)
+{
+    using namespace Clusters::Chime;
+    switch (aAttributeId) {
+    default: {
+        return NO;
+    }
+    }
+}
 static BOOL CommandNeedsTimedInvokeInEcosystemInformationCluster(AttributeId aAttributeId)
 {
     using namespace Clusters::EcosystemInformation;
@@ -1557,6 +1611,24 @@ BOOL MTRCommandNeedsTimedInvoke(NSNumber * _Nonnull aClusterID, NSNumber * _Nonn
     case Clusters::ContentAppObserver::Id: {
         return CommandNeedsTimedInvokeInContentAppObserverCluster(commandID);
     }
+    case Clusters::CameraAvStreamManagement::Id: {
+        return CommandNeedsTimedInvokeInCameraAVStreamManagementCluster(commandID);
+    }
+    case Clusters::CameraAvSettingsUserLevelManagement::Id: {
+        return CommandNeedsTimedInvokeInCameraAVSettingsUserLevelManagementCluster(commandID);
+    }
+    case Clusters::WebRTCTransportProvider::Id: {
+        return CommandNeedsTimedInvokeInWebRTCTransportProviderCluster(commandID);
+    }
+    case Clusters::WebRTCTransportRequestor::Id: {
+        return CommandNeedsTimedInvokeInWebRTCTransportRequestorCluster(commandID);
+    }
+    case Clusters::PushAvStreamTransport::Id: {
+        return CommandNeedsTimedInvokeInPushAVStreamTransportCluster(commandID);
+    }
+    case Clusters::Chime::Id: {
+        return CommandNeedsTimedInvokeInChimeCluster(commandID);
+    }
     case Clusters::EcosystemInformation::Id: {
         return CommandNeedsTimedInvokeInEcosystemInformationCluster(commandID);
     }
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTREventTLVValueDecoder.mm b/src/darwin/Framework/CHIP/zap-generated/MTREventTLVValueDecoder.mm
index 6ecc072f6b44a6..7eea7850583141 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTREventTLVValueDecoder.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTREventTLVValueDecoder.mm
@@ -4579,6 +4579,416 @@ static id _Nullable DecodeEventPayloadForContentAppObserverCluster(EventId aEven
     *aError = CHIP_ERROR_IM_MALFORMED_EVENT_PATH_IB;
     return nil;
 }
+static id _Nullable DecodeEventPayloadForCameraAVStreamManagementCluster(EventId aEventId, TLV::TLVReader & aReader, CHIP_ERROR * aError)
+{
+    using namespace Clusters::CameraAvStreamManagement;
+    switch (aEventId) {
+    case Events::VideoStreamChanged::Id: {
+        Events::VideoStreamChanged::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+
+        __auto_type * value = [MTRCameraAVStreamManagementClusterVideoStreamChangedEvent new];
+
+        do {
+            NSNumber * _Nonnull memberValue;
+            memberValue = [NSNumber numberWithUnsignedShort:cppValue.videoStreamID];
+            value.videoStreamID = memberValue;
+        } while (0);
+        do {
+            NSNumber * _Nullable memberValue;
+            if (cppValue.streamType.HasValue()) {
+                memberValue = [NSNumber numberWithUnsignedChar:chip::to_underlying(cppValue.streamType.Value())];
+            } else {
+                memberValue = nil;
+            }
+            value.streamType = memberValue;
+        } while (0);
+        do {
+            NSNumber * _Nullable memberValue;
+            if (cppValue.videoCodec.HasValue()) {
+                memberValue = [NSNumber numberWithUnsignedChar:chip::to_underlying(cppValue.videoCodec.Value())];
+            } else {
+                memberValue = nil;
+            }
+            value.videoCodec = memberValue;
+        } while (0);
+        do {
+            NSNumber * _Nullable memberValue;
+            if (cppValue.minFrameRate.HasValue()) {
+                memberValue = [NSNumber numberWithUnsignedShort:cppValue.minFrameRate.Value()];
+            } else {
+                memberValue = nil;
+            }
+            value.minFrameRate = memberValue;
+        } while (0);
+        do {
+            NSNumber * _Nullable memberValue;
+            if (cppValue.maxFrameRate.HasValue()) {
+                memberValue = [NSNumber numberWithUnsignedShort:cppValue.maxFrameRate.Value()];
+            } else {
+                memberValue = nil;
+            }
+            value.maxFrameRate = memberValue;
+        } while (0);
+        do {
+            MTRCameraAVStreamManagementClusterDimensionStruct * _Nullable memberValue;
+            if (cppValue.minResolution.HasValue()) {
+                memberValue = [MTRCameraAVStreamManagementClusterDimensionStruct new];
+            } else {
+                memberValue = nil;
+            }
+            value.minResolution = memberValue;
+        } while (0);
+        do {
+            MTRCameraAVStreamManagementClusterDimensionStruct * _Nullable memberValue;
+            if (cppValue.maxResolution.HasValue()) {
+                memberValue = [MTRCameraAVStreamManagementClusterDimensionStruct new];
+            } else {
+                memberValue = nil;
+            }
+            value.maxResolution = memberValue;
+        } while (0);
+        do {
+            NSNumber * _Nullable memberValue;
+            if (cppValue.minBitRate.HasValue()) {
+                memberValue = [NSNumber numberWithUnsignedShort:cppValue.minBitRate.Value()];
+            } else {
+                memberValue = nil;
+            }
+            value.minBitRate = memberValue;
+        } while (0);
+        do {
+            NSNumber * _Nullable memberValue;
+            if (cppValue.maxBitRate.HasValue()) {
+                memberValue = [NSNumber numberWithUnsignedShort:cppValue.maxBitRate.Value()];
+            } else {
+                memberValue = nil;
+            }
+            value.maxBitRate = memberValue;
+        } while (0);
+        do {
+            NSNumber * _Nullable memberValue;
+            if (cppValue.minFragmentLen.HasValue()) {
+                memberValue = [NSNumber numberWithUnsignedShort:cppValue.minFragmentLen.Value()];
+            } else {
+                memberValue = nil;
+            }
+            value.minFragmentLen = memberValue;
+        } while (0);
+        do {
+            NSNumber * _Nullable memberValue;
+            if (cppValue.maxFragmentLen.HasValue()) {
+                memberValue = [NSNumber numberWithUnsignedShort:cppValue.maxFragmentLen.Value()];
+            } else {
+                memberValue = nil;
+            }
+            value.maxFragmentLen = memberValue;
+        } while (0);
+
+        return value;
+    }
+    case Events::AudioStreamChanged::Id: {
+        Events::AudioStreamChanged::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+
+        __auto_type * value = [MTRCameraAVStreamManagementClusterAudioStreamChangedEvent new];
+
+        do {
+            NSNumber * _Nonnull memberValue;
+            memberValue = [NSNumber numberWithUnsignedShort:cppValue.audioStreamID];
+            value.audioStreamID = memberValue;
+        } while (0);
+        do {
+            NSNumber * _Nullable memberValue;
+            if (cppValue.streamType.HasValue()) {
+                memberValue = [NSNumber numberWithUnsignedChar:chip::to_underlying(cppValue.streamType.Value())];
+            } else {
+                memberValue = nil;
+            }
+            value.streamType = memberValue;
+        } while (0);
+        do {
+            NSNumber * _Nullable memberValue;
+            if (cppValue.audioCodec.HasValue()) {
+                memberValue = [NSNumber numberWithUnsignedChar:chip::to_underlying(cppValue.audioCodec.Value())];
+            } else {
+                memberValue = nil;
+            }
+            value.audioCodec = memberValue;
+        } while (0);
+        do {
+            NSNumber * _Nullable memberValue;
+            if (cppValue.channelCount.HasValue()) {
+                memberValue = [NSNumber numberWithUnsignedChar:cppValue.channelCount.Value()];
+            } else {
+                memberValue = nil;
+            }
+            value.channelCount = memberValue;
+        } while (0);
+        do {
+            NSNumber * _Nullable memberValue;
+            if (cppValue.sampleRate.HasValue()) {
+                memberValue = [NSNumber numberWithUnsignedInt:cppValue.sampleRate.Value()];
+            } else {
+                memberValue = nil;
+            }
+            value.sampleRate = memberValue;
+        } while (0);
+        do {
+            NSNumber * _Nullable memberValue;
+            if (cppValue.bitRate.HasValue()) {
+                memberValue = [NSNumber numberWithUnsignedInt:cppValue.bitRate.Value()];
+            } else {
+                memberValue = nil;
+            }
+            value.bitRate = memberValue;
+        } while (0);
+        do {
+            NSNumber * _Nullable memberValue;
+            if (cppValue.bitDepth.HasValue()) {
+                memberValue = [NSNumber numberWithUnsignedChar:cppValue.bitDepth.Value()];
+            } else {
+                memberValue = nil;
+            }
+            value.bitDepth = memberValue;
+        } while (0);
+
+        return value;
+    }
+    case Events::SnapshotStreamChanged::Id: {
+        Events::SnapshotStreamChanged::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+
+        __auto_type * value = [MTRCameraAVStreamManagementClusterSnapshotStreamChangedEvent new];
+
+        do {
+            NSNumber * _Nonnull memberValue;
+            memberValue = [NSNumber numberWithUnsignedShort:cppValue.snapshotStreamID];
+            value.snapshotStreamID = memberValue;
+        } while (0);
+        do {
+            NSNumber * _Nullable memberValue;
+            if (cppValue.imageCodec.HasValue()) {
+                memberValue = [NSNumber numberWithUnsignedChar:chip::to_underlying(cppValue.imageCodec.Value())];
+            } else {
+                memberValue = nil;
+            }
+            value.imageCodec = memberValue;
+        } while (0);
+        do {
+            NSNumber * _Nullable memberValue;
+            if (cppValue.frameRate.HasValue()) {
+                memberValue = [NSNumber numberWithUnsignedShort:cppValue.frameRate.Value()];
+            } else {
+                memberValue = nil;
+            }
+            value.frameRate = memberValue;
+        } while (0);
+        do {
+            NSNumber * _Nullable memberValue;
+            if (cppValue.bitRate.HasValue()) {
+                memberValue = [NSNumber numberWithUnsignedInt:cppValue.bitRate.Value()];
+            } else {
+                memberValue = nil;
+            }
+            value.bitRate = memberValue;
+        } while (0);
+        do {
+            MTRCameraAVStreamManagementClusterDimensionStruct * _Nullable memberValue;
+            if (cppValue.minResolution.HasValue()) {
+                memberValue = [MTRCameraAVStreamManagementClusterDimensionStruct new];
+            } else {
+                memberValue = nil;
+            }
+            value.minResolution = memberValue;
+        } while (0);
+        do {
+            MTRCameraAVStreamManagementClusterDimensionStruct * _Nullable memberValue;
+            if (cppValue.maxResolution.HasValue()) {
+                memberValue = [MTRCameraAVStreamManagementClusterDimensionStruct new];
+            } else {
+                memberValue = nil;
+            }
+            value.maxResolution = memberValue;
+        } while (0);
+        do {
+            NSNumber * _Nullable memberValue;
+            if (cppValue.quality.HasValue()) {
+                memberValue = [NSNumber numberWithUnsignedChar:cppValue.quality.Value()];
+            } else {
+                memberValue = nil;
+            }
+            value.quality = memberValue;
+        } while (0);
+
+        return value;
+    }
+    default: {
+        break;
+    }
+    }
+
+    *aError = CHIP_ERROR_IM_MALFORMED_EVENT_PATH_IB;
+    return nil;
+}
+static id _Nullable DecodeEventPayloadForCameraAVSettingsUserLevelManagementCluster(EventId aEventId, TLV::TLVReader & aReader, CHIP_ERROR * aError)
+{
+    using namespace Clusters::CameraAvSettingsUserLevelManagement;
+    switch (aEventId) {
+    default: {
+        break;
+    }
+    }
+
+    *aError = CHIP_ERROR_IM_MALFORMED_EVENT_PATH_IB;
+    return nil;
+}
+static id _Nullable DecodeEventPayloadForWebRTCTransportProviderCluster(EventId aEventId, TLV::TLVReader & aReader, CHIP_ERROR * aError)
+{
+    using namespace Clusters::WebRTCTransportProvider;
+    switch (aEventId) {
+    default: {
+        break;
+    }
+    }
+
+    *aError = CHIP_ERROR_IM_MALFORMED_EVENT_PATH_IB;
+    return nil;
+}
+static id _Nullable DecodeEventPayloadForWebRTCTransportRequestorCluster(EventId aEventId, TLV::TLVReader & aReader, CHIP_ERROR * aError)
+{
+    using namespace Clusters::WebRTCTransportRequestor;
+    switch (aEventId) {
+    default: {
+        break;
+    }
+    }
+
+    *aError = CHIP_ERROR_IM_MALFORMED_EVENT_PATH_IB;
+    return nil;
+}
+static id _Nullable DecodeEventPayloadForPushAVStreamTransportCluster(EventId aEventId, TLV::TLVReader & aReader, CHIP_ERROR * aError)
+{
+    using namespace Clusters::PushAvStreamTransport;
+    switch (aEventId) {
+    case Events::PushTransportBegin::Id: {
+        Events::PushTransportBegin::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+
+        __auto_type * value = [MTRPushAVStreamTransportClusterPushTransportBeginEvent new];
+
+        return value;
+    }
+    case Events::PushTransportEnd::Id: {
+        Events::PushTransportEnd::DecodableType cppValue;
+        *aError = DataModel::Decode(aReader, cppValue);
+        if (*aError != CHIP_NO_ERROR) {
+            return nil;
+        }
+
+        __auto_type * value = [MTRPushAVStreamTransportClusterPushTransportEndEvent new];
+
+        do {
+            NSNumber * _Nonnull memberValue;
+            memberValue = [NSNumber numberWithUnsignedShort:cppValue.connectionID];
+            value.connectionID = memberValue;
+        } while (0);
+        do {
+            MTRPushAVStreamTransportClusterPushAVStreamTransportTriggerOptionsStruct * _Nonnull memberValue;
+            memberValue = [MTRPushAVStreamTransportClusterPushAVStreamTransportTriggerOptionsStruct new];
+            memberValue.triggerType = [NSNumber numberWithUnsignedChar:chip::to_underlying(cppValue.triggerDetails.triggerType)];
+            if (cppValue.triggerDetails.motionZones.HasValue()) {
+                if (cppValue.triggerDetails.motionZones.Value().IsNull()) {
+                    memberValue.motionZones = nil;
+                } else {
+                    { // Scope for our temporary variables
+                        auto * array_3 = [NSMutableArray new];
+                        auto iter_3 = cppValue.triggerDetails.motionZones.Value().Value().begin();
+                        while (iter_3.Next()) {
+                            auto & entry_3 = iter_3.GetValue();
+                            NSNumber * newElement_3;
+                            newElement_3 = [NSNumber numberWithUnsignedShort:entry_3];
+                            [array_3 addObject:newElement_3];
+                        }
+                        CHIP_ERROR err = iter_3.GetStatus();
+                        if (err != CHIP_NO_ERROR) {
+                            *aError = err;
+                            return nil;
+                        }
+                        memberValue.motionZones = array_3;
+                    }
+                }
+            } else {
+                memberValue.motionZones = nil;
+            }
+            if (cppValue.triggerDetails.motionSensitivity.HasValue()) {
+                if (cppValue.triggerDetails.motionSensitivity.Value().IsNull()) {
+                    memberValue.motionSensitivity = nil;
+                } else {
+                    memberValue.motionSensitivity = [NSNumber numberWithUnsignedChar:cppValue.triggerDetails.motionSensitivity.Value().Value()];
+                }
+            } else {
+                memberValue.motionSensitivity = nil;
+            }
+            if (cppValue.triggerDetails.motionTimeControl.HasValue()) {
+                if (cppValue.triggerDetails.motionTimeControl.Value().IsNull()) {
+                    memberValue.motionTimeControl = nil;
+                } else {
+                    memberValue.motionTimeControl = [MTRPushAVStreamTransportClusterPushAVStreamTransportMotionTriggerTimeControlStruct new];
+                    memberValue.motionTimeControl.initialDuration = [NSNumber numberWithUnsignedShort:cppValue.triggerDetails.motionTimeControl.Value().Value().initialDuration];
+                    memberValue.motionTimeControl.augmentationDuration = [NSNumber numberWithUnsignedShort:cppValue.triggerDetails.motionTimeControl.Value().Value().augmentationDuration];
+                    memberValue.motionTimeControl.maxDuration = [NSNumber numberWithUnsignedInt:cppValue.triggerDetails.motionTimeControl.Value().Value().maxDuration];
+                    memberValue.motionTimeControl.blindDuration = [NSNumber numberWithUnsignedShort:cppValue.triggerDetails.motionTimeControl.Value().Value().blindDuration];
+                }
+            } else {
+                memberValue.motionTimeControl = nil;
+            }
+            if (cppValue.triggerDetails.activationReason.HasValue()) {
+                if (cppValue.triggerDetails.activationReason.Value().IsNull()) {
+                    memberValue.activationReason = nil;
+                } else {
+                    memberValue.activationReason = [NSNumber numberWithUnsignedChar:chip::to_underlying(cppValue.triggerDetails.activationReason.Value().Value())];
+                }
+            } else {
+                memberValue.activationReason = nil;
+            }
+            value.triggerDetails = memberValue;
+        } while (0);
+
+        return value;
+    }
+    default: {
+        break;
+    }
+    }
+
+    *aError = CHIP_ERROR_IM_MALFORMED_EVENT_PATH_IB;
+    return nil;
+}
+static id _Nullable DecodeEventPayloadForChimeCluster(EventId aEventId, TLV::TLVReader & aReader, CHIP_ERROR * aError)
+{
+    using namespace Clusters::Chime;
+    switch (aEventId) {
+    default: {
+        break;
+    }
+    }
+
+    *aError = CHIP_ERROR_IM_MALFORMED_EVENT_PATH_IB;
+    return nil;
+}
 static id _Nullable DecodeEventPayloadForEcosystemInformationCluster(EventId aEventId, TLV::TLVReader & aReader, CHIP_ERROR * aError)
 {
     using namespace Clusters::EcosystemInformation;
@@ -5190,6 +5600,24 @@ id _Nullable MTRDecodeEventPayload(const ConcreteEventPath & aPath, TLV::TLVRead
     case Clusters::ContentAppObserver::Id: {
         return DecodeEventPayloadForContentAppObserverCluster(aPath.mEventId, aReader, aError);
     }
+    case Clusters::CameraAvStreamManagement::Id: {
+        return DecodeEventPayloadForCameraAVStreamManagementCluster(aPath.mEventId, aReader, aError);
+    }
+    case Clusters::CameraAvSettingsUserLevelManagement::Id: {
+        return DecodeEventPayloadForCameraAVSettingsUserLevelManagementCluster(aPath.mEventId, aReader, aError);
+    }
+    case Clusters::WebRTCTransportProvider::Id: {
+        return DecodeEventPayloadForWebRTCTransportProviderCluster(aPath.mEventId, aReader, aError);
+    }
+    case Clusters::WebRTCTransportRequestor::Id: {
+        return DecodeEventPayloadForWebRTCTransportRequestorCluster(aPath.mEventId, aReader, aError);
+    }
+    case Clusters::PushAvStreamTransport::Id: {
+        return DecodeEventPayloadForPushAVStreamTransportCluster(aPath.mEventId, aReader, aError);
+    }
+    case Clusters::Chime::Id: {
+        return DecodeEventPayloadForChimeCluster(aPath.mEventId, aReader, aError);
+    }
     case Clusters::EcosystemInformation::Id: {
         return DecodeEventPayloadForEcosystemInformationCluster(aPath.mEventId, aReader, aError);
     }
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.h b/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.h
index 61aa5161dced29..6db22c2eff5eeb 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.h
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.h
@@ -2117,6 +2117,261 @@ MTR_PROVISIONALLY_AVAILABLE
 @interface MTRContentControlClusterRemainingScreenTimeExpiredEvent : NSObject <NSCopying>
 @end
 
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVStreamManagementClusterAudioCapabilitiesStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSNumber * _Nonnull maxNumberOfChannels MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSArray * _Nonnull supportedCodecs MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSArray * _Nonnull supportedSampleRates MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSArray * _Nonnull supportedBitDepths MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVStreamManagementClusterAudioStreamStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSNumber * _Nonnull audioStreamID MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull streamType MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull audioCodec MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull channelCount MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull sampleRate MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull bitRate MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull bitDepth MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull referenceCount MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVStreamManagementClusterPerStreamStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSNumber * _Nonnull streamID MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull onOff MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVStreamManagementClusterRateDistortionTradeOffPointsStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSNumber * _Nonnull codec MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) MTRCameraAVStreamManagementClusterDimensionStruct * _Nonnull resolution MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull minBitRate MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVStreamManagementClusterSnapshotParamsStruct : NSObject <NSCopying>
+@property (nonatomic, copy) MTRCameraAVStreamManagementClusterDimensionStruct * _Nonnull resolution MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull maxFrameRate MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull imageCodec MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVStreamManagementClusterSnapshotStreamStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSNumber * _Nonnull snapshotStreamID MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull imageCodec MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull frameRate MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull bitRate MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) MTRCameraAVStreamManagementClusterDimensionStruct * _Nonnull minResolution MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) MTRCameraAVStreamManagementClusterDimensionStruct * _Nonnull maxResolution MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull quality MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull referenceCount MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVStreamManagementClusterVideoSensorParamsStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSNumber * _Nonnull sensorWidth MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull sensorHeight MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull hdrCapable MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull maxFPS MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull maxHDRFPS MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVStreamManagementClusterVideoStreamStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSNumber * _Nonnull videoStreamID MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull streamType MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull videoCodec MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull minFrameRate MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull maxFrameRate MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) MTRCameraAVStreamManagementClusterDimensionStruct * _Nonnull minResolution MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) MTRCameraAVStreamManagementClusterDimensionStruct * _Nonnull maxResolution MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull minBitRate MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull maxBitRate MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull minFragmentLen MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull maxFragmentLen MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull referenceCount MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVStreamManagementClusterViewportStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSNumber * _Nonnull x1 MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull y1 MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull x2 MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull y2 MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVStreamManagementClusterVideoStreamChangedEvent : NSObject <NSCopying>
+@property (nonatomic, copy) NSNumber * _Nonnull videoStreamID MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nullable streamType MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nullable videoCodec MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nullable minFrameRate MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nullable maxFrameRate MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) MTRCameraAVStreamManagementClusterDimensionStruct * _Nullable minResolution MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) MTRCameraAVStreamManagementClusterDimensionStruct * _Nullable maxResolution MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nullable minBitRate MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nullable maxBitRate MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nullable minFragmentLen MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nullable maxFragmentLen MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVStreamManagementClusterAudioStreamChangedEvent : NSObject <NSCopying>
+@property (nonatomic, copy) NSNumber * _Nonnull audioStreamID MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nullable streamType MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nullable audioCodec MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nullable channelCount MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nullable sampleRate MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nullable bitRate MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nullable bitDepth MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVStreamManagementClusterSnapshotStreamChangedEvent : NSObject <NSCopying>
+@property (nonatomic, copy) NSNumber * _Nonnull snapshotStreamID MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nullable imageCodec MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nullable frameRate MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nullable bitRate MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) MTRCameraAVStreamManagementClusterDimensionStruct * _Nullable minResolution MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) MTRCameraAVStreamManagementClusterDimensionStruct * _Nullable maxResolution MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nullable quality MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVSettingsUserLevelManagementClusterMPTZStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSNumber * _Nullable mPan MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nullable mTilt MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nullable mZoom MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVSettingsUserLevelManagementClusterPerStreamStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSNumber * _Nonnull streamID MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull onOff MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRCameraAVSettingsUserLevelManagementClusterViewportStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSNumber * _Nonnull x1 MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull y1 MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull x2 MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull y2 MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRWebRTCTransportProviderClusterICEServerStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSArray * _Nonnull urls MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSString * _Nullable username MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSString * _Nullable credential MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nullable caid MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRWebRTCTransportProviderClusterWebRTCSessionStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSNumber * _Nonnull id MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull peerNodeId MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull peerFabricIndex MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull streamType MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nullable videoStreamID MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nullable audioStreamID MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull metadataOptions MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRWebRTCTransportRequestorClusterICEServerStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSArray * _Nonnull urls MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSString * _Nullable username MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSString * _Nullable credential MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nullable caid MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRWebRTCTransportRequestorClusterWebRTCSessionStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSNumber * _Nonnull id MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull peerNodeId MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull peerFabricIndex MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull streamType MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nullable videoStreamID MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nullable audioStreamID MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull metadataOptions MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRPushAVStreamTransportClusterPushAVStreamTransportMotionTriggerTimeControlStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSNumber * _Nonnull initialDuration MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull augmentationDuration MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull maxDuration MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull blindDuration MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRPushAVStreamTransportClusterPushAVStreamTransportMetadataOptionsStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSNumber * _Nonnull multiplexing MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull includeMotionZones MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull enableMetadataPrivacySensitive MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRPushAVStreamTransportClusterPushAVStreamTransportTriggerOptionsStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSNumber * _Nonnull triggerType MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSArray * _Nullable motionZones MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nullable motionSensitivity MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) MTRPushAVStreamTransportClusterPushAVStreamTransportMotionTriggerTimeControlStruct * _Nullable motionTimeControl MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nullable activationReason MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRPushAVStreamTransportClusterPushAVStreamTransportCMAFContainerOptionsStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSNumber * _Nonnull chunkDuration MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSData * _Nullable cencKey MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRPushAVStreamTransportClusterPushAVStreamTransportContainerOptionsStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSNumber * _Nonnull containerType MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) MTRPushAVStreamTransportClusterPushAVStreamTransportCMAFContainerOptionsStruct * _Nullable cmafContainerOptions MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRPushAVStreamTransportClusterPushAVStreamTransportOptionsStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSNumber * _Nonnull streamType MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nullable videoStreamID MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nullable audioStreamID MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull tlsEndpointID MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSString * _Nonnull url MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) MTRPushAVStreamTransportClusterPushAVStreamTransportTriggerOptionsStruct * _Nonnull triggerOptions MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull containerFormat MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull ingestMethod MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) MTRPushAVStreamTransportClusterPushAVStreamTransportContainerOptionsStruct * _Nonnull containerOptions MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) MTRPushAVStreamTransportClusterPushAVStreamTransportMetadataOptionsStruct * _Nullable metadataOptions MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nullable expiryTime MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRPushAVStreamTransportClusterPushAVStreamConfigurationStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSNumber * _Nonnull connectionID MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull streamTransportStatus MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) MTRPushAVStreamTransportClusterPushAVStreamTransportOptionsStruct * _Nonnull streamTransportOptions MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRPushAVStreamTransportClusterPushTransportBeginEvent : NSObject <NSCopying>
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRPushAVStreamTransportClusterPushTransportEndEvent : NSObject <NSCopying>
+@property (nonatomic, copy) NSNumber * _Nonnull connectionID MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) MTRPushAVStreamTransportClusterPushAVStreamTransportTriggerOptionsStruct * _Nonnull triggerDetails MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+MTR_PROVISIONALLY_AVAILABLE
+@interface MTRChimeClusterChimeSoundStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSNumber * _Nonnull chimeId MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSString * _Nonnull name MTR_PROVISIONALLY_AVAILABLE;
+@end
+
 MTR_PROVISIONALLY_AVAILABLE
 @interface MTREcosystemInformationClusterDeviceTypeStruct : NSObject <NSCopying>
 @property (nonatomic, copy) NSNumber * _Nonnull deviceType MTR_PROVISIONALLY_AVAILABLE;
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.mm b/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.mm
index 5cb5806c112a69..f1168b7a4d6865 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.mm
@@ -8768,6 +8768,1118 @@ - (NSString *)description
 
 @end
 
+@implementation MTRCameraAVStreamManagementClusterAudioCapabilitiesStruct
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _maxNumberOfChannels = @(0);
+
+        _supportedCodecs = [NSArray array];
+
+        _supportedSampleRates = [NSArray array];
+
+        _supportedBitDepths = [NSArray array];
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+    auto other = [[MTRCameraAVStreamManagementClusterAudioCapabilitiesStruct alloc] init];
+
+    other.maxNumberOfChannels = self.maxNumberOfChannels;
+    other.supportedCodecs = self.supportedCodecs;
+    other.supportedSampleRates = self.supportedSampleRates;
+    other.supportedBitDepths = self.supportedBitDepths;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: maxNumberOfChannels:%@; supportedCodecs:%@; supportedSampleRates:%@; supportedBitDepths:%@; >", NSStringFromClass([self class]), _maxNumberOfChannels, _supportedCodecs, _supportedSampleRates, _supportedBitDepths];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRCameraAVStreamManagementClusterAudioStreamStruct
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _audioStreamID = @(0);
+
+        _streamType = @(0);
+
+        _audioCodec = @(0);
+
+        _channelCount = @(0);
+
+        _sampleRate = @(0);
+
+        _bitRate = @(0);
+
+        _bitDepth = @(0);
+
+        _referenceCount = @(0);
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+    auto other = [[MTRCameraAVStreamManagementClusterAudioStreamStruct alloc] init];
+
+    other.audioStreamID = self.audioStreamID;
+    other.streamType = self.streamType;
+    other.audioCodec = self.audioCodec;
+    other.channelCount = self.channelCount;
+    other.sampleRate = self.sampleRate;
+    other.bitRate = self.bitRate;
+    other.bitDepth = self.bitDepth;
+    other.referenceCount = self.referenceCount;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: audioStreamID:%@; streamType:%@; audioCodec:%@; channelCount:%@; sampleRate:%@; bitRate:%@; bitDepth:%@; referenceCount:%@; >", NSStringFromClass([self class]), _audioStreamID, _streamType, _audioCodec, _channelCount, _sampleRate, _bitRate, _bitDepth, _referenceCount];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRCameraAVStreamManagementClusterPerStreamStruct
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _streamID = @(0);
+
+        _onOff = @(0);
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+    auto other = [[MTRCameraAVStreamManagementClusterPerStreamStruct alloc] init];
+
+    other.streamID = self.streamID;
+    other.onOff = self.onOff;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: streamID:%@; onOff:%@; >", NSStringFromClass([self class]), _streamID, _onOff];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRCameraAVStreamManagementClusterRateDistortionTradeOffPointsStruct
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _codec = @(0);
+
+        _resolution = [MTRCameraAVStreamManagementClusterDimensionStruct new];
+
+        _minBitRate = @(0);
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+    auto other = [[MTRCameraAVStreamManagementClusterRateDistortionTradeOffPointsStruct alloc] init];
+
+    other.codec = self.codec;
+    other.resolution = self.resolution;
+    other.minBitRate = self.minBitRate;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: codec:%@; resolution:%@; minBitRate:%@; >", NSStringFromClass([self class]), _codec, _resolution, _minBitRate];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRCameraAVStreamManagementClusterSnapshotParamsStruct
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _resolution = [MTRCameraAVStreamManagementClusterDimensionStruct new];
+
+        _maxFrameRate = @(0);
+
+        _imageCodec = @(0);
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+    auto other = [[MTRCameraAVStreamManagementClusterSnapshotParamsStruct alloc] init];
+
+    other.resolution = self.resolution;
+    other.maxFrameRate = self.maxFrameRate;
+    other.imageCodec = self.imageCodec;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: resolution:%@; maxFrameRate:%@; imageCodec:%@; >", NSStringFromClass([self class]), _resolution, _maxFrameRate, _imageCodec];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRCameraAVStreamManagementClusterSnapshotStreamStruct
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _snapshotStreamID = @(0);
+
+        _imageCodec = @(0);
+
+        _frameRate = @(0);
+
+        _bitRate = @(0);
+
+        _minResolution = [MTRCameraAVStreamManagementClusterDimensionStruct new];
+
+        _maxResolution = [MTRCameraAVStreamManagementClusterDimensionStruct new];
+
+        _quality = @(0);
+
+        _referenceCount = @(0);
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+    auto other = [[MTRCameraAVStreamManagementClusterSnapshotStreamStruct alloc] init];
+
+    other.snapshotStreamID = self.snapshotStreamID;
+    other.imageCodec = self.imageCodec;
+    other.frameRate = self.frameRate;
+    other.bitRate = self.bitRate;
+    other.minResolution = self.minResolution;
+    other.maxResolution = self.maxResolution;
+    other.quality = self.quality;
+    other.referenceCount = self.referenceCount;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: snapshotStreamID:%@; imageCodec:%@; frameRate:%@; bitRate:%@; minResolution:%@; maxResolution:%@; quality:%@; referenceCount:%@; >", NSStringFromClass([self class]), _snapshotStreamID, _imageCodec, _frameRate, _bitRate, _minResolution, _maxResolution, _quality, _referenceCount];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRCameraAVStreamManagementClusterVideoSensorParamsStruct
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _sensorWidth = @(0);
+
+        _sensorHeight = @(0);
+
+        _hdrCapable = @(0);
+
+        _maxFPS = @(0);
+
+        _maxHDRFPS = @(0);
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+    auto other = [[MTRCameraAVStreamManagementClusterVideoSensorParamsStruct alloc] init];
+
+    other.sensorWidth = self.sensorWidth;
+    other.sensorHeight = self.sensorHeight;
+    other.hdrCapable = self.hdrCapable;
+    other.maxFPS = self.maxFPS;
+    other.maxHDRFPS = self.maxHDRFPS;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: sensorWidth:%@; sensorHeight:%@; hdrCapable:%@; maxFPS:%@; maxHDRFPS:%@; >", NSStringFromClass([self class]), _sensorWidth, _sensorHeight, _hdrCapable, _maxFPS, _maxHDRFPS];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRCameraAVStreamManagementClusterVideoStreamStruct
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _videoStreamID = @(0);
+
+        _streamType = @(0);
+
+        _videoCodec = @(0);
+
+        _minFrameRate = @(0);
+
+        _maxFrameRate = @(0);
+
+        _minResolution = [MTRCameraAVStreamManagementClusterDimensionStruct new];
+
+        _maxResolution = [MTRCameraAVStreamManagementClusterDimensionStruct new];
+
+        _minBitRate = @(0);
+
+        _maxBitRate = @(0);
+
+        _minFragmentLen = @(0);
+
+        _maxFragmentLen = @(0);
+
+        _referenceCount = @(0);
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+    auto other = [[MTRCameraAVStreamManagementClusterVideoStreamStruct alloc] init];
+
+    other.videoStreamID = self.videoStreamID;
+    other.streamType = self.streamType;
+    other.videoCodec = self.videoCodec;
+    other.minFrameRate = self.minFrameRate;
+    other.maxFrameRate = self.maxFrameRate;
+    other.minResolution = self.minResolution;
+    other.maxResolution = self.maxResolution;
+    other.minBitRate = self.minBitRate;
+    other.maxBitRate = self.maxBitRate;
+    other.minFragmentLen = self.minFragmentLen;
+    other.maxFragmentLen = self.maxFragmentLen;
+    other.referenceCount = self.referenceCount;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: videoStreamID:%@; streamType:%@; videoCodec:%@; minFrameRate:%@; maxFrameRate:%@; minResolution:%@; maxResolution:%@; minBitRate:%@; maxBitRate:%@; minFragmentLen:%@; maxFragmentLen:%@; referenceCount:%@; >", NSStringFromClass([self class]), _videoStreamID, _streamType, _videoCodec, _minFrameRate, _maxFrameRate, _minResolution, _maxResolution, _minBitRate, _maxBitRate, _minFragmentLen, _maxFragmentLen, _referenceCount];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRCameraAVStreamManagementClusterViewportStruct
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _x1 = @(0);
+
+        _y1 = @(0);
+
+        _x2 = @(0);
+
+        _y2 = @(0);
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+    auto other = [[MTRCameraAVStreamManagementClusterViewportStruct alloc] init];
+
+    other.x1 = self.x1;
+    other.y1 = self.y1;
+    other.x2 = self.x2;
+    other.y2 = self.y2;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: x1:%@; y1:%@; x2:%@; y2:%@; >", NSStringFromClass([self class]), _x1, _y1, _x2, _y2];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRCameraAVStreamManagementClusterVideoStreamChangedEvent
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _videoStreamID = @(0);
+
+        _streamType = nil;
+
+        _videoCodec = nil;
+
+        _minFrameRate = nil;
+
+        _maxFrameRate = nil;
+
+        _minResolution = nil;
+
+        _maxResolution = nil;
+
+        _minBitRate = nil;
+
+        _maxBitRate = nil;
+
+        _minFragmentLen = nil;
+
+        _maxFragmentLen = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+    auto other = [[MTRCameraAVStreamManagementClusterVideoStreamChangedEvent alloc] init];
+
+    other.videoStreamID = self.videoStreamID;
+    other.streamType = self.streamType;
+    other.videoCodec = self.videoCodec;
+    other.minFrameRate = self.minFrameRate;
+    other.maxFrameRate = self.maxFrameRate;
+    other.minResolution = self.minResolution;
+    other.maxResolution = self.maxResolution;
+    other.minBitRate = self.minBitRate;
+    other.maxBitRate = self.maxBitRate;
+    other.minFragmentLen = self.minFragmentLen;
+    other.maxFragmentLen = self.maxFragmentLen;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: videoStreamID:%@; streamType:%@; videoCodec:%@; minFrameRate:%@; maxFrameRate:%@; minResolution:%@; maxResolution:%@; minBitRate:%@; maxBitRate:%@; minFragmentLen:%@; maxFragmentLen:%@; >", NSStringFromClass([self class]), _videoStreamID, _streamType, _videoCodec, _minFrameRate, _maxFrameRate, _minResolution, _maxResolution, _minBitRate, _maxBitRate, _minFragmentLen, _maxFragmentLen];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRCameraAVStreamManagementClusterAudioStreamChangedEvent
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _audioStreamID = @(0);
+
+        _streamType = nil;
+
+        _audioCodec = nil;
+
+        _channelCount = nil;
+
+        _sampleRate = nil;
+
+        _bitRate = nil;
+
+        _bitDepth = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+    auto other = [[MTRCameraAVStreamManagementClusterAudioStreamChangedEvent alloc] init];
+
+    other.audioStreamID = self.audioStreamID;
+    other.streamType = self.streamType;
+    other.audioCodec = self.audioCodec;
+    other.channelCount = self.channelCount;
+    other.sampleRate = self.sampleRate;
+    other.bitRate = self.bitRate;
+    other.bitDepth = self.bitDepth;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: audioStreamID:%@; streamType:%@; audioCodec:%@; channelCount:%@; sampleRate:%@; bitRate:%@; bitDepth:%@; >", NSStringFromClass([self class]), _audioStreamID, _streamType, _audioCodec, _channelCount, _sampleRate, _bitRate, _bitDepth];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRCameraAVStreamManagementClusterSnapshotStreamChangedEvent
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _snapshotStreamID = @(0);
+
+        _imageCodec = nil;
+
+        _frameRate = nil;
+
+        _bitRate = nil;
+
+        _minResolution = nil;
+
+        _maxResolution = nil;
+
+        _quality = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+    auto other = [[MTRCameraAVStreamManagementClusterSnapshotStreamChangedEvent alloc] init];
+
+    other.snapshotStreamID = self.snapshotStreamID;
+    other.imageCodec = self.imageCodec;
+    other.frameRate = self.frameRate;
+    other.bitRate = self.bitRate;
+    other.minResolution = self.minResolution;
+    other.maxResolution = self.maxResolution;
+    other.quality = self.quality;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: snapshotStreamID:%@; imageCodec:%@; frameRate:%@; bitRate:%@; minResolution:%@; maxResolution:%@; quality:%@; >", NSStringFromClass([self class]), _snapshotStreamID, _imageCodec, _frameRate, _bitRate, _minResolution, _maxResolution, _quality];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRCameraAVSettingsUserLevelManagementClusterMPTZStruct
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _mPan = nil;
+
+        _mTilt = nil;
+
+        _mZoom = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+    auto other = [[MTRCameraAVSettingsUserLevelManagementClusterMPTZStruct alloc] init];
+
+    other.mPan = self.mPan;
+    other.mTilt = self.mTilt;
+    other.mZoom = self.mZoom;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: mPan:%@; mTilt:%@; mZoom:%@; >", NSStringFromClass([self class]), _mPan, _mTilt, _mZoom];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRCameraAVSettingsUserLevelManagementClusterPerStreamStruct
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _streamID = @(0);
+
+        _onOff = @(0);
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+    auto other = [[MTRCameraAVSettingsUserLevelManagementClusterPerStreamStruct alloc] init];
+
+    other.streamID = self.streamID;
+    other.onOff = self.onOff;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: streamID:%@; onOff:%@; >", NSStringFromClass([self class]), _streamID, _onOff];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRCameraAVSettingsUserLevelManagementClusterViewportStruct
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _x1 = @(0);
+
+        _y1 = @(0);
+
+        _x2 = @(0);
+
+        _y2 = @(0);
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+    auto other = [[MTRCameraAVSettingsUserLevelManagementClusterViewportStruct alloc] init];
+
+    other.x1 = self.x1;
+    other.y1 = self.y1;
+    other.x2 = self.x2;
+    other.y2 = self.y2;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: x1:%@; y1:%@; x2:%@; y2:%@; >", NSStringFromClass([self class]), _x1, _y1, _x2, _y2];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRWebRTCTransportProviderClusterICEServerStruct
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _urls = [NSArray array];
+
+        _username = nil;
+
+        _credential = nil;
+
+        _caid = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+    auto other = [[MTRWebRTCTransportProviderClusterICEServerStruct alloc] init];
+
+    other.urls = self.urls;
+    other.username = self.username;
+    other.credential = self.credential;
+    other.caid = self.caid;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: urls:%@; username:%@; credential:%@; caid:%@; >", NSStringFromClass([self class]), _urls, _username, _credential, _caid];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRWebRTCTransportProviderClusterWebRTCSessionStruct
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _id = @(0);
+
+        _peerNodeId = @(0);
+
+        _peerFabricIndex = @(0);
+
+        _streamType = @(0);
+
+        _videoStreamID = nil;
+
+        _audioStreamID = nil;
+
+        _metadataOptions = @(0);
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+    auto other = [[MTRWebRTCTransportProviderClusterWebRTCSessionStruct alloc] init];
+
+    other.id = self.id;
+    other.peerNodeId = self.peerNodeId;
+    other.peerFabricIndex = self.peerFabricIndex;
+    other.streamType = self.streamType;
+    other.videoStreamID = self.videoStreamID;
+    other.audioStreamID = self.audioStreamID;
+    other.metadataOptions = self.metadataOptions;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: id:%@; peerNodeId:%@; peerFabricIndex:%@; streamType:%@; videoStreamID:%@; audioStreamID:%@; metadataOptions:%@; >", NSStringFromClass([self class]), _id, _peerNodeId, _peerFabricIndex, _streamType, _videoStreamID, _audioStreamID, _metadataOptions];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRWebRTCTransportRequestorClusterICEServerStruct
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _urls = [NSArray array];
+
+        _username = nil;
+
+        _credential = nil;
+
+        _caid = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+    auto other = [[MTRWebRTCTransportRequestorClusterICEServerStruct alloc] init];
+
+    other.urls = self.urls;
+    other.username = self.username;
+    other.credential = self.credential;
+    other.caid = self.caid;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: urls:%@; username:%@; credential:%@; caid:%@; >", NSStringFromClass([self class]), _urls, _username, _credential, _caid];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRWebRTCTransportRequestorClusterWebRTCSessionStruct
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _id = @(0);
+
+        _peerNodeId = @(0);
+
+        _peerFabricIndex = @(0);
+
+        _streamType = @(0);
+
+        _videoStreamID = nil;
+
+        _audioStreamID = nil;
+
+        _metadataOptions = @(0);
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+    auto other = [[MTRWebRTCTransportRequestorClusterWebRTCSessionStruct alloc] init];
+
+    other.id = self.id;
+    other.peerNodeId = self.peerNodeId;
+    other.peerFabricIndex = self.peerFabricIndex;
+    other.streamType = self.streamType;
+    other.videoStreamID = self.videoStreamID;
+    other.audioStreamID = self.audioStreamID;
+    other.metadataOptions = self.metadataOptions;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: id:%@; peerNodeId:%@; peerFabricIndex:%@; streamType:%@; videoStreamID:%@; audioStreamID:%@; metadataOptions:%@; >", NSStringFromClass([self class]), _id, _peerNodeId, _peerFabricIndex, _streamType, _videoStreamID, _audioStreamID, _metadataOptions];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRPushAVStreamTransportClusterPushAVStreamTransportMotionTriggerTimeControlStruct
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _initialDuration = @(0);
+
+        _augmentationDuration = @(0);
+
+        _maxDuration = @(0);
+
+        _blindDuration = @(0);
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+    auto other = [[MTRPushAVStreamTransportClusterPushAVStreamTransportMotionTriggerTimeControlStruct alloc] init];
+
+    other.initialDuration = self.initialDuration;
+    other.augmentationDuration = self.augmentationDuration;
+    other.maxDuration = self.maxDuration;
+    other.blindDuration = self.blindDuration;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: initialDuration:%@; augmentationDuration:%@; maxDuration:%@; blindDuration:%@; >", NSStringFromClass([self class]), _initialDuration, _augmentationDuration, _maxDuration, _blindDuration];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRPushAVStreamTransportClusterPushAVStreamTransportMetadataOptionsStruct
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _multiplexing = @(0);
+
+        _includeMotionZones = @(0);
+
+        _enableMetadataPrivacySensitive = @(0);
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+    auto other = [[MTRPushAVStreamTransportClusterPushAVStreamTransportMetadataOptionsStruct alloc] init];
+
+    other.multiplexing = self.multiplexing;
+    other.includeMotionZones = self.includeMotionZones;
+    other.enableMetadataPrivacySensitive = self.enableMetadataPrivacySensitive;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: multiplexing:%@; includeMotionZones:%@; enableMetadataPrivacySensitive:%@; >", NSStringFromClass([self class]), _multiplexing, _includeMotionZones, _enableMetadataPrivacySensitive];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRPushAVStreamTransportClusterPushAVStreamTransportTriggerOptionsStruct
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _triggerType = @(0);
+
+        _motionZones = nil;
+
+        _motionSensitivity = nil;
+
+        _motionTimeControl = nil;
+
+        _activationReason = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+    auto other = [[MTRPushAVStreamTransportClusterPushAVStreamTransportTriggerOptionsStruct alloc] init];
+
+    other.triggerType = self.triggerType;
+    other.motionZones = self.motionZones;
+    other.motionSensitivity = self.motionSensitivity;
+    other.motionTimeControl = self.motionTimeControl;
+    other.activationReason = self.activationReason;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: triggerType:%@; motionZones:%@; motionSensitivity:%@; motionTimeControl:%@; activationReason:%@; >", NSStringFromClass([self class]), _triggerType, _motionZones, _motionSensitivity, _motionTimeControl, _activationReason];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRPushAVStreamTransportClusterPushAVStreamTransportCMAFContainerOptionsStruct
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _chunkDuration = @(0);
+
+        _cencKey = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+    auto other = [[MTRPushAVStreamTransportClusterPushAVStreamTransportCMAFContainerOptionsStruct alloc] init];
+
+    other.chunkDuration = self.chunkDuration;
+    other.cencKey = self.cencKey;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: chunkDuration:%@; cencKey:%@; >", NSStringFromClass([self class]), _chunkDuration, [_cencKey base64EncodedStringWithOptions:0]];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRPushAVStreamTransportClusterPushAVStreamTransportContainerOptionsStruct
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _containerType = @(0);
+
+        _cmafContainerOptions = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+    auto other = [[MTRPushAVStreamTransportClusterPushAVStreamTransportContainerOptionsStruct alloc] init];
+
+    other.containerType = self.containerType;
+    other.cmafContainerOptions = self.cmafContainerOptions;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: containerType:%@; cmafContainerOptions:%@; >", NSStringFromClass([self class]), _containerType, _cmafContainerOptions];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRPushAVStreamTransportClusterPushAVStreamTransportOptionsStruct
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _streamType = @(0);
+
+        _videoStreamID = nil;
+
+        _audioStreamID = nil;
+
+        _tlsEndpointID = @(0);
+
+        _url = @"";
+
+        _triggerOptions = [MTRPushAVStreamTransportClusterPushAVStreamTransportTriggerOptionsStruct new];
+
+        _containerFormat = @(0);
+
+        _ingestMethod = @(0);
+
+        _containerOptions = [MTRPushAVStreamTransportClusterPushAVStreamTransportContainerOptionsStruct new];
+
+        _metadataOptions = nil;
+
+        _expiryTime = nil;
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+    auto other = [[MTRPushAVStreamTransportClusterPushAVStreamTransportOptionsStruct alloc] init];
+
+    other.streamType = self.streamType;
+    other.videoStreamID = self.videoStreamID;
+    other.audioStreamID = self.audioStreamID;
+    other.tlsEndpointID = self.tlsEndpointID;
+    other.url = self.url;
+    other.triggerOptions = self.triggerOptions;
+    other.containerFormat = self.containerFormat;
+    other.ingestMethod = self.ingestMethod;
+    other.containerOptions = self.containerOptions;
+    other.metadataOptions = self.metadataOptions;
+    other.expiryTime = self.expiryTime;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: streamType:%@; videoStreamID:%@; audioStreamID:%@; tlsEndpointID:%@; url:%@; triggerOptions:%@; containerFormat:%@; ingestMethod:%@; containerOptions:%@; metadataOptions:%@; expiryTime:%@; >", NSStringFromClass([self class]), _streamType, _videoStreamID, _audioStreamID, _tlsEndpointID, _url, _triggerOptions, _containerFormat, _ingestMethod, _containerOptions, _metadataOptions, _expiryTime];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRPushAVStreamTransportClusterPushAVStreamConfigurationStruct
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _connectionID = @(0);
+
+        _streamTransportStatus = @(0);
+
+        _streamTransportOptions = [MTRPushAVStreamTransportClusterPushAVStreamTransportOptionsStruct new];
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+    auto other = [[MTRPushAVStreamTransportClusterPushAVStreamConfigurationStruct alloc] init];
+
+    other.connectionID = self.connectionID;
+    other.streamTransportStatus = self.streamTransportStatus;
+    other.streamTransportOptions = self.streamTransportOptions;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: connectionID:%@; streamTransportStatus:%@; streamTransportOptions:%@; >", NSStringFromClass([self class]), _connectionID, _streamTransportStatus, _streamTransportOptions];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRPushAVStreamTransportClusterPushTransportBeginEvent
+- (instancetype)init
+{
+    if (self = [super init]) {
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+    auto other = [[MTRPushAVStreamTransportClusterPushTransportBeginEvent alloc] init];
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: >", NSStringFromClass([self class])];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRPushAVStreamTransportClusterPushTransportEndEvent
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _connectionID = @(0);
+
+        _triggerDetails = [MTRPushAVStreamTransportClusterPushAVStreamTransportTriggerOptionsStruct new];
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+    auto other = [[MTRPushAVStreamTransportClusterPushTransportEndEvent alloc] init];
+
+    other.connectionID = self.connectionID;
+    other.triggerDetails = self.triggerDetails;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: connectionID:%@; triggerDetails:%@; >", NSStringFromClass([self class]), _connectionID, _triggerDetails];
+    return descriptionString;
+}
+
+@end
+
+@implementation MTRChimeClusterChimeSoundStruct
+- (instancetype)init
+{
+    if (self = [super init]) {
+
+        _chimeId = @(0);
+
+        _name = @"";
+    }
+    return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+    auto other = [[MTRChimeClusterChimeSoundStruct alloc] init];
+
+    other.chimeId = self.chimeId;
+    other.name = self.name;
+
+    return other;
+}
+
+- (NSString *)description
+{
+    NSString * descriptionString = [NSString stringWithFormat:@"<%@: chimeId:%@; name:%@; >", NSStringFromClass([self class]), _chimeId, _name];
+    return descriptionString;
+}
+
+@end
+
 @implementation MTREcosystemInformationClusterDeviceTypeStruct
 - (instancetype)init
 {
diff --git a/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.cpp b/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.cpp
index ed3e70fb6c9d1a..3aca771e9a6ca4 100644
--- a/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.cpp
+++ b/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.cpp
@@ -37422,6 +37422,603 @@ Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint16_t valu
 } // namespace Attributes
 } // namespace ContentAppObserver
 
+namespace CameraAvStreamManagement {
+namespace Attributes {
+
+namespace FeatureMap {
+
+Protocols::InteractionModel::Status Get(chip::EndpointId endpoint, uint32_t * value)
+{
+    using Traits = NumericAttributeTraits<uint32_t>;
+    Traits::StorageType temp;
+    uint8_t * readable = Traits::ToAttributeStoreRepresentation(temp);
+    Protocols::InteractionModel::Status status =
+        emberAfReadAttribute(endpoint, Clusters::CameraAvStreamManagement::Id, Id, readable, sizeof(temp));
+    VerifyOrReturnError(Protocols::InteractionModel::Status::Success == status, status);
+    if (!Traits::CanRepresentValue(/* isNullable = */ false, temp))
+    {
+        return Protocols::InteractionModel::Status::ConstraintError;
+    }
+    *value = Traits::StorageToWorking(temp);
+    return status;
+}
+
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint32_t value, MarkAttributeDirty markDirty)
+{
+    using Traits = NumericAttributeTraits<uint32_t>;
+    if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
+    {
+        return Protocols::InteractionModel::Status::ConstraintError;
+    }
+    Traits::StorageType storageValue;
+    Traits::WorkingToStorage(value, storageValue);
+    uint8_t * writable = Traits::ToAttributeStoreRepresentation(storageValue);
+    return emberAfWriteAttribute(endpoint, Clusters::CameraAvStreamManagement::Id, Id, writable, ZCL_BITMAP32_ATTRIBUTE_TYPE,
+                                 markDirty);
+}
+
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint32_t value)
+{
+    using Traits = NumericAttributeTraits<uint32_t>;
+    if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
+    {
+        return Protocols::InteractionModel::Status::ConstraintError;
+    }
+    Traits::StorageType storageValue;
+    Traits::WorkingToStorage(value, storageValue);
+    uint8_t * writable = Traits::ToAttributeStoreRepresentation(storageValue);
+    return emberAfWriteAttribute(endpoint, Clusters::CameraAvStreamManagement::Id, Id, writable, ZCL_BITMAP32_ATTRIBUTE_TYPE);
+}
+
+} // namespace FeatureMap
+
+namespace ClusterRevision {
+
+Protocols::InteractionModel::Status Get(chip::EndpointId endpoint, uint16_t * value)
+{
+    using Traits = NumericAttributeTraits<uint16_t>;
+    Traits::StorageType temp;
+    uint8_t * readable = Traits::ToAttributeStoreRepresentation(temp);
+    Protocols::InteractionModel::Status status =
+        emberAfReadAttribute(endpoint, Clusters::CameraAvStreamManagement::Id, Id, readable, sizeof(temp));
+    VerifyOrReturnError(Protocols::InteractionModel::Status::Success == status, status);
+    if (!Traits::CanRepresentValue(/* isNullable = */ false, temp))
+    {
+        return Protocols::InteractionModel::Status::ConstraintError;
+    }
+    *value = Traits::StorageToWorking(temp);
+    return status;
+}
+
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint16_t value, MarkAttributeDirty markDirty)
+{
+    using Traits = NumericAttributeTraits<uint16_t>;
+    if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
+    {
+        return Protocols::InteractionModel::Status::ConstraintError;
+    }
+    Traits::StorageType storageValue;
+    Traits::WorkingToStorage(value, storageValue);
+    uint8_t * writable = Traits::ToAttributeStoreRepresentation(storageValue);
+    return emberAfWriteAttribute(endpoint, Clusters::CameraAvStreamManagement::Id, Id, writable, ZCL_INT16U_ATTRIBUTE_TYPE,
+                                 markDirty);
+}
+
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint16_t value)
+{
+    using Traits = NumericAttributeTraits<uint16_t>;
+    if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
+    {
+        return Protocols::InteractionModel::Status::ConstraintError;
+    }
+    Traits::StorageType storageValue;
+    Traits::WorkingToStorage(value, storageValue);
+    uint8_t * writable = Traits::ToAttributeStoreRepresentation(storageValue);
+    return emberAfWriteAttribute(endpoint, Clusters::CameraAvStreamManagement::Id, Id, writable, ZCL_INT16U_ATTRIBUTE_TYPE);
+}
+
+} // namespace ClusterRevision
+
+} // namespace Attributes
+} // namespace CameraAvStreamManagement
+
+namespace CameraAvSettingsUserLevelManagement {
+namespace Attributes {
+
+namespace FeatureMap {
+
+Protocols::InteractionModel::Status Get(chip::EndpointId endpoint, uint32_t * value)
+{
+    using Traits = NumericAttributeTraits<uint32_t>;
+    Traits::StorageType temp;
+    uint8_t * readable = Traits::ToAttributeStoreRepresentation(temp);
+    Protocols::InteractionModel::Status status =
+        emberAfReadAttribute(endpoint, Clusters::CameraAvSettingsUserLevelManagement::Id, Id, readable, sizeof(temp));
+    VerifyOrReturnError(Protocols::InteractionModel::Status::Success == status, status);
+    if (!Traits::CanRepresentValue(/* isNullable = */ false, temp))
+    {
+        return Protocols::InteractionModel::Status::ConstraintError;
+    }
+    *value = Traits::StorageToWorking(temp);
+    return status;
+}
+
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint32_t value, MarkAttributeDirty markDirty)
+{
+    using Traits = NumericAttributeTraits<uint32_t>;
+    if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
+    {
+        return Protocols::InteractionModel::Status::ConstraintError;
+    }
+    Traits::StorageType storageValue;
+    Traits::WorkingToStorage(value, storageValue);
+    uint8_t * writable = Traits::ToAttributeStoreRepresentation(storageValue);
+    return emberAfWriteAttribute(endpoint, Clusters::CameraAvSettingsUserLevelManagement::Id, Id, writable,
+                                 ZCL_BITMAP32_ATTRIBUTE_TYPE, markDirty);
+}
+
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint32_t value)
+{
+    using Traits = NumericAttributeTraits<uint32_t>;
+    if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
+    {
+        return Protocols::InteractionModel::Status::ConstraintError;
+    }
+    Traits::StorageType storageValue;
+    Traits::WorkingToStorage(value, storageValue);
+    uint8_t * writable = Traits::ToAttributeStoreRepresentation(storageValue);
+    return emberAfWriteAttribute(endpoint, Clusters::CameraAvSettingsUserLevelManagement::Id, Id, writable,
+                                 ZCL_BITMAP32_ATTRIBUTE_TYPE);
+}
+
+} // namespace FeatureMap
+
+namespace ClusterRevision {
+
+Protocols::InteractionModel::Status Get(chip::EndpointId endpoint, uint16_t * value)
+{
+    using Traits = NumericAttributeTraits<uint16_t>;
+    Traits::StorageType temp;
+    uint8_t * readable = Traits::ToAttributeStoreRepresentation(temp);
+    Protocols::InteractionModel::Status status =
+        emberAfReadAttribute(endpoint, Clusters::CameraAvSettingsUserLevelManagement::Id, Id, readable, sizeof(temp));
+    VerifyOrReturnError(Protocols::InteractionModel::Status::Success == status, status);
+    if (!Traits::CanRepresentValue(/* isNullable = */ false, temp))
+    {
+        return Protocols::InteractionModel::Status::ConstraintError;
+    }
+    *value = Traits::StorageToWorking(temp);
+    return status;
+}
+
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint16_t value, MarkAttributeDirty markDirty)
+{
+    using Traits = NumericAttributeTraits<uint16_t>;
+    if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
+    {
+        return Protocols::InteractionModel::Status::ConstraintError;
+    }
+    Traits::StorageType storageValue;
+    Traits::WorkingToStorage(value, storageValue);
+    uint8_t * writable = Traits::ToAttributeStoreRepresentation(storageValue);
+    return emberAfWriteAttribute(endpoint, Clusters::CameraAvSettingsUserLevelManagement::Id, Id, writable,
+                                 ZCL_INT16U_ATTRIBUTE_TYPE, markDirty);
+}
+
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint16_t value)
+{
+    using Traits = NumericAttributeTraits<uint16_t>;
+    if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
+    {
+        return Protocols::InteractionModel::Status::ConstraintError;
+    }
+    Traits::StorageType storageValue;
+    Traits::WorkingToStorage(value, storageValue);
+    uint8_t * writable = Traits::ToAttributeStoreRepresentation(storageValue);
+    return emberAfWriteAttribute(endpoint, Clusters::CameraAvSettingsUserLevelManagement::Id, Id, writable,
+                                 ZCL_INT16U_ATTRIBUTE_TYPE);
+}
+
+} // namespace ClusterRevision
+
+} // namespace Attributes
+} // namespace CameraAvSettingsUserLevelManagement
+
+namespace WebRTCTransportProvider {
+namespace Attributes {
+
+namespace FeatureMap {
+
+Protocols::InteractionModel::Status Get(chip::EndpointId endpoint, uint32_t * value)
+{
+    using Traits = NumericAttributeTraits<uint32_t>;
+    Traits::StorageType temp;
+    uint8_t * readable = Traits::ToAttributeStoreRepresentation(temp);
+    Protocols::InteractionModel::Status status =
+        emberAfReadAttribute(endpoint, Clusters::WebRTCTransportProvider::Id, Id, readable, sizeof(temp));
+    VerifyOrReturnError(Protocols::InteractionModel::Status::Success == status, status);
+    if (!Traits::CanRepresentValue(/* isNullable = */ false, temp))
+    {
+        return Protocols::InteractionModel::Status::ConstraintError;
+    }
+    *value = Traits::StorageToWorking(temp);
+    return status;
+}
+
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint32_t value, MarkAttributeDirty markDirty)
+{
+    using Traits = NumericAttributeTraits<uint32_t>;
+    if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
+    {
+        return Protocols::InteractionModel::Status::ConstraintError;
+    }
+    Traits::StorageType storageValue;
+    Traits::WorkingToStorage(value, storageValue);
+    uint8_t * writable = Traits::ToAttributeStoreRepresentation(storageValue);
+    return emberAfWriteAttribute(endpoint, Clusters::WebRTCTransportProvider::Id, Id, writable, ZCL_BITMAP32_ATTRIBUTE_TYPE,
+                                 markDirty);
+}
+
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint32_t value)
+{
+    using Traits = NumericAttributeTraits<uint32_t>;
+    if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
+    {
+        return Protocols::InteractionModel::Status::ConstraintError;
+    }
+    Traits::StorageType storageValue;
+    Traits::WorkingToStorage(value, storageValue);
+    uint8_t * writable = Traits::ToAttributeStoreRepresentation(storageValue);
+    return emberAfWriteAttribute(endpoint, Clusters::WebRTCTransportProvider::Id, Id, writable, ZCL_BITMAP32_ATTRIBUTE_TYPE);
+}
+
+} // namespace FeatureMap
+
+namespace ClusterRevision {
+
+Protocols::InteractionModel::Status Get(chip::EndpointId endpoint, uint16_t * value)
+{
+    using Traits = NumericAttributeTraits<uint16_t>;
+    Traits::StorageType temp;
+    uint8_t * readable = Traits::ToAttributeStoreRepresentation(temp);
+    Protocols::InteractionModel::Status status =
+        emberAfReadAttribute(endpoint, Clusters::WebRTCTransportProvider::Id, Id, readable, sizeof(temp));
+    VerifyOrReturnError(Protocols::InteractionModel::Status::Success == status, status);
+    if (!Traits::CanRepresentValue(/* isNullable = */ false, temp))
+    {
+        return Protocols::InteractionModel::Status::ConstraintError;
+    }
+    *value = Traits::StorageToWorking(temp);
+    return status;
+}
+
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint16_t value, MarkAttributeDirty markDirty)
+{
+    using Traits = NumericAttributeTraits<uint16_t>;
+    if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
+    {
+        return Protocols::InteractionModel::Status::ConstraintError;
+    }
+    Traits::StorageType storageValue;
+    Traits::WorkingToStorage(value, storageValue);
+    uint8_t * writable = Traits::ToAttributeStoreRepresentation(storageValue);
+    return emberAfWriteAttribute(endpoint, Clusters::WebRTCTransportProvider::Id, Id, writable, ZCL_INT16U_ATTRIBUTE_TYPE,
+                                 markDirty);
+}
+
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint16_t value)
+{
+    using Traits = NumericAttributeTraits<uint16_t>;
+    if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
+    {
+        return Protocols::InteractionModel::Status::ConstraintError;
+    }
+    Traits::StorageType storageValue;
+    Traits::WorkingToStorage(value, storageValue);
+    uint8_t * writable = Traits::ToAttributeStoreRepresentation(storageValue);
+    return emberAfWriteAttribute(endpoint, Clusters::WebRTCTransportProvider::Id, Id, writable, ZCL_INT16U_ATTRIBUTE_TYPE);
+}
+
+} // namespace ClusterRevision
+
+} // namespace Attributes
+} // namespace WebRTCTransportProvider
+
+namespace WebRTCTransportRequestor {
+namespace Attributes {
+
+namespace FeatureMap {
+
+Protocols::InteractionModel::Status Get(chip::EndpointId endpoint, uint32_t * value)
+{
+    using Traits = NumericAttributeTraits<uint32_t>;
+    Traits::StorageType temp;
+    uint8_t * readable = Traits::ToAttributeStoreRepresentation(temp);
+    Protocols::InteractionModel::Status status =
+        emberAfReadAttribute(endpoint, Clusters::WebRTCTransportRequestor::Id, Id, readable, sizeof(temp));
+    VerifyOrReturnError(Protocols::InteractionModel::Status::Success == status, status);
+    if (!Traits::CanRepresentValue(/* isNullable = */ false, temp))
+    {
+        return Protocols::InteractionModel::Status::ConstraintError;
+    }
+    *value = Traits::StorageToWorking(temp);
+    return status;
+}
+
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint32_t value, MarkAttributeDirty markDirty)
+{
+    using Traits = NumericAttributeTraits<uint32_t>;
+    if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
+    {
+        return Protocols::InteractionModel::Status::ConstraintError;
+    }
+    Traits::StorageType storageValue;
+    Traits::WorkingToStorage(value, storageValue);
+    uint8_t * writable = Traits::ToAttributeStoreRepresentation(storageValue);
+    return emberAfWriteAttribute(endpoint, Clusters::WebRTCTransportRequestor::Id, Id, writable, ZCL_BITMAP32_ATTRIBUTE_TYPE,
+                                 markDirty);
+}
+
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint32_t value)
+{
+    using Traits = NumericAttributeTraits<uint32_t>;
+    if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
+    {
+        return Protocols::InteractionModel::Status::ConstraintError;
+    }
+    Traits::StorageType storageValue;
+    Traits::WorkingToStorage(value, storageValue);
+    uint8_t * writable = Traits::ToAttributeStoreRepresentation(storageValue);
+    return emberAfWriteAttribute(endpoint, Clusters::WebRTCTransportRequestor::Id, Id, writable, ZCL_BITMAP32_ATTRIBUTE_TYPE);
+}
+
+} // namespace FeatureMap
+
+namespace ClusterRevision {
+
+Protocols::InteractionModel::Status Get(chip::EndpointId endpoint, uint16_t * value)
+{
+    using Traits = NumericAttributeTraits<uint16_t>;
+    Traits::StorageType temp;
+    uint8_t * readable = Traits::ToAttributeStoreRepresentation(temp);
+    Protocols::InteractionModel::Status status =
+        emberAfReadAttribute(endpoint, Clusters::WebRTCTransportRequestor::Id, Id, readable, sizeof(temp));
+    VerifyOrReturnError(Protocols::InteractionModel::Status::Success == status, status);
+    if (!Traits::CanRepresentValue(/* isNullable = */ false, temp))
+    {
+        return Protocols::InteractionModel::Status::ConstraintError;
+    }
+    *value = Traits::StorageToWorking(temp);
+    return status;
+}
+
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint16_t value, MarkAttributeDirty markDirty)
+{
+    using Traits = NumericAttributeTraits<uint16_t>;
+    if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
+    {
+        return Protocols::InteractionModel::Status::ConstraintError;
+    }
+    Traits::StorageType storageValue;
+    Traits::WorkingToStorage(value, storageValue);
+    uint8_t * writable = Traits::ToAttributeStoreRepresentation(storageValue);
+    return emberAfWriteAttribute(endpoint, Clusters::WebRTCTransportRequestor::Id, Id, writable, ZCL_INT16U_ATTRIBUTE_TYPE,
+                                 markDirty);
+}
+
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint16_t value)
+{
+    using Traits = NumericAttributeTraits<uint16_t>;
+    if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
+    {
+        return Protocols::InteractionModel::Status::ConstraintError;
+    }
+    Traits::StorageType storageValue;
+    Traits::WorkingToStorage(value, storageValue);
+    uint8_t * writable = Traits::ToAttributeStoreRepresentation(storageValue);
+    return emberAfWriteAttribute(endpoint, Clusters::WebRTCTransportRequestor::Id, Id, writable, ZCL_INT16U_ATTRIBUTE_TYPE);
+}
+
+} // namespace ClusterRevision
+
+} // namespace Attributes
+} // namespace WebRTCTransportRequestor
+
+namespace PushAvStreamTransport {
+namespace Attributes {
+
+namespace FeatureMap {
+
+Protocols::InteractionModel::Status Get(chip::EndpointId endpoint, uint32_t * value)
+{
+    using Traits = NumericAttributeTraits<uint32_t>;
+    Traits::StorageType temp;
+    uint8_t * readable = Traits::ToAttributeStoreRepresentation(temp);
+    Protocols::InteractionModel::Status status =
+        emberAfReadAttribute(endpoint, Clusters::PushAvStreamTransport::Id, Id, readable, sizeof(temp));
+    VerifyOrReturnError(Protocols::InteractionModel::Status::Success == status, status);
+    if (!Traits::CanRepresentValue(/* isNullable = */ false, temp))
+    {
+        return Protocols::InteractionModel::Status::ConstraintError;
+    }
+    *value = Traits::StorageToWorking(temp);
+    return status;
+}
+
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint32_t value, MarkAttributeDirty markDirty)
+{
+    using Traits = NumericAttributeTraits<uint32_t>;
+    if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
+    {
+        return Protocols::InteractionModel::Status::ConstraintError;
+    }
+    Traits::StorageType storageValue;
+    Traits::WorkingToStorage(value, storageValue);
+    uint8_t * writable = Traits::ToAttributeStoreRepresentation(storageValue);
+    return emberAfWriteAttribute(endpoint, Clusters::PushAvStreamTransport::Id, Id, writable, ZCL_BITMAP32_ATTRIBUTE_TYPE,
+                                 markDirty);
+}
+
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint32_t value)
+{
+    using Traits = NumericAttributeTraits<uint32_t>;
+    if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
+    {
+        return Protocols::InteractionModel::Status::ConstraintError;
+    }
+    Traits::StorageType storageValue;
+    Traits::WorkingToStorage(value, storageValue);
+    uint8_t * writable = Traits::ToAttributeStoreRepresentation(storageValue);
+    return emberAfWriteAttribute(endpoint, Clusters::PushAvStreamTransport::Id, Id, writable, ZCL_BITMAP32_ATTRIBUTE_TYPE);
+}
+
+} // namespace FeatureMap
+
+namespace ClusterRevision {
+
+Protocols::InteractionModel::Status Get(chip::EndpointId endpoint, uint16_t * value)
+{
+    using Traits = NumericAttributeTraits<uint16_t>;
+    Traits::StorageType temp;
+    uint8_t * readable = Traits::ToAttributeStoreRepresentation(temp);
+    Protocols::InteractionModel::Status status =
+        emberAfReadAttribute(endpoint, Clusters::PushAvStreamTransport::Id, Id, readable, sizeof(temp));
+    VerifyOrReturnError(Protocols::InteractionModel::Status::Success == status, status);
+    if (!Traits::CanRepresentValue(/* isNullable = */ false, temp))
+    {
+        return Protocols::InteractionModel::Status::ConstraintError;
+    }
+    *value = Traits::StorageToWorking(temp);
+    return status;
+}
+
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint16_t value, MarkAttributeDirty markDirty)
+{
+    using Traits = NumericAttributeTraits<uint16_t>;
+    if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
+    {
+        return Protocols::InteractionModel::Status::ConstraintError;
+    }
+    Traits::StorageType storageValue;
+    Traits::WorkingToStorage(value, storageValue);
+    uint8_t * writable = Traits::ToAttributeStoreRepresentation(storageValue);
+    return emberAfWriteAttribute(endpoint, Clusters::PushAvStreamTransport::Id, Id, writable, ZCL_INT16U_ATTRIBUTE_TYPE, markDirty);
+}
+
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint16_t value)
+{
+    using Traits = NumericAttributeTraits<uint16_t>;
+    if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
+    {
+        return Protocols::InteractionModel::Status::ConstraintError;
+    }
+    Traits::StorageType storageValue;
+    Traits::WorkingToStorage(value, storageValue);
+    uint8_t * writable = Traits::ToAttributeStoreRepresentation(storageValue);
+    return emberAfWriteAttribute(endpoint, Clusters::PushAvStreamTransport::Id, Id, writable, ZCL_INT16U_ATTRIBUTE_TYPE);
+}
+
+} // namespace ClusterRevision
+
+} // namespace Attributes
+} // namespace PushAvStreamTransport
+
+namespace Chime {
+namespace Attributes {
+
+namespace FeatureMap {
+
+Protocols::InteractionModel::Status Get(chip::EndpointId endpoint, uint32_t * value)
+{
+    using Traits = NumericAttributeTraits<uint32_t>;
+    Traits::StorageType temp;
+    uint8_t * readable                         = Traits::ToAttributeStoreRepresentation(temp);
+    Protocols::InteractionModel::Status status = emberAfReadAttribute(endpoint, Clusters::Chime::Id, Id, readable, sizeof(temp));
+    VerifyOrReturnError(Protocols::InteractionModel::Status::Success == status, status);
+    if (!Traits::CanRepresentValue(/* isNullable = */ false, temp))
+    {
+        return Protocols::InteractionModel::Status::ConstraintError;
+    }
+    *value = Traits::StorageToWorking(temp);
+    return status;
+}
+
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint32_t value, MarkAttributeDirty markDirty)
+{
+    using Traits = NumericAttributeTraits<uint32_t>;
+    if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
+    {
+        return Protocols::InteractionModel::Status::ConstraintError;
+    }
+    Traits::StorageType storageValue;
+    Traits::WorkingToStorage(value, storageValue);
+    uint8_t * writable = Traits::ToAttributeStoreRepresentation(storageValue);
+    return emberAfWriteAttribute(endpoint, Clusters::Chime::Id, Id, writable, ZCL_BITMAP32_ATTRIBUTE_TYPE, markDirty);
+}
+
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint32_t value)
+{
+    using Traits = NumericAttributeTraits<uint32_t>;
+    if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
+    {
+        return Protocols::InteractionModel::Status::ConstraintError;
+    }
+    Traits::StorageType storageValue;
+    Traits::WorkingToStorage(value, storageValue);
+    uint8_t * writable = Traits::ToAttributeStoreRepresentation(storageValue);
+    return emberAfWriteAttribute(endpoint, Clusters::Chime::Id, Id, writable, ZCL_BITMAP32_ATTRIBUTE_TYPE);
+}
+
+} // namespace FeatureMap
+
+namespace ClusterRevision {
+
+Protocols::InteractionModel::Status Get(chip::EndpointId endpoint, uint16_t * value)
+{
+    using Traits = NumericAttributeTraits<uint16_t>;
+    Traits::StorageType temp;
+    uint8_t * readable                         = Traits::ToAttributeStoreRepresentation(temp);
+    Protocols::InteractionModel::Status status = emberAfReadAttribute(endpoint, Clusters::Chime::Id, Id, readable, sizeof(temp));
+    VerifyOrReturnError(Protocols::InteractionModel::Status::Success == status, status);
+    if (!Traits::CanRepresentValue(/* isNullable = */ false, temp))
+    {
+        return Protocols::InteractionModel::Status::ConstraintError;
+    }
+    *value = Traits::StorageToWorking(temp);
+    return status;
+}
+
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint16_t value, MarkAttributeDirty markDirty)
+{
+    using Traits = NumericAttributeTraits<uint16_t>;
+    if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
+    {
+        return Protocols::InteractionModel::Status::ConstraintError;
+    }
+    Traits::StorageType storageValue;
+    Traits::WorkingToStorage(value, storageValue);
+    uint8_t * writable = Traits::ToAttributeStoreRepresentation(storageValue);
+    return emberAfWriteAttribute(endpoint, Clusters::Chime::Id, Id, writable, ZCL_INT16U_ATTRIBUTE_TYPE, markDirty);
+}
+
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint16_t value)
+{
+    using Traits = NumericAttributeTraits<uint16_t>;
+    if (!Traits::CanRepresentValue(/* isNullable = */ false, value))
+    {
+        return Protocols::InteractionModel::Status::ConstraintError;
+    }
+    Traits::StorageType storageValue;
+    Traits::WorkingToStorage(value, storageValue);
+    uint8_t * writable = Traits::ToAttributeStoreRepresentation(storageValue);
+    return emberAfWriteAttribute(endpoint, Clusters::Chime::Id, Id, writable, ZCL_INT16U_ATTRIBUTE_TYPE);
+}
+
+} // namespace ClusterRevision
+
+} // namespace Attributes
+} // namespace Chime
+
 namespace EcosystemInformation {
 namespace Attributes {
 
diff --git a/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.h b/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.h
index 80b542dbf0c190..da444c118fb846 100644
--- a/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.h
+++ b/zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.h
@@ -5809,6 +5809,114 @@ Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint16_t valu
 } // namespace Attributes
 } // namespace ContentAppObserver
 
+namespace CameraAvStreamManagement {
+namespace Attributes {
+
+namespace FeatureMap {
+Protocols::InteractionModel::Status Get(chip::EndpointId endpoint, uint32_t * value); // bitmap32
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint32_t value);
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint32_t value, MarkAttributeDirty markDirty);
+} // namespace FeatureMap
+
+namespace ClusterRevision {
+Protocols::InteractionModel::Status Get(chip::EndpointId endpoint, uint16_t * value); // int16u
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint16_t value);
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint16_t value, MarkAttributeDirty markDirty);
+} // namespace ClusterRevision
+
+} // namespace Attributes
+} // namespace CameraAvStreamManagement
+
+namespace CameraAvSettingsUserLevelManagement {
+namespace Attributes {
+
+namespace FeatureMap {
+Protocols::InteractionModel::Status Get(chip::EndpointId endpoint, uint32_t * value); // bitmap32
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint32_t value);
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint32_t value, MarkAttributeDirty markDirty);
+} // namespace FeatureMap
+
+namespace ClusterRevision {
+Protocols::InteractionModel::Status Get(chip::EndpointId endpoint, uint16_t * value); // int16u
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint16_t value);
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint16_t value, MarkAttributeDirty markDirty);
+} // namespace ClusterRevision
+
+} // namespace Attributes
+} // namespace CameraAvSettingsUserLevelManagement
+
+namespace WebRTCTransportProvider {
+namespace Attributes {
+
+namespace FeatureMap {
+Protocols::InteractionModel::Status Get(chip::EndpointId endpoint, uint32_t * value); // bitmap32
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint32_t value);
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint32_t value, MarkAttributeDirty markDirty);
+} // namespace FeatureMap
+
+namespace ClusterRevision {
+Protocols::InteractionModel::Status Get(chip::EndpointId endpoint, uint16_t * value); // int16u
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint16_t value);
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint16_t value, MarkAttributeDirty markDirty);
+} // namespace ClusterRevision
+
+} // namespace Attributes
+} // namespace WebRTCTransportProvider
+
+namespace WebRTCTransportRequestor {
+namespace Attributes {
+
+namespace FeatureMap {
+Protocols::InteractionModel::Status Get(chip::EndpointId endpoint, uint32_t * value); // bitmap32
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint32_t value);
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint32_t value, MarkAttributeDirty markDirty);
+} // namespace FeatureMap
+
+namespace ClusterRevision {
+Protocols::InteractionModel::Status Get(chip::EndpointId endpoint, uint16_t * value); // int16u
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint16_t value);
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint16_t value, MarkAttributeDirty markDirty);
+} // namespace ClusterRevision
+
+} // namespace Attributes
+} // namespace WebRTCTransportRequestor
+
+namespace PushAvStreamTransport {
+namespace Attributes {
+
+namespace FeatureMap {
+Protocols::InteractionModel::Status Get(chip::EndpointId endpoint, uint32_t * value); // bitmap32
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint32_t value);
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint32_t value, MarkAttributeDirty markDirty);
+} // namespace FeatureMap
+
+namespace ClusterRevision {
+Protocols::InteractionModel::Status Get(chip::EndpointId endpoint, uint16_t * value); // int16u
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint16_t value);
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint16_t value, MarkAttributeDirty markDirty);
+} // namespace ClusterRevision
+
+} // namespace Attributes
+} // namespace PushAvStreamTransport
+
+namespace Chime {
+namespace Attributes {
+
+namespace FeatureMap {
+Protocols::InteractionModel::Status Get(chip::EndpointId endpoint, uint32_t * value); // bitmap32
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint32_t value);
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint32_t value, MarkAttributeDirty markDirty);
+} // namespace FeatureMap
+
+namespace ClusterRevision {
+Protocols::InteractionModel::Status Get(chip::EndpointId endpoint, uint16_t * value); // int16u
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint16_t value);
+Protocols::InteractionModel::Status Set(chip::EndpointId endpoint, uint16_t value, MarkAttributeDirty markDirty);
+} // namespace ClusterRevision
+
+} // namespace Attributes
+} // namespace Chime
+
 namespace EcosystemInformation {
 namespace Attributes {
 
diff --git a/zzz_generated/app-common/app-common/zap-generated/callback.h b/zzz_generated/app-common/app-common/zap-generated/callback.h
index 724e7a7eb88857..6bc27c97ee0b08 100644
--- a/zzz_generated/app-common/app-common/zap-generated/callback.h
+++ b/zzz_generated/app-common/app-common/zap-generated/callback.h
@@ -633,6 +633,36 @@ void emberAfContentControlClusterInitCallback(chip::EndpointId endpoint);
  */
 void emberAfContentAppObserverClusterInitCallback(chip::EndpointId endpoint);
 
+/**
+ * @param endpoint    Endpoint that is being initialized
+ */
+void emberAfCameraAvStreamManagementClusterInitCallback(chip::EndpointId endpoint);
+
+/**
+ * @param endpoint    Endpoint that is being initialized
+ */
+void emberAfCameraAvSettingsUserLevelManagementClusterInitCallback(chip::EndpointId endpoint);
+
+/**
+ * @param endpoint    Endpoint that is being initialized
+ */
+void emberAfWebRTCTransportProviderClusterInitCallback(chip::EndpointId endpoint);
+
+/**
+ * @param endpoint    Endpoint that is being initialized
+ */
+void emberAfWebRTCTransportRequestorClusterInitCallback(chip::EndpointId endpoint);
+
+/**
+ * @param endpoint    Endpoint that is being initialized
+ */
+void emberAfPushAvStreamTransportClusterInitCallback(chip::EndpointId endpoint);
+
+/**
+ * @param endpoint    Endpoint that is being initialized
+ */
+void emberAfChimeClusterInitCallback(chip::EndpointId endpoint);
+
 /**
  * @param endpoint    Endpoint that is being initialized
  */
@@ -5303,6 +5333,236 @@ chip::Protocols::InteractionModel::Status MatterContentAppObserverClusterServerP
  */
 void emberAfContentAppObserverClusterServerTickCallback(chip::EndpointId endpoint);
 
+//
+// Camera AV Stream Management Cluster
+//
+
+/**
+ * @param endpoint    Endpoint that is being initialized
+ */
+void emberAfCameraAvStreamManagementClusterServerInitCallback(chip::EndpointId endpoint);
+
+/**
+ * @param endpoint    Endpoint that is being shutdown
+ */
+void MatterCameraAvStreamManagementClusterServerShutdownCallback(chip::EndpointId endpoint);
+
+/**
+ * @param endpoint    Endpoint that is being initialized
+ */
+void emberAfCameraAvStreamManagementClusterClientInitCallback(chip::EndpointId endpoint);
+
+/**
+ * @param attributePath Concrete attribute path that changed
+ */
+void MatterCameraAvStreamManagementClusterServerAttributeChangedCallback(const chip::app::ConcreteAttributePath & attributePath);
+
+/**
+ * @param attributePath Concrete attribute path to be changed
+ * @param attributeType Attribute type
+ * @param size          Attribute size
+ * @param value         Attribute value
+ */
+chip::Protocols::InteractionModel::Status MatterCameraAvStreamManagementClusterServerPreAttributeChangedCallback(
+    const chip::app::ConcreteAttributePath & attributePath, EmberAfAttributeType attributeType, uint16_t size, uint8_t * value);
+
+/**
+ * @param endpoint  Endpoint that is being served
+ */
+void emberAfCameraAvStreamManagementClusterServerTickCallback(chip::EndpointId endpoint);
+
+//
+// Camera AV Settings User Level Management Cluster
+//
+
+/**
+ * @param endpoint    Endpoint that is being initialized
+ */
+void emberAfCameraAvSettingsUserLevelManagementClusterServerInitCallback(chip::EndpointId endpoint);
+
+/**
+ * @param endpoint    Endpoint that is being shutdown
+ */
+void MatterCameraAvSettingsUserLevelManagementClusterServerShutdownCallback(chip::EndpointId endpoint);
+
+/**
+ * @param endpoint    Endpoint that is being initialized
+ */
+void emberAfCameraAvSettingsUserLevelManagementClusterClientInitCallback(chip::EndpointId endpoint);
+
+/**
+ * @param attributePath Concrete attribute path that changed
+ */
+void MatterCameraAvSettingsUserLevelManagementClusterServerAttributeChangedCallback(
+    const chip::app::ConcreteAttributePath & attributePath);
+
+/**
+ * @param attributePath Concrete attribute path to be changed
+ * @param attributeType Attribute type
+ * @param size          Attribute size
+ * @param value         Attribute value
+ */
+chip::Protocols::InteractionModel::Status MatterCameraAvSettingsUserLevelManagementClusterServerPreAttributeChangedCallback(
+    const chip::app::ConcreteAttributePath & attributePath, EmberAfAttributeType attributeType, uint16_t size, uint8_t * value);
+
+/**
+ * @param endpoint  Endpoint that is being served
+ */
+void emberAfCameraAvSettingsUserLevelManagementClusterServerTickCallback(chip::EndpointId endpoint);
+
+//
+// WebRTC Transport Provider Cluster
+//
+
+/**
+ * @param endpoint    Endpoint that is being initialized
+ */
+void emberAfWebRTCTransportProviderClusterServerInitCallback(chip::EndpointId endpoint);
+
+/**
+ * @param endpoint    Endpoint that is being shutdown
+ */
+void MatterWebRTCTransportProviderClusterServerShutdownCallback(chip::EndpointId endpoint);
+
+/**
+ * @param endpoint    Endpoint that is being initialized
+ */
+void emberAfWebRTCTransportProviderClusterClientInitCallback(chip::EndpointId endpoint);
+
+/**
+ * @param attributePath Concrete attribute path that changed
+ */
+void MatterWebRTCTransportProviderClusterServerAttributeChangedCallback(const chip::app::ConcreteAttributePath & attributePath);
+
+/**
+ * @param attributePath Concrete attribute path to be changed
+ * @param attributeType Attribute type
+ * @param size          Attribute size
+ * @param value         Attribute value
+ */
+chip::Protocols::InteractionModel::Status MatterWebRTCTransportProviderClusterServerPreAttributeChangedCallback(
+    const chip::app::ConcreteAttributePath & attributePath, EmberAfAttributeType attributeType, uint16_t size, uint8_t * value);
+
+/**
+ * @param endpoint  Endpoint that is being served
+ */
+void emberAfWebRTCTransportProviderClusterServerTickCallback(chip::EndpointId endpoint);
+
+//
+// WebRTC Transport Requestor Cluster
+//
+
+/**
+ * @param endpoint    Endpoint that is being initialized
+ */
+void emberAfWebRTCTransportRequestorClusterServerInitCallback(chip::EndpointId endpoint);
+
+/**
+ * @param endpoint    Endpoint that is being shutdown
+ */
+void MatterWebRTCTransportRequestorClusterServerShutdownCallback(chip::EndpointId endpoint);
+
+/**
+ * @param endpoint    Endpoint that is being initialized
+ */
+void emberAfWebRTCTransportRequestorClusterClientInitCallback(chip::EndpointId endpoint);
+
+/**
+ * @param attributePath Concrete attribute path that changed
+ */
+void MatterWebRTCTransportRequestorClusterServerAttributeChangedCallback(const chip::app::ConcreteAttributePath & attributePath);
+
+/**
+ * @param attributePath Concrete attribute path to be changed
+ * @param attributeType Attribute type
+ * @param size          Attribute size
+ * @param value         Attribute value
+ */
+chip::Protocols::InteractionModel::Status MatterWebRTCTransportRequestorClusterServerPreAttributeChangedCallback(
+    const chip::app::ConcreteAttributePath & attributePath, EmberAfAttributeType attributeType, uint16_t size, uint8_t * value);
+
+/**
+ * @param endpoint  Endpoint that is being served
+ */
+void emberAfWebRTCTransportRequestorClusterServerTickCallback(chip::EndpointId endpoint);
+
+//
+// Push AV Stream Transport Cluster
+//
+
+/**
+ * @param endpoint    Endpoint that is being initialized
+ */
+void emberAfPushAvStreamTransportClusterServerInitCallback(chip::EndpointId endpoint);
+
+/**
+ * @param endpoint    Endpoint that is being shutdown
+ */
+void MatterPushAvStreamTransportClusterServerShutdownCallback(chip::EndpointId endpoint);
+
+/**
+ * @param endpoint    Endpoint that is being initialized
+ */
+void emberAfPushAvStreamTransportClusterClientInitCallback(chip::EndpointId endpoint);
+
+/**
+ * @param attributePath Concrete attribute path that changed
+ */
+void MatterPushAvStreamTransportClusterServerAttributeChangedCallback(const chip::app::ConcreteAttributePath & attributePath);
+
+/**
+ * @param attributePath Concrete attribute path to be changed
+ * @param attributeType Attribute type
+ * @param size          Attribute size
+ * @param value         Attribute value
+ */
+chip::Protocols::InteractionModel::Status MatterPushAvStreamTransportClusterServerPreAttributeChangedCallback(
+    const chip::app::ConcreteAttributePath & attributePath, EmberAfAttributeType attributeType, uint16_t size, uint8_t * value);
+
+/**
+ * @param endpoint  Endpoint that is being served
+ */
+void emberAfPushAvStreamTransportClusterServerTickCallback(chip::EndpointId endpoint);
+
+//
+// Chime Cluster
+//
+
+/**
+ * @param endpoint    Endpoint that is being initialized
+ */
+void emberAfChimeClusterServerInitCallback(chip::EndpointId endpoint);
+
+/**
+ * @param endpoint    Endpoint that is being shutdown
+ */
+void MatterChimeClusterServerShutdownCallback(chip::EndpointId endpoint);
+
+/**
+ * @param endpoint    Endpoint that is being initialized
+ */
+void emberAfChimeClusterClientInitCallback(chip::EndpointId endpoint);
+
+/**
+ * @param attributePath Concrete attribute path that changed
+ */
+void MatterChimeClusterServerAttributeChangedCallback(const chip::app::ConcreteAttributePath & attributePath);
+
+/**
+ * @param attributePath Concrete attribute path to be changed
+ * @param attributeType Attribute type
+ * @param size          Attribute size
+ * @param value         Attribute value
+ */
+chip::Protocols::InteractionModel::Status
+MatterChimeClusterServerPreAttributeChangedCallback(const chip::app::ConcreteAttributePath & attributePath,
+                                                    EmberAfAttributeType attributeType, uint16_t size, uint8_t * value);
+
+/**
+ * @param endpoint  Endpoint that is being served
+ */
+void emberAfChimeClusterServerTickCallback(chip::EndpointId endpoint);
+
 //
 // Ecosystem Information Cluster
 //
@@ -6743,6 +7003,210 @@ bool emberAfContentControlClusterSetScheduledContentRatingThresholdCallback(
 bool emberAfContentAppObserverClusterContentAppMessageCallback(
     chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
     const chip::app::Clusters::ContentAppObserver::Commands::ContentAppMessage::DecodableType & commandData);
+/**
+ * @brief Camera AV Stream Management Cluster AudioStreamAllocate Command callback (from client)
+ */
+bool emberAfCameraAvStreamManagementClusterAudioStreamAllocateCallback(
+    chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
+    const chip::app::Clusters::CameraAvStreamManagement::Commands::AudioStreamAllocate::DecodableType & commandData);
+/**
+ * @brief Camera AV Stream Management Cluster AudioStreamDeallocate Command callback (from client)
+ */
+bool emberAfCameraAvStreamManagementClusterAudioStreamDeallocateCallback(
+    chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
+    const chip::app::Clusters::CameraAvStreamManagement::Commands::AudioStreamDeallocate::DecodableType & commandData);
+/**
+ * @brief Camera AV Stream Management Cluster VideoStreamAllocate Command callback (from client)
+ */
+bool emberAfCameraAvStreamManagementClusterVideoStreamAllocateCallback(
+    chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
+    const chip::app::Clusters::CameraAvStreamManagement::Commands::VideoStreamAllocate::DecodableType & commandData);
+/**
+ * @brief Camera AV Stream Management Cluster VideoStreamModify Command callback (from client)
+ */
+bool emberAfCameraAvStreamManagementClusterVideoStreamModifyCallback(
+    chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
+    const chip::app::Clusters::CameraAvStreamManagement::Commands::VideoStreamModify::DecodableType & commandData);
+/**
+ * @brief Camera AV Stream Management Cluster VideoStreamDeallocate Command callback (from client)
+ */
+bool emberAfCameraAvStreamManagementClusterVideoStreamDeallocateCallback(
+    chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
+    const chip::app::Clusters::CameraAvStreamManagement::Commands::VideoStreamDeallocate::DecodableType & commandData);
+/**
+ * @brief Camera AV Stream Management Cluster SnapshotStreamAllocate Command callback (from client)
+ */
+bool emberAfCameraAvStreamManagementClusterSnapshotStreamAllocateCallback(
+    chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
+    const chip::app::Clusters::CameraAvStreamManagement::Commands::SnapshotStreamAllocate::DecodableType & commandData);
+/**
+ * @brief Camera AV Stream Management Cluster SnapshotStreamDeallocate Command callback (from client)
+ */
+bool emberAfCameraAvStreamManagementClusterSnapshotStreamDeallocateCallback(
+    chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
+    const chip::app::Clusters::CameraAvStreamManagement::Commands::SnapshotStreamDeallocate::DecodableType & commandData);
+/**
+ * @brief Camera AV Stream Management Cluster SetStreamPriority Command callback (from client)
+ */
+bool emberAfCameraAvStreamManagementClusterSetStreamPriorityCallback(
+    chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
+    const chip::app::Clusters::CameraAvStreamManagement::Commands::SetStreamPriority::DecodableType & commandData);
+/**
+ * @brief Camera AV Stream Management Cluster CaptureSnapshot Command callback (from client)
+ */
+bool emberAfCameraAvStreamManagementClusterCaptureSnapshotCallback(
+    chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
+    const chip::app::Clusters::CameraAvStreamManagement::Commands::CaptureSnapshot::DecodableType & commandData);
+/**
+ * @brief Camera AV Stream Management Cluster SetViewport Command callback (from client)
+ */
+bool emberAfCameraAvStreamManagementClusterSetViewportCallback(
+    chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
+    const chip::app::Clusters::CameraAvStreamManagement::Commands::SetViewport::DecodableType & commandData);
+/**
+ * @brief Camera AV Stream Management Cluster SetImageRotation Command callback (from client)
+ */
+bool emberAfCameraAvStreamManagementClusterSetImageRotationCallback(
+    chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
+    const chip::app::Clusters::CameraAvStreamManagement::Commands::SetImageRotation::DecodableType & commandData);
+/**
+ * @brief Camera AV Stream Management Cluster SetImageFlipHorizontal Command callback (from client)
+ */
+bool emberAfCameraAvStreamManagementClusterSetImageFlipHorizontalCallback(
+    chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
+    const chip::app::Clusters::CameraAvStreamManagement::Commands::SetImageFlipHorizontal::DecodableType & commandData);
+/**
+ * @brief Camera AV Stream Management Cluster SetImageFlipVertical Command callback (from client)
+ */
+bool emberAfCameraAvStreamManagementClusterSetImageFlipVerticalCallback(
+    chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
+    const chip::app::Clusters::CameraAvStreamManagement::Commands::SetImageFlipVertical::DecodableType & commandData);
+/**
+ * @brief Camera AV Settings User Level Management Cluster MptzSet Command callback (from client)
+ */
+bool emberAfCameraAvSettingsUserLevelManagementClusterMptzSetCallback(
+    chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
+    const chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::MptzSet::DecodableType & commandData);
+/**
+ * @brief Camera AV Settings User Level Management Cluster MptzRelativeMove Command callback (from client)
+ */
+bool emberAfCameraAvSettingsUserLevelManagementClusterMptzRelativeMoveCallback(
+    chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
+    const chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::MptzRelativeMove::DecodableType & commandData);
+/**
+ * @brief Camera AV Settings User Level Management Cluster SetAsPreset Command callback (from client)
+ */
+bool emberAfCameraAvSettingsUserLevelManagementClusterSetAsPresetCallback(
+    chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
+    const chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::SetAsPreset::DecodableType & commandData);
+/**
+ * @brief Camera AV Settings User Level Management Cluster DptzSetViewport Command callback (from client)
+ */
+bool emberAfCameraAvSettingsUserLevelManagementClusterDptzSetViewportCallback(
+    chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
+    const chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::DptzSetViewport::DecodableType & commandData);
+/**
+ * @brief Camera AV Settings User Level Management Cluster DptzRelativeMove Command callback (from client)
+ */
+bool emberAfCameraAvSettingsUserLevelManagementClusterDptzRelativeMoveCallback(
+    chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
+    const chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::DptzRelativeMove::DecodableType & commandData);
+/**
+ * @brief WebRTC Transport Provider Cluster WebRTCSolicitOffer Command callback (from client)
+ */
+bool emberAfWebRTCTransportProviderClusterWebRTCSolicitOfferCallback(
+    chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
+    const chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCSolicitOffer::DecodableType & commandData);
+/**
+ * @brief WebRTC Transport Provider Cluster WebRTCProvideOffer Command callback (from client)
+ */
+bool emberAfWebRTCTransportProviderClusterWebRTCProvideOfferCallback(
+    chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
+    const chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCProvideOffer::DecodableType & commandData);
+/**
+ * @brief WebRTC Transport Provider Cluster WebRTCProvideAnswer Command callback (from client)
+ */
+bool emberAfWebRTCTransportProviderClusterWebRTCProvideAnswerCallback(
+    chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
+    const chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCProvideAnswer::DecodableType & commandData);
+/**
+ * @brief WebRTC Transport Provider Cluster WebRTCProvideICECandidate Command callback (from client)
+ */
+bool emberAfWebRTCTransportProviderClusterWebRTCProvideICECandidateCallback(
+    chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
+    const chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCProvideICECandidate::DecodableType & commandData);
+/**
+ * @brief WebRTC Transport Provider Cluster WebRTCEndSession Command callback (from client)
+ */
+bool emberAfWebRTCTransportProviderClusterWebRTCEndSessionCallback(
+    chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
+    const chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCEndSession::DecodableType & commandData);
+/**
+ * @brief WebRTC Transport Requestor Cluster WebRTCOffer Command callback (from client)
+ */
+bool emberAfWebRTCTransportRequestorClusterWebRTCOfferCallback(
+    chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
+    const chip::app::Clusters::WebRTCTransportRequestor::Commands::WebRTCOffer::DecodableType & commandData);
+/**
+ * @brief WebRTC Transport Requestor Cluster WebRTCAnswer Command callback (from client)
+ */
+bool emberAfWebRTCTransportRequestorClusterWebRTCAnswerCallback(
+    chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
+    const chip::app::Clusters::WebRTCTransportRequestor::Commands::WebRTCAnswer::DecodableType & commandData);
+/**
+ * @brief WebRTC Transport Requestor Cluster WebRTCICECandidate Command callback (from client)
+ */
+bool emberAfWebRTCTransportRequestorClusterWebRTCICECandidateCallback(
+    chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
+    const chip::app::Clusters::WebRTCTransportRequestor::Commands::WebRTCICECandidate::DecodableType & commandData);
+/**
+ * @brief WebRTC Transport Requestor Cluster WebRTCEnd Command callback (from client)
+ */
+bool emberAfWebRTCTransportRequestorClusterWebRTCEndCallback(
+    chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
+    const chip::app::Clusters::WebRTCTransportRequestor::Commands::WebRTCEnd::DecodableType & commandData);
+/**
+ * @brief Push AV Stream Transport Cluster AllocatePushTransport Command callback (from client)
+ */
+bool emberAfPushAvStreamTransportClusterAllocatePushTransportCallback(
+    chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
+    const chip::app::Clusters::PushAvStreamTransport::Commands::AllocatePushTransport::DecodableType & commandData);
+/**
+ * @brief Push AV Stream Transport Cluster DeallocatePushTransport Command callback (from client)
+ */
+bool emberAfPushAvStreamTransportClusterDeallocatePushTransportCallback(
+    chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
+    const chip::app::Clusters::PushAvStreamTransport::Commands::DeallocatePushTransport::DecodableType & commandData);
+/**
+ * @brief Push AV Stream Transport Cluster ModifyPushTransport Command callback (from client)
+ */
+bool emberAfPushAvStreamTransportClusterModifyPushTransportCallback(
+    chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
+    const chip::app::Clusters::PushAvStreamTransport::Commands::ModifyPushTransport::DecodableType & commandData);
+/**
+ * @brief Push AV Stream Transport Cluster SetTransportStatus Command callback (from client)
+ */
+bool emberAfPushAvStreamTransportClusterSetTransportStatusCallback(
+    chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
+    const chip::app::Clusters::PushAvStreamTransport::Commands::SetTransportStatus::DecodableType & commandData);
+/**
+ * @brief Push AV Stream Transport Cluster ManuallyTriggerTransport Command callback (from client)
+ */
+bool emberAfPushAvStreamTransportClusterManuallyTriggerTransportCallback(
+    chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
+    const chip::app::Clusters::PushAvStreamTransport::Commands::ManuallyTriggerTransport::DecodableType & commandData);
+/**
+ * @brief Push AV Stream Transport Cluster FindStreamConfiguration Command callback (from client)
+ */
+bool emberAfPushAvStreamTransportClusterFindStreamConfigurationCallback(
+    chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
+    const chip::app::Clusters::PushAvStreamTransport::Commands::FindStreamConfiguration::DecodableType & commandData);
+/**
+ * @brief Chime Cluster PlayChimeSound Command callback (from client)
+ */
+bool emberAfChimeClusterPlayChimeSoundCallback(
+    chip::app::CommandHandler * commandObj, const chip::app::ConcreteCommandPath & commandPath,
+    const chip::app::Clusters::Chime::Commands::PlayChimeSound::DecodableType & commandData);
 /**
  * @brief Commissioner Control Cluster RequestCommissioningApproval Command callback (from client)
  */
diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-enums-check.h b/zzz_generated/app-common/app-common/zap-generated/cluster-enums-check.h
index 90d399b8e6fde7..977f0c93115a7e 100644
--- a/zzz_generated/app-common/app-common/zap-generated/cluster-enums-check.h
+++ b/zzz_generated/app-common/app-common/zap-generated/cluster-enums-check.h
@@ -416,6 +416,34 @@ static auto __attribute__((unused)) EnsureKnownEnumValue(Globals::RelativePositi
     }
 }
 
+static auto __attribute__((unused)) EnsureKnownEnumValue(detail::StreamTypeEnum val)
+{
+    using EnumType = detail::StreamTypeEnum;
+    switch (val)
+    {
+    case EnumType::kInternal:
+    case EnumType::kRecording:
+    case EnumType::kAnalysis:
+    case EnumType::kLiveView:
+        return val;
+    default:
+        return EnumType::kUnknownEnumValue;
+    }
+}
+static auto __attribute__((unused)) EnsureKnownEnumValue(detail::StreamTypeEnum val)
+{
+    using EnumType = detail::StreamTypeEnum;
+    switch (val)
+    {
+    case EnumType::kInternal:
+    case EnumType::kRecording:
+    case EnumType::kAnalysis:
+    case EnumType::kLiveView:
+        return val;
+    default:
+        return EnumType::kUnknownEnumValue;
+    }
+}
 static auto __attribute__((unused)) EnsureKnownEnumValue(Globals::TestGlobalEnum val)
 {
     using EnumType = Globals::TestGlobalEnum;
@@ -430,6 +458,44 @@ static auto __attribute__((unused)) EnsureKnownEnumValue(Globals::TestGlobalEnum
     }
 }
 
+static auto __attribute__((unused)) EnsureKnownEnumValue(Globals::ThreeLevelAutoEnum val)
+{
+    using EnumType = Globals::ThreeLevelAutoEnum;
+    switch (val)
+    {
+    case EnumType::kLow:
+    case EnumType::kMedium:
+    case EnumType::kHigh:
+    case EnumType::kAutomatic:
+        return val;
+    default:
+        return EnumType::kUnknownEnumValue;
+    }
+}
+
+static auto __attribute__((unused)) EnsureKnownEnumValue(detail::WebRTCEndReasonEnum val)
+{
+    using EnumType = detail::WebRTCEndReasonEnum;
+    switch (val)
+    {
+    case EnumType::kIceFailed:
+    case EnumType::kIceTimeout:
+    case EnumType::kUserHangup:
+    case EnumType::kUserBusy:
+    case EnumType::kReplaced:
+    case EnumType::kNoUserMedia:
+    case EnumType::kInviteTimeout:
+    case EnumType::kAnsweredElsewhere:
+    case EnumType::kOutOfResources:
+    case EnumType::kMediaTimeout:
+    case EnumType::kLowPower:
+    case EnumType::kUnknownError:
+        return val;
+    default:
+        return EnumType::kUnknownEnumValue;
+    }
+}
+
 static auto __attribute__((unused)) EnsureKnownEnumValue(Identify::EffectIdentifierEnum val)
 {
     using EnumType = Identify::EffectIdentifierEnum;
@@ -3466,6 +3532,162 @@ static auto __attribute__((unused)) EnsureKnownEnumValue(ContentAppObserver::Sta
     }
 }
 
+static auto __attribute__((unused)) EnsureKnownEnumValue(CameraAvStreamManagement::AudioCodecEnum val)
+{
+    using EnumType = CameraAvStreamManagement::AudioCodecEnum;
+    switch (val)
+    {
+    case EnumType::kOpus:
+    case EnumType::kAacLc:
+        return val;
+    default:
+        return EnumType::kUnknownEnumValue;
+    }
+}
+static auto __attribute__((unused)) EnsureKnownEnumValue(CameraAvStreamManagement::ImageCodecEnum val)
+{
+    using EnumType = CameraAvStreamManagement::ImageCodecEnum;
+    switch (val)
+    {
+    case EnumType::kJpeg:
+        return val;
+    default:
+        return EnumType::kUnknownEnumValue;
+    }
+}
+static auto __attribute__((unused)) EnsureKnownEnumValue(CameraAvStreamManagement::TriStateAuto val)
+{
+    using EnumType = CameraAvStreamManagement::TriStateAuto;
+    switch (val)
+    {
+    case EnumType::kOff:
+    case EnumType::kOn:
+    case EnumType::kAuto:
+        return val;
+    default:
+        return EnumType::kUnknownEnumValue;
+    }
+}
+static auto __attribute__((unused)) EnsureKnownEnumValue(CameraAvStreamManagement::TwowayTalkSupportTypeEnum val)
+{
+    using EnumType = CameraAvStreamManagement::TwowayTalkSupportTypeEnum;
+    switch (val)
+    {
+    case EnumType::kNotSupported:
+    case EnumType::kHalfDuplex:
+    case EnumType::kFullDuplex:
+        return val;
+    default:
+        return EnumType::kUnknownEnumValue;
+    }
+}
+static auto __attribute__((unused)) EnsureKnownEnumValue(CameraAvStreamManagement::VideoCodecEnum val)
+{
+    using EnumType = CameraAvStreamManagement::VideoCodecEnum;
+    switch (val)
+    {
+    case EnumType::kH264:
+    case EnumType::kHevc:
+    case EnumType::kVvc:
+    case EnumType::kAv1:
+        return val;
+    default:
+        return EnumType::kUnknownEnumValue;
+    }
+}
+
+static auto __attribute__((unused)) EnsureKnownEnumValue(PushAvStreamTransport::PushAVStreamTransportContainerFormatEnum val)
+{
+    using EnumType = PushAvStreamTransport::PushAVStreamTransportContainerFormatEnum;
+    switch (val)
+    {
+    case EnumType::kCmaf:
+        return val;
+    default:
+        return EnumType::kUnknownEnumValue;
+    }
+}
+static auto __attribute__((unused)) EnsureKnownEnumValue(PushAvStreamTransport::PushAVStreamTransportIngestMethodEnum val)
+{
+    using EnumType = PushAvStreamTransport::PushAVStreamTransportIngestMethodEnum;
+    switch (val)
+    {
+    case EnumType::kCMAFIngest:
+        return val;
+    default:
+        return EnumType::kUnknownEnumValue;
+    }
+}
+static auto __attribute__((unused)) EnsureKnownEnumValue(PushAvStreamTransport::PushAVStreamTransportStatusEnum val)
+{
+    using EnumType = PushAvStreamTransport::PushAVStreamTransportStatusEnum;
+    switch (val)
+    {
+    case EnumType::kActive:
+    case EnumType::kInactive:
+        return val;
+    default:
+        return EnumType::kUnknownEnumValue;
+    }
+}
+static auto __attribute__((unused)) EnsureKnownEnumValue(PushAvStreamTransport::PushAVStreamTransportStreamMultiplexingEnum val)
+{
+    using EnumType = PushAvStreamTransport::PushAVStreamTransportStreamMultiplexingEnum;
+    switch (val)
+    {
+    case EnumType::kInterleaved:
+        return val;
+    default:
+        return EnumType::kUnknownEnumValue;
+    }
+}
+static auto __attribute__((unused))
+EnsureKnownEnumValue(PushAvStreamTransport::PushAVStreamTransportTriggerActivationReasonEnum val)
+{
+    using EnumType = PushAvStreamTransport::PushAVStreamTransportTriggerActivationReasonEnum;
+    switch (val)
+    {
+    case EnumType::kUserInitiated:
+    case EnumType::kAutomation:
+    case EnumType::kEmergency:
+        return val;
+    default:
+        return EnumType::kUnknownEnumValue;
+    }
+}
+static auto __attribute__((unused)) EnsureKnownEnumValue(PushAvStreamTransport::PushAVStreamTransportTriggerTypeEnum val)
+{
+    using EnumType = PushAvStreamTransport::PushAVStreamTransportTriggerTypeEnum;
+    switch (val)
+    {
+    case EnumType::kCommand:
+    case EnumType::kMotion:
+    case EnumType::kContinuous:
+        return val;
+    default:
+        return EnumType::kUnknownEnumValue;
+    }
+}
+static auto __attribute__((unused)) EnsureKnownEnumValue(PushAvStreamTransport::StatusCodeEnum val)
+{
+    using EnumType = PushAvStreamTransport::StatusCodeEnum;
+    switch (val)
+    {
+    case EnumType::kAllocationNotPermitted:
+    case EnumType::kInvalidParameters:
+    case EnumType::kInvalidUrl:
+    case EnumType::kInvalidTriggerOptions:
+    case EnumType::kUnsupportedContainerFormat:
+    case EnumType::kUnsupportedIngestMethod:
+    case EnumType::kPavstNotInUse:
+    case EnumType::kInvalidTriggerFormat:
+    case EnumType::kInvalidTransportStatus:
+        return val;
+    default:
+        return EnumType::kUnknownEnumValue;
+    }
+}
+
 static auto __attribute__((unused)) EnsureKnownEnumValue(UnitTesting::SimpleEnum val)
 {
     using EnumType = UnitTesting::SimpleEnum;
diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h b/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h
index b1a50bcd44a722..69bc71394bcddf 100644
--- a/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h
+++ b/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h
@@ -167,8 +167,64 @@ enum class ProductIdentifierTypeEnum : uint8_t
     kUnknownEnumValue = 5,
 };
 
+// Enum for StreamTypeEnum
+enum class StreamTypeEnum : uint8_t
+{
+    kInternal  = 0x00,
+    kRecording = 0x01,
+    kAnalysis  = 0x02,
+    kLiveView  = 0x03,
+    // All received enum values that are not listed above will be mapped
+    // to kUnknownEnumValue. This is a helper enum value that should only
+    // be used by code to process how it handles receiving and unknown
+    // enum value. This specific should never be transmitted.
+    kUnknownEnumValue = 4,
+};
+
+// Enum for StreamTypeEnum
+enum class StreamTypeEnum : uint8_t
+{
+    kInternal  = 0x00,
+    kRecording = 0x01,
+    kAnalysis  = 0x02,
+    kLiveView  = 0x03,
+    // All received enum values that are not listed above will be mapped
+    // to kUnknownEnumValue. This is a helper enum value that should only
+    // be used by code to process how it handles receiving and unknown
+    // enum value. This specific should never be transmitted.
+    kUnknownEnumValue = 4,
+};
+
+// Enum for WebRTCEndReasonEnum
+enum class WebRTCEndReasonEnum : uint8_t
+{
+    kIceFailed         = 0x01,
+    kIceTimeout        = 0x02,
+    kUserHangup        = 0x03,
+    kUserBusy          = 0x04,
+    kReplaced          = 0x05,
+    kNoUserMedia       = 0x06,
+    kInviteTimeout     = 0x07,
+    kAnsweredElsewhere = 0x08,
+    kOutOfResources    = 0x09,
+    kMediaTimeout      = 0x0A,
+    kLowPower          = 0x0B,
+    kUnknownError      = 0x0C,
+    // All received enum values that are not listed above will be mapped
+    // to kUnknownEnumValue. This is a helper enum value that should only
+    // be used by code to process how it handles receiving and unknown
+    // enum value. This specific should never be transmitted.
+    kUnknownEnumValue = 0,
+};
+
 // Bitmaps shared across multiple clusters.
 
+// Bitmap for WebRTCMetadataOptions
+enum class WebRTCMetadataOptions : uint8_t
+{
+    kDataTLV = 0x1,
+};
+
 } // namespace detail
 
 namespace Globals {
@@ -434,6 +490,20 @@ enum class TestGlobalEnum : uint8_t
     kUnknownEnumValue = 3,
 };
 
+// Enum for ThreeLevelAutoEnum
+enum class ThreeLevelAutoEnum : uint8_t
+{
+    kLow       = 0x00,
+    kMedium    = 0x01,
+    kHigh      = 0x02,
+    kAutomatic = 0x03,
+    // All received enum values that are not listed above will be mapped
+    // to kUnknownEnumValue. This is a helper enum value that should only
+    // be used by code to process how it handles receiving and unknown
+    // enum value. This specific should never be transmitted.
+    kUnknownEnumValue = 4,
+};
+
 // Global bitmaps.
 
 // Bitmap for TestGlobalBitmap
@@ -5286,6 +5356,227 @@ enum class StatusEnum : uint8_t
 };
 } // namespace ContentAppObserver
 
+namespace CameraAvStreamManagement {
+
+// Enum for AudioCodecEnum
+enum class AudioCodecEnum : uint8_t
+{
+    kOpus  = 0x00,
+    kAacLc = 0x01,
+    // All received enum values that are not listed above will be mapped
+    // to kUnknownEnumValue. This is a helper enum value that should only
+    // be used by code to process how it handles receiving and unknown
+    // enum value. This specific should never be transmitted.
+    kUnknownEnumValue = 2,
+};
+
+// Enum for ImageCodecEnum
+enum class ImageCodecEnum : uint8_t
+{
+    kJpeg = 0x00,
+    // All received enum values that are not listed above will be mapped
+    // to kUnknownEnumValue. This is a helper enum value that should only
+    // be used by code to process how it handles receiving and unknown
+    // enum value. This specific should never be transmitted.
+    kUnknownEnumValue = 1,
+};
+
+using StreamTypeEnum = Clusters::detail::StreamTypeEnum;
+
+// Enum for TriStateAuto
+enum class TriStateAuto : uint8_t
+{
+    kOff  = 0x00,
+    kOn   = 0x01,
+    kAuto = 0x02,
+    // All received enum values that are not listed above will be mapped
+    // to kUnknownEnumValue. This is a helper enum value that should only
+    // be used by code to process how it handles receiving and unknown
+    // enum value. This specific should never be transmitted.
+    kUnknownEnumValue = 3,
+};
+
+// Enum for TwowayTalkSupportTypeEnum
+enum class TwowayTalkSupportTypeEnum : uint8_t
+{
+    kNotSupported = 0x00,
+    kHalfDuplex   = 0x01,
+    kFullDuplex   = 0x02,
+    // All received enum values that are not listed above will be mapped
+    // to kUnknownEnumValue. This is a helper enum value that should only
+    // be used by code to process how it handles receiving and unknown
+    // enum value. This specific should never be transmitted.
+    kUnknownEnumValue = 3,
+};
+
+// Enum for VideoCodecEnum
+enum class VideoCodecEnum : uint8_t
+{
+    kH264 = 0x00,
+    kHevc = 0x01,
+    kVvc  = 0x02,
+    kAv1  = 0x03,
+    // All received enum values that are not listed above will be mapped
+    // to kUnknownEnumValue. This is a helper enum value that should only
+    // be used by code to process how it handles receiving and unknown
+    // enum value. This specific should never be transmitted.
+    kUnknownEnumValue = 4,
+};
+
+// Bitmap for Feature
+enum class Feature : uint32_t
+{
+    kPrivacy       = 0x1,
+    kSensorControl = 0x2,
+    kAudio         = 0x4,
+    kImageControl  = 0x8,
+    kVideo         = 0x10,
+    kSnapshot      = 0x20,
+    kLocalStorage  = 0x40,
+};
+} // namespace CameraAvStreamManagement
+
+namespace CameraAvSettingsUserLevelManagement {
+
+// Bitmap for Feature
+enum class Feature : uint32_t
+{
+    kMechanicalPTZ = 0x1,
+    kDigitalPTZ    = 0x2,
+};
+} // namespace CameraAvSettingsUserLevelManagement
+
+namespace WebRTCTransportProvider {
+
+using StreamTypeEnum = Clusters::detail::StreamTypeEnum;
+
+using StreamTypeEnum = Clusters::detail::StreamTypeEnum;
+
+using WebRTCEndReasonEnum = Clusters::detail::WebRTCEndReasonEnum;
+
+using WebRTCMetadataOptions = Clusters::detail::WebRTCMetadataOptions;
+} // namespace WebRTCTransportProvider
+
+namespace WebRTCTransportRequestor {
+
+using StreamTypeEnum = Clusters::detail::StreamTypeEnum;
+
+using StreamTypeEnum = Clusters::detail::StreamTypeEnum;
+
+using WebRTCEndReasonEnum = Clusters::detail::WebRTCEndReasonEnum;
+
+using WebRTCMetadataOptions = Clusters::detail::WebRTCMetadataOptions;
+} // namespace WebRTCTransportRequestor
+
+namespace PushAvStreamTransport {
+
+// Enum for PushAVStreamTransportContainerFormatEnum
+enum class PushAVStreamTransportContainerFormatEnum : uint8_t
+{
+    kCmaf = 0x00,
+    // All received enum values that are not listed above will be mapped
+    // to kUnknownEnumValue. This is a helper enum value that should only
+    // be used by code to process how it handles receiving and unknown
+    // enum value. This specific should never be transmitted.
+    kUnknownEnumValue = 1,
+};
+
+// Enum for PushAVStreamTransportIngestMethodEnum
+enum class PushAVStreamTransportIngestMethodEnum : uint8_t
+{
+    kCMAFIngest = 0x00,
+    // All received enum values that are not listed above will be mapped
+    // to kUnknownEnumValue. This is a helper enum value that should only
+    // be used by code to process how it handles receiving and unknown
+    // enum value. This specific should never be transmitted.
+    kUnknownEnumValue = 1,
+};
+
+// Enum for PushAVStreamTransportStatusEnum
+enum class PushAVStreamTransportStatusEnum : uint8_t
+{
+    kActive   = 0x00,
+    kInactive = 0x01,
+    // All received enum values that are not listed above will be mapped
+    // to kUnknownEnumValue. This is a helper enum value that should only
+    // be used by code to process how it handles receiving and unknown
+    // enum value. This specific should never be transmitted.
+    kUnknownEnumValue = 2,
+};
+
+// Enum for PushAVStreamTransportStreamMultiplexingEnum
+enum class PushAVStreamTransportStreamMultiplexingEnum : uint8_t
+{
+    kInterleaved = 0x00,
+    // All received enum values that are not listed above will be mapped
+    // to kUnknownEnumValue. This is a helper enum value that should only
+    // be used by code to process how it handles receiving and unknown
+    // enum value. This specific should never be transmitted.
+    kUnknownEnumValue = 1,
+};
+
+// Enum for PushAVStreamTransportTriggerActivationReasonEnum
+enum class PushAVStreamTransportTriggerActivationReasonEnum : uint8_t
+{
+    kUserInitiated = 0x00,
+    kAutomation    = 0x01,
+    kEmergency     = 0x02,
+    // All received enum values that are not listed above will be mapped
+    // to kUnknownEnumValue. This is a helper enum value that should only
+    // be used by code to process how it handles receiving and unknown
+    // enum value. This specific should never be transmitted.
+    kUnknownEnumValue = 3,
+};
+
+// Enum for PushAVStreamTransportTriggerTypeEnum
+enum class PushAVStreamTransportTriggerTypeEnum : uint8_t
+{
+    kCommand    = 0x00,
+    kMotion     = 0x01,
+    kContinuous = 0x02,
+    // All received enum values that are not listed above will be mapped
+    // to kUnknownEnumValue. This is a helper enum value that should only
+    // be used by code to process how it handles receiving and unknown
+    // enum value. This specific should never be transmitted.
+    kUnknownEnumValue = 3,
+};
+
+// Enum for StatusCodeEnum
+enum class StatusCodeEnum : uint8_t
+{
+    kAllocationNotPermitted     = 0x02,
+    kInvalidParameters          = 0x03,
+    kInvalidUrl                 = 0x04,
+    kInvalidTriggerOptions      = 0x05,
+    kUnsupportedContainerFormat = 0x06,
+    kUnsupportedIngestMethod    = 0x07,
+    kPavstNotInUse              = 0x08,
+    kInvalidTriggerFormat       = 0x09,
+    kInvalidTransportStatus     = 0x10,
+    // All received enum values that are not listed above will be mapped
+    // to kUnknownEnumValue. This is a helper enum value that should only
+    // be used by code to process how it handles receiving and unknown
+    // enum value. This specific should never be transmitted.
+    kUnknownEnumValue = 0,
+};
+
+using StreamTypeEnum = Clusters::detail::StreamTypeEnum;
+
+// Bitmap for PushAVStreamTransportSupportedContainerFormatsBitmap
+enum class PushAVStreamTransportSupportedContainerFormatsBitmap : uint8_t
+{
+    kCmaf = 0x1,
+};
+
+// Bitmap for PushAVStreamTransportSupportedIngestMethodsBitmap
+enum class PushAVStreamTransportSupportedIngestMethodsBitmap : uint8_t
+{
+    kCMAFIngest = 0x1,
+};
+} // namespace PushAvStreamTransport
+
+namespace Chime {} // namespace Chime
+
 namespace EcosystemInformation {} // namespace EcosystemInformation
 
 namespace CommissionerControl {
diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.cpp b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.cpp
index 78368f7293b1a4..3dc2d156462287 100644
--- a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.cpp
+++ b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.cpp
@@ -422,6 +422,57 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
 
 } // namespace ErrorStateStruct
 
+namespace ICEServerStruct {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kUrls), urls);
+    encoder.Encode(to_underlying(Fields::kUsername), username);
+    encoder.Encode(to_underlying(Fields::kCredential), credential);
+    encoder.Encode(to_underlying(Fields::kCaid), caid);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kUrls))
+        {
+            err = DataModel::Decode(reader, urls);
+        }
+        else if (__context_tag == to_underlying(Fields::kUsername))
+        {
+            err = DataModel::Decode(reader, username);
+        }
+        else if (__context_tag == to_underlying(Fields::kCredential))
+        {
+            err = DataModel::Decode(reader, credential);
+        }
+        else if (__context_tag == to_underlying(Fields::kCaid))
+        {
+            err = DataModel::Decode(reader, caid);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+
+} // namespace ICEServerStruct
+
 namespace LabelStruct {
 CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
 {
@@ -503,6 +554,164 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
 }
 
 } // namespace OperationalStateStruct
+
+namespace PerStreamStruct {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kStreamID), streamID);
+    encoder.Encode(to_underlying(Fields::kOnOff), onOff);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kStreamID))
+        {
+            err = DataModel::Decode(reader, streamID);
+        }
+        else if (__context_tag == to_underlying(Fields::kOnOff))
+        {
+            err = DataModel::Decode(reader, onOff);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+
+} // namespace PerStreamStruct
+
+namespace ViewportStruct {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kX1), x1);
+    encoder.Encode(to_underlying(Fields::kY1), y1);
+    encoder.Encode(to_underlying(Fields::kX2), x2);
+    encoder.Encode(to_underlying(Fields::kY2), y2);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kX1))
+        {
+            err = DataModel::Decode(reader, x1);
+        }
+        else if (__context_tag == to_underlying(Fields::kY1))
+        {
+            err = DataModel::Decode(reader, y1);
+        }
+        else if (__context_tag == to_underlying(Fields::kX2))
+        {
+            err = DataModel::Decode(reader, x2);
+        }
+        else if (__context_tag == to_underlying(Fields::kY2))
+        {
+            err = DataModel::Decode(reader, y2);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+
+} // namespace ViewportStruct
+
+namespace WebRTCSessionStruct {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kId), id);
+    encoder.Encode(to_underlying(Fields::kPeerNodeId), peerNodeId);
+    encoder.Encode(to_underlying(Fields::kPeerFabricIndex), peerFabricIndex);
+    encoder.Encode(to_underlying(Fields::kStreamType), streamType);
+    encoder.Encode(to_underlying(Fields::kVideoStreamID), videoStreamID);
+    encoder.Encode(to_underlying(Fields::kAudioStreamID), audioStreamID);
+    encoder.Encode(to_underlying(Fields::kMetadataOptions), metadataOptions);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kId))
+        {
+            err = DataModel::Decode(reader, id);
+        }
+        else if (__context_tag == to_underlying(Fields::kPeerNodeId))
+        {
+            err = DataModel::Decode(reader, peerNodeId);
+        }
+        else if (__context_tag == to_underlying(Fields::kPeerFabricIndex))
+        {
+            err = DataModel::Decode(reader, peerFabricIndex);
+        }
+        else if (__context_tag == to_underlying(Fields::kStreamType))
+        {
+            err = DataModel::Decode(reader, streamType);
+        }
+        else if (__context_tag == to_underlying(Fields::kVideoStreamID))
+        {
+            err = DataModel::Decode(reader, videoStreamID);
+        }
+        else if (__context_tag == to_underlying(Fields::kAudioStreamID))
+        {
+            err = DataModel::Decode(reader, audioStreamID);
+        }
+        else if (__context_tag == to_underlying(Fields::kMetadataOptions))
+        {
+            err = DataModel::Decode(reader, metadataOptions);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+
+} // namespace WebRTCSessionStruct
 } // namespace Structs
 } // namespace detail
 
@@ -28079,14 +28288,2911 @@ CHIP_ERROR TypeInfo::DecodableType::Decode(TLV::TLVReader & reader, const Concre
 }
 } // namespace Attributes
 
-namespace Events {
-namespace LoggedOut {
+namespace Events {
+namespace LoggedOut {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    TLV::TLVType outer;
+    ReturnErrorOnFailure(aWriter.StartContainer(aTag, TLV::kTLVType_Structure, outer));
+    ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kNode), node));
+    return aWriter.EndContainer(outer);
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kNode))
+        {
+            err = DataModel::Decode(reader, node);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace LoggedOut.
+} // namespace Events
+
+} // namespace AccountLogin
+namespace ContentControl {
+namespace Structs {
+
+namespace RatingNameStruct {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kRatingName), ratingName);
+    encoder.Encode(to_underlying(Fields::kRatingNameDesc), ratingNameDesc);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kRatingName))
+        {
+            err = DataModel::Decode(reader, ratingName);
+        }
+        else if (__context_tag == to_underlying(Fields::kRatingNameDesc))
+        {
+            err = DataModel::Decode(reader, ratingNameDesc);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+
+} // namespace RatingNameStruct
+} // namespace Structs
+
+namespace Commands {
+namespace UpdatePIN {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kOldPIN), oldPIN);
+    encoder.Encode(to_underlying(Fields::kNewPIN), newPIN);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kOldPIN))
+        {
+            err = DataModel::Decode(reader, oldPIN);
+        }
+        else if (__context_tag == to_underlying(Fields::kNewPIN))
+        {
+            err = DataModel::Decode(reader, newPIN);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace UpdatePIN.
+namespace ResetPIN {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+    }
+}
+} // namespace ResetPIN.
+namespace ResetPINResponse {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kPINCode), PINCode);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kPINCode))
+        {
+            err = DataModel::Decode(reader, PINCode);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace ResetPINResponse.
+namespace Enable {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+    }
+}
+} // namespace Enable.
+namespace Disable {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+    }
+}
+} // namespace Disable.
+namespace AddBonusTime {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kPINCode), PINCode);
+    encoder.Encode(to_underlying(Fields::kBonusTime), bonusTime);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kPINCode))
+        {
+            err = DataModel::Decode(reader, PINCode);
+        }
+        else if (__context_tag == to_underlying(Fields::kBonusTime))
+        {
+            err = DataModel::Decode(reader, bonusTime);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace AddBonusTime.
+namespace SetScreenDailyTime {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kScreenTime), screenTime);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kScreenTime))
+        {
+            err = DataModel::Decode(reader, screenTime);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace SetScreenDailyTime.
+namespace BlockUnratedContent {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+    }
+}
+} // namespace BlockUnratedContent.
+namespace UnblockUnratedContent {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+    }
+}
+} // namespace UnblockUnratedContent.
+namespace SetOnDemandRatingThreshold {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kRating), rating);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kRating))
+        {
+            err = DataModel::Decode(reader, rating);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace SetOnDemandRatingThreshold.
+namespace SetScheduledContentRatingThreshold {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kRating), rating);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kRating))
+        {
+            err = DataModel::Decode(reader, rating);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace SetScheduledContentRatingThreshold.
+} // namespace Commands
+
+namespace Attributes {
+CHIP_ERROR TypeInfo::DecodableType::Decode(TLV::TLVReader & reader, const ConcreteAttributePath & path)
+{
+    switch (path.mAttributeId)
+    {
+    case Attributes::Enabled::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, enabled);
+    case Attributes::OnDemandRatings::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, onDemandRatings);
+    case Attributes::OnDemandRatingThreshold::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, onDemandRatingThreshold);
+    case Attributes::ScheduledContentRatings::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, scheduledContentRatings);
+    case Attributes::ScheduledContentRatingThreshold::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, scheduledContentRatingThreshold);
+    case Attributes::ScreenDailyTime::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, screenDailyTime);
+    case Attributes::RemainingScreenTime::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, remainingScreenTime);
+    case Attributes::BlockUnrated::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, blockUnrated);
+    case Attributes::GeneratedCommandList::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, generatedCommandList);
+    case Attributes::AcceptedCommandList::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, acceptedCommandList);
+    case Attributes::EventList::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, eventList);
+    case Attributes::AttributeList::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, attributeList);
+    case Attributes::FeatureMap::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, featureMap);
+    case Attributes::ClusterRevision::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, clusterRevision);
+    default:
+        return CHIP_NO_ERROR;
+    }
+}
+} // namespace Attributes
+
+namespace Events {
+namespace RemainingScreenTimeExpired {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    TLV::TLVType outer;
+    ReturnErrorOnFailure(aWriter.StartContainer(aTag, TLV::kTLVType_Structure, outer));
+    return aWriter.EndContainer(outer);
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+    }
+}
+} // namespace RemainingScreenTimeExpired.
+} // namespace Events
+
+} // namespace ContentControl
+namespace ContentAppObserver {
+
+namespace Commands {
+namespace ContentAppMessage {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kData), data);
+    encoder.Encode(to_underlying(Fields::kEncodingHint), encodingHint);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kData))
+        {
+            err = DataModel::Decode(reader, data);
+        }
+        else if (__context_tag == to_underlying(Fields::kEncodingHint))
+        {
+            err = DataModel::Decode(reader, encodingHint);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace ContentAppMessage.
+namespace ContentAppMessageResponse {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kStatus), status);
+    encoder.Encode(to_underlying(Fields::kData), data);
+    encoder.Encode(to_underlying(Fields::kEncodingHint), encodingHint);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kStatus))
+        {
+            err = DataModel::Decode(reader, status);
+        }
+        else if (__context_tag == to_underlying(Fields::kData))
+        {
+            err = DataModel::Decode(reader, data);
+        }
+        else if (__context_tag == to_underlying(Fields::kEncodingHint))
+        {
+            err = DataModel::Decode(reader, encodingHint);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace ContentAppMessageResponse.
+} // namespace Commands
+
+namespace Attributes {
+CHIP_ERROR TypeInfo::DecodableType::Decode(TLV::TLVReader & reader, const ConcreteAttributePath & path)
+{
+    switch (path.mAttributeId)
+    {
+    case Attributes::GeneratedCommandList::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, generatedCommandList);
+    case Attributes::AcceptedCommandList::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, acceptedCommandList);
+    case Attributes::EventList::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, eventList);
+    case Attributes::AttributeList::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, attributeList);
+    case Attributes::FeatureMap::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, featureMap);
+    case Attributes::ClusterRevision::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, clusterRevision);
+    default:
+        return CHIP_NO_ERROR;
+    }
+}
+} // namespace Attributes
+
+namespace Events {} // namespace Events
+
+} // namespace ContentAppObserver
+namespace CameraAvStreamManagement {
+namespace Structs {
+
+namespace AudioCapabilitiesStruct {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kMaxNumberOfChannels), maxNumberOfChannels);
+    encoder.Encode(to_underlying(Fields::kSupportedCodecs), supportedCodecs);
+    encoder.Encode(to_underlying(Fields::kSupportedSampleRates), supportedSampleRates);
+    encoder.Encode(to_underlying(Fields::kSupportedBitDepths), supportedBitDepths);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kMaxNumberOfChannels))
+        {
+            err = DataModel::Decode(reader, maxNumberOfChannels);
+        }
+        else if (__context_tag == to_underlying(Fields::kSupportedCodecs))
+        {
+            err = DataModel::Decode(reader, supportedCodecs);
+        }
+        else if (__context_tag == to_underlying(Fields::kSupportedSampleRates))
+        {
+            err = DataModel::Decode(reader, supportedSampleRates);
+        }
+        else if (__context_tag == to_underlying(Fields::kSupportedBitDepths))
+        {
+            err = DataModel::Decode(reader, supportedBitDepths);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+
+} // namespace AudioCapabilitiesStruct
+
+namespace AudioStreamStruct {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kAudioStreamID), audioStreamID);
+    encoder.Encode(to_underlying(Fields::kStreamType), streamType);
+    encoder.Encode(to_underlying(Fields::kAudioCodec), audioCodec);
+    encoder.Encode(to_underlying(Fields::kChannelCount), channelCount);
+    encoder.Encode(to_underlying(Fields::kSampleRate), sampleRate);
+    encoder.Encode(to_underlying(Fields::kBitRate), bitRate);
+    encoder.Encode(to_underlying(Fields::kBitDepth), bitDepth);
+    encoder.Encode(to_underlying(Fields::kReferenceCount), referenceCount);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kAudioStreamID))
+        {
+            err = DataModel::Decode(reader, audioStreamID);
+        }
+        else if (__context_tag == to_underlying(Fields::kStreamType))
+        {
+            err = DataModel::Decode(reader, streamType);
+        }
+        else if (__context_tag == to_underlying(Fields::kAudioCodec))
+        {
+            err = DataModel::Decode(reader, audioCodec);
+        }
+        else if (__context_tag == to_underlying(Fields::kChannelCount))
+        {
+            err = DataModel::Decode(reader, channelCount);
+        }
+        else if (__context_tag == to_underlying(Fields::kSampleRate))
+        {
+            err = DataModel::Decode(reader, sampleRate);
+        }
+        else if (__context_tag == to_underlying(Fields::kBitRate))
+        {
+            err = DataModel::Decode(reader, bitRate);
+        }
+        else if (__context_tag == to_underlying(Fields::kBitDepth))
+        {
+            err = DataModel::Decode(reader, bitDepth);
+        }
+        else if (__context_tag == to_underlying(Fields::kReferenceCount))
+        {
+            err = DataModel::Decode(reader, referenceCount);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+
+} // namespace AudioStreamStruct
+
+namespace RateDistortionTradeOffPointsStruct {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kCodec), codec);
+    encoder.Encode(to_underlying(Fields::kResolution), resolution);
+    encoder.Encode(to_underlying(Fields::kMinBitRate), minBitRate);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kCodec))
+        {
+            err = DataModel::Decode(reader, codec);
+        }
+        else if (__context_tag == to_underlying(Fields::kResolution))
+        {
+            err = DataModel::Decode(reader, resolution);
+        }
+        else if (__context_tag == to_underlying(Fields::kMinBitRate))
+        {
+            err = DataModel::Decode(reader, minBitRate);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+
+} // namespace RateDistortionTradeOffPointsStruct
+
+namespace SnapshotParamsStruct {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kResolution), resolution);
+    encoder.Encode(to_underlying(Fields::kMaxFrameRate), maxFrameRate);
+    encoder.Encode(to_underlying(Fields::kImageCodec), imageCodec);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kResolution))
+        {
+            err = DataModel::Decode(reader, resolution);
+        }
+        else if (__context_tag == to_underlying(Fields::kMaxFrameRate))
+        {
+            err = DataModel::Decode(reader, maxFrameRate);
+        }
+        else if (__context_tag == to_underlying(Fields::kImageCodec))
+        {
+            err = DataModel::Decode(reader, imageCodec);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+
+} // namespace SnapshotParamsStruct
+
+namespace SnapshotStreamStruct {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kSnapshotStreamID), snapshotStreamID);
+    encoder.Encode(to_underlying(Fields::kImageCodec), imageCodec);
+    encoder.Encode(to_underlying(Fields::kFrameRate), frameRate);
+    encoder.Encode(to_underlying(Fields::kBitRate), bitRate);
+    encoder.Encode(to_underlying(Fields::kMinResolution), minResolution);
+    encoder.Encode(to_underlying(Fields::kMaxResolution), maxResolution);
+    encoder.Encode(to_underlying(Fields::kQuality), quality);
+    encoder.Encode(to_underlying(Fields::kReferenceCount), referenceCount);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kSnapshotStreamID))
+        {
+            err = DataModel::Decode(reader, snapshotStreamID);
+        }
+        else if (__context_tag == to_underlying(Fields::kImageCodec))
+        {
+            err = DataModel::Decode(reader, imageCodec);
+        }
+        else if (__context_tag == to_underlying(Fields::kFrameRate))
+        {
+            err = DataModel::Decode(reader, frameRate);
+        }
+        else if (__context_tag == to_underlying(Fields::kBitRate))
+        {
+            err = DataModel::Decode(reader, bitRate);
+        }
+        else if (__context_tag == to_underlying(Fields::kMinResolution))
+        {
+            err = DataModel::Decode(reader, minResolution);
+        }
+        else if (__context_tag == to_underlying(Fields::kMaxResolution))
+        {
+            err = DataModel::Decode(reader, maxResolution);
+        }
+        else if (__context_tag == to_underlying(Fields::kQuality))
+        {
+            err = DataModel::Decode(reader, quality);
+        }
+        else if (__context_tag == to_underlying(Fields::kReferenceCount))
+        {
+            err = DataModel::Decode(reader, referenceCount);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+
+} // namespace SnapshotStreamStruct
+
+namespace VideoSensorParamsStruct {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kSensorWidth), sensorWidth);
+    encoder.Encode(to_underlying(Fields::kSensorHeight), sensorHeight);
+    encoder.Encode(to_underlying(Fields::kHDRCapable), HDRCapable);
+    encoder.Encode(to_underlying(Fields::kMaxFPS), maxFPS);
+    encoder.Encode(to_underlying(Fields::kMaxHDRFPS), maxHDRFPS);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kSensorWidth))
+        {
+            err = DataModel::Decode(reader, sensorWidth);
+        }
+        else if (__context_tag == to_underlying(Fields::kSensorHeight))
+        {
+            err = DataModel::Decode(reader, sensorHeight);
+        }
+        else if (__context_tag == to_underlying(Fields::kHDRCapable))
+        {
+            err = DataModel::Decode(reader, HDRCapable);
+        }
+        else if (__context_tag == to_underlying(Fields::kMaxFPS))
+        {
+            err = DataModel::Decode(reader, maxFPS);
+        }
+        else if (__context_tag == to_underlying(Fields::kMaxHDRFPS))
+        {
+            err = DataModel::Decode(reader, maxHDRFPS);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+
+} // namespace VideoSensorParamsStruct
+
+namespace VideoStreamStruct {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kVideoStreamID), videoStreamID);
+    encoder.Encode(to_underlying(Fields::kStreamType), streamType);
+    encoder.Encode(to_underlying(Fields::kVideoCodec), videoCodec);
+    encoder.Encode(to_underlying(Fields::kMinFrameRate), minFrameRate);
+    encoder.Encode(to_underlying(Fields::kMaxFrameRate), maxFrameRate);
+    encoder.Encode(to_underlying(Fields::kMinResolution), minResolution);
+    encoder.Encode(to_underlying(Fields::kMaxResolution), maxResolution);
+    encoder.Encode(to_underlying(Fields::kMinBitRate), minBitRate);
+    encoder.Encode(to_underlying(Fields::kMaxBitRate), maxBitRate);
+    encoder.Encode(to_underlying(Fields::kMinFragmentLen), minFragmentLen);
+    encoder.Encode(to_underlying(Fields::kMaxFragmentLen), maxFragmentLen);
+    encoder.Encode(to_underlying(Fields::kReferenceCount), referenceCount);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kVideoStreamID))
+        {
+            err = DataModel::Decode(reader, videoStreamID);
+        }
+        else if (__context_tag == to_underlying(Fields::kStreamType))
+        {
+            err = DataModel::Decode(reader, streamType);
+        }
+        else if (__context_tag == to_underlying(Fields::kVideoCodec))
+        {
+            err = DataModel::Decode(reader, videoCodec);
+        }
+        else if (__context_tag == to_underlying(Fields::kMinFrameRate))
+        {
+            err = DataModel::Decode(reader, minFrameRate);
+        }
+        else if (__context_tag == to_underlying(Fields::kMaxFrameRate))
+        {
+            err = DataModel::Decode(reader, maxFrameRate);
+        }
+        else if (__context_tag == to_underlying(Fields::kMinResolution))
+        {
+            err = DataModel::Decode(reader, minResolution);
+        }
+        else if (__context_tag == to_underlying(Fields::kMaxResolution))
+        {
+            err = DataModel::Decode(reader, maxResolution);
+        }
+        else if (__context_tag == to_underlying(Fields::kMinBitRate))
+        {
+            err = DataModel::Decode(reader, minBitRate);
+        }
+        else if (__context_tag == to_underlying(Fields::kMaxBitRate))
+        {
+            err = DataModel::Decode(reader, maxBitRate);
+        }
+        else if (__context_tag == to_underlying(Fields::kMinFragmentLen))
+        {
+            err = DataModel::Decode(reader, minFragmentLen);
+        }
+        else if (__context_tag == to_underlying(Fields::kMaxFragmentLen))
+        {
+            err = DataModel::Decode(reader, maxFragmentLen);
+        }
+        else if (__context_tag == to_underlying(Fields::kReferenceCount))
+        {
+            err = DataModel::Decode(reader, referenceCount);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+
+} // namespace VideoStreamStruct
+} // namespace Structs
+
+namespace Commands {
+namespace AudioStreamAllocate {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kStreamType), streamType);
+    encoder.Encode(to_underlying(Fields::kAudioCodec), audioCodec);
+    encoder.Encode(to_underlying(Fields::kChannelCount), channelCount);
+    encoder.Encode(to_underlying(Fields::kSampleRate), sampleRate);
+    encoder.Encode(to_underlying(Fields::kBitRate), bitRate);
+    encoder.Encode(to_underlying(Fields::kBitDepth), bitDepth);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kStreamType))
+        {
+            err = DataModel::Decode(reader, streamType);
+        }
+        else if (__context_tag == to_underlying(Fields::kAudioCodec))
+        {
+            err = DataModel::Decode(reader, audioCodec);
+        }
+        else if (__context_tag == to_underlying(Fields::kChannelCount))
+        {
+            err = DataModel::Decode(reader, channelCount);
+        }
+        else if (__context_tag == to_underlying(Fields::kSampleRate))
+        {
+            err = DataModel::Decode(reader, sampleRate);
+        }
+        else if (__context_tag == to_underlying(Fields::kBitRate))
+        {
+            err = DataModel::Decode(reader, bitRate);
+        }
+        else if (__context_tag == to_underlying(Fields::kBitDepth))
+        {
+            err = DataModel::Decode(reader, bitDepth);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace AudioStreamAllocate.
+namespace AudioStreamAllocateResponse {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kAudioStreamID), audioStreamID);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kAudioStreamID))
+        {
+            err = DataModel::Decode(reader, audioStreamID);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace AudioStreamAllocateResponse.
+namespace AudioStreamDeallocate {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kAudioStreamID), audioStreamID);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kAudioStreamID))
+        {
+            err = DataModel::Decode(reader, audioStreamID);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace AudioStreamDeallocate.
+namespace VideoStreamAllocate {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kStreamType), streamType);
+    encoder.Encode(to_underlying(Fields::kVideoCodec), videoCodec);
+    encoder.Encode(to_underlying(Fields::kMinFrameRate), minFrameRate);
+    encoder.Encode(to_underlying(Fields::kMaxFrameRate), maxFrameRate);
+    encoder.Encode(to_underlying(Fields::kMinResolution), minResolution);
+    encoder.Encode(to_underlying(Fields::kMaxResolution), maxResolution);
+    encoder.Encode(to_underlying(Fields::kMinBitRate), minBitRate);
+    encoder.Encode(to_underlying(Fields::kMaxBitRate), maxBitRate);
+    encoder.Encode(to_underlying(Fields::kMinFragmentLen), minFragmentLen);
+    encoder.Encode(to_underlying(Fields::kMaxFragmentLen), maxFragmentLen);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kStreamType))
+        {
+            err = DataModel::Decode(reader, streamType);
+        }
+        else if (__context_tag == to_underlying(Fields::kVideoCodec))
+        {
+            err = DataModel::Decode(reader, videoCodec);
+        }
+        else if (__context_tag == to_underlying(Fields::kMinFrameRate))
+        {
+            err = DataModel::Decode(reader, minFrameRate);
+        }
+        else if (__context_tag == to_underlying(Fields::kMaxFrameRate))
+        {
+            err = DataModel::Decode(reader, maxFrameRate);
+        }
+        else if (__context_tag == to_underlying(Fields::kMinResolution))
+        {
+            err = DataModel::Decode(reader, minResolution);
+        }
+        else if (__context_tag == to_underlying(Fields::kMaxResolution))
+        {
+            err = DataModel::Decode(reader, maxResolution);
+        }
+        else if (__context_tag == to_underlying(Fields::kMinBitRate))
+        {
+            err = DataModel::Decode(reader, minBitRate);
+        }
+        else if (__context_tag == to_underlying(Fields::kMaxBitRate))
+        {
+            err = DataModel::Decode(reader, maxBitRate);
+        }
+        else if (__context_tag == to_underlying(Fields::kMinFragmentLen))
+        {
+            err = DataModel::Decode(reader, minFragmentLen);
+        }
+        else if (__context_tag == to_underlying(Fields::kMaxFragmentLen))
+        {
+            err = DataModel::Decode(reader, maxFragmentLen);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace VideoStreamAllocate.
+namespace VideoStreamAllocateResponse {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kVideoStreamID), videoStreamID);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kVideoStreamID))
+        {
+            err = DataModel::Decode(reader, videoStreamID);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace VideoStreamAllocateResponse.
+namespace VideoStreamModify {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kVideoStreamID), videoStreamID);
+    encoder.Encode(to_underlying(Fields::kResolution), resolution);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kVideoStreamID))
+        {
+            err = DataModel::Decode(reader, videoStreamID);
+        }
+        else if (__context_tag == to_underlying(Fields::kResolution))
+        {
+            err = DataModel::Decode(reader, resolution);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace VideoStreamModify.
+namespace VideoStreamDeallocate {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kVideoStreamID), videoStreamID);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kVideoStreamID))
+        {
+            err = DataModel::Decode(reader, videoStreamID);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace VideoStreamDeallocate.
+namespace SnapshotStreamAllocate {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kImageCodec), imageCodec);
+    encoder.Encode(to_underlying(Fields::kFrameRate), frameRate);
+    encoder.Encode(to_underlying(Fields::kBitRate), bitRate);
+    encoder.Encode(to_underlying(Fields::kMinResolution), minResolution);
+    encoder.Encode(to_underlying(Fields::kMaxResolution), maxResolution);
+    encoder.Encode(to_underlying(Fields::kQuality), quality);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kImageCodec))
+        {
+            err = DataModel::Decode(reader, imageCodec);
+        }
+        else if (__context_tag == to_underlying(Fields::kFrameRate))
+        {
+            err = DataModel::Decode(reader, frameRate);
+        }
+        else if (__context_tag == to_underlying(Fields::kBitRate))
+        {
+            err = DataModel::Decode(reader, bitRate);
+        }
+        else if (__context_tag == to_underlying(Fields::kMinResolution))
+        {
+            err = DataModel::Decode(reader, minResolution);
+        }
+        else if (__context_tag == to_underlying(Fields::kMaxResolution))
+        {
+            err = DataModel::Decode(reader, maxResolution);
+        }
+        else if (__context_tag == to_underlying(Fields::kQuality))
+        {
+            err = DataModel::Decode(reader, quality);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace SnapshotStreamAllocate.
+namespace SnapshotStreamAllocateResponse {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kSnapshotStreamID), snapshotStreamID);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kSnapshotStreamID))
+        {
+            err = DataModel::Decode(reader, snapshotStreamID);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace SnapshotStreamAllocateResponse.
+namespace SnapshotStreamDeallocate {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kSnapshotStreamID), snapshotStreamID);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kSnapshotStreamID))
+        {
+            err = DataModel::Decode(reader, snapshotStreamID);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace SnapshotStreamDeallocate.
+namespace SetStreamPriority {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+    }
+}
+} // namespace SetStreamPriority.
+namespace CaptureSnapshot {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kSnapshotStreamID), snapshotStreamID);
+    encoder.Encode(to_underlying(Fields::kRequestedResolution), requestedResolution);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kSnapshotStreamID))
+        {
+            err = DataModel::Decode(reader, snapshotStreamID);
+        }
+        else if (__context_tag == to_underlying(Fields::kRequestedResolution))
+        {
+            err = DataModel::Decode(reader, requestedResolution);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace CaptureSnapshot.
+namespace CaptureSnapshotResponse {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kData), data);
+    encoder.Encode(to_underlying(Fields::kImageCodec), imageCodec);
+    encoder.Encode(to_underlying(Fields::kResolution), resolution);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kData))
+        {
+            err = DataModel::Decode(reader, data);
+        }
+        else if (__context_tag == to_underlying(Fields::kImageCodec))
+        {
+            err = DataModel::Decode(reader, imageCodec);
+        }
+        else if (__context_tag == to_underlying(Fields::kResolution))
+        {
+            err = DataModel::Decode(reader, resolution);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace CaptureSnapshotResponse.
+namespace SetViewport {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kViewport), viewport);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kViewport))
+        {
+            err = DataModel::Decode(reader, viewport);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace SetViewport.
+namespace SetImageRotation {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kAngle), angle);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kAngle))
+        {
+            err = DataModel::Decode(reader, angle);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace SetImageRotation.
+namespace SetImageFlipHorizontal {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kOnOff), onOff);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kOnOff))
+        {
+            err = DataModel::Decode(reader, onOff);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace SetImageFlipHorizontal.
+namespace SetImageFlipVertical {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kOnOff), onOff);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kOnOff))
+        {
+            err = DataModel::Decode(reader, onOff);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace SetImageFlipVertical.
+} // namespace Commands
+
+namespace Attributes {
+CHIP_ERROR TypeInfo::DecodableType::Decode(TLV::TLVReader & reader, const ConcreteAttributePath & path)
+{
+    switch (path.mAttributeId)
+    {
+    case Attributes::MaxConcurrentVideoEncoders::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, maxConcurrentVideoEncoders);
+    case Attributes::MaxEncodedPixelRate::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, maxEncodedPixelRate);
+    case Attributes::VideoSensorParams::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, videoSensorParams);
+    case Attributes::NightVisionCapable::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, nightVisionCapable);
+    case Attributes::MinViewPortWidth::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, minViewPortWidth);
+    case Attributes::MinViewPortHeight::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, minViewPortHeight);
+    case Attributes::RateDistortionTradeOffPoints::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, rateDistortionTradeOffPoints);
+    case Attributes::MaxPreRollBufferSize::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, maxPreRollBufferSize);
+    case Attributes::MicrophoneCapabilities::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, microphoneCapabilities);
+    case Attributes::SpeakerCapabilities::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, speakerCapabilities);
+    case Attributes::TwoWayTalkSupport::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, twoWayTalkSupport);
+    case Attributes::SupportedSnapshotParams::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, supportedSnapshotParams);
+    case Attributes::HDRCapable::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, HDRCapable);
+    case Attributes::MaxNetworkBandwidth::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, maxNetworkBandwidth);
+    case Attributes::CurrentFrameRate::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, currentFrameRate);
+    case Attributes::HDRMode::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, HDRMode);
+    case Attributes::CurrentVideoCodecs::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, currentVideoCodecs);
+    case Attributes::CurrentSnapshotConfig::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, currentSnapshotConfig);
+    case Attributes::FabricsUsingCamera::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, fabricsUsingCamera);
+    case Attributes::AllocatedVideoStreams::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, allocatedVideoStreams);
+    case Attributes::AllocatedAudioStreams::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, allocatedAudioStreams);
+    case Attributes::AllocatedSnapshotStreams::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, allocatedSnapshotStreams);
+    case Attributes::RankedVideoStreamPrioritiesList::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, rankedVideoStreamPrioritiesList);
+    case Attributes::SoftRecordingPrivacyModeSetting::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, softRecordingPrivacyModeSetting);
+    case Attributes::SoftLivestreamPrivacyModeSetting::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, softLivestreamPrivacyModeSetting);
+    case Attributes::HardPrivacyMode::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, hardPrivacyMode);
+    case Attributes::NightVision::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, nightVision);
+    case Attributes::NightVisionIllum::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, nightVisionIllum);
+    case Attributes::Awb::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, awb);
+    case Attributes::ShutterSpeed::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, shutterSpeed);
+    case Attributes::Iso::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, iso);
+    case Attributes::Viewport::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, viewport);
+    case Attributes::SpkrOnOff::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, spkrOnOff);
+    case Attributes::SpkrVolumeLevel::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, spkrVolumeLevel);
+    case Attributes::SpkrMaxLevel::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, spkrMaxLevel);
+    case Attributes::SpkrMinLevel::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, spkrMinLevel);
+    case Attributes::MicOnOff::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, micOnOff);
+    case Attributes::MicCurrentLevel::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, micCurrentLevel);
+    case Attributes::MicMaxLevel::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, micMaxLevel);
+    case Attributes::MicMinLevel::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, micMinLevel);
+    case Attributes::MicAGC::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, micAGC);
+    case Attributes::ImageRotation::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, imageRotation);
+    case Attributes::ImageFlipHorizontal::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, imageFlipHorizontal);
+    case Attributes::ImageFlipVertical::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, imageFlipVertical);
+    case Attributes::LocalVideoRecordingEnabled::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, localVideoRecordingEnabled);
+    case Attributes::LocalSnapshotRecordingEnabled::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, localSnapshotRecordingEnabled);
+    case Attributes::StatusLight::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, statusLight);
+    case Attributes::StatusLightBrightness::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, statusLightBrightness);
+    case Attributes::DepthSensorStatus::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, depthSensorStatus);
+    case Attributes::WatermarkEnabled::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, watermarkEnabled);
+    case Attributes::OSDEnabled::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, OSDEnabled);
+    case Attributes::GeneratedCommandList::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, generatedCommandList);
+    case Attributes::AcceptedCommandList::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, acceptedCommandList);
+    case Attributes::EventList::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, eventList);
+    case Attributes::AttributeList::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, attributeList);
+    case Attributes::FeatureMap::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, featureMap);
+    case Attributes::ClusterRevision::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, clusterRevision);
+    default:
+        return CHIP_NO_ERROR;
+    }
+}
+} // namespace Attributes
+
+namespace Events {
+namespace VideoStreamChanged {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    TLV::TLVType outer;
+    ReturnErrorOnFailure(aWriter.StartContainer(aTag, TLV::kTLVType_Structure, outer));
+    ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kVideoStreamID), videoStreamID));
+    ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kStreamType), streamType));
+    ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kVideoCodec), videoCodec));
+    ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kMinFrameRate), minFrameRate));
+    ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kMaxFrameRate), maxFrameRate));
+    ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kMinResolution), minResolution));
+    ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kMaxResolution), maxResolution));
+    ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kMinBitRate), minBitRate));
+    ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kMaxBitRate), maxBitRate));
+    ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kMinFragmentLen), minFragmentLen));
+    ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kMaxFragmentLen), maxFragmentLen));
+    return aWriter.EndContainer(outer);
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kVideoStreamID))
+        {
+            err = DataModel::Decode(reader, videoStreamID);
+        }
+        else if (__context_tag == to_underlying(Fields::kStreamType))
+        {
+            err = DataModel::Decode(reader, streamType);
+        }
+        else if (__context_tag == to_underlying(Fields::kVideoCodec))
+        {
+            err = DataModel::Decode(reader, videoCodec);
+        }
+        else if (__context_tag == to_underlying(Fields::kMinFrameRate))
+        {
+            err = DataModel::Decode(reader, minFrameRate);
+        }
+        else if (__context_tag == to_underlying(Fields::kMaxFrameRate))
+        {
+            err = DataModel::Decode(reader, maxFrameRate);
+        }
+        else if (__context_tag == to_underlying(Fields::kMinResolution))
+        {
+            err = DataModel::Decode(reader, minResolution);
+        }
+        else if (__context_tag == to_underlying(Fields::kMaxResolution))
+        {
+            err = DataModel::Decode(reader, maxResolution);
+        }
+        else if (__context_tag == to_underlying(Fields::kMinBitRate))
+        {
+            err = DataModel::Decode(reader, minBitRate);
+        }
+        else if (__context_tag == to_underlying(Fields::kMaxBitRate))
+        {
+            err = DataModel::Decode(reader, maxBitRate);
+        }
+        else if (__context_tag == to_underlying(Fields::kMinFragmentLen))
+        {
+            err = DataModel::Decode(reader, minFragmentLen);
+        }
+        else if (__context_tag == to_underlying(Fields::kMaxFragmentLen))
+        {
+            err = DataModel::Decode(reader, maxFragmentLen);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace VideoStreamChanged.
+namespace AudioStreamChanged {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    TLV::TLVType outer;
+    ReturnErrorOnFailure(aWriter.StartContainer(aTag, TLV::kTLVType_Structure, outer));
+    ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kAudioStreamID), audioStreamID));
+    ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kStreamType), streamType));
+    ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kAudioCodec), audioCodec));
+    ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kChannelCount), channelCount));
+    ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kSampleRate), sampleRate));
+    ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kBitRate), bitRate));
+    ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kBitDepth), bitDepth));
+    return aWriter.EndContainer(outer);
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kAudioStreamID))
+        {
+            err = DataModel::Decode(reader, audioStreamID);
+        }
+        else if (__context_tag == to_underlying(Fields::kStreamType))
+        {
+            err = DataModel::Decode(reader, streamType);
+        }
+        else if (__context_tag == to_underlying(Fields::kAudioCodec))
+        {
+            err = DataModel::Decode(reader, audioCodec);
+        }
+        else if (__context_tag == to_underlying(Fields::kChannelCount))
+        {
+            err = DataModel::Decode(reader, channelCount);
+        }
+        else if (__context_tag == to_underlying(Fields::kSampleRate))
+        {
+            err = DataModel::Decode(reader, sampleRate);
+        }
+        else if (__context_tag == to_underlying(Fields::kBitRate))
+        {
+            err = DataModel::Decode(reader, bitRate);
+        }
+        else if (__context_tag == to_underlying(Fields::kBitDepth))
+        {
+            err = DataModel::Decode(reader, bitDepth);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace AudioStreamChanged.
+namespace SnapshotStreamChanged {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    TLV::TLVType outer;
+    ReturnErrorOnFailure(aWriter.StartContainer(aTag, TLV::kTLVType_Structure, outer));
+    ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kSnapshotStreamID), snapshotStreamID));
+    ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kImageCodec), imageCodec));
+    ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kFrameRate), frameRate));
+    ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kBitRate), bitRate));
+    ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kMinResolution), minResolution));
+    ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kMaxResolution), maxResolution));
+    ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kQuality), quality));
+    return aWriter.EndContainer(outer);
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kSnapshotStreamID))
+        {
+            err = DataModel::Decode(reader, snapshotStreamID);
+        }
+        else if (__context_tag == to_underlying(Fields::kImageCodec))
+        {
+            err = DataModel::Decode(reader, imageCodec);
+        }
+        else if (__context_tag == to_underlying(Fields::kFrameRate))
+        {
+            err = DataModel::Decode(reader, frameRate);
+        }
+        else if (__context_tag == to_underlying(Fields::kBitRate))
+        {
+            err = DataModel::Decode(reader, bitRate);
+        }
+        else if (__context_tag == to_underlying(Fields::kMinResolution))
+        {
+            err = DataModel::Decode(reader, minResolution);
+        }
+        else if (__context_tag == to_underlying(Fields::kMaxResolution))
+        {
+            err = DataModel::Decode(reader, maxResolution);
+        }
+        else if (__context_tag == to_underlying(Fields::kQuality))
+        {
+            err = DataModel::Decode(reader, quality);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace SnapshotStreamChanged.
+} // namespace Events
+
+} // namespace CameraAvStreamManagement
+namespace CameraAvSettingsUserLevelManagement {
+namespace Structs {
+
+namespace MPTZStruct {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kMPan), MPan);
+    encoder.Encode(to_underlying(Fields::kMTilt), MTilt);
+    encoder.Encode(to_underlying(Fields::kMZoom), MZoom);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kMPan))
+        {
+            err = DataModel::Decode(reader, MPan);
+        }
+        else if (__context_tag == to_underlying(Fields::kMTilt))
+        {
+            err = DataModel::Decode(reader, MTilt);
+        }
+        else if (__context_tag == to_underlying(Fields::kMZoom))
+        {
+            err = DataModel::Decode(reader, MZoom);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+
+} // namespace MPTZStruct
+} // namespace Structs
+
+namespace Commands {
+namespace MptzSet {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kNewPTZ), newPTZ);
+    encoder.Encode(to_underlying(Fields::kPresetID), presetID);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kNewPTZ))
+        {
+            err = DataModel::Decode(reader, newPTZ);
+        }
+        else if (__context_tag == to_underlying(Fields::kPresetID))
+        {
+            err = DataModel::Decode(reader, presetID);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace MptzSet.
+namespace MptzRelativeMove {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kPan), pan);
+    encoder.Encode(to_underlying(Fields::kTilt), tilt);
+    encoder.Encode(to_underlying(Fields::kZoom), zoom);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kPan))
+        {
+            err = DataModel::Decode(reader, pan);
+        }
+        else if (__context_tag == to_underlying(Fields::kTilt))
+        {
+            err = DataModel::Decode(reader, tilt);
+        }
+        else if (__context_tag == to_underlying(Fields::kZoom))
+        {
+            err = DataModel::Decode(reader, zoom);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace MptzRelativeMove.
+namespace SetAsPreset {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+    }
+}
+} // namespace SetAsPreset.
+namespace DptzSetViewport {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kVideoStreamID), videoStreamID);
+    encoder.Encode(to_underlying(Fields::kViewport), viewport);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kVideoStreamID))
+        {
+            err = DataModel::Decode(reader, videoStreamID);
+        }
+        else if (__context_tag == to_underlying(Fields::kViewport))
+        {
+            err = DataModel::Decode(reader, viewport);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace DptzSetViewport.
+namespace DptzRelativeMove {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kVideoStreamID), videoStreamID);
+    encoder.Encode(to_underlying(Fields::kPan), pan);
+    encoder.Encode(to_underlying(Fields::kTilt), tilt);
+    encoder.Encode(to_underlying(Fields::kZoom), zoom);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kVideoStreamID))
+        {
+            err = DataModel::Decode(reader, videoStreamID);
+        }
+        else if (__context_tag == to_underlying(Fields::kPan))
+        {
+            err = DataModel::Decode(reader, pan);
+        }
+        else if (__context_tag == to_underlying(Fields::kTilt))
+        {
+            err = DataModel::Decode(reader, tilt);
+        }
+        else if (__context_tag == to_underlying(Fields::kZoom))
+        {
+            err = DataModel::Decode(reader, zoom);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace DptzRelativeMove.
+} // namespace Commands
+
+namespace Attributes {
+CHIP_ERROR TypeInfo::DecodableType::Decode(TLV::TLVReader & reader, const ConcreteAttributePath & path)
+{
+    switch (path.mAttributeId)
+    {
+    case Attributes::Mptz::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, mptz);
+    case Attributes::MaxPresets::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, maxPresets);
+    case Attributes::PresetMptzTable::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, presetMptzTable);
+    case Attributes::MptzRelativeMove::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, mptzRelativeMove);
+    case Attributes::DptzRelativeMove::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, dptzRelativeMove);
+    case Attributes::GeneratedCommandList::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, generatedCommandList);
+    case Attributes::AcceptedCommandList::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, acceptedCommandList);
+    case Attributes::EventList::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, eventList);
+    case Attributes::AttributeList::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, attributeList);
+    case Attributes::FeatureMap::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, featureMap);
+    case Attributes::ClusterRevision::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, clusterRevision);
+    default:
+        return CHIP_NO_ERROR;
+    }
+}
+} // namespace Attributes
+
+namespace Events {} // namespace Events
+
+} // namespace CameraAvSettingsUserLevelManagement
+namespace WebRTCTransportProvider {
+namespace Structs {} // namespace Structs
+
+namespace Commands {
+namespace WebRTCSolicitOffer {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kStreamType), streamType);
+    encoder.Encode(to_underlying(Fields::kVideoStreamID), videoStreamID);
+    encoder.Encode(to_underlying(Fields::kAudioStreamID), audioStreamID);
+    encoder.Encode(to_underlying(Fields::kICEServers), ICEServers);
+    encoder.Encode(to_underlying(Fields::kICETransportPolicy), ICETransportPolicy);
+    encoder.Encode(to_underlying(Fields::kMetadataOptions), metadataOptions);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kStreamType))
+        {
+            err = DataModel::Decode(reader, streamType);
+        }
+        else if (__context_tag == to_underlying(Fields::kVideoStreamID))
+        {
+            err = DataModel::Decode(reader, videoStreamID);
+        }
+        else if (__context_tag == to_underlying(Fields::kAudioStreamID))
+        {
+            err = DataModel::Decode(reader, audioStreamID);
+        }
+        else if (__context_tag == to_underlying(Fields::kICEServers))
+        {
+            err = DataModel::Decode(reader, ICEServers);
+        }
+        else if (__context_tag == to_underlying(Fields::kICETransportPolicy))
+        {
+            err = DataModel::Decode(reader, ICETransportPolicy);
+        }
+        else if (__context_tag == to_underlying(Fields::kMetadataOptions))
+        {
+            err = DataModel::Decode(reader, metadataOptions);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace WebRTCSolicitOffer.
+namespace WebRTCSolicitOfferResponse {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kWebRTCSessionID), webRTCSessionID);
+    encoder.Encode(to_underlying(Fields::kDeferredOffer), deferredOffer);
+    encoder.Encode(to_underlying(Fields::kVideoStreamID), videoStreamID);
+    encoder.Encode(to_underlying(Fields::kAudioStreamID), audioStreamID);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kWebRTCSessionID))
+        {
+            err = DataModel::Decode(reader, webRTCSessionID);
+        }
+        else if (__context_tag == to_underlying(Fields::kDeferredOffer))
+        {
+            err = DataModel::Decode(reader, deferredOffer);
+        }
+        else if (__context_tag == to_underlying(Fields::kVideoStreamID))
+        {
+            err = DataModel::Decode(reader, videoStreamID);
+        }
+        else if (__context_tag == to_underlying(Fields::kAudioStreamID))
+        {
+            err = DataModel::Decode(reader, audioStreamID);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace WebRTCSolicitOfferResponse.
+namespace WebRTCProvideOffer {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kWebRTCSessionID), webRTCSessionID);
+    encoder.Encode(to_underlying(Fields::kSdp), sdp);
+    encoder.Encode(to_underlying(Fields::kStreamType), streamType);
+    encoder.Encode(to_underlying(Fields::kVideoStreamID), videoStreamID);
+    encoder.Encode(to_underlying(Fields::kAudioStreamID), audioStreamID);
+    encoder.Encode(to_underlying(Fields::kICEServers), ICEServers);
+    encoder.Encode(to_underlying(Fields::kICETransportPolicy), ICETransportPolicy);
+    encoder.Encode(to_underlying(Fields::kMetadataOptions), metadataOptions);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kWebRTCSessionID))
+        {
+            err = DataModel::Decode(reader, webRTCSessionID);
+        }
+        else if (__context_tag == to_underlying(Fields::kSdp))
+        {
+            err = DataModel::Decode(reader, sdp);
+        }
+        else if (__context_tag == to_underlying(Fields::kStreamType))
+        {
+            err = DataModel::Decode(reader, streamType);
+        }
+        else if (__context_tag == to_underlying(Fields::kVideoStreamID))
+        {
+            err = DataModel::Decode(reader, videoStreamID);
+        }
+        else if (__context_tag == to_underlying(Fields::kAudioStreamID))
+        {
+            err = DataModel::Decode(reader, audioStreamID);
+        }
+        else if (__context_tag == to_underlying(Fields::kICEServers))
+        {
+            err = DataModel::Decode(reader, ICEServers);
+        }
+        else if (__context_tag == to_underlying(Fields::kICETransportPolicy))
+        {
+            err = DataModel::Decode(reader, ICETransportPolicy);
+        }
+        else if (__context_tag == to_underlying(Fields::kMetadataOptions))
+        {
+            err = DataModel::Decode(reader, metadataOptions);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace WebRTCProvideOffer.
+namespace WebRTCProvideOfferResponse {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kWebRTCSessionID), webRTCSessionID);
+    encoder.Encode(to_underlying(Fields::kVideoStreamID), videoStreamID);
+    encoder.Encode(to_underlying(Fields::kAudioStreamID), audioStreamID);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kWebRTCSessionID))
+        {
+            err = DataModel::Decode(reader, webRTCSessionID);
+        }
+        else if (__context_tag == to_underlying(Fields::kVideoStreamID))
+        {
+            err = DataModel::Decode(reader, videoStreamID);
+        }
+        else if (__context_tag == to_underlying(Fields::kAudioStreamID))
+        {
+            err = DataModel::Decode(reader, audioStreamID);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace WebRTCProvideOfferResponse.
+namespace WebRTCProvideAnswer {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kWebRTCSessionID), webRTCSessionID);
+    encoder.Encode(to_underlying(Fields::kSdp), sdp);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kWebRTCSessionID))
+        {
+            err = DataModel::Decode(reader, webRTCSessionID);
+        }
+        else if (__context_tag == to_underlying(Fields::kSdp))
+        {
+            err = DataModel::Decode(reader, sdp);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace WebRTCProvideAnswer.
+namespace WebRTCProvideICECandidate {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kWebRTCSessionID), webRTCSessionID);
+    encoder.Encode(to_underlying(Fields::kICECandidate), ICECandidate);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kWebRTCSessionID))
+        {
+            err = DataModel::Decode(reader, webRTCSessionID);
+        }
+        else if (__context_tag == to_underlying(Fields::kICECandidate))
+        {
+            err = DataModel::Decode(reader, ICECandidate);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace WebRTCProvideICECandidate.
+namespace WebRTCEndSession {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kWebRTCSessionID), webRTCSessionID);
+    encoder.Encode(to_underlying(Fields::kReason), reason);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kWebRTCSessionID))
+        {
+            err = DataModel::Decode(reader, webRTCSessionID);
+        }
+        else if (__context_tag == to_underlying(Fields::kReason))
+        {
+            err = DataModel::Decode(reader, reason);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace WebRTCEndSession.
+} // namespace Commands
+
+namespace Attributes {
+CHIP_ERROR TypeInfo::DecodableType::Decode(TLV::TLVReader & reader, const ConcreteAttributePath & path)
+{
+    switch (path.mAttributeId)
+    {
+    case Attributes::CurrentSessions::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, currentSessions);
+    case Attributes::GeneratedCommandList::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, generatedCommandList);
+    case Attributes::AcceptedCommandList::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, acceptedCommandList);
+    case Attributes::EventList::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, eventList);
+    case Attributes::AttributeList::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, attributeList);
+    case Attributes::FeatureMap::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, featureMap);
+    case Attributes::ClusterRevision::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, clusterRevision);
+    default:
+        return CHIP_NO_ERROR;
+    }
+}
+} // namespace Attributes
+
+namespace Events {} // namespace Events
+
+} // namespace WebRTCTransportProvider
+namespace WebRTCTransportRequestor {
+namespace Structs {} // namespace Structs
+
+namespace Commands {
+namespace WebRTCOffer {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kWebRTCSessionID), webRTCSessionID);
+    encoder.Encode(to_underlying(Fields::kSdp), sdp);
+    encoder.Encode(to_underlying(Fields::kICEServers), ICEServers);
+    encoder.Encode(to_underlying(Fields::kICETransportPolicy), ICETransportPolicy);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kWebRTCSessionID))
+        {
+            err = DataModel::Decode(reader, webRTCSessionID);
+        }
+        else if (__context_tag == to_underlying(Fields::kSdp))
+        {
+            err = DataModel::Decode(reader, sdp);
+        }
+        else if (__context_tag == to_underlying(Fields::kICEServers))
+        {
+            err = DataModel::Decode(reader, ICEServers);
+        }
+        else if (__context_tag == to_underlying(Fields::kICETransportPolicy))
+        {
+            err = DataModel::Decode(reader, ICETransportPolicy);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace WebRTCOffer.
+namespace WebRTCAnswer {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kWebRTCSessionID), webRTCSessionID);
+    encoder.Encode(to_underlying(Fields::kSdp), sdp);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kWebRTCSessionID))
+        {
+            err = DataModel::Decode(reader, webRTCSessionID);
+        }
+        else if (__context_tag == to_underlying(Fields::kSdp))
+        {
+            err = DataModel::Decode(reader, sdp);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace WebRTCAnswer.
+namespace WebRTCICECandidate {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kWebRTCSessionID), webRTCSessionID);
+    encoder.Encode(to_underlying(Fields::kICECandidate), ICECandidate);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kWebRTCSessionID))
+        {
+            err = DataModel::Decode(reader, webRTCSessionID);
+        }
+        else if (__context_tag == to_underlying(Fields::kICECandidate))
+        {
+            err = DataModel::Decode(reader, ICECandidate);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace WebRTCICECandidate.
+namespace WebRTCEnd {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kWebRTCSessionID), webRTCSessionID);
+    encoder.Encode(to_underlying(Fields::kReason), reason);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kWebRTCSessionID))
+        {
+            err = DataModel::Decode(reader, webRTCSessionID);
+        }
+        else if (__context_tag == to_underlying(Fields::kReason))
+        {
+            err = DataModel::Decode(reader, reason);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace WebRTCEnd.
+} // namespace Commands
+
+namespace Attributes {
+CHIP_ERROR TypeInfo::DecodableType::Decode(TLV::TLVReader & reader, const ConcreteAttributePath & path)
+{
+    switch (path.mAttributeId)
+    {
+    case Attributes::CurrentSessions::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, currentSessions);
+    case Attributes::GeneratedCommandList::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, generatedCommandList);
+    case Attributes::AcceptedCommandList::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, acceptedCommandList);
+    case Attributes::EventList::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, eventList);
+    case Attributes::AttributeList::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, attributeList);
+    case Attributes::FeatureMap::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, featureMap);
+    case Attributes::ClusterRevision::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, clusterRevision);
+    default:
+        return CHIP_NO_ERROR;
+    }
+}
+} // namespace Attributes
+
+namespace Events {} // namespace Events
+
+} // namespace WebRTCTransportRequestor
+namespace PushAvStreamTransport {
+namespace Structs {
+
+namespace PushAVStreamTransportMotionTriggerTimeControlStruct {
 CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
 {
-    TLV::TLVType outer;
-    ReturnErrorOnFailure(aWriter.StartContainer(aTag, TLV::kTLVType_Structure, outer));
-    ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kNode), node));
-    return aWriter.EndContainer(outer);
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kInitialDuration), initialDuration);
+    encoder.Encode(to_underlying(Fields::kAugmentationDuration), augmentationDuration);
+    encoder.Encode(to_underlying(Fields::kMaxDuration), maxDuration);
+    encoder.Encode(to_underlying(Fields::kBlindDuration), blindDuration);
+    return encoder.Finalize();
 }
 
 CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
@@ -28103,9 +31209,21 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
         CHIP_ERROR err              = CHIP_NO_ERROR;
         const uint8_t __context_tag = std::get<uint8_t>(__element);
 
-        if (__context_tag == to_underlying(Fields::kNode))
+        if (__context_tag == to_underlying(Fields::kInitialDuration))
         {
-            err = DataModel::Decode(reader, node);
+            err = DataModel::Decode(reader, initialDuration);
+        }
+        else if (__context_tag == to_underlying(Fields::kAugmentationDuration))
+        {
+            err = DataModel::Decode(reader, augmentationDuration);
+        }
+        else if (__context_tag == to_underlying(Fields::kMaxDuration))
+        {
+            err = DataModel::Decode(reader, maxDuration);
+        }
+        else if (__context_tag == to_underlying(Fields::kBlindDuration))
+        {
+            err = DataModel::Decode(reader, blindDuration);
         }
         else
         {
@@ -28114,19 +31232,16 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
         ReturnErrorOnFailure(err);
     }
 }
-} // namespace LoggedOut.
-} // namespace Events
 
-} // namespace AccountLogin
-namespace ContentControl {
-namespace Structs {
+} // namespace PushAVStreamTransportMotionTriggerTimeControlStruct
 
-namespace RatingNameStruct {
+namespace PushAVStreamTransportMetadataOptionsStruct {
 CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
 {
     DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
-    encoder.Encode(to_underlying(Fields::kRatingName), ratingName);
-    encoder.Encode(to_underlying(Fields::kRatingNameDesc), ratingNameDesc);
+    encoder.Encode(to_underlying(Fields::kMultiplexing), multiplexing);
+    encoder.Encode(to_underlying(Fields::kIncludeMotionZones), includeMotionZones);
+    encoder.Encode(to_underlying(Fields::kEnableMetadataPrivacySensitive), enableMetadataPrivacySensitive);
     return encoder.Finalize();
 }
 
@@ -28144,13 +31259,17 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
         CHIP_ERROR err              = CHIP_NO_ERROR;
         const uint8_t __context_tag = std::get<uint8_t>(__element);
 
-        if (__context_tag == to_underlying(Fields::kRatingName))
+        if (__context_tag == to_underlying(Fields::kMultiplexing))
         {
-            err = DataModel::Decode(reader, ratingName);
+            err = DataModel::Decode(reader, multiplexing);
         }
-        else if (__context_tag == to_underlying(Fields::kRatingNameDesc))
+        else if (__context_tag == to_underlying(Fields::kIncludeMotionZones))
         {
-            err = DataModel::Decode(reader, ratingNameDesc);
+            err = DataModel::Decode(reader, includeMotionZones);
+        }
+        else if (__context_tag == to_underlying(Fields::kEnableMetadataPrivacySensitive))
+        {
+            err = DataModel::Decode(reader, enableMetadataPrivacySensitive);
         }
         else
         {
@@ -28160,16 +31279,17 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
     }
 }
 
-} // namespace RatingNameStruct
-} // namespace Structs
+} // namespace PushAVStreamTransportMetadataOptionsStruct
 
-namespace Commands {
-namespace UpdatePIN {
+namespace PushAVStreamTransportTriggerOptionsStruct {
 CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
 {
     DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
-    encoder.Encode(to_underlying(Fields::kOldPIN), oldPIN);
-    encoder.Encode(to_underlying(Fields::kNewPIN), newPIN);
+    encoder.Encode(to_underlying(Fields::kTriggerType), triggerType);
+    encoder.Encode(to_underlying(Fields::kMotionZones), motionZones);
+    encoder.Encode(to_underlying(Fields::kMotionSensitivity), motionSensitivity);
+    encoder.Encode(to_underlying(Fields::kMotionTimeControl), motionTimeControl);
+    encoder.Encode(to_underlying(Fields::kActivationReason), activationReason);
     return encoder.Finalize();
 }
 
@@ -28187,13 +31307,25 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
         CHIP_ERROR err              = CHIP_NO_ERROR;
         const uint8_t __context_tag = std::get<uint8_t>(__element);
 
-        if (__context_tag == to_underlying(Fields::kOldPIN))
+        if (__context_tag == to_underlying(Fields::kTriggerType))
         {
-            err = DataModel::Decode(reader, oldPIN);
+            err = DataModel::Decode(reader, triggerType);
         }
-        else if (__context_tag == to_underlying(Fields::kNewPIN))
+        else if (__context_tag == to_underlying(Fields::kMotionZones))
         {
-            err = DataModel::Decode(reader, newPIN);
+            err = DataModel::Decode(reader, motionZones);
+        }
+        else if (__context_tag == to_underlying(Fields::kMotionSensitivity))
+        {
+            err = DataModel::Decode(reader, motionSensitivity);
+        }
+        else if (__context_tag == to_underlying(Fields::kMotionTimeControl))
+        {
+            err = DataModel::Decode(reader, motionTimeControl);
+        }
+        else if (__context_tag == to_underlying(Fields::kActivationReason))
+        {
+            err = DataModel::Decode(reader, activationReason);
         }
         else
         {
@@ -28202,11 +31334,15 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
         ReturnErrorOnFailure(err);
     }
 }
-} // namespace UpdatePIN.
-namespace ResetPIN {
+
+} // namespace PushAVStreamTransportTriggerOptionsStruct
+
+namespace PushAVStreamTransportCMAFContainerOptionsStruct {
 CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
 {
     DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kChunkDuration), chunkDuration);
+    encoder.Encode(to_underlying(Fields::kCENCKey), CENCKey);
     return encoder.Finalize();
 }
 
@@ -28220,14 +31356,34 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
         {
             return std::get<CHIP_ERROR>(__element);
         }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kChunkDuration))
+        {
+            err = DataModel::Decode(reader, chunkDuration);
+        }
+        else if (__context_tag == to_underlying(Fields::kCENCKey))
+        {
+            err = DataModel::Decode(reader, CENCKey);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
     }
 }
-} // namespace ResetPIN.
-namespace ResetPINResponse {
+
+} // namespace PushAVStreamTransportCMAFContainerOptionsStruct
+
+namespace PushAVStreamTransportContainerOptionsStruct {
 CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
 {
     DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
-    encoder.Encode(to_underlying(Fields::kPINCode), PINCode);
+    encoder.Encode(to_underlying(Fields::kContainerType), containerType);
+    encoder.Encode(to_underlying(Fields::kCMAFContainerOptions), CMAFContainerOptions);
     return encoder.Finalize();
 }
 
@@ -28245,9 +31401,13 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
         CHIP_ERROR err              = CHIP_NO_ERROR;
         const uint8_t __context_tag = std::get<uint8_t>(__element);
 
-        if (__context_tag == to_underlying(Fields::kPINCode))
+        if (__context_tag == to_underlying(Fields::kContainerType))
         {
-            err = DataModel::Decode(reader, PINCode);
+            err = DataModel::Decode(reader, containerType);
+        }
+        else if (__context_tag == to_underlying(Fields::kCMAFContainerOptions))
+        {
+            err = DataModel::Decode(reader, CMAFContainerOptions);
         }
         else
         {
@@ -28256,11 +31416,24 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
         ReturnErrorOnFailure(err);
     }
 }
-} // namespace ResetPINResponse.
-namespace Enable {
+
+} // namespace PushAVStreamTransportContainerOptionsStruct
+
+namespace PushAVStreamTransportOptionsStruct {
 CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
 {
     DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kStreamType), streamType);
+    encoder.Encode(to_underlying(Fields::kVideoStreamID), videoStreamID);
+    encoder.Encode(to_underlying(Fields::kAudioStreamID), audioStreamID);
+    encoder.Encode(to_underlying(Fields::kTLSEndpointID), TLSEndpointID);
+    encoder.Encode(to_underlying(Fields::kUrl), url);
+    encoder.Encode(to_underlying(Fields::kTriggerOptions), triggerOptions);
+    encoder.Encode(to_underlying(Fields::kContainerFormat), containerFormat);
+    encoder.Encode(to_underlying(Fields::kIngestMethod), ingestMethod);
+    encoder.Encode(to_underlying(Fields::kContainerOptions), containerOptions);
+    encoder.Encode(to_underlying(Fields::kMetadataOptions), metadataOptions);
+    encoder.Encode(to_underlying(Fields::kExpiryTime), expiryTime);
     return encoder.Finalize();
 }
 
@@ -28274,13 +31447,71 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
         {
             return std::get<CHIP_ERROR>(__element);
         }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kStreamType))
+        {
+            err = DataModel::Decode(reader, streamType);
+        }
+        else if (__context_tag == to_underlying(Fields::kVideoStreamID))
+        {
+            err = DataModel::Decode(reader, videoStreamID);
+        }
+        else if (__context_tag == to_underlying(Fields::kAudioStreamID))
+        {
+            err = DataModel::Decode(reader, audioStreamID);
+        }
+        else if (__context_tag == to_underlying(Fields::kTLSEndpointID))
+        {
+            err = DataModel::Decode(reader, TLSEndpointID);
+        }
+        else if (__context_tag == to_underlying(Fields::kUrl))
+        {
+            err = DataModel::Decode(reader, url);
+        }
+        else if (__context_tag == to_underlying(Fields::kTriggerOptions))
+        {
+            err = DataModel::Decode(reader, triggerOptions);
+        }
+        else if (__context_tag == to_underlying(Fields::kContainerFormat))
+        {
+            err = DataModel::Decode(reader, containerFormat);
+        }
+        else if (__context_tag == to_underlying(Fields::kIngestMethod))
+        {
+            err = DataModel::Decode(reader, ingestMethod);
+        }
+        else if (__context_tag == to_underlying(Fields::kContainerOptions))
+        {
+            err = DataModel::Decode(reader, containerOptions);
+        }
+        else if (__context_tag == to_underlying(Fields::kMetadataOptions))
+        {
+            err = DataModel::Decode(reader, metadataOptions);
+        }
+        else if (__context_tag == to_underlying(Fields::kExpiryTime))
+        {
+            err = DataModel::Decode(reader, expiryTime);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
     }
 }
-} // namespace Enable.
-namespace Disable {
+
+} // namespace PushAVStreamTransportOptionsStruct
+
+namespace PushAVStreamConfigurationStruct {
 CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
 {
     DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kConnectionID), connectionID);
+    encoder.Encode(to_underlying(Fields::kStreamTransportStatus), streamTransportStatus);
+    encoder.Encode(to_underlying(Fields::kStreamTransportOptions), streamTransportOptions);
     return encoder.Finalize();
 }
 
@@ -28294,15 +31525,39 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
         {
             return std::get<CHIP_ERROR>(__element);
         }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kConnectionID))
+        {
+            err = DataModel::Decode(reader, connectionID);
+        }
+        else if (__context_tag == to_underlying(Fields::kStreamTransportStatus))
+        {
+            err = DataModel::Decode(reader, streamTransportStatus);
+        }
+        else if (__context_tag == to_underlying(Fields::kStreamTransportOptions))
+        {
+            err = DataModel::Decode(reader, streamTransportOptions);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
     }
 }
-} // namespace Disable.
-namespace AddBonusTime {
+
+} // namespace PushAVStreamConfigurationStruct
+} // namespace Structs
+
+namespace Commands {
+namespace AllocatePushTransport {
 CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
 {
     DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
-    encoder.Encode(to_underlying(Fields::kPINCode), PINCode);
-    encoder.Encode(to_underlying(Fields::kBonusTime), bonusTime);
+    encoder.Encode(to_underlying(Fields::kStreamTransportOptions), streamTransportOptions);
     return encoder.Finalize();
 }
 
@@ -28320,13 +31575,53 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
         CHIP_ERROR err              = CHIP_NO_ERROR;
         const uint8_t __context_tag = std::get<uint8_t>(__element);
 
-        if (__context_tag == to_underlying(Fields::kPINCode))
+        if (__context_tag == to_underlying(Fields::kStreamTransportOptions))
         {
-            err = DataModel::Decode(reader, PINCode);
+            err = DataModel::Decode(reader, streamTransportOptions);
         }
-        else if (__context_tag == to_underlying(Fields::kBonusTime))
+        else
         {
-            err = DataModel::Decode(reader, bonusTime);
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace AllocatePushTransport.
+namespace AllocatePushTransportResponse {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kConnectionID), connectionID);
+    encoder.Encode(to_underlying(Fields::kStreamTransportOptions), streamTransportOptions);
+    encoder.Encode(to_underlying(Fields::kTransportStatus), transportStatus);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kConnectionID))
+        {
+            err = DataModel::Decode(reader, connectionID);
+        }
+        else if (__context_tag == to_underlying(Fields::kStreamTransportOptions))
+        {
+            err = DataModel::Decode(reader, streamTransportOptions);
+        }
+        else if (__context_tag == to_underlying(Fields::kTransportStatus))
+        {
+            err = DataModel::Decode(reader, transportStatus);
         }
         else
         {
@@ -28335,12 +31630,12 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
         ReturnErrorOnFailure(err);
     }
 }
-} // namespace AddBonusTime.
-namespace SetScreenDailyTime {
+} // namespace AllocatePushTransportResponse.
+namespace DeallocatePushTransport {
 CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
 {
     DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
-    encoder.Encode(to_underlying(Fields::kScreenTime), screenTime);
+    encoder.Encode(to_underlying(Fields::kConnectionID), connectionID);
     return encoder.Finalize();
 }
 
@@ -28358,9 +31653,9 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
         CHIP_ERROR err              = CHIP_NO_ERROR;
         const uint8_t __context_tag = std::get<uint8_t>(__element);
 
-        if (__context_tag == to_underlying(Fields::kScreenTime))
+        if (__context_tag == to_underlying(Fields::kConnectionID))
         {
-            err = DataModel::Decode(reader, screenTime);
+            err = DataModel::Decode(reader, connectionID);
         }
         else
         {
@@ -28369,11 +31664,13 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
         ReturnErrorOnFailure(err);
     }
 }
-} // namespace SetScreenDailyTime.
-namespace BlockUnratedContent {
+} // namespace DeallocatePushTransport.
+namespace ModifyPushTransport {
 CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
 {
     DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kConnectionID), connectionID);
+    encoder.Encode(to_underlying(Fields::kStreamTransportOptions), streamTransportOptions);
     return encoder.Finalize();
 }
 
@@ -28387,13 +31684,32 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
         {
             return std::get<CHIP_ERROR>(__element);
         }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kConnectionID))
+        {
+            err = DataModel::Decode(reader, connectionID);
+        }
+        else if (__context_tag == to_underlying(Fields::kStreamTransportOptions))
+        {
+            err = DataModel::Decode(reader, streamTransportOptions);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
     }
 }
-} // namespace BlockUnratedContent.
-namespace UnblockUnratedContent {
+} // namespace ModifyPushTransport.
+namespace SetTransportStatus {
 CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
 {
     DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kConnectionID), connectionID);
+    encoder.Encode(to_underlying(Fields::kStreamTransportStatus), streamTransportStatus);
     return encoder.Finalize();
 }
 
@@ -28407,14 +31723,33 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
         {
             return std::get<CHIP_ERROR>(__element);
         }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kConnectionID))
+        {
+            err = DataModel::Decode(reader, connectionID);
+        }
+        else if (__context_tag == to_underlying(Fields::kStreamTransportStatus))
+        {
+            err = DataModel::Decode(reader, streamTransportStatus);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
     }
 }
-} // namespace UnblockUnratedContent.
-namespace SetOnDemandRatingThreshold {
+} // namespace SetTransportStatus.
+namespace ManuallyTriggerTransport {
 CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
 {
     DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
-    encoder.Encode(to_underlying(Fields::kRating), rating);
+    encoder.Encode(to_underlying(Fields::kConnectionID), connectionID);
+    encoder.Encode(to_underlying(Fields::kActivationReason), activationReason);
+    encoder.Encode(to_underlying(Fields::kTimeControl), timeControl);
     return encoder.Finalize();
 }
 
@@ -28432,9 +31767,17 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
         CHIP_ERROR err              = CHIP_NO_ERROR;
         const uint8_t __context_tag = std::get<uint8_t>(__element);
 
-        if (__context_tag == to_underlying(Fields::kRating))
+        if (__context_tag == to_underlying(Fields::kConnectionID))
         {
-            err = DataModel::Decode(reader, rating);
+            err = DataModel::Decode(reader, connectionID);
+        }
+        else if (__context_tag == to_underlying(Fields::kActivationReason))
+        {
+            err = DataModel::Decode(reader, activationReason);
+        }
+        else if (__context_tag == to_underlying(Fields::kTimeControl))
+        {
+            err = DataModel::Decode(reader, timeControl);
         }
         else
         {
@@ -28443,12 +31786,12 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
         ReturnErrorOnFailure(err);
     }
 }
-} // namespace SetOnDemandRatingThreshold.
-namespace SetScheduledContentRatingThreshold {
+} // namespace ManuallyTriggerTransport.
+namespace FindStreamConfiguration {
 CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
 {
     DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
-    encoder.Encode(to_underlying(Fields::kRating), rating);
+    encoder.Encode(to_underlying(Fields::kConnectionID), connectionID);
     return encoder.Finalize();
 }
 
@@ -28466,9 +31809,9 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
         CHIP_ERROR err              = CHIP_NO_ERROR;
         const uint8_t __context_tag = std::get<uint8_t>(__element);
 
-        if (__context_tag == to_underlying(Fields::kRating))
+        if (__context_tag == to_underlying(Fields::kConnectionID))
         {
-            err = DataModel::Decode(reader, rating);
+            err = DataModel::Decode(reader, connectionID);
         }
         else
         {
@@ -28477,7 +31820,41 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
         ReturnErrorOnFailure(err);
     }
 }
-} // namespace SetScheduledContentRatingThreshold.
+} // namespace FindStreamConfiguration.
+namespace FindStreamConfigurationResponse {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    encoder.Encode(to_underlying(Fields::kStreamConfigurations), streamConfigurations);
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+
+        CHIP_ERROR err              = CHIP_NO_ERROR;
+        const uint8_t __context_tag = std::get<uint8_t>(__element);
+
+        if (__context_tag == to_underlying(Fields::kStreamConfigurations))
+        {
+            err = DataModel::Decode(reader, streamConfigurations);
+        }
+        else
+        {
+        }
+
+        ReturnErrorOnFailure(err);
+    }
+}
+} // namespace FindStreamConfigurationResponse.
 } // namespace Commands
 
 namespace Attributes {
@@ -28485,22 +31862,12 @@ CHIP_ERROR TypeInfo::DecodableType::Decode(TLV::TLVReader & reader, const Concre
 {
     switch (path.mAttributeId)
     {
-    case Attributes::Enabled::TypeInfo::GetAttributeId():
-        return DataModel::Decode(reader, enabled);
-    case Attributes::OnDemandRatings::TypeInfo::GetAttributeId():
-        return DataModel::Decode(reader, onDemandRatings);
-    case Attributes::OnDemandRatingThreshold::TypeInfo::GetAttributeId():
-        return DataModel::Decode(reader, onDemandRatingThreshold);
-    case Attributes::ScheduledContentRatings::TypeInfo::GetAttributeId():
-        return DataModel::Decode(reader, scheduledContentRatings);
-    case Attributes::ScheduledContentRatingThreshold::TypeInfo::GetAttributeId():
-        return DataModel::Decode(reader, scheduledContentRatingThreshold);
-    case Attributes::ScreenDailyTime::TypeInfo::GetAttributeId():
-        return DataModel::Decode(reader, screenDailyTime);
-    case Attributes::RemainingScreenTime::TypeInfo::GetAttributeId():
-        return DataModel::Decode(reader, remainingScreenTime);
-    case Attributes::BlockUnrated::TypeInfo::GetAttributeId():
-        return DataModel::Decode(reader, blockUnrated);
+    case Attributes::SupportedContainerFormats::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, supportedContainerFormats);
+    case Attributes::SupportedIngestMethods::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, supportedIngestMethods);
+    case Attributes::CurrentConnections::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, currentConnections);
     case Attributes::GeneratedCommandList::TypeInfo::GetAttributeId():
         return DataModel::Decode(reader, generatedCommandList);
     case Attributes::AcceptedCommandList::TypeInfo::GetAttributeId():
@@ -28520,7 +31887,7 @@ CHIP_ERROR TypeInfo::DecodableType::Decode(TLV::TLVReader & reader, const Concre
 } // namespace Attributes
 
 namespace Events {
-namespace RemainingScreenTimeExpired {
+namespace PushTransportBegin {
 CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
 {
     TLV::TLVType outer;
@@ -28540,20 +31907,15 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
         }
     }
 }
-} // namespace RemainingScreenTimeExpired.
-} // namespace Events
-
-} // namespace ContentControl
-namespace ContentAppObserver {
-
-namespace Commands {
-namespace ContentAppMessage {
+} // namespace PushTransportBegin.
+namespace PushTransportEnd {
 CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
 {
-    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
-    encoder.Encode(to_underlying(Fields::kData), data);
-    encoder.Encode(to_underlying(Fields::kEncodingHint), encodingHint);
-    return encoder.Finalize();
+    TLV::TLVType outer;
+    ReturnErrorOnFailure(aWriter.StartContainer(aTag, TLV::kTLVType_Structure, outer));
+    ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kConnectionID), connectionID));
+    ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kTriggerDetails), triggerDetails));
+    return aWriter.EndContainer(outer);
 }
 
 CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
@@ -28570,13 +31932,13 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
         CHIP_ERROR err              = CHIP_NO_ERROR;
         const uint8_t __context_tag = std::get<uint8_t>(__element);
 
-        if (__context_tag == to_underlying(Fields::kData))
+        if (__context_tag == to_underlying(Fields::kConnectionID))
         {
-            err = DataModel::Decode(reader, data);
+            err = DataModel::Decode(reader, connectionID);
         }
-        else if (__context_tag == to_underlying(Fields::kEncodingHint))
+        else if (__context_tag == to_underlying(Fields::kTriggerDetails))
         {
-            err = DataModel::Decode(reader, encodingHint);
+            err = DataModel::Decode(reader, triggerDetails);
         }
         else
         {
@@ -28585,14 +31947,19 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
         ReturnErrorOnFailure(err);
     }
 }
-} // namespace ContentAppMessage.
-namespace ContentAppMessageResponse {
+} // namespace PushTransportEnd.
+} // namespace Events
+
+} // namespace PushAvStreamTransport
+namespace Chime {
+namespace Structs {
+
+namespace ChimeSoundStruct {
 CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
 {
     DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
-    encoder.Encode(to_underlying(Fields::kStatus), status);
-    encoder.Encode(to_underlying(Fields::kData), data);
-    encoder.Encode(to_underlying(Fields::kEncodingHint), encodingHint);
+    encoder.Encode(to_underlying(Fields::kChimeId), chimeId);
+    encoder.Encode(to_underlying(Fields::kName), name);
     return encoder.Finalize();
 }
 
@@ -28610,17 +31977,13 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
         CHIP_ERROR err              = CHIP_NO_ERROR;
         const uint8_t __context_tag = std::get<uint8_t>(__element);
 
-        if (__context_tag == to_underlying(Fields::kStatus))
+        if (__context_tag == to_underlying(Fields::kChimeId))
         {
-            err = DataModel::Decode(reader, status);
+            err = DataModel::Decode(reader, chimeId);
         }
-        else if (__context_tag == to_underlying(Fields::kData))
-        {
-            err = DataModel::Decode(reader, data);
-        }
-        else if (__context_tag == to_underlying(Fields::kEncodingHint))
+        else if (__context_tag == to_underlying(Fields::kName))
         {
-            err = DataModel::Decode(reader, encodingHint);
+            err = DataModel::Decode(reader, name);
         }
         else
         {
@@ -28629,7 +31992,31 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
         ReturnErrorOnFailure(err);
     }
 }
-} // namespace ContentAppMessageResponse.
+
+} // namespace ChimeSoundStruct
+} // namespace Structs
+
+namespace Commands {
+namespace PlayChimeSound {
+CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const
+{
+    DataModel::WrappedStructEncoder encoder{ aWriter, aTag };
+    return encoder.Finalize();
+}
+
+CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
+{
+    detail::StructDecodeIterator __iterator(reader);
+    while (true)
+    {
+        auto __element = __iterator.Next();
+        if (std::holds_alternative<CHIP_ERROR>(__element))
+        {
+            return std::get<CHIP_ERROR>(__element);
+        }
+    }
+}
+} // namespace PlayChimeSound.
 } // namespace Commands
 
 namespace Attributes {
@@ -28637,6 +32024,12 @@ CHIP_ERROR TypeInfo::DecodableType::Decode(TLV::TLVReader & reader, const Concre
 {
     switch (path.mAttributeId)
     {
+    case Attributes::InstalledChimeSounds::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, installedChimeSounds);
+    case Attributes::ActiveChimeSoundId::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, activeChimeSoundId);
+    case Attributes::Enabled::TypeInfo::GetAttributeId():
+        return DataModel::Decode(reader, enabled);
     case Attributes::GeneratedCommandList::TypeInfo::GetAttributeId():
         return DataModel::Decode(reader, generatedCommandList);
     case Attributes::AcceptedCommandList::TypeInfo::GetAttributeId():
@@ -28657,7 +32050,7 @@ CHIP_ERROR TypeInfo::DecodableType::Decode(TLV::TLVReader & reader, const Concre
 
 namespace Events {} // namespace Events
 
-} // namespace ContentAppObserver
+} // namespace Chime
 namespace EcosystemInformation {
 namespace Structs {
 
@@ -33047,6 +36440,48 @@ bool CommandIsFabricScoped(ClusterId aCluster, CommandId aCommand)
             return false;
         }
     }
+    case Clusters::CameraAvStreamManagement::Id: {
+        switch (aCommand)
+        {
+        default:
+            return false;
+        }
+    }
+    case Clusters::CameraAvSettingsUserLevelManagement::Id: {
+        switch (aCommand)
+        {
+        default:
+            return false;
+        }
+    }
+    case Clusters::WebRTCTransportProvider::Id: {
+        switch (aCommand)
+        {
+        default:
+            return false;
+        }
+    }
+    case Clusters::WebRTCTransportRequestor::Id: {
+        switch (aCommand)
+        {
+        default:
+            return false;
+        }
+    }
+    case Clusters::PushAvStreamTransport::Id: {
+        switch (aCommand)
+        {
+        default:
+            return false;
+        }
+    }
+    case Clusters::Chime::Id: {
+        switch (aCommand)
+        {
+        default:
+            return false;
+        }
+    }
     case Clusters::CommissionerControl::Id: {
         switch (aCommand)
         {
diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h
index 2aaf40bdbad6f9..0100e207830474 100644
--- a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h
+++ b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h
@@ -244,6 +244,42 @@ struct Type
 using DecodableType = Type;
 
 } // namespace ErrorStateStruct
+namespace ICEServerStruct {
+enum class Fields : uint8_t
+{
+    kUrls       = 1,
+    kUsername   = 2,
+    kCredential = 3,
+    kCaid       = 4,
+};
+
+struct Type
+{
+public:
+    DataModel::List<const chip::CharSpan> urls;
+    Optional<chip::CharSpan> username;
+    Optional<chip::CharSpan> credential;
+    Optional<uint16_t> caid;
+
+    static constexpr bool kIsFabricScoped = false;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+};
+
+struct DecodableType
+{
+public:
+    DataModel::DecodableList<chip::CharSpan> urls;
+    Optional<chip::CharSpan> username;
+    Optional<chip::CharSpan> credential;
+    Optional<uint16_t> caid;
+
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+
+    static constexpr bool kIsFabricScoped = false;
+};
+
+} // namespace ICEServerStruct
 namespace LabelStruct {
 enum class Fields : uint8_t
 {
@@ -290,6 +326,89 @@ struct Type
 using DecodableType = Type;
 
 } // namespace OperationalStateStruct
+namespace PerStreamStruct {
+enum class Fields : uint8_t
+{
+    kStreamID = 0,
+    kOnOff    = 1,
+};
+
+struct Type
+{
+public:
+    uint16_t streamID = static_cast<uint16_t>(0);
+    bool onOff        = static_cast<bool>(0);
+
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+
+    static constexpr bool kIsFabricScoped = false;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+};
+
+using DecodableType = Type;
+
+} // namespace PerStreamStruct
+namespace ViewportStruct {
+enum class Fields : uint8_t
+{
+    kX1 = 0,
+    kY1 = 1,
+    kX2 = 2,
+    kY2 = 3,
+};
+
+struct Type
+{
+public:
+    uint16_t x1 = static_cast<uint16_t>(0);
+    uint16_t y1 = static_cast<uint16_t>(0);
+    uint16_t x2 = static_cast<uint16_t>(0);
+    uint16_t y2 = static_cast<uint16_t>(0);
+
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+
+    static constexpr bool kIsFabricScoped = false;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+};
+
+using DecodableType = Type;
+
+} // namespace ViewportStruct
+namespace WebRTCSessionStruct {
+enum class Fields : uint8_t
+{
+    kId              = 1,
+    kPeerNodeId      = 2,
+    kPeerFabricIndex = 3,
+    kStreamType      = 4,
+    kVideoStreamID   = 5,
+    kAudioStreamID   = 6,
+    kMetadataOptions = 7,
+};
+
+struct Type
+{
+public:
+    uint16_t id                       = static_cast<uint16_t>(0);
+    chip::NodeId peerNodeId           = static_cast<chip::NodeId>(0);
+    chip::FabricIndex peerFabricIndex = static_cast<chip::FabricIndex>(0);
+    StreamTypeEnum streamType         = static_cast<StreamTypeEnum>(0);
+    DataModel::Nullable<uint16_t> videoStreamID;
+    DataModel::Nullable<uint16_t> audioStreamID;
+    chip::BitMask<WebRTCMetadataOptions> metadataOptions = static_cast<chip::BitMask<WebRTCMetadataOptions>>(0);
+
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+
+    static constexpr bool kIsFabricScoped = false;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+};
+
+using DecodableType = Type;
+
+} // namespace WebRTCSessionStruct
 } // namespace Structs
 } // namespace detail
 
@@ -41724,6 +41843,3743 @@ struct TypeInfo
 };
 } // namespace Attributes
 } // namespace ContentAppObserver
+namespace CameraAvStreamManagement {
+namespace Structs {
+namespace AudioCapabilitiesStruct {
+enum class Fields : uint8_t
+{
+    kMaxNumberOfChannels  = 0,
+    kSupportedCodecs      = 1,
+    kSupportedSampleRates = 2,
+    kSupportedBitDepths   = 3,
+};
+
+struct Type
+{
+public:
+    uint8_t maxNumberOfChannels = static_cast<uint8_t>(0);
+    DataModel::List<const AudioCodecEnum> supportedCodecs;
+    DataModel::List<const uint32_t> supportedSampleRates;
+    DataModel::List<const uint32_t> supportedBitDepths;
+
+    static constexpr bool kIsFabricScoped = false;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+};
+
+struct DecodableType
+{
+public:
+    uint8_t maxNumberOfChannels = static_cast<uint8_t>(0);
+    DataModel::DecodableList<AudioCodecEnum> supportedCodecs;
+    DataModel::DecodableList<uint32_t> supportedSampleRates;
+    DataModel::DecodableList<uint32_t> supportedBitDepths;
+
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+
+    static constexpr bool kIsFabricScoped = false;
+};
+
+} // namespace AudioCapabilitiesStruct
+namespace AudioStreamStruct {
+enum class Fields : uint8_t
+{
+    kAudioStreamID  = 0,
+    kStreamType     = 1,
+    kAudioCodec     = 2,
+    kChannelCount   = 3,
+    kSampleRate     = 4,
+    kBitRate        = 5,
+    kBitDepth       = 6,
+    kReferenceCount = 7,
+};
+
+struct Type
+{
+public:
+    uint16_t audioStreamID    = static_cast<uint16_t>(0);
+    StreamTypeEnum streamType = static_cast<StreamTypeEnum>(0);
+    AudioCodecEnum audioCodec = static_cast<AudioCodecEnum>(0);
+    uint8_t channelCount      = static_cast<uint8_t>(0);
+    uint32_t sampleRate       = static_cast<uint32_t>(0);
+    uint32_t bitRate          = static_cast<uint32_t>(0);
+    uint8_t bitDepth          = static_cast<uint8_t>(0);
+    uint8_t referenceCount    = static_cast<uint8_t>(0);
+
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+
+    static constexpr bool kIsFabricScoped = false;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+};
+
+using DecodableType = Type;
+
+} // namespace AudioStreamStruct
+namespace PerStreamStruct = Clusters::detail::Structs::PerStreamStruct;
+namespace RateDistortionTradeOffPointsStruct {
+enum class Fields : uint8_t
+{
+    kCodec      = 0,
+    kResolution = 1,
+    kMinBitRate = 2,
+};
+
+struct Type
+{
+public:
+    VideoCodecEnum codec = static_cast<VideoCodecEnum>(0);
+    Structs::DimensionStruct::Type resolution;
+    uint32_t minBitRate = static_cast<uint32_t>(0);
+
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+
+    static constexpr bool kIsFabricScoped = false;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+};
+
+using DecodableType = Type;
+
+} // namespace RateDistortionTradeOffPointsStruct
+namespace SnapshotParamsStruct {
+enum class Fields : uint8_t
+{
+    kResolution   = 0,
+    kMaxFrameRate = 1,
+    kImageCodec   = 2,
+};
+
+struct Type
+{
+public:
+    Structs::DimensionStruct::Type resolution;
+    uint16_t maxFrameRate     = static_cast<uint16_t>(0);
+    ImageCodecEnum imageCodec = static_cast<ImageCodecEnum>(0);
+
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+
+    static constexpr bool kIsFabricScoped = false;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+};
+
+using DecodableType = Type;
+
+} // namespace SnapshotParamsStruct
+namespace SnapshotStreamStruct {
+enum class Fields : uint8_t
+{
+    kSnapshotStreamID = 0,
+    kImageCodec       = 1,
+    kFrameRate        = 2,
+    kBitRate          = 3,
+    kMinResolution    = 4,
+    kMaxResolution    = 5,
+    kQuality          = 6,
+    kReferenceCount   = 7,
+};
+
+struct Type
+{
+public:
+    uint16_t snapshotStreamID = static_cast<uint16_t>(0);
+    ImageCodecEnum imageCodec = static_cast<ImageCodecEnum>(0);
+    uint16_t frameRate        = static_cast<uint16_t>(0);
+    uint32_t bitRate          = static_cast<uint32_t>(0);
+    Structs::DimensionStruct::Type minResolution;
+    Structs::DimensionStruct::Type maxResolution;
+    uint8_t quality        = static_cast<uint8_t>(0);
+    uint8_t referenceCount = static_cast<uint8_t>(0);
+
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+
+    static constexpr bool kIsFabricScoped = false;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+};
+
+using DecodableType = Type;
+
+} // namespace SnapshotStreamStruct
+namespace VideoSensorParamsStruct {
+enum class Fields : uint8_t
+{
+    kSensorWidth  = 0,
+    kSensorHeight = 1,
+    kHDRCapable   = 2,
+    kMaxFPS       = 3,
+    kMaxHDRFPS    = 4,
+};
+
+struct Type
+{
+public:
+    uint16_t sensorWidth  = static_cast<uint16_t>(0);
+    uint16_t sensorHeight = static_cast<uint16_t>(0);
+    bool HDRCapable       = static_cast<bool>(0);
+    uint16_t maxFPS       = static_cast<uint16_t>(0);
+    uint16_t maxHDRFPS    = static_cast<uint16_t>(0);
+
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+
+    static constexpr bool kIsFabricScoped = false;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+};
+
+using DecodableType = Type;
+
+} // namespace VideoSensorParamsStruct
+namespace VideoStreamStruct {
+enum class Fields : uint8_t
+{
+    kVideoStreamID  = 0,
+    kStreamType     = 1,
+    kVideoCodec     = 2,
+    kMinFrameRate   = 3,
+    kMaxFrameRate   = 4,
+    kMinResolution  = 5,
+    kMaxResolution  = 6,
+    kMinBitRate     = 7,
+    kMaxBitRate     = 8,
+    kMinFragmentLen = 9,
+    kMaxFragmentLen = 10,
+    kReferenceCount = 11,
+};
+
+struct Type
+{
+public:
+    uint16_t videoStreamID    = static_cast<uint16_t>(0);
+    StreamTypeEnum streamType = static_cast<StreamTypeEnum>(0);
+    VideoCodecEnum videoCodec = static_cast<VideoCodecEnum>(0);
+    uint16_t minFrameRate     = static_cast<uint16_t>(0);
+    uint16_t maxFrameRate     = static_cast<uint16_t>(0);
+    Structs::DimensionStruct::Type minResolution;
+    Structs::DimensionStruct::Type maxResolution;
+    uint16_t minBitRate     = static_cast<uint16_t>(0);
+    uint16_t maxBitRate     = static_cast<uint16_t>(0);
+    uint16_t minFragmentLen = static_cast<uint16_t>(0);
+    uint16_t maxFragmentLen = static_cast<uint16_t>(0);
+    uint8_t referenceCount  = static_cast<uint8_t>(0);
+
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+
+    static constexpr bool kIsFabricScoped = false;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+};
+
+using DecodableType = Type;
+
+} // namespace VideoStreamStruct
+namespace ViewportStruct = Clusters::detail::Structs::ViewportStruct;
+} // namespace Structs
+
+namespace Commands {
+// Forward-declarations so we can reference these later.
+
+namespace AudioStreamAllocate {
+struct Type;
+struct DecodableType;
+} // namespace AudioStreamAllocate
+
+namespace AudioStreamAllocateResponse {
+struct Type;
+struct DecodableType;
+} // namespace AudioStreamAllocateResponse
+
+namespace AudioStreamDeallocate {
+struct Type;
+struct DecodableType;
+} // namespace AudioStreamDeallocate
+
+namespace VideoStreamAllocate {
+struct Type;
+struct DecodableType;
+} // namespace VideoStreamAllocate
+
+namespace VideoStreamAllocateResponse {
+struct Type;
+struct DecodableType;
+} // namespace VideoStreamAllocateResponse
+
+namespace VideoStreamModify {
+struct Type;
+struct DecodableType;
+} // namespace VideoStreamModify
+
+namespace VideoStreamDeallocate {
+struct Type;
+struct DecodableType;
+} // namespace VideoStreamDeallocate
+
+namespace SnapshotStreamAllocate {
+struct Type;
+struct DecodableType;
+} // namespace SnapshotStreamAllocate
+
+namespace SnapshotStreamAllocateResponse {
+struct Type;
+struct DecodableType;
+} // namespace SnapshotStreamAllocateResponse
+
+namespace SnapshotStreamDeallocate {
+struct Type;
+struct DecodableType;
+} // namespace SnapshotStreamDeallocate
+
+namespace SetStreamPriority {
+struct Type;
+struct DecodableType;
+} // namespace SetStreamPriority
+
+namespace CaptureSnapshot {
+struct Type;
+struct DecodableType;
+} // namespace CaptureSnapshot
+
+namespace CaptureSnapshotResponse {
+struct Type;
+struct DecodableType;
+} // namespace CaptureSnapshotResponse
+
+namespace SetViewport {
+struct Type;
+struct DecodableType;
+} // namespace SetViewport
+
+namespace SetImageRotation {
+struct Type;
+struct DecodableType;
+} // namespace SetImageRotation
+
+namespace SetImageFlipHorizontal {
+struct Type;
+struct DecodableType;
+} // namespace SetImageFlipHorizontal
+
+namespace SetImageFlipVertical {
+struct Type;
+struct DecodableType;
+} // namespace SetImageFlipVertical
+
+} // namespace Commands
+
+namespace Commands {
+namespace AudioStreamAllocate {
+enum class Fields : uint8_t
+{
+    kStreamType   = 0,
+    kAudioCodec   = 1,
+    kChannelCount = 2,
+    kSampleRate   = 3,
+    kBitRate      = 4,
+    kBitDepth     = 5,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::AudioStreamAllocate::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    StreamTypeEnum streamType = static_cast<StreamTypeEnum>(0);
+    AudioCodecEnum audioCodec = static_cast<AudioCodecEnum>(0);
+    uint8_t channelCount      = static_cast<uint8_t>(0);
+    uint32_t sampleRate       = static_cast<uint32_t>(0);
+    uint32_t bitRate          = static_cast<uint32_t>(0);
+    uint8_t bitDepth          = static_cast<uint8_t>(0);
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = Clusters::CameraAvStreamManagement::Commands::AudioStreamAllocateResponse::DecodableType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::AudioStreamAllocate::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    StreamTypeEnum streamType = static_cast<StreamTypeEnum>(0);
+    AudioCodecEnum audioCodec = static_cast<AudioCodecEnum>(0);
+    uint8_t channelCount      = static_cast<uint8_t>(0);
+    uint32_t sampleRate       = static_cast<uint32_t>(0);
+    uint32_t bitRate          = static_cast<uint32_t>(0);
+    uint8_t bitDepth          = static_cast<uint8_t>(0);
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace AudioStreamAllocate
+namespace AudioStreamAllocateResponse {
+enum class Fields : uint8_t
+{
+    kAudioStreamID = 0,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::AudioStreamAllocateResponse::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    uint16_t audioStreamID = static_cast<uint16_t>(0);
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = DataModel::NullObjectType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::AudioStreamAllocateResponse::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    uint16_t audioStreamID = static_cast<uint16_t>(0);
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace AudioStreamAllocateResponse
+namespace AudioStreamDeallocate {
+enum class Fields : uint8_t
+{
+    kAudioStreamID = 0,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::AudioStreamDeallocate::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    uint16_t audioStreamID = static_cast<uint16_t>(0);
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = DataModel::NullObjectType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::AudioStreamDeallocate::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    uint16_t audioStreamID = static_cast<uint16_t>(0);
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace AudioStreamDeallocate
+namespace VideoStreamAllocate {
+enum class Fields : uint8_t
+{
+    kStreamType     = 0,
+    kVideoCodec     = 1,
+    kMinFrameRate   = 2,
+    kMaxFrameRate   = 3,
+    kMinResolution  = 4,
+    kMaxResolution  = 5,
+    kMinBitRate     = 6,
+    kMaxBitRate     = 7,
+    kMinFragmentLen = 8,
+    kMaxFragmentLen = 9,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::VideoStreamAllocate::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    StreamTypeEnum streamType = static_cast<StreamTypeEnum>(0);
+    VideoCodecEnum videoCodec = static_cast<VideoCodecEnum>(0);
+    uint16_t minFrameRate     = static_cast<uint16_t>(0);
+    uint16_t maxFrameRate     = static_cast<uint16_t>(0);
+    Structs::DimensionStruct::Type minResolution;
+    Structs::DimensionStruct::Type maxResolution;
+    uint32_t minBitRate     = static_cast<uint32_t>(0);
+    uint32_t maxBitRate     = static_cast<uint32_t>(0);
+    uint16_t minFragmentLen = static_cast<uint16_t>(0);
+    uint16_t maxFragmentLen = static_cast<uint16_t>(0);
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = Clusters::CameraAvStreamManagement::Commands::VideoStreamAllocateResponse::DecodableType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::VideoStreamAllocate::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    StreamTypeEnum streamType = static_cast<StreamTypeEnum>(0);
+    VideoCodecEnum videoCodec = static_cast<VideoCodecEnum>(0);
+    uint16_t minFrameRate     = static_cast<uint16_t>(0);
+    uint16_t maxFrameRate     = static_cast<uint16_t>(0);
+    Structs::DimensionStruct::DecodableType minResolution;
+    Structs::DimensionStruct::DecodableType maxResolution;
+    uint32_t minBitRate     = static_cast<uint32_t>(0);
+    uint32_t maxBitRate     = static_cast<uint32_t>(0);
+    uint16_t minFragmentLen = static_cast<uint16_t>(0);
+    uint16_t maxFragmentLen = static_cast<uint16_t>(0);
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace VideoStreamAllocate
+namespace VideoStreamAllocateResponse {
+enum class Fields : uint8_t
+{
+    kVideoStreamID = 0,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::VideoStreamAllocateResponse::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    uint16_t videoStreamID = static_cast<uint16_t>(0);
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = DataModel::NullObjectType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::VideoStreamAllocateResponse::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    uint16_t videoStreamID = static_cast<uint16_t>(0);
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace VideoStreamAllocateResponse
+namespace VideoStreamModify {
+enum class Fields : uint8_t
+{
+    kVideoStreamID = 0,
+    kResolution    = 1,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::VideoStreamModify::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    uint16_t videoStreamID = static_cast<uint16_t>(0);
+    Structs::DimensionStruct::Type resolution;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = DataModel::NullObjectType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::VideoStreamModify::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    uint16_t videoStreamID = static_cast<uint16_t>(0);
+    Structs::DimensionStruct::DecodableType resolution;
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace VideoStreamModify
+namespace VideoStreamDeallocate {
+enum class Fields : uint8_t
+{
+    kVideoStreamID = 0,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::VideoStreamDeallocate::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    uint16_t videoStreamID = static_cast<uint16_t>(0);
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = DataModel::NullObjectType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::VideoStreamDeallocate::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    uint16_t videoStreamID = static_cast<uint16_t>(0);
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace VideoStreamDeallocate
+namespace SnapshotStreamAllocate {
+enum class Fields : uint8_t
+{
+    kImageCodec    = 0,
+    kFrameRate     = 1,
+    kBitRate       = 2,
+    kMinResolution = 3,
+    kMaxResolution = 4,
+    kQuality       = 5,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::SnapshotStreamAllocate::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    ImageCodecEnum imageCodec = static_cast<ImageCodecEnum>(0);
+    uint16_t frameRate        = static_cast<uint16_t>(0);
+    uint32_t bitRate          = static_cast<uint32_t>(0);
+    Structs::DimensionStruct::Type minResolution;
+    Structs::DimensionStruct::Type maxResolution;
+    uint8_t quality = static_cast<uint8_t>(0);
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = Clusters::CameraAvStreamManagement::Commands::SnapshotStreamAllocateResponse::DecodableType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::SnapshotStreamAllocate::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    ImageCodecEnum imageCodec = static_cast<ImageCodecEnum>(0);
+    uint16_t frameRate        = static_cast<uint16_t>(0);
+    uint32_t bitRate          = static_cast<uint32_t>(0);
+    Structs::DimensionStruct::DecodableType minResolution;
+    Structs::DimensionStruct::DecodableType maxResolution;
+    uint8_t quality = static_cast<uint8_t>(0);
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace SnapshotStreamAllocate
+namespace SnapshotStreamAllocateResponse {
+enum class Fields : uint8_t
+{
+    kSnapshotStreamID = 0,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::SnapshotStreamAllocateResponse::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    uint16_t snapshotStreamID = static_cast<uint16_t>(0);
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = DataModel::NullObjectType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::SnapshotStreamAllocateResponse::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    uint16_t snapshotStreamID = static_cast<uint16_t>(0);
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace SnapshotStreamAllocateResponse
+namespace SnapshotStreamDeallocate {
+enum class Fields : uint8_t
+{
+    kSnapshotStreamID = 0,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::SnapshotStreamDeallocate::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    uint16_t snapshotStreamID = static_cast<uint16_t>(0);
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = DataModel::NullObjectType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::SnapshotStreamDeallocate::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    uint16_t snapshotStreamID = static_cast<uint16_t>(0);
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace SnapshotStreamDeallocate
+namespace SetStreamPriority {
+enum class Fields : uint8_t
+{
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::SetStreamPriority::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = DataModel::NullObjectType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::SetStreamPriority::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace SetStreamPriority
+namespace CaptureSnapshot {
+enum class Fields : uint8_t
+{
+    kSnapshotStreamID    = 0,
+    kRequestedResolution = 1,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::CaptureSnapshot::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    uint16_t snapshotStreamID = static_cast<uint16_t>(0);
+    Structs::DimensionStruct::Type requestedResolution;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = DataModel::NullObjectType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::CaptureSnapshot::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    uint16_t snapshotStreamID = static_cast<uint16_t>(0);
+    Structs::DimensionStruct::DecodableType requestedResolution;
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace CaptureSnapshot
+namespace CaptureSnapshotResponse {
+enum class Fields : uint8_t
+{
+    kData       = 0,
+    kImageCodec = 1,
+    kResolution = 2,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::CaptureSnapshotResponse::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    chip::ByteSpan data;
+    ImageCodecEnum imageCodec = static_cast<ImageCodecEnum>(0);
+    Structs::DimensionStruct::Type resolution;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = DataModel::NullObjectType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::CaptureSnapshotResponse::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    chip::ByteSpan data;
+    ImageCodecEnum imageCodec = static_cast<ImageCodecEnum>(0);
+    Structs::DimensionStruct::DecodableType resolution;
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace CaptureSnapshotResponse
+namespace SetViewport {
+enum class Fields : uint8_t
+{
+    kViewport = 0,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::SetViewport::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    Structs::ViewportStruct::Type viewport;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = DataModel::NullObjectType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::SetViewport::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    Structs::ViewportStruct::DecodableType viewport;
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace SetViewport
+namespace SetImageRotation {
+enum class Fields : uint8_t
+{
+    kAngle = 0,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::SetImageRotation::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    uint16_t angle = static_cast<uint16_t>(0);
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = DataModel::NullObjectType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::SetImageRotation::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    uint16_t angle = static_cast<uint16_t>(0);
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace SetImageRotation
+namespace SetImageFlipHorizontal {
+enum class Fields : uint8_t
+{
+    kOnOff = 0,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::SetImageFlipHorizontal::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    bool onOff = static_cast<bool>(0);
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = DataModel::NullObjectType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::SetImageFlipHorizontal::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    bool onOff = static_cast<bool>(0);
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace SetImageFlipHorizontal
+namespace SetImageFlipVertical {
+enum class Fields : uint8_t
+{
+    kOnOff = 0,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::SetImageFlipVertical::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    bool onOff = static_cast<bool>(0);
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = DataModel::NullObjectType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::SetImageFlipVertical::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    bool onOff = static_cast<bool>(0);
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace SetImageFlipVertical
+} // namespace Commands
+
+namespace Attributes {
+
+namespace MaxConcurrentVideoEncoders {
+struct TypeInfo
+{
+    using Type             = uint8_t;
+    using DecodableType    = uint8_t;
+    using DecodableArgType = uint8_t;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::MaxConcurrentVideoEncoders::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace MaxConcurrentVideoEncoders
+namespace MaxEncodedPixelRate {
+struct TypeInfo
+{
+    using Type             = uint32_t;
+    using DecodableType    = uint32_t;
+    using DecodableArgType = uint32_t;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::MaxEncodedPixelRate::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace MaxEncodedPixelRate
+namespace VideoSensorParams {
+struct TypeInfo
+{
+    using Type             = chip::app::Clusters::CameraAvStreamManagement::Structs::VideoSensorParamsStruct::Type;
+    using DecodableType    = chip::app::Clusters::CameraAvStreamManagement::Structs::VideoSensorParamsStruct::DecodableType;
+    using DecodableArgType = const chip::app::Clusters::CameraAvStreamManagement::Structs::VideoSensorParamsStruct::DecodableType &;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::VideoSensorParams::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace VideoSensorParams
+namespace NightVisionCapable {
+struct TypeInfo
+{
+    using Type             = bool;
+    using DecodableType    = bool;
+    using DecodableArgType = bool;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::NightVisionCapable::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace NightVisionCapable
+namespace MinViewPortWidth {
+struct TypeInfo
+{
+    using Type             = chip::app::Clusters::CameraAvStreamManagement::Structs::DimensionStruct::Type;
+    using DecodableType    = chip::app::Clusters::CameraAvStreamManagement::Structs::DimensionStruct::DecodableType;
+    using DecodableArgType = const chip::app::Clusters::CameraAvStreamManagement::Structs::DimensionStruct::DecodableType &;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::MinViewPortWidth::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace MinViewPortWidth
+namespace MinViewPortHeight {
+struct TypeInfo
+{
+    using Type             = chip::app::Clusters::CameraAvStreamManagement::Structs::DimensionStruct::Type;
+    using DecodableType    = chip::app::Clusters::CameraAvStreamManagement::Structs::DimensionStruct::DecodableType;
+    using DecodableArgType = const chip::app::Clusters::CameraAvStreamManagement::Structs::DimensionStruct::DecodableType &;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::MinViewPortHeight::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace MinViewPortHeight
+namespace RateDistortionTradeOffPoints {
+struct TypeInfo
+{
+    using Type = chip::app::DataModel::List<
+        const chip::app::Clusters::CameraAvStreamManagement::Structs::RateDistortionTradeOffPointsStruct::Type>;
+    using DecodableType = chip::app::DataModel::DecodableList<
+        chip::app::Clusters::CameraAvStreamManagement::Structs::RateDistortionTradeOffPointsStruct::DecodableType>;
+    using DecodableArgType = const chip::app::DataModel::DecodableList<
+        chip::app::Clusters::CameraAvStreamManagement::Structs::RateDistortionTradeOffPointsStruct::DecodableType> &;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::RateDistortionTradeOffPoints::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace RateDistortionTradeOffPoints
+namespace MaxPreRollBufferSize {
+struct TypeInfo
+{
+    using Type             = uint32_t;
+    using DecodableType    = uint32_t;
+    using DecodableArgType = uint32_t;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::MaxPreRollBufferSize::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace MaxPreRollBufferSize
+namespace MicrophoneCapabilities {
+struct TypeInfo
+{
+    using Type             = chip::app::Clusters::CameraAvStreamManagement::Structs::AudioCapabilitiesStruct::Type;
+    using DecodableType    = chip::app::Clusters::CameraAvStreamManagement::Structs::AudioCapabilitiesStruct::DecodableType;
+    using DecodableArgType = const chip::app::Clusters::CameraAvStreamManagement::Structs::AudioCapabilitiesStruct::DecodableType &;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::MicrophoneCapabilities::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace MicrophoneCapabilities
+namespace SpeakerCapabilities {
+struct TypeInfo
+{
+    using Type             = chip::app::Clusters::CameraAvStreamManagement::Structs::AudioCapabilitiesStruct::Type;
+    using DecodableType    = chip::app::Clusters::CameraAvStreamManagement::Structs::AudioCapabilitiesStruct::DecodableType;
+    using DecodableArgType = const chip::app::Clusters::CameraAvStreamManagement::Structs::AudioCapabilitiesStruct::DecodableType &;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::SpeakerCapabilities::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace SpeakerCapabilities
+namespace TwoWayTalkSupport {
+struct TypeInfo
+{
+    using Type             = chip::app::Clusters::CameraAvStreamManagement::TwowayTalkSupportTypeEnum;
+    using DecodableType    = chip::app::Clusters::CameraAvStreamManagement::TwowayTalkSupportTypeEnum;
+    using DecodableArgType = chip::app::Clusters::CameraAvStreamManagement::TwowayTalkSupportTypeEnum;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::TwoWayTalkSupport::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace TwoWayTalkSupport
+namespace SupportedSnapshotParams {
+struct TypeInfo
+{
+    using Type =
+        chip::app::DataModel::List<const chip::app::Clusters::CameraAvStreamManagement::Structs::SnapshotParamsStruct::Type>;
+    using DecodableType = chip::app::DataModel::DecodableList<
+        chip::app::Clusters::CameraAvStreamManagement::Structs::SnapshotParamsStruct::DecodableType>;
+    using DecodableArgType = const chip::app::DataModel::DecodableList<
+        chip::app::Clusters::CameraAvStreamManagement::Structs::SnapshotParamsStruct::DecodableType> &;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::SupportedSnapshotParams::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace SupportedSnapshotParams
+namespace HDRCapable {
+struct TypeInfo
+{
+    using Type             = bool;
+    using DecodableType    = bool;
+    using DecodableArgType = bool;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::HDRCapable::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace HDRCapable
+namespace MaxNetworkBandwidth {
+struct TypeInfo
+{
+    using Type             = uint32_t;
+    using DecodableType    = uint32_t;
+    using DecodableArgType = uint32_t;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::MaxNetworkBandwidth::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace MaxNetworkBandwidth
+namespace CurrentFrameRate {
+struct TypeInfo
+{
+    using Type             = uint16_t;
+    using DecodableType    = uint16_t;
+    using DecodableArgType = uint16_t;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::CurrentFrameRate::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace CurrentFrameRate
+namespace HDRMode {
+struct TypeInfo
+{
+    using Type             = bool;
+    using DecodableType    = bool;
+    using DecodableArgType = bool;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::HDRMode::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace HDRMode
+namespace CurrentVideoCodecs {
+struct TypeInfo
+{
+    using Type          = chip::app::DataModel::List<const chip::app::Clusters::CameraAvStreamManagement::VideoCodecEnum>;
+    using DecodableType = chip::app::DataModel::DecodableList<chip::app::Clusters::CameraAvStreamManagement::VideoCodecEnum>;
+    using DecodableArgType =
+        const chip::app::DataModel::DecodableList<chip::app::Clusters::CameraAvStreamManagement::VideoCodecEnum> &;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::CurrentVideoCodecs::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace CurrentVideoCodecs
+namespace CurrentSnapshotConfig {
+struct TypeInfo
+{
+    using Type             = chip::app::Clusters::CameraAvStreamManagement::Structs::SnapshotParamsStruct::Type;
+    using DecodableType    = chip::app::Clusters::CameraAvStreamManagement::Structs::SnapshotParamsStruct::DecodableType;
+    using DecodableArgType = const chip::app::Clusters::CameraAvStreamManagement::Structs::SnapshotParamsStruct::DecodableType &;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::CurrentSnapshotConfig::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace CurrentSnapshotConfig
+namespace FabricsUsingCamera {
+struct TypeInfo
+{
+    using Type             = chip::app::DataModel::List<const chip::FabricIndex>;
+    using DecodableType    = chip::app::DataModel::DecodableList<chip::FabricIndex>;
+    using DecodableArgType = const chip::app::DataModel::DecodableList<chip::FabricIndex> &;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::FabricsUsingCamera::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace FabricsUsingCamera
+namespace AllocatedVideoStreams {
+struct TypeInfo
+{
+    using Type = chip::app::DataModel::List<const chip::app::Clusters::CameraAvStreamManagement::Structs::VideoStreamStruct::Type>;
+    using DecodableType = chip::app::DataModel::DecodableList<
+        chip::app::Clusters::CameraAvStreamManagement::Structs::VideoStreamStruct::DecodableType>;
+    using DecodableArgType = const chip::app::DataModel::DecodableList<
+        chip::app::Clusters::CameraAvStreamManagement::Structs::VideoStreamStruct::DecodableType> &;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::AllocatedVideoStreams::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace AllocatedVideoStreams
+namespace AllocatedAudioStreams {
+struct TypeInfo
+{
+    using Type = chip::app::DataModel::List<const chip::app::Clusters::CameraAvStreamManagement::Structs::AudioStreamStruct::Type>;
+    using DecodableType = chip::app::DataModel::DecodableList<
+        chip::app::Clusters::CameraAvStreamManagement::Structs::AudioStreamStruct::DecodableType>;
+    using DecodableArgType = const chip::app::DataModel::DecodableList<
+        chip::app::Clusters::CameraAvStreamManagement::Structs::AudioStreamStruct::DecodableType> &;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::AllocatedAudioStreams::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace AllocatedAudioStreams
+namespace AllocatedSnapshotStreams {
+struct TypeInfo
+{
+    using Type =
+        chip::app::DataModel::List<const chip::app::Clusters::CameraAvStreamManagement::Structs::SnapshotStreamStruct::Type>;
+    using DecodableType = chip::app::DataModel::DecodableList<
+        chip::app::Clusters::CameraAvStreamManagement::Structs::SnapshotStreamStruct::DecodableType>;
+    using DecodableArgType = const chip::app::DataModel::DecodableList<
+        chip::app::Clusters::CameraAvStreamManagement::Structs::SnapshotStreamStruct::DecodableType> &;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::AllocatedSnapshotStreams::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace AllocatedSnapshotStreams
+namespace RankedVideoStreamPrioritiesList {
+struct TypeInfo
+{
+    using Type          = chip::app::DataModel::List<const chip::app::Clusters::CameraAvStreamManagement::StreamTypeEnum>;
+    using DecodableType = chip::app::DataModel::DecodableList<chip::app::Clusters::CameraAvStreamManagement::StreamTypeEnum>;
+    using DecodableArgType =
+        const chip::app::DataModel::DecodableList<chip::app::Clusters::CameraAvStreamManagement::StreamTypeEnum> &;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::RankedVideoStreamPrioritiesList::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace RankedVideoStreamPrioritiesList
+namespace SoftRecordingPrivacyModeSetting {
+struct TypeInfo
+{
+    using Type             = bool;
+    using DecodableType    = bool;
+    using DecodableArgType = bool;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::SoftRecordingPrivacyModeSetting::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace SoftRecordingPrivacyModeSetting
+namespace SoftLivestreamPrivacyModeSetting {
+struct TypeInfo
+{
+    using Type             = bool;
+    using DecodableType    = bool;
+    using DecodableArgType = bool;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::SoftLivestreamPrivacyModeSetting::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace SoftLivestreamPrivacyModeSetting
+namespace HardPrivacyMode {
+struct TypeInfo
+{
+    using Type             = bool;
+    using DecodableType    = bool;
+    using DecodableArgType = bool;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::HardPrivacyMode::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace HardPrivacyMode
+namespace NightVision {
+struct TypeInfo
+{
+    using Type             = chip::app::Clusters::CameraAvStreamManagement::TriStateAuto;
+    using DecodableType    = chip::app::Clusters::CameraAvStreamManagement::TriStateAuto;
+    using DecodableArgType = chip::app::Clusters::CameraAvStreamManagement::TriStateAuto;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::NightVision::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace NightVision
+namespace NightVisionIllum {
+struct TypeInfo
+{
+    using Type             = chip::app::Clusters::CameraAvStreamManagement::TriStateAuto;
+    using DecodableType    = chip::app::Clusters::CameraAvStreamManagement::TriStateAuto;
+    using DecodableArgType = chip::app::Clusters::CameraAvStreamManagement::TriStateAuto;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::NightVisionIllum::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace NightVisionIllum
+namespace Awb {
+struct TypeInfo
+{
+    using Type             = bool;
+    using DecodableType    = bool;
+    using DecodableArgType = bool;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::Awb::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace Awb
+namespace ShutterSpeed {
+struct TypeInfo
+{
+    using Type             = bool;
+    using DecodableType    = bool;
+    using DecodableArgType = bool;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::ShutterSpeed::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace ShutterSpeed
+namespace Iso {
+struct TypeInfo
+{
+    using Type             = bool;
+    using DecodableType    = bool;
+    using DecodableArgType = bool;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::Iso::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace Iso
+namespace Viewport {
+struct TypeInfo
+{
+    using Type             = chip::app::Clusters::CameraAvStreamManagement::Structs::ViewportStruct::Type;
+    using DecodableType    = chip::app::Clusters::CameraAvStreamManagement::Structs::ViewportStruct::DecodableType;
+    using DecodableArgType = const chip::app::Clusters::CameraAvStreamManagement::Structs::ViewportStruct::DecodableType &;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::Viewport::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace Viewport
+namespace SpkrOnOff {
+struct TypeInfo
+{
+    using Type             = bool;
+    using DecodableType    = bool;
+    using DecodableArgType = bool;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::SpkrOnOff::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace SpkrOnOff
+namespace SpkrVolumeLevel {
+struct TypeInfo
+{
+    using Type             = uint8_t;
+    using DecodableType    = uint8_t;
+    using DecodableArgType = uint8_t;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::SpkrVolumeLevel::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace SpkrVolumeLevel
+namespace SpkrMaxLevel {
+struct TypeInfo
+{
+    using Type             = uint8_t;
+    using DecodableType    = uint8_t;
+    using DecodableArgType = uint8_t;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::SpkrMaxLevel::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace SpkrMaxLevel
+namespace SpkrMinLevel {
+struct TypeInfo
+{
+    using Type             = uint8_t;
+    using DecodableType    = uint8_t;
+    using DecodableArgType = uint8_t;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::SpkrMinLevel::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace SpkrMinLevel
+namespace MicOnOff {
+struct TypeInfo
+{
+    using Type             = bool;
+    using DecodableType    = bool;
+    using DecodableArgType = bool;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::MicOnOff::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace MicOnOff
+namespace MicCurrentLevel {
+struct TypeInfo
+{
+    using Type             = uint8_t;
+    using DecodableType    = uint8_t;
+    using DecodableArgType = uint8_t;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::MicCurrentLevel::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace MicCurrentLevel
+namespace MicMaxLevel {
+struct TypeInfo
+{
+    using Type             = uint8_t;
+    using DecodableType    = uint8_t;
+    using DecodableArgType = uint8_t;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::MicMaxLevel::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace MicMaxLevel
+namespace MicMinLevel {
+struct TypeInfo
+{
+    using Type             = uint8_t;
+    using DecodableType    = uint8_t;
+    using DecodableArgType = uint8_t;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::MicMinLevel::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace MicMinLevel
+namespace MicAGC {
+struct TypeInfo
+{
+    using Type             = bool;
+    using DecodableType    = bool;
+    using DecodableArgType = bool;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::MicAGC::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace MicAGC
+namespace ImageRotation {
+struct TypeInfo
+{
+    using Type             = uint16_t;
+    using DecodableType    = uint16_t;
+    using DecodableArgType = uint16_t;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::ImageRotation::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace ImageRotation
+namespace ImageFlipHorizontal {
+struct TypeInfo
+{
+    using Type             = bool;
+    using DecodableType    = bool;
+    using DecodableArgType = bool;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::ImageFlipHorizontal::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace ImageFlipHorizontal
+namespace ImageFlipVertical {
+struct TypeInfo
+{
+    using Type             = bool;
+    using DecodableType    = bool;
+    using DecodableArgType = bool;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::ImageFlipVertical::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace ImageFlipVertical
+namespace LocalVideoRecordingEnabled {
+struct TypeInfo
+{
+    using Type             = bool;
+    using DecodableType    = bool;
+    using DecodableArgType = bool;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::LocalVideoRecordingEnabled::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace LocalVideoRecordingEnabled
+namespace LocalSnapshotRecordingEnabled {
+struct TypeInfo
+{
+    using Type             = bool;
+    using DecodableType    = bool;
+    using DecodableArgType = bool;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::LocalSnapshotRecordingEnabled::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace LocalSnapshotRecordingEnabled
+namespace StatusLight {
+struct TypeInfo
+{
+    using Type             = bool;
+    using DecodableType    = bool;
+    using DecodableArgType = bool;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::StatusLight::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace StatusLight
+namespace StatusLightBrightness {
+struct TypeInfo
+{
+    using Type             = chip::app::Clusters::Globals::ThreeLevelAutoEnum;
+    using DecodableType    = chip::app::Clusters::Globals::ThreeLevelAutoEnum;
+    using DecodableArgType = chip::app::Clusters::Globals::ThreeLevelAutoEnum;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::StatusLightBrightness::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace StatusLightBrightness
+namespace DepthSensorStatus {
+struct TypeInfo
+{
+    using Type             = chip::app::Clusters::CameraAvStreamManagement::TriStateAuto;
+    using DecodableType    = chip::app::Clusters::CameraAvStreamManagement::TriStateAuto;
+    using DecodableArgType = chip::app::Clusters::CameraAvStreamManagement::TriStateAuto;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::DepthSensorStatus::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace DepthSensorStatus
+namespace WatermarkEnabled {
+struct TypeInfo
+{
+    using Type = chip::app::DataModel::List<const chip::app::Clusters::CameraAvStreamManagement::Structs::PerStreamStruct::Type>;
+    using DecodableType =
+        chip::app::DataModel::DecodableList<chip::app::Clusters::CameraAvStreamManagement::Structs::PerStreamStruct::DecodableType>;
+    using DecodableArgType = const chip::app::DataModel::DecodableList<
+        chip::app::Clusters::CameraAvStreamManagement::Structs::PerStreamStruct::DecodableType> &;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::WatermarkEnabled::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace WatermarkEnabled
+namespace OSDEnabled {
+struct TypeInfo
+{
+    using Type = chip::app::DataModel::List<const chip::app::Clusters::CameraAvStreamManagement::Structs::PerStreamStruct::Type>;
+    using DecodableType =
+        chip::app::DataModel::DecodableList<chip::app::Clusters::CameraAvStreamManagement::Structs::PerStreamStruct::DecodableType>;
+    using DecodableArgType = const chip::app::DataModel::DecodableList<
+        chip::app::Clusters::CameraAvStreamManagement::Structs::PerStreamStruct::DecodableType> &;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::OSDEnabled::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace OSDEnabled
+namespace GeneratedCommandList {
+struct TypeInfo : public Clusters::Globals::Attributes::GeneratedCommandList::TypeInfo
+{
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+};
+} // namespace GeneratedCommandList
+namespace AcceptedCommandList {
+struct TypeInfo : public Clusters::Globals::Attributes::AcceptedCommandList::TypeInfo
+{
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+};
+} // namespace AcceptedCommandList
+namespace EventList {
+struct TypeInfo : public Clusters::Globals::Attributes::EventList::TypeInfo
+{
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+};
+} // namespace EventList
+namespace AttributeList {
+struct TypeInfo : public Clusters::Globals::Attributes::AttributeList::TypeInfo
+{
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+};
+} // namespace AttributeList
+namespace FeatureMap {
+struct TypeInfo : public Clusters::Globals::Attributes::FeatureMap::TypeInfo
+{
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+};
+} // namespace FeatureMap
+namespace ClusterRevision {
+struct TypeInfo : public Clusters::Globals::Attributes::ClusterRevision::TypeInfo
+{
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+};
+} // namespace ClusterRevision
+
+struct TypeInfo
+{
+    struct DecodableType
+    {
+        static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+        CHIP_ERROR Decode(TLV::TLVReader & reader, const ConcreteAttributePath & path);
+
+        Attributes::MaxConcurrentVideoEncoders::TypeInfo::DecodableType maxConcurrentVideoEncoders = static_cast<uint8_t>(0);
+        Attributes::MaxEncodedPixelRate::TypeInfo::DecodableType maxEncodedPixelRate               = static_cast<uint32_t>(0);
+        Attributes::VideoSensorParams::TypeInfo::DecodableType videoSensorParams;
+        Attributes::NightVisionCapable::TypeInfo::DecodableType nightVisionCapable = static_cast<bool>(0);
+        Attributes::MinViewPortWidth::TypeInfo::DecodableType minViewPortWidth;
+        Attributes::MinViewPortHeight::TypeInfo::DecodableType minViewPortHeight;
+        Attributes::RateDistortionTradeOffPoints::TypeInfo::DecodableType rateDistortionTradeOffPoints;
+        Attributes::MaxPreRollBufferSize::TypeInfo::DecodableType maxPreRollBufferSize = static_cast<uint32_t>(0);
+        Attributes::MicrophoneCapabilities::TypeInfo::DecodableType microphoneCapabilities;
+        Attributes::SpeakerCapabilities::TypeInfo::DecodableType speakerCapabilities;
+        Attributes::TwoWayTalkSupport::TypeInfo::DecodableType twoWayTalkSupport =
+            static_cast<chip::app::Clusters::CameraAvStreamManagement::TwowayTalkSupportTypeEnum>(0);
+        Attributes::SupportedSnapshotParams::TypeInfo::DecodableType supportedSnapshotParams;
+        Attributes::HDRCapable::TypeInfo::DecodableType HDRCapable                   = static_cast<bool>(0);
+        Attributes::MaxNetworkBandwidth::TypeInfo::DecodableType maxNetworkBandwidth = static_cast<uint32_t>(0);
+        Attributes::CurrentFrameRate::TypeInfo::DecodableType currentFrameRate       = static_cast<uint16_t>(0);
+        Attributes::HDRMode::TypeInfo::DecodableType HDRMode                         = static_cast<bool>(0);
+        Attributes::CurrentVideoCodecs::TypeInfo::DecodableType currentVideoCodecs;
+        Attributes::CurrentSnapshotConfig::TypeInfo::DecodableType currentSnapshotConfig;
+        Attributes::FabricsUsingCamera::TypeInfo::DecodableType fabricsUsingCamera;
+        Attributes::AllocatedVideoStreams::TypeInfo::DecodableType allocatedVideoStreams;
+        Attributes::AllocatedAudioStreams::TypeInfo::DecodableType allocatedAudioStreams;
+        Attributes::AllocatedSnapshotStreams::TypeInfo::DecodableType allocatedSnapshotStreams;
+        Attributes::RankedVideoStreamPrioritiesList::TypeInfo::DecodableType rankedVideoStreamPrioritiesList;
+        Attributes::SoftRecordingPrivacyModeSetting::TypeInfo::DecodableType softRecordingPrivacyModeSetting = static_cast<bool>(0);
+        Attributes::SoftLivestreamPrivacyModeSetting::TypeInfo::DecodableType softLivestreamPrivacyModeSetting =
+            static_cast<bool>(0);
+        Attributes::HardPrivacyMode::TypeInfo::DecodableType hardPrivacyMode = static_cast<bool>(0);
+        Attributes::NightVision::TypeInfo::DecodableType nightVision =
+            static_cast<chip::app::Clusters::CameraAvStreamManagement::TriStateAuto>(0);
+        Attributes::NightVisionIllum::TypeInfo::DecodableType nightVisionIllum =
+            static_cast<chip::app::Clusters::CameraAvStreamManagement::TriStateAuto>(0);
+        Attributes::Awb::TypeInfo::DecodableType awb                   = static_cast<bool>(0);
+        Attributes::ShutterSpeed::TypeInfo::DecodableType shutterSpeed = static_cast<bool>(0);
+        Attributes::Iso::TypeInfo::DecodableType iso                   = static_cast<bool>(0);
+        Attributes::Viewport::TypeInfo::DecodableType viewport;
+        Attributes::SpkrOnOff::TypeInfo::DecodableType spkrOnOff                                         = static_cast<bool>(0);
+        Attributes::SpkrVolumeLevel::TypeInfo::DecodableType spkrVolumeLevel                             = static_cast<uint8_t>(0);
+        Attributes::SpkrMaxLevel::TypeInfo::DecodableType spkrMaxLevel                                   = static_cast<uint8_t>(0);
+        Attributes::SpkrMinLevel::TypeInfo::DecodableType spkrMinLevel                                   = static_cast<uint8_t>(0);
+        Attributes::MicOnOff::TypeInfo::DecodableType micOnOff                                           = static_cast<bool>(0);
+        Attributes::MicCurrentLevel::TypeInfo::DecodableType micCurrentLevel                             = static_cast<uint8_t>(0);
+        Attributes::MicMaxLevel::TypeInfo::DecodableType micMaxLevel                                     = static_cast<uint8_t>(0);
+        Attributes::MicMinLevel::TypeInfo::DecodableType micMinLevel                                     = static_cast<uint8_t>(0);
+        Attributes::MicAGC::TypeInfo::DecodableType micAGC                                               = static_cast<bool>(0);
+        Attributes::ImageRotation::TypeInfo::DecodableType imageRotation                                 = static_cast<uint16_t>(0);
+        Attributes::ImageFlipHorizontal::TypeInfo::DecodableType imageFlipHorizontal                     = static_cast<bool>(0);
+        Attributes::ImageFlipVertical::TypeInfo::DecodableType imageFlipVertical                         = static_cast<bool>(0);
+        Attributes::LocalVideoRecordingEnabled::TypeInfo::DecodableType localVideoRecordingEnabled       = static_cast<bool>(0);
+        Attributes::LocalSnapshotRecordingEnabled::TypeInfo::DecodableType localSnapshotRecordingEnabled = static_cast<bool>(0);
+        Attributes::StatusLight::TypeInfo::DecodableType statusLight                                     = static_cast<bool>(0);
+        Attributes::StatusLightBrightness::TypeInfo::DecodableType statusLightBrightness =
+            static_cast<chip::app::Clusters::Globals::ThreeLevelAutoEnum>(0);
+        Attributes::DepthSensorStatus::TypeInfo::DecodableType depthSensorStatus =
+            static_cast<chip::app::Clusters::CameraAvStreamManagement::TriStateAuto>(0);
+        Attributes::WatermarkEnabled::TypeInfo::DecodableType watermarkEnabled;
+        Attributes::OSDEnabled::TypeInfo::DecodableType OSDEnabled;
+        Attributes::GeneratedCommandList::TypeInfo::DecodableType generatedCommandList;
+        Attributes::AcceptedCommandList::TypeInfo::DecodableType acceptedCommandList;
+        Attributes::EventList::TypeInfo::DecodableType eventList;
+        Attributes::AttributeList::TypeInfo::DecodableType attributeList;
+        Attributes::FeatureMap::TypeInfo::DecodableType featureMap           = static_cast<uint32_t>(0);
+        Attributes::ClusterRevision::TypeInfo::DecodableType clusterRevision = static_cast<uint16_t>(0);
+    };
+};
+} // namespace Attributes
+namespace Events {
+namespace VideoStreamChanged {
+static constexpr PriorityLevel kPriorityLevel = PriorityLevel::Info;
+
+enum class Fields : uint8_t
+{
+    kVideoStreamID  = 0,
+    kStreamType     = 1,
+    kVideoCodec     = 2,
+    kMinFrameRate   = 3,
+    kMaxFrameRate   = 4,
+    kMinResolution  = 5,
+    kMaxResolution  = 6,
+    kMinBitRate     = 7,
+    kMaxBitRate     = 8,
+    kMinFragmentLen = 9,
+    kMaxFragmentLen = 10,
+};
+
+struct Type
+{
+public:
+    static constexpr PriorityLevel GetPriorityLevel() { return kPriorityLevel; }
+    static constexpr EventId GetEventId() { return Events::VideoStreamChanged::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr bool kIsFabricScoped = false;
+
+    uint16_t videoStreamID = static_cast<uint16_t>(0);
+    Optional<StreamTypeEnum> streamType;
+    Optional<VideoCodecEnum> videoCodec;
+    Optional<uint16_t> minFrameRate;
+    Optional<uint16_t> maxFrameRate;
+    Optional<Structs::DimensionStruct::Type> minResolution;
+    Optional<Structs::DimensionStruct::Type> maxResolution;
+    Optional<uint16_t> minBitRate;
+    Optional<uint16_t> maxBitRate;
+    Optional<uint16_t> minFragmentLen;
+    Optional<uint16_t> maxFragmentLen;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+};
+
+struct DecodableType
+{
+public:
+    static constexpr PriorityLevel GetPriorityLevel() { return kPriorityLevel; }
+    static constexpr EventId GetEventId() { return Events::VideoStreamChanged::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    uint16_t videoStreamID = static_cast<uint16_t>(0);
+    Optional<StreamTypeEnum> streamType;
+    Optional<VideoCodecEnum> videoCodec;
+    Optional<uint16_t> minFrameRate;
+    Optional<uint16_t> maxFrameRate;
+    Optional<Structs::DimensionStruct::DecodableType> minResolution;
+    Optional<Structs::DimensionStruct::DecodableType> maxResolution;
+    Optional<uint16_t> minBitRate;
+    Optional<uint16_t> maxBitRate;
+    Optional<uint16_t> minFragmentLen;
+    Optional<uint16_t> maxFragmentLen;
+
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+} // namespace VideoStreamChanged
+namespace AudioStreamChanged {
+static constexpr PriorityLevel kPriorityLevel = PriorityLevel::Info;
+
+enum class Fields : uint8_t
+{
+    kAudioStreamID = 0,
+    kStreamType    = 1,
+    kAudioCodec    = 2,
+    kChannelCount  = 3,
+    kSampleRate    = 4,
+    kBitRate       = 5,
+    kBitDepth      = 6,
+};
+
+struct Type
+{
+public:
+    static constexpr PriorityLevel GetPriorityLevel() { return kPriorityLevel; }
+    static constexpr EventId GetEventId() { return Events::AudioStreamChanged::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr bool kIsFabricScoped = false;
+
+    uint16_t audioStreamID = static_cast<uint16_t>(0);
+    Optional<StreamTypeEnum> streamType;
+    Optional<AudioCodecEnum> audioCodec;
+    Optional<uint8_t> channelCount;
+    Optional<uint32_t> sampleRate;
+    Optional<uint32_t> bitRate;
+    Optional<uint8_t> bitDepth;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+};
+
+struct DecodableType
+{
+public:
+    static constexpr PriorityLevel GetPriorityLevel() { return kPriorityLevel; }
+    static constexpr EventId GetEventId() { return Events::AudioStreamChanged::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    uint16_t audioStreamID = static_cast<uint16_t>(0);
+    Optional<StreamTypeEnum> streamType;
+    Optional<AudioCodecEnum> audioCodec;
+    Optional<uint8_t> channelCount;
+    Optional<uint32_t> sampleRate;
+    Optional<uint32_t> bitRate;
+    Optional<uint8_t> bitDepth;
+
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+} // namespace AudioStreamChanged
+namespace SnapshotStreamChanged {
+static constexpr PriorityLevel kPriorityLevel = PriorityLevel::Info;
+
+enum class Fields : uint8_t
+{
+    kSnapshotStreamID = 0,
+    kImageCodec       = 1,
+    kFrameRate        = 2,
+    kBitRate          = 3,
+    kMinResolution    = 4,
+    kMaxResolution    = 5,
+    kQuality          = 6,
+};
+
+struct Type
+{
+public:
+    static constexpr PriorityLevel GetPriorityLevel() { return kPriorityLevel; }
+    static constexpr EventId GetEventId() { return Events::SnapshotStreamChanged::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+    static constexpr bool kIsFabricScoped = false;
+
+    uint16_t snapshotStreamID = static_cast<uint16_t>(0);
+    Optional<ImageCodecEnum> imageCodec;
+    Optional<uint16_t> frameRate;
+    Optional<uint32_t> bitRate;
+    Optional<Structs::DimensionStruct::Type> minResolution;
+    Optional<Structs::DimensionStruct::Type> maxResolution;
+    Optional<uint8_t> quality;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+};
+
+struct DecodableType
+{
+public:
+    static constexpr PriorityLevel GetPriorityLevel() { return kPriorityLevel; }
+    static constexpr EventId GetEventId() { return Events::SnapshotStreamChanged::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvStreamManagement::Id; }
+
+    uint16_t snapshotStreamID = static_cast<uint16_t>(0);
+    Optional<ImageCodecEnum> imageCodec;
+    Optional<uint16_t> frameRate;
+    Optional<uint32_t> bitRate;
+    Optional<Structs::DimensionStruct::DecodableType> minResolution;
+    Optional<Structs::DimensionStruct::DecodableType> maxResolution;
+    Optional<uint8_t> quality;
+
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+} // namespace SnapshotStreamChanged
+} // namespace Events
+} // namespace CameraAvStreamManagement
+namespace CameraAvSettingsUserLevelManagement {
+namespace Structs {
+namespace MPTZStruct {
+enum class Fields : uint8_t
+{
+    kMPan  = 0,
+    kMTilt = 1,
+    kMZoom = 2,
+};
+
+struct Type
+{
+public:
+    Optional<DataModel::Nullable<int16_t>> MPan;
+    Optional<DataModel::Nullable<int8_t>> MTilt;
+    Optional<DataModel::Nullable<uint16_t>> MZoom;
+
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+
+    static constexpr bool kIsFabricScoped = false;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+};
+
+using DecodableType = Type;
+
+} // namespace MPTZStruct
+namespace PerStreamStruct = Clusters::detail::Structs::PerStreamStruct;
+namespace ViewportStruct  = Clusters::detail::Structs::ViewportStruct;
+} // namespace Structs
+
+namespace Commands {
+// Forward-declarations so we can reference these later.
+
+namespace MptzSet {
+struct Type;
+struct DecodableType;
+} // namespace MptzSet
+
+namespace MptzRelativeMove {
+struct Type;
+struct DecodableType;
+} // namespace MptzRelativeMove
+
+namespace SetAsPreset {
+struct Type;
+struct DecodableType;
+} // namespace SetAsPreset
+
+namespace DptzSetViewport {
+struct Type;
+struct DecodableType;
+} // namespace DptzSetViewport
+
+namespace DptzRelativeMove {
+struct Type;
+struct DecodableType;
+} // namespace DptzRelativeMove
+
+} // namespace Commands
+
+namespace Commands {
+namespace MptzSet {
+enum class Fields : uint8_t
+{
+    kNewPTZ   = 0,
+    kPresetID = 1,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::MptzSet::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvSettingsUserLevelManagement::Id; }
+
+    Optional<Structs::MPTZStruct::Type> newPTZ;
+    Optional<uint8_t> presetID;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = DataModel::NullObjectType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::MptzSet::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvSettingsUserLevelManagement::Id; }
+
+    Optional<Structs::MPTZStruct::DecodableType> newPTZ;
+    Optional<uint8_t> presetID;
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace MptzSet
+namespace MptzRelativeMove {
+enum class Fields : uint8_t
+{
+    kPan  = 0,
+    kTilt = 1,
+    kZoom = 2,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::MptzRelativeMove::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvSettingsUserLevelManagement::Id; }
+
+    int16_t pan  = static_cast<int16_t>(0);
+    int16_t tilt = static_cast<int16_t>(0);
+    int16_t zoom = static_cast<int16_t>(0);
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = DataModel::NullObjectType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::MptzRelativeMove::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvSettingsUserLevelManagement::Id; }
+
+    int16_t pan  = static_cast<int16_t>(0);
+    int16_t tilt = static_cast<int16_t>(0);
+    int16_t zoom = static_cast<int16_t>(0);
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace MptzRelativeMove
+namespace SetAsPreset {
+enum class Fields : uint8_t
+{
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::SetAsPreset::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvSettingsUserLevelManagement::Id; }
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = DataModel::NullObjectType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::SetAsPreset::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvSettingsUserLevelManagement::Id; }
+
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace SetAsPreset
+namespace DptzSetViewport {
+enum class Fields : uint8_t
+{
+    kVideoStreamID = 0,
+    kViewport      = 1,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::DptzSetViewport::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvSettingsUserLevelManagement::Id; }
+
+    uint16_t videoStreamID = static_cast<uint16_t>(0);
+    Structs::ViewportStruct::Type viewport;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = DataModel::NullObjectType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::DptzSetViewport::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvSettingsUserLevelManagement::Id; }
+
+    uint16_t videoStreamID = static_cast<uint16_t>(0);
+    Structs::ViewportStruct::DecodableType viewport;
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace DptzSetViewport
+namespace DptzRelativeMove {
+enum class Fields : uint8_t
+{
+    kVideoStreamID = 0,
+    kPan           = 1,
+    kTilt          = 2,
+    kZoom          = 3,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::DptzRelativeMove::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvSettingsUserLevelManagement::Id; }
+
+    uint16_t videoStreamID = static_cast<uint16_t>(0);
+    int16_t pan            = static_cast<int16_t>(0);
+    int16_t tilt           = static_cast<int16_t>(0);
+    int8_t zoom            = static_cast<int8_t>(0);
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = DataModel::NullObjectType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::DptzRelativeMove::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvSettingsUserLevelManagement::Id; }
+
+    uint16_t videoStreamID = static_cast<uint16_t>(0);
+    int16_t pan            = static_cast<int16_t>(0);
+    int16_t tilt           = static_cast<int16_t>(0);
+    int8_t zoom            = static_cast<int8_t>(0);
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace DptzRelativeMove
+} // namespace Commands
+
+namespace Attributes {
+
+namespace Mptz {
+struct TypeInfo
+{
+    using Type             = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Structs::MPTZStruct::Type;
+    using DecodableType    = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Structs::MPTZStruct::DecodableType;
+    using DecodableArgType = const chip::app::Clusters::CameraAvSettingsUserLevelManagement::Structs::MPTZStruct::DecodableType &;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvSettingsUserLevelManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::Mptz::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace Mptz
+namespace MaxPresets {
+struct TypeInfo
+{
+    using Type             = uint8_t;
+    using DecodableType    = uint8_t;
+    using DecodableArgType = uint8_t;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvSettingsUserLevelManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::MaxPresets::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace MaxPresets
+namespace PresetMptzTable {
+struct TypeInfo
+{
+    using Type =
+        chip::app::DataModel::List<const chip::app::Clusters::CameraAvSettingsUserLevelManagement::Structs::MPTZStruct::Type>;
+    using DecodableType = chip::app::DataModel::DecodableList<
+        chip::app::Clusters::CameraAvSettingsUserLevelManagement::Structs::MPTZStruct::DecodableType>;
+    using DecodableArgType = const chip::app::DataModel::DecodableList<
+        chip::app::Clusters::CameraAvSettingsUserLevelManagement::Structs::MPTZStruct::DecodableType> &;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvSettingsUserLevelManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::PresetMptzTable::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace PresetMptzTable
+namespace MptzRelativeMove {
+struct TypeInfo
+{
+    using Type             = bool;
+    using DecodableType    = bool;
+    using DecodableArgType = bool;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvSettingsUserLevelManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::MptzRelativeMove::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace MptzRelativeMove
+namespace DptzRelativeMove {
+struct TypeInfo
+{
+    using Type =
+        chip::app::DataModel::List<const chip::app::Clusters::CameraAvSettingsUserLevelManagement::Structs::PerStreamStruct::Type>;
+    using DecodableType = chip::app::DataModel::DecodableList<
+        chip::app::Clusters::CameraAvSettingsUserLevelManagement::Structs::PerStreamStruct::DecodableType>;
+    using DecodableArgType = const chip::app::DataModel::DecodableList<
+        chip::app::Clusters::CameraAvSettingsUserLevelManagement::Structs::PerStreamStruct::DecodableType> &;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvSettingsUserLevelManagement::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::DptzRelativeMove::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace DptzRelativeMove
+namespace GeneratedCommandList {
+struct TypeInfo : public Clusters::Globals::Attributes::GeneratedCommandList::TypeInfo
+{
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvSettingsUserLevelManagement::Id; }
+};
+} // namespace GeneratedCommandList
+namespace AcceptedCommandList {
+struct TypeInfo : public Clusters::Globals::Attributes::AcceptedCommandList::TypeInfo
+{
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvSettingsUserLevelManagement::Id; }
+};
+} // namespace AcceptedCommandList
+namespace EventList {
+struct TypeInfo : public Clusters::Globals::Attributes::EventList::TypeInfo
+{
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvSettingsUserLevelManagement::Id; }
+};
+} // namespace EventList
+namespace AttributeList {
+struct TypeInfo : public Clusters::Globals::Attributes::AttributeList::TypeInfo
+{
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvSettingsUserLevelManagement::Id; }
+};
+} // namespace AttributeList
+namespace FeatureMap {
+struct TypeInfo : public Clusters::Globals::Attributes::FeatureMap::TypeInfo
+{
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvSettingsUserLevelManagement::Id; }
+};
+} // namespace FeatureMap
+namespace ClusterRevision {
+struct TypeInfo : public Clusters::Globals::Attributes::ClusterRevision::TypeInfo
+{
+    static constexpr ClusterId GetClusterId() { return Clusters::CameraAvSettingsUserLevelManagement::Id; }
+};
+} // namespace ClusterRevision
+
+struct TypeInfo
+{
+    struct DecodableType
+    {
+        static constexpr ClusterId GetClusterId() { return Clusters::CameraAvSettingsUserLevelManagement::Id; }
+
+        CHIP_ERROR Decode(TLV::TLVReader & reader, const ConcreteAttributePath & path);
+
+        Attributes::Mptz::TypeInfo::DecodableType mptz;
+        Attributes::MaxPresets::TypeInfo::DecodableType maxPresets = static_cast<uint8_t>(0);
+        Attributes::PresetMptzTable::TypeInfo::DecodableType presetMptzTable;
+        Attributes::MptzRelativeMove::TypeInfo::DecodableType mptzRelativeMove = static_cast<bool>(0);
+        Attributes::DptzRelativeMove::TypeInfo::DecodableType dptzRelativeMove;
+        Attributes::GeneratedCommandList::TypeInfo::DecodableType generatedCommandList;
+        Attributes::AcceptedCommandList::TypeInfo::DecodableType acceptedCommandList;
+        Attributes::EventList::TypeInfo::DecodableType eventList;
+        Attributes::AttributeList::TypeInfo::DecodableType attributeList;
+        Attributes::FeatureMap::TypeInfo::DecodableType featureMap           = static_cast<uint32_t>(0);
+        Attributes::ClusterRevision::TypeInfo::DecodableType clusterRevision = static_cast<uint16_t>(0);
+    };
+};
+} // namespace Attributes
+} // namespace CameraAvSettingsUserLevelManagement
+namespace WebRTCTransportProvider {
+namespace Structs {
+namespace ICEServerStruct     = Clusters::detail::Structs::ICEServerStruct;
+namespace WebRTCSessionStruct = Clusters::detail::Structs::WebRTCSessionStruct;
+} // namespace Structs
+
+namespace Commands {
+// Forward-declarations so we can reference these later.
+
+namespace WebRTCSolicitOffer {
+struct Type;
+struct DecodableType;
+} // namespace WebRTCSolicitOffer
+
+namespace WebRTCSolicitOfferResponse {
+struct Type;
+struct DecodableType;
+} // namespace WebRTCSolicitOfferResponse
+
+namespace WebRTCProvideOffer {
+struct Type;
+struct DecodableType;
+} // namespace WebRTCProvideOffer
+
+namespace WebRTCProvideOfferResponse {
+struct Type;
+struct DecodableType;
+} // namespace WebRTCProvideOfferResponse
+
+namespace WebRTCProvideAnswer {
+struct Type;
+struct DecodableType;
+} // namespace WebRTCProvideAnswer
+
+namespace WebRTCProvideICECandidate {
+struct Type;
+struct DecodableType;
+} // namespace WebRTCProvideICECandidate
+
+namespace WebRTCEndSession {
+struct Type;
+struct DecodableType;
+} // namespace WebRTCEndSession
+
+} // namespace Commands
+
+namespace Commands {
+namespace WebRTCSolicitOffer {
+enum class Fields : uint8_t
+{
+    kStreamType         = 0,
+    kVideoStreamID      = 1,
+    kAudioStreamID      = 2,
+    kICEServers         = 3,
+    kICETransportPolicy = 4,
+    kMetadataOptions    = 5,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::WebRTCSolicitOffer::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportProvider::Id; }
+
+    StreamTypeEnum streamType = static_cast<StreamTypeEnum>(0);
+    Optional<DataModel::Nullable<uint16_t>> videoStreamID;
+    Optional<DataModel::Nullable<uint16_t>> audioStreamID;
+    Optional<DataModel::List<const Structs::ICEServerStruct::Type>> ICEServers;
+    Optional<chip::CharSpan> ICETransportPolicy;
+    Optional<chip::BitMask<WebRTCMetadataOptions>> metadataOptions;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = Clusters::WebRTCTransportProvider::Commands::WebRTCSolicitOfferResponse::DecodableType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::WebRTCSolicitOffer::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportProvider::Id; }
+
+    StreamTypeEnum streamType = static_cast<StreamTypeEnum>(0);
+    Optional<DataModel::Nullable<uint16_t>> videoStreamID;
+    Optional<DataModel::Nullable<uint16_t>> audioStreamID;
+    Optional<DataModel::DecodableList<Structs::ICEServerStruct::DecodableType>> ICEServers;
+    Optional<chip::CharSpan> ICETransportPolicy;
+    Optional<chip::BitMask<WebRTCMetadataOptions>> metadataOptions;
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace WebRTCSolicitOffer
+namespace WebRTCSolicitOfferResponse {
+enum class Fields : uint8_t
+{
+    kWebRTCSessionID = 0,
+    kDeferredOffer   = 1,
+    kVideoStreamID   = 2,
+    kAudioStreamID   = 3,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::WebRTCSolicitOfferResponse::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportProvider::Id; }
+
+    uint16_t webRTCSessionID = static_cast<uint16_t>(0);
+    bool deferredOffer       = static_cast<bool>(0);
+    Optional<DataModel::Nullable<uint16_t>> videoStreamID;
+    Optional<DataModel::Nullable<uint16_t>> audioStreamID;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = DataModel::NullObjectType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::WebRTCSolicitOfferResponse::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportProvider::Id; }
+
+    uint16_t webRTCSessionID = static_cast<uint16_t>(0);
+    bool deferredOffer       = static_cast<bool>(0);
+    Optional<DataModel::Nullable<uint16_t>> videoStreamID;
+    Optional<DataModel::Nullable<uint16_t>> audioStreamID;
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace WebRTCSolicitOfferResponse
+namespace WebRTCProvideOffer {
+enum class Fields : uint8_t
+{
+    kWebRTCSessionID    = 0,
+    kSdp                = 1,
+    kStreamType         = 2,
+    kVideoStreamID      = 3,
+    kAudioStreamID      = 4,
+    kICEServers         = 5,
+    kICETransportPolicy = 6,
+    kMetadataOptions    = 7,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::WebRTCProvideOffer::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportProvider::Id; }
+
+    DataModel::Nullable<uint16_t> webRTCSessionID;
+    chip::CharSpan sdp;
+    StreamTypeEnum streamType = static_cast<StreamTypeEnum>(0);
+    Optional<DataModel::Nullable<uint16_t>> videoStreamID;
+    Optional<DataModel::Nullable<uint16_t>> audioStreamID;
+    Optional<DataModel::List<const Structs::ICEServerStruct::Type>> ICEServers;
+    Optional<chip::CharSpan> ICETransportPolicy;
+    Optional<chip::BitMask<WebRTCMetadataOptions>> metadataOptions;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = Clusters::WebRTCTransportProvider::Commands::WebRTCProvideOfferResponse::DecodableType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::WebRTCProvideOffer::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportProvider::Id; }
+
+    DataModel::Nullable<uint16_t> webRTCSessionID;
+    chip::CharSpan sdp;
+    StreamTypeEnum streamType = static_cast<StreamTypeEnum>(0);
+    Optional<DataModel::Nullable<uint16_t>> videoStreamID;
+    Optional<DataModel::Nullable<uint16_t>> audioStreamID;
+    Optional<DataModel::DecodableList<Structs::ICEServerStruct::DecodableType>> ICEServers;
+    Optional<chip::CharSpan> ICETransportPolicy;
+    Optional<chip::BitMask<WebRTCMetadataOptions>> metadataOptions;
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace WebRTCProvideOffer
+namespace WebRTCProvideOfferResponse {
+enum class Fields : uint8_t
+{
+    kWebRTCSessionID = 0,
+    kVideoStreamID   = 1,
+    kAudioStreamID   = 2,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::WebRTCProvideOfferResponse::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportProvider::Id; }
+
+    uint16_t webRTCSessionID = static_cast<uint16_t>(0);
+    uint16_t videoStreamID   = static_cast<uint16_t>(0);
+    uint16_t audioStreamID   = static_cast<uint16_t>(0);
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = DataModel::NullObjectType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::WebRTCProvideOfferResponse::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportProvider::Id; }
+
+    uint16_t webRTCSessionID = static_cast<uint16_t>(0);
+    uint16_t videoStreamID   = static_cast<uint16_t>(0);
+    uint16_t audioStreamID   = static_cast<uint16_t>(0);
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace WebRTCProvideOfferResponse
+namespace WebRTCProvideAnswer {
+enum class Fields : uint8_t
+{
+    kWebRTCSessionID = 0,
+    kSdp             = 1,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::WebRTCProvideAnswer::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportProvider::Id; }
+
+    uint16_t webRTCSessionID = static_cast<uint16_t>(0);
+    chip::CharSpan sdp;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = DataModel::NullObjectType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::WebRTCProvideAnswer::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportProvider::Id; }
+
+    uint16_t webRTCSessionID = static_cast<uint16_t>(0);
+    chip::CharSpan sdp;
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace WebRTCProvideAnswer
+namespace WebRTCProvideICECandidate {
+enum class Fields : uint8_t
+{
+    kWebRTCSessionID = 0,
+    kICECandidate    = 1,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::WebRTCProvideICECandidate::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportProvider::Id; }
+
+    uint16_t webRTCSessionID = static_cast<uint16_t>(0);
+    chip::CharSpan ICECandidate;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = DataModel::NullObjectType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::WebRTCProvideICECandidate::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportProvider::Id; }
+
+    uint16_t webRTCSessionID = static_cast<uint16_t>(0);
+    chip::CharSpan ICECandidate;
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace WebRTCProvideICECandidate
+namespace WebRTCEndSession {
+enum class Fields : uint8_t
+{
+    kWebRTCSessionID = 0,
+    kReason          = 1,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::WebRTCEndSession::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportProvider::Id; }
+
+    uint16_t webRTCSessionID   = static_cast<uint16_t>(0);
+    WebRTCEndReasonEnum reason = static_cast<WebRTCEndReasonEnum>(0);
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = DataModel::NullObjectType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::WebRTCEndSession::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportProvider::Id; }
+
+    uint16_t webRTCSessionID   = static_cast<uint16_t>(0);
+    WebRTCEndReasonEnum reason = static_cast<WebRTCEndReasonEnum>(0);
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace WebRTCEndSession
+} // namespace Commands
+
+namespace Attributes {
+
+namespace CurrentSessions {
+struct TypeInfo
+{
+    using Type = chip::app::DataModel::List<const chip::app::Clusters::WebRTCTransportProvider::Structs::WebRTCSessionStruct::Type>;
+    using DecodableType = chip::app::DataModel::DecodableList<
+        chip::app::Clusters::WebRTCTransportProvider::Structs::WebRTCSessionStruct::DecodableType>;
+    using DecodableArgType = const chip::app::DataModel::DecodableList<
+        chip::app::Clusters::WebRTCTransportProvider::Structs::WebRTCSessionStruct::DecodableType> &;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportProvider::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::CurrentSessions::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace CurrentSessions
+namespace GeneratedCommandList {
+struct TypeInfo : public Clusters::Globals::Attributes::GeneratedCommandList::TypeInfo
+{
+    static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportProvider::Id; }
+};
+} // namespace GeneratedCommandList
+namespace AcceptedCommandList {
+struct TypeInfo : public Clusters::Globals::Attributes::AcceptedCommandList::TypeInfo
+{
+    static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportProvider::Id; }
+};
+} // namespace AcceptedCommandList
+namespace EventList {
+struct TypeInfo : public Clusters::Globals::Attributes::EventList::TypeInfo
+{
+    static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportProvider::Id; }
+};
+} // namespace EventList
+namespace AttributeList {
+struct TypeInfo : public Clusters::Globals::Attributes::AttributeList::TypeInfo
+{
+    static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportProvider::Id; }
+};
+} // namespace AttributeList
+namespace FeatureMap {
+struct TypeInfo : public Clusters::Globals::Attributes::FeatureMap::TypeInfo
+{
+    static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportProvider::Id; }
+};
+} // namespace FeatureMap
+namespace ClusterRevision {
+struct TypeInfo : public Clusters::Globals::Attributes::ClusterRevision::TypeInfo
+{
+    static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportProvider::Id; }
+};
+} // namespace ClusterRevision
+
+struct TypeInfo
+{
+    struct DecodableType
+    {
+        static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportProvider::Id; }
+
+        CHIP_ERROR Decode(TLV::TLVReader & reader, const ConcreteAttributePath & path);
+
+        Attributes::CurrentSessions::TypeInfo::DecodableType currentSessions;
+        Attributes::GeneratedCommandList::TypeInfo::DecodableType generatedCommandList;
+        Attributes::AcceptedCommandList::TypeInfo::DecodableType acceptedCommandList;
+        Attributes::EventList::TypeInfo::DecodableType eventList;
+        Attributes::AttributeList::TypeInfo::DecodableType attributeList;
+        Attributes::FeatureMap::TypeInfo::DecodableType featureMap           = static_cast<uint32_t>(0);
+        Attributes::ClusterRevision::TypeInfo::DecodableType clusterRevision = static_cast<uint16_t>(0);
+    };
+};
+} // namespace Attributes
+} // namespace WebRTCTransportProvider
+namespace WebRTCTransportRequestor {
+namespace Structs {
+namespace ICEServerStruct     = Clusters::detail::Structs::ICEServerStruct;
+namespace WebRTCSessionStruct = Clusters::detail::Structs::WebRTCSessionStruct;
+} // namespace Structs
+
+namespace Commands {
+// Forward-declarations so we can reference these later.
+
+namespace WebRTCOffer {
+struct Type;
+struct DecodableType;
+} // namespace WebRTCOffer
+
+namespace WebRTCAnswer {
+struct Type;
+struct DecodableType;
+} // namespace WebRTCAnswer
+
+namespace WebRTCICECandidate {
+struct Type;
+struct DecodableType;
+} // namespace WebRTCICECandidate
+
+namespace WebRTCEnd {
+struct Type;
+struct DecodableType;
+} // namespace WebRTCEnd
+
+} // namespace Commands
+
+namespace Commands {
+namespace WebRTCOffer {
+enum class Fields : uint8_t
+{
+    kWebRTCSessionID    = 0,
+    kSdp                = 1,
+    kICEServers         = 2,
+    kICETransportPolicy = 3,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::WebRTCOffer::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportRequestor::Id; }
+
+    uint16_t webRTCSessionID = static_cast<uint16_t>(0);
+    chip::CharSpan sdp;
+    Optional<DataModel::List<const Structs::ICEServerStruct::Type>> ICEServers;
+    Optional<chip::CharSpan> ICETransportPolicy;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = DataModel::NullObjectType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::WebRTCOffer::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportRequestor::Id; }
+
+    uint16_t webRTCSessionID = static_cast<uint16_t>(0);
+    chip::CharSpan sdp;
+    Optional<DataModel::DecodableList<Structs::ICEServerStruct::DecodableType>> ICEServers;
+    Optional<chip::CharSpan> ICETransportPolicy;
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace WebRTCOffer
+namespace WebRTCAnswer {
+enum class Fields : uint8_t
+{
+    kWebRTCSessionID = 0,
+    kSdp             = 1,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::WebRTCAnswer::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportRequestor::Id; }
+
+    uint16_t webRTCSessionID = static_cast<uint16_t>(0);
+    chip::CharSpan sdp;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = DataModel::NullObjectType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::WebRTCAnswer::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportRequestor::Id; }
+
+    uint16_t webRTCSessionID = static_cast<uint16_t>(0);
+    chip::CharSpan sdp;
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace WebRTCAnswer
+namespace WebRTCICECandidate {
+enum class Fields : uint8_t
+{
+    kWebRTCSessionID = 0,
+    kICECandidate    = 1,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::WebRTCICECandidate::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportRequestor::Id; }
+
+    uint16_t webRTCSessionID = static_cast<uint16_t>(0);
+    chip::CharSpan ICECandidate;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = DataModel::NullObjectType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::WebRTCICECandidate::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportRequestor::Id; }
+
+    uint16_t webRTCSessionID = static_cast<uint16_t>(0);
+    chip::CharSpan ICECandidate;
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace WebRTCICECandidate
+namespace WebRTCEnd {
+enum class Fields : uint8_t
+{
+    kWebRTCSessionID = 0,
+    kReason          = 1,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::WebRTCEnd::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportRequestor::Id; }
+
+    uint16_t webRTCSessionID   = static_cast<uint16_t>(0);
+    WebRTCEndReasonEnum reason = static_cast<WebRTCEndReasonEnum>(0);
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = DataModel::NullObjectType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::WebRTCEnd::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportRequestor::Id; }
+
+    uint16_t webRTCSessionID   = static_cast<uint16_t>(0);
+    WebRTCEndReasonEnum reason = static_cast<WebRTCEndReasonEnum>(0);
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace WebRTCEnd
+} // namespace Commands
+
+namespace Attributes {
+
+namespace CurrentSessions {
+struct TypeInfo
+{
+    using Type =
+        chip::app::DataModel::List<const chip::app::Clusters::WebRTCTransportRequestor::Structs::WebRTCSessionStruct::Type>;
+    using DecodableType = chip::app::DataModel::DecodableList<
+        chip::app::Clusters::WebRTCTransportRequestor::Structs::WebRTCSessionStruct::DecodableType>;
+    using DecodableArgType = const chip::app::DataModel::DecodableList<
+        chip::app::Clusters::WebRTCTransportRequestor::Structs::WebRTCSessionStruct::DecodableType> &;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportRequestor::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::CurrentSessions::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace CurrentSessions
+namespace GeneratedCommandList {
+struct TypeInfo : public Clusters::Globals::Attributes::GeneratedCommandList::TypeInfo
+{
+    static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportRequestor::Id; }
+};
+} // namespace GeneratedCommandList
+namespace AcceptedCommandList {
+struct TypeInfo : public Clusters::Globals::Attributes::AcceptedCommandList::TypeInfo
+{
+    static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportRequestor::Id; }
+};
+} // namespace AcceptedCommandList
+namespace EventList {
+struct TypeInfo : public Clusters::Globals::Attributes::EventList::TypeInfo
+{
+    static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportRequestor::Id; }
+};
+} // namespace EventList
+namespace AttributeList {
+struct TypeInfo : public Clusters::Globals::Attributes::AttributeList::TypeInfo
+{
+    static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportRequestor::Id; }
+};
+} // namespace AttributeList
+namespace FeatureMap {
+struct TypeInfo : public Clusters::Globals::Attributes::FeatureMap::TypeInfo
+{
+    static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportRequestor::Id; }
+};
+} // namespace FeatureMap
+namespace ClusterRevision {
+struct TypeInfo : public Clusters::Globals::Attributes::ClusterRevision::TypeInfo
+{
+    static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportRequestor::Id; }
+};
+} // namespace ClusterRevision
+
+struct TypeInfo
+{
+    struct DecodableType
+    {
+        static constexpr ClusterId GetClusterId() { return Clusters::WebRTCTransportRequestor::Id; }
+
+        CHIP_ERROR Decode(TLV::TLVReader & reader, const ConcreteAttributePath & path);
+
+        Attributes::CurrentSessions::TypeInfo::DecodableType currentSessions;
+        Attributes::GeneratedCommandList::TypeInfo::DecodableType generatedCommandList;
+        Attributes::AcceptedCommandList::TypeInfo::DecodableType acceptedCommandList;
+        Attributes::EventList::TypeInfo::DecodableType eventList;
+        Attributes::AttributeList::TypeInfo::DecodableType attributeList;
+        Attributes::FeatureMap::TypeInfo::DecodableType featureMap           = static_cast<uint32_t>(0);
+        Attributes::ClusterRevision::TypeInfo::DecodableType clusterRevision = static_cast<uint16_t>(0);
+    };
+};
+} // namespace Attributes
+} // namespace WebRTCTransportRequestor
+namespace PushAvStreamTransport {
+namespace Structs {
+namespace PushAVStreamTransportMotionTriggerTimeControlStruct {
+enum class Fields : uint8_t
+{
+    kInitialDuration      = 0,
+    kAugmentationDuration = 1,
+    kMaxDuration          = 2,
+    kBlindDuration        = 3,
+};
+
+struct Type
+{
+public:
+    uint16_t initialDuration      = static_cast<uint16_t>(0);
+    uint16_t augmentationDuration = static_cast<uint16_t>(0);
+    uint32_t maxDuration          = static_cast<uint32_t>(0);
+    uint16_t blindDuration        = static_cast<uint16_t>(0);
+
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+
+    static constexpr bool kIsFabricScoped = false;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+};
+
+using DecodableType = Type;
+
+} // namespace PushAVStreamTransportMotionTriggerTimeControlStruct
+namespace PushAVStreamTransportMetadataOptionsStruct {
+enum class Fields : uint8_t
+{
+    kMultiplexing                   = 0,
+    kIncludeMotionZones             = 1,
+    kEnableMetadataPrivacySensitive = 2,
+};
+
+struct Type
+{
+public:
+    PushAVStreamTransportStreamMultiplexingEnum multiplexing = static_cast<PushAVStreamTransportStreamMultiplexingEnum>(0);
+    bool includeMotionZones                                  = static_cast<bool>(0);
+    bool enableMetadataPrivacySensitive                      = static_cast<bool>(0);
+
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+
+    static constexpr bool kIsFabricScoped = false;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+};
+
+using DecodableType = Type;
+
+} // namespace PushAVStreamTransportMetadataOptionsStruct
+namespace PushAVStreamTransportTriggerOptionsStruct {
+enum class Fields : uint8_t
+{
+    kTriggerType       = 0,
+    kMotionZones       = 1,
+    kMotionSensitivity = 2,
+    kMotionTimeControl = 3,
+    kActivationReason  = 4,
+};
+
+struct Type
+{
+public:
+    PushAVStreamTransportTriggerTypeEnum triggerType = static_cast<PushAVStreamTransportTriggerTypeEnum>(0);
+    Optional<DataModel::Nullable<DataModel::List<const uint16_t>>> motionZones;
+    Optional<DataModel::Nullable<uint8_t>> motionSensitivity;
+    Optional<DataModel::Nullable<Structs::PushAVStreamTransportMotionTriggerTimeControlStruct::Type>> motionTimeControl;
+    Optional<DataModel::Nullable<PushAVStreamTransportTriggerActivationReasonEnum>> activationReason;
+
+    static constexpr bool kIsFabricScoped = false;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+};
+
+struct DecodableType
+{
+public:
+    PushAVStreamTransportTriggerTypeEnum triggerType = static_cast<PushAVStreamTransportTriggerTypeEnum>(0);
+    Optional<DataModel::Nullable<DataModel::DecodableList<uint16_t>>> motionZones;
+    Optional<DataModel::Nullable<uint8_t>> motionSensitivity;
+    Optional<DataModel::Nullable<Structs::PushAVStreamTransportMotionTriggerTimeControlStruct::DecodableType>> motionTimeControl;
+    Optional<DataModel::Nullable<PushAVStreamTransportTriggerActivationReasonEnum>> activationReason;
+
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+
+    static constexpr bool kIsFabricScoped = false;
+};
+
+} // namespace PushAVStreamTransportTriggerOptionsStruct
+namespace PushAVStreamTransportCMAFContainerOptionsStruct {
+enum class Fields : uint8_t
+{
+    kChunkDuration = 0,
+    kCENCKey       = 1,
+};
+
+struct Type
+{
+public:
+    uint16_t chunkDuration = static_cast<uint16_t>(0);
+    Optional<DataModel::Nullable<chip::ByteSpan>> CENCKey;
+
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+
+    static constexpr bool kIsFabricScoped = false;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+};
+
+using DecodableType = Type;
+
+} // namespace PushAVStreamTransportCMAFContainerOptionsStruct
+namespace PushAVStreamTransportContainerOptionsStruct {
+enum class Fields : uint8_t
+{
+    kContainerType        = 0,
+    kCMAFContainerOptions = 1,
+};
+
+struct Type
+{
+public:
+    PushAVStreamTransportContainerFormatEnum containerType = static_cast<PushAVStreamTransportContainerFormatEnum>(0);
+    Optional<DataModel::Nullable<Structs::PushAVStreamTransportCMAFContainerOptionsStruct::Type>> CMAFContainerOptions;
+
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+
+    static constexpr bool kIsFabricScoped = false;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+};
+
+using DecodableType = Type;
+
+} // namespace PushAVStreamTransportContainerOptionsStruct
+namespace PushAVStreamTransportOptionsStruct {
+enum class Fields : uint8_t
+{
+    kStreamType       = 0,
+    kVideoStreamID    = 1,
+    kAudioStreamID    = 2,
+    kTLSEndpointID    = 3,
+    kUrl              = 4,
+    kTriggerOptions   = 5,
+    kContainerFormat  = 6,
+    kIngestMethod     = 7,
+    kContainerOptions = 8,
+    kMetadataOptions  = 9,
+    kExpiryTime       = 10,
+};
+
+struct Type
+{
+public:
+    StreamTypeEnum streamType = static_cast<StreamTypeEnum>(0);
+    Optional<DataModel::Nullable<uint16_t>> videoStreamID;
+    Optional<DataModel::Nullable<uint16_t>> audioStreamID;
+    uint16_t TLSEndpointID = static_cast<uint16_t>(0);
+    chip::CharSpan url;
+    Structs::PushAVStreamTransportTriggerOptionsStruct::Type triggerOptions;
+    PushAVStreamTransportContainerFormatEnum containerFormat = static_cast<PushAVStreamTransportContainerFormatEnum>(0);
+    PushAVStreamTransportIngestMethodEnum ingestMethod       = static_cast<PushAVStreamTransportIngestMethodEnum>(0);
+    Structs::PushAVStreamTransportContainerOptionsStruct::Type containerOptions;
+    Optional<DataModel::Nullable<Structs::PushAVStreamTransportMetadataOptionsStruct::Type>> metadataOptions;
+    Optional<DataModel::Nullable<uint32_t>> expiryTime;
+
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+
+    static constexpr bool kIsFabricScoped = false;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+};
+
+using DecodableType = Type;
+
+} // namespace PushAVStreamTransportOptionsStruct
+namespace PushAVStreamConfigurationStruct {
+enum class Fields : uint8_t
+{
+    kConnectionID           = 0,
+    kStreamTransportStatus  = 1,
+    kStreamTransportOptions = 2,
+};
+
+struct Type
+{
+public:
+    uint16_t connectionID                                 = static_cast<uint16_t>(0);
+    PushAVStreamTransportStatusEnum streamTransportStatus = static_cast<PushAVStreamTransportStatusEnum>(0);
+    Structs::PushAVStreamTransportOptionsStruct::Type streamTransportOptions;
+
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+
+    static constexpr bool kIsFabricScoped = false;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+};
+
+using DecodableType = Type;
+
+} // namespace PushAVStreamConfigurationStruct
+} // namespace Structs
+
+namespace Commands {
+// Forward-declarations so we can reference these later.
+
+namespace AllocatePushTransport {
+struct Type;
+struct DecodableType;
+} // namespace AllocatePushTransport
+
+namespace AllocatePushTransportResponse {
+struct Type;
+struct DecodableType;
+} // namespace AllocatePushTransportResponse
+
+namespace DeallocatePushTransport {
+struct Type;
+struct DecodableType;
+} // namespace DeallocatePushTransport
+
+namespace ModifyPushTransport {
+struct Type;
+struct DecodableType;
+} // namespace ModifyPushTransport
+
+namespace SetTransportStatus {
+struct Type;
+struct DecodableType;
+} // namespace SetTransportStatus
+
+namespace ManuallyTriggerTransport {
+struct Type;
+struct DecodableType;
+} // namespace ManuallyTriggerTransport
+
+namespace FindStreamConfiguration {
+struct Type;
+struct DecodableType;
+} // namespace FindStreamConfiguration
+
+namespace FindStreamConfigurationResponse {
+struct Type;
+struct DecodableType;
+} // namespace FindStreamConfigurationResponse
+
+} // namespace Commands
+
+namespace Commands {
+namespace AllocatePushTransport {
+enum class Fields : uint8_t
+{
+    kStreamTransportOptions = 0,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::AllocatePushTransport::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::PushAvStreamTransport::Id; }
+
+    Structs::PushAVStreamTransportOptionsStruct::Type streamTransportOptions;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = Clusters::PushAvStreamTransport::Commands::AllocatePushTransportResponse::DecodableType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::AllocatePushTransport::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::PushAvStreamTransport::Id; }
+
+    Structs::PushAVStreamTransportOptionsStruct::DecodableType streamTransportOptions;
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace AllocatePushTransport
+namespace AllocatePushTransportResponse {
+enum class Fields : uint8_t
+{
+    kConnectionID           = 0,
+    kStreamTransportOptions = 1,
+    kTransportStatus        = 2,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::AllocatePushTransportResponse::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::PushAvStreamTransport::Id; }
+
+    uint16_t connectionID = static_cast<uint16_t>(0);
+    Structs::PushAVStreamTransportOptionsStruct::Type streamTransportOptions;
+    PushAVStreamTransportStatusEnum transportStatus = static_cast<PushAVStreamTransportStatusEnum>(0);
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = DataModel::NullObjectType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::AllocatePushTransportResponse::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::PushAvStreamTransport::Id; }
+
+    uint16_t connectionID = static_cast<uint16_t>(0);
+    Structs::PushAVStreamTransportOptionsStruct::DecodableType streamTransportOptions;
+    PushAVStreamTransportStatusEnum transportStatus = static_cast<PushAVStreamTransportStatusEnum>(0);
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace AllocatePushTransportResponse
+namespace DeallocatePushTransport {
+enum class Fields : uint8_t
+{
+    kConnectionID = 0,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::DeallocatePushTransport::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::PushAvStreamTransport::Id; }
+
+    uint16_t connectionID = static_cast<uint16_t>(0);
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = DataModel::NullObjectType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::DeallocatePushTransport::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::PushAvStreamTransport::Id; }
+
+    uint16_t connectionID = static_cast<uint16_t>(0);
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace DeallocatePushTransport
+namespace ModifyPushTransport {
+enum class Fields : uint8_t
+{
+    kConnectionID           = 0,
+    kStreamTransportOptions = 1,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::ModifyPushTransport::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::PushAvStreamTransport::Id; }
+
+    uint16_t connectionID = static_cast<uint16_t>(0);
+    Structs::PushAVStreamTransportOptionsStruct::Type streamTransportOptions;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = DataModel::NullObjectType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::ModifyPushTransport::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::PushAvStreamTransport::Id; }
+
+    uint16_t connectionID = static_cast<uint16_t>(0);
+    Structs::PushAVStreamTransportOptionsStruct::DecodableType streamTransportOptions;
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace ModifyPushTransport
+namespace SetTransportStatus {
+enum class Fields : uint8_t
+{
+    kConnectionID          = 0,
+    kStreamTransportStatus = 1,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::SetTransportStatus::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::PushAvStreamTransport::Id; }
+
+    DataModel::Nullable<uint16_t> connectionID;
+    PushAVStreamTransportStatusEnum streamTransportStatus = static_cast<PushAVStreamTransportStatusEnum>(0);
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = DataModel::NullObjectType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::SetTransportStatus::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::PushAvStreamTransport::Id; }
+
+    DataModel::Nullable<uint16_t> connectionID;
+    PushAVStreamTransportStatusEnum streamTransportStatus = static_cast<PushAVStreamTransportStatusEnum>(0);
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace SetTransportStatus
+namespace ManuallyTriggerTransport {
+enum class Fields : uint8_t
+{
+    kConnectionID     = 0,
+    kActivationReason = 1,
+    kTimeControl      = 2,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::ManuallyTriggerTransport::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::PushAvStreamTransport::Id; }
+
+    uint16_t connectionID = static_cast<uint16_t>(0);
+    DataModel::Nullable<PushAVStreamTransportTriggerActivationReasonEnum> activationReason;
+    Optional<DataModel::Nullable<Structs::PushAVStreamTransportMotionTriggerTimeControlStruct::Type>> timeControl;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = DataModel::NullObjectType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::ManuallyTriggerTransport::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::PushAvStreamTransport::Id; }
+
+    uint16_t connectionID = static_cast<uint16_t>(0);
+    DataModel::Nullable<PushAVStreamTransportTriggerActivationReasonEnum> activationReason;
+    Optional<DataModel::Nullable<Structs::PushAVStreamTransportMotionTriggerTimeControlStruct::DecodableType>> timeControl;
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace ManuallyTriggerTransport
+namespace FindStreamConfiguration {
+enum class Fields : uint8_t
+{
+    kConnectionID = 0,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::FindStreamConfiguration::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::PushAvStreamTransport::Id; }
+
+    Optional<DataModel::Nullable<uint16_t>> connectionID;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = Clusters::PushAvStreamTransport::Commands::FindStreamConfigurationResponse::DecodableType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::FindStreamConfiguration::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::PushAvStreamTransport::Id; }
+
+    Optional<DataModel::Nullable<uint16_t>> connectionID;
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace FindStreamConfiguration
+namespace FindStreamConfigurationResponse {
+enum class Fields : uint8_t
+{
+    kStreamConfigurations = 0,
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::FindStreamConfigurationResponse::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::PushAvStreamTransport::Id; }
+
+    DataModel::List<const Structs::PushAVStreamConfigurationStruct::Type> streamConfigurations;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = DataModel::NullObjectType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::FindStreamConfigurationResponse::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::PushAvStreamTransport::Id; }
+
+    DataModel::DecodableList<Structs::PushAVStreamConfigurationStruct::DecodableType> streamConfigurations;
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace FindStreamConfigurationResponse
+} // namespace Commands
+
+namespace Attributes {
+
+namespace SupportedContainerFormats {
+struct TypeInfo
+{
+    using Type = chip::BitMask<chip::app::Clusters::PushAvStreamTransport::PushAVStreamTransportSupportedContainerFormatsBitmap>;
+    using DecodableType =
+        chip::BitMask<chip::app::Clusters::PushAvStreamTransport::PushAVStreamTransportSupportedContainerFormatsBitmap>;
+    using DecodableArgType =
+        chip::BitMask<chip::app::Clusters::PushAvStreamTransport::PushAVStreamTransportSupportedContainerFormatsBitmap>;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::PushAvStreamTransport::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::SupportedContainerFormats::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace SupportedContainerFormats
+namespace SupportedIngestMethods {
+struct TypeInfo
+{
+    using Type = chip::BitMask<chip::app::Clusters::PushAvStreamTransport::PushAVStreamTransportSupportedIngestMethodsBitmap>;
+    using DecodableType =
+        chip::BitMask<chip::app::Clusters::PushAvStreamTransport::PushAVStreamTransportSupportedIngestMethodsBitmap>;
+    using DecodableArgType =
+        chip::BitMask<chip::app::Clusters::PushAvStreamTransport::PushAVStreamTransportSupportedIngestMethodsBitmap>;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::PushAvStreamTransport::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::SupportedIngestMethods::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace SupportedIngestMethods
+namespace CurrentConnections {
+struct TypeInfo
+{
+    using Type             = chip::app::DataModel::List<const uint16_t>;
+    using DecodableType    = chip::app::DataModel::DecodableList<uint16_t>;
+    using DecodableArgType = const chip::app::DataModel::DecodableList<uint16_t> &;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::PushAvStreamTransport::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::CurrentConnections::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace CurrentConnections
+namespace GeneratedCommandList {
+struct TypeInfo : public Clusters::Globals::Attributes::GeneratedCommandList::TypeInfo
+{
+    static constexpr ClusterId GetClusterId() { return Clusters::PushAvStreamTransport::Id; }
+};
+} // namespace GeneratedCommandList
+namespace AcceptedCommandList {
+struct TypeInfo : public Clusters::Globals::Attributes::AcceptedCommandList::TypeInfo
+{
+    static constexpr ClusterId GetClusterId() { return Clusters::PushAvStreamTransport::Id; }
+};
+} // namespace AcceptedCommandList
+namespace EventList {
+struct TypeInfo : public Clusters::Globals::Attributes::EventList::TypeInfo
+{
+    static constexpr ClusterId GetClusterId() { return Clusters::PushAvStreamTransport::Id; }
+};
+} // namespace EventList
+namespace AttributeList {
+struct TypeInfo : public Clusters::Globals::Attributes::AttributeList::TypeInfo
+{
+    static constexpr ClusterId GetClusterId() { return Clusters::PushAvStreamTransport::Id; }
+};
+} // namespace AttributeList
+namespace FeatureMap {
+struct TypeInfo : public Clusters::Globals::Attributes::FeatureMap::TypeInfo
+{
+    static constexpr ClusterId GetClusterId() { return Clusters::PushAvStreamTransport::Id; }
+};
+} // namespace FeatureMap
+namespace ClusterRevision {
+struct TypeInfo : public Clusters::Globals::Attributes::ClusterRevision::TypeInfo
+{
+    static constexpr ClusterId GetClusterId() { return Clusters::PushAvStreamTransport::Id; }
+};
+} // namespace ClusterRevision
+
+struct TypeInfo
+{
+    struct DecodableType
+    {
+        static constexpr ClusterId GetClusterId() { return Clusters::PushAvStreamTransport::Id; }
+
+        CHIP_ERROR Decode(TLV::TLVReader & reader, const ConcreteAttributePath & path);
+
+        Attributes::SupportedContainerFormats::TypeInfo::DecodableType supportedContainerFormats = static_cast<
+            chip::BitMask<chip::app::Clusters::PushAvStreamTransport::PushAVStreamTransportSupportedContainerFormatsBitmap>>(0);
+        Attributes::SupportedIngestMethods::TypeInfo::DecodableType supportedIngestMethods = static_cast<
+            chip::BitMask<chip::app::Clusters::PushAvStreamTransport::PushAVStreamTransportSupportedIngestMethodsBitmap>>(0);
+        Attributes::CurrentConnections::TypeInfo::DecodableType currentConnections;
+        Attributes::GeneratedCommandList::TypeInfo::DecodableType generatedCommandList;
+        Attributes::AcceptedCommandList::TypeInfo::DecodableType acceptedCommandList;
+        Attributes::EventList::TypeInfo::DecodableType eventList;
+        Attributes::AttributeList::TypeInfo::DecodableType attributeList;
+        Attributes::FeatureMap::TypeInfo::DecodableType featureMap           = static_cast<uint32_t>(0);
+        Attributes::ClusterRevision::TypeInfo::DecodableType clusterRevision = static_cast<uint16_t>(0);
+    };
+};
+} // namespace Attributes
+namespace Events {
+namespace PushTransportBegin {
+static constexpr PriorityLevel kPriorityLevel = PriorityLevel::Info;
+
+enum class Fields : uint8_t
+{
+};
+
+struct Type
+{
+public:
+    static constexpr PriorityLevel GetPriorityLevel() { return kPriorityLevel; }
+    static constexpr EventId GetEventId() { return Events::PushTransportBegin::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::PushAvStreamTransport::Id; }
+    static constexpr bool kIsFabricScoped = false;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+};
+
+struct DecodableType
+{
+public:
+    static constexpr PriorityLevel GetPriorityLevel() { return kPriorityLevel; }
+    static constexpr EventId GetEventId() { return Events::PushTransportBegin::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::PushAvStreamTransport::Id; }
+
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+} // namespace PushTransportBegin
+namespace PushTransportEnd {
+static constexpr PriorityLevel kPriorityLevel = PriorityLevel::Info;
+
+enum class Fields : uint8_t
+{
+    kConnectionID   = 0,
+    kTriggerDetails = 1,
+};
+
+struct Type
+{
+public:
+    static constexpr PriorityLevel GetPriorityLevel() { return kPriorityLevel; }
+    static constexpr EventId GetEventId() { return Events::PushTransportEnd::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::PushAvStreamTransport::Id; }
+    static constexpr bool kIsFabricScoped = false;
+
+    uint16_t connectionID = static_cast<uint16_t>(0);
+    Structs::PushAVStreamTransportTriggerOptionsStruct::Type triggerDetails;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+};
+
+struct DecodableType
+{
+public:
+    static constexpr PriorityLevel GetPriorityLevel() { return kPriorityLevel; }
+    static constexpr EventId GetEventId() { return Events::PushTransportEnd::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::PushAvStreamTransport::Id; }
+
+    uint16_t connectionID = static_cast<uint16_t>(0);
+    Structs::PushAVStreamTransportTriggerOptionsStruct::DecodableType triggerDetails;
+
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+} // namespace PushTransportEnd
+} // namespace Events
+} // namespace PushAvStreamTransport
+namespace Chime {
+namespace Structs {
+namespace ChimeSoundStruct {
+enum class Fields : uint8_t
+{
+    kChimeId = 0,
+    kName    = 1,
+};
+
+struct Type
+{
+public:
+    uint8_t chimeId = static_cast<uint8_t>(0);
+    chip::CharSpan name;
+
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+
+    static constexpr bool kIsFabricScoped = false;
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+};
+
+using DecodableType = Type;
+
+} // namespace ChimeSoundStruct
+} // namespace Structs
+
+namespace Commands {
+// Forward-declarations so we can reference these later.
+
+namespace PlayChimeSound {
+struct Type;
+struct DecodableType;
+} // namespace PlayChimeSound
+
+} // namespace Commands
+
+namespace Commands {
+namespace PlayChimeSound {
+enum class Fields : uint8_t
+{
+};
+
+struct Type
+{
+public:
+    // Use GetCommandId instead of commandId directly to avoid naming conflict with CommandIdentification in ExecutionOfACommand
+    static constexpr CommandId GetCommandId() { return Commands::PlayChimeSound::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::Chime::Id; }
+
+    CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const;
+
+    using ResponseType = DataModel::NullObjectType;
+
+    static constexpr bool MustUseTimedInvoke() { return false; }
+};
+
+struct DecodableType
+{
+public:
+    static constexpr CommandId GetCommandId() { return Commands::PlayChimeSound::Id; }
+    static constexpr ClusterId GetClusterId() { return Clusters::Chime::Id; }
+
+    CHIP_ERROR Decode(TLV::TLVReader & reader);
+};
+}; // namespace PlayChimeSound
+} // namespace Commands
+
+namespace Attributes {
+
+namespace InstalledChimeSounds {
+struct TypeInfo
+{
+    using Type          = chip::app::DataModel::List<const chip::app::Clusters::Chime::Structs::ChimeSoundStruct::Type>;
+    using DecodableType = chip::app::DataModel::DecodableList<chip::app::Clusters::Chime::Structs::ChimeSoundStruct::DecodableType>;
+    using DecodableArgType =
+        const chip::app::DataModel::DecodableList<chip::app::Clusters::Chime::Structs::ChimeSoundStruct::DecodableType> &;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::Chime::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::InstalledChimeSounds::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace InstalledChimeSounds
+namespace ActiveChimeSoundId {
+struct TypeInfo
+{
+    using Type             = uint8_t;
+    using DecodableType    = uint8_t;
+    using DecodableArgType = uint8_t;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::Chime::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::ActiveChimeSoundId::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace ActiveChimeSoundId
+namespace Enabled {
+struct TypeInfo
+{
+    using Type             = bool;
+    using DecodableType    = bool;
+    using DecodableArgType = bool;
+
+    static constexpr ClusterId GetClusterId() { return Clusters::Chime::Id; }
+    static constexpr AttributeId GetAttributeId() { return Attributes::Enabled::Id; }
+    static constexpr bool MustUseTimedWrite() { return false; }
+};
+} // namespace Enabled
+namespace GeneratedCommandList {
+struct TypeInfo : public Clusters::Globals::Attributes::GeneratedCommandList::TypeInfo
+{
+    static constexpr ClusterId GetClusterId() { return Clusters::Chime::Id; }
+};
+} // namespace GeneratedCommandList
+namespace AcceptedCommandList {
+struct TypeInfo : public Clusters::Globals::Attributes::AcceptedCommandList::TypeInfo
+{
+    static constexpr ClusterId GetClusterId() { return Clusters::Chime::Id; }
+};
+} // namespace AcceptedCommandList
+namespace EventList {
+struct TypeInfo : public Clusters::Globals::Attributes::EventList::TypeInfo
+{
+    static constexpr ClusterId GetClusterId() { return Clusters::Chime::Id; }
+};
+} // namespace EventList
+namespace AttributeList {
+struct TypeInfo : public Clusters::Globals::Attributes::AttributeList::TypeInfo
+{
+    static constexpr ClusterId GetClusterId() { return Clusters::Chime::Id; }
+};
+} // namespace AttributeList
+namespace FeatureMap {
+struct TypeInfo : public Clusters::Globals::Attributes::FeatureMap::TypeInfo
+{
+    static constexpr ClusterId GetClusterId() { return Clusters::Chime::Id; }
+};
+} // namespace FeatureMap
+namespace ClusterRevision {
+struct TypeInfo : public Clusters::Globals::Attributes::ClusterRevision::TypeInfo
+{
+    static constexpr ClusterId GetClusterId() { return Clusters::Chime::Id; }
+};
+} // namespace ClusterRevision
+
+struct TypeInfo
+{
+    struct DecodableType
+    {
+        static constexpr ClusterId GetClusterId() { return Clusters::Chime::Id; }
+
+        CHIP_ERROR Decode(TLV::TLVReader & reader, const ConcreteAttributePath & path);
+
+        Attributes::InstalledChimeSounds::TypeInfo::DecodableType installedChimeSounds;
+        Attributes::ActiveChimeSoundId::TypeInfo::DecodableType activeChimeSoundId = static_cast<uint8_t>(0);
+        Attributes::Enabled::TypeInfo::DecodableType enabled                       = static_cast<bool>(0);
+        Attributes::GeneratedCommandList::TypeInfo::DecodableType generatedCommandList;
+        Attributes::AcceptedCommandList::TypeInfo::DecodableType acceptedCommandList;
+        Attributes::EventList::TypeInfo::DecodableType eventList;
+        Attributes::AttributeList::TypeInfo::DecodableType attributeList;
+        Attributes::FeatureMap::TypeInfo::DecodableType featureMap           = static_cast<uint32_t>(0);
+        Attributes::ClusterRevision::TypeInfo::DecodableType clusterRevision = static_cast<uint16_t>(0);
+    };
+};
+} // namespace Attributes
+} // namespace Chime
 namespace EcosystemInformation {
 namespace Structs {
 namespace DeviceTypeStruct = Clusters::detail::Structs::DeviceTypeStruct;
diff --git a/zzz_generated/app-common/app-common/zap-generated/ids/Attributes.h b/zzz_generated/app-common/app-common/zap-generated/ids/Attributes.h
index 6e19a4c970df77..820ac25f2b5f3f 100644
--- a/zzz_generated/app-common/app-common/zap-generated/ids/Attributes.h
+++ b/zzz_generated/app-common/app-common/zap-generated/ids/Attributes.h
@@ -7487,6 +7487,442 @@ static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id;
 } // namespace Attributes
 } // namespace ContentAppObserver
 
+namespace CameraAvStreamManagement {
+namespace Attributes {
+
+namespace MaxConcurrentVideoEncoders {
+static constexpr AttributeId Id = 0x00000000;
+} // namespace MaxConcurrentVideoEncoders
+
+namespace MaxEncodedPixelRate {
+static constexpr AttributeId Id = 0x00000001;
+} // namespace MaxEncodedPixelRate
+
+namespace VideoSensorParams {
+static constexpr AttributeId Id = 0x00000002;
+} // namespace VideoSensorParams
+
+namespace NightVisionCapable {
+static constexpr AttributeId Id = 0x00000003;
+} // namespace NightVisionCapable
+
+namespace MinViewPortWidth {
+static constexpr AttributeId Id = 0x00000004;
+} // namespace MinViewPortWidth
+
+namespace MinViewPortHeight {
+static constexpr AttributeId Id = 0x00000005;
+} // namespace MinViewPortHeight
+
+namespace RateDistortionTradeOffPoints {
+static constexpr AttributeId Id = 0x00000006;
+} // namespace RateDistortionTradeOffPoints
+
+namespace MaxPreRollBufferSize {
+static constexpr AttributeId Id = 0x00000007;
+} // namespace MaxPreRollBufferSize
+
+namespace MicrophoneCapabilities {
+static constexpr AttributeId Id = 0x00000008;
+} // namespace MicrophoneCapabilities
+
+namespace SpeakerCapabilities {
+static constexpr AttributeId Id = 0x00000009;
+} // namespace SpeakerCapabilities
+
+namespace TwoWayTalkSupport {
+static constexpr AttributeId Id = 0x0000000A;
+} // namespace TwoWayTalkSupport
+
+namespace SupportedSnapshotParams {
+static constexpr AttributeId Id = 0x0000000B;
+} // namespace SupportedSnapshotParams
+
+namespace HDRCapable {
+static constexpr AttributeId Id = 0x0000000C;
+} // namespace HDRCapable
+
+namespace MaxNetworkBandwidth {
+static constexpr AttributeId Id = 0x0000000D;
+} // namespace MaxNetworkBandwidth
+
+namespace CurrentFrameRate {
+static constexpr AttributeId Id = 0x0000000E;
+} // namespace CurrentFrameRate
+
+namespace HDRMode {
+static constexpr AttributeId Id = 0x0000000F;
+} // namespace HDRMode
+
+namespace CurrentVideoCodecs {
+static constexpr AttributeId Id = 0x00000010;
+} // namespace CurrentVideoCodecs
+
+namespace CurrentSnapshotConfig {
+static constexpr AttributeId Id = 0x00000011;
+} // namespace CurrentSnapshotConfig
+
+namespace FabricsUsingCamera {
+static constexpr AttributeId Id = 0x00000012;
+} // namespace FabricsUsingCamera
+
+namespace AllocatedVideoStreams {
+static constexpr AttributeId Id = 0x00000013;
+} // namespace AllocatedVideoStreams
+
+namespace AllocatedAudioStreams {
+static constexpr AttributeId Id = 0x00000014;
+} // namespace AllocatedAudioStreams
+
+namespace AllocatedSnapshotStreams {
+static constexpr AttributeId Id = 0x00000015;
+} // namespace AllocatedSnapshotStreams
+
+namespace RankedVideoStreamPrioritiesList {
+static constexpr AttributeId Id = 0x00000016;
+} // namespace RankedVideoStreamPrioritiesList
+
+namespace SoftRecordingPrivacyModeSetting {
+static constexpr AttributeId Id = 0x00000017;
+} // namespace SoftRecordingPrivacyModeSetting
+
+namespace SoftLivestreamPrivacyModeSetting {
+static constexpr AttributeId Id = 0x00000018;
+} // namespace SoftLivestreamPrivacyModeSetting
+
+namespace HardPrivacyMode {
+static constexpr AttributeId Id = 0x00000019;
+} // namespace HardPrivacyMode
+
+namespace NightVision {
+static constexpr AttributeId Id = 0x0000001A;
+} // namespace NightVision
+
+namespace NightVisionIllum {
+static constexpr AttributeId Id = 0x0000001B;
+} // namespace NightVisionIllum
+
+namespace Awb {
+static constexpr AttributeId Id = 0x0000001C;
+} // namespace Awb
+
+namespace ShutterSpeed {
+static constexpr AttributeId Id = 0x0000001D;
+} // namespace ShutterSpeed
+
+namespace Iso {
+static constexpr AttributeId Id = 0x0000001E;
+} // namespace Iso
+
+namespace Viewport {
+static constexpr AttributeId Id = 0x0000001F;
+} // namespace Viewport
+
+namespace SpkrOnOff {
+static constexpr AttributeId Id = 0x00000020;
+} // namespace SpkrOnOff
+
+namespace SpkrVolumeLevel {
+static constexpr AttributeId Id = 0x00000021;
+} // namespace SpkrVolumeLevel
+
+namespace SpkrMaxLevel {
+static constexpr AttributeId Id = 0x00000022;
+} // namespace SpkrMaxLevel
+
+namespace SpkrMinLevel {
+static constexpr AttributeId Id = 0x00000023;
+} // namespace SpkrMinLevel
+
+namespace MicOnOff {
+static constexpr AttributeId Id = 0x00000024;
+} // namespace MicOnOff
+
+namespace MicCurrentLevel {
+static constexpr AttributeId Id = 0x00000025;
+} // namespace MicCurrentLevel
+
+namespace MicMaxLevel {
+static constexpr AttributeId Id = 0x00000026;
+} // namespace MicMaxLevel
+
+namespace MicMinLevel {
+static constexpr AttributeId Id = 0x00000027;
+} // namespace MicMinLevel
+
+namespace MicAGC {
+static constexpr AttributeId Id = 0x00000028;
+} // namespace MicAGC
+
+namespace ImageRotation {
+static constexpr AttributeId Id = 0x00000029;
+} // namespace ImageRotation
+
+namespace ImageFlipHorizontal {
+static constexpr AttributeId Id = 0x0000002A;
+} // namespace ImageFlipHorizontal
+
+namespace ImageFlipVertical {
+static constexpr AttributeId Id = 0x0000002B;
+} // namespace ImageFlipVertical
+
+namespace LocalVideoRecordingEnabled {
+static constexpr AttributeId Id = 0x0000002C;
+} // namespace LocalVideoRecordingEnabled
+
+namespace LocalSnapshotRecordingEnabled {
+static constexpr AttributeId Id = 0x0000002D;
+} // namespace LocalSnapshotRecordingEnabled
+
+namespace StatusLight {
+static constexpr AttributeId Id = 0x0000002E;
+} // namespace StatusLight
+
+namespace StatusLightBrightness {
+static constexpr AttributeId Id = 0x0000002F;
+} // namespace StatusLightBrightness
+
+namespace DepthSensorStatus {
+static constexpr AttributeId Id = 0x00000030;
+} // namespace DepthSensorStatus
+
+namespace WatermarkEnabled {
+static constexpr AttributeId Id = 0x00000031;
+} // namespace WatermarkEnabled
+
+namespace OSDEnabled {
+static constexpr AttributeId Id = 0x00000032;
+} // namespace OSDEnabled
+
+namespace GeneratedCommandList {
+static constexpr AttributeId Id = Globals::Attributes::GeneratedCommandList::Id;
+} // namespace GeneratedCommandList
+
+namespace AcceptedCommandList {
+static constexpr AttributeId Id = Globals::Attributes::AcceptedCommandList::Id;
+} // namespace AcceptedCommandList
+
+namespace EventList {
+static constexpr AttributeId Id = Globals::Attributes::EventList::Id;
+} // namespace EventList
+
+namespace AttributeList {
+static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id;
+} // namespace AttributeList
+
+namespace FeatureMap {
+static constexpr AttributeId Id = Globals::Attributes::FeatureMap::Id;
+} // namespace FeatureMap
+
+namespace ClusterRevision {
+static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id;
+} // namespace ClusterRevision
+
+} // namespace Attributes
+} // namespace CameraAvStreamManagement
+
+namespace CameraAvSettingsUserLevelManagement {
+namespace Attributes {
+
+namespace Mptz {
+static constexpr AttributeId Id = 0x00000000;
+} // namespace Mptz
+
+namespace MaxPresets {
+static constexpr AttributeId Id = 0x00000001;
+} // namespace MaxPresets
+
+namespace PresetMptzTable {
+static constexpr AttributeId Id = 0x00000002;
+} // namespace PresetMptzTable
+
+namespace MptzRelativeMove {
+static constexpr AttributeId Id = 0x00000003;
+} // namespace MptzRelativeMove
+
+namespace DptzRelativeMove {
+static constexpr AttributeId Id = 0x00000004;
+} // namespace DptzRelativeMove
+
+namespace GeneratedCommandList {
+static constexpr AttributeId Id = Globals::Attributes::GeneratedCommandList::Id;
+} // namespace GeneratedCommandList
+
+namespace AcceptedCommandList {
+static constexpr AttributeId Id = Globals::Attributes::AcceptedCommandList::Id;
+} // namespace AcceptedCommandList
+
+namespace EventList {
+static constexpr AttributeId Id = Globals::Attributes::EventList::Id;
+} // namespace EventList
+
+namespace AttributeList {
+static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id;
+} // namespace AttributeList
+
+namespace FeatureMap {
+static constexpr AttributeId Id = Globals::Attributes::FeatureMap::Id;
+} // namespace FeatureMap
+
+namespace ClusterRevision {
+static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id;
+} // namespace ClusterRevision
+
+} // namespace Attributes
+} // namespace CameraAvSettingsUserLevelManagement
+
+namespace WebRTCTransportProvider {
+namespace Attributes {
+
+namespace CurrentSessions {
+static constexpr AttributeId Id = 0x00000000;
+} // namespace CurrentSessions
+
+namespace GeneratedCommandList {
+static constexpr AttributeId Id = Globals::Attributes::GeneratedCommandList::Id;
+} // namespace GeneratedCommandList
+
+namespace AcceptedCommandList {
+static constexpr AttributeId Id = Globals::Attributes::AcceptedCommandList::Id;
+} // namespace AcceptedCommandList
+
+namespace EventList {
+static constexpr AttributeId Id = Globals::Attributes::EventList::Id;
+} // namespace EventList
+
+namespace AttributeList {
+static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id;
+} // namespace AttributeList
+
+namespace FeatureMap {
+static constexpr AttributeId Id = Globals::Attributes::FeatureMap::Id;
+} // namespace FeatureMap
+
+namespace ClusterRevision {
+static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id;
+} // namespace ClusterRevision
+
+} // namespace Attributes
+} // namespace WebRTCTransportProvider
+
+namespace WebRTCTransportRequestor {
+namespace Attributes {
+
+namespace CurrentSessions {
+static constexpr AttributeId Id = 0x00000000;
+} // namespace CurrentSessions
+
+namespace GeneratedCommandList {
+static constexpr AttributeId Id = Globals::Attributes::GeneratedCommandList::Id;
+} // namespace GeneratedCommandList
+
+namespace AcceptedCommandList {
+static constexpr AttributeId Id = Globals::Attributes::AcceptedCommandList::Id;
+} // namespace AcceptedCommandList
+
+namespace EventList {
+static constexpr AttributeId Id = Globals::Attributes::EventList::Id;
+} // namespace EventList
+
+namespace AttributeList {
+static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id;
+} // namespace AttributeList
+
+namespace FeatureMap {
+static constexpr AttributeId Id = Globals::Attributes::FeatureMap::Id;
+} // namespace FeatureMap
+
+namespace ClusterRevision {
+static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id;
+} // namespace ClusterRevision
+
+} // namespace Attributes
+} // namespace WebRTCTransportRequestor
+
+namespace PushAvStreamTransport {
+namespace Attributes {
+
+namespace SupportedContainerFormats {
+static constexpr AttributeId Id = 0x00000000;
+} // namespace SupportedContainerFormats
+
+namespace SupportedIngestMethods {
+static constexpr AttributeId Id = 0x00000001;
+} // namespace SupportedIngestMethods
+
+namespace CurrentConnections {
+static constexpr AttributeId Id = 0x00000002;
+} // namespace CurrentConnections
+
+namespace GeneratedCommandList {
+static constexpr AttributeId Id = Globals::Attributes::GeneratedCommandList::Id;
+} // namespace GeneratedCommandList
+
+namespace AcceptedCommandList {
+static constexpr AttributeId Id = Globals::Attributes::AcceptedCommandList::Id;
+} // namespace AcceptedCommandList
+
+namespace EventList {
+static constexpr AttributeId Id = Globals::Attributes::EventList::Id;
+} // namespace EventList
+
+namespace AttributeList {
+static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id;
+} // namespace AttributeList
+
+namespace FeatureMap {
+static constexpr AttributeId Id = Globals::Attributes::FeatureMap::Id;
+} // namespace FeatureMap
+
+namespace ClusterRevision {
+static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id;
+} // namespace ClusterRevision
+
+} // namespace Attributes
+} // namespace PushAvStreamTransport
+
+namespace Chime {
+namespace Attributes {
+
+namespace InstalledChimeSounds {
+static constexpr AttributeId Id = 0x00000000;
+} // namespace InstalledChimeSounds
+
+namespace ActiveChimeSoundId {
+static constexpr AttributeId Id = 0x00000001;
+} // namespace ActiveChimeSoundId
+
+namespace Enabled {
+static constexpr AttributeId Id = 0x00000002;
+} // namespace Enabled
+
+namespace GeneratedCommandList {
+static constexpr AttributeId Id = Globals::Attributes::GeneratedCommandList::Id;
+} // namespace GeneratedCommandList
+
+namespace AcceptedCommandList {
+static constexpr AttributeId Id = Globals::Attributes::AcceptedCommandList::Id;
+} // namespace AcceptedCommandList
+
+namespace EventList {
+static constexpr AttributeId Id = Globals::Attributes::EventList::Id;
+} // namespace EventList
+
+namespace AttributeList {
+static constexpr AttributeId Id = Globals::Attributes::AttributeList::Id;
+} // namespace AttributeList
+
+namespace FeatureMap {
+static constexpr AttributeId Id = Globals::Attributes::FeatureMap::Id;
+} // namespace FeatureMap
+
+namespace ClusterRevision {
+static constexpr AttributeId Id = Globals::Attributes::ClusterRevision::Id;
+} // namespace ClusterRevision
+
+} // namespace Attributes
+} // namespace Chime
+
 namespace EcosystemInformation {
 namespace Attributes {
 
diff --git a/zzz_generated/app-common/app-common/zap-generated/ids/Clusters.h b/zzz_generated/app-common/app-common/zap-generated/ids/Clusters.h
index 9e5bb87b52ef51..e1f8b10c795af1 100644
--- a/zzz_generated/app-common/app-common/zap-generated/ids/Clusters.h
+++ b/zzz_generated/app-common/app-common/zap-generated/ids/Clusters.h
@@ -385,6 +385,24 @@ static constexpr ClusterId Id = 0x0000050F;
 namespace ContentAppObserver {
 static constexpr ClusterId Id = 0x00000510;
 } // namespace ContentAppObserver
+namespace CameraAvStreamManagement {
+static constexpr ClusterId Id = 0x00000551;
+} // namespace CameraAvStreamManagement
+namespace CameraAvSettingsUserLevelManagement {
+static constexpr ClusterId Id = 0x00000552;
+} // namespace CameraAvSettingsUserLevelManagement
+namespace WebRTCTransportProvider {
+static constexpr ClusterId Id = 0x00000553;
+} // namespace WebRTCTransportProvider
+namespace WebRTCTransportRequestor {
+static constexpr ClusterId Id = 0x00000554;
+} // namespace WebRTCTransportRequestor
+namespace PushAvStreamTransport {
+static constexpr ClusterId Id = 0x00000555;
+} // namespace PushAvStreamTransport
+namespace Chime {
+static constexpr ClusterId Id = 0x00000556;
+} // namespace Chime
 namespace EcosystemInformation {
 static constexpr ClusterId Id = 0x00000750;
 } // namespace EcosystemInformation
diff --git a/zzz_generated/app-common/app-common/zap-generated/ids/Commands.h b/zzz_generated/app-common/app-common/zap-generated/ids/Commands.h
index 36ff7b0f098911..3a981ada57f893 100644
--- a/zzz_generated/app-common/app-common/zap-generated/ids/Commands.h
+++ b/zzz_generated/app-common/app-common/zap-generated/ids/Commands.h
@@ -1817,6 +1817,210 @@ static constexpr CommandId Id = 0x00000001;
 } // namespace Commands
 } // namespace ContentAppObserver
 
+namespace CameraAvStreamManagement {
+namespace Commands {
+
+namespace AudioStreamAllocate {
+static constexpr CommandId Id = 0x00000000;
+} // namespace AudioStreamAllocate
+
+namespace AudioStreamAllocateResponse {
+static constexpr CommandId Id = 0x00000001;
+} // namespace AudioStreamAllocateResponse
+
+namespace AudioStreamDeallocate {
+static constexpr CommandId Id = 0x00000002;
+} // namespace AudioStreamDeallocate
+
+namespace VideoStreamAllocate {
+static constexpr CommandId Id = 0x00000003;
+} // namespace VideoStreamAllocate
+
+namespace VideoStreamAllocateResponse {
+static constexpr CommandId Id = 0x00000004;
+} // namespace VideoStreamAllocateResponse
+
+namespace VideoStreamModify {
+static constexpr CommandId Id = 0x00000005;
+} // namespace VideoStreamModify
+
+namespace VideoStreamDeallocate {
+static constexpr CommandId Id = 0x00000006;
+} // namespace VideoStreamDeallocate
+
+namespace SnapshotStreamAllocate {
+static constexpr CommandId Id = 0x00000007;
+} // namespace SnapshotStreamAllocate
+
+namespace SnapshotStreamAllocateResponse {
+static constexpr CommandId Id = 0x00000008;
+} // namespace SnapshotStreamAllocateResponse
+
+namespace SnapshotStreamDeallocate {
+static constexpr CommandId Id = 0x00000009;
+} // namespace SnapshotStreamDeallocate
+
+namespace SetStreamPriority {
+static constexpr CommandId Id = 0x0000000A;
+} // namespace SetStreamPriority
+
+namespace CaptureSnapshot {
+static constexpr CommandId Id = 0x0000000B;
+} // namespace CaptureSnapshot
+
+namespace CaptureSnapshotResponse {
+static constexpr CommandId Id = 0x0000000C;
+} // namespace CaptureSnapshotResponse
+
+namespace SetViewport {
+static constexpr CommandId Id = 0x0000000D;
+} // namespace SetViewport
+
+namespace SetImageRotation {
+static constexpr CommandId Id = 0x0000000E;
+} // namespace SetImageRotation
+
+namespace SetImageFlipHorizontal {
+static constexpr CommandId Id = 0x0000000F;
+} // namespace SetImageFlipHorizontal
+
+namespace SetImageFlipVertical {
+static constexpr CommandId Id = 0x00000010;
+} // namespace SetImageFlipVertical
+
+} // namespace Commands
+} // namespace CameraAvStreamManagement
+
+namespace CameraAvSettingsUserLevelManagement {
+namespace Commands {
+
+namespace MptzSet {
+static constexpr CommandId Id = 0x00000000;
+} // namespace MptzSet
+
+namespace MptzRelativeMove {
+static constexpr CommandId Id = 0x00000001;
+} // namespace MptzRelativeMove
+
+namespace SetAsPreset {
+static constexpr CommandId Id = 0x00000002;
+} // namespace SetAsPreset
+
+namespace DptzSetViewport {
+static constexpr CommandId Id = 0x00000003;
+} // namespace DptzSetViewport
+
+namespace DptzRelativeMove {
+static constexpr CommandId Id = 0x00000004;
+} // namespace DptzRelativeMove
+
+} // namespace Commands
+} // namespace CameraAvSettingsUserLevelManagement
+
+namespace WebRTCTransportProvider {
+namespace Commands {
+
+namespace WebRTCSolicitOffer {
+static constexpr CommandId Id = 0x00000001;
+} // namespace WebRTCSolicitOffer
+
+namespace WebRTCSolicitOfferResponse {
+static constexpr CommandId Id = 0x00000002;
+} // namespace WebRTCSolicitOfferResponse
+
+namespace WebRTCProvideOffer {
+static constexpr CommandId Id = 0x00000003;
+} // namespace WebRTCProvideOffer
+
+namespace WebRTCProvideOfferResponse {
+static constexpr CommandId Id = 0x00000004;
+} // namespace WebRTCProvideOfferResponse
+
+namespace WebRTCProvideAnswer {
+static constexpr CommandId Id = 0x00000005;
+} // namespace WebRTCProvideAnswer
+
+namespace WebRTCProvideICECandidate {
+static constexpr CommandId Id = 0x00000006;
+} // namespace WebRTCProvideICECandidate
+
+namespace WebRTCEndSession {
+static constexpr CommandId Id = 0x00000007;
+} // namespace WebRTCEndSession
+
+} // namespace Commands
+} // namespace WebRTCTransportProvider
+
+namespace WebRTCTransportRequestor {
+namespace Commands {
+
+namespace WebRTCOffer {
+static constexpr CommandId Id = 0x00000001;
+} // namespace WebRTCOffer
+
+namespace WebRTCAnswer {
+static constexpr CommandId Id = 0x00000002;
+} // namespace WebRTCAnswer
+
+namespace WebRTCICECandidate {
+static constexpr CommandId Id = 0x00000003;
+} // namespace WebRTCICECandidate
+
+namespace WebRTCEnd {
+static constexpr CommandId Id = 0x00000004;
+} // namespace WebRTCEnd
+
+} // namespace Commands
+} // namespace WebRTCTransportRequestor
+
+namespace PushAvStreamTransport {
+namespace Commands {
+
+namespace AllocatePushTransport {
+static constexpr CommandId Id = 0x00000000;
+} // namespace AllocatePushTransport
+
+namespace AllocatePushTransportResponse {
+static constexpr CommandId Id = 0x00000001;
+} // namespace AllocatePushTransportResponse
+
+namespace DeallocatePushTransport {
+static constexpr CommandId Id = 0x00000002;
+} // namespace DeallocatePushTransport
+
+namespace ModifyPushTransport {
+static constexpr CommandId Id = 0x00000003;
+} // namespace ModifyPushTransport
+
+namespace SetTransportStatus {
+static constexpr CommandId Id = 0x00000004;
+} // namespace SetTransportStatus
+
+namespace ManuallyTriggerTransport {
+static constexpr CommandId Id = 0x00000005;
+} // namespace ManuallyTriggerTransport
+
+namespace FindStreamConfiguration {
+static constexpr CommandId Id = 0x00000006;
+} // namespace FindStreamConfiguration
+
+namespace FindStreamConfigurationResponse {
+static constexpr CommandId Id = 0x00000007;
+} // namespace FindStreamConfigurationResponse
+
+} // namespace Commands
+} // namespace PushAvStreamTransport
+
+namespace Chime {
+namespace Commands {
+
+namespace PlayChimeSound {
+static constexpr CommandId Id = 0x00000000;
+} // namespace PlayChimeSound
+
+} // namespace Commands
+} // namespace Chime
+
 namespace CommissionerControl {
 namespace Commands {
 
diff --git a/zzz_generated/app-common/app-common/zap-generated/ids/Events.h b/zzz_generated/app-common/app-common/zap-generated/ids/Events.h
index 0756af5268e9ed..8aa0cf3d2b2445 100644
--- a/zzz_generated/app-common/app-common/zap-generated/ids/Events.h
+++ b/zzz_generated/app-common/app-common/zap-generated/ids/Events.h
@@ -683,6 +683,38 @@ static constexpr EventId Id = 0x00000000;
 } // namespace Events
 } // namespace ContentControl
 
+namespace CameraAvStreamManagement {
+namespace Events {
+
+namespace VideoStreamChanged {
+static constexpr EventId Id = 0x00000000;
+} // namespace VideoStreamChanged
+
+namespace AudioStreamChanged {
+static constexpr EventId Id = 0x00000001;
+} // namespace AudioStreamChanged
+
+namespace SnapshotStreamChanged {
+static constexpr EventId Id = 0x00000002;
+} // namespace SnapshotStreamChanged
+
+} // namespace Events
+} // namespace CameraAvStreamManagement
+
+namespace PushAvStreamTransport {
+namespace Events {
+
+namespace PushTransportBegin {
+static constexpr EventId Id = 0x00000000;
+} // namespace PushTransportBegin
+
+namespace PushTransportEnd {
+static constexpr EventId Id = 0x00000001;
+} // namespace PushTransportEnd
+
+} // namespace Events
+} // namespace PushAvStreamTransport
+
 namespace CommissionerControl {
 namespace Events {
 
diff --git a/zzz_generated/chip-tool/zap-generated/cluster/Commands.h b/zzz_generated/chip-tool/zap-generated/cluster/Commands.h
index c01a3135dc46bd..6821f5998a2afb 100644
--- a/zzz_generated/chip-tool/zap-generated/cluster/Commands.h
+++ b/zzz_generated/chip-tool/zap-generated/cluster/Commands.h
@@ -155,6 +155,12 @@
 | AccountLogin                                                        | 0x050E |
 | ContentControl                                                      | 0x050F |
 | ContentAppObserver                                                  | 0x0510 |
+| CameraAvStreamManagement                                            | 0x0551 |
+| CameraAvSettingsUserLevelManagement                                 | 0x0552 |
+| WebRTCTransportProvider                                             | 0x0553 |
+| WebRTCTransportRequestor                                            | 0x0554 |
+| PushAvStreamTransport                                               | 0x0555 |
+| Chime                                                               | 0x0556 |
 | EcosystemInformation                                                | 0x0750 |
 | CommissionerControl                                                 | 0x0751 |
 | ElectricalMeasurement                                               | 0x0B04 |
@@ -13796,32 +13802,75 @@ class ContentAppObserverContentAppMessage : public ClusterCommand
 };
 
 /*----------------------------------------------------------------------------*\
-| Cluster EcosystemInformation                                        | 0x0750 |
-|------------------------------------------------------------------------------|
-| Commands:                                                           |        |
-|------------------------------------------------------------------------------|
-| Attributes:                                                         |        |
-| * DeviceDirectory                                                   | 0x0000 |
-| * LocationDirectory                                                 | 0x0001 |
-| * GeneratedCommandList                                              | 0xFFF8 |
-| * AcceptedCommandList                                               | 0xFFF9 |
-| * EventList                                                         | 0xFFFA |
-| * AttributeList                                                     | 0xFFFB |
-| * FeatureMap                                                        | 0xFFFC |
-| * ClusterRevision                                                   | 0xFFFD |
-|------------------------------------------------------------------------------|
-| Events:                                                             |        |
-\*----------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------*\
-| Cluster CommissionerControl                                         | 0x0751 |
+| Cluster CameraAvStreamManagement                                    | 0x0551 |
 |------------------------------------------------------------------------------|
 | Commands:                                                           |        |
-| * RequestCommissioningApproval                                      |   0x00 |
-| * CommissionNode                                                    |   0x01 |
+| * AudioStreamAllocate                                               |   0x00 |
+| * AudioStreamDeallocate                                             |   0x02 |
+| * VideoStreamAllocate                                               |   0x03 |
+| * VideoStreamModify                                                 |   0x05 |
+| * VideoStreamDeallocate                                             |   0x06 |
+| * SnapshotStreamAllocate                                            |   0x07 |
+| * SnapshotStreamDeallocate                                          |   0x09 |
+| * SetStreamPriority                                                 |   0x0A |
+| * CaptureSnapshot                                                   |   0x0B |
+| * SetViewport                                                       |   0x0D |
+| * SetImageRotation                                                  |   0x0E |
+| * SetImageFlipHorizontal                                            |   0x0F |
+| * SetImageFlipVertical                                              |   0x10 |
 |------------------------------------------------------------------------------|
 | Attributes:                                                         |        |
-| * SupportedDeviceCategories                                         | 0x0000 |
+| * MaxConcurrentVideoEncoders                                        | 0x0000 |
+| * MaxEncodedPixelRate                                               | 0x0001 |
+| * VideoSensorParams                                                 | 0x0002 |
+| * NightVisionCapable                                                | 0x0003 |
+| * MinViewPortWidth                                                  | 0x0004 |
+| * MinViewPortHeight                                                 | 0x0005 |
+| * RateDistortionTradeOffPoints                                      | 0x0006 |
+| * MaxPreRollBufferSize                                              | 0x0007 |
+| * MicrophoneCapabilities                                            | 0x0008 |
+| * SpeakerCapabilities                                               | 0x0009 |
+| * TwoWayTalkSupport                                                 | 0x000A |
+| * SupportedSnapshotParams                                           | 0x000B |
+| * HDRCapable                                                        | 0x000C |
+| * MaxNetworkBandwidth                                               | 0x000D |
+| * CurrentFrameRate                                                  | 0x000E |
+| * HDRMode                                                           | 0x000F |
+| * CurrentVideoCodecs                                                | 0x0010 |
+| * CurrentSnapshotConfig                                             | 0x0011 |
+| * FabricsUsingCamera                                                | 0x0012 |
+| * AllocatedVideoStreams                                             | 0x0013 |
+| * AllocatedAudioStreams                                             | 0x0014 |
+| * AllocatedSnapshotStreams                                          | 0x0015 |
+| * RankedVideoStreamPrioritiesList                                   | 0x0016 |
+| * SoftRecordingPrivacyModeSetting                                   | 0x0017 |
+| * SoftLivestreamPrivacyModeSetting                                  | 0x0018 |
+| * HardPrivacyMode                                                   | 0x0019 |
+| * NightVision                                                       | 0x001A |
+| * NightVisionIllum                                                  | 0x001B |
+| * Awb                                                               | 0x001C |
+| * ShutterSpeed                                                      | 0x001D |
+| * Iso                                                               | 0x001E |
+| * Viewport                                                          | 0x001F |
+| * SpkrOnOff                                                         | 0x0020 |
+| * SpkrVolumeLevel                                                   | 0x0021 |
+| * SpkrMaxLevel                                                      | 0x0022 |
+| * SpkrMinLevel                                                      | 0x0023 |
+| * MicOnOff                                                          | 0x0024 |
+| * MicCurrentLevel                                                   | 0x0025 |
+| * MicMaxLevel                                                       | 0x0026 |
+| * MicMinLevel                                                       | 0x0027 |
+| * MicAGC                                                            | 0x0028 |
+| * ImageRotation                                                     | 0x0029 |
+| * ImageFlipHorizontal                                               | 0x002A |
+| * ImageFlipVertical                                                 | 0x002B |
+| * LocalVideoRecordingEnabled                                        | 0x002C |
+| * LocalSnapshotRecordingEnabled                                     | 0x002D |
+| * StatusLight                                                       | 0x002E |
+| * StatusLightBrightness                                             | 0x002F |
+| * DepthSensorStatus                                                 | 0x0030 |
+| * WatermarkEnabled                                                  | 0x0031 |
+| * OSDEnabled                                                        | 0x0032 |
 | * GeneratedCommandList                                              | 0xFFF8 |
 | * AcceptedCommandList                                               | 0xFFF9 |
 | * EventList                                                         | 0xFFFA |
@@ -13830,29 +13879,33 @@ class ContentAppObserverContentAppMessage : public ClusterCommand
 | * ClusterRevision                                                   | 0xFFFD |
 |------------------------------------------------------------------------------|
 | Events:                                                             |        |
-| * CommissioningRequestResult                                        | 0x0000 |
+| * VideoStreamChanged                                                | 0x0000 |
+| * AudioStreamChanged                                                | 0x0001 |
+| * SnapshotStreamChanged                                             | 0x0002 |
 \*----------------------------------------------------------------------------*/
 
 /*
- * Command RequestCommissioningApproval
+ * Command AudioStreamAllocate
  */
-class CommissionerControlRequestCommissioningApproval : public ClusterCommand
+class CameraAvStreamManagementAudioStreamAllocate : public ClusterCommand
 {
 public:
-    CommissionerControlRequestCommissioningApproval(CredentialIssuerCommands * credsIssuerConfig) :
-        ClusterCommand("request-commissioning-approval", credsIssuerConfig)
+    CameraAvStreamManagementAudioStreamAllocate(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("audio-stream-allocate", credsIssuerConfig)
     {
-        AddArgument("RequestID", 0, UINT64_MAX, &mRequest.requestID);
-        AddArgument("VendorID", 0, UINT16_MAX, &mRequest.vendorID);
-        AddArgument("ProductID", 0, UINT16_MAX, &mRequest.productID);
-        AddArgument("Label", &mRequest.label);
+        AddArgument("StreamType", 0, UINT8_MAX, &mRequest.streamType);
+        AddArgument("AudioCodec", 0, UINT8_MAX, &mRequest.audioCodec);
+        AddArgument("ChannelCount", 0, UINT8_MAX, &mRequest.channelCount);
+        AddArgument("SampleRate", 0, UINT32_MAX, &mRequest.sampleRate);
+        AddArgument("BitRate", 0, UINT32_MAX, &mRequest.bitRate);
+        AddArgument("BitDepth", 0, UINT8_MAX, &mRequest.bitDepth);
         ClusterCommand::AddArguments();
     }
 
     CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::CommissionerControl::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::CommissionerControl::Commands::RequestCommissioningApproval::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::AudioStreamAllocate::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
                         commandId, endpointIds.at(0));
@@ -13861,8 +13914,8 @@ class CommissionerControlRequestCommissioningApproval : public ClusterCommand
 
     CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::CommissionerControl::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::CommissionerControl::Commands::RequestCommissioningApproval::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::AudioStreamAllocate::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
                         groupId);
@@ -13871,27 +13924,26 @@ class CommissionerControlRequestCommissioningApproval : public ClusterCommand
     }
 
 private:
-    chip::app::Clusters::CommissionerControl::Commands::RequestCommissioningApproval::Type mRequest;
+    chip::app::Clusters::CameraAvStreamManagement::Commands::AudioStreamAllocate::Type mRequest;
 };
 
 /*
- * Command CommissionNode
+ * Command AudioStreamDeallocate
  */
-class CommissionerControlCommissionNode : public ClusterCommand
+class CameraAvStreamManagementAudioStreamDeallocate : public ClusterCommand
 {
 public:
-    CommissionerControlCommissionNode(CredentialIssuerCommands * credsIssuerConfig) :
-        ClusterCommand("commission-node", credsIssuerConfig)
+    CameraAvStreamManagementAudioStreamDeallocate(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("audio-stream-deallocate", credsIssuerConfig)
     {
-        AddArgument("RequestID", 0, UINT64_MAX, &mRequest.requestID);
-        AddArgument("ResponseTimeoutSeconds", 0, UINT16_MAX, &mRequest.responseTimeoutSeconds);
+        AddArgument("AudioStreamID", 0, UINT16_MAX, &mRequest.audioStreamID);
         ClusterCommand::AddArguments();
     }
 
     CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::CommissionerControl::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::CommissionerControl::Commands::CommissionNode::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::AudioStreamDeallocate::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
                         commandId, endpointIds.at(0));
@@ -13900,8 +13952,8 @@ class CommissionerControlCommissionNode : public ClusterCommand
 
     CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::CommissionerControl::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::CommissionerControl::Commands::CommissionNode::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::AudioStreamDeallocate::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
                         groupId);
@@ -13910,171 +13962,77 @@ class CommissionerControlCommissionNode : public ClusterCommand
     }
 
 private:
-    chip::app::Clusters::CommissionerControl::Commands::CommissionNode::Type mRequest;
+    chip::app::Clusters::CameraAvStreamManagement::Commands::AudioStreamDeallocate::Type mRequest;
 };
 
-/*----------------------------------------------------------------------------*\
-| Cluster ElectricalMeasurement                                       | 0x0B04 |
-|------------------------------------------------------------------------------|
-| Commands:                                                           |        |
-| * GetProfileInfoCommand                                             |   0x00 |
-| * GetMeasurementProfileCommand                                      |   0x01 |
-|------------------------------------------------------------------------------|
-| Attributes:                                                         |        |
-| * MeasurementType                                                   | 0x0000 |
-| * DcVoltage                                                         | 0x0100 |
-| * DcVoltageMin                                                      | 0x0101 |
-| * DcVoltageMax                                                      | 0x0102 |
-| * DcCurrent                                                         | 0x0103 |
-| * DcCurrentMin                                                      | 0x0104 |
-| * DcCurrentMax                                                      | 0x0105 |
-| * DcPower                                                           | 0x0106 |
-| * DcPowerMin                                                        | 0x0107 |
-| * DcPowerMax                                                        | 0x0108 |
-| * DcVoltageMultiplier                                               | 0x0200 |
-| * DcVoltageDivisor                                                  | 0x0201 |
-| * DcCurrentMultiplier                                               | 0x0202 |
-| * DcCurrentDivisor                                                  | 0x0203 |
-| * DcPowerMultiplier                                                 | 0x0204 |
-| * DcPowerDivisor                                                    | 0x0205 |
-| * AcFrequency                                                       | 0x0300 |
-| * AcFrequencyMin                                                    | 0x0301 |
-| * AcFrequencyMax                                                    | 0x0302 |
-| * NeutralCurrent                                                    | 0x0303 |
-| * TotalActivePower                                                  | 0x0304 |
-| * TotalReactivePower                                                | 0x0305 |
-| * TotalApparentPower                                                | 0x0306 |
-| * Measured1stHarmonicCurrent                                        | 0x0307 |
-| * Measured3rdHarmonicCurrent                                        | 0x0308 |
-| * Measured5thHarmonicCurrent                                        | 0x0309 |
-| * Measured7thHarmonicCurrent                                        | 0x030A |
-| * Measured9thHarmonicCurrent                                        | 0x030B |
-| * Measured11thHarmonicCurrent                                       | 0x030C |
-| * MeasuredPhase1stHarmonicCurrent                                   | 0x030D |
-| * MeasuredPhase3rdHarmonicCurrent                                   | 0x030E |
-| * MeasuredPhase5thHarmonicCurrent                                   | 0x030F |
-| * MeasuredPhase7thHarmonicCurrent                                   | 0x0310 |
-| * MeasuredPhase9thHarmonicCurrent                                   | 0x0311 |
-| * MeasuredPhase11thHarmonicCurrent                                  | 0x0312 |
-| * AcFrequencyMultiplier                                             | 0x0400 |
-| * AcFrequencyDivisor                                                | 0x0401 |
-| * PowerMultiplier                                                   | 0x0402 |
-| * PowerDivisor                                                      | 0x0403 |
-| * HarmonicCurrentMultiplier                                         | 0x0404 |
-| * PhaseHarmonicCurrentMultiplier                                    | 0x0405 |
-| * InstantaneousVoltage                                              | 0x0500 |
-| * InstantaneousLineCurrent                                          | 0x0501 |
-| * InstantaneousActiveCurrent                                        | 0x0502 |
-| * InstantaneousReactiveCurrent                                      | 0x0503 |
-| * InstantaneousPower                                                | 0x0504 |
-| * RmsVoltage                                                        | 0x0505 |
-| * RmsVoltageMin                                                     | 0x0506 |
-| * RmsVoltageMax                                                     | 0x0507 |
-| * RmsCurrent                                                        | 0x0508 |
-| * RmsCurrentMin                                                     | 0x0509 |
-| * RmsCurrentMax                                                     | 0x050A |
-| * ActivePower                                                       | 0x050B |
-| * ActivePowerMin                                                    | 0x050C |
-| * ActivePowerMax                                                    | 0x050D |
-| * ReactivePower                                                     | 0x050E |
-| * ApparentPower                                                     | 0x050F |
-| * PowerFactor                                                       | 0x0510 |
-| * AverageRmsVoltageMeasurementPeriod                                | 0x0511 |
-| * AverageRmsUnderVoltageCounter                                     | 0x0513 |
-| * RmsExtremeOverVoltagePeriod                                       | 0x0514 |
-| * RmsExtremeUnderVoltagePeriod                                      | 0x0515 |
-| * RmsVoltageSagPeriod                                               | 0x0516 |
-| * RmsVoltageSwellPeriod                                             | 0x0517 |
-| * AcVoltageMultiplier                                               | 0x0600 |
-| * AcVoltageDivisor                                                  | 0x0601 |
-| * AcCurrentMultiplier                                               | 0x0602 |
-| * AcCurrentDivisor                                                  | 0x0603 |
-| * AcPowerMultiplier                                                 | 0x0604 |
-| * AcPowerDivisor                                                    | 0x0605 |
-| * OverloadAlarmsMask                                                | 0x0700 |
-| * VoltageOverload                                                   | 0x0701 |
-| * CurrentOverload                                                   | 0x0702 |
-| * AcOverloadAlarmsMask                                              | 0x0800 |
-| * AcVoltageOverload                                                 | 0x0801 |
-| * AcCurrentOverload                                                 | 0x0802 |
-| * AcActivePowerOverload                                             | 0x0803 |
-| * AcReactivePowerOverload                                           | 0x0804 |
-| * AverageRmsOverVoltage                                             | 0x0805 |
-| * AverageRmsUnderVoltage                                            | 0x0806 |
-| * RmsExtremeOverVoltage                                             | 0x0807 |
-| * RmsExtremeUnderVoltage                                            | 0x0808 |
-| * RmsVoltageSag                                                     | 0x0809 |
-| * RmsVoltageSwell                                                   | 0x080A |
-| * LineCurrentPhaseB                                                 | 0x0901 |
-| * ActiveCurrentPhaseB                                               | 0x0902 |
-| * ReactiveCurrentPhaseB                                             | 0x0903 |
-| * RmsVoltagePhaseB                                                  | 0x0905 |
-| * RmsVoltageMinPhaseB                                               | 0x0906 |
-| * RmsVoltageMaxPhaseB                                               | 0x0907 |
-| * RmsCurrentPhaseB                                                  | 0x0908 |
-| * RmsCurrentMinPhaseB                                               | 0x0909 |
-| * RmsCurrentMaxPhaseB                                               | 0x090A |
-| * ActivePowerPhaseB                                                 | 0x090B |
-| * ActivePowerMinPhaseB                                              | 0x090C |
-| * ActivePowerMaxPhaseB                                              | 0x090D |
-| * ReactivePowerPhaseB                                               | 0x090E |
-| * ApparentPowerPhaseB                                               | 0x090F |
-| * PowerFactorPhaseB                                                 | 0x0910 |
-| * AverageRmsVoltageMeasurementPeriodPhaseB                          | 0x0911 |
-| * AverageRmsOverVoltageCounterPhaseB                                | 0x0912 |
-| * AverageRmsUnderVoltageCounterPhaseB                               | 0x0913 |
-| * RmsExtremeOverVoltagePeriodPhaseB                                 | 0x0914 |
-| * RmsExtremeUnderVoltagePeriodPhaseB                                | 0x0915 |
-| * RmsVoltageSagPeriodPhaseB                                         | 0x0916 |
-| * RmsVoltageSwellPeriodPhaseB                                       | 0x0917 |
-| * LineCurrentPhaseC                                                 | 0x0A01 |
-| * ActiveCurrentPhaseC                                               | 0x0A02 |
-| * ReactiveCurrentPhaseC                                             | 0x0A03 |
-| * RmsVoltagePhaseC                                                  | 0x0A05 |
-| * RmsVoltageMinPhaseC                                               | 0x0A06 |
-| * RmsVoltageMaxPhaseC                                               | 0x0A07 |
-| * RmsCurrentPhaseC                                                  | 0x0A08 |
-| * RmsCurrentMinPhaseC                                               | 0x0A09 |
-| * RmsCurrentMaxPhaseC                                               | 0x0A0A |
-| * ActivePowerPhaseC                                                 | 0x0A0B |
-| * ActivePowerMinPhaseC                                              | 0x0A0C |
-| * ActivePowerMaxPhaseC                                              | 0x0A0D |
-| * ReactivePowerPhaseC                                               | 0x0A0E |
-| * ApparentPowerPhaseC                                               | 0x0A0F |
-| * PowerFactorPhaseC                                                 | 0x0A10 |
-| * AverageRmsVoltageMeasurementPeriodPhaseC                          | 0x0A11 |
-| * AverageRmsOverVoltageCounterPhaseC                                | 0x0A12 |
-| * AverageRmsUnderVoltageCounterPhaseC                               | 0x0A13 |
-| * RmsExtremeOverVoltagePeriodPhaseC                                 | 0x0A14 |
-| * RmsExtremeUnderVoltagePeriodPhaseC                                | 0x0A15 |
-| * RmsVoltageSagPeriodPhaseC                                         | 0x0A16 |
-| * RmsVoltageSwellPeriodPhaseC                                       | 0x0A17 |
-| * GeneratedCommandList                                              | 0xFFF8 |
-| * AcceptedCommandList                                               | 0xFFF9 |
-| * EventList                                                         | 0xFFFA |
-| * AttributeList                                                     | 0xFFFB |
-| * FeatureMap                                                        | 0xFFFC |
-| * ClusterRevision                                                   | 0xFFFD |
-|------------------------------------------------------------------------------|
-| Events:                                                             |        |
-\*----------------------------------------------------------------------------*/
+/*
+ * Command VideoStreamAllocate
+ */
+class CameraAvStreamManagementVideoStreamAllocate : public ClusterCommand
+{
+public:
+    CameraAvStreamManagementVideoStreamAllocate(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("video-stream-allocate", credsIssuerConfig), mComplex_MinResolution(&mRequest.minResolution),
+        mComplex_MaxResolution(&mRequest.maxResolution)
+    {
+        AddArgument("StreamType", 0, UINT8_MAX, &mRequest.streamType);
+        AddArgument("VideoCodec", 0, UINT8_MAX, &mRequest.videoCodec);
+        AddArgument("MinFrameRate", 0, UINT16_MAX, &mRequest.minFrameRate);
+        AddArgument("MaxFrameRate", 0, UINT16_MAX, &mRequest.maxFrameRate);
+        AddArgument("MinResolution", &mComplex_MinResolution);
+        AddArgument("MaxResolution", &mComplex_MaxResolution);
+        AddArgument("MinBitRate", 0, UINT32_MAX, &mRequest.minBitRate);
+        AddArgument("MaxBitRate", 0, UINT32_MAX, &mRequest.maxBitRate);
+        AddArgument("MinFragmentLen", 0, UINT16_MAX, &mRequest.minFragmentLen);
+        AddArgument("MaxFragmentLen", 0, UINT16_MAX, &mRequest.maxFragmentLen);
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::VideoStreamAllocate::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
+                        commandId, endpointIds.at(0));
+        return ClusterCommand::SendCommand(device, endpointIds.at(0), clusterId, commandId, mRequest);
+    }
+
+    CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::VideoStreamAllocate::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
+                        groupId);
+
+        return ClusterCommand::SendGroupCommand(groupId, fabricIndex, clusterId, commandId, mRequest);
+    }
+
+private:
+    chip::app::Clusters::CameraAvStreamManagement::Commands::VideoStreamAllocate::Type mRequest;
+    TypedComplexArgument<chip::app::Clusters::CameraAvStreamManagement::Structs::DimensionStruct::Type> mComplex_MinResolution;
+    TypedComplexArgument<chip::app::Clusters::CameraAvStreamManagement::Structs::DimensionStruct::Type> mComplex_MaxResolution;
+};
 
 /*
- * Command GetProfileInfoCommand
+ * Command VideoStreamModify
  */
-class ElectricalMeasurementGetProfileInfoCommand : public ClusterCommand
+class CameraAvStreamManagementVideoStreamModify : public ClusterCommand
 {
 public:
-    ElectricalMeasurementGetProfileInfoCommand(CredentialIssuerCommands * credsIssuerConfig) :
-        ClusterCommand("get-profile-info-command", credsIssuerConfig)
+    CameraAvStreamManagementVideoStreamModify(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("video-stream-modify", credsIssuerConfig), mComplex_Resolution(&mRequest.resolution)
     {
+        AddArgument("VideoStreamID", 0, UINT16_MAX, &mRequest.videoStreamID);
+        AddArgument("Resolution", &mComplex_Resolution);
         ClusterCommand::AddArguments();
     }
 
     CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::ElectricalMeasurement::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::ElectricalMeasurement::Commands::GetProfileInfoCommand::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::VideoStreamModify::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
                         commandId, endpointIds.at(0));
@@ -14083,8 +14041,8 @@ class ElectricalMeasurementGetProfileInfoCommand : public ClusterCommand
 
     CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::ElectricalMeasurement::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::ElectricalMeasurement::Commands::GetProfileInfoCommand::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::VideoStreamModify::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
                         groupId);
@@ -14093,29 +14051,27 @@ class ElectricalMeasurementGetProfileInfoCommand : public ClusterCommand
     }
 
 private:
-    chip::app::Clusters::ElectricalMeasurement::Commands::GetProfileInfoCommand::Type mRequest;
+    chip::app::Clusters::CameraAvStreamManagement::Commands::VideoStreamModify::Type mRequest;
+    TypedComplexArgument<chip::app::Clusters::CameraAvStreamManagement::Structs::DimensionStruct::Type> mComplex_Resolution;
 };
 
 /*
- * Command GetMeasurementProfileCommand
+ * Command VideoStreamDeallocate
  */
-class ElectricalMeasurementGetMeasurementProfileCommand : public ClusterCommand
+class CameraAvStreamManagementVideoStreamDeallocate : public ClusterCommand
 {
 public:
-    ElectricalMeasurementGetMeasurementProfileCommand(CredentialIssuerCommands * credsIssuerConfig) :
-        ClusterCommand("get-measurement-profile-command", credsIssuerConfig)
+    CameraAvStreamManagementVideoStreamDeallocate(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("video-stream-deallocate", credsIssuerConfig)
     {
-        AddArgument("AttributeId", 0, UINT16_MAX, &mRequest.attributeId);
-        AddArgument("StartTime", 0, UINT32_MAX, &mRequest.startTime);
-        AddArgument("NumberOfIntervals", 0, UINT8_MAX, &mRequest.numberOfIntervals);
+        AddArgument("VideoStreamID", 0, UINT16_MAX, &mRequest.videoStreamID);
         ClusterCommand::AddArguments();
     }
 
     CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::ElectricalMeasurement::Id;
-        constexpr chip::CommandId commandId =
-            chip::app::Clusters::ElectricalMeasurement::Commands::GetMeasurementProfileCommand::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::VideoStreamDeallocate::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
                         commandId, endpointIds.at(0));
@@ -14124,9 +14080,8 @@ class ElectricalMeasurementGetMeasurementProfileCommand : public ClusterCommand
 
     CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::ElectricalMeasurement::Id;
-        constexpr chip::CommandId commandId =
-            chip::app::Clusters::ElectricalMeasurement::Commands::GetMeasurementProfileCommand::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::VideoStreamDeallocate::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
                         groupId);
@@ -14135,159 +14090,32 @@ class ElectricalMeasurementGetMeasurementProfileCommand : public ClusterCommand
     }
 
 private:
-    chip::app::Clusters::ElectricalMeasurement::Commands::GetMeasurementProfileCommand::Type mRequest;
+    chip::app::Clusters::CameraAvStreamManagement::Commands::VideoStreamDeallocate::Type mRequest;
 };
 
-/*----------------------------------------------------------------------------*\
-| Cluster UnitTesting                                                 | 0xFFF1FC05 |
-|------------------------------------------------------------------------------|
-| Commands:                                                           |        |
-| * Test                                                              |   0x00 |
-| * TestNotHandled                                                    |   0x01 |
-| * TestSpecific                                                      |   0x02 |
-| * TestUnknownCommand                                                |   0x03 |
-| * TestAddArguments                                                  |   0x04 |
-| * TestSimpleArgumentRequest                                         |   0x05 |
-| * TestStructArrayArgumentRequest                                    |   0x06 |
-| * TestStructArgumentRequest                                         |   0x07 |
-| * TestNestedStructArgumentRequest                                   |   0x08 |
-| * TestListStructArgumentRequest                                     |   0x09 |
-| * TestListInt8UArgumentRequest                                      |   0x0A |
-| * TestNestedStructListArgumentRequest                               |   0x0B |
-| * TestListNestedStructListArgumentRequest                           |   0x0C |
-| * TestListInt8UReverseRequest                                       |   0x0D |
-| * TestEnumsRequest                                                  |   0x0E |
-| * TestNullableOptionalRequest                                       |   0x0F |
-| * TestComplexNullableOptionalRequest                                |   0x10 |
-| * SimpleStructEchoRequest                                           |   0x11 |
-| * TimedInvokeRequest                                                |   0x12 |
-| * TestSimpleOptionalArgumentRequest                                 |   0x13 |
-| * TestEmitTestEventRequest                                          |   0x14 |
-| * TestEmitTestFabricScopedEventRequest                              |   0x15 |
-| * TestBatchHelperRequest                                            |   0x16 |
-| * TestSecondBatchHelperRequest                                      |   0x17 |
-| * StringEchoRequest                                                 |   0x18 |
-| * GlobalEchoRequest                                                 |   0x19 |
-| * TestDifferentVendorMeiRequest                                     |   0xFFF200AA|
-|------------------------------------------------------------------------------|
-| Attributes:                                                         |        |
-| * Boolean                                                           | 0x0000 |
-| * Bitmap8                                                           | 0x0001 |
-| * Bitmap16                                                          | 0x0002 |
-| * Bitmap32                                                          | 0x0003 |
-| * Bitmap64                                                          | 0x0004 |
-| * Int8u                                                             | 0x0005 |
-| * Int16u                                                            | 0x0006 |
-| * Int24u                                                            | 0x0007 |
-| * Int32u                                                            | 0x0008 |
-| * Int40u                                                            | 0x0009 |
-| * Int48u                                                            | 0x000A |
-| * Int56u                                                            | 0x000B |
-| * Int64u                                                            | 0x000C |
-| * Int8s                                                             | 0x000D |
-| * Int16s                                                            | 0x000E |
-| * Int24s                                                            | 0x000F |
-| * Int32s                                                            | 0x0010 |
-| * Int40s                                                            | 0x0011 |
-| * Int48s                                                            | 0x0012 |
-| * Int56s                                                            | 0x0013 |
-| * Int64s                                                            | 0x0014 |
-| * Enum8                                                             | 0x0015 |
-| * Enum16                                                            | 0x0016 |
-| * FloatSingle                                                       | 0x0017 |
-| * FloatDouble                                                       | 0x0018 |
-| * OctetString                                                       | 0x0019 |
-| * ListInt8u                                                         | 0x001A |
-| * ListOctetString                                                   | 0x001B |
-| * ListStructOctetString                                             | 0x001C |
-| * LongOctetString                                                   | 0x001D |
-| * CharString                                                        | 0x001E |
-| * LongCharString                                                    | 0x001F |
-| * EpochUs                                                           | 0x0020 |
-| * EpochS                                                            | 0x0021 |
-| * VendorId                                                          | 0x0022 |
-| * ListNullablesAndOptionalsStruct                                   | 0x0023 |
-| * EnumAttr                                                          | 0x0024 |
-| * StructAttr                                                        | 0x0025 |
-| * RangeRestrictedInt8u                                              | 0x0026 |
-| * RangeRestrictedInt8s                                              | 0x0027 |
-| * RangeRestrictedInt16u                                             | 0x0028 |
-| * RangeRestrictedInt16s                                             | 0x0029 |
-| * ListLongOctetString                                               | 0x002A |
-| * ListFabricScoped                                                  | 0x002B |
-| * TimedWriteBoolean                                                 | 0x0030 |
-| * GeneralErrorBoolean                                               | 0x0031 |
-| * ClusterErrorBoolean                                               | 0x0032 |
-| * GlobalEnum                                                        | 0x0033 |
-| * GlobalStruct                                                      | 0x0034 |
-| * Unsupported                                                       | 0x00FF |
-| * ReadFailureCode                                                   | 0x3000 |
-| * FailureInt32U                                                     | 0x3001 |
-| * NullableBoolean                                                   | 0x4000 |
-| * NullableBitmap8                                                   | 0x4001 |
-| * NullableBitmap16                                                  | 0x4002 |
-| * NullableBitmap32                                                  | 0x4003 |
-| * NullableBitmap64                                                  | 0x4004 |
-| * NullableInt8u                                                     | 0x4005 |
-| * NullableInt16u                                                    | 0x4006 |
-| * NullableInt24u                                                    | 0x4007 |
-| * NullableInt32u                                                    | 0x4008 |
-| * NullableInt40u                                                    | 0x4009 |
-| * NullableInt48u                                                    | 0x400A |
-| * NullableInt56u                                                    | 0x400B |
-| * NullableInt64u                                                    | 0x400C |
-| * NullableInt8s                                                     | 0x400D |
-| * NullableInt16s                                                    | 0x400E |
-| * NullableInt24s                                                    | 0x400F |
-| * NullableInt32s                                                    | 0x4010 |
-| * NullableInt40s                                                    | 0x4011 |
-| * NullableInt48s                                                    | 0x4012 |
-| * NullableInt56s                                                    | 0x4013 |
-| * NullableInt64s                                                    | 0x4014 |
-| * NullableEnum8                                                     | 0x4015 |
-| * NullableEnum16                                                    | 0x4016 |
-| * NullableFloatSingle                                               | 0x4017 |
-| * NullableFloatDouble                                               | 0x4018 |
-| * NullableOctetString                                               | 0x4019 |
-| * NullableCharString                                                | 0x401E |
-| * NullableEnumAttr                                                  | 0x4024 |
-| * NullableStruct                                                    | 0x4025 |
-| * NullableRangeRestrictedInt8u                                      | 0x4026 |
-| * NullableRangeRestrictedInt8s                                      | 0x4027 |
-| * NullableRangeRestrictedInt16u                                     | 0x4028 |
-| * NullableRangeRestrictedInt16s                                     | 0x4029 |
-| * WriteOnlyInt8u                                                    | 0x402A |
-| * NullableGlobalEnum                                                | 0x4033 |
-| * NullableGlobalStruct                                              | 0x4034 |
-| * GeneratedCommandList                                              | 0xFFF8 |
-| * AcceptedCommandList                                               | 0xFFF9 |
-| * EventList                                                         | 0xFFFA |
-| * AttributeList                                                     | 0xFFFB |
-| * FeatureMap                                                        | 0xFFFC |
-| * ClusterRevision                                                   | 0xFFFD |
-| * MeiInt8u                                                          | 0xFFF24F01|
-|------------------------------------------------------------------------------|
-| Events:                                                             |        |
-| * TestEvent                                                         | 0x0001 |
-| * TestFabricScopedEvent                                             | 0x0002 |
-| * TestDifferentVendorMeiEvent                                       | 0xFFF200EE|
-\*----------------------------------------------------------------------------*/
-
 /*
- * Command Test
+ * Command SnapshotStreamAllocate
  */
-class UnitTestingTest : public ClusterCommand
+class CameraAvStreamManagementSnapshotStreamAllocate : public ClusterCommand
 {
 public:
-    UnitTestingTest(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("test", credsIssuerConfig)
+    CameraAvStreamManagementSnapshotStreamAllocate(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("snapshot-stream-allocate", credsIssuerConfig), mComplex_MinResolution(&mRequest.minResolution),
+        mComplex_MaxResolution(&mRequest.maxResolution)
     {
+        AddArgument("ImageCodec", 0, UINT8_MAX, &mRequest.imageCodec);
+        AddArgument("FrameRate", 0, UINT16_MAX, &mRequest.frameRate);
+        AddArgument("BitRate", 0, UINT32_MAX, &mRequest.bitRate);
+        AddArgument("MinResolution", &mComplex_MinResolution);
+        AddArgument("MaxResolution", &mComplex_MaxResolution);
+        AddArgument("Quality", 0, UINT8_MAX, &mRequest.quality);
         ClusterCommand::AddArguments();
     }
 
     CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::Test::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::SnapshotStreamAllocate::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
                         commandId, endpointIds.at(0));
@@ -14296,8 +14124,8 @@ class UnitTestingTest : public ClusterCommand
 
     CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::Test::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::SnapshotStreamAllocate::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
                         groupId);
@@ -14306,24 +14134,28 @@ class UnitTestingTest : public ClusterCommand
     }
 
 private:
-    chip::app::Clusters::UnitTesting::Commands::Test::Type mRequest;
+    chip::app::Clusters::CameraAvStreamManagement::Commands::SnapshotStreamAllocate::Type mRequest;
+    TypedComplexArgument<chip::app::Clusters::CameraAvStreamManagement::Structs::DimensionStruct::Type> mComplex_MinResolution;
+    TypedComplexArgument<chip::app::Clusters::CameraAvStreamManagement::Structs::DimensionStruct::Type> mComplex_MaxResolution;
 };
 
 /*
- * Command TestNotHandled
+ * Command SnapshotStreamDeallocate
  */
-class UnitTestingTestNotHandled : public ClusterCommand
+class CameraAvStreamManagementSnapshotStreamDeallocate : public ClusterCommand
 {
 public:
-    UnitTestingTestNotHandled(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("test-not-handled", credsIssuerConfig)
+    CameraAvStreamManagementSnapshotStreamDeallocate(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("snapshot-stream-deallocate", credsIssuerConfig)
     {
+        AddArgument("SnapshotStreamID", 0, UINT16_MAX, &mRequest.snapshotStreamID);
         ClusterCommand::AddArguments();
     }
 
     CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestNotHandled::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::SnapshotStreamDeallocate::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
                         commandId, endpointIds.at(0));
@@ -14332,8 +14164,8 @@ class UnitTestingTestNotHandled : public ClusterCommand
 
     CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestNotHandled::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::SnapshotStreamDeallocate::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
                         groupId);
@@ -14342,24 +14174,25 @@ class UnitTestingTestNotHandled : public ClusterCommand
     }
 
 private:
-    chip::app::Clusters::UnitTesting::Commands::TestNotHandled::Type mRequest;
+    chip::app::Clusters::CameraAvStreamManagement::Commands::SnapshotStreamDeallocate::Type mRequest;
 };
 
 /*
- * Command TestSpecific
+ * Command SetStreamPriority
  */
-class UnitTestingTestSpecific : public ClusterCommand
+class CameraAvStreamManagementSetStreamPriority : public ClusterCommand
 {
 public:
-    UnitTestingTestSpecific(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("test-specific", credsIssuerConfig)
+    CameraAvStreamManagementSetStreamPriority(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("set-stream-priority", credsIssuerConfig)
     {
         ClusterCommand::AddArguments();
     }
 
     CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestSpecific::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::SetStreamPriority::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
                         commandId, endpointIds.at(0));
@@ -14368,8 +14201,8 @@ class UnitTestingTestSpecific : public ClusterCommand
 
     CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestSpecific::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::SetStreamPriority::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
                         groupId);
@@ -14378,25 +14211,27 @@ class UnitTestingTestSpecific : public ClusterCommand
     }
 
 private:
-    chip::app::Clusters::UnitTesting::Commands::TestSpecific::Type mRequest;
+    chip::app::Clusters::CameraAvStreamManagement::Commands::SetStreamPriority::Type mRequest;
 };
 
 /*
- * Command TestUnknownCommand
+ * Command CaptureSnapshot
  */
-class UnitTestingTestUnknownCommand : public ClusterCommand
+class CameraAvStreamManagementCaptureSnapshot : public ClusterCommand
 {
 public:
-    UnitTestingTestUnknownCommand(CredentialIssuerCommands * credsIssuerConfig) :
-        ClusterCommand("test-unknown-command", credsIssuerConfig)
+    CameraAvStreamManagementCaptureSnapshot(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("capture-snapshot", credsIssuerConfig), mComplex_RequestedResolution(&mRequest.requestedResolution)
     {
+        AddArgument("SnapshotStreamID", 0, UINT16_MAX, &mRequest.snapshotStreamID);
+        AddArgument("RequestedResolution", &mComplex_RequestedResolution);
         ClusterCommand::AddArguments();
     }
 
     CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestUnknownCommand::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::CaptureSnapshot::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
                         commandId, endpointIds.at(0));
@@ -14405,8 +14240,8 @@ class UnitTestingTestUnknownCommand : public ClusterCommand
 
     CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestUnknownCommand::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::CaptureSnapshot::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
                         groupId);
@@ -14415,27 +14250,28 @@ class UnitTestingTestUnknownCommand : public ClusterCommand
     }
 
 private:
-    chip::app::Clusters::UnitTesting::Commands::TestUnknownCommand::Type mRequest;
+    chip::app::Clusters::CameraAvStreamManagement::Commands::CaptureSnapshot::Type mRequest;
+    TypedComplexArgument<chip::app::Clusters::CameraAvStreamManagement::Structs::DimensionStruct::Type>
+        mComplex_RequestedResolution;
 };
 
 /*
- * Command TestAddArguments
+ * Command SetViewport
  */
-class UnitTestingTestAddArguments : public ClusterCommand
+class CameraAvStreamManagementSetViewport : public ClusterCommand
 {
 public:
-    UnitTestingTestAddArguments(CredentialIssuerCommands * credsIssuerConfig) :
-        ClusterCommand("test-add-arguments", credsIssuerConfig)
+    CameraAvStreamManagementSetViewport(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("set-viewport", credsIssuerConfig), mComplex_Viewport(&mRequest.viewport)
     {
-        AddArgument("Arg1", 0, UINT8_MAX, &mRequest.arg1);
-        AddArgument("Arg2", 0, UINT8_MAX, &mRequest.arg2);
+        AddArgument("Viewport", &mComplex_Viewport);
         ClusterCommand::AddArguments();
     }
 
     CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestAddArguments::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::SetViewport::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
                         commandId, endpointIds.at(0));
@@ -14444,8 +14280,8 @@ class UnitTestingTestAddArguments : public ClusterCommand
 
     CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestAddArguments::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::SetViewport::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
                         groupId);
@@ -14454,26 +14290,27 @@ class UnitTestingTestAddArguments : public ClusterCommand
     }
 
 private:
-    chip::app::Clusters::UnitTesting::Commands::TestAddArguments::Type mRequest;
+    chip::app::Clusters::CameraAvStreamManagement::Commands::SetViewport::Type mRequest;
+    TypedComplexArgument<chip::app::Clusters::CameraAvStreamManagement::Structs::ViewportStruct::Type> mComplex_Viewport;
 };
 
 /*
- * Command TestSimpleArgumentRequest
+ * Command SetImageRotation
  */
-class UnitTestingTestSimpleArgumentRequest : public ClusterCommand
+class CameraAvStreamManagementSetImageRotation : public ClusterCommand
 {
 public:
-    UnitTestingTestSimpleArgumentRequest(CredentialIssuerCommands * credsIssuerConfig) :
-        ClusterCommand("test-simple-argument-request", credsIssuerConfig)
+    CameraAvStreamManagementSetImageRotation(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("set-image-rotation", credsIssuerConfig)
     {
-        AddArgument("Arg1", 0, 1, &mRequest.arg1);
+        AddArgument("Angle", 0, UINT16_MAX, &mRequest.angle);
         ClusterCommand::AddArguments();
     }
 
     CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestSimpleArgumentRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::SetImageRotation::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
                         commandId, endpointIds.at(0));
@@ -14482,8 +14319,8 @@ class UnitTestingTestSimpleArgumentRequest : public ClusterCommand
 
     CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestSimpleArgumentRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::SetImageRotation::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
                         groupId);
@@ -14492,32 +14329,26 @@ class UnitTestingTestSimpleArgumentRequest : public ClusterCommand
     }
 
 private:
-    chip::app::Clusters::UnitTesting::Commands::TestSimpleArgumentRequest::Type mRequest;
+    chip::app::Clusters::CameraAvStreamManagement::Commands::SetImageRotation::Type mRequest;
 };
 
 /*
- * Command TestStructArrayArgumentRequest
+ * Command SetImageFlipHorizontal
  */
-class UnitTestingTestStructArrayArgumentRequest : public ClusterCommand
+class CameraAvStreamManagementSetImageFlipHorizontal : public ClusterCommand
 {
 public:
-    UnitTestingTestStructArrayArgumentRequest(CredentialIssuerCommands * credsIssuerConfig) :
-        ClusterCommand("test-struct-array-argument-request", credsIssuerConfig), mComplex_Arg1(&mRequest.arg1),
-        mComplex_Arg2(&mRequest.arg2), mComplex_Arg3(&mRequest.arg3), mComplex_Arg4(&mRequest.arg4)
+    CameraAvStreamManagementSetImageFlipHorizontal(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("set-image-flip-horizontal", credsIssuerConfig)
     {
-        AddArgument("Arg1", &mComplex_Arg1);
-        AddArgument("Arg2", &mComplex_Arg2);
-        AddArgument("Arg3", &mComplex_Arg3);
-        AddArgument("Arg4", &mComplex_Arg4);
-        AddArgument("Arg5", 0, UINT8_MAX, &mRequest.arg5);
-        AddArgument("Arg6", 0, 1, &mRequest.arg6);
+        AddArgument("OnOff", 0, 1, &mRequest.onOff);
         ClusterCommand::AddArguments();
     }
 
     CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestStructArrayArgumentRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::SetImageFlipHorizontal::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
                         commandId, endpointIds.at(0));
@@ -14526,8 +14357,8 @@ class UnitTestingTestStructArrayArgumentRequest : public ClusterCommand
 
     CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestStructArrayArgumentRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::SetImageFlipHorizontal::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
                         groupId);
@@ -14536,32 +14367,26 @@ class UnitTestingTestStructArrayArgumentRequest : public ClusterCommand
     }
 
 private:
-    chip::app::Clusters::UnitTesting::Commands::TestStructArrayArgumentRequest::Type mRequest;
-    TypedComplexArgument<chip::app::DataModel::List<const chip::app::Clusters::UnitTesting::Structs::NestedStructList::Type>>
-        mComplex_Arg1;
-    TypedComplexArgument<chip::app::DataModel::List<const chip::app::Clusters::UnitTesting::Structs::SimpleStruct::Type>>
-        mComplex_Arg2;
-    TypedComplexArgument<chip::app::DataModel::List<const chip::app::Clusters::UnitTesting::SimpleEnum>> mComplex_Arg3;
-    TypedComplexArgument<chip::app::DataModel::List<const bool>> mComplex_Arg4;
+    chip::app::Clusters::CameraAvStreamManagement::Commands::SetImageFlipHorizontal::Type mRequest;
 };
 
 /*
- * Command TestStructArgumentRequest
+ * Command SetImageFlipVertical
  */
-class UnitTestingTestStructArgumentRequest : public ClusterCommand
+class CameraAvStreamManagementSetImageFlipVertical : public ClusterCommand
 {
 public:
-    UnitTestingTestStructArgumentRequest(CredentialIssuerCommands * credsIssuerConfig) :
-        ClusterCommand("test-struct-argument-request", credsIssuerConfig), mComplex_Arg1(&mRequest.arg1)
+    CameraAvStreamManagementSetImageFlipVertical(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("set-image-flip-vertical", credsIssuerConfig)
     {
-        AddArgument("Arg1", &mComplex_Arg1);
+        AddArgument("OnOff", 0, 1, &mRequest.onOff);
         ClusterCommand::AddArguments();
     }
 
     CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestStructArgumentRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::SetImageFlipVertical::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
                         commandId, endpointIds.at(0));
@@ -14570,8 +14395,8 @@ class UnitTestingTestStructArgumentRequest : public ClusterCommand
 
     CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestStructArgumentRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::SetImageFlipVertical::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
                         groupId);
@@ -14580,27 +14405,53 @@ class UnitTestingTestStructArgumentRequest : public ClusterCommand
     }
 
 private:
-    chip::app::Clusters::UnitTesting::Commands::TestStructArgumentRequest::Type mRequest;
-    TypedComplexArgument<chip::app::Clusters::UnitTesting::Structs::SimpleStruct::Type> mComplex_Arg1;
+    chip::app::Clusters::CameraAvStreamManagement::Commands::SetImageFlipVertical::Type mRequest;
 };
 
+/*----------------------------------------------------------------------------*\
+| Cluster CameraAvSettingsUserLevelManagement                         | 0x0552 |
+|------------------------------------------------------------------------------|
+| Commands:                                                           |        |
+| * MptzSet                                                           |   0x00 |
+| * MptzRelativeMove                                                  |   0x01 |
+| * SetAsPreset                                                       |   0x02 |
+| * DptzSetViewport                                                   |   0x03 |
+| * DptzRelativeMove                                                  |   0x04 |
+|------------------------------------------------------------------------------|
+| Attributes:                                                         |        |
+| * Mptz                                                              | 0x0000 |
+| * MaxPresets                                                        | 0x0001 |
+| * PresetMptzTable                                                   | 0x0002 |
+| * MptzRelativeMove                                                  | 0x0003 |
+| * DptzRelativeMove                                                  | 0x0004 |
+| * GeneratedCommandList                                              | 0xFFF8 |
+| * AcceptedCommandList                                               | 0xFFF9 |
+| * EventList                                                         | 0xFFFA |
+| * AttributeList                                                     | 0xFFFB |
+| * FeatureMap                                                        | 0xFFFC |
+| * ClusterRevision                                                   | 0xFFFD |
+|------------------------------------------------------------------------------|
+| Events:                                                             |        |
+\*----------------------------------------------------------------------------*/
+
 /*
- * Command TestNestedStructArgumentRequest
+ * Command MptzSet
  */
-class UnitTestingTestNestedStructArgumentRequest : public ClusterCommand
+class CameraAvSettingsUserLevelManagementMptzSet : public ClusterCommand
 {
 public:
-    UnitTestingTestNestedStructArgumentRequest(CredentialIssuerCommands * credsIssuerConfig) :
-        ClusterCommand("test-nested-struct-argument-request", credsIssuerConfig), mComplex_Arg1(&mRequest.arg1)
+    CameraAvSettingsUserLevelManagementMptzSet(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("mptz-set", credsIssuerConfig), mComplex_NewPTZ(&mRequest.newPTZ)
     {
-        AddArgument("Arg1", &mComplex_Arg1);
+        AddArgument("NewPTZ", &mComplex_NewPTZ, "", Argument::kOptional);
+        AddArgument("PresetID", 0, UINT8_MAX, &mRequest.presetID);
         ClusterCommand::AddArguments();
     }
 
     CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestNestedStructArgumentRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::MptzSet::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
                         commandId, endpointIds.at(0));
@@ -14609,8 +14460,8 @@ class UnitTestingTestNestedStructArgumentRequest : public ClusterCommand
 
     CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestNestedStructArgumentRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::MptzSet::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
                         groupId);
@@ -14619,27 +14470,31 @@ class UnitTestingTestNestedStructArgumentRequest : public ClusterCommand
     }
 
 private:
-    chip::app::Clusters::UnitTesting::Commands::TestNestedStructArgumentRequest::Type mRequest;
-    TypedComplexArgument<chip::app::Clusters::UnitTesting::Structs::NestedStruct::Type> mComplex_Arg1;
+    chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::MptzSet::Type mRequest;
+    TypedComplexArgument<chip::Optional<chip::app::Clusters::CameraAvSettingsUserLevelManagement::Structs::MPTZStruct::Type>>
+        mComplex_NewPTZ;
 };
 
 /*
- * Command TestListStructArgumentRequest
+ * Command MptzRelativeMove
  */
-class UnitTestingTestListStructArgumentRequest : public ClusterCommand
+class CameraAvSettingsUserLevelManagementMptzRelativeMove : public ClusterCommand
 {
 public:
-    UnitTestingTestListStructArgumentRequest(CredentialIssuerCommands * credsIssuerConfig) :
-        ClusterCommand("test-list-struct-argument-request", credsIssuerConfig), mComplex_Arg1(&mRequest.arg1)
+    CameraAvSettingsUserLevelManagementMptzRelativeMove(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("mptz-relative-move", credsIssuerConfig)
     {
-        AddArgument("Arg1", &mComplex_Arg1);
+        AddArgument("Pan", INT16_MIN, INT16_MAX, &mRequest.pan);
+        AddArgument("Tilt", INT16_MIN, INT16_MAX, &mRequest.tilt);
+        AddArgument("Zoom", INT16_MIN, INT16_MAX, &mRequest.zoom);
         ClusterCommand::AddArguments();
     }
 
     CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestListStructArgumentRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
+        constexpr chip::CommandId commandId =
+            chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::MptzRelativeMove::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
                         commandId, endpointIds.at(0));
@@ -14648,8 +14503,9 @@ class UnitTestingTestListStructArgumentRequest : public ClusterCommand
 
     CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestListStructArgumentRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
+        constexpr chip::CommandId commandId =
+            chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::MptzRelativeMove::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
                         groupId);
@@ -14658,28 +14514,25 @@ class UnitTestingTestListStructArgumentRequest : public ClusterCommand
     }
 
 private:
-    chip::app::Clusters::UnitTesting::Commands::TestListStructArgumentRequest::Type mRequest;
-    TypedComplexArgument<chip::app::DataModel::List<const chip::app::Clusters::UnitTesting::Structs::SimpleStruct::Type>>
-        mComplex_Arg1;
+    chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::MptzRelativeMove::Type mRequest;
 };
 
 /*
- * Command TestListInt8UArgumentRequest
+ * Command SetAsPreset
  */
-class UnitTestingTestListInt8UArgumentRequest : public ClusterCommand
+class CameraAvSettingsUserLevelManagementSetAsPreset : public ClusterCommand
 {
 public:
-    UnitTestingTestListInt8UArgumentRequest(CredentialIssuerCommands * credsIssuerConfig) :
-        ClusterCommand("test-list-int8uargument-request", credsIssuerConfig), mComplex_Arg1(&mRequest.arg1)
+    CameraAvSettingsUserLevelManagementSetAsPreset(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("set-as-preset", credsIssuerConfig)
     {
-        AddArgument("Arg1", &mComplex_Arg1);
         ClusterCommand::AddArguments();
     }
 
     CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestListInt8UArgumentRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::SetAsPreset::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
                         commandId, endpointIds.at(0));
@@ -14688,8 +14541,8 @@ class UnitTestingTestListInt8UArgumentRequest : public ClusterCommand
 
     CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestListInt8UArgumentRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::SetAsPreset::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
                         groupId);
@@ -14698,27 +14551,28 @@ class UnitTestingTestListInt8UArgumentRequest : public ClusterCommand
     }
 
 private:
-    chip::app::Clusters::UnitTesting::Commands::TestListInt8UArgumentRequest::Type mRequest;
-    TypedComplexArgument<chip::app::DataModel::List<const uint8_t>> mComplex_Arg1;
+    chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::SetAsPreset::Type mRequest;
 };
 
 /*
- * Command TestNestedStructListArgumentRequest
+ * Command DptzSetViewport
  */
-class UnitTestingTestNestedStructListArgumentRequest : public ClusterCommand
+class CameraAvSettingsUserLevelManagementDptzSetViewport : public ClusterCommand
 {
 public:
-    UnitTestingTestNestedStructListArgumentRequest(CredentialIssuerCommands * credsIssuerConfig) :
-        ClusterCommand("test-nested-struct-list-argument-request", credsIssuerConfig), mComplex_Arg1(&mRequest.arg1)
+    CameraAvSettingsUserLevelManagementDptzSetViewport(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("dptz-set-viewport", credsIssuerConfig), mComplex_Viewport(&mRequest.viewport)
     {
-        AddArgument("Arg1", &mComplex_Arg1);
+        AddArgument("VideoStreamID", 0, UINT16_MAX, &mRequest.videoStreamID);
+        AddArgument("Viewport", &mComplex_Viewport);
         ClusterCommand::AddArguments();
     }
 
     CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestNestedStructListArgumentRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
+        constexpr chip::CommandId commandId =
+            chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::DptzSetViewport::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
                         commandId, endpointIds.at(0));
@@ -14727,8 +14581,9 @@ class UnitTestingTestNestedStructListArgumentRequest : public ClusterCommand
 
     CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestNestedStructListArgumentRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
+        constexpr chip::CommandId commandId =
+            chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::DptzSetViewport::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
                         groupId);
@@ -14737,28 +14592,31 @@ class UnitTestingTestNestedStructListArgumentRequest : public ClusterCommand
     }
 
 private:
-    chip::app::Clusters::UnitTesting::Commands::TestNestedStructListArgumentRequest::Type mRequest;
-    TypedComplexArgument<chip::app::Clusters::UnitTesting::Structs::NestedStructList::Type> mComplex_Arg1;
+    chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::DptzSetViewport::Type mRequest;
+    TypedComplexArgument<chip::app::Clusters::CameraAvSettingsUserLevelManagement::Structs::ViewportStruct::Type> mComplex_Viewport;
 };
 
 /*
- * Command TestListNestedStructListArgumentRequest
+ * Command DptzRelativeMove
  */
-class UnitTestingTestListNestedStructListArgumentRequest : public ClusterCommand
+class CameraAvSettingsUserLevelManagementDptzRelativeMove : public ClusterCommand
 {
 public:
-    UnitTestingTestListNestedStructListArgumentRequest(CredentialIssuerCommands * credsIssuerConfig) :
-        ClusterCommand("test-list-nested-struct-list-argument-request", credsIssuerConfig), mComplex_Arg1(&mRequest.arg1)
+    CameraAvSettingsUserLevelManagementDptzRelativeMove(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("dptz-relative-move", credsIssuerConfig)
     {
-        AddArgument("Arg1", &mComplex_Arg1);
+        AddArgument("VideoStreamID", 0, UINT16_MAX, &mRequest.videoStreamID);
+        AddArgument("Pan", INT16_MIN, INT16_MAX, &mRequest.pan);
+        AddArgument("Tilt", INT16_MIN, INT16_MAX, &mRequest.tilt);
+        AddArgument("Zoom", INT8_MIN, INT8_MAX, &mRequest.zoom);
         ClusterCommand::AddArguments();
     }
 
     CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
         constexpr chip::CommandId commandId =
-            chip::app::Clusters::UnitTesting::Commands::TestListNestedStructListArgumentRequest::Id;
+            chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::DptzRelativeMove::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
                         commandId, endpointIds.at(0));
@@ -14767,9 +14625,9 @@ class UnitTestingTestListNestedStructListArgumentRequest : public ClusterCommand
 
     CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
         constexpr chip::CommandId commandId =
-            chip::app::Clusters::UnitTesting::Commands::TestListNestedStructListArgumentRequest::Id;
+            chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::DptzRelativeMove::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
                         groupId);
@@ -14778,28 +14636,53 @@ class UnitTestingTestListNestedStructListArgumentRequest : public ClusterCommand
     }
 
 private:
-    chip::app::Clusters::UnitTesting::Commands::TestListNestedStructListArgumentRequest::Type mRequest;
-    TypedComplexArgument<chip::app::DataModel::List<const chip::app::Clusters::UnitTesting::Structs::NestedStructList::Type>>
-        mComplex_Arg1;
+    chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::DptzRelativeMove::Type mRequest;
 };
 
+/*----------------------------------------------------------------------------*\
+| Cluster WebRTCTransportProvider                                     | 0x0553 |
+|------------------------------------------------------------------------------|
+| Commands:                                                           |        |
+| * WebRTCSolicitOffer                                                |   0x01 |
+| * WebRTCProvideOffer                                                |   0x03 |
+| * WebRTCProvideAnswer                                               |   0x05 |
+| * WebRTCProvideICECandidate                                         |   0x06 |
+| * WebRTCEndSession                                                  |   0x07 |
+|------------------------------------------------------------------------------|
+| Attributes:                                                         |        |
+| * CurrentSessions                                                   | 0x0000 |
+| * GeneratedCommandList                                              | 0xFFF8 |
+| * AcceptedCommandList                                               | 0xFFF9 |
+| * EventList                                                         | 0xFFFA |
+| * AttributeList                                                     | 0xFFFB |
+| * FeatureMap                                                        | 0xFFFC |
+| * ClusterRevision                                                   | 0xFFFD |
+|------------------------------------------------------------------------------|
+| Events:                                                             |        |
+\*----------------------------------------------------------------------------*/
+
 /*
- * Command TestListInt8UReverseRequest
+ * Command WebRTCSolicitOffer
  */
-class UnitTestingTestListInt8UReverseRequest : public ClusterCommand
+class WebRTCTransportProviderWebRTCSolicitOffer : public ClusterCommand
 {
 public:
-    UnitTestingTestListInt8UReverseRequest(CredentialIssuerCommands * credsIssuerConfig) :
-        ClusterCommand("test-list-int8ureverse-request", credsIssuerConfig), mComplex_Arg1(&mRequest.arg1)
+    WebRTCTransportProviderWebRTCSolicitOffer(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("web-rtcsolicit-offer", credsIssuerConfig), mComplex_ICEServers(&mRequest.ICEServers)
     {
-        AddArgument("Arg1", &mComplex_Arg1);
+        AddArgument("StreamType", 0, UINT8_MAX, &mRequest.streamType);
+        AddArgument("VideoStreamID", 0, UINT16_MAX, &mRequest.videoStreamID);
+        AddArgument("AudioStreamID", 0, UINT16_MAX, &mRequest.audioStreamID);
+        AddArgument("ICEServers", &mComplex_ICEServers, "", Argument::kOptional);
+        AddArgument("ICETransportPolicy", &mRequest.ICETransportPolicy);
+        AddArgument("MetadataOptions", 0, UINT8_MAX, &mRequest.metadataOptions);
         ClusterCommand::AddArguments();
     }
 
     CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestListInt8UReverseRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportProvider::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCSolicitOffer::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
                         commandId, endpointIds.at(0));
@@ -14808,8 +14691,8 @@ class UnitTestingTestListInt8UReverseRequest : public ClusterCommand
 
     CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestListInt8UReverseRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportProvider::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCSolicitOffer::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
                         groupId);
@@ -14818,28 +14701,36 @@ class UnitTestingTestListInt8UReverseRequest : public ClusterCommand
     }
 
 private:
-    chip::app::Clusters::UnitTesting::Commands::TestListInt8UReverseRequest::Type mRequest;
-    TypedComplexArgument<chip::app::DataModel::List<const uint8_t>> mComplex_Arg1;
+    chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCSolicitOffer::Type mRequest;
+    TypedComplexArgument<chip::Optional<
+        chip::app::DataModel::List<const chip::app::Clusters::WebRTCTransportProvider::Structs::ICEServerStruct::Type>>>
+        mComplex_ICEServers;
 };
 
 /*
- * Command TestEnumsRequest
+ * Command WebRTCProvideOffer
  */
-class UnitTestingTestEnumsRequest : public ClusterCommand
+class WebRTCTransportProviderWebRTCProvideOffer : public ClusterCommand
 {
 public:
-    UnitTestingTestEnumsRequest(CredentialIssuerCommands * credsIssuerConfig) :
-        ClusterCommand("test-enums-request", credsIssuerConfig)
+    WebRTCTransportProviderWebRTCProvideOffer(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("web-rtcprovide-offer", credsIssuerConfig), mComplex_ICEServers(&mRequest.ICEServers)
     {
-        AddArgument("Arg1", 0, UINT16_MAX, &mRequest.arg1);
-        AddArgument("Arg2", 0, UINT8_MAX, &mRequest.arg2);
+        AddArgument("WebRTCSessionID", 0, UINT16_MAX, &mRequest.webRTCSessionID);
+        AddArgument("Sdp", &mRequest.sdp);
+        AddArgument("StreamType", 0, UINT8_MAX, &mRequest.streamType);
+        AddArgument("VideoStreamID", 0, UINT16_MAX, &mRequest.videoStreamID);
+        AddArgument("AudioStreamID", 0, UINT16_MAX, &mRequest.audioStreamID);
+        AddArgument("ICEServers", &mComplex_ICEServers, "", Argument::kOptional);
+        AddArgument("ICETransportPolicy", &mRequest.ICETransportPolicy);
+        AddArgument("MetadataOptions", 0, UINT8_MAX, &mRequest.metadataOptions);
         ClusterCommand::AddArguments();
     }
 
     CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestEnumsRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportProvider::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCProvideOffer::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
                         commandId, endpointIds.at(0));
@@ -14848,8 +14739,8 @@ class UnitTestingTestEnumsRequest : public ClusterCommand
 
     CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestEnumsRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportProvider::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCProvideOffer::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
                         groupId);
@@ -14858,26 +14749,30 @@ class UnitTestingTestEnumsRequest : public ClusterCommand
     }
 
 private:
-    chip::app::Clusters::UnitTesting::Commands::TestEnumsRequest::Type mRequest;
+    chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCProvideOffer::Type mRequest;
+    TypedComplexArgument<chip::Optional<
+        chip::app::DataModel::List<const chip::app::Clusters::WebRTCTransportProvider::Structs::ICEServerStruct::Type>>>
+        mComplex_ICEServers;
 };
 
 /*
- * Command TestNullableOptionalRequest
+ * Command WebRTCProvideAnswer
  */
-class UnitTestingTestNullableOptionalRequest : public ClusterCommand
+class WebRTCTransportProviderWebRTCProvideAnswer : public ClusterCommand
 {
 public:
-    UnitTestingTestNullableOptionalRequest(CredentialIssuerCommands * credsIssuerConfig) :
-        ClusterCommand("test-nullable-optional-request", credsIssuerConfig)
+    WebRTCTransportProviderWebRTCProvideAnswer(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("web-rtcprovide-answer", credsIssuerConfig)
     {
-        AddArgument("Arg1", 0, UINT8_MAX, &mRequest.arg1);
+        AddArgument("WebRTCSessionID", 0, UINT16_MAX, &mRequest.webRTCSessionID);
+        AddArgument("Sdp", &mRequest.sdp);
         ClusterCommand::AddArguments();
     }
 
     CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestNullableOptionalRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportProvider::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCProvideAnswer::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
                         commandId, endpointIds.at(0));
@@ -14886,8 +14781,8 @@ class UnitTestingTestNullableOptionalRequest : public ClusterCommand
 
     CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestNullableOptionalRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportProvider::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCProvideAnswer::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
                         groupId);
@@ -14896,40 +14791,27 @@ class UnitTestingTestNullableOptionalRequest : public ClusterCommand
     }
 
 private:
-    chip::app::Clusters::UnitTesting::Commands::TestNullableOptionalRequest::Type mRequest;
+    chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCProvideAnswer::Type mRequest;
 };
 
 /*
- * Command TestComplexNullableOptionalRequest
+ * Command WebRTCProvideICECandidate
  */
-class UnitTestingTestComplexNullableOptionalRequest : public ClusterCommand
+class WebRTCTransportProviderWebRTCProvideICECandidate : public ClusterCommand
 {
 public:
-    UnitTestingTestComplexNullableOptionalRequest(CredentialIssuerCommands * credsIssuerConfig) :
-        ClusterCommand("test-complex-nullable-optional-request", credsIssuerConfig),
-        mComplex_NullableStruct(&mRequest.nullableStruct), mComplex_OptionalStruct(&mRequest.optionalStruct),
-        mComplex_NullableOptionalStruct(&mRequest.nullableOptionalStruct), mComplex_NullableList(&mRequest.nullableList),
-        mComplex_OptionalList(&mRequest.optionalList), mComplex_NullableOptionalList(&mRequest.nullableOptionalList)
+    WebRTCTransportProviderWebRTCProvideICECandidate(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("web-rtcprovide-icecandidate", credsIssuerConfig)
     {
-        AddArgument("NullableInt", 0, UINT16_MAX, &mRequest.nullableInt);
-        AddArgument("OptionalInt", 0, UINT16_MAX, &mRequest.optionalInt);
-        AddArgument("NullableOptionalInt", 0, UINT16_MAX, &mRequest.nullableOptionalInt);
-        AddArgument("NullableString", &mRequest.nullableString);
-        AddArgument("OptionalString", &mRequest.optionalString);
-        AddArgument("NullableOptionalString", &mRequest.nullableOptionalString);
-        AddArgument("NullableStruct", &mComplex_NullableStruct);
-        AddArgument("OptionalStruct", &mComplex_OptionalStruct, "", Argument::kOptional);
-        AddArgument("NullableOptionalStruct", &mComplex_NullableOptionalStruct, "", Argument::kOptional);
-        AddArgument("NullableList", &mComplex_NullableList);
-        AddArgument("OptionalList", &mComplex_OptionalList, "", Argument::kOptional);
-        AddArgument("NullableOptionalList", &mComplex_NullableOptionalList, "", Argument::kOptional);
+        AddArgument("WebRTCSessionID", 0, UINT16_MAX, &mRequest.webRTCSessionID);
+        AddArgument("ICECandidate", &mRequest.ICECandidate);
         ClusterCommand::AddArguments();
     }
 
     CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestComplexNullableOptionalRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportProvider::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCProvideICECandidate::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
                         commandId, endpointIds.at(0));
@@ -14938,8 +14820,8 @@ class UnitTestingTestComplexNullableOptionalRequest : public ClusterCommand
 
     CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestComplexNullableOptionalRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportProvider::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCProvideICECandidate::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
                         groupId);
@@ -14948,40 +14830,27 @@ class UnitTestingTestComplexNullableOptionalRequest : public ClusterCommand
     }
 
 private:
-    chip::app::Clusters::UnitTesting::Commands::TestComplexNullableOptionalRequest::Type mRequest;
-    TypedComplexArgument<chip::app::DataModel::Nullable<chip::app::Clusters::UnitTesting::Structs::SimpleStruct::Type>>
-        mComplex_NullableStruct;
-    TypedComplexArgument<chip::Optional<chip::app::Clusters::UnitTesting::Structs::SimpleStruct::Type>> mComplex_OptionalStruct;
-    TypedComplexArgument<
-        chip::Optional<chip::app::DataModel::Nullable<chip::app::Clusters::UnitTesting::Structs::SimpleStruct::Type>>>
-        mComplex_NullableOptionalStruct;
-    TypedComplexArgument<
-        chip::app::DataModel::Nullable<chip::app::DataModel::List<const chip::app::Clusters::UnitTesting::SimpleEnum>>>
-        mComplex_NullableList;
-    TypedComplexArgument<chip::Optional<chip::app::DataModel::List<const chip::app::Clusters::UnitTesting::SimpleEnum>>>
-        mComplex_OptionalList;
-    TypedComplexArgument<chip::Optional<
-        chip::app::DataModel::Nullable<chip::app::DataModel::List<const chip::app::Clusters::UnitTesting::SimpleEnum>>>>
-        mComplex_NullableOptionalList;
+    chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCProvideICECandidate::Type mRequest;
 };
 
 /*
- * Command SimpleStructEchoRequest
+ * Command WebRTCEndSession
  */
-class UnitTestingSimpleStructEchoRequest : public ClusterCommand
+class WebRTCTransportProviderWebRTCEndSession : public ClusterCommand
 {
 public:
-    UnitTestingSimpleStructEchoRequest(CredentialIssuerCommands * credsIssuerConfig) :
-        ClusterCommand("simple-struct-echo-request", credsIssuerConfig), mComplex_Arg1(&mRequest.arg1)
+    WebRTCTransportProviderWebRTCEndSession(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("web-rtcend-session", credsIssuerConfig)
     {
-        AddArgument("Arg1", &mComplex_Arg1);
+        AddArgument("WebRTCSessionID", 0, UINT16_MAX, &mRequest.webRTCSessionID);
+        AddArgument("Reason", 0, UINT8_MAX, &mRequest.reason);
         ClusterCommand::AddArguments();
     }
 
     CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::SimpleStructEchoRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportProvider::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCEndSession::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
                         commandId, endpointIds.at(0));
@@ -14990,8 +14859,8 @@ class UnitTestingSimpleStructEchoRequest : public ClusterCommand
 
     CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::SimpleStructEchoRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportProvider::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCEndSession::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
                         groupId);
@@ -15000,26 +14869,50 @@ class UnitTestingSimpleStructEchoRequest : public ClusterCommand
     }
 
 private:
-    chip::app::Clusters::UnitTesting::Commands::SimpleStructEchoRequest::Type mRequest;
-    TypedComplexArgument<chip::app::Clusters::UnitTesting::Structs::SimpleStruct::Type> mComplex_Arg1;
+    chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCEndSession::Type mRequest;
 };
 
+/*----------------------------------------------------------------------------*\
+| Cluster WebRTCTransportRequestor                                    | 0x0554 |
+|------------------------------------------------------------------------------|
+| Commands:                                                           |        |
+| * WebRTCOffer                                                       |   0x01 |
+| * WebRTCAnswer                                                      |   0x02 |
+| * WebRTCICECandidate                                                |   0x03 |
+| * WebRTCEnd                                                         |   0x04 |
+|------------------------------------------------------------------------------|
+| Attributes:                                                         |        |
+| * CurrentSessions                                                   | 0x0000 |
+| * GeneratedCommandList                                              | 0xFFF8 |
+| * AcceptedCommandList                                               | 0xFFF9 |
+| * EventList                                                         | 0xFFFA |
+| * AttributeList                                                     | 0xFFFB |
+| * FeatureMap                                                        | 0xFFFC |
+| * ClusterRevision                                                   | 0xFFFD |
+|------------------------------------------------------------------------------|
+| Events:                                                             |        |
+\*----------------------------------------------------------------------------*/
+
 /*
- * Command TimedInvokeRequest
+ * Command WebRTCOffer
  */
-class UnitTestingTimedInvokeRequest : public ClusterCommand
+class WebRTCTransportRequestorWebRTCOffer : public ClusterCommand
 {
 public:
-    UnitTestingTimedInvokeRequest(CredentialIssuerCommands * credsIssuerConfig) :
-        ClusterCommand("timed-invoke-request", credsIssuerConfig)
+    WebRTCTransportRequestorWebRTCOffer(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("web-rtcoffer", credsIssuerConfig), mComplex_ICEServers(&mRequest.ICEServers)
     {
+        AddArgument("WebRTCSessionID", 0, UINT16_MAX, &mRequest.webRTCSessionID);
+        AddArgument("Sdp", &mRequest.sdp);
+        AddArgument("ICEServers", &mComplex_ICEServers, "", Argument::kOptional);
+        AddArgument("ICETransportPolicy", &mRequest.ICETransportPolicy);
         ClusterCommand::AddArguments();
     }
 
     CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TimedInvokeRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportRequestor::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::WebRTCTransportRequestor::Commands::WebRTCOffer::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
                         commandId, endpointIds.at(0));
@@ -15028,8 +14921,8 @@ class UnitTestingTimedInvokeRequest : public ClusterCommand
 
     CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TimedInvokeRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportRequestor::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::WebRTCTransportRequestor::Commands::WebRTCOffer::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
                         groupId);
@@ -15038,26 +14931,30 @@ class UnitTestingTimedInvokeRequest : public ClusterCommand
     }
 
 private:
-    chip::app::Clusters::UnitTesting::Commands::TimedInvokeRequest::Type mRequest;
+    chip::app::Clusters::WebRTCTransportRequestor::Commands::WebRTCOffer::Type mRequest;
+    TypedComplexArgument<chip::Optional<
+        chip::app::DataModel::List<const chip::app::Clusters::WebRTCTransportRequestor::Structs::ICEServerStruct::Type>>>
+        mComplex_ICEServers;
 };
 
 /*
- * Command TestSimpleOptionalArgumentRequest
+ * Command WebRTCAnswer
  */
-class UnitTestingTestSimpleOptionalArgumentRequest : public ClusterCommand
+class WebRTCTransportRequestorWebRTCAnswer : public ClusterCommand
 {
 public:
-    UnitTestingTestSimpleOptionalArgumentRequest(CredentialIssuerCommands * credsIssuerConfig) :
-        ClusterCommand("test-simple-optional-argument-request", credsIssuerConfig)
+    WebRTCTransportRequestorWebRTCAnswer(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("web-rtcanswer", credsIssuerConfig)
     {
-        AddArgument("Arg1", 0, 1, &mRequest.arg1);
+        AddArgument("WebRTCSessionID", 0, UINT16_MAX, &mRequest.webRTCSessionID);
+        AddArgument("Sdp", &mRequest.sdp);
         ClusterCommand::AddArguments();
     }
 
     CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestSimpleOptionalArgumentRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportRequestor::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::WebRTCTransportRequestor::Commands::WebRTCAnswer::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
                         commandId, endpointIds.at(0));
@@ -15066,8 +14963,8 @@ class UnitTestingTestSimpleOptionalArgumentRequest : public ClusterCommand
 
     CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestSimpleOptionalArgumentRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportRequestor::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::WebRTCTransportRequestor::Commands::WebRTCAnswer::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
                         groupId);
@@ -15076,28 +14973,27 @@ class UnitTestingTestSimpleOptionalArgumentRequest : public ClusterCommand
     }
 
 private:
-    chip::app::Clusters::UnitTesting::Commands::TestSimpleOptionalArgumentRequest::Type mRequest;
+    chip::app::Clusters::WebRTCTransportRequestor::Commands::WebRTCAnswer::Type mRequest;
 };
 
 /*
- * Command TestEmitTestEventRequest
+ * Command WebRTCICECandidate
  */
-class UnitTestingTestEmitTestEventRequest : public ClusterCommand
+class WebRTCTransportRequestorWebRTCICECandidate : public ClusterCommand
 {
 public:
-    UnitTestingTestEmitTestEventRequest(CredentialIssuerCommands * credsIssuerConfig) :
-        ClusterCommand("test-emit-test-event-request", credsIssuerConfig)
+    WebRTCTransportRequestorWebRTCICECandidate(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("web-rtcicecandidate", credsIssuerConfig)
     {
-        AddArgument("Arg1", 0, UINT8_MAX, &mRequest.arg1);
-        AddArgument("Arg2", 0, UINT8_MAX, &mRequest.arg2);
-        AddArgument("Arg3", 0, 1, &mRequest.arg3);
+        AddArgument("WebRTCSessionID", 0, UINT16_MAX, &mRequest.webRTCSessionID);
+        AddArgument("ICECandidate", &mRequest.ICECandidate);
         ClusterCommand::AddArguments();
     }
 
     CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestEmitTestEventRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportRequestor::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::WebRTCTransportRequestor::Commands::WebRTCICECandidate::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
                         commandId, endpointIds.at(0));
@@ -15106,8 +15002,8 @@ class UnitTestingTestEmitTestEventRequest : public ClusterCommand
 
     CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestEmitTestEventRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportRequestor::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::WebRTCTransportRequestor::Commands::WebRTCICECandidate::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
                         groupId);
@@ -15116,26 +15012,27 @@ class UnitTestingTestEmitTestEventRequest : public ClusterCommand
     }
 
 private:
-    chip::app::Clusters::UnitTesting::Commands::TestEmitTestEventRequest::Type mRequest;
+    chip::app::Clusters::WebRTCTransportRequestor::Commands::WebRTCICECandidate::Type mRequest;
 };
 
 /*
- * Command TestEmitTestFabricScopedEventRequest
+ * Command WebRTCEnd
  */
-class UnitTestingTestEmitTestFabricScopedEventRequest : public ClusterCommand
+class WebRTCTransportRequestorWebRTCEnd : public ClusterCommand
 {
 public:
-    UnitTestingTestEmitTestFabricScopedEventRequest(CredentialIssuerCommands * credsIssuerConfig) :
-        ClusterCommand("test-emit-test-fabric-scoped-event-request", credsIssuerConfig)
+    WebRTCTransportRequestorWebRTCEnd(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("web-rtcend", credsIssuerConfig)
     {
-        AddArgument("Arg1", 0, UINT8_MAX, &mRequest.arg1);
+        AddArgument("WebRTCSessionID", 0, UINT16_MAX, &mRequest.webRTCSessionID);
+        AddArgument("Reason", 0, UINT8_MAX, &mRequest.reason);
         ClusterCommand::AddArguments();
     }
 
     CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestEmitTestFabricScopedEventRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportRequestor::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::WebRTCTransportRequestor::Commands::WebRTCEnd::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
                         commandId, endpointIds.at(0));
@@ -15144,8 +15041,8 @@ class UnitTestingTestEmitTestFabricScopedEventRequest : public ClusterCommand
 
     CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestEmitTestFabricScopedEventRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportRequestor::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::WebRTCTransportRequestor::Commands::WebRTCEnd::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
                         groupId);
@@ -15154,28 +15051,54 @@ class UnitTestingTestEmitTestFabricScopedEventRequest : public ClusterCommand
     }
 
 private:
-    chip::app::Clusters::UnitTesting::Commands::TestEmitTestFabricScopedEventRequest::Type mRequest;
+    chip::app::Clusters::WebRTCTransportRequestor::Commands::WebRTCEnd::Type mRequest;
 };
 
+/*----------------------------------------------------------------------------*\
+| Cluster PushAvStreamTransport                                       | 0x0555 |
+|------------------------------------------------------------------------------|
+| Commands:                                                           |        |
+| * AllocatePushTransport                                             |   0x00 |
+| * DeallocatePushTransport                                           |   0x02 |
+| * ModifyPushTransport                                               |   0x03 |
+| * SetTransportStatus                                                |   0x04 |
+| * ManuallyTriggerTransport                                          |   0x05 |
+| * FindStreamConfiguration                                           |   0x06 |
+|------------------------------------------------------------------------------|
+| Attributes:                                                         |        |
+| * SupportedContainerFormats                                         | 0x0000 |
+| * SupportedIngestMethods                                            | 0x0001 |
+| * CurrentConnections                                                | 0x0002 |
+| * GeneratedCommandList                                              | 0xFFF8 |
+| * AcceptedCommandList                                               | 0xFFF9 |
+| * EventList                                                         | 0xFFFA |
+| * AttributeList                                                     | 0xFFFB |
+| * FeatureMap                                                        | 0xFFFC |
+| * ClusterRevision                                                   | 0xFFFD |
+|------------------------------------------------------------------------------|
+| Events:                                                             |        |
+| * PushTransportBegin                                                | 0x0000 |
+| * PushTransportEnd                                                  | 0x0001 |
+\*----------------------------------------------------------------------------*/
+
 /*
- * Command TestBatchHelperRequest
+ * Command AllocatePushTransport
  */
-class UnitTestingTestBatchHelperRequest : public ClusterCommand
+class PushAvStreamTransportAllocatePushTransport : public ClusterCommand
 {
 public:
-    UnitTestingTestBatchHelperRequest(CredentialIssuerCommands * credsIssuerConfig) :
-        ClusterCommand("test-batch-helper-request", credsIssuerConfig)
+    PushAvStreamTransportAllocatePushTransport(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("allocate-push-transport", credsIssuerConfig),
+        mComplex_StreamTransportOptions(&mRequest.streamTransportOptions)
     {
-        AddArgument("SleepBeforeResponseTimeMs", 0, UINT16_MAX, &mRequest.sleepBeforeResponseTimeMs);
-        AddArgument("SizeOfResponseBuffer", 0, UINT16_MAX, &mRequest.sizeOfResponseBuffer);
-        AddArgument("FillCharacter", 0, UINT8_MAX, &mRequest.fillCharacter);
+        AddArgument("StreamTransportOptions", &mComplex_StreamTransportOptions);
         ClusterCommand::AddArguments();
     }
 
     CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestBatchHelperRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::PushAvStreamTransport::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::PushAvStreamTransport::Commands::AllocatePushTransport::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
                         commandId, endpointIds.at(0));
@@ -15184,8 +15107,8 @@ class UnitTestingTestBatchHelperRequest : public ClusterCommand
 
     CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestBatchHelperRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::PushAvStreamTransport::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::PushAvStreamTransport::Commands::AllocatePushTransport::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
                         groupId);
@@ -15194,28 +15117,28 @@ class UnitTestingTestBatchHelperRequest : public ClusterCommand
     }
 
 private:
-    chip::app::Clusters::UnitTesting::Commands::TestBatchHelperRequest::Type mRequest;
+    chip::app::Clusters::PushAvStreamTransport::Commands::AllocatePushTransport::Type mRequest;
+    TypedComplexArgument<chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportOptionsStruct::Type>
+        mComplex_StreamTransportOptions;
 };
 
 /*
- * Command TestSecondBatchHelperRequest
+ * Command DeallocatePushTransport
  */
-class UnitTestingTestSecondBatchHelperRequest : public ClusterCommand
+class PushAvStreamTransportDeallocatePushTransport : public ClusterCommand
 {
 public:
-    UnitTestingTestSecondBatchHelperRequest(CredentialIssuerCommands * credsIssuerConfig) :
-        ClusterCommand("test-second-batch-helper-request", credsIssuerConfig)
+    PushAvStreamTransportDeallocatePushTransport(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("deallocate-push-transport", credsIssuerConfig)
     {
-        AddArgument("SleepBeforeResponseTimeMs", 0, UINT16_MAX, &mRequest.sleepBeforeResponseTimeMs);
-        AddArgument("SizeOfResponseBuffer", 0, UINT16_MAX, &mRequest.sizeOfResponseBuffer);
-        AddArgument("FillCharacter", 0, UINT8_MAX, &mRequest.fillCharacter);
+        AddArgument("ConnectionID", 0, UINT16_MAX, &mRequest.connectionID);
         ClusterCommand::AddArguments();
     }
 
     CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestSecondBatchHelperRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::PushAvStreamTransport::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::PushAvStreamTransport::Commands::DeallocatePushTransport::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
                         commandId, endpointIds.at(0));
@@ -15224,8 +15147,8 @@ class UnitTestingTestSecondBatchHelperRequest : public ClusterCommand
 
     CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestSecondBatchHelperRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::PushAvStreamTransport::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::PushAvStreamTransport::Commands::DeallocatePushTransport::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
                         groupId);
@@ -15234,26 +15157,28 @@ class UnitTestingTestSecondBatchHelperRequest : public ClusterCommand
     }
 
 private:
-    chip::app::Clusters::UnitTesting::Commands::TestSecondBatchHelperRequest::Type mRequest;
+    chip::app::Clusters::PushAvStreamTransport::Commands::DeallocatePushTransport::Type mRequest;
 };
 
 /*
- * Command StringEchoRequest
+ * Command ModifyPushTransport
  */
-class UnitTestingStringEchoRequest : public ClusterCommand
+class PushAvStreamTransportModifyPushTransport : public ClusterCommand
 {
 public:
-    UnitTestingStringEchoRequest(CredentialIssuerCommands * credsIssuerConfig) :
-        ClusterCommand("string-echo-request", credsIssuerConfig)
+    PushAvStreamTransportModifyPushTransport(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("modify-push-transport", credsIssuerConfig),
+        mComplex_StreamTransportOptions(&mRequest.streamTransportOptions)
     {
-        AddArgument("Payload", &mRequest.payload);
+        AddArgument("ConnectionID", 0, UINT16_MAX, &mRequest.connectionID);
+        AddArgument("StreamTransportOptions", &mComplex_StreamTransportOptions);
         ClusterCommand::AddArguments();
     }
 
     CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::StringEchoRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::PushAvStreamTransport::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::PushAvStreamTransport::Commands::ModifyPushTransport::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
                         commandId, endpointIds.at(0));
@@ -15262,8 +15187,8 @@ class UnitTestingStringEchoRequest : public ClusterCommand
 
     CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::StringEchoRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::PushAvStreamTransport::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::PushAvStreamTransport::Commands::ModifyPushTransport::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
                         groupId);
@@ -15272,27 +15197,29 @@ class UnitTestingStringEchoRequest : public ClusterCommand
     }
 
 private:
-    chip::app::Clusters::UnitTesting::Commands::StringEchoRequest::Type mRequest;
+    chip::app::Clusters::PushAvStreamTransport::Commands::ModifyPushTransport::Type mRequest;
+    TypedComplexArgument<chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportOptionsStruct::Type>
+        mComplex_StreamTransportOptions;
 };
 
 /*
- * Command GlobalEchoRequest
+ * Command SetTransportStatus
  */
-class UnitTestingGlobalEchoRequest : public ClusterCommand
+class PushAvStreamTransportSetTransportStatus : public ClusterCommand
 {
 public:
-    UnitTestingGlobalEchoRequest(CredentialIssuerCommands * credsIssuerConfig) :
-        ClusterCommand("global-echo-request", credsIssuerConfig), mComplex_Field1(&mRequest.field1)
+    PushAvStreamTransportSetTransportStatus(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("set-transport-status", credsIssuerConfig)
     {
-        AddArgument("Field1", &mComplex_Field1);
-        AddArgument("Field2", 0, UINT8_MAX, &mRequest.field2);
+        AddArgument("ConnectionID", 0, UINT16_MAX, &mRequest.connectionID);
+        AddArgument("StreamTransportStatus", 0, UINT8_MAX, &mRequest.streamTransportStatus);
         ClusterCommand::AddArguments();
     }
 
     CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::GlobalEchoRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::PushAvStreamTransport::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::PushAvStreamTransport::Commands::SetTransportStatus::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
                         commandId, endpointIds.at(0));
@@ -15301,8 +15228,8 @@ class UnitTestingGlobalEchoRequest : public ClusterCommand
 
     CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::GlobalEchoRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::PushAvStreamTransport::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::PushAvStreamTransport::Commands::SetTransportStatus::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
                         groupId);
@@ -15311,27 +15238,28 @@ class UnitTestingGlobalEchoRequest : public ClusterCommand
     }
 
 private:
-    chip::app::Clusters::UnitTesting::Commands::GlobalEchoRequest::Type mRequest;
-    TypedComplexArgument<chip::app::Clusters::Globals::Structs::TestGlobalStruct::Type> mComplex_Field1;
+    chip::app::Clusters::PushAvStreamTransport::Commands::SetTransportStatus::Type mRequest;
 };
 
 /*
- * Command TestDifferentVendorMeiRequest
+ * Command ManuallyTriggerTransport
  */
-class UnitTestingTestDifferentVendorMeiRequest : public ClusterCommand
+class PushAvStreamTransportManuallyTriggerTransport : public ClusterCommand
 {
 public:
-    UnitTestingTestDifferentVendorMeiRequest(CredentialIssuerCommands * credsIssuerConfig) :
-        ClusterCommand("test-different-vendor-mei-request", credsIssuerConfig)
+    PushAvStreamTransportManuallyTriggerTransport(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("manually-trigger-transport", credsIssuerConfig), mComplex_TimeControl(&mRequest.timeControl)
     {
-        AddArgument("Arg1", 0, UINT8_MAX, &mRequest.arg1);
+        AddArgument("ConnectionID", 0, UINT16_MAX, &mRequest.connectionID);
+        AddArgument("ActivationReason", 0, UINT8_MAX, &mRequest.activationReason);
+        AddArgument("TimeControl", &mComplex_TimeControl, "", Argument::kOptional);
         ClusterCommand::AddArguments();
     }
 
     CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestDifferentVendorMeiRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::PushAvStreamTransport::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::PushAvStreamTransport::Commands::ManuallyTriggerTransport::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
                         commandId, endpointIds.at(0));
@@ -15340,8 +15268,8 @@ class UnitTestingTestDifferentVendorMeiRequest : public ClusterCommand
 
     CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestDifferentVendorMeiRequest::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::PushAvStreamTransport::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::PushAvStreamTransport::Commands::ManuallyTriggerTransport::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
                         groupId);
@@ -15350,47 +15278,29 @@ class UnitTestingTestDifferentVendorMeiRequest : public ClusterCommand
     }
 
 private:
-    chip::app::Clusters::UnitTesting::Commands::TestDifferentVendorMeiRequest::Type mRequest;
+    chip::app::Clusters::PushAvStreamTransport::Commands::ManuallyTriggerTransport::Type mRequest;
+    TypedComplexArgument<chip::Optional<chip::app::DataModel::Nullable<
+        chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportMotionTriggerTimeControlStruct::Type>>>
+        mComplex_TimeControl;
 };
 
-/*----------------------------------------------------------------------------*\
-| Cluster FaultInjection                                              | 0xFFF1FC06 |
-|------------------------------------------------------------------------------|
-| Commands:                                                           |        |
-| * FailAtFault                                                       |   0x00 |
-| * FailRandomlyAtFault                                               |   0x01 |
-|------------------------------------------------------------------------------|
-| Attributes:                                                         |        |
-| * GeneratedCommandList                                              | 0xFFF8 |
-| * AcceptedCommandList                                               | 0xFFF9 |
-| * EventList                                                         | 0xFFFA |
-| * AttributeList                                                     | 0xFFFB |
-| * FeatureMap                                                        | 0xFFFC |
-| * ClusterRevision                                                   | 0xFFFD |
-|------------------------------------------------------------------------------|
-| Events:                                                             |        |
-\*----------------------------------------------------------------------------*/
-
 /*
- * Command FailAtFault
+ * Command FindStreamConfiguration
  */
-class FaultInjectionFailAtFault : public ClusterCommand
+class PushAvStreamTransportFindStreamConfiguration : public ClusterCommand
 {
 public:
-    FaultInjectionFailAtFault(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("fail-at-fault", credsIssuerConfig)
+    PushAvStreamTransportFindStreamConfiguration(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("find-stream-configuration", credsIssuerConfig)
     {
-        AddArgument("Type", 0, UINT8_MAX, &mRequest.type);
-        AddArgument("Id", 0, UINT32_MAX, &mRequest.id);
-        AddArgument("NumCallsToSkip", 0, UINT32_MAX, &mRequest.numCallsToSkip);
-        AddArgument("NumCallsToFail", 0, UINT32_MAX, &mRequest.numCallsToFail);
-        AddArgument("TakeMutex", 0, 1, &mRequest.takeMutex);
+        AddArgument("ConnectionID", 0, UINT16_MAX, &mRequest.connectionID);
         ClusterCommand::AddArguments();
     }
 
     CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::FaultInjection::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::FaultInjection::Commands::FailAtFault::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::PushAvStreamTransport::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::PushAvStreamTransport::Commands::FindStreamConfiguration::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
                         commandId, endpointIds.at(0));
@@ -15399,8 +15309,8 @@ class FaultInjectionFailAtFault : public ClusterCommand
 
     CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::FaultInjection::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::FaultInjection::Commands::FailAtFault::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::PushAvStreamTransport::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::PushAvStreamTransport::Commands::FindStreamConfiguration::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
                         groupId);
@@ -15409,28 +15319,44 @@ class FaultInjectionFailAtFault : public ClusterCommand
     }
 
 private:
-    chip::app::Clusters::FaultInjection::Commands::FailAtFault::Type mRequest;
+    chip::app::Clusters::PushAvStreamTransport::Commands::FindStreamConfiguration::Type mRequest;
 };
 
+/*----------------------------------------------------------------------------*\
+| Cluster Chime                                                       | 0x0556 |
+|------------------------------------------------------------------------------|
+| Commands:                                                           |        |
+| * PlayChimeSound                                                    |   0x00 |
+|------------------------------------------------------------------------------|
+| Attributes:                                                         |        |
+| * InstalledChimeSounds                                              | 0x0000 |
+| * ActiveChimeSoundId                                                | 0x0001 |
+| * Enabled                                                           | 0x0002 |
+| * GeneratedCommandList                                              | 0xFFF8 |
+| * AcceptedCommandList                                               | 0xFFF9 |
+| * EventList                                                         | 0xFFFA |
+| * AttributeList                                                     | 0xFFFB |
+| * FeatureMap                                                        | 0xFFFC |
+| * ClusterRevision                                                   | 0xFFFD |
+|------------------------------------------------------------------------------|
+| Events:                                                             |        |
+\*----------------------------------------------------------------------------*/
+
 /*
- * Command FailRandomlyAtFault
+ * Command PlayChimeSound
  */
-class FaultInjectionFailRandomlyAtFault : public ClusterCommand
+class ChimePlayChimeSound : public ClusterCommand
 {
 public:
-    FaultInjectionFailRandomlyAtFault(CredentialIssuerCommands * credsIssuerConfig) :
-        ClusterCommand("fail-randomly-at-fault", credsIssuerConfig)
+    ChimePlayChimeSound(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("play-chime-sound", credsIssuerConfig)
     {
-        AddArgument("Type", 0, UINT8_MAX, &mRequest.type);
-        AddArgument("Id", 0, UINT32_MAX, &mRequest.id);
-        AddArgument("Percentage", 0, UINT8_MAX, &mRequest.percentage);
         ClusterCommand::AddArguments();
     }
 
     CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::FaultInjection::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::FaultInjection::Commands::FailRandomlyAtFault::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::Chime::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::Chime::Commands::PlayChimeSound::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
                         commandId, endpointIds.at(0));
@@ -15439,8 +15365,8 @@ class FaultInjectionFailRandomlyAtFault : public ClusterCommand
 
     CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::FaultInjection::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::FaultInjection::Commands::FailRandomlyAtFault::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::Chime::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::Chime::Commands::PlayChimeSound::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
                         groupId);
@@ -15449,18 +15375,17 @@ class FaultInjectionFailRandomlyAtFault : public ClusterCommand
     }
 
 private:
-    chip::app::Clusters::FaultInjection::Commands::FailRandomlyAtFault::Type mRequest;
+    chip::app::Clusters::Chime::Commands::PlayChimeSound::Type mRequest;
 };
 
 /*----------------------------------------------------------------------------*\
-| Cluster SampleMei                                                   | 0xFFF1FC20 |
+| Cluster EcosystemInformation                                        | 0x0750 |
 |------------------------------------------------------------------------------|
 | Commands:                                                           |        |
-| * Ping                                                              |   0x00 |
-| * AddArguments                                                      |   0x02 |
 |------------------------------------------------------------------------------|
 | Attributes:                                                         |        |
-| * FlipFlop                                                          | 0x0000 |
+| * DeviceDirectory                                                   | 0x0000 |
+| * LocationDirectory                                                 | 0x0001 |
 | * GeneratedCommandList                                              | 0xFFF8 |
 | * AcceptedCommandList                                               | 0xFFF9 |
 | * EventList                                                         | 0xFFFA |
@@ -15469,24 +15394,48 @@ class FaultInjectionFailRandomlyAtFault : public ClusterCommand
 | * ClusterRevision                                                   | 0xFFFD |
 |------------------------------------------------------------------------------|
 | Events:                                                             |        |
-| * PingCountEvent                                                    | 0x0000 |
+\*----------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------*\
+| Cluster CommissionerControl                                         | 0x0751 |
+|------------------------------------------------------------------------------|
+| Commands:                                                           |        |
+| * RequestCommissioningApproval                                      |   0x00 |
+| * CommissionNode                                                    |   0x01 |
+|------------------------------------------------------------------------------|
+| Attributes:                                                         |        |
+| * SupportedDeviceCategories                                         | 0x0000 |
+| * GeneratedCommandList                                              | 0xFFF8 |
+| * AcceptedCommandList                                               | 0xFFF9 |
+| * EventList                                                         | 0xFFFA |
+| * AttributeList                                                     | 0xFFFB |
+| * FeatureMap                                                        | 0xFFFC |
+| * ClusterRevision                                                   | 0xFFFD |
+|------------------------------------------------------------------------------|
+| Events:                                                             |        |
+| * CommissioningRequestResult                                        | 0x0000 |
 \*----------------------------------------------------------------------------*/
 
 /*
- * Command Ping
+ * Command RequestCommissioningApproval
  */
-class SampleMeiPing : public ClusterCommand
+class CommissionerControlRequestCommissioningApproval : public ClusterCommand
 {
 public:
-    SampleMeiPing(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("ping", credsIssuerConfig)
+    CommissionerControlRequestCommissioningApproval(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("request-commissioning-approval", credsIssuerConfig)
     {
+        AddArgument("RequestID", 0, UINT64_MAX, &mRequest.requestID);
+        AddArgument("VendorID", 0, UINT16_MAX, &mRequest.vendorID);
+        AddArgument("ProductID", 0, UINT16_MAX, &mRequest.productID);
+        AddArgument("Label", &mRequest.label);
         ClusterCommand::AddArguments();
     }
 
     CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::SampleMei::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::SampleMei::Commands::Ping::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CommissionerControl::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CommissionerControl::Commands::RequestCommissioningApproval::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
                         commandId, endpointIds.at(0));
@@ -15495,8 +15444,8 @@ class SampleMeiPing : public ClusterCommand
 
     CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::SampleMei::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::SampleMei::Commands::Ping::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CommissionerControl::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CommissionerControl::Commands::RequestCommissioningApproval::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
                         groupId);
@@ -15505,26 +15454,27 @@ class SampleMeiPing : public ClusterCommand
     }
 
 private:
-    chip::app::Clusters::SampleMei::Commands::Ping::Type mRequest;
+    chip::app::Clusters::CommissionerControl::Commands::RequestCommissioningApproval::Type mRequest;
 };
 
 /*
- * Command AddArguments
+ * Command CommissionNode
  */
-class SampleMeiAddArguments : public ClusterCommand
+class CommissionerControlCommissionNode : public ClusterCommand
 {
 public:
-    SampleMeiAddArguments(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("add-arguments", credsIssuerConfig)
+    CommissionerControlCommissionNode(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("commission-node", credsIssuerConfig)
     {
-        AddArgument("Arg1", 0, UINT8_MAX, &mRequest.arg1);
-        AddArgument("Arg2", 0, UINT8_MAX, &mRequest.arg2);
+        AddArgument("RequestID", 0, UINT64_MAX, &mRequest.requestID);
+        AddArgument("ResponseTimeoutSeconds", 0, UINT16_MAX, &mRequest.responseTimeoutSeconds);
         ClusterCommand::AddArguments();
     }
 
     CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::SampleMei::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::SampleMei::Commands::AddArguments::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CommissionerControl::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CommissionerControl::Commands::CommissionNode::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
                         commandId, endpointIds.at(0));
@@ -15533,8 +15483,8 @@ class SampleMeiAddArguments : public ClusterCommand
 
     CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
     {
-        constexpr chip::ClusterId clusterId = chip::app::Clusters::SampleMei::Id;
-        constexpr chip::CommandId commandId = chip::app::Clusters::SampleMei::Commands::AddArguments::Id;
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CommissionerControl::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CommissionerControl::Commands::CommissionNode::Id;
 
         ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
                         groupId);
@@ -15543,140 +15493,1773 @@ class SampleMeiAddArguments : public ClusterCommand
     }
 
 private:
-    chip::app::Clusters::SampleMei::Commands::AddArguments::Type mRequest;
+    chip::app::Clusters::CommissionerControl::Commands::CommissionNode::Type mRequest;
 };
 
 /*----------------------------------------------------------------------------*\
-| Register all Clusters commands                                               |
-\*----------------------------------------------------------------------------*/
-void registerClusterIdentify(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
-{
-    using namespace chip::app::Clusters::Identify;
-
-    const char * clusterName = "Identify";
-
-    commands_list clusterCommands = {
-        //
-        // Commands
-        //
-        make_unique<ClusterCommand>(Id, credsIssuerConfig),    //
-        make_unique<IdentifyIdentify>(credsIssuerConfig),      //
-        make_unique<IdentifyTriggerEffect>(credsIssuerConfig), //
-        //
-        // Attributes
-        //
-        make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 //
-        make_unique<ReadAttribute>(Id, "identify-time", Attributes::IdentifyTime::Id, credsIssuerConfig),                  //
-        make_unique<ReadAttribute>(Id, "identify-type", Attributes::IdentifyType::Id, credsIssuerConfig),                  //
-        make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
-        make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
-        make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
-        make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                //
-        make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
-        make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
-        make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              //
-        make_unique<WriteAttribute<uint16_t>>(Id, "identify-time", 0, UINT16_MAX, Attributes::IdentifyTime::Id,
-                                              WriteCommandType::kWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::Clusters::Identify::IdentifyTypeEnum>>(
-            Id, "identify-type", 0, UINT8_MAX, Attributes::IdentifyType::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
-            Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
-            credsIssuerConfig), //
-        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
-            Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>(
-            Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>(
-            Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id,
-                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
-                                              WriteCommandType::kForceWrite, credsIssuerConfig),                                //
-        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 //
-        make_unique<SubscribeAttribute>(Id, "identify-time", Attributes::IdentifyTime::Id, credsIssuerConfig),                  //
-        make_unique<SubscribeAttribute>(Id, "identify-type", Attributes::IdentifyType::Id, credsIssuerConfig),                  //
-        make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
-        make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
-        make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                //
-        make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
-        make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
-        //
-        // Events
-        //
-        make_unique<ReadEvent>(Id, credsIssuerConfig),      //
-        make_unique<SubscribeEvent>(Id, credsIssuerConfig), //
-    };
-
-    commands.RegisterCluster(clusterName, clusterCommands);
-}
-void registerClusterGroups(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
-{
-    using namespace chip::app::Clusters::Groups;
-
-    const char * clusterName = "Groups";
-
-    commands_list clusterCommands = {
-        //
-        // Commands
-        //
-        make_unique<ClusterCommand>(Id, credsIssuerConfig),          //
-        make_unique<GroupsAddGroup>(credsIssuerConfig),              //
-        make_unique<GroupsViewGroup>(credsIssuerConfig),             //
-        make_unique<GroupsGetGroupMembership>(credsIssuerConfig),    //
-        make_unique<GroupsRemoveGroup>(credsIssuerConfig),           //
-        make_unique<GroupsRemoveAllGroups>(credsIssuerConfig),       //
-        make_unique<GroupsAddGroupIfIdentifying>(credsIssuerConfig), //
-        //
-        // Attributes
-        //
-        make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 //
-        make_unique<ReadAttribute>(Id, "name-support", Attributes::NameSupport::Id, credsIssuerConfig),                    //
-        make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
-        make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
-        make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
-        make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                //
-        make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
-        make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
-        make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              //
-        make_unique<WriteAttribute<chip::BitMask<chip::app::Clusters::Groups::NameSupportBitmap>>>(
-            Id, "name-support", 0, UINT8_MAX, Attributes::NameSupport::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
-            Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
-            credsIssuerConfig), //
-        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
-            Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>(
-            Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>(
-            Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id,
-                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
-                                              WriteCommandType::kForceWrite, credsIssuerConfig),                                //
-        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 //
-        make_unique<SubscribeAttribute>(Id, "name-support", Attributes::NameSupport::Id, credsIssuerConfig),                    //
-        make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
-        make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
-        make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                //
-        make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
-        make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
-        //
-        // Events
-        //
-        make_unique<ReadEvent>(Id, credsIssuerConfig),      //
-        make_unique<SubscribeEvent>(Id, credsIssuerConfig), //
-    };
-
-    commands.RegisterCluster(clusterName, clusterCommands);
-}
-void registerClusterOnOff(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
-{
-    using namespace chip::app::Clusters::OnOff;
-
-    const char * clusterName = "OnOff";
-
+| Cluster ElectricalMeasurement                                       | 0x0B04 |
+|------------------------------------------------------------------------------|
+| Commands:                                                           |        |
+| * GetProfileInfoCommand                                             |   0x00 |
+| * GetMeasurementProfileCommand                                      |   0x01 |
+|------------------------------------------------------------------------------|
+| Attributes:                                                         |        |
+| * MeasurementType                                                   | 0x0000 |
+| * DcVoltage                                                         | 0x0100 |
+| * DcVoltageMin                                                      | 0x0101 |
+| * DcVoltageMax                                                      | 0x0102 |
+| * DcCurrent                                                         | 0x0103 |
+| * DcCurrentMin                                                      | 0x0104 |
+| * DcCurrentMax                                                      | 0x0105 |
+| * DcPower                                                           | 0x0106 |
+| * DcPowerMin                                                        | 0x0107 |
+| * DcPowerMax                                                        | 0x0108 |
+| * DcVoltageMultiplier                                               | 0x0200 |
+| * DcVoltageDivisor                                                  | 0x0201 |
+| * DcCurrentMultiplier                                               | 0x0202 |
+| * DcCurrentDivisor                                                  | 0x0203 |
+| * DcPowerMultiplier                                                 | 0x0204 |
+| * DcPowerDivisor                                                    | 0x0205 |
+| * AcFrequency                                                       | 0x0300 |
+| * AcFrequencyMin                                                    | 0x0301 |
+| * AcFrequencyMax                                                    | 0x0302 |
+| * NeutralCurrent                                                    | 0x0303 |
+| * TotalActivePower                                                  | 0x0304 |
+| * TotalReactivePower                                                | 0x0305 |
+| * TotalApparentPower                                                | 0x0306 |
+| * Measured1stHarmonicCurrent                                        | 0x0307 |
+| * Measured3rdHarmonicCurrent                                        | 0x0308 |
+| * Measured5thHarmonicCurrent                                        | 0x0309 |
+| * Measured7thHarmonicCurrent                                        | 0x030A |
+| * Measured9thHarmonicCurrent                                        | 0x030B |
+| * Measured11thHarmonicCurrent                                       | 0x030C |
+| * MeasuredPhase1stHarmonicCurrent                                   | 0x030D |
+| * MeasuredPhase3rdHarmonicCurrent                                   | 0x030E |
+| * MeasuredPhase5thHarmonicCurrent                                   | 0x030F |
+| * MeasuredPhase7thHarmonicCurrent                                   | 0x0310 |
+| * MeasuredPhase9thHarmonicCurrent                                   | 0x0311 |
+| * MeasuredPhase11thHarmonicCurrent                                  | 0x0312 |
+| * AcFrequencyMultiplier                                             | 0x0400 |
+| * AcFrequencyDivisor                                                | 0x0401 |
+| * PowerMultiplier                                                   | 0x0402 |
+| * PowerDivisor                                                      | 0x0403 |
+| * HarmonicCurrentMultiplier                                         | 0x0404 |
+| * PhaseHarmonicCurrentMultiplier                                    | 0x0405 |
+| * InstantaneousVoltage                                              | 0x0500 |
+| * InstantaneousLineCurrent                                          | 0x0501 |
+| * InstantaneousActiveCurrent                                        | 0x0502 |
+| * InstantaneousReactiveCurrent                                      | 0x0503 |
+| * InstantaneousPower                                                | 0x0504 |
+| * RmsVoltage                                                        | 0x0505 |
+| * RmsVoltageMin                                                     | 0x0506 |
+| * RmsVoltageMax                                                     | 0x0507 |
+| * RmsCurrent                                                        | 0x0508 |
+| * RmsCurrentMin                                                     | 0x0509 |
+| * RmsCurrentMax                                                     | 0x050A |
+| * ActivePower                                                       | 0x050B |
+| * ActivePowerMin                                                    | 0x050C |
+| * ActivePowerMax                                                    | 0x050D |
+| * ReactivePower                                                     | 0x050E |
+| * ApparentPower                                                     | 0x050F |
+| * PowerFactor                                                       | 0x0510 |
+| * AverageRmsVoltageMeasurementPeriod                                | 0x0511 |
+| * AverageRmsUnderVoltageCounter                                     | 0x0513 |
+| * RmsExtremeOverVoltagePeriod                                       | 0x0514 |
+| * RmsExtremeUnderVoltagePeriod                                      | 0x0515 |
+| * RmsVoltageSagPeriod                                               | 0x0516 |
+| * RmsVoltageSwellPeriod                                             | 0x0517 |
+| * AcVoltageMultiplier                                               | 0x0600 |
+| * AcVoltageDivisor                                                  | 0x0601 |
+| * AcCurrentMultiplier                                               | 0x0602 |
+| * AcCurrentDivisor                                                  | 0x0603 |
+| * AcPowerMultiplier                                                 | 0x0604 |
+| * AcPowerDivisor                                                    | 0x0605 |
+| * OverloadAlarmsMask                                                | 0x0700 |
+| * VoltageOverload                                                   | 0x0701 |
+| * CurrentOverload                                                   | 0x0702 |
+| * AcOverloadAlarmsMask                                              | 0x0800 |
+| * AcVoltageOverload                                                 | 0x0801 |
+| * AcCurrentOverload                                                 | 0x0802 |
+| * AcActivePowerOverload                                             | 0x0803 |
+| * AcReactivePowerOverload                                           | 0x0804 |
+| * AverageRmsOverVoltage                                             | 0x0805 |
+| * AverageRmsUnderVoltage                                            | 0x0806 |
+| * RmsExtremeOverVoltage                                             | 0x0807 |
+| * RmsExtremeUnderVoltage                                            | 0x0808 |
+| * RmsVoltageSag                                                     | 0x0809 |
+| * RmsVoltageSwell                                                   | 0x080A |
+| * LineCurrentPhaseB                                                 | 0x0901 |
+| * ActiveCurrentPhaseB                                               | 0x0902 |
+| * ReactiveCurrentPhaseB                                             | 0x0903 |
+| * RmsVoltagePhaseB                                                  | 0x0905 |
+| * RmsVoltageMinPhaseB                                               | 0x0906 |
+| * RmsVoltageMaxPhaseB                                               | 0x0907 |
+| * RmsCurrentPhaseB                                                  | 0x0908 |
+| * RmsCurrentMinPhaseB                                               | 0x0909 |
+| * RmsCurrentMaxPhaseB                                               | 0x090A |
+| * ActivePowerPhaseB                                                 | 0x090B |
+| * ActivePowerMinPhaseB                                              | 0x090C |
+| * ActivePowerMaxPhaseB                                              | 0x090D |
+| * ReactivePowerPhaseB                                               | 0x090E |
+| * ApparentPowerPhaseB                                               | 0x090F |
+| * PowerFactorPhaseB                                                 | 0x0910 |
+| * AverageRmsVoltageMeasurementPeriodPhaseB                          | 0x0911 |
+| * AverageRmsOverVoltageCounterPhaseB                                | 0x0912 |
+| * AverageRmsUnderVoltageCounterPhaseB                               | 0x0913 |
+| * RmsExtremeOverVoltagePeriodPhaseB                                 | 0x0914 |
+| * RmsExtremeUnderVoltagePeriodPhaseB                                | 0x0915 |
+| * RmsVoltageSagPeriodPhaseB                                         | 0x0916 |
+| * RmsVoltageSwellPeriodPhaseB                                       | 0x0917 |
+| * LineCurrentPhaseC                                                 | 0x0A01 |
+| * ActiveCurrentPhaseC                                               | 0x0A02 |
+| * ReactiveCurrentPhaseC                                             | 0x0A03 |
+| * RmsVoltagePhaseC                                                  | 0x0A05 |
+| * RmsVoltageMinPhaseC                                               | 0x0A06 |
+| * RmsVoltageMaxPhaseC                                               | 0x0A07 |
+| * RmsCurrentPhaseC                                                  | 0x0A08 |
+| * RmsCurrentMinPhaseC                                               | 0x0A09 |
+| * RmsCurrentMaxPhaseC                                               | 0x0A0A |
+| * ActivePowerPhaseC                                                 | 0x0A0B |
+| * ActivePowerMinPhaseC                                              | 0x0A0C |
+| * ActivePowerMaxPhaseC                                              | 0x0A0D |
+| * ReactivePowerPhaseC                                               | 0x0A0E |
+| * ApparentPowerPhaseC                                               | 0x0A0F |
+| * PowerFactorPhaseC                                                 | 0x0A10 |
+| * AverageRmsVoltageMeasurementPeriodPhaseC                          | 0x0A11 |
+| * AverageRmsOverVoltageCounterPhaseC                                | 0x0A12 |
+| * AverageRmsUnderVoltageCounterPhaseC                               | 0x0A13 |
+| * RmsExtremeOverVoltagePeriodPhaseC                                 | 0x0A14 |
+| * RmsExtremeUnderVoltagePeriodPhaseC                                | 0x0A15 |
+| * RmsVoltageSagPeriodPhaseC                                         | 0x0A16 |
+| * RmsVoltageSwellPeriodPhaseC                                       | 0x0A17 |
+| * GeneratedCommandList                                              | 0xFFF8 |
+| * AcceptedCommandList                                               | 0xFFF9 |
+| * EventList                                                         | 0xFFFA |
+| * AttributeList                                                     | 0xFFFB |
+| * FeatureMap                                                        | 0xFFFC |
+| * ClusterRevision                                                   | 0xFFFD |
+|------------------------------------------------------------------------------|
+| Events:                                                             |        |
+\*----------------------------------------------------------------------------*/
+
+/*
+ * Command GetProfileInfoCommand
+ */
+class ElectricalMeasurementGetProfileInfoCommand : public ClusterCommand
+{
+public:
+    ElectricalMeasurementGetProfileInfoCommand(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("get-profile-info-command", credsIssuerConfig)
+    {
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::ElectricalMeasurement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::ElectricalMeasurement::Commands::GetProfileInfoCommand::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
+                        commandId, endpointIds.at(0));
+        return ClusterCommand::SendCommand(device, endpointIds.at(0), clusterId, commandId, mRequest);
+    }
+
+    CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::ElectricalMeasurement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::ElectricalMeasurement::Commands::GetProfileInfoCommand::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
+                        groupId);
+
+        return ClusterCommand::SendGroupCommand(groupId, fabricIndex, clusterId, commandId, mRequest);
+    }
+
+private:
+    chip::app::Clusters::ElectricalMeasurement::Commands::GetProfileInfoCommand::Type mRequest;
+};
+
+/*
+ * Command GetMeasurementProfileCommand
+ */
+class ElectricalMeasurementGetMeasurementProfileCommand : public ClusterCommand
+{
+public:
+    ElectricalMeasurementGetMeasurementProfileCommand(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("get-measurement-profile-command", credsIssuerConfig)
+    {
+        AddArgument("AttributeId", 0, UINT16_MAX, &mRequest.attributeId);
+        AddArgument("StartTime", 0, UINT32_MAX, &mRequest.startTime);
+        AddArgument("NumberOfIntervals", 0, UINT8_MAX, &mRequest.numberOfIntervals);
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::ElectricalMeasurement::Id;
+        constexpr chip::CommandId commandId =
+            chip::app::Clusters::ElectricalMeasurement::Commands::GetMeasurementProfileCommand::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
+                        commandId, endpointIds.at(0));
+        return ClusterCommand::SendCommand(device, endpointIds.at(0), clusterId, commandId, mRequest);
+    }
+
+    CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::ElectricalMeasurement::Id;
+        constexpr chip::CommandId commandId =
+            chip::app::Clusters::ElectricalMeasurement::Commands::GetMeasurementProfileCommand::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
+                        groupId);
+
+        return ClusterCommand::SendGroupCommand(groupId, fabricIndex, clusterId, commandId, mRequest);
+    }
+
+private:
+    chip::app::Clusters::ElectricalMeasurement::Commands::GetMeasurementProfileCommand::Type mRequest;
+};
+
+/*----------------------------------------------------------------------------*\
+| Cluster UnitTesting                                                 | 0xFFF1FC05 |
+|------------------------------------------------------------------------------|
+| Commands:                                                           |        |
+| * Test                                                              |   0x00 |
+| * TestNotHandled                                                    |   0x01 |
+| * TestSpecific                                                      |   0x02 |
+| * TestUnknownCommand                                                |   0x03 |
+| * TestAddArguments                                                  |   0x04 |
+| * TestSimpleArgumentRequest                                         |   0x05 |
+| * TestStructArrayArgumentRequest                                    |   0x06 |
+| * TestStructArgumentRequest                                         |   0x07 |
+| * TestNestedStructArgumentRequest                                   |   0x08 |
+| * TestListStructArgumentRequest                                     |   0x09 |
+| * TestListInt8UArgumentRequest                                      |   0x0A |
+| * TestNestedStructListArgumentRequest                               |   0x0B |
+| * TestListNestedStructListArgumentRequest                           |   0x0C |
+| * TestListInt8UReverseRequest                                       |   0x0D |
+| * TestEnumsRequest                                                  |   0x0E |
+| * TestNullableOptionalRequest                                       |   0x0F |
+| * TestComplexNullableOptionalRequest                                |   0x10 |
+| * SimpleStructEchoRequest                                           |   0x11 |
+| * TimedInvokeRequest                                                |   0x12 |
+| * TestSimpleOptionalArgumentRequest                                 |   0x13 |
+| * TestEmitTestEventRequest                                          |   0x14 |
+| * TestEmitTestFabricScopedEventRequest                              |   0x15 |
+| * TestBatchHelperRequest                                            |   0x16 |
+| * TestSecondBatchHelperRequest                                      |   0x17 |
+| * StringEchoRequest                                                 |   0x18 |
+| * GlobalEchoRequest                                                 |   0x19 |
+| * TestDifferentVendorMeiRequest                                     |   0xFFF200AA|
+|------------------------------------------------------------------------------|
+| Attributes:                                                         |        |
+| * Boolean                                                           | 0x0000 |
+| * Bitmap8                                                           | 0x0001 |
+| * Bitmap16                                                          | 0x0002 |
+| * Bitmap32                                                          | 0x0003 |
+| * Bitmap64                                                          | 0x0004 |
+| * Int8u                                                             | 0x0005 |
+| * Int16u                                                            | 0x0006 |
+| * Int24u                                                            | 0x0007 |
+| * Int32u                                                            | 0x0008 |
+| * Int40u                                                            | 0x0009 |
+| * Int48u                                                            | 0x000A |
+| * Int56u                                                            | 0x000B |
+| * Int64u                                                            | 0x000C |
+| * Int8s                                                             | 0x000D |
+| * Int16s                                                            | 0x000E |
+| * Int24s                                                            | 0x000F |
+| * Int32s                                                            | 0x0010 |
+| * Int40s                                                            | 0x0011 |
+| * Int48s                                                            | 0x0012 |
+| * Int56s                                                            | 0x0013 |
+| * Int64s                                                            | 0x0014 |
+| * Enum8                                                             | 0x0015 |
+| * Enum16                                                            | 0x0016 |
+| * FloatSingle                                                       | 0x0017 |
+| * FloatDouble                                                       | 0x0018 |
+| * OctetString                                                       | 0x0019 |
+| * ListInt8u                                                         | 0x001A |
+| * ListOctetString                                                   | 0x001B |
+| * ListStructOctetString                                             | 0x001C |
+| * LongOctetString                                                   | 0x001D |
+| * CharString                                                        | 0x001E |
+| * LongCharString                                                    | 0x001F |
+| * EpochUs                                                           | 0x0020 |
+| * EpochS                                                            | 0x0021 |
+| * VendorId                                                          | 0x0022 |
+| * ListNullablesAndOptionalsStruct                                   | 0x0023 |
+| * EnumAttr                                                          | 0x0024 |
+| * StructAttr                                                        | 0x0025 |
+| * RangeRestrictedInt8u                                              | 0x0026 |
+| * RangeRestrictedInt8s                                              | 0x0027 |
+| * RangeRestrictedInt16u                                             | 0x0028 |
+| * RangeRestrictedInt16s                                             | 0x0029 |
+| * ListLongOctetString                                               | 0x002A |
+| * ListFabricScoped                                                  | 0x002B |
+| * TimedWriteBoolean                                                 | 0x0030 |
+| * GeneralErrorBoolean                                               | 0x0031 |
+| * ClusterErrorBoolean                                               | 0x0032 |
+| * GlobalEnum                                                        | 0x0033 |
+| * GlobalStruct                                                      | 0x0034 |
+| * Unsupported                                                       | 0x00FF |
+| * ReadFailureCode                                                   | 0x3000 |
+| * FailureInt32U                                                     | 0x3001 |
+| * NullableBoolean                                                   | 0x4000 |
+| * NullableBitmap8                                                   | 0x4001 |
+| * NullableBitmap16                                                  | 0x4002 |
+| * NullableBitmap32                                                  | 0x4003 |
+| * NullableBitmap64                                                  | 0x4004 |
+| * NullableInt8u                                                     | 0x4005 |
+| * NullableInt16u                                                    | 0x4006 |
+| * NullableInt24u                                                    | 0x4007 |
+| * NullableInt32u                                                    | 0x4008 |
+| * NullableInt40u                                                    | 0x4009 |
+| * NullableInt48u                                                    | 0x400A |
+| * NullableInt56u                                                    | 0x400B |
+| * NullableInt64u                                                    | 0x400C |
+| * NullableInt8s                                                     | 0x400D |
+| * NullableInt16s                                                    | 0x400E |
+| * NullableInt24s                                                    | 0x400F |
+| * NullableInt32s                                                    | 0x4010 |
+| * NullableInt40s                                                    | 0x4011 |
+| * NullableInt48s                                                    | 0x4012 |
+| * NullableInt56s                                                    | 0x4013 |
+| * NullableInt64s                                                    | 0x4014 |
+| * NullableEnum8                                                     | 0x4015 |
+| * NullableEnum16                                                    | 0x4016 |
+| * NullableFloatSingle                                               | 0x4017 |
+| * NullableFloatDouble                                               | 0x4018 |
+| * NullableOctetString                                               | 0x4019 |
+| * NullableCharString                                                | 0x401E |
+| * NullableEnumAttr                                                  | 0x4024 |
+| * NullableStruct                                                    | 0x4025 |
+| * NullableRangeRestrictedInt8u                                      | 0x4026 |
+| * NullableRangeRestrictedInt8s                                      | 0x4027 |
+| * NullableRangeRestrictedInt16u                                     | 0x4028 |
+| * NullableRangeRestrictedInt16s                                     | 0x4029 |
+| * WriteOnlyInt8u                                                    | 0x402A |
+| * NullableGlobalEnum                                                | 0x4033 |
+| * NullableGlobalStruct                                              | 0x4034 |
+| * GeneratedCommandList                                              | 0xFFF8 |
+| * AcceptedCommandList                                               | 0xFFF9 |
+| * EventList                                                         | 0xFFFA |
+| * AttributeList                                                     | 0xFFFB |
+| * FeatureMap                                                        | 0xFFFC |
+| * ClusterRevision                                                   | 0xFFFD |
+| * MeiInt8u                                                          | 0xFFF24F01|
+|------------------------------------------------------------------------------|
+| Events:                                                             |        |
+| * TestEvent                                                         | 0x0001 |
+| * TestFabricScopedEvent                                             | 0x0002 |
+| * TestDifferentVendorMeiEvent                                       | 0xFFF200EE|
+\*----------------------------------------------------------------------------*/
+
+/*
+ * Command Test
+ */
+class UnitTestingTest : public ClusterCommand
+{
+public:
+    UnitTestingTest(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("test", credsIssuerConfig)
+    {
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::Test::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
+                        commandId, endpointIds.at(0));
+        return ClusterCommand::SendCommand(device, endpointIds.at(0), clusterId, commandId, mRequest);
+    }
+
+    CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::Test::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
+                        groupId);
+
+        return ClusterCommand::SendGroupCommand(groupId, fabricIndex, clusterId, commandId, mRequest);
+    }
+
+private:
+    chip::app::Clusters::UnitTesting::Commands::Test::Type mRequest;
+};
+
+/*
+ * Command TestNotHandled
+ */
+class UnitTestingTestNotHandled : public ClusterCommand
+{
+public:
+    UnitTestingTestNotHandled(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("test-not-handled", credsIssuerConfig)
+    {
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestNotHandled::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
+                        commandId, endpointIds.at(0));
+        return ClusterCommand::SendCommand(device, endpointIds.at(0), clusterId, commandId, mRequest);
+    }
+
+    CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestNotHandled::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
+                        groupId);
+
+        return ClusterCommand::SendGroupCommand(groupId, fabricIndex, clusterId, commandId, mRequest);
+    }
+
+private:
+    chip::app::Clusters::UnitTesting::Commands::TestNotHandled::Type mRequest;
+};
+
+/*
+ * Command TestSpecific
+ */
+class UnitTestingTestSpecific : public ClusterCommand
+{
+public:
+    UnitTestingTestSpecific(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("test-specific", credsIssuerConfig)
+    {
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestSpecific::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
+                        commandId, endpointIds.at(0));
+        return ClusterCommand::SendCommand(device, endpointIds.at(0), clusterId, commandId, mRequest);
+    }
+
+    CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestSpecific::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
+                        groupId);
+
+        return ClusterCommand::SendGroupCommand(groupId, fabricIndex, clusterId, commandId, mRequest);
+    }
+
+private:
+    chip::app::Clusters::UnitTesting::Commands::TestSpecific::Type mRequest;
+};
+
+/*
+ * Command TestUnknownCommand
+ */
+class UnitTestingTestUnknownCommand : public ClusterCommand
+{
+public:
+    UnitTestingTestUnknownCommand(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("test-unknown-command", credsIssuerConfig)
+    {
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestUnknownCommand::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
+                        commandId, endpointIds.at(0));
+        return ClusterCommand::SendCommand(device, endpointIds.at(0), clusterId, commandId, mRequest);
+    }
+
+    CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestUnknownCommand::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
+                        groupId);
+
+        return ClusterCommand::SendGroupCommand(groupId, fabricIndex, clusterId, commandId, mRequest);
+    }
+
+private:
+    chip::app::Clusters::UnitTesting::Commands::TestUnknownCommand::Type mRequest;
+};
+
+/*
+ * Command TestAddArguments
+ */
+class UnitTestingTestAddArguments : public ClusterCommand
+{
+public:
+    UnitTestingTestAddArguments(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("test-add-arguments", credsIssuerConfig)
+    {
+        AddArgument("Arg1", 0, UINT8_MAX, &mRequest.arg1);
+        AddArgument("Arg2", 0, UINT8_MAX, &mRequest.arg2);
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestAddArguments::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
+                        commandId, endpointIds.at(0));
+        return ClusterCommand::SendCommand(device, endpointIds.at(0), clusterId, commandId, mRequest);
+    }
+
+    CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestAddArguments::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
+                        groupId);
+
+        return ClusterCommand::SendGroupCommand(groupId, fabricIndex, clusterId, commandId, mRequest);
+    }
+
+private:
+    chip::app::Clusters::UnitTesting::Commands::TestAddArguments::Type mRequest;
+};
+
+/*
+ * Command TestSimpleArgumentRequest
+ */
+class UnitTestingTestSimpleArgumentRequest : public ClusterCommand
+{
+public:
+    UnitTestingTestSimpleArgumentRequest(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("test-simple-argument-request", credsIssuerConfig)
+    {
+        AddArgument("Arg1", 0, 1, &mRequest.arg1);
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestSimpleArgumentRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
+                        commandId, endpointIds.at(0));
+        return ClusterCommand::SendCommand(device, endpointIds.at(0), clusterId, commandId, mRequest);
+    }
+
+    CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestSimpleArgumentRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
+                        groupId);
+
+        return ClusterCommand::SendGroupCommand(groupId, fabricIndex, clusterId, commandId, mRequest);
+    }
+
+private:
+    chip::app::Clusters::UnitTesting::Commands::TestSimpleArgumentRequest::Type mRequest;
+};
+
+/*
+ * Command TestStructArrayArgumentRequest
+ */
+class UnitTestingTestStructArrayArgumentRequest : public ClusterCommand
+{
+public:
+    UnitTestingTestStructArrayArgumentRequest(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("test-struct-array-argument-request", credsIssuerConfig), mComplex_Arg1(&mRequest.arg1),
+        mComplex_Arg2(&mRequest.arg2), mComplex_Arg3(&mRequest.arg3), mComplex_Arg4(&mRequest.arg4)
+    {
+        AddArgument("Arg1", &mComplex_Arg1);
+        AddArgument("Arg2", &mComplex_Arg2);
+        AddArgument("Arg3", &mComplex_Arg3);
+        AddArgument("Arg4", &mComplex_Arg4);
+        AddArgument("Arg5", 0, UINT8_MAX, &mRequest.arg5);
+        AddArgument("Arg6", 0, 1, &mRequest.arg6);
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestStructArrayArgumentRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
+                        commandId, endpointIds.at(0));
+        return ClusterCommand::SendCommand(device, endpointIds.at(0), clusterId, commandId, mRequest);
+    }
+
+    CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestStructArrayArgumentRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
+                        groupId);
+
+        return ClusterCommand::SendGroupCommand(groupId, fabricIndex, clusterId, commandId, mRequest);
+    }
+
+private:
+    chip::app::Clusters::UnitTesting::Commands::TestStructArrayArgumentRequest::Type mRequest;
+    TypedComplexArgument<chip::app::DataModel::List<const chip::app::Clusters::UnitTesting::Structs::NestedStructList::Type>>
+        mComplex_Arg1;
+    TypedComplexArgument<chip::app::DataModel::List<const chip::app::Clusters::UnitTesting::Structs::SimpleStruct::Type>>
+        mComplex_Arg2;
+    TypedComplexArgument<chip::app::DataModel::List<const chip::app::Clusters::UnitTesting::SimpleEnum>> mComplex_Arg3;
+    TypedComplexArgument<chip::app::DataModel::List<const bool>> mComplex_Arg4;
+};
+
+/*
+ * Command TestStructArgumentRequest
+ */
+class UnitTestingTestStructArgumentRequest : public ClusterCommand
+{
+public:
+    UnitTestingTestStructArgumentRequest(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("test-struct-argument-request", credsIssuerConfig), mComplex_Arg1(&mRequest.arg1)
+    {
+        AddArgument("Arg1", &mComplex_Arg1);
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestStructArgumentRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
+                        commandId, endpointIds.at(0));
+        return ClusterCommand::SendCommand(device, endpointIds.at(0), clusterId, commandId, mRequest);
+    }
+
+    CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestStructArgumentRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
+                        groupId);
+
+        return ClusterCommand::SendGroupCommand(groupId, fabricIndex, clusterId, commandId, mRequest);
+    }
+
+private:
+    chip::app::Clusters::UnitTesting::Commands::TestStructArgumentRequest::Type mRequest;
+    TypedComplexArgument<chip::app::Clusters::UnitTesting::Structs::SimpleStruct::Type> mComplex_Arg1;
+};
+
+/*
+ * Command TestNestedStructArgumentRequest
+ */
+class UnitTestingTestNestedStructArgumentRequest : public ClusterCommand
+{
+public:
+    UnitTestingTestNestedStructArgumentRequest(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("test-nested-struct-argument-request", credsIssuerConfig), mComplex_Arg1(&mRequest.arg1)
+    {
+        AddArgument("Arg1", &mComplex_Arg1);
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestNestedStructArgumentRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
+                        commandId, endpointIds.at(0));
+        return ClusterCommand::SendCommand(device, endpointIds.at(0), clusterId, commandId, mRequest);
+    }
+
+    CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestNestedStructArgumentRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
+                        groupId);
+
+        return ClusterCommand::SendGroupCommand(groupId, fabricIndex, clusterId, commandId, mRequest);
+    }
+
+private:
+    chip::app::Clusters::UnitTesting::Commands::TestNestedStructArgumentRequest::Type mRequest;
+    TypedComplexArgument<chip::app::Clusters::UnitTesting::Structs::NestedStruct::Type> mComplex_Arg1;
+};
+
+/*
+ * Command TestListStructArgumentRequest
+ */
+class UnitTestingTestListStructArgumentRequest : public ClusterCommand
+{
+public:
+    UnitTestingTestListStructArgumentRequest(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("test-list-struct-argument-request", credsIssuerConfig), mComplex_Arg1(&mRequest.arg1)
+    {
+        AddArgument("Arg1", &mComplex_Arg1);
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestListStructArgumentRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
+                        commandId, endpointIds.at(0));
+        return ClusterCommand::SendCommand(device, endpointIds.at(0), clusterId, commandId, mRequest);
+    }
+
+    CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestListStructArgumentRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
+                        groupId);
+
+        return ClusterCommand::SendGroupCommand(groupId, fabricIndex, clusterId, commandId, mRequest);
+    }
+
+private:
+    chip::app::Clusters::UnitTesting::Commands::TestListStructArgumentRequest::Type mRequest;
+    TypedComplexArgument<chip::app::DataModel::List<const chip::app::Clusters::UnitTesting::Structs::SimpleStruct::Type>>
+        mComplex_Arg1;
+};
+
+/*
+ * Command TestListInt8UArgumentRequest
+ */
+class UnitTestingTestListInt8UArgumentRequest : public ClusterCommand
+{
+public:
+    UnitTestingTestListInt8UArgumentRequest(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("test-list-int8uargument-request", credsIssuerConfig), mComplex_Arg1(&mRequest.arg1)
+    {
+        AddArgument("Arg1", &mComplex_Arg1);
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestListInt8UArgumentRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
+                        commandId, endpointIds.at(0));
+        return ClusterCommand::SendCommand(device, endpointIds.at(0), clusterId, commandId, mRequest);
+    }
+
+    CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestListInt8UArgumentRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
+                        groupId);
+
+        return ClusterCommand::SendGroupCommand(groupId, fabricIndex, clusterId, commandId, mRequest);
+    }
+
+private:
+    chip::app::Clusters::UnitTesting::Commands::TestListInt8UArgumentRequest::Type mRequest;
+    TypedComplexArgument<chip::app::DataModel::List<const uint8_t>> mComplex_Arg1;
+};
+
+/*
+ * Command TestNestedStructListArgumentRequest
+ */
+class UnitTestingTestNestedStructListArgumentRequest : public ClusterCommand
+{
+public:
+    UnitTestingTestNestedStructListArgumentRequest(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("test-nested-struct-list-argument-request", credsIssuerConfig), mComplex_Arg1(&mRequest.arg1)
+    {
+        AddArgument("Arg1", &mComplex_Arg1);
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestNestedStructListArgumentRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
+                        commandId, endpointIds.at(0));
+        return ClusterCommand::SendCommand(device, endpointIds.at(0), clusterId, commandId, mRequest);
+    }
+
+    CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestNestedStructListArgumentRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
+                        groupId);
+
+        return ClusterCommand::SendGroupCommand(groupId, fabricIndex, clusterId, commandId, mRequest);
+    }
+
+private:
+    chip::app::Clusters::UnitTesting::Commands::TestNestedStructListArgumentRequest::Type mRequest;
+    TypedComplexArgument<chip::app::Clusters::UnitTesting::Structs::NestedStructList::Type> mComplex_Arg1;
+};
+
+/*
+ * Command TestListNestedStructListArgumentRequest
+ */
+class UnitTestingTestListNestedStructListArgumentRequest : public ClusterCommand
+{
+public:
+    UnitTestingTestListNestedStructListArgumentRequest(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("test-list-nested-struct-list-argument-request", credsIssuerConfig), mComplex_Arg1(&mRequest.arg1)
+    {
+        AddArgument("Arg1", &mComplex_Arg1);
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId =
+            chip::app::Clusters::UnitTesting::Commands::TestListNestedStructListArgumentRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
+                        commandId, endpointIds.at(0));
+        return ClusterCommand::SendCommand(device, endpointIds.at(0), clusterId, commandId, mRequest);
+    }
+
+    CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId =
+            chip::app::Clusters::UnitTesting::Commands::TestListNestedStructListArgumentRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
+                        groupId);
+
+        return ClusterCommand::SendGroupCommand(groupId, fabricIndex, clusterId, commandId, mRequest);
+    }
+
+private:
+    chip::app::Clusters::UnitTesting::Commands::TestListNestedStructListArgumentRequest::Type mRequest;
+    TypedComplexArgument<chip::app::DataModel::List<const chip::app::Clusters::UnitTesting::Structs::NestedStructList::Type>>
+        mComplex_Arg1;
+};
+
+/*
+ * Command TestListInt8UReverseRequest
+ */
+class UnitTestingTestListInt8UReverseRequest : public ClusterCommand
+{
+public:
+    UnitTestingTestListInt8UReverseRequest(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("test-list-int8ureverse-request", credsIssuerConfig), mComplex_Arg1(&mRequest.arg1)
+    {
+        AddArgument("Arg1", &mComplex_Arg1);
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestListInt8UReverseRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
+                        commandId, endpointIds.at(0));
+        return ClusterCommand::SendCommand(device, endpointIds.at(0), clusterId, commandId, mRequest);
+    }
+
+    CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestListInt8UReverseRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
+                        groupId);
+
+        return ClusterCommand::SendGroupCommand(groupId, fabricIndex, clusterId, commandId, mRequest);
+    }
+
+private:
+    chip::app::Clusters::UnitTesting::Commands::TestListInt8UReverseRequest::Type mRequest;
+    TypedComplexArgument<chip::app::DataModel::List<const uint8_t>> mComplex_Arg1;
+};
+
+/*
+ * Command TestEnumsRequest
+ */
+class UnitTestingTestEnumsRequest : public ClusterCommand
+{
+public:
+    UnitTestingTestEnumsRequest(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("test-enums-request", credsIssuerConfig)
+    {
+        AddArgument("Arg1", 0, UINT16_MAX, &mRequest.arg1);
+        AddArgument("Arg2", 0, UINT8_MAX, &mRequest.arg2);
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestEnumsRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
+                        commandId, endpointIds.at(0));
+        return ClusterCommand::SendCommand(device, endpointIds.at(0), clusterId, commandId, mRequest);
+    }
+
+    CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestEnumsRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
+                        groupId);
+
+        return ClusterCommand::SendGroupCommand(groupId, fabricIndex, clusterId, commandId, mRequest);
+    }
+
+private:
+    chip::app::Clusters::UnitTesting::Commands::TestEnumsRequest::Type mRequest;
+};
+
+/*
+ * Command TestNullableOptionalRequest
+ */
+class UnitTestingTestNullableOptionalRequest : public ClusterCommand
+{
+public:
+    UnitTestingTestNullableOptionalRequest(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("test-nullable-optional-request", credsIssuerConfig)
+    {
+        AddArgument("Arg1", 0, UINT8_MAX, &mRequest.arg1);
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestNullableOptionalRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
+                        commandId, endpointIds.at(0));
+        return ClusterCommand::SendCommand(device, endpointIds.at(0), clusterId, commandId, mRequest);
+    }
+
+    CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestNullableOptionalRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
+                        groupId);
+
+        return ClusterCommand::SendGroupCommand(groupId, fabricIndex, clusterId, commandId, mRequest);
+    }
+
+private:
+    chip::app::Clusters::UnitTesting::Commands::TestNullableOptionalRequest::Type mRequest;
+};
+
+/*
+ * Command TestComplexNullableOptionalRequest
+ */
+class UnitTestingTestComplexNullableOptionalRequest : public ClusterCommand
+{
+public:
+    UnitTestingTestComplexNullableOptionalRequest(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("test-complex-nullable-optional-request", credsIssuerConfig),
+        mComplex_NullableStruct(&mRequest.nullableStruct), mComplex_OptionalStruct(&mRequest.optionalStruct),
+        mComplex_NullableOptionalStruct(&mRequest.nullableOptionalStruct), mComplex_NullableList(&mRequest.nullableList),
+        mComplex_OptionalList(&mRequest.optionalList), mComplex_NullableOptionalList(&mRequest.nullableOptionalList)
+    {
+        AddArgument("NullableInt", 0, UINT16_MAX, &mRequest.nullableInt);
+        AddArgument("OptionalInt", 0, UINT16_MAX, &mRequest.optionalInt);
+        AddArgument("NullableOptionalInt", 0, UINT16_MAX, &mRequest.nullableOptionalInt);
+        AddArgument("NullableString", &mRequest.nullableString);
+        AddArgument("OptionalString", &mRequest.optionalString);
+        AddArgument("NullableOptionalString", &mRequest.nullableOptionalString);
+        AddArgument("NullableStruct", &mComplex_NullableStruct);
+        AddArgument("OptionalStruct", &mComplex_OptionalStruct, "", Argument::kOptional);
+        AddArgument("NullableOptionalStruct", &mComplex_NullableOptionalStruct, "", Argument::kOptional);
+        AddArgument("NullableList", &mComplex_NullableList);
+        AddArgument("OptionalList", &mComplex_OptionalList, "", Argument::kOptional);
+        AddArgument("NullableOptionalList", &mComplex_NullableOptionalList, "", Argument::kOptional);
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestComplexNullableOptionalRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
+                        commandId, endpointIds.at(0));
+        return ClusterCommand::SendCommand(device, endpointIds.at(0), clusterId, commandId, mRequest);
+    }
+
+    CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestComplexNullableOptionalRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
+                        groupId);
+
+        return ClusterCommand::SendGroupCommand(groupId, fabricIndex, clusterId, commandId, mRequest);
+    }
+
+private:
+    chip::app::Clusters::UnitTesting::Commands::TestComplexNullableOptionalRequest::Type mRequest;
+    TypedComplexArgument<chip::app::DataModel::Nullable<chip::app::Clusters::UnitTesting::Structs::SimpleStruct::Type>>
+        mComplex_NullableStruct;
+    TypedComplexArgument<chip::Optional<chip::app::Clusters::UnitTesting::Structs::SimpleStruct::Type>> mComplex_OptionalStruct;
+    TypedComplexArgument<
+        chip::Optional<chip::app::DataModel::Nullable<chip::app::Clusters::UnitTesting::Structs::SimpleStruct::Type>>>
+        mComplex_NullableOptionalStruct;
+    TypedComplexArgument<
+        chip::app::DataModel::Nullable<chip::app::DataModel::List<const chip::app::Clusters::UnitTesting::SimpleEnum>>>
+        mComplex_NullableList;
+    TypedComplexArgument<chip::Optional<chip::app::DataModel::List<const chip::app::Clusters::UnitTesting::SimpleEnum>>>
+        mComplex_OptionalList;
+    TypedComplexArgument<chip::Optional<
+        chip::app::DataModel::Nullable<chip::app::DataModel::List<const chip::app::Clusters::UnitTesting::SimpleEnum>>>>
+        mComplex_NullableOptionalList;
+};
+
+/*
+ * Command SimpleStructEchoRequest
+ */
+class UnitTestingSimpleStructEchoRequest : public ClusterCommand
+{
+public:
+    UnitTestingSimpleStructEchoRequest(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("simple-struct-echo-request", credsIssuerConfig), mComplex_Arg1(&mRequest.arg1)
+    {
+        AddArgument("Arg1", &mComplex_Arg1);
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::SimpleStructEchoRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
+                        commandId, endpointIds.at(0));
+        return ClusterCommand::SendCommand(device, endpointIds.at(0), clusterId, commandId, mRequest);
+    }
+
+    CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::SimpleStructEchoRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
+                        groupId);
+
+        return ClusterCommand::SendGroupCommand(groupId, fabricIndex, clusterId, commandId, mRequest);
+    }
+
+private:
+    chip::app::Clusters::UnitTesting::Commands::SimpleStructEchoRequest::Type mRequest;
+    TypedComplexArgument<chip::app::Clusters::UnitTesting::Structs::SimpleStruct::Type> mComplex_Arg1;
+};
+
+/*
+ * Command TimedInvokeRequest
+ */
+class UnitTestingTimedInvokeRequest : public ClusterCommand
+{
+public:
+    UnitTestingTimedInvokeRequest(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("timed-invoke-request", credsIssuerConfig)
+    {
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TimedInvokeRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
+                        commandId, endpointIds.at(0));
+        return ClusterCommand::SendCommand(device, endpointIds.at(0), clusterId, commandId, mRequest);
+    }
+
+    CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TimedInvokeRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
+                        groupId);
+
+        return ClusterCommand::SendGroupCommand(groupId, fabricIndex, clusterId, commandId, mRequest);
+    }
+
+private:
+    chip::app::Clusters::UnitTesting::Commands::TimedInvokeRequest::Type mRequest;
+};
+
+/*
+ * Command TestSimpleOptionalArgumentRequest
+ */
+class UnitTestingTestSimpleOptionalArgumentRequest : public ClusterCommand
+{
+public:
+    UnitTestingTestSimpleOptionalArgumentRequest(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("test-simple-optional-argument-request", credsIssuerConfig)
+    {
+        AddArgument("Arg1", 0, 1, &mRequest.arg1);
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestSimpleOptionalArgumentRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
+                        commandId, endpointIds.at(0));
+        return ClusterCommand::SendCommand(device, endpointIds.at(0), clusterId, commandId, mRequest);
+    }
+
+    CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestSimpleOptionalArgumentRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
+                        groupId);
+
+        return ClusterCommand::SendGroupCommand(groupId, fabricIndex, clusterId, commandId, mRequest);
+    }
+
+private:
+    chip::app::Clusters::UnitTesting::Commands::TestSimpleOptionalArgumentRequest::Type mRequest;
+};
+
+/*
+ * Command TestEmitTestEventRequest
+ */
+class UnitTestingTestEmitTestEventRequest : public ClusterCommand
+{
+public:
+    UnitTestingTestEmitTestEventRequest(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("test-emit-test-event-request", credsIssuerConfig)
+    {
+        AddArgument("Arg1", 0, UINT8_MAX, &mRequest.arg1);
+        AddArgument("Arg2", 0, UINT8_MAX, &mRequest.arg2);
+        AddArgument("Arg3", 0, 1, &mRequest.arg3);
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestEmitTestEventRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
+                        commandId, endpointIds.at(0));
+        return ClusterCommand::SendCommand(device, endpointIds.at(0), clusterId, commandId, mRequest);
+    }
+
+    CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestEmitTestEventRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
+                        groupId);
+
+        return ClusterCommand::SendGroupCommand(groupId, fabricIndex, clusterId, commandId, mRequest);
+    }
+
+private:
+    chip::app::Clusters::UnitTesting::Commands::TestEmitTestEventRequest::Type mRequest;
+};
+
+/*
+ * Command TestEmitTestFabricScopedEventRequest
+ */
+class UnitTestingTestEmitTestFabricScopedEventRequest : public ClusterCommand
+{
+public:
+    UnitTestingTestEmitTestFabricScopedEventRequest(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("test-emit-test-fabric-scoped-event-request", credsIssuerConfig)
+    {
+        AddArgument("Arg1", 0, UINT8_MAX, &mRequest.arg1);
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestEmitTestFabricScopedEventRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
+                        commandId, endpointIds.at(0));
+        return ClusterCommand::SendCommand(device, endpointIds.at(0), clusterId, commandId, mRequest);
+    }
+
+    CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestEmitTestFabricScopedEventRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
+                        groupId);
+
+        return ClusterCommand::SendGroupCommand(groupId, fabricIndex, clusterId, commandId, mRequest);
+    }
+
+private:
+    chip::app::Clusters::UnitTesting::Commands::TestEmitTestFabricScopedEventRequest::Type mRequest;
+};
+
+/*
+ * Command TestBatchHelperRequest
+ */
+class UnitTestingTestBatchHelperRequest : public ClusterCommand
+{
+public:
+    UnitTestingTestBatchHelperRequest(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("test-batch-helper-request", credsIssuerConfig)
+    {
+        AddArgument("SleepBeforeResponseTimeMs", 0, UINT16_MAX, &mRequest.sleepBeforeResponseTimeMs);
+        AddArgument("SizeOfResponseBuffer", 0, UINT16_MAX, &mRequest.sizeOfResponseBuffer);
+        AddArgument("FillCharacter", 0, UINT8_MAX, &mRequest.fillCharacter);
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestBatchHelperRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
+                        commandId, endpointIds.at(0));
+        return ClusterCommand::SendCommand(device, endpointIds.at(0), clusterId, commandId, mRequest);
+    }
+
+    CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestBatchHelperRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
+                        groupId);
+
+        return ClusterCommand::SendGroupCommand(groupId, fabricIndex, clusterId, commandId, mRequest);
+    }
+
+private:
+    chip::app::Clusters::UnitTesting::Commands::TestBatchHelperRequest::Type mRequest;
+};
+
+/*
+ * Command TestSecondBatchHelperRequest
+ */
+class UnitTestingTestSecondBatchHelperRequest : public ClusterCommand
+{
+public:
+    UnitTestingTestSecondBatchHelperRequest(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("test-second-batch-helper-request", credsIssuerConfig)
+    {
+        AddArgument("SleepBeforeResponseTimeMs", 0, UINT16_MAX, &mRequest.sleepBeforeResponseTimeMs);
+        AddArgument("SizeOfResponseBuffer", 0, UINT16_MAX, &mRequest.sizeOfResponseBuffer);
+        AddArgument("FillCharacter", 0, UINT8_MAX, &mRequest.fillCharacter);
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestSecondBatchHelperRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
+                        commandId, endpointIds.at(0));
+        return ClusterCommand::SendCommand(device, endpointIds.at(0), clusterId, commandId, mRequest);
+    }
+
+    CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestSecondBatchHelperRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
+                        groupId);
+
+        return ClusterCommand::SendGroupCommand(groupId, fabricIndex, clusterId, commandId, mRequest);
+    }
+
+private:
+    chip::app::Clusters::UnitTesting::Commands::TestSecondBatchHelperRequest::Type mRequest;
+};
+
+/*
+ * Command StringEchoRequest
+ */
+class UnitTestingStringEchoRequest : public ClusterCommand
+{
+public:
+    UnitTestingStringEchoRequest(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("string-echo-request", credsIssuerConfig)
+    {
+        AddArgument("Payload", &mRequest.payload);
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::StringEchoRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
+                        commandId, endpointIds.at(0));
+        return ClusterCommand::SendCommand(device, endpointIds.at(0), clusterId, commandId, mRequest);
+    }
+
+    CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::StringEchoRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
+                        groupId);
+
+        return ClusterCommand::SendGroupCommand(groupId, fabricIndex, clusterId, commandId, mRequest);
+    }
+
+private:
+    chip::app::Clusters::UnitTesting::Commands::StringEchoRequest::Type mRequest;
+};
+
+/*
+ * Command GlobalEchoRequest
+ */
+class UnitTestingGlobalEchoRequest : public ClusterCommand
+{
+public:
+    UnitTestingGlobalEchoRequest(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("global-echo-request", credsIssuerConfig), mComplex_Field1(&mRequest.field1)
+    {
+        AddArgument("Field1", &mComplex_Field1);
+        AddArgument("Field2", 0, UINT8_MAX, &mRequest.field2);
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::GlobalEchoRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
+                        commandId, endpointIds.at(0));
+        return ClusterCommand::SendCommand(device, endpointIds.at(0), clusterId, commandId, mRequest);
+    }
+
+    CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::GlobalEchoRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
+                        groupId);
+
+        return ClusterCommand::SendGroupCommand(groupId, fabricIndex, clusterId, commandId, mRequest);
+    }
+
+private:
+    chip::app::Clusters::UnitTesting::Commands::GlobalEchoRequest::Type mRequest;
+    TypedComplexArgument<chip::app::Clusters::Globals::Structs::TestGlobalStruct::Type> mComplex_Field1;
+};
+
+/*
+ * Command TestDifferentVendorMeiRequest
+ */
+class UnitTestingTestDifferentVendorMeiRequest : public ClusterCommand
+{
+public:
+    UnitTestingTestDifferentVendorMeiRequest(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("test-different-vendor-mei-request", credsIssuerConfig)
+    {
+        AddArgument("Arg1", 0, UINT8_MAX, &mRequest.arg1);
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestDifferentVendorMeiRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
+                        commandId, endpointIds.at(0));
+        return ClusterCommand::SendCommand(device, endpointIds.at(0), clusterId, commandId, mRequest);
+    }
+
+    CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::UnitTesting::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::UnitTesting::Commands::TestDifferentVendorMeiRequest::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
+                        groupId);
+
+        return ClusterCommand::SendGroupCommand(groupId, fabricIndex, clusterId, commandId, mRequest);
+    }
+
+private:
+    chip::app::Clusters::UnitTesting::Commands::TestDifferentVendorMeiRequest::Type mRequest;
+};
+
+/*----------------------------------------------------------------------------*\
+| Cluster FaultInjection                                              | 0xFFF1FC06 |
+|------------------------------------------------------------------------------|
+| Commands:                                                           |        |
+| * FailAtFault                                                       |   0x00 |
+| * FailRandomlyAtFault                                               |   0x01 |
+|------------------------------------------------------------------------------|
+| Attributes:                                                         |        |
+| * GeneratedCommandList                                              | 0xFFF8 |
+| * AcceptedCommandList                                               | 0xFFF9 |
+| * EventList                                                         | 0xFFFA |
+| * AttributeList                                                     | 0xFFFB |
+| * FeatureMap                                                        | 0xFFFC |
+| * ClusterRevision                                                   | 0xFFFD |
+|------------------------------------------------------------------------------|
+| Events:                                                             |        |
+\*----------------------------------------------------------------------------*/
+
+/*
+ * Command FailAtFault
+ */
+class FaultInjectionFailAtFault : public ClusterCommand
+{
+public:
+    FaultInjectionFailAtFault(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("fail-at-fault", credsIssuerConfig)
+    {
+        AddArgument("Type", 0, UINT8_MAX, &mRequest.type);
+        AddArgument("Id", 0, UINT32_MAX, &mRequest.id);
+        AddArgument("NumCallsToSkip", 0, UINT32_MAX, &mRequest.numCallsToSkip);
+        AddArgument("NumCallsToFail", 0, UINT32_MAX, &mRequest.numCallsToFail);
+        AddArgument("TakeMutex", 0, 1, &mRequest.takeMutex);
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::FaultInjection::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::FaultInjection::Commands::FailAtFault::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
+                        commandId, endpointIds.at(0));
+        return ClusterCommand::SendCommand(device, endpointIds.at(0), clusterId, commandId, mRequest);
+    }
+
+    CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::FaultInjection::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::FaultInjection::Commands::FailAtFault::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
+                        groupId);
+
+        return ClusterCommand::SendGroupCommand(groupId, fabricIndex, clusterId, commandId, mRequest);
+    }
+
+private:
+    chip::app::Clusters::FaultInjection::Commands::FailAtFault::Type mRequest;
+};
+
+/*
+ * Command FailRandomlyAtFault
+ */
+class FaultInjectionFailRandomlyAtFault : public ClusterCommand
+{
+public:
+    FaultInjectionFailRandomlyAtFault(CredentialIssuerCommands * credsIssuerConfig) :
+        ClusterCommand("fail-randomly-at-fault", credsIssuerConfig)
+    {
+        AddArgument("Type", 0, UINT8_MAX, &mRequest.type);
+        AddArgument("Id", 0, UINT32_MAX, &mRequest.id);
+        AddArgument("Percentage", 0, UINT8_MAX, &mRequest.percentage);
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::FaultInjection::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::FaultInjection::Commands::FailRandomlyAtFault::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
+                        commandId, endpointIds.at(0));
+        return ClusterCommand::SendCommand(device, endpointIds.at(0), clusterId, commandId, mRequest);
+    }
+
+    CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::FaultInjection::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::FaultInjection::Commands::FailRandomlyAtFault::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
+                        groupId);
+
+        return ClusterCommand::SendGroupCommand(groupId, fabricIndex, clusterId, commandId, mRequest);
+    }
+
+private:
+    chip::app::Clusters::FaultInjection::Commands::FailRandomlyAtFault::Type mRequest;
+};
+
+/*----------------------------------------------------------------------------*\
+| Cluster SampleMei                                                   | 0xFFF1FC20 |
+|------------------------------------------------------------------------------|
+| Commands:                                                           |        |
+| * Ping                                                              |   0x00 |
+| * AddArguments                                                      |   0x02 |
+|------------------------------------------------------------------------------|
+| Attributes:                                                         |        |
+| * FlipFlop                                                          | 0x0000 |
+| * GeneratedCommandList                                              | 0xFFF8 |
+| * AcceptedCommandList                                               | 0xFFF9 |
+| * EventList                                                         | 0xFFFA |
+| * AttributeList                                                     | 0xFFFB |
+| * FeatureMap                                                        | 0xFFFC |
+| * ClusterRevision                                                   | 0xFFFD |
+|------------------------------------------------------------------------------|
+| Events:                                                             |        |
+| * PingCountEvent                                                    | 0x0000 |
+\*----------------------------------------------------------------------------*/
+
+/*
+ * Command Ping
+ */
+class SampleMeiPing : public ClusterCommand
+{
+public:
+    SampleMeiPing(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("ping", credsIssuerConfig)
+    {
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::SampleMei::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::SampleMei::Commands::Ping::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
+                        commandId, endpointIds.at(0));
+        return ClusterCommand::SendCommand(device, endpointIds.at(0), clusterId, commandId, mRequest);
+    }
+
+    CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::SampleMei::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::SampleMei::Commands::Ping::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
+                        groupId);
+
+        return ClusterCommand::SendGroupCommand(groupId, fabricIndex, clusterId, commandId, mRequest);
+    }
+
+private:
+    chip::app::Clusters::SampleMei::Commands::Ping::Type mRequest;
+};
+
+/*
+ * Command AddArguments
+ */
+class SampleMeiAddArguments : public ClusterCommand
+{
+public:
+    SampleMeiAddArguments(CredentialIssuerCommands * credsIssuerConfig) : ClusterCommand("add-arguments", credsIssuerConfig)
+    {
+        AddArgument("Arg1", 0, UINT8_MAX, &mRequest.arg1);
+        AddArgument("Arg2", 0, UINT8_MAX, &mRequest.arg2);
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(chip::DeviceProxy * device, std::vector<chip::EndpointId> endpointIds) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::SampleMei::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::SampleMei::Commands::AddArguments::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId,
+                        commandId, endpointIds.at(0));
+        return ClusterCommand::SendCommand(device, endpointIds.at(0), clusterId, commandId, mRequest);
+    }
+
+    CHIP_ERROR SendGroupCommand(chip::GroupId groupId, chip::FabricIndex fabricIndex) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::SampleMei::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::SampleMei::Commands::AddArguments::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on Group %u", clusterId, commandId,
+                        groupId);
+
+        return ClusterCommand::SendGroupCommand(groupId, fabricIndex, clusterId, commandId, mRequest);
+    }
+
+private:
+    chip::app::Clusters::SampleMei::Commands::AddArguments::Type mRequest;
+};
+
+/*----------------------------------------------------------------------------*\
+| Register all Clusters commands                                               |
+\*----------------------------------------------------------------------------*/
+void registerClusterIdentify(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+{
+    using namespace chip::app::Clusters::Identify;
+
+    const char * clusterName = "Identify";
+
+    commands_list clusterCommands = {
+        //
+        // Commands
+        //
+        make_unique<ClusterCommand>(Id, credsIssuerConfig),    //
+        make_unique<IdentifyIdentify>(credsIssuerConfig),      //
+        make_unique<IdentifyTriggerEffect>(credsIssuerConfig), //
+        //
+        // Attributes
+        //
+        make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 //
+        make_unique<ReadAttribute>(Id, "identify-time", Attributes::IdentifyTime::Id, credsIssuerConfig),                  //
+        make_unique<ReadAttribute>(Id, "identify-type", Attributes::IdentifyType::Id, credsIssuerConfig),                  //
+        make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
+        make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
+        make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                //
+        make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
+        make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
+        make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              //
+        make_unique<WriteAttribute<uint16_t>>(Id, "identify-time", 0, UINT16_MAX, Attributes::IdentifyTime::Id,
+                                              WriteCommandType::kWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::Clusters::Identify::IdentifyTypeEnum>>(
+            Id, "identify-type", 0, UINT8_MAX, Attributes::IdentifyType::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
+            Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
+            credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
+            Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>(
+            Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>(
+            Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig),                                //
+        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 //
+        make_unique<SubscribeAttribute>(Id, "identify-time", Attributes::IdentifyTime::Id, credsIssuerConfig),                  //
+        make_unique<SubscribeAttribute>(Id, "identify-type", Attributes::IdentifyType::Id, credsIssuerConfig),                  //
+        make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
+        make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
+        make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                //
+        make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
+        make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
+        //
+        // Events
+        //
+        make_unique<ReadEvent>(Id, credsIssuerConfig),      //
+        make_unique<SubscribeEvent>(Id, credsIssuerConfig), //
+    };
+
+    commands.RegisterCluster(clusterName, clusterCommands);
+}
+void registerClusterGroups(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+{
+    using namespace chip::app::Clusters::Groups;
+
+    const char * clusterName = "Groups";
+
+    commands_list clusterCommands = {
+        //
+        // Commands
+        //
+        make_unique<ClusterCommand>(Id, credsIssuerConfig),          //
+        make_unique<GroupsAddGroup>(credsIssuerConfig),              //
+        make_unique<GroupsViewGroup>(credsIssuerConfig),             //
+        make_unique<GroupsGetGroupMembership>(credsIssuerConfig),    //
+        make_unique<GroupsRemoveGroup>(credsIssuerConfig),           //
+        make_unique<GroupsRemoveAllGroups>(credsIssuerConfig),       //
+        make_unique<GroupsAddGroupIfIdentifying>(credsIssuerConfig), //
+        //
+        // Attributes
+        //
+        make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 //
+        make_unique<ReadAttribute>(Id, "name-support", Attributes::NameSupport::Id, credsIssuerConfig),                    //
+        make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
+        make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
+        make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                //
+        make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
+        make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
+        make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              //
+        make_unique<WriteAttribute<chip::BitMask<chip::app::Clusters::Groups::NameSupportBitmap>>>(
+            Id, "name-support", 0, UINT8_MAX, Attributes::NameSupport::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
+            Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
+            credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
+            Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>(
+            Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>(
+            Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig),                                //
+        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 //
+        make_unique<SubscribeAttribute>(Id, "name-support", Attributes::NameSupport::Id, credsIssuerConfig),                    //
+        make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
+        make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
+        make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                //
+        make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
+        make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
+        //
+        // Events
+        //
+        make_unique<ReadEvent>(Id, credsIssuerConfig),      //
+        make_unique<SubscribeEvent>(Id, credsIssuerConfig), //
+    };
+
+    commands.RegisterCluster(clusterName, clusterCommands);
+}
+void registerClusterOnOff(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+{
+    using namespace chip::app::Clusters::OnOff;
+
+    const char * clusterName = "OnOff";
+
     commands_list clusterCommands = {
         //
         // Commands
@@ -24005,11 +25588,250 @@ void registerClusterBallastConfiguration(Commands & commands, CredentialIssuerCo
 
     commands.RegisterCluster(clusterName, clusterCommands);
 }
-void registerClusterIlluminanceMeasurement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+void registerClusterIlluminanceMeasurement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+{
+    using namespace chip::app::Clusters::IlluminanceMeasurement;
+
+    const char * clusterName = "IlluminanceMeasurement";
+
+    commands_list clusterCommands = {
+        //
+        // Commands
+        //
+        make_unique<ClusterCommand>(Id, credsIssuerConfig), //
+        //
+        // Attributes
+        //
+        make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 //
+        make_unique<ReadAttribute>(Id, "measured-value", Attributes::MeasuredValue::Id, credsIssuerConfig),                //
+        make_unique<ReadAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),         //
+        make_unique<ReadAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),         //
+        make_unique<ReadAttribute>(Id, "tolerance", Attributes::Tolerance::Id, credsIssuerConfig),                         //
+        make_unique<ReadAttribute>(Id, "light-sensor-type", Attributes::LightSensorType::Id, credsIssuerConfig),           //
+        make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
+        make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
+        make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                //
+        make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
+        make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
+        make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>(Id, "measured-value", 0, UINT16_MAX,
+                                                                              Attributes::MeasuredValue::Id,
+                                                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>(Id, "min-measured-value", 0, UINT16_MAX,
+                                                                              Attributes::MinMeasuredValue::Id,
+                                                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>(Id, "max-measured-value", 0, UINT16_MAX,
+                                                                              Attributes::MaxMeasuredValue::Id,
+                                                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint16_t>>(Id, "tolerance", 0, UINT16_MAX, Attributes::Tolerance::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<
+            WriteAttribute<chip::app::DataModel::Nullable<chip::app::Clusters::IlluminanceMeasurement::LightSensorTypeEnum>>>(
+            Id, "light-sensor-type", 0, UINT8_MAX, Attributes::LightSensorType::Id, WriteCommandType::kForceWrite,
+            credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
+            Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
+            credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
+            Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>(
+            Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>(
+            Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig),                                //
+        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 //
+        make_unique<SubscribeAttribute>(Id, "measured-value", Attributes::MeasuredValue::Id, credsIssuerConfig),                //
+        make_unique<SubscribeAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),         //
+        make_unique<SubscribeAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),         //
+        make_unique<SubscribeAttribute>(Id, "tolerance", Attributes::Tolerance::Id, credsIssuerConfig),                         //
+        make_unique<SubscribeAttribute>(Id, "light-sensor-type", Attributes::LightSensorType::Id, credsIssuerConfig),           //
+        make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
+        make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
+        make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                //
+        make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
+        make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
+        //
+        // Events
+        //
+        make_unique<ReadEvent>(Id, credsIssuerConfig),      //
+        make_unique<SubscribeEvent>(Id, credsIssuerConfig), //
+    };
+
+    commands.RegisterCluster(clusterName, clusterCommands);
+}
+void registerClusterTemperatureMeasurement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+{
+    using namespace chip::app::Clusters::TemperatureMeasurement;
+
+    const char * clusterName = "TemperatureMeasurement";
+
+    commands_list clusterCommands = {
+        //
+        // Commands
+        //
+        make_unique<ClusterCommand>(Id, credsIssuerConfig), //
+        //
+        // Attributes
+        //
+        make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 //
+        make_unique<ReadAttribute>(Id, "measured-value", Attributes::MeasuredValue::Id, credsIssuerConfig),                //
+        make_unique<ReadAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),         //
+        make_unique<ReadAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),         //
+        make_unique<ReadAttribute>(Id, "tolerance", Attributes::Tolerance::Id, credsIssuerConfig),                         //
+        make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
+        make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
+        make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                //
+        make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
+        make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
+        make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "measured-value", INT16_MIN, INT16_MAX,
+                                                                             Attributes::MeasuredValue::Id,
+                                                                             WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "min-measured-value", INT16_MIN, INT16_MAX,
+                                                                             Attributes::MinMeasuredValue::Id,
+                                                                             WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "max-measured-value", INT16_MIN, INT16_MAX,
+                                                                             Attributes::MaxMeasuredValue::Id,
+                                                                             WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint16_t>>(Id, "tolerance", 0, UINT16_MAX, Attributes::Tolerance::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
+            Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
+            credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
+            Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>(
+            Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>(
+            Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig),                                //
+        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 //
+        make_unique<SubscribeAttribute>(Id, "measured-value", Attributes::MeasuredValue::Id, credsIssuerConfig),                //
+        make_unique<SubscribeAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),         //
+        make_unique<SubscribeAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),         //
+        make_unique<SubscribeAttribute>(Id, "tolerance", Attributes::Tolerance::Id, credsIssuerConfig),                         //
+        make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
+        make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
+        make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                //
+        make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
+        make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
+        //
+        // Events
+        //
+        make_unique<ReadEvent>(Id, credsIssuerConfig),      //
+        make_unique<SubscribeEvent>(Id, credsIssuerConfig), //
+    };
+
+    commands.RegisterCluster(clusterName, clusterCommands);
+}
+void registerClusterPressureMeasurement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+{
+    using namespace chip::app::Clusters::PressureMeasurement;
+
+    const char * clusterName = "PressureMeasurement";
+
+    commands_list clusterCommands = {
+        //
+        // Commands
+        //
+        make_unique<ClusterCommand>(Id, credsIssuerConfig), //
+        //
+        // Attributes
+        //
+        make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 //
+        make_unique<ReadAttribute>(Id, "measured-value", Attributes::MeasuredValue::Id, credsIssuerConfig),                //
+        make_unique<ReadAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),         //
+        make_unique<ReadAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),         //
+        make_unique<ReadAttribute>(Id, "tolerance", Attributes::Tolerance::Id, credsIssuerConfig),                         //
+        make_unique<ReadAttribute>(Id, "scaled-value", Attributes::ScaledValue::Id, credsIssuerConfig),                    //
+        make_unique<ReadAttribute>(Id, "min-scaled-value", Attributes::MinScaledValue::Id, credsIssuerConfig),             //
+        make_unique<ReadAttribute>(Id, "max-scaled-value", Attributes::MaxScaledValue::Id, credsIssuerConfig),             //
+        make_unique<ReadAttribute>(Id, "scaled-tolerance", Attributes::ScaledTolerance::Id, credsIssuerConfig),            //
+        make_unique<ReadAttribute>(Id, "scale", Attributes::Scale::Id, credsIssuerConfig),                                 //
+        make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
+        make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
+        make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                //
+        make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
+        make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
+        make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "measured-value", INT16_MIN, INT16_MAX,
+                                                                             Attributes::MeasuredValue::Id,
+                                                                             WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "min-measured-value", INT16_MIN, INT16_MAX,
+                                                                             Attributes::MinMeasuredValue::Id,
+                                                                             WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "max-measured-value", INT16_MIN, INT16_MAX,
+                                                                             Attributes::MaxMeasuredValue::Id,
+                                                                             WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint16_t>>(Id, "tolerance", 0, UINT16_MAX, Attributes::Tolerance::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "scaled-value", INT16_MIN, INT16_MAX,
+                                                                             Attributes::ScaledValue::Id,
+                                                                             WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "min-scaled-value", INT16_MIN, INT16_MAX,
+                                                                             Attributes::MinScaledValue::Id,
+                                                                             WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "max-scaled-value", INT16_MIN, INT16_MAX,
+                                                                             Attributes::MaxScaledValue::Id,
+                                                                             WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint16_t>>(Id, "scaled-tolerance", 0, UINT16_MAX, Attributes::ScaledTolerance::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<int8_t>>(Id, "scale", INT8_MIN, INT8_MAX, Attributes::Scale::Id, WriteCommandType::kForceWrite,
+                                            credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
+            Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
+            credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
+            Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>(
+            Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>(
+            Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig),                                //
+        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 //
+        make_unique<SubscribeAttribute>(Id, "measured-value", Attributes::MeasuredValue::Id, credsIssuerConfig),                //
+        make_unique<SubscribeAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),         //
+        make_unique<SubscribeAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),         //
+        make_unique<SubscribeAttribute>(Id, "tolerance", Attributes::Tolerance::Id, credsIssuerConfig),                         //
+        make_unique<SubscribeAttribute>(Id, "scaled-value", Attributes::ScaledValue::Id, credsIssuerConfig),                    //
+        make_unique<SubscribeAttribute>(Id, "min-scaled-value", Attributes::MinScaledValue::Id, credsIssuerConfig),             //
+        make_unique<SubscribeAttribute>(Id, "max-scaled-value", Attributes::MaxScaledValue::Id, credsIssuerConfig),             //
+        make_unique<SubscribeAttribute>(Id, "scaled-tolerance", Attributes::ScaledTolerance::Id, credsIssuerConfig),            //
+        make_unique<SubscribeAttribute>(Id, "scale", Attributes::Scale::Id, credsIssuerConfig),                                 //
+        make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
+        make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
+        make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                //
+        make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
+        make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
+        //
+        // Events
+        //
+        make_unique<ReadEvent>(Id, credsIssuerConfig),      //
+        make_unique<SubscribeEvent>(Id, credsIssuerConfig), //
+    };
+
+    commands.RegisterCluster(clusterName, clusterCommands);
+}
+void registerClusterFlowMeasurement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
 {
-    using namespace chip::app::Clusters::IlluminanceMeasurement;
+    using namespace chip::app::Clusters::FlowMeasurement;
 
-    const char * clusterName = "IlluminanceMeasurement";
+    const char * clusterName = "FlowMeasurement";
 
     commands_list clusterCommands = {
         //
@@ -24024,7 +25846,6 @@ void registerClusterIlluminanceMeasurement(Commands & commands, CredentialIssuer
         make_unique<ReadAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),         //
         make_unique<ReadAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),         //
         make_unique<ReadAttribute>(Id, "tolerance", Attributes::Tolerance::Id, credsIssuerConfig),                         //
-        make_unique<ReadAttribute>(Id, "light-sensor-type", Attributes::LightSensorType::Id, credsIssuerConfig),           //
         make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -24043,10 +25864,6 @@ void registerClusterIlluminanceMeasurement(Commands & commands, CredentialIssuer
                                                                               WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttribute<uint16_t>>(Id, "tolerance", 0, UINT16_MAX, Attributes::Tolerance::Id,
                                               WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<
-            WriteAttribute<chip::app::DataModel::Nullable<chip::app::Clusters::IlluminanceMeasurement::LightSensorTypeEnum>>>(
-            Id, "light-sensor-type", 0, UINT8_MAX, Attributes::LightSensorType::Id, WriteCommandType::kForceWrite,
-            credsIssuerConfig), //
         make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
             Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
@@ -24065,7 +25882,6 @@ void registerClusterIlluminanceMeasurement(Commands & commands, CredentialIssuer
         make_unique<SubscribeAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),         //
         make_unique<SubscribeAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),         //
         make_unique<SubscribeAttribute>(Id, "tolerance", Attributes::Tolerance::Id, credsIssuerConfig),                         //
-        make_unique<SubscribeAttribute>(Id, "light-sensor-type", Attributes::LightSensorType::Id, credsIssuerConfig),           //
         make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -24081,11 +25897,11 @@ void registerClusterIlluminanceMeasurement(Commands & commands, CredentialIssuer
 
     commands.RegisterCluster(clusterName, clusterCommands);
 }
-void registerClusterTemperatureMeasurement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+void registerClusterRelativeHumidityMeasurement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
 {
-    using namespace chip::app::Clusters::TemperatureMeasurement;
+    using namespace chip::app::Clusters::RelativeHumidityMeasurement;
 
-    const char * clusterName = "TemperatureMeasurement";
+    const char * clusterName = "RelativeHumidityMeasurement";
 
     commands_list clusterCommands = {
         //
@@ -24107,15 +25923,15 @@ void registerClusterTemperatureMeasurement(Commands & commands, CredentialIssuer
         make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
         make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
         make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "measured-value", INT16_MIN, INT16_MAX,
-                                                                             Attributes::MeasuredValue::Id,
-                                                                             WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "min-measured-value", INT16_MIN, INT16_MAX,
-                                                                             Attributes::MinMeasuredValue::Id,
-                                                                             WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "max-measured-value", INT16_MIN, INT16_MAX,
-                                                                             Attributes::MaxMeasuredValue::Id,
-                                                                             WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>(Id, "measured-value", 0, UINT16_MAX,
+                                                                              Attributes::MeasuredValue::Id,
+                                                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>(Id, "min-measured-value", 0, UINT16_MAX,
+                                                                              Attributes::MinMeasuredValue::Id,
+                                                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>(Id, "max-measured-value", 0, UINT16_MAX,
+                                                                              Attributes::MaxMeasuredValue::Id,
+                                                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttribute<uint16_t>>(Id, "tolerance", 0, UINT16_MAX, Attributes::Tolerance::Id,
                                               WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
@@ -24151,11 +25967,11 @@ void registerClusterTemperatureMeasurement(Commands & commands, CredentialIssuer
 
     commands.RegisterCluster(clusterName, clusterCommands);
 }
-void registerClusterPressureMeasurement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+void registerClusterOccupancySensing(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
 {
-    using namespace chip::app::Clusters::PressureMeasurement;
+    using namespace chip::app::Clusters::OccupancySensing;
 
-    const char * clusterName = "PressureMeasurement";
+    const char * clusterName = "OccupancySensing";
 
     commands_list clusterCommands = {
         //
@@ -24165,16 +25981,31 @@ void registerClusterPressureMeasurement(Commands & commands, CredentialIssuerCom
         //
         // Attributes
         //
-        make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 //
-        make_unique<ReadAttribute>(Id, "measured-value", Attributes::MeasuredValue::Id, credsIssuerConfig),                //
-        make_unique<ReadAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),         //
-        make_unique<ReadAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),         //
-        make_unique<ReadAttribute>(Id, "tolerance", Attributes::Tolerance::Id, credsIssuerConfig),                         //
-        make_unique<ReadAttribute>(Id, "scaled-value", Attributes::ScaledValue::Id, credsIssuerConfig),                    //
-        make_unique<ReadAttribute>(Id, "min-scaled-value", Attributes::MinScaledValue::Id, credsIssuerConfig),             //
-        make_unique<ReadAttribute>(Id, "max-scaled-value", Attributes::MaxScaledValue::Id, credsIssuerConfig),             //
-        make_unique<ReadAttribute>(Id, "scaled-tolerance", Attributes::ScaledTolerance::Id, credsIssuerConfig),            //
-        make_unique<ReadAttribute>(Id, "scale", Attributes::Scale::Id, credsIssuerConfig),                                 //
+        make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                               //
+        make_unique<ReadAttribute>(Id, "occupancy", Attributes::Occupancy::Id, credsIssuerConfig),                       //
+        make_unique<ReadAttribute>(Id, "occupancy-sensor-type", Attributes::OccupancySensorType::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "occupancy-sensor-type-bitmap", Attributes::OccupancySensorTypeBitmap::Id,
+                                   credsIssuerConfig),                                                         //
+        make_unique<ReadAttribute>(Id, "hold-time", Attributes::HoldTime::Id, credsIssuerConfig),              //
+        make_unique<ReadAttribute>(Id, "hold-time-limits", Attributes::HoldTimeLimits::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "piroccupied-to-unoccupied-delay", Attributes::PIROccupiedToUnoccupiedDelay::Id,
+                                   credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "pirunoccupied-to-occupied-delay", Attributes::PIRUnoccupiedToOccupiedDelay::Id,
+                                   credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "pirunoccupied-to-occupied-threshold", Attributes::PIRUnoccupiedToOccupiedThreshold::Id,
+                                   credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "ultrasonic-occupied-to-unoccupied-delay",
+                                   Attributes::UltrasonicOccupiedToUnoccupiedDelay::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "ultrasonic-unoccupied-to-occupied-delay",
+                                   Attributes::UltrasonicUnoccupiedToOccupiedDelay::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "ultrasonic-unoccupied-to-occupied-threshold",
+                                   Attributes::UltrasonicUnoccupiedToOccupiedThreshold::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "physical-contact-occupied-to-unoccupied-delay",
+                                   Attributes::PhysicalContactOccupiedToUnoccupiedDelay::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "physical-contact-unoccupied-to-occupied-delay",
+                                   Attributes::PhysicalContactUnoccupiedToOccupiedDelay::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "physical-contact-unoccupied-to-occupied-threshold",
+                                   Attributes::PhysicalContactUnoccupiedToOccupiedThreshold::Id, credsIssuerConfig),       //
         make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -24182,30 +26013,45 @@ void registerClusterPressureMeasurement(Commands & commands, CredentialIssuerCom
         make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
         make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
         make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "measured-value", INT16_MIN, INT16_MAX,
-                                                                             Attributes::MeasuredValue::Id,
-                                                                             WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "min-measured-value", INT16_MIN, INT16_MAX,
-                                                                             Attributes::MinMeasuredValue::Id,
-                                                                             WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "max-measured-value", INT16_MIN, INT16_MAX,
-                                                                             Attributes::MaxMeasuredValue::Id,
-                                                                             WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<uint16_t>>(Id, "tolerance", 0, UINT16_MAX, Attributes::Tolerance::Id,
-                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "scaled-value", INT16_MIN, INT16_MAX,
-                                                                             Attributes::ScaledValue::Id,
-                                                                             WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "min-scaled-value", INT16_MIN, INT16_MAX,
-                                                                             Attributes::MinScaledValue::Id,
-                                                                             WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<int16_t>>>(Id, "max-scaled-value", INT16_MIN, INT16_MAX,
-                                                                             Attributes::MaxScaledValue::Id,
-                                                                             WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<uint16_t>>(Id, "scaled-tolerance", 0, UINT16_MAX, Attributes::ScaledTolerance::Id,
-                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<int8_t>>(Id, "scale", INT8_MIN, INT8_MAX, Attributes::Scale::Id, WriteCommandType::kForceWrite,
-                                            credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::BitMask<chip::app::Clusters::OccupancySensing::OccupancyBitmap>>>(
+            Id, "occupancy", 0, UINT8_MAX, Attributes::Occupancy::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::Clusters::OccupancySensing::OccupancySensorTypeEnum>>(
+            Id, "occupancy-sensor-type", 0, UINT8_MAX, Attributes::OccupancySensorType::Id, WriteCommandType::kForceWrite,
+            credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::BitMask<chip::app::Clusters::OccupancySensing::OccupancySensorTypeBitmap>>>(
+            Id, "occupancy-sensor-type-bitmap", 0, UINT8_MAX, Attributes::OccupancySensorTypeBitmap::Id,
+            WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint16_t>>(Id, "hold-time", 0, UINT16_MAX, Attributes::HoldTime::Id, WriteCommandType::kWrite,
+                                              credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::Clusters::OccupancySensing::Structs::HoldTimeLimitsStruct::Type>>(
+            Id, "hold-time-limits", Attributes::HoldTimeLimits::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint16_t>>(Id, "piroccupied-to-unoccupied-delay", 0, UINT16_MAX,
+                                              Attributes::PIROccupiedToUnoccupiedDelay::Id, WriteCommandType::kWrite,
+                                              credsIssuerConfig), //
+        make_unique<WriteAttribute<uint16_t>>(Id, "pirunoccupied-to-occupied-delay", 0, UINT16_MAX,
+                                              Attributes::PIRUnoccupiedToOccupiedDelay::Id, WriteCommandType::kWrite,
+                                              credsIssuerConfig), //
+        make_unique<WriteAttribute<uint8_t>>(Id, "pirunoccupied-to-occupied-threshold", 0, UINT8_MAX,
+                                             Attributes::PIRUnoccupiedToOccupiedThreshold::Id, WriteCommandType::kWrite,
+                                             credsIssuerConfig), //
+        make_unique<WriteAttribute<uint16_t>>(Id, "ultrasonic-occupied-to-unoccupied-delay", 0, UINT16_MAX,
+                                              Attributes::UltrasonicOccupiedToUnoccupiedDelay::Id, WriteCommandType::kWrite,
+                                              credsIssuerConfig), //
+        make_unique<WriteAttribute<uint16_t>>(Id, "ultrasonic-unoccupied-to-occupied-delay", 0, UINT16_MAX,
+                                              Attributes::UltrasonicUnoccupiedToOccupiedDelay::Id, WriteCommandType::kWrite,
+                                              credsIssuerConfig), //
+        make_unique<WriteAttribute<uint8_t>>(Id, "ultrasonic-unoccupied-to-occupied-threshold", 0, UINT8_MAX,
+                                             Attributes::UltrasonicUnoccupiedToOccupiedThreshold::Id, WriteCommandType::kWrite,
+                                             credsIssuerConfig), //
+        make_unique<WriteAttribute<uint16_t>>(Id, "physical-contact-occupied-to-unoccupied-delay", 0, UINT16_MAX,
+                                              Attributes::PhysicalContactOccupiedToUnoccupiedDelay::Id, WriteCommandType::kWrite,
+                                              credsIssuerConfig), //
+        make_unique<WriteAttribute<uint16_t>>(Id, "physical-contact-unoccupied-to-occupied-delay", 0, UINT16_MAX,
+                                              Attributes::PhysicalContactUnoccupiedToOccupiedDelay::Id, WriteCommandType::kWrite,
+                                              credsIssuerConfig), //
+        make_unique<WriteAttribute<uint8_t>>(Id, "physical-contact-unoccupied-to-occupied-threshold", 0, UINT8_MAX,
+                                             Attributes::PhysicalContactUnoccupiedToOccupiedThreshold::Id, WriteCommandType::kWrite,
+                                             credsIssuerConfig), //
         make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
             Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
@@ -24218,17 +26064,32 @@ void registerClusterPressureMeasurement(Commands & commands, CredentialIssuerCom
         make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id,
                                               WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
-                                              WriteCommandType::kForceWrite, credsIssuerConfig),                                //
-        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 //
-        make_unique<SubscribeAttribute>(Id, "measured-value", Attributes::MeasuredValue::Id, credsIssuerConfig),                //
-        make_unique<SubscribeAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),         //
-        make_unique<SubscribeAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),         //
-        make_unique<SubscribeAttribute>(Id, "tolerance", Attributes::Tolerance::Id, credsIssuerConfig),                         //
-        make_unique<SubscribeAttribute>(Id, "scaled-value", Attributes::ScaledValue::Id, credsIssuerConfig),                    //
-        make_unique<SubscribeAttribute>(Id, "min-scaled-value", Attributes::MinScaledValue::Id, credsIssuerConfig),             //
-        make_unique<SubscribeAttribute>(Id, "max-scaled-value", Attributes::MaxScaledValue::Id, credsIssuerConfig),             //
-        make_unique<SubscribeAttribute>(Id, "scaled-tolerance", Attributes::ScaledTolerance::Id, credsIssuerConfig),            //
-        make_unique<SubscribeAttribute>(Id, "scale", Attributes::Scale::Id, credsIssuerConfig),                                 //
+                                              WriteCommandType::kForceWrite, credsIssuerConfig),                              //
+        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                               //
+        make_unique<SubscribeAttribute>(Id, "occupancy", Attributes::Occupancy::Id, credsIssuerConfig),                       //
+        make_unique<SubscribeAttribute>(Id, "occupancy-sensor-type", Attributes::OccupancySensorType::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "occupancy-sensor-type-bitmap", Attributes::OccupancySensorTypeBitmap::Id,
+                                        credsIssuerConfig),                                                         //
+        make_unique<SubscribeAttribute>(Id, "hold-time", Attributes::HoldTime::Id, credsIssuerConfig),              //
+        make_unique<SubscribeAttribute>(Id, "hold-time-limits", Attributes::HoldTimeLimits::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "piroccupied-to-unoccupied-delay", Attributes::PIROccupiedToUnoccupiedDelay::Id,
+                                        credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "pirunoccupied-to-occupied-delay", Attributes::PIRUnoccupiedToOccupiedDelay::Id,
+                                        credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "pirunoccupied-to-occupied-threshold", Attributes::PIRUnoccupiedToOccupiedThreshold::Id,
+                                        credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "ultrasonic-occupied-to-unoccupied-delay",
+                                        Attributes::UltrasonicOccupiedToUnoccupiedDelay::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "ultrasonic-unoccupied-to-occupied-delay",
+                                        Attributes::UltrasonicUnoccupiedToOccupiedDelay::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "ultrasonic-unoccupied-to-occupied-threshold",
+                                        Attributes::UltrasonicUnoccupiedToOccupiedThreshold::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "physical-contact-occupied-to-unoccupied-delay",
+                                        Attributes::PhysicalContactOccupiedToUnoccupiedDelay::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "physical-contact-unoccupied-to-occupied-delay",
+                                        Attributes::PhysicalContactUnoccupiedToOccupiedDelay::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "physical-contact-unoccupied-to-occupied-threshold",
+                                        Attributes::PhysicalContactUnoccupiedToOccupiedThreshold::Id, credsIssuerConfig),       //
         make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -24238,17 +26099,19 @@ void registerClusterPressureMeasurement(Commands & commands, CredentialIssuerCom
         //
         // Events
         //
-        make_unique<ReadEvent>(Id, credsIssuerConfig),      //
-        make_unique<SubscribeEvent>(Id, credsIssuerConfig), //
+        make_unique<ReadEvent>(Id, credsIssuerConfig),                                                         //
+        make_unique<ReadEvent>(Id, "occupancy-changed", Events::OccupancyChanged::Id, credsIssuerConfig),      //
+        make_unique<SubscribeEvent>(Id, credsIssuerConfig),                                                    //
+        make_unique<SubscribeEvent>(Id, "occupancy-changed", Events::OccupancyChanged::Id, credsIssuerConfig), //
     };
 
     commands.RegisterCluster(clusterName, clusterCommands);
 }
-void registerClusterFlowMeasurement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+void registerClusterCarbonMonoxideConcentrationMeasurement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
 {
-    using namespace chip::app::Clusters::FlowMeasurement;
+    using namespace chip::app::Clusters::CarbonMonoxideConcentrationMeasurement;
 
-    const char * clusterName = "FlowMeasurement";
+    const char * clusterName = "CarbonMonoxideConcentrationMeasurement";
 
     commands_list clusterCommands = {
         //
@@ -24258,11 +26121,19 @@ void registerClusterFlowMeasurement(Commands & commands, CredentialIssuerCommand
         //
         // Attributes
         //
-        make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 //
-        make_unique<ReadAttribute>(Id, "measured-value", Attributes::MeasuredValue::Id, credsIssuerConfig),                //
-        make_unique<ReadAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),         //
-        make_unique<ReadAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),         //
-        make_unique<ReadAttribute>(Id, "tolerance", Attributes::Tolerance::Id, credsIssuerConfig),                         //
+        make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                        //
+        make_unique<ReadAttribute>(Id, "measured-value", Attributes::MeasuredValue::Id, credsIssuerConfig),                       //
+        make_unique<ReadAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),                //
+        make_unique<ReadAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),                //
+        make_unique<ReadAttribute>(Id, "peak-measured-value", Attributes::PeakMeasuredValue::Id, credsIssuerConfig),              //
+        make_unique<ReadAttribute>(Id, "peak-measured-value-window", Attributes::PeakMeasuredValueWindow::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "average-measured-value", Attributes::AverageMeasuredValue::Id, credsIssuerConfig),        //
+        make_unique<ReadAttribute>(Id, "average-measured-value-window", Attributes::AverageMeasuredValueWindow::Id,
+                                   credsIssuerConfig),                                                                     //
+        make_unique<ReadAttribute>(Id, "uncertainty", Attributes::Uncertainty::Id, credsIssuerConfig),                     //
+        make_unique<ReadAttribute>(Id, "measurement-unit", Attributes::MeasurementUnit::Id, credsIssuerConfig),            //
+        make_unique<ReadAttribute>(Id, "measurement-medium", Attributes::MeasurementMedium::Id, credsIssuerConfig),        //
+        make_unique<ReadAttribute>(Id, "level-value", Attributes::LevelValue::Id, credsIssuerConfig),                      //
         make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -24270,17 +26141,38 @@ void registerClusterFlowMeasurement(Commands & commands, CredentialIssuerCommand
         make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
         make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
         make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>(Id, "measured-value", 0, UINT16_MAX,
-                                                                              Attributes::MeasuredValue::Id,
-                                                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>(Id, "min-measured-value", 0, UINT16_MAX,
-                                                                              Attributes::MinMeasuredValue::Id,
-                                                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>(Id, "max-measured-value", 0, UINT16_MAX,
-                                                                              Attributes::MaxMeasuredValue::Id,
-                                                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<uint16_t>>(Id, "tolerance", 0, UINT16_MAX, Attributes::Tolerance::Id,
-                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<float>>>(
+            Id, "measured-value", -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
+            Attributes::MeasuredValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<float>>>(
+            Id, "min-measured-value", -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
+            Attributes::MinMeasuredValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<float>>>(
+            Id, "max-measured-value", -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
+            Attributes::MaxMeasuredValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<float>>>(
+            Id, "peak-measured-value", -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
+            Attributes::PeakMeasuredValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint32_t>>(Id, "peak-measured-value-window", 0, UINT32_MAX,
+                                              Attributes::PeakMeasuredValueWindow::Id, WriteCommandType::kForceWrite,
+                                              credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<float>>>(
+            Id, "average-measured-value", -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
+            Attributes::AverageMeasuredValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint32_t>>(Id, "average-measured-value-window", 0, UINT32_MAX,
+                                              Attributes::AverageMeasuredValueWindow::Id, WriteCommandType::kForceWrite,
+                                              credsIssuerConfig), //
+        make_unique<WriteAttribute<float>>(Id, "uncertainty", -std::numeric_limits<float>::infinity(),
+                                           std::numeric_limits<float>::infinity(), Attributes::Uncertainty::Id,
+                                           WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::Clusters::CarbonMonoxideConcentrationMeasurement::MeasurementUnitEnum>>(
+            Id, "measurement-unit", 0, UINT8_MAX, Attributes::MeasurementUnit::Id, WriteCommandType::kForceWrite,
+            credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::Clusters::CarbonMonoxideConcentrationMeasurement::MeasurementMediumEnum>>(
+            Id, "measurement-medium", 0, UINT8_MAX, Attributes::MeasurementMedium::Id, WriteCommandType::kForceWrite,
+            credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::Clusters::CarbonMonoxideConcentrationMeasurement::LevelValueEnum>>(
+            Id, "level-value", 0, UINT8_MAX, Attributes::LevelValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
             Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
@@ -24293,12 +26185,21 @@ void registerClusterFlowMeasurement(Commands & commands, CredentialIssuerCommand
         make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id,
                                               WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
-                                              WriteCommandType::kForceWrite, credsIssuerConfig),                                //
-        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 //
-        make_unique<SubscribeAttribute>(Id, "measured-value", Attributes::MeasuredValue::Id, credsIssuerConfig),                //
-        make_unique<SubscribeAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),         //
-        make_unique<SubscribeAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),         //
-        make_unique<SubscribeAttribute>(Id, "tolerance", Attributes::Tolerance::Id, credsIssuerConfig),                         //
+                                              WriteCommandType::kForceWrite, credsIssuerConfig),                          //
+        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                           //
+        make_unique<SubscribeAttribute>(Id, "measured-value", Attributes::MeasuredValue::Id, credsIssuerConfig),          //
+        make_unique<SubscribeAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),   //
+        make_unique<SubscribeAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),   //
+        make_unique<SubscribeAttribute>(Id, "peak-measured-value", Attributes::PeakMeasuredValue::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "peak-measured-value-window", Attributes::PeakMeasuredValueWindow::Id,
+                                        credsIssuerConfig),                                                                     //
+        make_unique<SubscribeAttribute>(Id, "average-measured-value", Attributes::AverageMeasuredValue::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "average-measured-value-window", Attributes::AverageMeasuredValueWindow::Id,
+                                        credsIssuerConfig),                                                                     //
+        make_unique<SubscribeAttribute>(Id, "uncertainty", Attributes::Uncertainty::Id, credsIssuerConfig),                     //
+        make_unique<SubscribeAttribute>(Id, "measurement-unit", Attributes::MeasurementUnit::Id, credsIssuerConfig),            //
+        make_unique<SubscribeAttribute>(Id, "measurement-medium", Attributes::MeasurementMedium::Id, credsIssuerConfig),        //
+        make_unique<SubscribeAttribute>(Id, "level-value", Attributes::LevelValue::Id, credsIssuerConfig),                      //
         make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -24314,11 +26215,11 @@ void registerClusterFlowMeasurement(Commands & commands, CredentialIssuerCommand
 
     commands.RegisterCluster(clusterName, clusterCommands);
 }
-void registerClusterRelativeHumidityMeasurement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+void registerClusterCarbonDioxideConcentrationMeasurement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
 {
-    using namespace chip::app::Clusters::RelativeHumidityMeasurement;
+    using namespace chip::app::Clusters::CarbonDioxideConcentrationMeasurement;
 
-    const char * clusterName = "RelativeHumidityMeasurement";
+    const char * clusterName = "CarbonDioxideConcentrationMeasurement";
 
     commands_list clusterCommands = {
         //
@@ -24328,11 +26229,19 @@ void registerClusterRelativeHumidityMeasurement(Commands & commands, CredentialI
         //
         // Attributes
         //
-        make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 //
-        make_unique<ReadAttribute>(Id, "measured-value", Attributes::MeasuredValue::Id, credsIssuerConfig),                //
-        make_unique<ReadAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),         //
-        make_unique<ReadAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),         //
-        make_unique<ReadAttribute>(Id, "tolerance", Attributes::Tolerance::Id, credsIssuerConfig),                         //
+        make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                        //
+        make_unique<ReadAttribute>(Id, "measured-value", Attributes::MeasuredValue::Id, credsIssuerConfig),                       //
+        make_unique<ReadAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),                //
+        make_unique<ReadAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),                //
+        make_unique<ReadAttribute>(Id, "peak-measured-value", Attributes::PeakMeasuredValue::Id, credsIssuerConfig),              //
+        make_unique<ReadAttribute>(Id, "peak-measured-value-window", Attributes::PeakMeasuredValueWindow::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "average-measured-value", Attributes::AverageMeasuredValue::Id, credsIssuerConfig),        //
+        make_unique<ReadAttribute>(Id, "average-measured-value-window", Attributes::AverageMeasuredValueWindow::Id,
+                                   credsIssuerConfig),                                                                     //
+        make_unique<ReadAttribute>(Id, "uncertainty", Attributes::Uncertainty::Id, credsIssuerConfig),                     //
+        make_unique<ReadAttribute>(Id, "measurement-unit", Attributes::MeasurementUnit::Id, credsIssuerConfig),            //
+        make_unique<ReadAttribute>(Id, "measurement-medium", Attributes::MeasurementMedium::Id, credsIssuerConfig),        //
+        make_unique<ReadAttribute>(Id, "level-value", Attributes::LevelValue::Id, credsIssuerConfig),                      //
         make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -24340,17 +26249,38 @@ void registerClusterRelativeHumidityMeasurement(Commands & commands, CredentialI
         make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
         make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
         make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>(Id, "measured-value", 0, UINT16_MAX,
-                                                                              Attributes::MeasuredValue::Id,
-                                                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>(Id, "min-measured-value", 0, UINT16_MAX,
-                                                                              Attributes::MinMeasuredValue::Id,
-                                                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint16_t>>>(Id, "max-measured-value", 0, UINT16_MAX,
-                                                                              Attributes::MaxMeasuredValue::Id,
-                                                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<uint16_t>>(Id, "tolerance", 0, UINT16_MAX, Attributes::Tolerance::Id,
-                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<float>>>(
+            Id, "measured-value", -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
+            Attributes::MeasuredValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<float>>>(
+            Id, "min-measured-value", -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
+            Attributes::MinMeasuredValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<float>>>(
+            Id, "max-measured-value", -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
+            Attributes::MaxMeasuredValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<float>>>(
+            Id, "peak-measured-value", -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
+            Attributes::PeakMeasuredValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint32_t>>(Id, "peak-measured-value-window", 0, UINT32_MAX,
+                                              Attributes::PeakMeasuredValueWindow::Id, WriteCommandType::kForceWrite,
+                                              credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<float>>>(
+            Id, "average-measured-value", -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
+            Attributes::AverageMeasuredValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint32_t>>(Id, "average-measured-value-window", 0, UINT32_MAX,
+                                              Attributes::AverageMeasuredValueWindow::Id, WriteCommandType::kForceWrite,
+                                              credsIssuerConfig), //
+        make_unique<WriteAttribute<float>>(Id, "uncertainty", -std::numeric_limits<float>::infinity(),
+                                           std::numeric_limits<float>::infinity(), Attributes::Uncertainty::Id,
+                                           WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::Clusters::CarbonDioxideConcentrationMeasurement::MeasurementUnitEnum>>(
+            Id, "measurement-unit", 0, UINT8_MAX, Attributes::MeasurementUnit::Id, WriteCommandType::kForceWrite,
+            credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::Clusters::CarbonDioxideConcentrationMeasurement::MeasurementMediumEnum>>(
+            Id, "measurement-medium", 0, UINT8_MAX, Attributes::MeasurementMedium::Id, WriteCommandType::kForceWrite,
+            credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::Clusters::CarbonDioxideConcentrationMeasurement::LevelValueEnum>>(
+            Id, "level-value", 0, UINT8_MAX, Attributes::LevelValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
             Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
@@ -24363,12 +26293,21 @@ void registerClusterRelativeHumidityMeasurement(Commands & commands, CredentialI
         make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id,
                                               WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
-                                              WriteCommandType::kForceWrite, credsIssuerConfig),                                //
-        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 //
-        make_unique<SubscribeAttribute>(Id, "measured-value", Attributes::MeasuredValue::Id, credsIssuerConfig),                //
-        make_unique<SubscribeAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),         //
-        make_unique<SubscribeAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),         //
-        make_unique<SubscribeAttribute>(Id, "tolerance", Attributes::Tolerance::Id, credsIssuerConfig),                         //
+                                              WriteCommandType::kForceWrite, credsIssuerConfig),                          //
+        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                           //
+        make_unique<SubscribeAttribute>(Id, "measured-value", Attributes::MeasuredValue::Id, credsIssuerConfig),          //
+        make_unique<SubscribeAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),   //
+        make_unique<SubscribeAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),   //
+        make_unique<SubscribeAttribute>(Id, "peak-measured-value", Attributes::PeakMeasuredValue::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "peak-measured-value-window", Attributes::PeakMeasuredValueWindow::Id,
+                                        credsIssuerConfig),                                                                     //
+        make_unique<SubscribeAttribute>(Id, "average-measured-value", Attributes::AverageMeasuredValue::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "average-measured-value-window", Attributes::AverageMeasuredValueWindow::Id,
+                                        credsIssuerConfig),                                                                     //
+        make_unique<SubscribeAttribute>(Id, "uncertainty", Attributes::Uncertainty::Id, credsIssuerConfig),                     //
+        make_unique<SubscribeAttribute>(Id, "measurement-unit", Attributes::MeasurementUnit::Id, credsIssuerConfig),            //
+        make_unique<SubscribeAttribute>(Id, "measurement-medium", Attributes::MeasurementMedium::Id, credsIssuerConfig),        //
+        make_unique<SubscribeAttribute>(Id, "level-value", Attributes::LevelValue::Id, credsIssuerConfig),                      //
         make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -24384,11 +26323,11 @@ void registerClusterRelativeHumidityMeasurement(Commands & commands, CredentialI
 
     commands.RegisterCluster(clusterName, clusterCommands);
 }
-void registerClusterOccupancySensing(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+void registerClusterNitrogenDioxideConcentrationMeasurement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
 {
-    using namespace chip::app::Clusters::OccupancySensing;
+    using namespace chip::app::Clusters::NitrogenDioxideConcentrationMeasurement;
 
-    const char * clusterName = "OccupancySensing";
+    const char * clusterName = "NitrogenDioxideConcentrationMeasurement";
 
     commands_list clusterCommands = {
         //
@@ -24398,31 +26337,19 @@ void registerClusterOccupancySensing(Commands & commands, CredentialIssuerComman
         //
         // Attributes
         //
-        make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                               //
-        make_unique<ReadAttribute>(Id, "occupancy", Attributes::Occupancy::Id, credsIssuerConfig),                       //
-        make_unique<ReadAttribute>(Id, "occupancy-sensor-type", Attributes::OccupancySensorType::Id, credsIssuerConfig), //
-        make_unique<ReadAttribute>(Id, "occupancy-sensor-type-bitmap", Attributes::OccupancySensorTypeBitmap::Id,
-                                   credsIssuerConfig),                                                         //
-        make_unique<ReadAttribute>(Id, "hold-time", Attributes::HoldTime::Id, credsIssuerConfig),              //
-        make_unique<ReadAttribute>(Id, "hold-time-limits", Attributes::HoldTimeLimits::Id, credsIssuerConfig), //
-        make_unique<ReadAttribute>(Id, "piroccupied-to-unoccupied-delay", Attributes::PIROccupiedToUnoccupiedDelay::Id,
-                                   credsIssuerConfig), //
-        make_unique<ReadAttribute>(Id, "pirunoccupied-to-occupied-delay", Attributes::PIRUnoccupiedToOccupiedDelay::Id,
-                                   credsIssuerConfig), //
-        make_unique<ReadAttribute>(Id, "pirunoccupied-to-occupied-threshold", Attributes::PIRUnoccupiedToOccupiedThreshold::Id,
-                                   credsIssuerConfig), //
-        make_unique<ReadAttribute>(Id, "ultrasonic-occupied-to-unoccupied-delay",
-                                   Attributes::UltrasonicOccupiedToUnoccupiedDelay::Id, credsIssuerConfig), //
-        make_unique<ReadAttribute>(Id, "ultrasonic-unoccupied-to-occupied-delay",
-                                   Attributes::UltrasonicUnoccupiedToOccupiedDelay::Id, credsIssuerConfig), //
-        make_unique<ReadAttribute>(Id, "ultrasonic-unoccupied-to-occupied-threshold",
-                                   Attributes::UltrasonicUnoccupiedToOccupiedThreshold::Id, credsIssuerConfig), //
-        make_unique<ReadAttribute>(Id, "physical-contact-occupied-to-unoccupied-delay",
-                                   Attributes::PhysicalContactOccupiedToUnoccupiedDelay::Id, credsIssuerConfig), //
-        make_unique<ReadAttribute>(Id, "physical-contact-unoccupied-to-occupied-delay",
-                                   Attributes::PhysicalContactUnoccupiedToOccupiedDelay::Id, credsIssuerConfig), //
-        make_unique<ReadAttribute>(Id, "physical-contact-unoccupied-to-occupied-threshold",
-                                   Attributes::PhysicalContactUnoccupiedToOccupiedThreshold::Id, credsIssuerConfig),       //
+        make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                        //
+        make_unique<ReadAttribute>(Id, "measured-value", Attributes::MeasuredValue::Id, credsIssuerConfig),                       //
+        make_unique<ReadAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),                //
+        make_unique<ReadAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),                //
+        make_unique<ReadAttribute>(Id, "peak-measured-value", Attributes::PeakMeasuredValue::Id, credsIssuerConfig),              //
+        make_unique<ReadAttribute>(Id, "peak-measured-value-window", Attributes::PeakMeasuredValueWindow::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "average-measured-value", Attributes::AverageMeasuredValue::Id, credsIssuerConfig),        //
+        make_unique<ReadAttribute>(Id, "average-measured-value-window", Attributes::AverageMeasuredValueWindow::Id,
+                                   credsIssuerConfig),                                                                     //
+        make_unique<ReadAttribute>(Id, "uncertainty", Attributes::Uncertainty::Id, credsIssuerConfig),                     //
+        make_unique<ReadAttribute>(Id, "measurement-unit", Attributes::MeasurementUnit::Id, credsIssuerConfig),            //
+        make_unique<ReadAttribute>(Id, "measurement-medium", Attributes::MeasurementMedium::Id, credsIssuerConfig),        //
+        make_unique<ReadAttribute>(Id, "level-value", Attributes::LevelValue::Id, credsIssuerConfig),                      //
         make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -24430,45 +26357,38 @@ void registerClusterOccupancySensing(Commands & commands, CredentialIssuerComman
         make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
         make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
         make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              //
-        make_unique<WriteAttribute<chip::BitMask<chip::app::Clusters::OccupancySensing::OccupancyBitmap>>>(
-            Id, "occupancy", 0, UINT8_MAX, Attributes::Occupancy::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::Clusters::OccupancySensing::OccupancySensorTypeEnum>>(
-            Id, "occupancy-sensor-type", 0, UINT8_MAX, Attributes::OccupancySensorType::Id, WriteCommandType::kForceWrite,
-            credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::BitMask<chip::app::Clusters::OccupancySensing::OccupancySensorTypeBitmap>>>(
-            Id, "occupancy-sensor-type-bitmap", 0, UINT8_MAX, Attributes::OccupancySensorTypeBitmap::Id,
-            WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<uint16_t>>(Id, "hold-time", 0, UINT16_MAX, Attributes::HoldTime::Id, WriteCommandType::kWrite,
-                                              credsIssuerConfig), //
-        make_unique<WriteAttributeAsComplex<chip::app::Clusters::OccupancySensing::Structs::HoldTimeLimitsStruct::Type>>(
-            Id, "hold-time-limits", Attributes::HoldTimeLimits::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<uint16_t>>(Id, "piroccupied-to-unoccupied-delay", 0, UINT16_MAX,
-                                              Attributes::PIROccupiedToUnoccupiedDelay::Id, WriteCommandType::kWrite,
-                                              credsIssuerConfig), //
-        make_unique<WriteAttribute<uint16_t>>(Id, "pirunoccupied-to-occupied-delay", 0, UINT16_MAX,
-                                              Attributes::PIRUnoccupiedToOccupiedDelay::Id, WriteCommandType::kWrite,
-                                              credsIssuerConfig), //
-        make_unique<WriteAttribute<uint8_t>>(Id, "pirunoccupied-to-occupied-threshold", 0, UINT8_MAX,
-                                             Attributes::PIRUnoccupiedToOccupiedThreshold::Id, WriteCommandType::kWrite,
-                                             credsIssuerConfig), //
-        make_unique<WriteAttribute<uint16_t>>(Id, "ultrasonic-occupied-to-unoccupied-delay", 0, UINT16_MAX,
-                                              Attributes::UltrasonicOccupiedToUnoccupiedDelay::Id, WriteCommandType::kWrite,
-                                              credsIssuerConfig), //
-        make_unique<WriteAttribute<uint16_t>>(Id, "ultrasonic-unoccupied-to-occupied-delay", 0, UINT16_MAX,
-                                              Attributes::UltrasonicUnoccupiedToOccupiedDelay::Id, WriteCommandType::kWrite,
-                                              credsIssuerConfig), //
-        make_unique<WriteAttribute<uint8_t>>(Id, "ultrasonic-unoccupied-to-occupied-threshold", 0, UINT8_MAX,
-                                             Attributes::UltrasonicUnoccupiedToOccupiedThreshold::Id, WriteCommandType::kWrite,
-                                             credsIssuerConfig), //
-        make_unique<WriteAttribute<uint16_t>>(Id, "physical-contact-occupied-to-unoccupied-delay", 0, UINT16_MAX,
-                                              Attributes::PhysicalContactOccupiedToUnoccupiedDelay::Id, WriteCommandType::kWrite,
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<float>>>(
+            Id, "measured-value", -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
+            Attributes::MeasuredValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<float>>>(
+            Id, "min-measured-value", -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
+            Attributes::MinMeasuredValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<float>>>(
+            Id, "max-measured-value", -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
+            Attributes::MaxMeasuredValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<float>>>(
+            Id, "peak-measured-value", -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
+            Attributes::PeakMeasuredValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint32_t>>(Id, "peak-measured-value-window", 0, UINT32_MAX,
+                                              Attributes::PeakMeasuredValueWindow::Id, WriteCommandType::kForceWrite,
                                               credsIssuerConfig), //
-        make_unique<WriteAttribute<uint16_t>>(Id, "physical-contact-unoccupied-to-occupied-delay", 0, UINT16_MAX,
-                                              Attributes::PhysicalContactUnoccupiedToOccupiedDelay::Id, WriteCommandType::kWrite,
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<float>>>(
+            Id, "average-measured-value", -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
+            Attributes::AverageMeasuredValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint32_t>>(Id, "average-measured-value-window", 0, UINT32_MAX,
+                                              Attributes::AverageMeasuredValueWindow::Id, WriteCommandType::kForceWrite,
                                               credsIssuerConfig), //
-        make_unique<WriteAttribute<uint8_t>>(Id, "physical-contact-unoccupied-to-occupied-threshold", 0, UINT8_MAX,
-                                             Attributes::PhysicalContactUnoccupiedToOccupiedThreshold::Id, WriteCommandType::kWrite,
-                                             credsIssuerConfig), //
+        make_unique<WriteAttribute<float>>(Id, "uncertainty", -std::numeric_limits<float>::infinity(),
+                                           std::numeric_limits<float>::infinity(), Attributes::Uncertainty::Id,
+                                           WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::Clusters::NitrogenDioxideConcentrationMeasurement::MeasurementUnitEnum>>(
+            Id, "measurement-unit", 0, UINT8_MAX, Attributes::MeasurementUnit::Id, WriteCommandType::kForceWrite,
+            credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::Clusters::NitrogenDioxideConcentrationMeasurement::MeasurementMediumEnum>>(
+            Id, "measurement-medium", 0, UINT8_MAX, Attributes::MeasurementMedium::Id, WriteCommandType::kForceWrite,
+            credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::Clusters::NitrogenDioxideConcentrationMeasurement::LevelValueEnum>>(
+            Id, "level-value", 0, UINT8_MAX, Attributes::LevelValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
             Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
@@ -24481,32 +26401,21 @@ void registerClusterOccupancySensing(Commands & commands, CredentialIssuerComman
         make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id,
                                               WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
-                                              WriteCommandType::kForceWrite, credsIssuerConfig),                              //
-        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                               //
-        make_unique<SubscribeAttribute>(Id, "occupancy", Attributes::Occupancy::Id, credsIssuerConfig),                       //
-        make_unique<SubscribeAttribute>(Id, "occupancy-sensor-type", Attributes::OccupancySensorType::Id, credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "occupancy-sensor-type-bitmap", Attributes::OccupancySensorTypeBitmap::Id,
-                                        credsIssuerConfig),                                                         //
-        make_unique<SubscribeAttribute>(Id, "hold-time", Attributes::HoldTime::Id, credsIssuerConfig),              //
-        make_unique<SubscribeAttribute>(Id, "hold-time-limits", Attributes::HoldTimeLimits::Id, credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "piroccupied-to-unoccupied-delay", Attributes::PIROccupiedToUnoccupiedDelay::Id,
-                                        credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "pirunoccupied-to-occupied-delay", Attributes::PIRUnoccupiedToOccupiedDelay::Id,
-                                        credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "pirunoccupied-to-occupied-threshold", Attributes::PIRUnoccupiedToOccupiedThreshold::Id,
-                                        credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "ultrasonic-occupied-to-unoccupied-delay",
-                                        Attributes::UltrasonicOccupiedToUnoccupiedDelay::Id, credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "ultrasonic-unoccupied-to-occupied-delay",
-                                        Attributes::UltrasonicUnoccupiedToOccupiedDelay::Id, credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "ultrasonic-unoccupied-to-occupied-threshold",
-                                        Attributes::UltrasonicUnoccupiedToOccupiedThreshold::Id, credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "physical-contact-occupied-to-unoccupied-delay",
-                                        Attributes::PhysicalContactOccupiedToUnoccupiedDelay::Id, credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "physical-contact-unoccupied-to-occupied-delay",
-                                        Attributes::PhysicalContactUnoccupiedToOccupiedDelay::Id, credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "physical-contact-unoccupied-to-occupied-threshold",
-                                        Attributes::PhysicalContactUnoccupiedToOccupiedThreshold::Id, credsIssuerConfig),       //
+                                              WriteCommandType::kForceWrite, credsIssuerConfig),                          //
+        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                           //
+        make_unique<SubscribeAttribute>(Id, "measured-value", Attributes::MeasuredValue::Id, credsIssuerConfig),          //
+        make_unique<SubscribeAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),   //
+        make_unique<SubscribeAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),   //
+        make_unique<SubscribeAttribute>(Id, "peak-measured-value", Attributes::PeakMeasuredValue::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "peak-measured-value-window", Attributes::PeakMeasuredValueWindow::Id,
+                                        credsIssuerConfig),                                                                     //
+        make_unique<SubscribeAttribute>(Id, "average-measured-value", Attributes::AverageMeasuredValue::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "average-measured-value-window", Attributes::AverageMeasuredValueWindow::Id,
+                                        credsIssuerConfig),                                                                     //
+        make_unique<SubscribeAttribute>(Id, "uncertainty", Attributes::Uncertainty::Id, credsIssuerConfig),                     //
+        make_unique<SubscribeAttribute>(Id, "measurement-unit", Attributes::MeasurementUnit::Id, credsIssuerConfig),            //
+        make_unique<SubscribeAttribute>(Id, "measurement-medium", Attributes::MeasurementMedium::Id, credsIssuerConfig),        //
+        make_unique<SubscribeAttribute>(Id, "level-value", Attributes::LevelValue::Id, credsIssuerConfig),                      //
         make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -24516,19 +26425,17 @@ void registerClusterOccupancySensing(Commands & commands, CredentialIssuerComman
         //
         // Events
         //
-        make_unique<ReadEvent>(Id, credsIssuerConfig),                                                         //
-        make_unique<ReadEvent>(Id, "occupancy-changed", Events::OccupancyChanged::Id, credsIssuerConfig),      //
-        make_unique<SubscribeEvent>(Id, credsIssuerConfig),                                                    //
-        make_unique<SubscribeEvent>(Id, "occupancy-changed", Events::OccupancyChanged::Id, credsIssuerConfig), //
+        make_unique<ReadEvent>(Id, credsIssuerConfig),      //
+        make_unique<SubscribeEvent>(Id, credsIssuerConfig), //
     };
 
     commands.RegisterCluster(clusterName, clusterCommands);
 }
-void registerClusterCarbonMonoxideConcentrationMeasurement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+void registerClusterOzoneConcentrationMeasurement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
 {
-    using namespace chip::app::Clusters::CarbonMonoxideConcentrationMeasurement;
+    using namespace chip::app::Clusters::OzoneConcentrationMeasurement;
 
-    const char * clusterName = "CarbonMonoxideConcentrationMeasurement";
+    const char * clusterName = "OzoneConcentrationMeasurement";
 
     commands_list clusterCommands = {
         //
@@ -24582,13 +26489,13 @@ void registerClusterCarbonMonoxideConcentrationMeasurement(Commands & commands,
         make_unique<WriteAttribute<float>>(Id, "uncertainty", -std::numeric_limits<float>::infinity(),
                                            std::numeric_limits<float>::infinity(), Attributes::Uncertainty::Id,
                                            WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::Clusters::CarbonMonoxideConcentrationMeasurement::MeasurementUnitEnum>>(
+        make_unique<WriteAttribute<chip::app::Clusters::OzoneConcentrationMeasurement::MeasurementUnitEnum>>(
             Id, "measurement-unit", 0, UINT8_MAX, Attributes::MeasurementUnit::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::Clusters::CarbonMonoxideConcentrationMeasurement::MeasurementMediumEnum>>(
+        make_unique<WriteAttribute<chip::app::Clusters::OzoneConcentrationMeasurement::MeasurementMediumEnum>>(
             Id, "measurement-medium", 0, UINT8_MAX, Attributes::MeasurementMedium::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::Clusters::CarbonMonoxideConcentrationMeasurement::LevelValueEnum>>(
+        make_unique<WriteAttribute<chip::app::Clusters::OzoneConcentrationMeasurement::LevelValueEnum>>(
             Id, "level-value", 0, UINT8_MAX, Attributes::LevelValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
             Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
@@ -24632,11 +26539,11 @@ void registerClusterCarbonMonoxideConcentrationMeasurement(Commands & commands,
 
     commands.RegisterCluster(clusterName, clusterCommands);
 }
-void registerClusterCarbonDioxideConcentrationMeasurement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+void registerClusterPm25ConcentrationMeasurement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
 {
-    using namespace chip::app::Clusters::CarbonDioxideConcentrationMeasurement;
+    using namespace chip::app::Clusters::Pm25ConcentrationMeasurement;
 
-    const char * clusterName = "CarbonDioxideConcentrationMeasurement";
+    const char * clusterName = "Pm25ConcentrationMeasurement";
 
     commands_list clusterCommands = {
         //
@@ -24690,13 +26597,13 @@ void registerClusterCarbonDioxideConcentrationMeasurement(Commands & commands, C
         make_unique<WriteAttribute<float>>(Id, "uncertainty", -std::numeric_limits<float>::infinity(),
                                            std::numeric_limits<float>::infinity(), Attributes::Uncertainty::Id,
                                            WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::Clusters::CarbonDioxideConcentrationMeasurement::MeasurementUnitEnum>>(
+        make_unique<WriteAttribute<chip::app::Clusters::Pm25ConcentrationMeasurement::MeasurementUnitEnum>>(
             Id, "measurement-unit", 0, UINT8_MAX, Attributes::MeasurementUnit::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::Clusters::CarbonDioxideConcentrationMeasurement::MeasurementMediumEnum>>(
+        make_unique<WriteAttribute<chip::app::Clusters::Pm25ConcentrationMeasurement::MeasurementMediumEnum>>(
             Id, "measurement-medium", 0, UINT8_MAX, Attributes::MeasurementMedium::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::Clusters::CarbonDioxideConcentrationMeasurement::LevelValueEnum>>(
+        make_unique<WriteAttribute<chip::app::Clusters::Pm25ConcentrationMeasurement::LevelValueEnum>>(
             Id, "level-value", 0, UINT8_MAX, Attributes::LevelValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
             Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
@@ -24740,11 +26647,11 @@ void registerClusterCarbonDioxideConcentrationMeasurement(Commands & commands, C
 
     commands.RegisterCluster(clusterName, clusterCommands);
 }
-void registerClusterNitrogenDioxideConcentrationMeasurement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+void registerClusterFormaldehydeConcentrationMeasurement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
 {
-    using namespace chip::app::Clusters::NitrogenDioxideConcentrationMeasurement;
+    using namespace chip::app::Clusters::FormaldehydeConcentrationMeasurement;
 
-    const char * clusterName = "NitrogenDioxideConcentrationMeasurement";
+    const char * clusterName = "FormaldehydeConcentrationMeasurement";
 
     commands_list clusterCommands = {
         //
@@ -24798,13 +26705,13 @@ void registerClusterNitrogenDioxideConcentrationMeasurement(Commands & commands,
         make_unique<WriteAttribute<float>>(Id, "uncertainty", -std::numeric_limits<float>::infinity(),
                                            std::numeric_limits<float>::infinity(), Attributes::Uncertainty::Id,
                                            WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::Clusters::NitrogenDioxideConcentrationMeasurement::MeasurementUnitEnum>>(
+        make_unique<WriteAttribute<chip::app::Clusters::FormaldehydeConcentrationMeasurement::MeasurementUnitEnum>>(
             Id, "measurement-unit", 0, UINT8_MAX, Attributes::MeasurementUnit::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::Clusters::NitrogenDioxideConcentrationMeasurement::MeasurementMediumEnum>>(
+        make_unique<WriteAttribute<chip::app::Clusters::FormaldehydeConcentrationMeasurement::MeasurementMediumEnum>>(
             Id, "measurement-medium", 0, UINT8_MAX, Attributes::MeasurementMedium::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::Clusters::NitrogenDioxideConcentrationMeasurement::LevelValueEnum>>(
+        make_unique<WriteAttribute<chip::app::Clusters::FormaldehydeConcentrationMeasurement::LevelValueEnum>>(
             Id, "level-value", 0, UINT8_MAX, Attributes::LevelValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
             Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
@@ -24848,11 +26755,11 @@ void registerClusterNitrogenDioxideConcentrationMeasurement(Commands & commands,
 
     commands.RegisterCluster(clusterName, clusterCommands);
 }
-void registerClusterOzoneConcentrationMeasurement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+void registerClusterPm1ConcentrationMeasurement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
 {
-    using namespace chip::app::Clusters::OzoneConcentrationMeasurement;
+    using namespace chip::app::Clusters::Pm1ConcentrationMeasurement;
 
-    const char * clusterName = "OzoneConcentrationMeasurement";
+    const char * clusterName = "Pm1ConcentrationMeasurement";
 
     commands_list clusterCommands = {
         //
@@ -24906,13 +26813,13 @@ void registerClusterOzoneConcentrationMeasurement(Commands & commands, Credentia
         make_unique<WriteAttribute<float>>(Id, "uncertainty", -std::numeric_limits<float>::infinity(),
                                            std::numeric_limits<float>::infinity(), Attributes::Uncertainty::Id,
                                            WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::Clusters::OzoneConcentrationMeasurement::MeasurementUnitEnum>>(
+        make_unique<WriteAttribute<chip::app::Clusters::Pm1ConcentrationMeasurement::MeasurementUnitEnum>>(
             Id, "measurement-unit", 0, UINT8_MAX, Attributes::MeasurementUnit::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::Clusters::OzoneConcentrationMeasurement::MeasurementMediumEnum>>(
+        make_unique<WriteAttribute<chip::app::Clusters::Pm1ConcentrationMeasurement::MeasurementMediumEnum>>(
             Id, "measurement-medium", 0, UINT8_MAX, Attributes::MeasurementMedium::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::Clusters::OzoneConcentrationMeasurement::LevelValueEnum>>(
+        make_unique<WriteAttribute<chip::app::Clusters::Pm1ConcentrationMeasurement::LevelValueEnum>>(
             Id, "level-value", 0, UINT8_MAX, Attributes::LevelValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
             Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
@@ -24956,11 +26863,11 @@ void registerClusterOzoneConcentrationMeasurement(Commands & commands, Credentia
 
     commands.RegisterCluster(clusterName, clusterCommands);
 }
-void registerClusterPm25ConcentrationMeasurement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+void registerClusterPm10ConcentrationMeasurement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
 {
-    using namespace chip::app::Clusters::Pm25ConcentrationMeasurement;
+    using namespace chip::app::Clusters::Pm10ConcentrationMeasurement;
 
-    const char * clusterName = "Pm25ConcentrationMeasurement";
+    const char * clusterName = "Pm10ConcentrationMeasurement";
 
     commands_list clusterCommands = {
         //
@@ -25014,13 +26921,13 @@ void registerClusterPm25ConcentrationMeasurement(Commands & commands, Credential
         make_unique<WriteAttribute<float>>(Id, "uncertainty", -std::numeric_limits<float>::infinity(),
                                            std::numeric_limits<float>::infinity(), Attributes::Uncertainty::Id,
                                            WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::Clusters::Pm25ConcentrationMeasurement::MeasurementUnitEnum>>(
+        make_unique<WriteAttribute<chip::app::Clusters::Pm10ConcentrationMeasurement::MeasurementUnitEnum>>(
             Id, "measurement-unit", 0, UINT8_MAX, Attributes::MeasurementUnit::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::Clusters::Pm25ConcentrationMeasurement::MeasurementMediumEnum>>(
+        make_unique<WriteAttribute<chip::app::Clusters::Pm10ConcentrationMeasurement::MeasurementMediumEnum>>(
             Id, "measurement-medium", 0, UINT8_MAX, Attributes::MeasurementMedium::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::Clusters::Pm25ConcentrationMeasurement::LevelValueEnum>>(
+        make_unique<WriteAttribute<chip::app::Clusters::Pm10ConcentrationMeasurement::LevelValueEnum>>(
             Id, "level-value", 0, UINT8_MAX, Attributes::LevelValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
             Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
@@ -25064,11 +26971,12 @@ void registerClusterPm25ConcentrationMeasurement(Commands & commands, Credential
 
     commands.RegisterCluster(clusterName, clusterCommands);
 }
-void registerClusterFormaldehydeConcentrationMeasurement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+void registerClusterTotalVolatileOrganicCompoundsConcentrationMeasurement(Commands & commands,
+                                                                          CredentialIssuerCommands * credsIssuerConfig)
 {
-    using namespace chip::app::Clusters::FormaldehydeConcentrationMeasurement;
+    using namespace chip::app::Clusters::TotalVolatileOrganicCompoundsConcentrationMeasurement;
 
-    const char * clusterName = "FormaldehydeConcentrationMeasurement";
+    const char * clusterName = "TotalVolatileOrganicCompoundsConcentrationMeasurement";
 
     commands_list clusterCommands = {
         //
@@ -25122,13 +27030,15 @@ void registerClusterFormaldehydeConcentrationMeasurement(Commands & commands, Cr
         make_unique<WriteAttribute<float>>(Id, "uncertainty", -std::numeric_limits<float>::infinity(),
                                            std::numeric_limits<float>::infinity(), Attributes::Uncertainty::Id,
                                            WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::Clusters::FormaldehydeConcentrationMeasurement::MeasurementUnitEnum>>(
+        make_unique<
+            WriteAttribute<chip::app::Clusters::TotalVolatileOrganicCompoundsConcentrationMeasurement::MeasurementUnitEnum>>(
             Id, "measurement-unit", 0, UINT8_MAX, Attributes::MeasurementUnit::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::Clusters::FormaldehydeConcentrationMeasurement::MeasurementMediumEnum>>(
+        make_unique<
+            WriteAttribute<chip::app::Clusters::TotalVolatileOrganicCompoundsConcentrationMeasurement::MeasurementMediumEnum>>(
             Id, "measurement-medium", 0, UINT8_MAX, Attributes::MeasurementMedium::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::Clusters::FormaldehydeConcentrationMeasurement::LevelValueEnum>>(
+        make_unique<WriteAttribute<chip::app::Clusters::TotalVolatileOrganicCompoundsConcentrationMeasurement::LevelValueEnum>>(
             Id, "level-value", 0, UINT8_MAX, Attributes::LevelValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
             Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
@@ -25172,11 +27082,11 @@ void registerClusterFormaldehydeConcentrationMeasurement(Commands & commands, Cr
 
     commands.RegisterCluster(clusterName, clusterCommands);
 }
-void registerClusterPm1ConcentrationMeasurement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+void registerClusterRadonConcentrationMeasurement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
 {
-    using namespace chip::app::Clusters::Pm1ConcentrationMeasurement;
+    using namespace chip::app::Clusters::RadonConcentrationMeasurement;
 
-    const char * clusterName = "Pm1ConcentrationMeasurement";
+    const char * clusterName = "RadonConcentrationMeasurement";
 
     commands_list clusterCommands = {
         //
@@ -25230,13 +27140,13 @@ void registerClusterPm1ConcentrationMeasurement(Commands & commands, CredentialI
         make_unique<WriteAttribute<float>>(Id, "uncertainty", -std::numeric_limits<float>::infinity(),
                                            std::numeric_limits<float>::infinity(), Attributes::Uncertainty::Id,
                                            WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::Clusters::Pm1ConcentrationMeasurement::MeasurementUnitEnum>>(
+        make_unique<WriteAttribute<chip::app::Clusters::RadonConcentrationMeasurement::MeasurementUnitEnum>>(
             Id, "measurement-unit", 0, UINT8_MAX, Attributes::MeasurementUnit::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::Clusters::Pm1ConcentrationMeasurement::MeasurementMediumEnum>>(
+        make_unique<WriteAttribute<chip::app::Clusters::RadonConcentrationMeasurement::MeasurementMediumEnum>>(
             Id, "measurement-medium", 0, UINT8_MAX, Attributes::MeasurementMedium::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::Clusters::Pm1ConcentrationMeasurement::LevelValueEnum>>(
+        make_unique<WriteAttribute<chip::app::Clusters::RadonConcentrationMeasurement::LevelValueEnum>>(
             Id, "level-value", 0, UINT8_MAX, Attributes::LevelValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
             Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
@@ -25250,21 +27160,235 @@ void registerClusterPm1ConcentrationMeasurement(Commands & commands, CredentialI
         make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id,
                                               WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
-                                              WriteCommandType::kForceWrite, credsIssuerConfig),                          //
-        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                           //
-        make_unique<SubscribeAttribute>(Id, "measured-value", Attributes::MeasuredValue::Id, credsIssuerConfig),          //
-        make_unique<SubscribeAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),   //
-        make_unique<SubscribeAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),   //
-        make_unique<SubscribeAttribute>(Id, "peak-measured-value", Attributes::PeakMeasuredValue::Id, credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "peak-measured-value-window", Attributes::PeakMeasuredValueWindow::Id,
-                                        credsIssuerConfig),                                                                     //
-        make_unique<SubscribeAttribute>(Id, "average-measured-value", Attributes::AverageMeasuredValue::Id, credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "average-measured-value-window", Attributes::AverageMeasuredValueWindow::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig),                          //
+        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                           //
+        make_unique<SubscribeAttribute>(Id, "measured-value", Attributes::MeasuredValue::Id, credsIssuerConfig),          //
+        make_unique<SubscribeAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),   //
+        make_unique<SubscribeAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),   //
+        make_unique<SubscribeAttribute>(Id, "peak-measured-value", Attributes::PeakMeasuredValue::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "peak-measured-value-window", Attributes::PeakMeasuredValueWindow::Id,
+                                        credsIssuerConfig),                                                                     //
+        make_unique<SubscribeAttribute>(Id, "average-measured-value", Attributes::AverageMeasuredValue::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "average-measured-value-window", Attributes::AverageMeasuredValueWindow::Id,
+                                        credsIssuerConfig),                                                                     //
+        make_unique<SubscribeAttribute>(Id, "uncertainty", Attributes::Uncertainty::Id, credsIssuerConfig),                     //
+        make_unique<SubscribeAttribute>(Id, "measurement-unit", Attributes::MeasurementUnit::Id, credsIssuerConfig),            //
+        make_unique<SubscribeAttribute>(Id, "measurement-medium", Attributes::MeasurementMedium::Id, credsIssuerConfig),        //
+        make_unique<SubscribeAttribute>(Id, "level-value", Attributes::LevelValue::Id, credsIssuerConfig),                      //
+        make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
+        make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
+        make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                //
+        make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
+        make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
+        //
+        // Events
+        //
+        make_unique<ReadEvent>(Id, credsIssuerConfig),      //
+        make_unique<SubscribeEvent>(Id, credsIssuerConfig), //
+    };
+
+    commands.RegisterCluster(clusterName, clusterCommands);
+}
+void registerClusterWiFiNetworkManagement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+{
+    using namespace chip::app::Clusters::WiFiNetworkManagement;
+
+    const char * clusterName = "WiFiNetworkManagement";
+
+    commands_list clusterCommands = {
+        //
+        // Commands
+        //
+        make_unique<ClusterCommand>(Id, credsIssuerConfig),                            //
+        make_unique<WiFiNetworkManagementNetworkPassphraseRequest>(credsIssuerConfig), //
+        //
+        // Attributes
+        //
+        make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 //
+        make_unique<ReadAttribute>(Id, "ssid", Attributes::Ssid::Id, credsIssuerConfig),                                   //
+        make_unique<ReadAttribute>(Id, "passphrase-surrogate", Attributes::PassphraseSurrogate::Id, credsIssuerConfig),    //
+        make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
+        make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
+        make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                //
+        make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
+        make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
+        make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<chip::ByteSpan>>>(
+            Id, "ssid", Attributes::Ssid::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint64_t>>>(Id, "passphrase-surrogate", 0, UINT64_MAX,
+                                                                              Attributes::PassphraseSurrogate::Id,
+                                                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
+            Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
+            credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
+            Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>(
+            Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>(
+            Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig),                                //
+        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 //
+        make_unique<SubscribeAttribute>(Id, "ssid", Attributes::Ssid::Id, credsIssuerConfig),                                   //
+        make_unique<SubscribeAttribute>(Id, "passphrase-surrogate", Attributes::PassphraseSurrogate::Id, credsIssuerConfig),    //
+        make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
+        make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
+        make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                //
+        make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
+        make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
+        //
+        // Events
+        //
+        make_unique<ReadEvent>(Id, credsIssuerConfig),      //
+        make_unique<SubscribeEvent>(Id, credsIssuerConfig), //
+    };
+
+    commands.RegisterCluster(clusterName, clusterCommands);
+}
+void registerClusterThreadBorderRouterManagement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+{
+    using namespace chip::app::Clusters::ThreadBorderRouterManagement;
+
+    const char * clusterName = "ThreadBorderRouterManagement";
+
+    commands_list clusterCommands = {
+        //
+        // Commands
+        //
+        make_unique<ClusterCommand>(Id, credsIssuerConfig),                                   //
+        make_unique<ThreadBorderRouterManagementGetActiveDatasetRequest>(credsIssuerConfig),  //
+        make_unique<ThreadBorderRouterManagementGetPendingDatasetRequest>(credsIssuerConfig), //
+        make_unique<ThreadBorderRouterManagementSetActiveDatasetRequest>(credsIssuerConfig),  //
+        make_unique<ThreadBorderRouterManagementSetPendingDatasetRequest>(credsIssuerConfig), //
+        //
+        // Attributes
+        //
+        make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                       //
+        make_unique<ReadAttribute>(Id, "border-router-name", Attributes::BorderRouterName::Id, credsIssuerConfig),               //
+        make_unique<ReadAttribute>(Id, "border-agent-id", Attributes::BorderAgentID::Id, credsIssuerConfig),                     //
+        make_unique<ReadAttribute>(Id, "thread-version", Attributes::ThreadVersion::Id, credsIssuerConfig),                      //
+        make_unique<ReadAttribute>(Id, "interface-enabled", Attributes::InterfaceEnabled::Id, credsIssuerConfig),                //
+        make_unique<ReadAttribute>(Id, "active-dataset-timestamp", Attributes::ActiveDatasetTimestamp::Id, credsIssuerConfig),   //
+        make_unique<ReadAttribute>(Id, "pending-dataset-timestamp", Attributes::PendingDatasetTimestamp::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig),       //
+        make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),         //
+        make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                              //
+        make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                      //
+        make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                            //
+        make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),                  //
+        make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                                    //
+        make_unique<WriteAttribute<chip::CharSpan>>(Id, "border-router-name", Attributes::BorderRouterName::Id,
+                                                    WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::ByteSpan>>(Id, "border-agent-id", Attributes::BorderAgentID::Id,
+                                                    WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint16_t>>(Id, "thread-version", 0, UINT16_MAX, Attributes::ThreadVersion::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<bool>>(Id, "interface-enabled", 0, 1, Attributes::InterfaceEnabled::Id,
+                                          WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint64_t>>>(Id, "active-dataset-timestamp", 0, UINT64_MAX,
+                                                                              Attributes::ActiveDatasetTimestamp::Id,
+                                                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint64_t>>>(Id, "pending-dataset-timestamp", 0, UINT64_MAX,
+                                                                              Attributes::PendingDatasetTimestamp::Id,
+                                                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
+            Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
+            credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
+            Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>(
+            Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>(
+            Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig),                        //
+        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                         //
+        make_unique<SubscribeAttribute>(Id, "border-router-name", Attributes::BorderRouterName::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "border-agent-id", Attributes::BorderAgentID::Id, credsIssuerConfig),       //
+        make_unique<SubscribeAttribute>(Id, "thread-version", Attributes::ThreadVersion::Id, credsIssuerConfig),        //
+        make_unique<SubscribeAttribute>(Id, "interface-enabled", Attributes::InterfaceEnabled::Id, credsIssuerConfig),  //
+        make_unique<SubscribeAttribute>(Id, "active-dataset-timestamp", Attributes::ActiveDatasetTimestamp::Id,
+                                        credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "pending-dataset-timestamp", Attributes::PendingDatasetTimestamp::Id,
+                                        credsIssuerConfig),                                                                     //
+        make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
+        make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
+        make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                //
+        make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
+        make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
+        //
+        // Events
+        //
+        make_unique<ReadEvent>(Id, credsIssuerConfig),      //
+        make_unique<SubscribeEvent>(Id, credsIssuerConfig), //
+    };
+
+    commands.RegisterCluster(clusterName, clusterCommands);
+}
+void registerClusterThreadNetworkDirectory(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+{
+    using namespace chip::app::Clusters::ThreadNetworkDirectory;
+
+    const char * clusterName = "ThreadNetworkDirectory";
+
+    commands_list clusterCommands = {
+        //
+        // Commands
+        //
+        make_unique<ClusterCommand>(Id, credsIssuerConfig),                          //
+        make_unique<ThreadNetworkDirectoryAddNetwork>(credsIssuerConfig),            //
+        make_unique<ThreadNetworkDirectoryRemoveNetwork>(credsIssuerConfig),         //
+        make_unique<ThreadNetworkDirectoryGetOperationalDataset>(credsIssuerConfig), //
+        //
+        // Attributes
+        //
+        make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                      //
+        make_unique<ReadAttribute>(Id, "preferred-extended-pan-id", Attributes::PreferredExtendedPanID::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "thread-networks", Attributes::ThreadNetworks::Id, credsIssuerConfig),                   //
+        make_unique<ReadAttribute>(Id, "thread-network-table-size", Attributes::ThreadNetworkTableSize::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig),      //
+        make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),        //
+        make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                             //
+        make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                     //
+        make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                           //
+        make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),                 //
+        make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                                   //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<chip::ByteSpan>>>(Id, "preferred-extended-pan-id",
+                                                                                    Attributes::PreferredExtendedPanID::Id,
+                                                                                    WriteCommandType::kWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<
+            chip::app::DataModel::List<const chip::app::Clusters::ThreadNetworkDirectory::Structs::ThreadNetworkStruct::Type>>>(
+            Id, "thread-networks", Attributes::ThreadNetworks::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint8_t>>(Id, "thread-network-table-size", 0, UINT8_MAX, Attributes::ThreadNetworkTableSize::Id,
+                                             WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
+            Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
+            credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
+            Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>(
+            Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>(
+            Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                  //
+        make_unique<SubscribeAttribute>(Id, "preferred-extended-pan-id", Attributes::PreferredExtendedPanID::Id,
+                                        credsIssuerConfig),                                                        //
+        make_unique<SubscribeAttribute>(Id, "thread-networks", Attributes::ThreadNetworks::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "thread-network-table-size", Attributes::ThreadNetworkTableSize::Id,
                                         credsIssuerConfig),                                                                     //
-        make_unique<SubscribeAttribute>(Id, "uncertainty", Attributes::Uncertainty::Id, credsIssuerConfig),                     //
-        make_unique<SubscribeAttribute>(Id, "measurement-unit", Attributes::MeasurementUnit::Id, credsIssuerConfig),            //
-        make_unique<SubscribeAttribute>(Id, "measurement-medium", Attributes::MeasurementMedium::Id, credsIssuerConfig),        //
-        make_unique<SubscribeAttribute>(Id, "level-value", Attributes::LevelValue::Id, credsIssuerConfig),                      //
         make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -25280,11 +27404,11 @@ void registerClusterPm1ConcentrationMeasurement(Commands & commands, CredentialI
 
     commands.RegisterCluster(clusterName, clusterCommands);
 }
-void registerClusterPm10ConcentrationMeasurement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+void registerClusterWakeOnLan(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
 {
-    using namespace chip::app::Clusters::Pm10ConcentrationMeasurement;
+    using namespace chip::app::Clusters::WakeOnLan;
 
-    const char * clusterName = "Pm10ConcentrationMeasurement";
+    const char * clusterName = "WakeOnLan";
 
     commands_list clusterCommands = {
         //
@@ -25294,19 +27418,9 @@ void registerClusterPm10ConcentrationMeasurement(Commands & commands, Credential
         //
         // Attributes
         //
-        make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                        //
-        make_unique<ReadAttribute>(Id, "measured-value", Attributes::MeasuredValue::Id, credsIssuerConfig),                       //
-        make_unique<ReadAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),                //
-        make_unique<ReadAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),                //
-        make_unique<ReadAttribute>(Id, "peak-measured-value", Attributes::PeakMeasuredValue::Id, credsIssuerConfig),              //
-        make_unique<ReadAttribute>(Id, "peak-measured-value-window", Attributes::PeakMeasuredValueWindow::Id, credsIssuerConfig), //
-        make_unique<ReadAttribute>(Id, "average-measured-value", Attributes::AverageMeasuredValue::Id, credsIssuerConfig),        //
-        make_unique<ReadAttribute>(Id, "average-measured-value-window", Attributes::AverageMeasuredValueWindow::Id,
-                                   credsIssuerConfig),                                                                     //
-        make_unique<ReadAttribute>(Id, "uncertainty", Attributes::Uncertainty::Id, credsIssuerConfig),                     //
-        make_unique<ReadAttribute>(Id, "measurement-unit", Attributes::MeasurementUnit::Id, credsIssuerConfig),            //
-        make_unique<ReadAttribute>(Id, "measurement-medium", Attributes::MeasurementMedium::Id, credsIssuerConfig),        //
-        make_unique<ReadAttribute>(Id, "level-value", Attributes::LevelValue::Id, credsIssuerConfig),                      //
+        make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 //
+        make_unique<ReadAttribute>(Id, "macaddress", Attributes::MACAddress::Id, credsIssuerConfig),                       //
+        make_unique<ReadAttribute>(Id, "link-local-address", Attributes::LinkLocalAddress::Id, credsIssuerConfig),         //
         make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -25314,38 +27428,10 @@ void registerClusterPm10ConcentrationMeasurement(Commands & commands, Credential
         make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
         make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
         make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<float>>>(
-            Id, "measured-value", -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
-            Attributes::MeasuredValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<float>>>(
-            Id, "min-measured-value", -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
-            Attributes::MinMeasuredValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<float>>>(
-            Id, "max-measured-value", -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
-            Attributes::MaxMeasuredValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<float>>>(
-            Id, "peak-measured-value", -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
-            Attributes::PeakMeasuredValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<uint32_t>>(Id, "peak-measured-value-window", 0, UINT32_MAX,
-                                              Attributes::PeakMeasuredValueWindow::Id, WriteCommandType::kForceWrite,
-                                              credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<float>>>(
-            Id, "average-measured-value", -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
-            Attributes::AverageMeasuredValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<uint32_t>>(Id, "average-measured-value-window", 0, UINT32_MAX,
-                                              Attributes::AverageMeasuredValueWindow::Id, WriteCommandType::kForceWrite,
-                                              credsIssuerConfig), //
-        make_unique<WriteAttribute<float>>(Id, "uncertainty", -std::numeric_limits<float>::infinity(),
-                                           std::numeric_limits<float>::infinity(), Attributes::Uncertainty::Id,
-                                           WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::Clusters::Pm10ConcentrationMeasurement::MeasurementUnitEnum>>(
-            Id, "measurement-unit", 0, UINT8_MAX, Attributes::MeasurementUnit::Id, WriteCommandType::kForceWrite,
-            credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::Clusters::Pm10ConcentrationMeasurement::MeasurementMediumEnum>>(
-            Id, "measurement-medium", 0, UINT8_MAX, Attributes::MeasurementMedium::Id, WriteCommandType::kForceWrite,
-            credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::Clusters::Pm10ConcentrationMeasurement::LevelValueEnum>>(
-            Id, "level-value", 0, UINT8_MAX, Attributes::LevelValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::CharSpan>>(Id, "macaddress", Attributes::MACAddress::Id, WriteCommandType::kForceWrite,
+                                                    credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::ByteSpan>>(Id, "link-local-address", Attributes::LinkLocalAddress::Id,
+                                                    WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
             Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
@@ -25358,21 +27444,10 @@ void registerClusterPm10ConcentrationMeasurement(Commands & commands, Credential
         make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id,
                                               WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
-                                              WriteCommandType::kForceWrite, credsIssuerConfig),                          //
-        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                           //
-        make_unique<SubscribeAttribute>(Id, "measured-value", Attributes::MeasuredValue::Id, credsIssuerConfig),          //
-        make_unique<SubscribeAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),   //
-        make_unique<SubscribeAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),   //
-        make_unique<SubscribeAttribute>(Id, "peak-measured-value", Attributes::PeakMeasuredValue::Id, credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "peak-measured-value-window", Attributes::PeakMeasuredValueWindow::Id,
-                                        credsIssuerConfig),                                                                     //
-        make_unique<SubscribeAttribute>(Id, "average-measured-value", Attributes::AverageMeasuredValue::Id, credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "average-measured-value-window", Attributes::AverageMeasuredValueWindow::Id,
-                                        credsIssuerConfig),                                                                     //
-        make_unique<SubscribeAttribute>(Id, "uncertainty", Attributes::Uncertainty::Id, credsIssuerConfig),                     //
-        make_unique<SubscribeAttribute>(Id, "measurement-unit", Attributes::MeasurementUnit::Id, credsIssuerConfig),            //
-        make_unique<SubscribeAttribute>(Id, "measurement-medium", Attributes::MeasurementMedium::Id, credsIssuerConfig),        //
-        make_unique<SubscribeAttribute>(Id, "level-value", Attributes::LevelValue::Id, credsIssuerConfig),                      //
+                                              WriteCommandType::kForceWrite, credsIssuerConfig),                                //
+        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 //
+        make_unique<SubscribeAttribute>(Id, "macaddress", Attributes::MACAddress::Id, credsIssuerConfig),                       //
+        make_unique<SubscribeAttribute>(Id, "link-local-address", Attributes::LinkLocalAddress::Id, credsIssuerConfig),         //
         make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -25388,34 +27463,30 @@ void registerClusterPm10ConcentrationMeasurement(Commands & commands, Credential
 
     commands.RegisterCluster(clusterName, clusterCommands);
 }
-void registerClusterTotalVolatileOrganicCompoundsConcentrationMeasurement(Commands & commands,
-                                                                          CredentialIssuerCommands * credsIssuerConfig)
+void registerClusterChannel(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
 {
-    using namespace chip::app::Clusters::TotalVolatileOrganicCompoundsConcentrationMeasurement;
+    using namespace chip::app::Clusters::Channel;
 
-    const char * clusterName = "TotalVolatileOrganicCompoundsConcentrationMeasurement";
+    const char * clusterName = "Channel";
 
     commands_list clusterCommands = {
         //
         // Commands
         //
-        make_unique<ClusterCommand>(Id, credsIssuerConfig), //
+        make_unique<ClusterCommand>(Id, credsIssuerConfig),           //
+        make_unique<ChannelChangeChannel>(credsIssuerConfig),         //
+        make_unique<ChannelChangeChannelByNumber>(credsIssuerConfig), //
+        make_unique<ChannelSkipChannel>(credsIssuerConfig),           //
+        make_unique<ChannelGetProgramGuide>(credsIssuerConfig),       //
+        make_unique<ChannelRecordProgram>(credsIssuerConfig),         //
+        make_unique<ChannelCancelRecordProgram>(credsIssuerConfig),   //
         //
         // Attributes
         //
-        make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                        //
-        make_unique<ReadAttribute>(Id, "measured-value", Attributes::MeasuredValue::Id, credsIssuerConfig),                       //
-        make_unique<ReadAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),                //
-        make_unique<ReadAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),                //
-        make_unique<ReadAttribute>(Id, "peak-measured-value", Attributes::PeakMeasuredValue::Id, credsIssuerConfig),              //
-        make_unique<ReadAttribute>(Id, "peak-measured-value-window", Attributes::PeakMeasuredValueWindow::Id, credsIssuerConfig), //
-        make_unique<ReadAttribute>(Id, "average-measured-value", Attributes::AverageMeasuredValue::Id, credsIssuerConfig),        //
-        make_unique<ReadAttribute>(Id, "average-measured-value-window", Attributes::AverageMeasuredValueWindow::Id,
-                                   credsIssuerConfig),                                                                     //
-        make_unique<ReadAttribute>(Id, "uncertainty", Attributes::Uncertainty::Id, credsIssuerConfig),                     //
-        make_unique<ReadAttribute>(Id, "measurement-unit", Attributes::MeasurementUnit::Id, credsIssuerConfig),            //
-        make_unique<ReadAttribute>(Id, "measurement-medium", Attributes::MeasurementMedium::Id, credsIssuerConfig),        //
-        make_unique<ReadAttribute>(Id, "level-value", Attributes::LevelValue::Id, credsIssuerConfig),                      //
+        make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 //
+        make_unique<ReadAttribute>(Id, "channel-list", Attributes::ChannelList::Id, credsIssuerConfig),                    //
+        make_unique<ReadAttribute>(Id, "lineup", Attributes::Lineup::Id, credsIssuerConfig),                               //
+        make_unique<ReadAttribute>(Id, "current-channel", Attributes::CurrentChannel::Id, credsIssuerConfig),              //
         make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -25423,40 +27494,15 @@ void registerClusterTotalVolatileOrganicCompoundsConcentrationMeasurement(Comman
         make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
         make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
         make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<float>>>(
-            Id, "measured-value", -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
-            Attributes::MeasuredValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<float>>>(
-            Id, "min-measured-value", -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
-            Attributes::MinMeasuredValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<float>>>(
-            Id, "max-measured-value", -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
-            Attributes::MaxMeasuredValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<float>>>(
-            Id, "peak-measured-value", -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
-            Attributes::PeakMeasuredValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<uint32_t>>(Id, "peak-measured-value-window", 0, UINT32_MAX,
-                                              Attributes::PeakMeasuredValueWindow::Id, WriteCommandType::kForceWrite,
-                                              credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<float>>>(
-            Id, "average-measured-value", -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
-            Attributes::AverageMeasuredValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<uint32_t>>(Id, "average-measured-value-window", 0, UINT32_MAX,
-                                              Attributes::AverageMeasuredValueWindow::Id, WriteCommandType::kForceWrite,
-                                              credsIssuerConfig), //
-        make_unique<WriteAttribute<float>>(Id, "uncertainty", -std::numeric_limits<float>::infinity(),
-                                           std::numeric_limits<float>::infinity(), Attributes::Uncertainty::Id,
-                                           WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<
-            WriteAttribute<chip::app::Clusters::TotalVolatileOrganicCompoundsConcentrationMeasurement::MeasurementUnitEnum>>(
-            Id, "measurement-unit", 0, UINT8_MAX, Attributes::MeasurementUnit::Id, WriteCommandType::kForceWrite,
-            credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<
+            chip::app::DataModel::List<const chip::app::Clusters::Channel::Structs::ChannelInfoStruct::Type>>>(
+            Id, "channel-list", Attributes::ChannelList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<
-            WriteAttribute<chip::app::Clusters::TotalVolatileOrganicCompoundsConcentrationMeasurement::MeasurementMediumEnum>>(
-            Id, "measurement-medium", 0, UINT8_MAX, Attributes::MeasurementMedium::Id, WriteCommandType::kForceWrite,
-            credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::Clusters::TotalVolatileOrganicCompoundsConcentrationMeasurement::LevelValueEnum>>(
-            Id, "level-value", 0, UINT8_MAX, Attributes::LevelValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+            WriteAttributeAsComplex<chip::app::DataModel::Nullable<chip::app::Clusters::Channel::Structs::LineupInfoStruct::Type>>>(
+            Id, "lineup", Attributes::Lineup::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<
+            chip::app::DataModel::Nullable<chip::app::Clusters::Channel::Structs::ChannelInfoStruct::Type>>>(
+            Id, "current-channel", Attributes::CurrentChannel::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
             Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
@@ -25466,24 +27512,14 @@ void registerClusterTotalVolatileOrganicCompoundsConcentrationMeasurement(Comman
             Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>(
             Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id,
-                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
-                                              WriteCommandType::kForceWrite, credsIssuerConfig),                          //
-        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                           //
-        make_unique<SubscribeAttribute>(Id, "measured-value", Attributes::MeasuredValue::Id, credsIssuerConfig),          //
-        make_unique<SubscribeAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),   //
-        make_unique<SubscribeAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),   //
-        make_unique<SubscribeAttribute>(Id, "peak-measured-value", Attributes::PeakMeasuredValue::Id, credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "peak-measured-value-window", Attributes::PeakMeasuredValueWindow::Id,
-                                        credsIssuerConfig),                                                                     //
-        make_unique<SubscribeAttribute>(Id, "average-measured-value", Attributes::AverageMeasuredValue::Id, credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "average-measured-value-window", Attributes::AverageMeasuredValueWindow::Id,
-                                        credsIssuerConfig),                                                                     //
-        make_unique<SubscribeAttribute>(Id, "uncertainty", Attributes::Uncertainty::Id, credsIssuerConfig),                     //
-        make_unique<SubscribeAttribute>(Id, "measurement-unit", Attributes::MeasurementUnit::Id, credsIssuerConfig),            //
-        make_unique<SubscribeAttribute>(Id, "measurement-medium", Attributes::MeasurementMedium::Id, credsIssuerConfig),        //
-        make_unique<SubscribeAttribute>(Id, "level-value", Attributes::LevelValue::Id, credsIssuerConfig),                      //
+        make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig),                                //
+        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 //
+        make_unique<SubscribeAttribute>(Id, "channel-list", Attributes::ChannelList::Id, credsIssuerConfig),                    //
+        make_unique<SubscribeAttribute>(Id, "lineup", Attributes::Lineup::Id, credsIssuerConfig),                               //
+        make_unique<SubscribeAttribute>(Id, "current-channel", Attributes::CurrentChannel::Id, credsIssuerConfig),              //
         make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -25499,33 +27535,24 @@ void registerClusterTotalVolatileOrganicCompoundsConcentrationMeasurement(Comman
 
     commands.RegisterCluster(clusterName, clusterCommands);
 }
-void registerClusterRadonConcentrationMeasurement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+void registerClusterTargetNavigator(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
 {
-    using namespace chip::app::Clusters::RadonConcentrationMeasurement;
+    using namespace chip::app::Clusters::TargetNavigator;
 
-    const char * clusterName = "RadonConcentrationMeasurement";
+    const char * clusterName = "TargetNavigator";
 
     commands_list clusterCommands = {
         //
         // Commands
         //
-        make_unique<ClusterCommand>(Id, credsIssuerConfig), //
+        make_unique<ClusterCommand>(Id, credsIssuerConfig),            //
+        make_unique<TargetNavigatorNavigateTarget>(credsIssuerConfig), //
         //
         // Attributes
         //
-        make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                        //
-        make_unique<ReadAttribute>(Id, "measured-value", Attributes::MeasuredValue::Id, credsIssuerConfig),                       //
-        make_unique<ReadAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),                //
-        make_unique<ReadAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),                //
-        make_unique<ReadAttribute>(Id, "peak-measured-value", Attributes::PeakMeasuredValue::Id, credsIssuerConfig),              //
-        make_unique<ReadAttribute>(Id, "peak-measured-value-window", Attributes::PeakMeasuredValueWindow::Id, credsIssuerConfig), //
-        make_unique<ReadAttribute>(Id, "average-measured-value", Attributes::AverageMeasuredValue::Id, credsIssuerConfig),        //
-        make_unique<ReadAttribute>(Id, "average-measured-value-window", Attributes::AverageMeasuredValueWindow::Id,
-                                   credsIssuerConfig),                                                                     //
-        make_unique<ReadAttribute>(Id, "uncertainty", Attributes::Uncertainty::Id, credsIssuerConfig),                     //
-        make_unique<ReadAttribute>(Id, "measurement-unit", Attributes::MeasurementUnit::Id, credsIssuerConfig),            //
-        make_unique<ReadAttribute>(Id, "measurement-medium", Attributes::MeasurementMedium::Id, credsIssuerConfig),        //
-        make_unique<ReadAttribute>(Id, "level-value", Attributes::LevelValue::Id, credsIssuerConfig),                      //
+        make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 //
+        make_unique<ReadAttribute>(Id, "target-list", Attributes::TargetList::Id, credsIssuerConfig),                      //
+        make_unique<ReadAttribute>(Id, "current-target", Attributes::CurrentTarget::Id, credsIssuerConfig),                //
         make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -25533,38 +27560,11 @@ void registerClusterRadonConcentrationMeasurement(Commands & commands, Credentia
         make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
         make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
         make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<float>>>(
-            Id, "measured-value", -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
-            Attributes::MeasuredValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<float>>>(
-            Id, "min-measured-value", -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
-            Attributes::MinMeasuredValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<float>>>(
-            Id, "max-measured-value", -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
-            Attributes::MaxMeasuredValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<float>>>(
-            Id, "peak-measured-value", -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
-            Attributes::PeakMeasuredValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<uint32_t>>(Id, "peak-measured-value-window", 0, UINT32_MAX,
-                                              Attributes::PeakMeasuredValueWindow::Id, WriteCommandType::kForceWrite,
-                                              credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<float>>>(
-            Id, "average-measured-value", -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(),
-            Attributes::AverageMeasuredValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<uint32_t>>(Id, "average-measured-value-window", 0, UINT32_MAX,
-                                              Attributes::AverageMeasuredValueWindow::Id, WriteCommandType::kForceWrite,
-                                              credsIssuerConfig), //
-        make_unique<WriteAttribute<float>>(Id, "uncertainty", -std::numeric_limits<float>::infinity(),
-                                           std::numeric_limits<float>::infinity(), Attributes::Uncertainty::Id,
-                                           WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::Clusters::RadonConcentrationMeasurement::MeasurementUnitEnum>>(
-            Id, "measurement-unit", 0, UINT8_MAX, Attributes::MeasurementUnit::Id, WriteCommandType::kForceWrite,
-            credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::Clusters::RadonConcentrationMeasurement::MeasurementMediumEnum>>(
-            Id, "measurement-medium", 0, UINT8_MAX, Attributes::MeasurementMedium::Id, WriteCommandType::kForceWrite,
-            credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::Clusters::RadonConcentrationMeasurement::LevelValueEnum>>(
-            Id, "level-value", 0, UINT8_MAX, Attributes::LevelValue::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<
+            chip::app::DataModel::List<const chip::app::Clusters::TargetNavigator::Structs::TargetInfoStruct::Type>>>(
+            Id, "target-list", Attributes::TargetList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint8_t>>(Id, "current-target", 0, UINT8_MAX, Attributes::CurrentTarget::Id,
+                                             WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
             Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
@@ -25577,21 +27577,10 @@ void registerClusterRadonConcentrationMeasurement(Commands & commands, Credentia
         make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id,
                                               WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
-                                              WriteCommandType::kForceWrite, credsIssuerConfig),                          //
-        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                           //
-        make_unique<SubscribeAttribute>(Id, "measured-value", Attributes::MeasuredValue::Id, credsIssuerConfig),          //
-        make_unique<SubscribeAttribute>(Id, "min-measured-value", Attributes::MinMeasuredValue::Id, credsIssuerConfig),   //
-        make_unique<SubscribeAttribute>(Id, "max-measured-value", Attributes::MaxMeasuredValue::Id, credsIssuerConfig),   //
-        make_unique<SubscribeAttribute>(Id, "peak-measured-value", Attributes::PeakMeasuredValue::Id, credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "peak-measured-value-window", Attributes::PeakMeasuredValueWindow::Id,
-                                        credsIssuerConfig),                                                                     //
-        make_unique<SubscribeAttribute>(Id, "average-measured-value", Attributes::AverageMeasuredValue::Id, credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "average-measured-value-window", Attributes::AverageMeasuredValueWindow::Id,
-                                        credsIssuerConfig),                                                                     //
-        make_unique<SubscribeAttribute>(Id, "uncertainty", Attributes::Uncertainty::Id, credsIssuerConfig),                     //
-        make_unique<SubscribeAttribute>(Id, "measurement-unit", Attributes::MeasurementUnit::Id, credsIssuerConfig),            //
-        make_unique<SubscribeAttribute>(Id, "measurement-medium", Attributes::MeasurementMedium::Id, credsIssuerConfig),        //
-        make_unique<SubscribeAttribute>(Id, "level-value", Attributes::LevelValue::Id, credsIssuerConfig),                      //
+                                              WriteCommandType::kForceWrite, credsIssuerConfig),                                //
+        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 //
+        make_unique<SubscribeAttribute>(Id, "target-list", Attributes::TargetList::Id, credsIssuerConfig),                      //
+        make_unique<SubscribeAttribute>(Id, "current-target", Attributes::CurrentTarget::Id, credsIssuerConfig),                //
         make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -25601,30 +27590,54 @@ void registerClusterRadonConcentrationMeasurement(Commands & commands, Credentia
         //
         // Events
         //
-        make_unique<ReadEvent>(Id, credsIssuerConfig),      //
-        make_unique<SubscribeEvent>(Id, credsIssuerConfig), //
+        make_unique<ReadEvent>(Id, credsIssuerConfig),                                                   //
+        make_unique<ReadEvent>(Id, "target-updated", Events::TargetUpdated::Id, credsIssuerConfig),      //
+        make_unique<SubscribeEvent>(Id, credsIssuerConfig),                                              //
+        make_unique<SubscribeEvent>(Id, "target-updated", Events::TargetUpdated::Id, credsIssuerConfig), //
     };
 
     commands.RegisterCluster(clusterName, clusterCommands);
 }
-void registerClusterWiFiNetworkManagement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+void registerClusterMediaPlayback(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
 {
-    using namespace chip::app::Clusters::WiFiNetworkManagement;
+    using namespace chip::app::Clusters::MediaPlayback;
 
-    const char * clusterName = "WiFiNetworkManagement";
+    const char * clusterName = "MediaPlayback";
 
     commands_list clusterCommands = {
         //
         // Commands
         //
-        make_unique<ClusterCommand>(Id, credsIssuerConfig),                            //
-        make_unique<WiFiNetworkManagementNetworkPassphraseRequest>(credsIssuerConfig), //
+        make_unique<ClusterCommand>(Id, credsIssuerConfig),               //
+        make_unique<MediaPlaybackPlay>(credsIssuerConfig),                //
+        make_unique<MediaPlaybackPause>(credsIssuerConfig),               //
+        make_unique<MediaPlaybackStop>(credsIssuerConfig),                //
+        make_unique<MediaPlaybackStartOver>(credsIssuerConfig),           //
+        make_unique<MediaPlaybackPrevious>(credsIssuerConfig),            //
+        make_unique<MediaPlaybackNext>(credsIssuerConfig),                //
+        make_unique<MediaPlaybackRewind>(credsIssuerConfig),              //
+        make_unique<MediaPlaybackFastForward>(credsIssuerConfig),         //
+        make_unique<MediaPlaybackSkipForward>(credsIssuerConfig),         //
+        make_unique<MediaPlaybackSkipBackward>(credsIssuerConfig),        //
+        make_unique<MediaPlaybackSeek>(credsIssuerConfig),                //
+        make_unique<MediaPlaybackActivateAudioTrack>(credsIssuerConfig),  //
+        make_unique<MediaPlaybackActivateTextTrack>(credsIssuerConfig),   //
+        make_unique<MediaPlaybackDeactivateTextTrack>(credsIssuerConfig), //
         //
         // Attributes
         //
         make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 //
-        make_unique<ReadAttribute>(Id, "ssid", Attributes::Ssid::Id, credsIssuerConfig),                                   //
-        make_unique<ReadAttribute>(Id, "passphrase-surrogate", Attributes::PassphraseSurrogate::Id, credsIssuerConfig),    //
+        make_unique<ReadAttribute>(Id, "current-state", Attributes::CurrentState::Id, credsIssuerConfig),                  //
+        make_unique<ReadAttribute>(Id, "start-time", Attributes::StartTime::Id, credsIssuerConfig),                        //
+        make_unique<ReadAttribute>(Id, "duration", Attributes::Duration::Id, credsIssuerConfig),                           //
+        make_unique<ReadAttribute>(Id, "sampled-position", Attributes::SampledPosition::Id, credsIssuerConfig),            //
+        make_unique<ReadAttribute>(Id, "playback-speed", Attributes::PlaybackSpeed::Id, credsIssuerConfig),                //
+        make_unique<ReadAttribute>(Id, "seek-range-end", Attributes::SeekRangeEnd::Id, credsIssuerConfig),                 //
+        make_unique<ReadAttribute>(Id, "seek-range-start", Attributes::SeekRangeStart::Id, credsIssuerConfig),             //
+        make_unique<ReadAttribute>(Id, "active-audio-track", Attributes::ActiveAudioTrack::Id, credsIssuerConfig),         //
+        make_unique<ReadAttribute>(Id, "available-audio-tracks", Attributes::AvailableAudioTracks::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "active-text-track", Attributes::ActiveTextTrack::Id, credsIssuerConfig),           //
+        make_unique<ReadAttribute>(Id, "available-text-tracks", Attributes::AvailableTextTracks::Id, credsIssuerConfig),   //
         make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -25632,11 +27645,36 @@ void registerClusterWiFiNetworkManagement(Commands & commands, CredentialIssuerC
         make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
         make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
         make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<chip::ByteSpan>>>(
-            Id, "ssid", Attributes::Ssid::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint64_t>>>(Id, "passphrase-surrogate", 0, UINT64_MAX,
-                                                                              Attributes::PassphraseSurrogate::Id,
+        make_unique<WriteAttribute<chip::app::Clusters::MediaPlayback::PlaybackStateEnum>>(
+            Id, "current-state", 0, UINT8_MAX, Attributes::CurrentState::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint64_t>>>(
+            Id, "start-time", 0, UINT64_MAX, Attributes::StartTime::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint64_t>>>(
+            Id, "duration", 0, UINT64_MAX, Attributes::Duration::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<
+            chip::app::DataModel::Nullable<chip::app::Clusters::MediaPlayback::Structs::PlaybackPositionStruct::Type>>>(
+            Id, "sampled-position", Attributes::SampledPosition::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<float>>(Id, "playback-speed", -std::numeric_limits<float>::infinity(),
+                                           std::numeric_limits<float>::infinity(), Attributes::PlaybackSpeed::Id,
+                                           WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint64_t>>>(
+            Id, "seek-range-end", 0, UINT64_MAX, Attributes::SeekRangeEnd::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint64_t>>>(Id, "seek-range-start", 0, UINT64_MAX,
+                                                                              Attributes::SeekRangeStart::Id,
                                                                               WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<
+            chip::app::DataModel::Nullable<chip::app::Clusters::MediaPlayback::Structs::TrackStruct::Type>>>(
+            Id, "active-audio-track", Attributes::ActiveAudioTrack::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::Nullable<
+            chip::app::DataModel::List<const chip::app::Clusters::MediaPlayback::Structs::TrackStruct::Type>>>>(
+            Id, "available-audio-tracks", Attributes::AvailableAudioTracks::Id, WriteCommandType::kForceWrite,
+            credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<
+            chip::app::DataModel::Nullable<chip::app::Clusters::MediaPlayback::Structs::TrackStruct::Type>>>(
+            Id, "active-text-track", Attributes::ActiveTextTrack::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::Nullable<
+            chip::app::DataModel::List<const chip::app::Clusters::MediaPlayback::Structs::TrackStruct::Type>>>>(
+            Id, "available-text-tracks", Attributes::AvailableTextTracks::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
             Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
@@ -25651,8 +27689,17 @@ void registerClusterWiFiNetworkManagement(Commands & commands, CredentialIssuerC
         make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
                                               WriteCommandType::kForceWrite, credsIssuerConfig),                                //
         make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 //
-        make_unique<SubscribeAttribute>(Id, "ssid", Attributes::Ssid::Id, credsIssuerConfig),                                   //
-        make_unique<SubscribeAttribute>(Id, "passphrase-surrogate", Attributes::PassphraseSurrogate::Id, credsIssuerConfig),    //
+        make_unique<SubscribeAttribute>(Id, "current-state", Attributes::CurrentState::Id, credsIssuerConfig),                  //
+        make_unique<SubscribeAttribute>(Id, "start-time", Attributes::StartTime::Id, credsIssuerConfig),                        //
+        make_unique<SubscribeAttribute>(Id, "duration", Attributes::Duration::Id, credsIssuerConfig),                           //
+        make_unique<SubscribeAttribute>(Id, "sampled-position", Attributes::SampledPosition::Id, credsIssuerConfig),            //
+        make_unique<SubscribeAttribute>(Id, "playback-speed", Attributes::PlaybackSpeed::Id, credsIssuerConfig),                //
+        make_unique<SubscribeAttribute>(Id, "seek-range-end", Attributes::SeekRangeEnd::Id, credsIssuerConfig),                 //
+        make_unique<SubscribeAttribute>(Id, "seek-range-start", Attributes::SeekRangeStart::Id, credsIssuerConfig),             //
+        make_unique<SubscribeAttribute>(Id, "active-audio-track", Attributes::ActiveAudioTrack::Id, credsIssuerConfig),         //
+        make_unique<SubscribeAttribute>(Id, "available-audio-tracks", Attributes::AvailableAudioTracks::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "active-text-track", Attributes::ActiveTextTrack::Id, credsIssuerConfig),           //
+        make_unique<SubscribeAttribute>(Id, "available-text-tracks", Attributes::AvailableTextTracks::Id, credsIssuerConfig),   //
         make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -25662,58 +27709,47 @@ void registerClusterWiFiNetworkManagement(Commands & commands, CredentialIssuerC
         //
         // Events
         //
-        make_unique<ReadEvent>(Id, credsIssuerConfig),      //
-        make_unique<SubscribeEvent>(Id, credsIssuerConfig), //
+        make_unique<ReadEvent>(Id, credsIssuerConfig),                                                 //
+        make_unique<ReadEvent>(Id, "state-changed", Events::StateChanged::Id, credsIssuerConfig),      //
+        make_unique<SubscribeEvent>(Id, credsIssuerConfig),                                            //
+        make_unique<SubscribeEvent>(Id, "state-changed", Events::StateChanged::Id, credsIssuerConfig), //
     };
 
     commands.RegisterCluster(clusterName, clusterCommands);
 }
-void registerClusterThreadBorderRouterManagement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+void registerClusterMediaInput(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
 {
-    using namespace chip::app::Clusters::ThreadBorderRouterManagement;
+    using namespace chip::app::Clusters::MediaInput;
 
-    const char * clusterName = "ThreadBorderRouterManagement";
+    const char * clusterName = "MediaInput";
 
     commands_list clusterCommands = {
         //
         // Commands
         //
-        make_unique<ClusterCommand>(Id, credsIssuerConfig),                                   //
-        make_unique<ThreadBorderRouterManagementGetActiveDatasetRequest>(credsIssuerConfig),  //
-        make_unique<ThreadBorderRouterManagementGetPendingDatasetRequest>(credsIssuerConfig), //
-        make_unique<ThreadBorderRouterManagementSetActiveDatasetRequest>(credsIssuerConfig),  //
-        make_unique<ThreadBorderRouterManagementSetPendingDatasetRequest>(credsIssuerConfig), //
+        make_unique<ClusterCommand>(Id, credsIssuerConfig),        //
+        make_unique<MediaInputSelectInput>(credsIssuerConfig),     //
+        make_unique<MediaInputShowInputStatus>(credsIssuerConfig), //
+        make_unique<MediaInputHideInputStatus>(credsIssuerConfig), //
+        make_unique<MediaInputRenameInput>(credsIssuerConfig),     //
         //
         // Attributes
         //
-        make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                       //
-        make_unique<ReadAttribute>(Id, "border-router-name", Attributes::BorderRouterName::Id, credsIssuerConfig),               //
-        make_unique<ReadAttribute>(Id, "border-agent-id", Attributes::BorderAgentID::Id, credsIssuerConfig),                     //
-        make_unique<ReadAttribute>(Id, "thread-version", Attributes::ThreadVersion::Id, credsIssuerConfig),                      //
-        make_unique<ReadAttribute>(Id, "interface-enabled", Attributes::InterfaceEnabled::Id, credsIssuerConfig),                //
-        make_unique<ReadAttribute>(Id, "active-dataset-timestamp", Attributes::ActiveDatasetTimestamp::Id, credsIssuerConfig),   //
-        make_unique<ReadAttribute>(Id, "pending-dataset-timestamp", Attributes::PendingDatasetTimestamp::Id, credsIssuerConfig), //
-        make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig),       //
-        make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),         //
-        make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                              //
-        make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                      //
-        make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                            //
-        make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),                  //
-        make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                                    //
-        make_unique<WriteAttribute<chip::CharSpan>>(Id, "border-router-name", Attributes::BorderRouterName::Id,
-                                                    WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::ByteSpan>>(Id, "border-agent-id", Attributes::BorderAgentID::Id,
-                                                    WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<uint16_t>>(Id, "thread-version", 0, UINT16_MAX, Attributes::ThreadVersion::Id,
-                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<bool>>(Id, "interface-enabled", 0, 1, Attributes::InterfaceEnabled::Id,
-                                          WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint64_t>>>(Id, "active-dataset-timestamp", 0, UINT64_MAX,
-                                                                              Attributes::ActiveDatasetTimestamp::Id,
-                                                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint64_t>>>(Id, "pending-dataset-timestamp", 0, UINT64_MAX,
-                                                                              Attributes::PendingDatasetTimestamp::Id,
-                                                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 //
+        make_unique<ReadAttribute>(Id, "input-list", Attributes::InputList::Id, credsIssuerConfig),                        //
+        make_unique<ReadAttribute>(Id, "current-input", Attributes::CurrentInput::Id, credsIssuerConfig),                  //
+        make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
+        make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
+        make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                //
+        make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
+        make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
+        make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              //
+        make_unique<WriteAttributeAsComplex<
+            chip::app::DataModel::List<const chip::app::Clusters::MediaInput::Structs::InputInfoStruct::Type>>>(
+            Id, "input-list", Attributes::InputList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint8_t>>(Id, "current-input", 0, UINT8_MAX, Attributes::CurrentInput::Id,
+                                             WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
             Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
@@ -25722,20 +27758,14 @@ void registerClusterThreadBorderRouterManagement(Commands & commands, Credential
         make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>(
             Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>(
-            Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id,
-                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
-                                              WriteCommandType::kForceWrite, credsIssuerConfig),                        //
-        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                         //
-        make_unique<SubscribeAttribute>(Id, "border-router-name", Attributes::BorderRouterName::Id, credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "border-agent-id", Attributes::BorderAgentID::Id, credsIssuerConfig),       //
-        make_unique<SubscribeAttribute>(Id, "thread-version", Attributes::ThreadVersion::Id, credsIssuerConfig),        //
-        make_unique<SubscribeAttribute>(Id, "interface-enabled", Attributes::InterfaceEnabled::Id, credsIssuerConfig),  //
-        make_unique<SubscribeAttribute>(Id, "active-dataset-timestamp", Attributes::ActiveDatasetTimestamp::Id,
-                                        credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "pending-dataset-timestamp", Attributes::PendingDatasetTimestamp::Id,
-                                        credsIssuerConfig),                                                                     //
+            Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig),                                //
+        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 //
+        make_unique<SubscribeAttribute>(Id, "input-list", Attributes::InputList::Id, credsIssuerConfig),                        //
+        make_unique<SubscribeAttribute>(Id, "current-input", Attributes::CurrentInput::Id, credsIssuerConfig),                  //
         make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -25751,42 +27781,29 @@ void registerClusterThreadBorderRouterManagement(Commands & commands, Credential
 
     commands.RegisterCluster(clusterName, clusterCommands);
 }
-void registerClusterThreadNetworkDirectory(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+void registerClusterLowPower(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
 {
-    using namespace chip::app::Clusters::ThreadNetworkDirectory;
+    using namespace chip::app::Clusters::LowPower;
 
-    const char * clusterName = "ThreadNetworkDirectory";
+    const char * clusterName = "LowPower";
 
     commands_list clusterCommands = {
         //
         // Commands
         //
-        make_unique<ClusterCommand>(Id, credsIssuerConfig),                          //
-        make_unique<ThreadNetworkDirectoryAddNetwork>(credsIssuerConfig),            //
-        make_unique<ThreadNetworkDirectoryRemoveNetwork>(credsIssuerConfig),         //
-        make_unique<ThreadNetworkDirectoryGetOperationalDataset>(credsIssuerConfig), //
+        make_unique<ClusterCommand>(Id, credsIssuerConfig), //
+        make_unique<LowPowerSleep>(credsIssuerConfig),      //
         //
         // Attributes
         //
-        make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                      //
-        make_unique<ReadAttribute>(Id, "preferred-extended-pan-id", Attributes::PreferredExtendedPanID::Id, credsIssuerConfig), //
-        make_unique<ReadAttribute>(Id, "thread-networks", Attributes::ThreadNetworks::Id, credsIssuerConfig),                   //
-        make_unique<ReadAttribute>(Id, "thread-network-table-size", Attributes::ThreadNetworkTableSize::Id, credsIssuerConfig), //
-        make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig),      //
-        make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),        //
-        make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                             //
-        make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                     //
-        make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                           //
-        make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),                 //
-        make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                                   //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<chip::ByteSpan>>>(Id, "preferred-extended-pan-id",
-                                                                                    Attributes::PreferredExtendedPanID::Id,
-                                                                                    WriteCommandType::kWrite, credsIssuerConfig), //
-        make_unique<WriteAttributeAsComplex<
-            chip::app::DataModel::List<const chip::app::Clusters::ThreadNetworkDirectory::Structs::ThreadNetworkStruct::Type>>>(
-            Id, "thread-networks", Attributes::ThreadNetworks::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<uint8_t>>(Id, "thread-network-table-size", 0, UINT8_MAX, Attributes::ThreadNetworkTableSize::Id,
-                                             WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 //
+        make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
+        make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
+        make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                //
+        make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
+        make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
+        make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              //
         make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
             Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
@@ -25799,13 +27816,8 @@ void registerClusterThreadNetworkDirectory(Commands & commands, CredentialIssuer
         make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id,
                                               WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
-                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                  //
-        make_unique<SubscribeAttribute>(Id, "preferred-extended-pan-id", Attributes::PreferredExtendedPanID::Id,
-                                        credsIssuerConfig),                                                        //
-        make_unique<SubscribeAttribute>(Id, "thread-networks", Attributes::ThreadNetworks::Id, credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "thread-network-table-size", Attributes::ThreadNetworkTableSize::Id,
-                                        credsIssuerConfig),                                                                     //
+                                              WriteCommandType::kForceWrite, credsIssuerConfig),                                //
+        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 //
         make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -25821,23 +27833,22 @@ void registerClusterThreadNetworkDirectory(Commands & commands, CredentialIssuer
 
     commands.RegisterCluster(clusterName, clusterCommands);
 }
-void registerClusterWakeOnLan(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+void registerClusterKeypadInput(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
 {
-    using namespace chip::app::Clusters::WakeOnLan;
+    using namespace chip::app::Clusters::KeypadInput;
 
-    const char * clusterName = "WakeOnLan";
+    const char * clusterName = "KeypadInput";
 
     commands_list clusterCommands = {
         //
         // Commands
         //
         make_unique<ClusterCommand>(Id, credsIssuerConfig), //
+        make_unique<KeypadInputSendKey>(credsIssuerConfig), //
         //
         // Attributes
         //
         make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 //
-        make_unique<ReadAttribute>(Id, "macaddress", Attributes::MACAddress::Id, credsIssuerConfig),                       //
-        make_unique<ReadAttribute>(Id, "link-local-address", Attributes::LinkLocalAddress::Id, credsIssuerConfig),         //
         make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -25845,10 +27856,6 @@ void registerClusterWakeOnLan(Commands & commands, CredentialIssuerCommands * cr
         make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
         make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
         make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              //
-        make_unique<WriteAttribute<chip::CharSpan>>(Id, "macaddress", Attributes::MACAddress::Id, WriteCommandType::kForceWrite,
-                                                    credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::ByteSpan>>(Id, "link-local-address", Attributes::LinkLocalAddress::Id,
-                                                    WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
             Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
@@ -25863,8 +27870,6 @@ void registerClusterWakeOnLan(Commands & commands, CredentialIssuerCommands * cr
         make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
                                               WriteCommandType::kForceWrite, credsIssuerConfig),                                //
         make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 //
-        make_unique<SubscribeAttribute>(Id, "macaddress", Attributes::MACAddress::Id, credsIssuerConfig),                       //
-        make_unique<SubscribeAttribute>(Id, "link-local-address", Attributes::LinkLocalAddress::Id, credsIssuerConfig),         //
         make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -25880,30 +27885,26 @@ void registerClusterWakeOnLan(Commands & commands, CredentialIssuerCommands * cr
 
     commands.RegisterCluster(clusterName, clusterCommands);
 }
-void registerClusterChannel(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+void registerClusterContentLauncher(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
 {
-    using namespace chip::app::Clusters::Channel;
+    using namespace chip::app::Clusters::ContentLauncher;
 
-    const char * clusterName = "Channel";
+    const char * clusterName = "ContentLauncher";
 
     commands_list clusterCommands = {
         //
         // Commands
         //
         make_unique<ClusterCommand>(Id, credsIssuerConfig),           //
-        make_unique<ChannelChangeChannel>(credsIssuerConfig),         //
-        make_unique<ChannelChangeChannelByNumber>(credsIssuerConfig), //
-        make_unique<ChannelSkipChannel>(credsIssuerConfig),           //
-        make_unique<ChannelGetProgramGuide>(credsIssuerConfig),       //
-        make_unique<ChannelRecordProgram>(credsIssuerConfig),         //
-        make_unique<ChannelCancelRecordProgram>(credsIssuerConfig),   //
+        make_unique<ContentLauncherLaunchContent>(credsIssuerConfig), //
+        make_unique<ContentLauncherLaunchURL>(credsIssuerConfig),     //
         //
         // Attributes
         //
-        make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 //
-        make_unique<ReadAttribute>(Id, "channel-list", Attributes::ChannelList::Id, credsIssuerConfig),                    //
-        make_unique<ReadAttribute>(Id, "lineup", Attributes::Lineup::Id, credsIssuerConfig),                               //
-        make_unique<ReadAttribute>(Id, "current-channel", Attributes::CurrentChannel::Id, credsIssuerConfig),              //
+        make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                //
+        make_unique<ReadAttribute>(Id, "accept-header", Attributes::AcceptHeader::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "supported-streaming-protocols", Attributes::SupportedStreamingProtocols::Id,
+                                   credsIssuerConfig),                                                                     //
         make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -25911,15 +27912,11 @@ void registerClusterChannel(Commands & commands, CredentialIssuerCommands * cred
         make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
         make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
         make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              //
-        make_unique<WriteAttributeAsComplex<
-            chip::app::DataModel::List<const chip::app::Clusters::Channel::Structs::ChannelInfoStruct::Type>>>(
-            Id, "channel-list", Attributes::ChannelList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<
-            WriteAttributeAsComplex<chip::app::DataModel::Nullable<chip::app::Clusters::Channel::Structs::LineupInfoStruct::Type>>>(
-            Id, "lineup", Attributes::Lineup::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttributeAsComplex<
-            chip::app::DataModel::Nullable<chip::app::Clusters::Channel::Structs::ChannelInfoStruct::Type>>>(
-            Id, "current-channel", Attributes::CurrentChannel::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CharSpan>>>(
+            Id, "accept-header", Attributes::AcceptHeader::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::BitMask<chip::app::Clusters::ContentLauncher::SupportedProtocolsBitmap>>>(
+            Id, "supported-streaming-protocols", 0, UINT32_MAX, Attributes::SupportedStreamingProtocols::Id,
+            WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
             Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
@@ -25932,11 +27929,11 @@ void registerClusterChannel(Commands & commands, CredentialIssuerCommands * cred
         make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id,
                                               WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
-                                              WriteCommandType::kForceWrite, credsIssuerConfig),                                //
-        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 //
-        make_unique<SubscribeAttribute>(Id, "channel-list", Attributes::ChannelList::Id, credsIssuerConfig),                    //
-        make_unique<SubscribeAttribute>(Id, "lineup", Attributes::Lineup::Id, credsIssuerConfig),                               //
-        make_unique<SubscribeAttribute>(Id, "current-channel", Attributes::CurrentChannel::Id, credsIssuerConfig),              //
+                                              WriteCommandType::kForceWrite, credsIssuerConfig),               //
+        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                //
+        make_unique<SubscribeAttribute>(Id, "accept-header", Attributes::AcceptHeader::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "supported-streaming-protocols", Attributes::SupportedStreamingProtocols::Id,
+                                        credsIssuerConfig),                                                                     //
         make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -25952,24 +27949,25 @@ void registerClusterChannel(Commands & commands, CredentialIssuerCommands * cred
 
     commands.RegisterCluster(clusterName, clusterCommands);
 }
-void registerClusterTargetNavigator(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+void registerClusterAudioOutput(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
 {
-    using namespace chip::app::Clusters::TargetNavigator;
+    using namespace chip::app::Clusters::AudioOutput;
 
-    const char * clusterName = "TargetNavigator";
+    const char * clusterName = "AudioOutput";
 
     commands_list clusterCommands = {
         //
         // Commands
         //
-        make_unique<ClusterCommand>(Id, credsIssuerConfig),            //
-        make_unique<TargetNavigatorNavigateTarget>(credsIssuerConfig), //
+        make_unique<ClusterCommand>(Id, credsIssuerConfig),      //
+        make_unique<AudioOutputSelectOutput>(credsIssuerConfig), //
+        make_unique<AudioOutputRenameOutput>(credsIssuerConfig), //
         //
         // Attributes
         //
         make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 //
-        make_unique<ReadAttribute>(Id, "target-list", Attributes::TargetList::Id, credsIssuerConfig),                      //
-        make_unique<ReadAttribute>(Id, "current-target", Attributes::CurrentTarget::Id, credsIssuerConfig),                //
+        make_unique<ReadAttribute>(Id, "output-list", Attributes::OutputList::Id, credsIssuerConfig),                      //
+        make_unique<ReadAttribute>(Id, "current-output", Attributes::CurrentOutput::Id, credsIssuerConfig),                //
         make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -25978,9 +27976,9 @@ void registerClusterTargetNavigator(Commands & commands, CredentialIssuerCommand
         make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
         make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              //
         make_unique<WriteAttributeAsComplex<
-            chip::app::DataModel::List<const chip::app::Clusters::TargetNavigator::Structs::TargetInfoStruct::Type>>>(
-            Id, "target-list", Attributes::TargetList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<uint8_t>>(Id, "current-target", 0, UINT8_MAX, Attributes::CurrentTarget::Id,
+            chip::app::DataModel::List<const chip::app::Clusters::AudioOutput::Structs::OutputInfoStruct::Type>>>(
+            Id, "output-list", Attributes::OutputList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint8_t>>(Id, "current-output", 0, UINT8_MAX, Attributes::CurrentOutput::Id,
                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
             Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
@@ -25996,8 +27994,8 @@ void registerClusterTargetNavigator(Commands & commands, CredentialIssuerCommand
         make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
                                               WriteCommandType::kForceWrite, credsIssuerConfig),                                //
         make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 //
-        make_unique<SubscribeAttribute>(Id, "target-list", Attributes::TargetList::Id, credsIssuerConfig),                      //
-        make_unique<SubscribeAttribute>(Id, "current-target", Attributes::CurrentTarget::Id, credsIssuerConfig),                //
+        make_unique<SubscribeAttribute>(Id, "output-list", Attributes::OutputList::Id, credsIssuerConfig),                      //
+        make_unique<SubscribeAttribute>(Id, "current-output", Attributes::CurrentOutput::Id, credsIssuerConfig),                //
         make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -26007,54 +28005,32 @@ void registerClusterTargetNavigator(Commands & commands, CredentialIssuerCommand
         //
         // Events
         //
-        make_unique<ReadEvent>(Id, credsIssuerConfig),                                                   //
-        make_unique<ReadEvent>(Id, "target-updated", Events::TargetUpdated::Id, credsIssuerConfig),      //
-        make_unique<SubscribeEvent>(Id, credsIssuerConfig),                                              //
-        make_unique<SubscribeEvent>(Id, "target-updated", Events::TargetUpdated::Id, credsIssuerConfig), //
+        make_unique<ReadEvent>(Id, credsIssuerConfig),      //
+        make_unique<SubscribeEvent>(Id, credsIssuerConfig), //
     };
 
     commands.RegisterCluster(clusterName, clusterCommands);
 }
-void registerClusterMediaPlayback(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+void registerClusterApplicationLauncher(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
 {
-    using namespace chip::app::Clusters::MediaPlayback;
+    using namespace chip::app::Clusters::ApplicationLauncher;
 
-    const char * clusterName = "MediaPlayback";
+    const char * clusterName = "ApplicationLauncher";
 
     commands_list clusterCommands = {
         //
         // Commands
         //
-        make_unique<ClusterCommand>(Id, credsIssuerConfig),               //
-        make_unique<MediaPlaybackPlay>(credsIssuerConfig),                //
-        make_unique<MediaPlaybackPause>(credsIssuerConfig),               //
-        make_unique<MediaPlaybackStop>(credsIssuerConfig),                //
-        make_unique<MediaPlaybackStartOver>(credsIssuerConfig),           //
-        make_unique<MediaPlaybackPrevious>(credsIssuerConfig),            //
-        make_unique<MediaPlaybackNext>(credsIssuerConfig),                //
-        make_unique<MediaPlaybackRewind>(credsIssuerConfig),              //
-        make_unique<MediaPlaybackFastForward>(credsIssuerConfig),         //
-        make_unique<MediaPlaybackSkipForward>(credsIssuerConfig),         //
-        make_unique<MediaPlaybackSkipBackward>(credsIssuerConfig),        //
-        make_unique<MediaPlaybackSeek>(credsIssuerConfig),                //
-        make_unique<MediaPlaybackActivateAudioTrack>(credsIssuerConfig),  //
-        make_unique<MediaPlaybackActivateTextTrack>(credsIssuerConfig),   //
-        make_unique<MediaPlaybackDeactivateTextTrack>(credsIssuerConfig), //
+        make_unique<ClusterCommand>(Id, credsIssuerConfig),           //
+        make_unique<ApplicationLauncherLaunchApp>(credsIssuerConfig), //
+        make_unique<ApplicationLauncherStopApp>(credsIssuerConfig),   //
+        make_unique<ApplicationLauncherHideApp>(credsIssuerConfig),   //
         //
         // Attributes
         //
         make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 //
-        make_unique<ReadAttribute>(Id, "current-state", Attributes::CurrentState::Id, credsIssuerConfig),                  //
-        make_unique<ReadAttribute>(Id, "start-time", Attributes::StartTime::Id, credsIssuerConfig),                        //
-        make_unique<ReadAttribute>(Id, "duration", Attributes::Duration::Id, credsIssuerConfig),                           //
-        make_unique<ReadAttribute>(Id, "sampled-position", Attributes::SampledPosition::Id, credsIssuerConfig),            //
-        make_unique<ReadAttribute>(Id, "playback-speed", Attributes::PlaybackSpeed::Id, credsIssuerConfig),                //
-        make_unique<ReadAttribute>(Id, "seek-range-end", Attributes::SeekRangeEnd::Id, credsIssuerConfig),                 //
-        make_unique<ReadAttribute>(Id, "seek-range-start", Attributes::SeekRangeStart::Id, credsIssuerConfig),             //
-        make_unique<ReadAttribute>(Id, "active-audio-track", Attributes::ActiveAudioTrack::Id, credsIssuerConfig),         //
-        make_unique<ReadAttribute>(Id, "available-audio-tracks", Attributes::AvailableAudioTracks::Id, credsIssuerConfig), //
-        make_unique<ReadAttribute>(Id, "active-text-track", Attributes::ActiveTextTrack::Id, credsIssuerConfig),           //
-        make_unique<ReadAttribute>(Id, "available-text-tracks", Attributes::AvailableTextTracks::Id, credsIssuerConfig),   //
+        make_unique<ReadAttribute>(Id, "catalog-list", Attributes::CatalogList::Id, credsIssuerConfig),                    //
+        make_unique<ReadAttribute>(Id, "current-app", Attributes::CurrentApp::Id, credsIssuerConfig),                      //
         make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -26062,36 +28038,88 @@ void registerClusterMediaPlayback(Commands & commands, CredentialIssuerCommands
         make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
         make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
         make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              //
-        make_unique<WriteAttribute<chip::app::Clusters::MediaPlayback::PlaybackStateEnum>>(
-            Id, "current-state", 0, UINT8_MAX, Attributes::CurrentState::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint64_t>>>(
-            Id, "start-time", 0, UINT64_MAX, Attributes::StartTime::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint64_t>>>(
-            Id, "duration", 0, UINT64_MAX, Attributes::Duration::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttributeAsComplex<
-            chip::app::DataModel::Nullable<chip::app::Clusters::MediaPlayback::Structs::PlaybackPositionStruct::Type>>>(
-            Id, "sampled-position", Attributes::SampledPosition::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<float>>(Id, "playback-speed", -std::numeric_limits<float>::infinity(),
-                                           std::numeric_limits<float>::infinity(), Attributes::PlaybackSpeed::Id,
-                                           WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint64_t>>>(
-            Id, "seek-range-end", 0, UINT64_MAX, Attributes::SeekRangeEnd::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::DataModel::Nullable<uint64_t>>>(Id, "seek-range-start", 0, UINT64_MAX,
-                                                                              Attributes::SeekRangeStart::Id,
-                                                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const uint16_t>>>(
+            Id, "catalog-list", Attributes::CatalogList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttributeAsComplex<
-            chip::app::DataModel::Nullable<chip::app::Clusters::MediaPlayback::Structs::TrackStruct::Type>>>(
-            Id, "active-audio-track", Attributes::ActiveAudioTrack::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttributeAsComplex<chip::app::DataModel::Nullable<
-            chip::app::DataModel::List<const chip::app::Clusters::MediaPlayback::Structs::TrackStruct::Type>>>>(
-            Id, "available-audio-tracks", Attributes::AvailableAudioTracks::Id, WriteCommandType::kForceWrite,
+            chip::app::DataModel::Nullable<chip::app::Clusters::ApplicationLauncher::Structs::ApplicationEPStruct::Type>>>(
+            Id, "current-app", Attributes::CurrentApp::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
+            Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
-        make_unique<WriteAttributeAsComplex<
-            chip::app::DataModel::Nullable<chip::app::Clusters::MediaPlayback::Structs::TrackStruct::Type>>>(
-            Id, "active-text-track", Attributes::ActiveTextTrack::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttributeAsComplex<chip::app::DataModel::Nullable<
-            chip::app::DataModel::List<const chip::app::Clusters::MediaPlayback::Structs::TrackStruct::Type>>>>(
-            Id, "available-text-tracks", Attributes::AvailableTextTracks::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
+            Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>(
+            Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>(
+            Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig),                                //
+        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 //
+        make_unique<SubscribeAttribute>(Id, "catalog-list", Attributes::CatalogList::Id, credsIssuerConfig),                    //
+        make_unique<SubscribeAttribute>(Id, "current-app", Attributes::CurrentApp::Id, credsIssuerConfig),                      //
+        make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
+        make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
+        make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                //
+        make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
+        make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
+        //
+        // Events
+        //
+        make_unique<ReadEvent>(Id, credsIssuerConfig),      //
+        make_unique<SubscribeEvent>(Id, credsIssuerConfig), //
+    };
+
+    commands.RegisterCluster(clusterName, clusterCommands);
+}
+void registerClusterApplicationBasic(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+{
+    using namespace chip::app::Clusters::ApplicationBasic;
+
+    const char * clusterName = "ApplicationBasic";
+
+    commands_list clusterCommands = {
+        //
+        // Commands
+        //
+        make_unique<ClusterCommand>(Id, credsIssuerConfig), //
+        //
+        // Attributes
+        //
+        make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 //
+        make_unique<ReadAttribute>(Id, "vendor-name", Attributes::VendorName::Id, credsIssuerConfig),                      //
+        make_unique<ReadAttribute>(Id, "vendor-id", Attributes::VendorID::Id, credsIssuerConfig),                          //
+        make_unique<ReadAttribute>(Id, "application-name", Attributes::ApplicationName::Id, credsIssuerConfig),            //
+        make_unique<ReadAttribute>(Id, "product-id", Attributes::ProductID::Id, credsIssuerConfig),                        //
+        make_unique<ReadAttribute>(Id, "application", Attributes::Application::Id, credsIssuerConfig),                     //
+        make_unique<ReadAttribute>(Id, "status", Attributes::Status::Id, credsIssuerConfig),                               //
+        make_unique<ReadAttribute>(Id, "application-version", Attributes::ApplicationVersion::Id, credsIssuerConfig),      //
+        make_unique<ReadAttribute>(Id, "allowed-vendor-list", Attributes::AllowedVendorList::Id, credsIssuerConfig),       //
+        make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
+        make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
+        make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                //
+        make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
+        make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
+        make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              //
+        make_unique<WriteAttribute<chip::CharSpan>>(Id, "vendor-name", Attributes::VendorName::Id, WriteCommandType::kForceWrite,
+                                                    credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::VendorId>>(Id, "vendor-id", 0, UINT16_MAX, Attributes::VendorID::Id,
+                                                    WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::CharSpan>>(Id, "application-name", Attributes::ApplicationName::Id,
+                                                    WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint16_t>>(Id, "product-id", 0, UINT16_MAX, Attributes::ProductID::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::Clusters::ApplicationBasic::Structs::ApplicationStruct::Type>>(
+            Id, "application", Attributes::Application::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::Clusters::ApplicationBasic::ApplicationStatusEnum>>(
+            Id, "status", 0, UINT8_MAX, Attributes::Status::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::CharSpan>>(Id, "application-version", Attributes::ApplicationVersion::Id,
+                                                    WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::VendorId>>>(
+            Id, "allowed-vendor-list", Attributes::AllowedVendorList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
             Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
@@ -26106,17 +28134,14 @@ void registerClusterMediaPlayback(Commands & commands, CredentialIssuerCommands
         make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
                                               WriteCommandType::kForceWrite, credsIssuerConfig),                                //
         make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 //
-        make_unique<SubscribeAttribute>(Id, "current-state", Attributes::CurrentState::Id, credsIssuerConfig),                  //
-        make_unique<SubscribeAttribute>(Id, "start-time", Attributes::StartTime::Id, credsIssuerConfig),                        //
-        make_unique<SubscribeAttribute>(Id, "duration", Attributes::Duration::Id, credsIssuerConfig),                           //
-        make_unique<SubscribeAttribute>(Id, "sampled-position", Attributes::SampledPosition::Id, credsIssuerConfig),            //
-        make_unique<SubscribeAttribute>(Id, "playback-speed", Attributes::PlaybackSpeed::Id, credsIssuerConfig),                //
-        make_unique<SubscribeAttribute>(Id, "seek-range-end", Attributes::SeekRangeEnd::Id, credsIssuerConfig),                 //
-        make_unique<SubscribeAttribute>(Id, "seek-range-start", Attributes::SeekRangeStart::Id, credsIssuerConfig),             //
-        make_unique<SubscribeAttribute>(Id, "active-audio-track", Attributes::ActiveAudioTrack::Id, credsIssuerConfig),         //
-        make_unique<SubscribeAttribute>(Id, "available-audio-tracks", Attributes::AvailableAudioTracks::Id, credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "active-text-track", Attributes::ActiveTextTrack::Id, credsIssuerConfig),           //
-        make_unique<SubscribeAttribute>(Id, "available-text-tracks", Attributes::AvailableTextTracks::Id, credsIssuerConfig),   //
+        make_unique<SubscribeAttribute>(Id, "vendor-name", Attributes::VendorName::Id, credsIssuerConfig),                      //
+        make_unique<SubscribeAttribute>(Id, "vendor-id", Attributes::VendorID::Id, credsIssuerConfig),                          //
+        make_unique<SubscribeAttribute>(Id, "application-name", Attributes::ApplicationName::Id, credsIssuerConfig),            //
+        make_unique<SubscribeAttribute>(Id, "product-id", Attributes::ProductID::Id, credsIssuerConfig),                        //
+        make_unique<SubscribeAttribute>(Id, "application", Attributes::Application::Id, credsIssuerConfig),                     //
+        make_unique<SubscribeAttribute>(Id, "status", Attributes::Status::Id, credsIssuerConfig),                               //
+        make_unique<SubscribeAttribute>(Id, "application-version", Attributes::ApplicationVersion::Id, credsIssuerConfig),      //
+        make_unique<SubscribeAttribute>(Id, "allowed-vendor-list", Attributes::AllowedVendorList::Id, credsIssuerConfig),       //
         make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -26126,35 +28151,30 @@ void registerClusterMediaPlayback(Commands & commands, CredentialIssuerCommands
         //
         // Events
         //
-        make_unique<ReadEvent>(Id, credsIssuerConfig),                                                 //
-        make_unique<ReadEvent>(Id, "state-changed", Events::StateChanged::Id, credsIssuerConfig),      //
-        make_unique<SubscribeEvent>(Id, credsIssuerConfig),                                            //
-        make_unique<SubscribeEvent>(Id, "state-changed", Events::StateChanged::Id, credsIssuerConfig), //
+        make_unique<ReadEvent>(Id, credsIssuerConfig),      //
+        make_unique<SubscribeEvent>(Id, credsIssuerConfig), //
     };
 
     commands.RegisterCluster(clusterName, clusterCommands);
 }
-void registerClusterMediaInput(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+void registerClusterAccountLogin(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
 {
-    using namespace chip::app::Clusters::MediaInput;
+    using namespace chip::app::Clusters::AccountLogin;
 
-    const char * clusterName = "MediaInput";
+    const char * clusterName = "AccountLogin";
 
     commands_list clusterCommands = {
         //
         // Commands
         //
-        make_unique<ClusterCommand>(Id, credsIssuerConfig),        //
-        make_unique<MediaInputSelectInput>(credsIssuerConfig),     //
-        make_unique<MediaInputShowInputStatus>(credsIssuerConfig), //
-        make_unique<MediaInputHideInputStatus>(credsIssuerConfig), //
-        make_unique<MediaInputRenameInput>(credsIssuerConfig),     //
+        make_unique<ClusterCommand>(Id, credsIssuerConfig),      //
+        make_unique<AccountLoginGetSetupPIN>(credsIssuerConfig), //
+        make_unique<AccountLoginLogin>(credsIssuerConfig),       //
+        make_unique<AccountLoginLogout>(credsIssuerConfig),      //
         //
         // Attributes
         //
         make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 //
-        make_unique<ReadAttribute>(Id, "input-list", Attributes::InputList::Id, credsIssuerConfig),                        //
-        make_unique<ReadAttribute>(Id, "current-input", Attributes::CurrentInput::Id, credsIssuerConfig),                  //
         make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -26162,11 +28182,6 @@ void registerClusterMediaInput(Commands & commands, CredentialIssuerCommands * c
         make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
         make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
         make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              //
-        make_unique<WriteAttributeAsComplex<
-            chip::app::DataModel::List<const chip::app::Clusters::MediaInput::Structs::InputInfoStruct::Type>>>(
-            Id, "input-list", Attributes::InputList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<uint8_t>>(Id, "current-input", 0, UINT8_MAX, Attributes::CurrentInput::Id,
-                                             WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
             Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
@@ -26181,8 +28196,6 @@ void registerClusterMediaInput(Commands & commands, CredentialIssuerCommands * c
         make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
                                               WriteCommandType::kForceWrite, credsIssuerConfig),                                //
         make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 //
-        make_unique<SubscribeAttribute>(Id, "input-list", Attributes::InputList::Id, credsIssuerConfig),                        //
-        make_unique<SubscribeAttribute>(Id, "current-input", Attributes::CurrentInput::Id, credsIssuerConfig),                  //
         make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -26192,28 +28205,48 @@ void registerClusterMediaInput(Commands & commands, CredentialIssuerCommands * c
         //
         // Events
         //
-        make_unique<ReadEvent>(Id, credsIssuerConfig),      //
-        make_unique<SubscribeEvent>(Id, credsIssuerConfig), //
+        make_unique<ReadEvent>(Id, credsIssuerConfig),                                           //
+        make_unique<ReadEvent>(Id, "logged-out", Events::LoggedOut::Id, credsIssuerConfig),      //
+        make_unique<SubscribeEvent>(Id, credsIssuerConfig),                                      //
+        make_unique<SubscribeEvent>(Id, "logged-out", Events::LoggedOut::Id, credsIssuerConfig), //
     };
 
     commands.RegisterCluster(clusterName, clusterCommands);
 }
-void registerClusterLowPower(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+void registerClusterContentControl(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
 {
-    using namespace chip::app::Clusters::LowPower;
+    using namespace chip::app::Clusters::ContentControl;
 
-    const char * clusterName = "LowPower";
+    const char * clusterName = "ContentControl";
 
     commands_list clusterCommands = {
         //
         // Commands
         //
-        make_unique<ClusterCommand>(Id, credsIssuerConfig), //
-        make_unique<LowPowerSleep>(credsIssuerConfig),      //
+        make_unique<ClusterCommand>(Id, credsIssuerConfig),                               //
+        make_unique<ContentControlUpdatePIN>(credsIssuerConfig),                          //
+        make_unique<ContentControlResetPIN>(credsIssuerConfig),                           //
+        make_unique<ContentControlEnable>(credsIssuerConfig),                             //
+        make_unique<ContentControlDisable>(credsIssuerConfig),                            //
+        make_unique<ContentControlAddBonusTime>(credsIssuerConfig),                       //
+        make_unique<ContentControlSetScreenDailyTime>(credsIssuerConfig),                 //
+        make_unique<ContentControlBlockUnratedContent>(credsIssuerConfig),                //
+        make_unique<ContentControlUnblockUnratedContent>(credsIssuerConfig),              //
+        make_unique<ContentControlSetOnDemandRatingThreshold>(credsIssuerConfig),         //
+        make_unique<ContentControlSetScheduledContentRatingThreshold>(credsIssuerConfig), //
         //
         // Attributes
         //
-        make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 //
+        make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                        //
+        make_unique<ReadAttribute>(Id, "enabled", Attributes::Enabled::Id, credsIssuerConfig),                                    //
+        make_unique<ReadAttribute>(Id, "on-demand-ratings", Attributes::OnDemandRatings::Id, credsIssuerConfig),                  //
+        make_unique<ReadAttribute>(Id, "on-demand-rating-threshold", Attributes::OnDemandRatingThreshold::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "scheduled-content-ratings", Attributes::ScheduledContentRatings::Id, credsIssuerConfig),  //
+        make_unique<ReadAttribute>(Id, "scheduled-content-rating-threshold", Attributes::ScheduledContentRatingThreshold::Id,
+                                   credsIssuerConfig),                                                                     //
+        make_unique<ReadAttribute>(Id, "screen-daily-time", Attributes::ScreenDailyTime::Id, credsIssuerConfig),           //
+        make_unique<ReadAttribute>(Id, "remaining-screen-time", Attributes::RemainingScreenTime::Id, credsIssuerConfig),   //
+        make_unique<ReadAttribute>(Id, "block-unrated", Attributes::BlockUnrated::Id, credsIssuerConfig),                  //
         make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -26221,6 +28254,26 @@ void registerClusterLowPower(Commands & commands, CredentialIssuerCommands * cre
         make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
         make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
         make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              //
+        make_unique<WriteAttribute<bool>>(Id, "enabled", 0, 1, Attributes::Enabled::Id, WriteCommandType::kForceWrite,
+                                          credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<
+            chip::app::DataModel::List<const chip::app::Clusters::ContentControl::Structs::RatingNameStruct::Type>>>(
+            Id, "on-demand-ratings", Attributes::OnDemandRatings::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::CharSpan>>(Id, "on-demand-rating-threshold", Attributes::OnDemandRatingThreshold::Id,
+                                                    WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<
+            chip::app::DataModel::List<const chip::app::Clusters::ContentControl::Structs::RatingNameStruct::Type>>>(
+            Id, "scheduled-content-ratings", Attributes::ScheduledContentRatings::Id, WriteCommandType::kForceWrite,
+            credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::CharSpan>>(Id, "scheduled-content-rating-threshold",
+                                                    Attributes::ScheduledContentRatingThreshold::Id, WriteCommandType::kForceWrite,
+                                                    credsIssuerConfig), //
+        make_unique<WriteAttribute<uint32_t>>(Id, "screen-daily-time", 0, UINT32_MAX, Attributes::ScreenDailyTime::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint32_t>>(Id, "remaining-screen-time", 0, UINT32_MAX, Attributes::RemainingScreenTime::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<bool>>(Id, "block-unrated", 0, 1, Attributes::BlockUnrated::Id, WriteCommandType::kForceWrite,
+                                          credsIssuerConfig), //
         make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
             Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
@@ -26233,8 +28286,19 @@ void registerClusterLowPower(Commands & commands, CredentialIssuerCommands * cre
         make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id,
                                               WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
-                                              WriteCommandType::kForceWrite, credsIssuerConfig),                                //
-        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 //
+                                              WriteCommandType::kForceWrite, credsIssuerConfig),                      //
+        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                       //
+        make_unique<SubscribeAttribute>(Id, "enabled", Attributes::Enabled::Id, credsIssuerConfig),                   //
+        make_unique<SubscribeAttribute>(Id, "on-demand-ratings", Attributes::OnDemandRatings::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "on-demand-rating-threshold", Attributes::OnDemandRatingThreshold::Id,
+                                        credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "scheduled-content-ratings", Attributes::ScheduledContentRatings::Id,
+                                        credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "scheduled-content-rating-threshold", Attributes::ScheduledContentRatingThreshold::Id,
+                                        credsIssuerConfig),                                                                     //
+        make_unique<SubscribeAttribute>(Id, "screen-daily-time", Attributes::ScreenDailyTime::Id, credsIssuerConfig),           //
+        make_unique<SubscribeAttribute>(Id, "remaining-screen-time", Attributes::RemainingScreenTime::Id, credsIssuerConfig),   //
+        make_unique<SubscribeAttribute>(Id, "block-unrated", Attributes::BlockUnrated::Id, credsIssuerConfig),                  //
         make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -26244,24 +28308,27 @@ void registerClusterLowPower(Commands & commands, CredentialIssuerCommands * cre
         //
         // Events
         //
-        make_unique<ReadEvent>(Id, credsIssuerConfig),      //
-        make_unique<SubscribeEvent>(Id, credsIssuerConfig), //
+        make_unique<ReadEvent>(Id, credsIssuerConfig),                                                                          //
+        make_unique<ReadEvent>(Id, "remaining-screen-time-expired", Events::RemainingScreenTimeExpired::Id, credsIssuerConfig), //
+        make_unique<SubscribeEvent>(Id, credsIssuerConfig),                                                                     //
+        make_unique<SubscribeEvent>(Id, "remaining-screen-time-expired", Events::RemainingScreenTimeExpired::Id,
+                                    credsIssuerConfig), //
     };
 
     commands.RegisterCluster(clusterName, clusterCommands);
 }
-void registerClusterKeypadInput(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+void registerClusterContentAppObserver(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
 {
-    using namespace chip::app::Clusters::KeypadInput;
+    using namespace chip::app::Clusters::ContentAppObserver;
 
-    const char * clusterName = "KeypadInput";
+    const char * clusterName = "ContentAppObserver";
 
     commands_list clusterCommands = {
         //
         // Commands
         //
-        make_unique<ClusterCommand>(Id, credsIssuerConfig), //
-        make_unique<KeypadInputSendKey>(credsIssuerConfig), //
+        make_unique<ClusterCommand>(Id, credsIssuerConfig),                  //
+        make_unique<ContentAppObserverContentAppMessage>(credsIssuerConfig), //
         //
         // Attributes
         //
@@ -26302,38 +28369,225 @@ void registerClusterKeypadInput(Commands & commands, CredentialIssuerCommands *
 
     commands.RegisterCluster(clusterName, clusterCommands);
 }
-void registerClusterContentLauncher(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+void registerClusterCameraAvStreamManagement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
 {
-    using namespace chip::app::Clusters::ContentLauncher;
+    using namespace chip::app::Clusters::CameraAvStreamManagement;
 
-    const char * clusterName = "ContentLauncher";
+    const char * clusterName = "CameraAvStreamManagement";
 
     commands_list clusterCommands = {
         //
         // Commands
         //
-        make_unique<ClusterCommand>(Id, credsIssuerConfig),           //
-        make_unique<ContentLauncherLaunchContent>(credsIssuerConfig), //
-        make_unique<ContentLauncherLaunchURL>(credsIssuerConfig),     //
+        make_unique<ClusterCommand>(Id, credsIssuerConfig),                               //
+        make_unique<CameraAvStreamManagementAudioStreamAllocate>(credsIssuerConfig),      //
+        make_unique<CameraAvStreamManagementAudioStreamDeallocate>(credsIssuerConfig),    //
+        make_unique<CameraAvStreamManagementVideoStreamAllocate>(credsIssuerConfig),      //
+        make_unique<CameraAvStreamManagementVideoStreamModify>(credsIssuerConfig),        //
+        make_unique<CameraAvStreamManagementVideoStreamDeallocate>(credsIssuerConfig),    //
+        make_unique<CameraAvStreamManagementSnapshotStreamAllocate>(credsIssuerConfig),   //
+        make_unique<CameraAvStreamManagementSnapshotStreamDeallocate>(credsIssuerConfig), //
+        make_unique<CameraAvStreamManagementSetStreamPriority>(credsIssuerConfig),        //
+        make_unique<CameraAvStreamManagementCaptureSnapshot>(credsIssuerConfig),          //
+        make_unique<CameraAvStreamManagementSetViewport>(credsIssuerConfig),              //
+        make_unique<CameraAvStreamManagementSetImageRotation>(credsIssuerConfig),         //
+        make_unique<CameraAvStreamManagementSetImageFlipHorizontal>(credsIssuerConfig),   //
+        make_unique<CameraAvStreamManagementSetImageFlipVertical>(credsIssuerConfig),     //
         //
         // Attributes
         //
-        make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                //
-        make_unique<ReadAttribute>(Id, "accept-header", Attributes::AcceptHeader::Id, credsIssuerConfig), //
-        make_unique<ReadAttribute>(Id, "supported-streaming-protocols", Attributes::SupportedStreamingProtocols::Id,
-                                   credsIssuerConfig),                                                                     //
-        make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
-        make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
-        make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
-        make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                //
-        make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
-        make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
-        make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              //
-        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CharSpan>>>(
-            Id, "accept-header", Attributes::AcceptHeader::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::BitMask<chip::app::Clusters::ContentLauncher::SupportedProtocolsBitmap>>>(
-            Id, "supported-streaming-protocols", 0, UINT32_MAX, Attributes::SupportedStreamingProtocols::Id,
-            WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "max-concurrent-video-encoders", Attributes::MaxConcurrentVideoEncoders::Id,
+                                   credsIssuerConfig),                                                                    //
+        make_unique<ReadAttribute>(Id, "max-encoded-pixel-rate", Attributes::MaxEncodedPixelRate::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "video-sensor-params", Attributes::VideoSensorParams::Id, credsIssuerConfig),      //
+        make_unique<ReadAttribute>(Id, "night-vision-capable", Attributes::NightVisionCapable::Id, credsIssuerConfig),    //
+        make_unique<ReadAttribute>(Id, "min-view-port-width", Attributes::MinViewPortWidth::Id, credsIssuerConfig),       //
+        make_unique<ReadAttribute>(Id, "min-view-port-height", Attributes::MinViewPortHeight::Id, credsIssuerConfig),     //
+        make_unique<ReadAttribute>(Id, "rate-distortion-trade-off-points", Attributes::RateDistortionTradeOffPoints::Id,
+                                   credsIssuerConfig),                                                                           //
+        make_unique<ReadAttribute>(Id, "max-pre-roll-buffer-size", Attributes::MaxPreRollBufferSize::Id, credsIssuerConfig),     //
+        make_unique<ReadAttribute>(Id, "microphone-capabilities", Attributes::MicrophoneCapabilities::Id, credsIssuerConfig),    //
+        make_unique<ReadAttribute>(Id, "speaker-capabilities", Attributes::SpeakerCapabilities::Id, credsIssuerConfig),          //
+        make_unique<ReadAttribute>(Id, "two-way-talk-support", Attributes::TwoWayTalkSupport::Id, credsIssuerConfig),            //
+        make_unique<ReadAttribute>(Id, "supported-snapshot-params", Attributes::SupportedSnapshotParams::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "hdrcapable", Attributes::HDRCapable::Id, credsIssuerConfig),                             //
+        make_unique<ReadAttribute>(Id, "max-network-bandwidth", Attributes::MaxNetworkBandwidth::Id, credsIssuerConfig),         //
+        make_unique<ReadAttribute>(Id, "current-frame-rate", Attributes::CurrentFrameRate::Id, credsIssuerConfig),               //
+        make_unique<ReadAttribute>(Id, "hdrmode", Attributes::HDRMode::Id, credsIssuerConfig),                                   //
+        make_unique<ReadAttribute>(Id, "current-video-codecs", Attributes::CurrentVideoCodecs::Id, credsIssuerConfig),           //
+        make_unique<ReadAttribute>(Id, "current-snapshot-config", Attributes::CurrentSnapshotConfig::Id, credsIssuerConfig),     //
+        make_unique<ReadAttribute>(Id, "fabrics-using-camera", Attributes::FabricsUsingCamera::Id, credsIssuerConfig),           //
+        make_unique<ReadAttribute>(Id, "allocated-video-streams", Attributes::AllocatedVideoStreams::Id, credsIssuerConfig),     //
+        make_unique<ReadAttribute>(Id, "allocated-audio-streams", Attributes::AllocatedAudioStreams::Id, credsIssuerConfig),     //
+        make_unique<ReadAttribute>(Id, "allocated-snapshot-streams", Attributes::AllocatedSnapshotStreams::Id,
+                                   credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "ranked-video-stream-priorities-list", Attributes::RankedVideoStreamPrioritiesList::Id,
+                                   credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "soft-recording-privacy-mode-setting", Attributes::SoftRecordingPrivacyModeSetting::Id,
+                                   credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "soft-livestream-privacy-mode-setting", Attributes::SoftLivestreamPrivacyModeSetting::Id,
+                                   credsIssuerConfig),                                                                   //
+        make_unique<ReadAttribute>(Id, "hard-privacy-mode", Attributes::HardPrivacyMode::Id, credsIssuerConfig),         //
+        make_unique<ReadAttribute>(Id, "night-vision", Attributes::NightVision::Id, credsIssuerConfig),                  //
+        make_unique<ReadAttribute>(Id, "night-vision-illum", Attributes::NightVisionIllum::Id, credsIssuerConfig),       //
+        make_unique<ReadAttribute>(Id, "awb", Attributes::Awb::Id, credsIssuerConfig),                                   //
+        make_unique<ReadAttribute>(Id, "shutter-speed", Attributes::ShutterSpeed::Id, credsIssuerConfig),                //
+        make_unique<ReadAttribute>(Id, "iso", Attributes::Iso::Id, credsIssuerConfig),                                   //
+        make_unique<ReadAttribute>(Id, "viewport", Attributes::Viewport::Id, credsIssuerConfig),                         //
+        make_unique<ReadAttribute>(Id, "spkr-on-off", Attributes::SpkrOnOff::Id, credsIssuerConfig),                     //
+        make_unique<ReadAttribute>(Id, "spkr-volume-level", Attributes::SpkrVolumeLevel::Id, credsIssuerConfig),         //
+        make_unique<ReadAttribute>(Id, "spkr-max-level", Attributes::SpkrMaxLevel::Id, credsIssuerConfig),               //
+        make_unique<ReadAttribute>(Id, "spkr-min-level", Attributes::SpkrMinLevel::Id, credsIssuerConfig),               //
+        make_unique<ReadAttribute>(Id, "mic-on-off", Attributes::MicOnOff::Id, credsIssuerConfig),                       //
+        make_unique<ReadAttribute>(Id, "mic-current-level", Attributes::MicCurrentLevel::Id, credsIssuerConfig),         //
+        make_unique<ReadAttribute>(Id, "mic-max-level", Attributes::MicMaxLevel::Id, credsIssuerConfig),                 //
+        make_unique<ReadAttribute>(Id, "mic-min-level", Attributes::MicMinLevel::Id, credsIssuerConfig),                 //
+        make_unique<ReadAttribute>(Id, "mic-agc", Attributes::MicAGC::Id, credsIssuerConfig),                            //
+        make_unique<ReadAttribute>(Id, "image-rotation", Attributes::ImageRotation::Id, credsIssuerConfig),              //
+        make_unique<ReadAttribute>(Id, "image-flip-horizontal", Attributes::ImageFlipHorizontal::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "image-flip-vertical", Attributes::ImageFlipVertical::Id, credsIssuerConfig),     //
+        make_unique<ReadAttribute>(Id, "local-video-recording-enabled", Attributes::LocalVideoRecordingEnabled::Id,
+                                   credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "local-snapshot-recording-enabled", Attributes::LocalSnapshotRecordingEnabled::Id,
+                                   credsIssuerConfig),                                                                       //
+        make_unique<ReadAttribute>(Id, "status-light", Attributes::StatusLight::Id, credsIssuerConfig),                      //
+        make_unique<ReadAttribute>(Id, "status-light-brightness", Attributes::StatusLightBrightness::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "depth-sensor-status", Attributes::DepthSensorStatus::Id, credsIssuerConfig),         //
+        make_unique<ReadAttribute>(Id, "watermark-enabled", Attributes::WatermarkEnabled::Id, credsIssuerConfig),            //
+        make_unique<ReadAttribute>(Id, "osdenabled", Attributes::OSDEnabled::Id, credsIssuerConfig),                         //
+        make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig),   //
+        make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),     //
+        make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                          //
+        make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                  //
+        make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                        //
+        make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),              //
+        make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                                //
+        make_unique<WriteAttribute<uint8_t>>(Id, "max-concurrent-video-encoders", 0, UINT8_MAX,
+                                             Attributes::MaxConcurrentVideoEncoders::Id, WriteCommandType::kForceWrite,
+                                             credsIssuerConfig), //
+        make_unique<WriteAttribute<uint32_t>>(Id, "max-encoded-pixel-rate", 0, UINT32_MAX, Attributes::MaxEncodedPixelRate::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::Clusters::CameraAvStreamManagement::Structs::VideoSensorParamsStruct::Type>>(
+            Id, "video-sensor-params", Attributes::VideoSensorParams::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<bool>>(Id, "night-vision-capable", 0, 1, Attributes::NightVisionCapable::Id,
+                                          WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::Clusters::CameraAvStreamManagement::Structs::DimensionStruct::Type>>(
+            Id, "min-view-port-width", Attributes::MinViewPortWidth::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::Clusters::CameraAvStreamManagement::Structs::DimensionStruct::Type>>(
+            Id, "min-view-port-height", Attributes::MinViewPortHeight::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<
+            const chip::app::Clusters::CameraAvStreamManagement::Structs::RateDistortionTradeOffPointsStruct::Type>>>(
+            Id, "rate-distortion-trade-off-points", Attributes::RateDistortionTradeOffPoints::Id, WriteCommandType::kForceWrite,
+            credsIssuerConfig), //
+        make_unique<WriteAttribute<uint32_t>>(Id, "max-pre-roll-buffer-size", 0, UINT32_MAX, Attributes::MaxPreRollBufferSize::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::Clusters::CameraAvStreamManagement::Structs::AudioCapabilitiesStruct::Type>>(
+            Id, "microphone-capabilities", Attributes::MicrophoneCapabilities::Id, WriteCommandType::kForceWrite,
+            credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::Clusters::CameraAvStreamManagement::Structs::AudioCapabilitiesStruct::Type>>(
+            Id, "speaker-capabilities", Attributes::SpeakerCapabilities::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::Clusters::CameraAvStreamManagement::TwowayTalkSupportTypeEnum>>(
+            Id, "two-way-talk-support", 0, UINT8_MAX, Attributes::TwoWayTalkSupport::Id, WriteCommandType::kForceWrite,
+            credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<
+            chip::app::DataModel::List<const chip::app::Clusters::CameraAvStreamManagement::Structs::SnapshotParamsStruct::Type>>>(
+            Id, "supported-snapshot-params", Attributes::SupportedSnapshotParams::Id, WriteCommandType::kForceWrite,
+            credsIssuerConfig), //
+        make_unique<WriteAttribute<bool>>(Id, "hdrcapable", 0, 1, Attributes::HDRCapable::Id, WriteCommandType::kForceWrite,
+                                          credsIssuerConfig), //
+        make_unique<WriteAttribute<uint32_t>>(Id, "max-network-bandwidth", 0, UINT32_MAX, Attributes::MaxNetworkBandwidth::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint16_t>>(Id, "current-frame-rate", 0, UINT16_MAX, Attributes::CurrentFrameRate::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<bool>>(Id, "hdrmode", 0, 1, Attributes::HDRMode::Id, WriteCommandType::kWrite,
+                                          credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<
+            chip::app::DataModel::List<const chip::app::Clusters::CameraAvStreamManagement::VideoCodecEnum>>>(
+            Id, "current-video-codecs", Attributes::CurrentVideoCodecs::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::Clusters::CameraAvStreamManagement::Structs::SnapshotParamsStruct::Type>>(
+            Id, "current-snapshot-config", Attributes::CurrentSnapshotConfig::Id, WriteCommandType::kForceWrite,
+            credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::FabricIndex>>>(
+            Id, "fabrics-using-camera", Attributes::FabricsUsingCamera::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<
+            chip::app::DataModel::List<const chip::app::Clusters::CameraAvStreamManagement::Structs::VideoStreamStruct::Type>>>(
+            Id, "allocated-video-streams", Attributes::AllocatedVideoStreams::Id, WriteCommandType::kForceWrite,
+            credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<
+            chip::app::DataModel::List<const chip::app::Clusters::CameraAvStreamManagement::Structs::AudioStreamStruct::Type>>>(
+            Id, "allocated-audio-streams", Attributes::AllocatedAudioStreams::Id, WriteCommandType::kForceWrite,
+            credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<
+            chip::app::DataModel::List<const chip::app::Clusters::CameraAvStreamManagement::Structs::SnapshotStreamStruct::Type>>>(
+            Id, "allocated-snapshot-streams", Attributes::AllocatedSnapshotStreams::Id, WriteCommandType::kForceWrite,
+            credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<
+            chip::app::DataModel::List<const chip::app::Clusters::CameraAvStreamManagement::StreamTypeEnum>>>(
+            Id, "ranked-video-stream-priorities-list", Attributes::RankedVideoStreamPrioritiesList::Id, WriteCommandType::kWrite,
+            credsIssuerConfig), //
+        make_unique<WriteAttribute<bool>>(Id, "soft-recording-privacy-mode-setting", 0, 1,
+                                          Attributes::SoftRecordingPrivacyModeSetting::Id, WriteCommandType::kWrite,
+                                          credsIssuerConfig), //
+        make_unique<WriteAttribute<bool>>(Id, "soft-livestream-privacy-mode-setting", 0, 1,
+                                          Attributes::SoftLivestreamPrivacyModeSetting::Id, WriteCommandType::kWrite,
+                                          credsIssuerConfig), //
+        make_unique<WriteAttribute<bool>>(Id, "hard-privacy-mode", 0, 1, Attributes::HardPrivacyMode::Id,
+                                          WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::Clusters::CameraAvStreamManagement::TriStateAuto>>(
+            Id, "night-vision", 0, UINT8_MAX, Attributes::NightVision::Id, WriteCommandType::kWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::Clusters::CameraAvStreamManagement::TriStateAuto>>(
+            Id, "night-vision-illum", 0, UINT8_MAX, Attributes::NightVisionIllum::Id, WriteCommandType::kWrite,
+            credsIssuerConfig),                                                                                               //
+        make_unique<WriteAttribute<bool>>(Id, "awb", 0, 1, Attributes::Awb::Id, WriteCommandType::kWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<bool>>(Id, "shutter-speed", 0, 1, Attributes::ShutterSpeed::Id, WriteCommandType::kWrite,
+                                          credsIssuerConfig),                                                                 //
+        make_unique<WriteAttribute<bool>>(Id, "iso", 0, 1, Attributes::Iso::Id, WriteCommandType::kWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::Clusters::CameraAvStreamManagement::Structs::ViewportStruct::Type>>(
+            Id, "viewport", Attributes::Viewport::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<bool>>(Id, "spkr-on-off", 0, 1, Attributes::SpkrOnOff::Id, WriteCommandType::kWrite,
+                                          credsIssuerConfig), //
+        make_unique<WriteAttribute<uint8_t>>(Id, "spkr-volume-level", 0, UINT8_MAX, Attributes::SpkrVolumeLevel::Id,
+                                             WriteCommandType::kWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint8_t>>(Id, "spkr-max-level", 0, UINT8_MAX, Attributes::SpkrMaxLevel::Id,
+                                             WriteCommandType::kWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint8_t>>(Id, "spkr-min-level", 0, UINT8_MAX, Attributes::SpkrMinLevel::Id,
+                                             WriteCommandType::kWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<bool>>(Id, "mic-on-off", 0, 1, Attributes::MicOnOff::Id, WriteCommandType::kWrite,
+                                          credsIssuerConfig), //
+        make_unique<WriteAttribute<uint8_t>>(Id, "mic-current-level", 0, UINT8_MAX, Attributes::MicCurrentLevel::Id,
+                                             WriteCommandType::kWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint8_t>>(Id, "mic-max-level", 0, UINT8_MAX, Attributes::MicMaxLevel::Id,
+                                             WriteCommandType::kWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint8_t>>(Id, "mic-min-level", 0, UINT8_MAX, Attributes::MicMinLevel::Id,
+                                             WriteCommandType::kWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<bool>>(Id, "mic-agc", 0, 1, Attributes::MicAGC::Id, WriteCommandType::kWrite,
+                                          credsIssuerConfig), //
+        make_unique<WriteAttribute<uint16_t>>(Id, "image-rotation", 0, UINT16_MAX, Attributes::ImageRotation::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<bool>>(Id, "image-flip-horizontal", 0, 1, Attributes::ImageFlipHorizontal::Id,
+                                          WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<bool>>(Id, "image-flip-vertical", 0, 1, Attributes::ImageFlipVertical::Id,
+                                          WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<bool>>(Id, "local-video-recording-enabled", 0, 1, Attributes::LocalVideoRecordingEnabled::Id,
+                                          WriteCommandType::kWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<bool>>(Id, "local-snapshot-recording-enabled", 0, 1,
+                                          Attributes::LocalSnapshotRecordingEnabled::Id, WriteCommandType::kWrite,
+                                          credsIssuerConfig), //
+        make_unique<WriteAttribute<bool>>(Id, "status-light", 0, 1, Attributes::StatusLight::Id, WriteCommandType::kWrite,
+                                          credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::Clusters::Globals::ThreeLevelAutoEnum>>(
+            Id, "status-light-brightness", 0, UINT8_MAX, Attributes::StatusLightBrightness::Id, WriteCommandType::kWrite,
+            credsIssuerConfig), //
+        make_unique<WriteAttribute<chip::app::Clusters::CameraAvStreamManagement::TriStateAuto>>(
+            Id, "depth-sensor-status", 0, UINT8_MAX, Attributes::DepthSensorStatus::Id, WriteCommandType::kWrite,
+            credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<
+            chip::app::DataModel::List<const chip::app::Clusters::CameraAvStreamManagement::Structs::PerStreamStruct::Type>>>(
+            Id, "watermark-enabled", Attributes::WatermarkEnabled::Id, WriteCommandType::kWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<
+            chip::app::DataModel::List<const chip::app::Clusters::CameraAvStreamManagement::Structs::PerStreamStruct::Type>>>(
+            Id, "osdenabled", Attributes::OSDEnabled::Id, WriteCommandType::kWrite, credsIssuerConfig), //
         make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
             Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
@@ -26346,45 +28600,115 @@ void registerClusterContentLauncher(Commands & commands, CredentialIssuerCommand
         make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id,
                                               WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
-                                              WriteCommandType::kForceWrite, credsIssuerConfig),               //
-        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                //
-        make_unique<SubscribeAttribute>(Id, "accept-header", Attributes::AcceptHeader::Id, credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "supported-streaming-protocols", Attributes::SupportedStreamingProtocols::Id,
-                                        credsIssuerConfig),                                                                     //
-        make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
-        make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
-        make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                //
-        make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
-        make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
+                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                  //
+        make_unique<SubscribeAttribute>(Id, "max-concurrent-video-encoders", Attributes::MaxConcurrentVideoEncoders::Id,
+                                        credsIssuerConfig),                                                                    //
+        make_unique<SubscribeAttribute>(Id, "max-encoded-pixel-rate", Attributes::MaxEncodedPixelRate::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "video-sensor-params", Attributes::VideoSensorParams::Id, credsIssuerConfig),      //
+        make_unique<SubscribeAttribute>(Id, "night-vision-capable", Attributes::NightVisionCapable::Id, credsIssuerConfig),    //
+        make_unique<SubscribeAttribute>(Id, "min-view-port-width", Attributes::MinViewPortWidth::Id, credsIssuerConfig),       //
+        make_unique<SubscribeAttribute>(Id, "min-view-port-height", Attributes::MinViewPortHeight::Id, credsIssuerConfig),     //
+        make_unique<SubscribeAttribute>(Id, "rate-distortion-trade-off-points", Attributes::RateDistortionTradeOffPoints::Id,
+                                        credsIssuerConfig),                                                                       //
+        make_unique<SubscribeAttribute>(Id, "max-pre-roll-buffer-size", Attributes::MaxPreRollBufferSize::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "microphone-capabilities", Attributes::MicrophoneCapabilities::Id,
+                                        credsIssuerConfig),                                                                  //
+        make_unique<SubscribeAttribute>(Id, "speaker-capabilities", Attributes::SpeakerCapabilities::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "two-way-talk-support", Attributes::TwoWayTalkSupport::Id, credsIssuerConfig),   //
+        make_unique<SubscribeAttribute>(Id, "supported-snapshot-params", Attributes::SupportedSnapshotParams::Id,
+                                        credsIssuerConfig),                                                                       //
+        make_unique<SubscribeAttribute>(Id, "hdrcapable", Attributes::HDRCapable::Id, credsIssuerConfig),                         //
+        make_unique<SubscribeAttribute>(Id, "max-network-bandwidth", Attributes::MaxNetworkBandwidth::Id, credsIssuerConfig),     //
+        make_unique<SubscribeAttribute>(Id, "current-frame-rate", Attributes::CurrentFrameRate::Id, credsIssuerConfig),           //
+        make_unique<SubscribeAttribute>(Id, "hdrmode", Attributes::HDRMode::Id, credsIssuerConfig),                               //
+        make_unique<SubscribeAttribute>(Id, "current-video-codecs", Attributes::CurrentVideoCodecs::Id, credsIssuerConfig),       //
+        make_unique<SubscribeAttribute>(Id, "current-snapshot-config", Attributes::CurrentSnapshotConfig::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "fabrics-using-camera", Attributes::FabricsUsingCamera::Id, credsIssuerConfig),       //
+        make_unique<SubscribeAttribute>(Id, "allocated-video-streams", Attributes::AllocatedVideoStreams::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "allocated-audio-streams", Attributes::AllocatedAudioStreams::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "allocated-snapshot-streams", Attributes::AllocatedSnapshotStreams::Id,
+                                        credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "ranked-video-stream-priorities-list", Attributes::RankedVideoStreamPrioritiesList::Id,
+                                        credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "soft-recording-privacy-mode-setting", Attributes::SoftRecordingPrivacyModeSetting::Id,
+                                        credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "soft-livestream-privacy-mode-setting",
+                                        Attributes::SoftLivestreamPrivacyModeSetting::Id, credsIssuerConfig),                 //
+        make_unique<SubscribeAttribute>(Id, "hard-privacy-mode", Attributes::HardPrivacyMode::Id, credsIssuerConfig),         //
+        make_unique<SubscribeAttribute>(Id, "night-vision", Attributes::NightVision::Id, credsIssuerConfig),                  //
+        make_unique<SubscribeAttribute>(Id, "night-vision-illum", Attributes::NightVisionIllum::Id, credsIssuerConfig),       //
+        make_unique<SubscribeAttribute>(Id, "awb", Attributes::Awb::Id, credsIssuerConfig),                                   //
+        make_unique<SubscribeAttribute>(Id, "shutter-speed", Attributes::ShutterSpeed::Id, credsIssuerConfig),                //
+        make_unique<SubscribeAttribute>(Id, "iso", Attributes::Iso::Id, credsIssuerConfig),                                   //
+        make_unique<SubscribeAttribute>(Id, "viewport", Attributes::Viewport::Id, credsIssuerConfig),                         //
+        make_unique<SubscribeAttribute>(Id, "spkr-on-off", Attributes::SpkrOnOff::Id, credsIssuerConfig),                     //
+        make_unique<SubscribeAttribute>(Id, "spkr-volume-level", Attributes::SpkrVolumeLevel::Id, credsIssuerConfig),         //
+        make_unique<SubscribeAttribute>(Id, "spkr-max-level", Attributes::SpkrMaxLevel::Id, credsIssuerConfig),               //
+        make_unique<SubscribeAttribute>(Id, "spkr-min-level", Attributes::SpkrMinLevel::Id, credsIssuerConfig),               //
+        make_unique<SubscribeAttribute>(Id, "mic-on-off", Attributes::MicOnOff::Id, credsIssuerConfig),                       //
+        make_unique<SubscribeAttribute>(Id, "mic-current-level", Attributes::MicCurrentLevel::Id, credsIssuerConfig),         //
+        make_unique<SubscribeAttribute>(Id, "mic-max-level", Attributes::MicMaxLevel::Id, credsIssuerConfig),                 //
+        make_unique<SubscribeAttribute>(Id, "mic-min-level", Attributes::MicMinLevel::Id, credsIssuerConfig),                 //
+        make_unique<SubscribeAttribute>(Id, "mic-agc", Attributes::MicAGC::Id, credsIssuerConfig),                            //
+        make_unique<SubscribeAttribute>(Id, "image-rotation", Attributes::ImageRotation::Id, credsIssuerConfig),              //
+        make_unique<SubscribeAttribute>(Id, "image-flip-horizontal", Attributes::ImageFlipHorizontal::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "image-flip-vertical", Attributes::ImageFlipVertical::Id, credsIssuerConfig),     //
+        make_unique<SubscribeAttribute>(Id, "local-video-recording-enabled", Attributes::LocalVideoRecordingEnabled::Id,
+                                        credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "local-snapshot-recording-enabled", Attributes::LocalSnapshotRecordingEnabled::Id,
+                                        credsIssuerConfig),                                                                       //
+        make_unique<SubscribeAttribute>(Id, "status-light", Attributes::StatusLight::Id, credsIssuerConfig),                      //
+        make_unique<SubscribeAttribute>(Id, "status-light-brightness", Attributes::StatusLightBrightness::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "depth-sensor-status", Attributes::DepthSensorStatus::Id, credsIssuerConfig),         //
+        make_unique<SubscribeAttribute>(Id, "watermark-enabled", Attributes::WatermarkEnabled::Id, credsIssuerConfig),            //
+        make_unique<SubscribeAttribute>(Id, "osdenabled", Attributes::OSDEnabled::Id, credsIssuerConfig),                         //
+        make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig),   //
+        make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),     //
+        make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                          //
+        make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                  //
+        make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                        //
+        make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),              //
         //
         // Events
         //
-        make_unique<ReadEvent>(Id, credsIssuerConfig),      //
-        make_unique<SubscribeEvent>(Id, credsIssuerConfig), //
+        make_unique<ReadEvent>(Id, credsIssuerConfig),                                                                    //
+        make_unique<ReadEvent>(Id, "video-stream-changed", Events::VideoStreamChanged::Id, credsIssuerConfig),            //
+        make_unique<ReadEvent>(Id, "audio-stream-changed", Events::AudioStreamChanged::Id, credsIssuerConfig),            //
+        make_unique<ReadEvent>(Id, "snapshot-stream-changed", Events::SnapshotStreamChanged::Id, credsIssuerConfig),      //
+        make_unique<SubscribeEvent>(Id, credsIssuerConfig),                                                               //
+        make_unique<SubscribeEvent>(Id, "video-stream-changed", Events::VideoStreamChanged::Id, credsIssuerConfig),       //
+        make_unique<SubscribeEvent>(Id, "audio-stream-changed", Events::AudioStreamChanged::Id, credsIssuerConfig),       //
+        make_unique<SubscribeEvent>(Id, "snapshot-stream-changed", Events::SnapshotStreamChanged::Id, credsIssuerConfig), //
     };
 
     commands.RegisterCluster(clusterName, clusterCommands);
 }
-void registerClusterAudioOutput(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+void registerClusterCameraAvSettingsUserLevelManagement(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
 {
-    using namespace chip::app::Clusters::AudioOutput;
+    using namespace chip::app::Clusters::CameraAvSettingsUserLevelManagement;
 
-    const char * clusterName = "AudioOutput";
+    const char * clusterName = "CameraAvSettingsUserLevelManagement";
 
     commands_list clusterCommands = {
         //
         // Commands
         //
-        make_unique<ClusterCommand>(Id, credsIssuerConfig),      //
-        make_unique<AudioOutputSelectOutput>(credsIssuerConfig), //
-        make_unique<AudioOutputRenameOutput>(credsIssuerConfig), //
+        make_unique<ClusterCommand>(Id, credsIssuerConfig),                                  //
+        make_unique<CameraAvSettingsUserLevelManagementMptzSet>(credsIssuerConfig),          //
+        make_unique<CameraAvSettingsUserLevelManagementMptzRelativeMove>(credsIssuerConfig), //
+        make_unique<CameraAvSettingsUserLevelManagementSetAsPreset>(credsIssuerConfig),      //
+        make_unique<CameraAvSettingsUserLevelManagementDptzSetViewport>(credsIssuerConfig),  //
+        make_unique<CameraAvSettingsUserLevelManagementDptzRelativeMove>(credsIssuerConfig), //
         //
         // Attributes
         //
         make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 //
-        make_unique<ReadAttribute>(Id, "output-list", Attributes::OutputList::Id, credsIssuerConfig),                      //
-        make_unique<ReadAttribute>(Id, "current-output", Attributes::CurrentOutput::Id, credsIssuerConfig),                //
+        make_unique<ReadAttribute>(Id, "mptz", Attributes::Mptz::Id, credsIssuerConfig),                                   //
+        make_unique<ReadAttribute>(Id, "max-presets", Attributes::MaxPresets::Id, credsIssuerConfig),                      //
+        make_unique<ReadAttribute>(Id, "preset-mptz-table", Attributes::PresetMptzTable::Id, credsIssuerConfig),           //
+        make_unique<ReadAttribute>(Id, "mptz-relative-move", Attributes::MptzRelativeMove::Id, credsIssuerConfig),         //
+        make_unique<ReadAttribute>(Id, "dptz-relative-move", Attributes::DptzRelativeMove::Id, credsIssuerConfig),         //
         make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -26392,11 +28716,18 @@ void registerClusterAudioOutput(Commands & commands, CredentialIssuerCommands *
         make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
         make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
         make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              //
-        make_unique<WriteAttributeAsComplex<
-            chip::app::DataModel::List<const chip::app::Clusters::AudioOutput::Structs::OutputInfoStruct::Type>>>(
-            Id, "output-list", Attributes::OutputList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<uint8_t>>(Id, "current-output", 0, UINT8_MAX, Attributes::CurrentOutput::Id,
+        make_unique<WriteAttributeAsComplex<chip::app::Clusters::CameraAvSettingsUserLevelManagement::Structs::MPTZStruct::Type>>(
+            Id, "mptz", Attributes::Mptz::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<uint8_t>>(Id, "max-presets", 0, UINT8_MAX, Attributes::MaxPresets::Id,
                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<
+            chip::app::DataModel::List<const chip::app::Clusters::CameraAvSettingsUserLevelManagement::Structs::MPTZStruct::Type>>>(
+            Id, "preset-mptz-table", Attributes::PresetMptzTable::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<bool>>(Id, "mptz-relative-move", 0, 1, Attributes::MptzRelativeMove::Id,
+                                          WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<
+            const chip::app::Clusters::CameraAvSettingsUserLevelManagement::Structs::PerStreamStruct::Type>>>(
+            Id, "dptz-relative-move", Attributes::DptzRelativeMove::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
             Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
@@ -26411,8 +28742,11 @@ void registerClusterAudioOutput(Commands & commands, CredentialIssuerCommands *
         make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
                                               WriteCommandType::kForceWrite, credsIssuerConfig),                                //
         make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 //
-        make_unique<SubscribeAttribute>(Id, "output-list", Attributes::OutputList::Id, credsIssuerConfig),                      //
-        make_unique<SubscribeAttribute>(Id, "current-output", Attributes::CurrentOutput::Id, credsIssuerConfig),                //
+        make_unique<SubscribeAttribute>(Id, "mptz", Attributes::Mptz::Id, credsIssuerConfig),                                   //
+        make_unique<SubscribeAttribute>(Id, "max-presets", Attributes::MaxPresets::Id, credsIssuerConfig),                      //
+        make_unique<SubscribeAttribute>(Id, "preset-mptz-table", Attributes::PresetMptzTable::Id, credsIssuerConfig),           //
+        make_unique<SubscribeAttribute>(Id, "mptz-relative-move", Attributes::MptzRelativeMove::Id, credsIssuerConfig),         //
+        make_unique<SubscribeAttribute>(Id, "dptz-relative-move", Attributes::DptzRelativeMove::Id, credsIssuerConfig),         //
         make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -26428,26 +28762,27 @@ void registerClusterAudioOutput(Commands & commands, CredentialIssuerCommands *
 
     commands.RegisterCluster(clusterName, clusterCommands);
 }
-void registerClusterApplicationLauncher(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+void registerClusterWebRTCTransportProvider(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
 {
-    using namespace chip::app::Clusters::ApplicationLauncher;
+    using namespace chip::app::Clusters::WebRTCTransportProvider;
 
-    const char * clusterName = "ApplicationLauncher";
+    const char * clusterName = "WebRTCTransportProvider";
 
     commands_list clusterCommands = {
         //
         // Commands
         //
-        make_unique<ClusterCommand>(Id, credsIssuerConfig),           //
-        make_unique<ApplicationLauncherLaunchApp>(credsIssuerConfig), //
-        make_unique<ApplicationLauncherStopApp>(credsIssuerConfig),   //
-        make_unique<ApplicationLauncherHideApp>(credsIssuerConfig),   //
+        make_unique<ClusterCommand>(Id, credsIssuerConfig),                               //
+        make_unique<WebRTCTransportProviderWebRTCSolicitOffer>(credsIssuerConfig),        //
+        make_unique<WebRTCTransportProviderWebRTCProvideOffer>(credsIssuerConfig),        //
+        make_unique<WebRTCTransportProviderWebRTCProvideAnswer>(credsIssuerConfig),       //
+        make_unique<WebRTCTransportProviderWebRTCProvideICECandidate>(credsIssuerConfig), //
+        make_unique<WebRTCTransportProviderWebRTCEndSession>(credsIssuerConfig),          //
         //
         // Attributes
         //
         make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 //
-        make_unique<ReadAttribute>(Id, "catalog-list", Attributes::CatalogList::Id, credsIssuerConfig),                    //
-        make_unique<ReadAttribute>(Id, "current-app", Attributes::CurrentApp::Id, credsIssuerConfig),                      //
+        make_unique<ReadAttribute>(Id, "current-sessions", Attributes::CurrentSessions::Id, credsIssuerConfig),            //
         make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -26455,11 +28790,9 @@ void registerClusterApplicationLauncher(Commands & commands, CredentialIssuerCom
         make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
         make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
         make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              //
-        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const uint16_t>>>(
-            Id, "catalog-list", Attributes::CatalogList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttributeAsComplex<
-            chip::app::DataModel::Nullable<chip::app::Clusters::ApplicationLauncher::Structs::ApplicationEPStruct::Type>>>(
-            Id, "current-app", Attributes::CurrentApp::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+            chip::app::DataModel::List<const chip::app::Clusters::WebRTCTransportProvider::Structs::WebRTCSessionStruct::Type>>>(
+            Id, "current-sessions", Attributes::CurrentSessions::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
             Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
@@ -26474,8 +28807,7 @@ void registerClusterApplicationLauncher(Commands & commands, CredentialIssuerCom
         make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
                                               WriteCommandType::kForceWrite, credsIssuerConfig),                                //
         make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 //
-        make_unique<SubscribeAttribute>(Id, "catalog-list", Attributes::CatalogList::Id, credsIssuerConfig),                    //
-        make_unique<SubscribeAttribute>(Id, "current-app", Attributes::CurrentApp::Id, credsIssuerConfig),                      //
+        make_unique<SubscribeAttribute>(Id, "current-sessions", Attributes::CurrentSessions::Id, credsIssuerConfig),            //
         make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -26491,29 +28823,26 @@ void registerClusterApplicationLauncher(Commands & commands, CredentialIssuerCom
 
     commands.RegisterCluster(clusterName, clusterCommands);
 }
-void registerClusterApplicationBasic(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+void registerClusterWebRTCTransportRequestor(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
 {
-    using namespace chip::app::Clusters::ApplicationBasic;
+    using namespace chip::app::Clusters::WebRTCTransportRequestor;
 
-    const char * clusterName = "ApplicationBasic";
+    const char * clusterName = "WebRTCTransportRequestor";
 
     commands_list clusterCommands = {
         //
         // Commands
         //
-        make_unique<ClusterCommand>(Id, credsIssuerConfig), //
+        make_unique<ClusterCommand>(Id, credsIssuerConfig),                         //
+        make_unique<WebRTCTransportRequestorWebRTCOffer>(credsIssuerConfig),        //
+        make_unique<WebRTCTransportRequestorWebRTCAnswer>(credsIssuerConfig),       //
+        make_unique<WebRTCTransportRequestorWebRTCICECandidate>(credsIssuerConfig), //
+        make_unique<WebRTCTransportRequestorWebRTCEnd>(credsIssuerConfig),          //
         //
         // Attributes
         //
         make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 //
-        make_unique<ReadAttribute>(Id, "vendor-name", Attributes::VendorName::Id, credsIssuerConfig),                      //
-        make_unique<ReadAttribute>(Id, "vendor-id", Attributes::VendorID::Id, credsIssuerConfig),                          //
-        make_unique<ReadAttribute>(Id, "application-name", Attributes::ApplicationName::Id, credsIssuerConfig),            //
-        make_unique<ReadAttribute>(Id, "product-id", Attributes::ProductID::Id, credsIssuerConfig),                        //
-        make_unique<ReadAttribute>(Id, "application", Attributes::Application::Id, credsIssuerConfig),                     //
-        make_unique<ReadAttribute>(Id, "status", Attributes::Status::Id, credsIssuerConfig),                               //
-        make_unique<ReadAttribute>(Id, "application-version", Attributes::ApplicationVersion::Id, credsIssuerConfig),      //
-        make_unique<ReadAttribute>(Id, "allowed-vendor-list", Attributes::AllowedVendorList::Id, credsIssuerConfig),       //
+        make_unique<ReadAttribute>(Id, "current-sessions", Attributes::CurrentSessions::Id, credsIssuerConfig),            //
         make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -26521,22 +28850,9 @@ void registerClusterApplicationBasic(Commands & commands, CredentialIssuerComman
         make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
         make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
         make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              //
-        make_unique<WriteAttribute<chip::CharSpan>>(Id, "vendor-name", Attributes::VendorName::Id, WriteCommandType::kForceWrite,
-                                                    credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::VendorId>>(Id, "vendor-id", 0, UINT16_MAX, Attributes::VendorID::Id,
-                                                    WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::CharSpan>>(Id, "application-name", Attributes::ApplicationName::Id,
-                                                    WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<uint16_t>>(Id, "product-id", 0, UINT16_MAX, Attributes::ProductID::Id,
-                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttributeAsComplex<chip::app::Clusters::ApplicationBasic::Structs::ApplicationStruct::Type>>(
-            Id, "application", Attributes::Application::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::app::Clusters::ApplicationBasic::ApplicationStatusEnum>>(
-            Id, "status", 0, UINT8_MAX, Attributes::Status::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::CharSpan>>(Id, "application-version", Attributes::ApplicationVersion::Id,
-                                                    WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::VendorId>>>(
-            Id, "allowed-vendor-list", Attributes::AllowedVendorList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<
+            chip::app::DataModel::List<const chip::app::Clusters::WebRTCTransportRequestor::Structs::WebRTCSessionStruct::Type>>>(
+            Id, "current-sessions", Attributes::CurrentSessions::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
             Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
@@ -26551,14 +28867,7 @@ void registerClusterApplicationBasic(Commands & commands, CredentialIssuerComman
         make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
                                               WriteCommandType::kForceWrite, credsIssuerConfig),                                //
         make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 //
-        make_unique<SubscribeAttribute>(Id, "vendor-name", Attributes::VendorName::Id, credsIssuerConfig),                      //
-        make_unique<SubscribeAttribute>(Id, "vendor-id", Attributes::VendorID::Id, credsIssuerConfig),                          //
-        make_unique<SubscribeAttribute>(Id, "application-name", Attributes::ApplicationName::Id, credsIssuerConfig),            //
-        make_unique<SubscribeAttribute>(Id, "product-id", Attributes::ProductID::Id, credsIssuerConfig),                        //
-        make_unique<SubscribeAttribute>(Id, "application", Attributes::Application::Id, credsIssuerConfig),                     //
-        make_unique<SubscribeAttribute>(Id, "status", Attributes::Status::Id, credsIssuerConfig),                               //
-        make_unique<SubscribeAttribute>(Id, "application-version", Attributes::ApplicationVersion::Id, credsIssuerConfig),      //
-        make_unique<SubscribeAttribute>(Id, "allowed-vendor-list", Attributes::AllowedVendorList::Id, credsIssuerConfig),       //
+        make_unique<SubscribeAttribute>(Id, "current-sessions", Attributes::CurrentSessions::Id, credsIssuerConfig),            //
         make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -26574,123 +28883,48 @@ void registerClusterApplicationBasic(Commands & commands, CredentialIssuerComman
 
     commands.RegisterCluster(clusterName, clusterCommands);
 }
-void registerClusterAccountLogin(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
-{
-    using namespace chip::app::Clusters::AccountLogin;
-
-    const char * clusterName = "AccountLogin";
-
-    commands_list clusterCommands = {
-        //
-        // Commands
-        //
-        make_unique<ClusterCommand>(Id, credsIssuerConfig),      //
-        make_unique<AccountLoginGetSetupPIN>(credsIssuerConfig), //
-        make_unique<AccountLoginLogin>(credsIssuerConfig),       //
-        make_unique<AccountLoginLogout>(credsIssuerConfig),      //
-        //
-        // Attributes
-        //
-        make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 //
-        make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
-        make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
-        make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
-        make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                //
-        make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
-        make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
-        make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              //
-        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
-            Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
-            credsIssuerConfig), //
-        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
-            Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::EventId>>>(
-            Id, "event-list", Attributes::EventList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::AttributeId>>>(
-            Id, "attribute-list", Attributes::AttributeList::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id,
-                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
-                                              WriteCommandType::kForceWrite, credsIssuerConfig),                                //
-        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 //
-        make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
-        make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
-        make_unique<SubscribeAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                //
-        make_unique<SubscribeAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
-        make_unique<SubscribeAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
-        //
-        // Events
-        //
-        make_unique<ReadEvent>(Id, credsIssuerConfig),                                           //
-        make_unique<ReadEvent>(Id, "logged-out", Events::LoggedOut::Id, credsIssuerConfig),      //
-        make_unique<SubscribeEvent>(Id, credsIssuerConfig),                                      //
-        make_unique<SubscribeEvent>(Id, "logged-out", Events::LoggedOut::Id, credsIssuerConfig), //
-    };
-
-    commands.RegisterCluster(clusterName, clusterCommands);
-}
-void registerClusterContentControl(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+void registerClusterPushAvStreamTransport(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
 {
-    using namespace chip::app::Clusters::ContentControl;
+    using namespace chip::app::Clusters::PushAvStreamTransport;
 
-    const char * clusterName = "ContentControl";
+    const char * clusterName = "PushAvStreamTransport";
 
     commands_list clusterCommands = {
         //
         // Commands
         //
-        make_unique<ClusterCommand>(Id, credsIssuerConfig),                               //
-        make_unique<ContentControlUpdatePIN>(credsIssuerConfig),                          //
-        make_unique<ContentControlResetPIN>(credsIssuerConfig),                           //
-        make_unique<ContentControlEnable>(credsIssuerConfig),                             //
-        make_unique<ContentControlDisable>(credsIssuerConfig),                            //
-        make_unique<ContentControlAddBonusTime>(credsIssuerConfig),                       //
-        make_unique<ContentControlSetScreenDailyTime>(credsIssuerConfig),                 //
-        make_unique<ContentControlBlockUnratedContent>(credsIssuerConfig),                //
-        make_unique<ContentControlUnblockUnratedContent>(credsIssuerConfig),              //
-        make_unique<ContentControlSetOnDemandRatingThreshold>(credsIssuerConfig),         //
-        make_unique<ContentControlSetScheduledContentRatingThreshold>(credsIssuerConfig), //
+        make_unique<ClusterCommand>(Id, credsIssuerConfig),                            //
+        make_unique<PushAvStreamTransportAllocatePushTransport>(credsIssuerConfig),    //
+        make_unique<PushAvStreamTransportDeallocatePushTransport>(credsIssuerConfig),  //
+        make_unique<PushAvStreamTransportModifyPushTransport>(credsIssuerConfig),      //
+        make_unique<PushAvStreamTransportSetTransportStatus>(credsIssuerConfig),       //
+        make_unique<PushAvStreamTransportManuallyTriggerTransport>(credsIssuerConfig), //
+        make_unique<PushAvStreamTransportFindStreamConfiguration>(credsIssuerConfig),  //
         //
         // Attributes
         //
-        make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                        //
-        make_unique<ReadAttribute>(Id, "enabled", Attributes::Enabled::Id, credsIssuerConfig),                                    //
-        make_unique<ReadAttribute>(Id, "on-demand-ratings", Attributes::OnDemandRatings::Id, credsIssuerConfig),                  //
-        make_unique<ReadAttribute>(Id, "on-demand-rating-threshold", Attributes::OnDemandRatingThreshold::Id, credsIssuerConfig), //
-        make_unique<ReadAttribute>(Id, "scheduled-content-ratings", Attributes::ScheduledContentRatings::Id, credsIssuerConfig),  //
-        make_unique<ReadAttribute>(Id, "scheduled-content-rating-threshold", Attributes::ScheduledContentRatingThreshold::Id,
-                                   credsIssuerConfig),                                                                     //
-        make_unique<ReadAttribute>(Id, "screen-daily-time", Attributes::ScreenDailyTime::Id, credsIssuerConfig),           //
-        make_unique<ReadAttribute>(Id, "remaining-screen-time", Attributes::RemainingScreenTime::Id, credsIssuerConfig),   //
-        make_unique<ReadAttribute>(Id, "block-unrated", Attributes::BlockUnrated::Id, credsIssuerConfig),                  //
-        make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
-        make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
-        make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
-        make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                //
-        make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
-        make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
-        make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              //
-        make_unique<WriteAttribute<bool>>(Id, "enabled", 0, 1, Attributes::Enabled::Id, WriteCommandType::kForceWrite,
-                                          credsIssuerConfig), //
-        make_unique<WriteAttributeAsComplex<
-            chip::app::DataModel::List<const chip::app::Clusters::ContentControl::Structs::RatingNameStruct::Type>>>(
-            Id, "on-demand-ratings", Attributes::OnDemandRatings::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::CharSpan>>(Id, "on-demand-rating-threshold", Attributes::OnDemandRatingThreshold::Id,
-                                                    WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttributeAsComplex<
-            chip::app::DataModel::List<const chip::app::Clusters::ContentControl::Structs::RatingNameStruct::Type>>>(
-            Id, "scheduled-content-ratings", Attributes::ScheduledContentRatings::Id, WriteCommandType::kForceWrite,
+        make_unique<ReadAttribute>(Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "supported-container-formats", Attributes::SupportedContainerFormats::Id,
+                                   credsIssuerConfig),                                                                         //
+        make_unique<ReadAttribute>(Id, "supported-ingest-methods", Attributes::SupportedIngestMethods::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "current-connections", Attributes::CurrentConnections::Id, credsIssuerConfig),          //
+        make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig),     //
+        make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),       //
+        make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                            //
+        make_unique<ReadAttribute>(Id, "attribute-list", Attributes::AttributeList::Id, credsIssuerConfig),                    //
+        make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                          //
+        make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),                //
+        make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                                  //
+        make_unique<WriteAttribute<
+            chip::BitMask<chip::app::Clusters::PushAvStreamTransport::PushAVStreamTransportSupportedContainerFormatsBitmap>>>(
+            Id, "supported-container-formats", 0, UINT8_MAX, Attributes::SupportedContainerFormats::Id,
+            WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<
+            chip::BitMask<chip::app::Clusters::PushAvStreamTransport::PushAVStreamTransportSupportedIngestMethodsBitmap>>>(
+            Id, "supported-ingest-methods", 0, UINT8_MAX, Attributes::SupportedIngestMethods::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
-        make_unique<WriteAttribute<chip::CharSpan>>(Id, "scheduled-content-rating-threshold",
-                                                    Attributes::ScheduledContentRatingThreshold::Id, WriteCommandType::kForceWrite,
-                                                    credsIssuerConfig), //
-        make_unique<WriteAttribute<uint32_t>>(Id, "screen-daily-time", 0, UINT32_MAX, Attributes::ScreenDailyTime::Id,
-                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<uint32_t>>(Id, "remaining-screen-time", 0, UINT32_MAX, Attributes::RemainingScreenTime::Id,
-                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
-        make_unique<WriteAttribute<bool>>(Id, "block-unrated", 0, 1, Attributes::BlockUnrated::Id, WriteCommandType::kForceWrite,
-                                          credsIssuerConfig), //
+        make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const uint16_t>>>(
+            Id, "current-connections", Attributes::CurrentConnections::Id, WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
             Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
@@ -26703,19 +28937,13 @@ void registerClusterContentControl(Commands & commands, CredentialIssuerCommands
         make_unique<WriteAttribute<uint32_t>>(Id, "feature-map", 0, UINT32_MAX, Attributes::FeatureMap::Id,
                                               WriteCommandType::kForceWrite, credsIssuerConfig), //
         make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
-                                              WriteCommandType::kForceWrite, credsIssuerConfig),                      //
-        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                       //
-        make_unique<SubscribeAttribute>(Id, "enabled", Attributes::Enabled::Id, credsIssuerConfig),                   //
-        make_unique<SubscribeAttribute>(Id, "on-demand-ratings", Attributes::OnDemandRatings::Id, credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "on-demand-rating-threshold", Attributes::OnDemandRatingThreshold::Id,
-                                        credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "scheduled-content-ratings", Attributes::ScheduledContentRatings::Id,
+                                              WriteCommandType::kForceWrite, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                  //
+        make_unique<SubscribeAttribute>(Id, "supported-container-formats", Attributes::SupportedContainerFormats::Id,
                                         credsIssuerConfig), //
-        make_unique<SubscribeAttribute>(Id, "scheduled-content-rating-threshold", Attributes::ScheduledContentRatingThreshold::Id,
+        make_unique<SubscribeAttribute>(Id, "supported-ingest-methods", Attributes::SupportedIngestMethods::Id,
                                         credsIssuerConfig),                                                                     //
-        make_unique<SubscribeAttribute>(Id, "screen-daily-time", Attributes::ScreenDailyTime::Id, credsIssuerConfig),           //
-        make_unique<SubscribeAttribute>(Id, "remaining-screen-time", Attributes::RemainingScreenTime::Id, credsIssuerConfig),   //
-        make_unique<SubscribeAttribute>(Id, "block-unrated", Attributes::BlockUnrated::Id, credsIssuerConfig),                  //
+        make_unique<SubscribeAttribute>(Id, "current-connections", Attributes::CurrentConnections::Id, credsIssuerConfig),      //
         make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -26725,31 +28953,35 @@ void registerClusterContentControl(Commands & commands, CredentialIssuerCommands
         //
         // Events
         //
-        make_unique<ReadEvent>(Id, credsIssuerConfig),                                                                          //
-        make_unique<ReadEvent>(Id, "remaining-screen-time-expired", Events::RemainingScreenTimeExpired::Id, credsIssuerConfig), //
-        make_unique<SubscribeEvent>(Id, credsIssuerConfig),                                                                     //
-        make_unique<SubscribeEvent>(Id, "remaining-screen-time-expired", Events::RemainingScreenTimeExpired::Id,
-                                    credsIssuerConfig), //
+        make_unique<ReadEvent>(Id, credsIssuerConfig),                                                              //
+        make_unique<ReadEvent>(Id, "push-transport-begin", Events::PushTransportBegin::Id, credsIssuerConfig),      //
+        make_unique<ReadEvent>(Id, "push-transport-end", Events::PushTransportEnd::Id, credsIssuerConfig),          //
+        make_unique<SubscribeEvent>(Id, credsIssuerConfig),                                                         //
+        make_unique<SubscribeEvent>(Id, "push-transport-begin", Events::PushTransportBegin::Id, credsIssuerConfig), //
+        make_unique<SubscribeEvent>(Id, "push-transport-end", Events::PushTransportEnd::Id, credsIssuerConfig),     //
     };
 
     commands.RegisterCluster(clusterName, clusterCommands);
 }
-void registerClusterContentAppObserver(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
+void registerClusterChime(Commands & commands, CredentialIssuerCommands * credsIssuerConfig)
 {
-    using namespace chip::app::Clusters::ContentAppObserver;
+    using namespace chip::app::Clusters::Chime;
 
-    const char * clusterName = "ContentAppObserver";
+    const char * clusterName = "Chime";
 
     commands_list clusterCommands = {
         //
         // Commands
         //
-        make_unique<ClusterCommand>(Id, credsIssuerConfig),                  //
-        make_unique<ContentAppObserverContentAppMessage>(credsIssuerConfig), //
+        make_unique<ClusterCommand>(Id, credsIssuerConfig),  //
+        make_unique<ChimePlayChimeSound>(credsIssuerConfig), //
         //
         // Attributes
         //
         make_unique<ReadAttribute>(Id, credsIssuerConfig),                                                                 //
+        make_unique<ReadAttribute>(Id, "installed-chime-sounds", Attributes::InstalledChimeSounds::Id, credsIssuerConfig), //
+        make_unique<ReadAttribute>(Id, "active-chime-sound-id", Attributes::ActiveChimeSoundId::Id, credsIssuerConfig),    //
+        make_unique<ReadAttribute>(Id, "enabled", Attributes::Enabled::Id, credsIssuerConfig),                             //
         make_unique<ReadAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<ReadAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<ReadAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -26757,6 +28989,14 @@ void registerClusterContentAppObserver(Commands & commands, CredentialIssuerComm
         make_unique<ReadAttribute>(Id, "feature-map", Attributes::FeatureMap::Id, credsIssuerConfig),                      //
         make_unique<ReadAttribute>(Id, "cluster-revision", Attributes::ClusterRevision::Id, credsIssuerConfig),            //
         make_unique<WriteAttribute<>>(Id, credsIssuerConfig),                                                              //
+        make_unique<
+            WriteAttributeAsComplex<chip::app::DataModel::List<const chip::app::Clusters::Chime::Structs::ChimeSoundStruct::Type>>>(
+            Id, "installed-chime-sounds", Attributes::InstalledChimeSounds::Id, WriteCommandType::kForceWrite,
+            credsIssuerConfig), //
+        make_unique<WriteAttribute<uint8_t>>(Id, "active-chime-sound-id", 0, UINT8_MAX, Attributes::ActiveChimeSoundId::Id,
+                                             WriteCommandType::kWrite, credsIssuerConfig), //
+        make_unique<WriteAttribute<bool>>(Id, "enabled", 0, 1, Attributes::Enabled::Id, WriteCommandType::kWrite,
+                                          credsIssuerConfig), //
         make_unique<WriteAttributeAsComplex<chip::app::DataModel::List<const chip::CommandId>>>(
             Id, "generated-command-list", Attributes::GeneratedCommandList::Id, WriteCommandType::kForceWrite,
             credsIssuerConfig), //
@@ -26771,6 +29011,9 @@ void registerClusterContentAppObserver(Commands & commands, CredentialIssuerComm
         make_unique<WriteAttribute<uint16_t>>(Id, "cluster-revision", 0, UINT16_MAX, Attributes::ClusterRevision::Id,
                                               WriteCommandType::kForceWrite, credsIssuerConfig),                                //
         make_unique<SubscribeAttribute>(Id, credsIssuerConfig),                                                                 //
+        make_unique<SubscribeAttribute>(Id, "installed-chime-sounds", Attributes::InstalledChimeSounds::Id, credsIssuerConfig), //
+        make_unique<SubscribeAttribute>(Id, "active-chime-sound-id", Attributes::ActiveChimeSoundId::Id, credsIssuerConfig),    //
+        make_unique<SubscribeAttribute>(Id, "enabled", Attributes::Enabled::Id, credsIssuerConfig),                             //
         make_unique<SubscribeAttribute>(Id, "generated-command-list", Attributes::GeneratedCommandList::Id, credsIssuerConfig), //
         make_unique<SubscribeAttribute>(Id, "accepted-command-list", Attributes::AcceptedCommandList::Id, credsIssuerConfig),   //
         make_unique<SubscribeAttribute>(Id, "event-list", Attributes::EventList::Id, credsIssuerConfig),                        //
@@ -28347,6 +30590,12 @@ void registerClusters(Commands & commands, CredentialIssuerCommands * credsIssue
     registerClusterAccountLogin(commands, credsIssuerConfig);
     registerClusterContentControl(commands, credsIssuerConfig);
     registerClusterContentAppObserver(commands, credsIssuerConfig);
+    registerClusterCameraAvStreamManagement(commands, credsIssuerConfig);
+    registerClusterCameraAvSettingsUserLevelManagement(commands, credsIssuerConfig);
+    registerClusterWebRTCTransportProvider(commands, credsIssuerConfig);
+    registerClusterWebRTCTransportRequestor(commands, credsIssuerConfig);
+    registerClusterPushAvStreamTransport(commands, credsIssuerConfig);
+    registerClusterChime(commands, credsIssuerConfig);
     registerClusterEcosystemInformation(commands, credsIssuerConfig);
     registerClusterCommissionerControl(commands, credsIssuerConfig);
     registerClusterElectricalMeasurement(commands, credsIssuerConfig);
diff --git a/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.cpp b/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.cpp
index 9a1062c23b40a0..75efabe56df1db 100644
--- a/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.cpp
+++ b/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.cpp
@@ -430,6 +430,53 @@ void ComplexArgumentParser::Finalize(chip::app::Clusters::detail::Structs::Error
     ComplexArgumentParser::Finalize(request.errorStateDetails);
 }
 
+CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters::detail::Structs::ICEServerStruct::Type & request,
+                                        Json::Value & value)
+{
+    VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT);
+
+    // Copy to track which members we already processed.
+    Json::Value valueCopy(value);
+
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ICEServerStruct.urls", "urls", value.isMember("urls")));
+
+    char labelWithMember[kMaxLabelLength];
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "urls");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.urls, value["urls"]));
+    valueCopy.removeMember("urls");
+
+    if (value.isMember("username"))
+    {
+        snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "username");
+        ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.username, value["username"]));
+    }
+    valueCopy.removeMember("username");
+
+    if (value.isMember("credential"))
+    {
+        snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "credential");
+        ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.credential, value["credential"]));
+    }
+    valueCopy.removeMember("credential");
+
+    if (value.isMember("caid"))
+    {
+        snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "caid");
+        ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.caid, value["caid"]));
+    }
+    valueCopy.removeMember("caid");
+
+    return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy);
+}
+
+void ComplexArgumentParser::Finalize(chip::app::Clusters::detail::Structs::ICEServerStruct::Type & request)
+{
+    ComplexArgumentParser::Finalize(request.urls);
+    ComplexArgumentParser::Finalize(request.username);
+    ComplexArgumentParser::Finalize(request.credential);
+    ComplexArgumentParser::Finalize(request.caid);
+}
+
 CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters::detail::Structs::LabelStruct::Type & request,
                                         Json::Value & value)
 {
@@ -493,6 +540,143 @@ void ComplexArgumentParser::Finalize(chip::app::Clusters::detail::Structs::Opera
     ComplexArgumentParser::Finalize(request.operationalStateLabel);
 }
 
+CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters::detail::Structs::PerStreamStruct::Type & request,
+                                        Json::Value & value)
+{
+    VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT);
+
+    // Copy to track which members we already processed.
+    Json::Value valueCopy(value);
+
+    ReturnErrorOnFailure(
+        ComplexArgumentParser::EnsureMemberExist("PerStreamStruct.streamID", "streamID", value.isMember("streamID")));
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("PerStreamStruct.onOff", "onOff", value.isMember("onOff")));
+
+    char labelWithMember[kMaxLabelLength];
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "streamID");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.streamID, value["streamID"]));
+    valueCopy.removeMember("streamID");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "onOff");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.onOff, value["onOff"]));
+    valueCopy.removeMember("onOff");
+
+    return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy);
+}
+
+void ComplexArgumentParser::Finalize(chip::app::Clusters::detail::Structs::PerStreamStruct::Type & request)
+{
+    ComplexArgumentParser::Finalize(request.streamID);
+    ComplexArgumentParser::Finalize(request.onOff);
+}
+
+CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters::detail::Structs::ViewportStruct::Type & request,
+                                        Json::Value & value)
+{
+    VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT);
+
+    // Copy to track which members we already processed.
+    Json::Value valueCopy(value);
+
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ViewportStruct.x1", "x1", value.isMember("x1")));
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ViewportStruct.y1", "y1", value.isMember("y1")));
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ViewportStruct.x2", "x2", value.isMember("x2")));
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ViewportStruct.y2", "y2", value.isMember("y2")));
+
+    char labelWithMember[kMaxLabelLength];
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "x1");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.x1, value["x1"]));
+    valueCopy.removeMember("x1");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "y1");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.y1, value["y1"]));
+    valueCopy.removeMember("y1");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "x2");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.x2, value["x2"]));
+    valueCopy.removeMember("x2");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "y2");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.y2, value["y2"]));
+    valueCopy.removeMember("y2");
+
+    return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy);
+}
+
+void ComplexArgumentParser::Finalize(chip::app::Clusters::detail::Structs::ViewportStruct::Type & request)
+{
+    ComplexArgumentParser::Finalize(request.x1);
+    ComplexArgumentParser::Finalize(request.y1);
+    ComplexArgumentParser::Finalize(request.x2);
+    ComplexArgumentParser::Finalize(request.y2);
+}
+
+CHIP_ERROR ComplexArgumentParser::Setup(const char * label,
+                                        chip::app::Clusters::detail::Structs::WebRTCSessionStruct::Type & request,
+                                        Json::Value & value)
+{
+    VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT);
+
+    // Copy to track which members we already processed.
+    Json::Value valueCopy(value);
+
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("WebRTCSessionStruct.id", "id", value.isMember("id")));
+    ReturnErrorOnFailure(
+        ComplexArgumentParser::EnsureMemberExist("WebRTCSessionStruct.peerNodeId", "peerNodeId", value.isMember("peerNodeId")));
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("WebRTCSessionStruct.peerFabricIndex", "peerFabricIndex",
+                                                                  value.isMember("peerFabricIndex")));
+    ReturnErrorOnFailure(
+        ComplexArgumentParser::EnsureMemberExist("WebRTCSessionStruct.streamType", "streamType", value.isMember("streamType")));
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("WebRTCSessionStruct.videoStreamID", "videoStreamID",
+                                                                  value.isMember("videoStreamID")));
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("WebRTCSessionStruct.audioStreamID", "audioStreamID",
+                                                                  value.isMember("audioStreamID")));
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("WebRTCSessionStruct.metadataOptions", "metadataOptions",
+                                                                  value.isMember("metadataOptions")));
+
+    char labelWithMember[kMaxLabelLength];
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "id");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.id, value["id"]));
+    valueCopy.removeMember("id");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "peerNodeId");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.peerNodeId, value["peerNodeId"]));
+    valueCopy.removeMember("peerNodeId");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "peerFabricIndex");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.peerFabricIndex, value["peerFabricIndex"]));
+    valueCopy.removeMember("peerFabricIndex");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "streamType");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.streamType, value["streamType"]));
+    valueCopy.removeMember("streamType");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "videoStreamID");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.videoStreamID, value["videoStreamID"]));
+    valueCopy.removeMember("videoStreamID");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "audioStreamID");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.audioStreamID, value["audioStreamID"]));
+    valueCopy.removeMember("audioStreamID");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "metadataOptions");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.metadataOptions, value["metadataOptions"]));
+    valueCopy.removeMember("metadataOptions");
+
+    return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy);
+}
+
+void ComplexArgumentParser::Finalize(chip::app::Clusters::detail::Structs::WebRTCSessionStruct::Type & request)
+{
+    ComplexArgumentParser::Finalize(request.id);
+    ComplexArgumentParser::Finalize(request.peerNodeId);
+    ComplexArgumentParser::Finalize(request.peerFabricIndex);
+    ComplexArgumentParser::Finalize(request.streamType);
+    ComplexArgumentParser::Finalize(request.videoStreamID);
+    ComplexArgumentParser::Finalize(request.audioStreamID);
+    ComplexArgumentParser::Finalize(request.metadataOptions);
+}
+
 CHIP_ERROR ComplexArgumentParser::Setup(const char * label,
                                         chip::app::Clusters::Descriptor::Structs::SemanticTagStruct::Type & request,
                                         Json::Value & value)
@@ -5671,6 +5855,881 @@ void ComplexArgumentParser::Finalize(chip::app::Clusters::ContentControl::Struct
     ComplexArgumentParser::Finalize(request.ratingNameDesc);
 }
 
+CHIP_ERROR
+ComplexArgumentParser::Setup(const char * label,
+                             chip::app::Clusters::CameraAvStreamManagement::Structs::AudioCapabilitiesStruct::Type & request,
+                             Json::Value & value)
+{
+    VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT);
+
+    // Copy to track which members we already processed.
+    Json::Value valueCopy(value);
+
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("AudioCapabilitiesStruct.maxNumberOfChannels",
+                                                                  "maxNumberOfChannels", value.isMember("maxNumberOfChannels")));
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("AudioCapabilitiesStruct.supportedCodecs", "supportedCodecs",
+                                                                  value.isMember("supportedCodecs")));
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("AudioCapabilitiesStruct.supportedSampleRates",
+                                                                  "supportedSampleRates", value.isMember("supportedSampleRates")));
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("AudioCapabilitiesStruct.supportedBitDepths",
+                                                                  "supportedBitDepths", value.isMember("supportedBitDepths")));
+
+    char labelWithMember[kMaxLabelLength];
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "maxNumberOfChannels");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.maxNumberOfChannels, value["maxNumberOfChannels"]));
+    valueCopy.removeMember("maxNumberOfChannels");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "supportedCodecs");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.supportedCodecs, value["supportedCodecs"]));
+    valueCopy.removeMember("supportedCodecs");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "supportedSampleRates");
+    ReturnErrorOnFailure(
+        ComplexArgumentParser::Setup(labelWithMember, request.supportedSampleRates, value["supportedSampleRates"]));
+    valueCopy.removeMember("supportedSampleRates");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "supportedBitDepths");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.supportedBitDepths, value["supportedBitDepths"]));
+    valueCopy.removeMember("supportedBitDepths");
+
+    return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy);
+}
+
+void ComplexArgumentParser::Finalize(
+    chip::app::Clusters::CameraAvStreamManagement::Structs::AudioCapabilitiesStruct::Type & request)
+{
+    ComplexArgumentParser::Finalize(request.maxNumberOfChannels);
+    ComplexArgumentParser::Finalize(request.supportedCodecs);
+    ComplexArgumentParser::Finalize(request.supportedSampleRates);
+    ComplexArgumentParser::Finalize(request.supportedBitDepths);
+}
+
+CHIP_ERROR ComplexArgumentParser::Setup(const char * label,
+                                        chip::app::Clusters::CameraAvStreamManagement::Structs::AudioStreamStruct::Type & request,
+                                        Json::Value & value)
+{
+    VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT);
+
+    // Copy to track which members we already processed.
+    Json::Value valueCopy(value);
+
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("AudioStreamStruct.audioStreamID", "audioStreamID",
+                                                                  value.isMember("audioStreamID")));
+    ReturnErrorOnFailure(
+        ComplexArgumentParser::EnsureMemberExist("AudioStreamStruct.streamType", "streamType", value.isMember("streamType")));
+    ReturnErrorOnFailure(
+        ComplexArgumentParser::EnsureMemberExist("AudioStreamStruct.audioCodec", "audioCodec", value.isMember("audioCodec")));
+    ReturnErrorOnFailure(
+        ComplexArgumentParser::EnsureMemberExist("AudioStreamStruct.channelCount", "channelCount", value.isMember("channelCount")));
+    ReturnErrorOnFailure(
+        ComplexArgumentParser::EnsureMemberExist("AudioStreamStruct.sampleRate", "sampleRate", value.isMember("sampleRate")));
+    ReturnErrorOnFailure(
+        ComplexArgumentParser::EnsureMemberExist("AudioStreamStruct.bitRate", "bitRate", value.isMember("bitRate")));
+    ReturnErrorOnFailure(
+        ComplexArgumentParser::EnsureMemberExist("AudioStreamStruct.bitDepth", "bitDepth", value.isMember("bitDepth")));
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("AudioStreamStruct.referenceCount", "referenceCount",
+                                                                  value.isMember("referenceCount")));
+
+    char labelWithMember[kMaxLabelLength];
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "audioStreamID");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.audioStreamID, value["audioStreamID"]));
+    valueCopy.removeMember("audioStreamID");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "streamType");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.streamType, value["streamType"]));
+    valueCopy.removeMember("streamType");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "audioCodec");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.audioCodec, value["audioCodec"]));
+    valueCopy.removeMember("audioCodec");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "channelCount");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.channelCount, value["channelCount"]));
+    valueCopy.removeMember("channelCount");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "sampleRate");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.sampleRate, value["sampleRate"]));
+    valueCopy.removeMember("sampleRate");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "bitRate");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.bitRate, value["bitRate"]));
+    valueCopy.removeMember("bitRate");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "bitDepth");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.bitDepth, value["bitDepth"]));
+    valueCopy.removeMember("bitDepth");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "referenceCount");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.referenceCount, value["referenceCount"]));
+    valueCopy.removeMember("referenceCount");
+
+    return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy);
+}
+
+void ComplexArgumentParser::Finalize(chip::app::Clusters::CameraAvStreamManagement::Structs::AudioStreamStruct::Type & request)
+{
+    ComplexArgumentParser::Finalize(request.audioStreamID);
+    ComplexArgumentParser::Finalize(request.streamType);
+    ComplexArgumentParser::Finalize(request.audioCodec);
+    ComplexArgumentParser::Finalize(request.channelCount);
+    ComplexArgumentParser::Finalize(request.sampleRate);
+    ComplexArgumentParser::Finalize(request.bitRate);
+    ComplexArgumentParser::Finalize(request.bitDepth);
+    ComplexArgumentParser::Finalize(request.referenceCount);
+}
+
+CHIP_ERROR ComplexArgumentParser::Setup(
+    const char * label, chip::app::Clusters::CameraAvStreamManagement::Structs::RateDistortionTradeOffPointsStruct::Type & request,
+    Json::Value & value)
+{
+    VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT);
+
+    // Copy to track which members we already processed.
+    Json::Value valueCopy(value);
+
+    ReturnErrorOnFailure(
+        ComplexArgumentParser::EnsureMemberExist("RateDistortionTradeOffPointsStruct.codec", "codec", value.isMember("codec")));
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("RateDistortionTradeOffPointsStruct.resolution", "resolution",
+                                                                  value.isMember("resolution")));
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("RateDistortionTradeOffPointsStruct.minBitRate", "minBitRate",
+                                                                  value.isMember("minBitRate")));
+
+    char labelWithMember[kMaxLabelLength];
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "codec");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.codec, value["codec"]));
+    valueCopy.removeMember("codec");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "resolution");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.resolution, value["resolution"]));
+    valueCopy.removeMember("resolution");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "minBitRate");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.minBitRate, value["minBitRate"]));
+    valueCopy.removeMember("minBitRate");
+
+    return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy);
+}
+
+void ComplexArgumentParser::Finalize(
+    chip::app::Clusters::CameraAvStreamManagement::Structs::RateDistortionTradeOffPointsStruct::Type & request)
+{
+    ComplexArgumentParser::Finalize(request.codec);
+    ComplexArgumentParser::Finalize(request.resolution);
+    ComplexArgumentParser::Finalize(request.minBitRate);
+}
+
+CHIP_ERROR
+ComplexArgumentParser::Setup(const char * label,
+                             chip::app::Clusters::CameraAvStreamManagement::Structs::SnapshotParamsStruct::Type & request,
+                             Json::Value & value)
+{
+    VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT);
+
+    // Copy to track which members we already processed.
+    Json::Value valueCopy(value);
+
+    ReturnErrorOnFailure(
+        ComplexArgumentParser::EnsureMemberExist("SnapshotParamsStruct.resolution", "resolution", value.isMember("resolution")));
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("SnapshotParamsStruct.maxFrameRate", "maxFrameRate",
+                                                                  value.isMember("maxFrameRate")));
+    ReturnErrorOnFailure(
+        ComplexArgumentParser::EnsureMemberExist("SnapshotParamsStruct.imageCodec", "imageCodec", value.isMember("imageCodec")));
+
+    char labelWithMember[kMaxLabelLength];
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "resolution");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.resolution, value["resolution"]));
+    valueCopy.removeMember("resolution");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "maxFrameRate");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.maxFrameRate, value["maxFrameRate"]));
+    valueCopy.removeMember("maxFrameRate");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "imageCodec");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.imageCodec, value["imageCodec"]));
+    valueCopy.removeMember("imageCodec");
+
+    return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy);
+}
+
+void ComplexArgumentParser::Finalize(chip::app::Clusters::CameraAvStreamManagement::Structs::SnapshotParamsStruct::Type & request)
+{
+    ComplexArgumentParser::Finalize(request.resolution);
+    ComplexArgumentParser::Finalize(request.maxFrameRate);
+    ComplexArgumentParser::Finalize(request.imageCodec);
+}
+
+CHIP_ERROR
+ComplexArgumentParser::Setup(const char * label,
+                             chip::app::Clusters::CameraAvStreamManagement::Structs::SnapshotStreamStruct::Type & request,
+                             Json::Value & value)
+{
+    VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT);
+
+    // Copy to track which members we already processed.
+    Json::Value valueCopy(value);
+
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("SnapshotStreamStruct.snapshotStreamID", "snapshotStreamID",
+                                                                  value.isMember("snapshotStreamID")));
+    ReturnErrorOnFailure(
+        ComplexArgumentParser::EnsureMemberExist("SnapshotStreamStruct.imageCodec", "imageCodec", value.isMember("imageCodec")));
+    ReturnErrorOnFailure(
+        ComplexArgumentParser::EnsureMemberExist("SnapshotStreamStruct.frameRate", "frameRate", value.isMember("frameRate")));
+    ReturnErrorOnFailure(
+        ComplexArgumentParser::EnsureMemberExist("SnapshotStreamStruct.bitRate", "bitRate", value.isMember("bitRate")));
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("SnapshotStreamStruct.minResolution", "minResolution",
+                                                                  value.isMember("minResolution")));
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("SnapshotStreamStruct.maxResolution", "maxResolution",
+                                                                  value.isMember("maxResolution")));
+    ReturnErrorOnFailure(
+        ComplexArgumentParser::EnsureMemberExist("SnapshotStreamStruct.quality", "quality", value.isMember("quality")));
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("SnapshotStreamStruct.referenceCount", "referenceCount",
+                                                                  value.isMember("referenceCount")));
+
+    char labelWithMember[kMaxLabelLength];
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "snapshotStreamID");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.snapshotStreamID, value["snapshotStreamID"]));
+    valueCopy.removeMember("snapshotStreamID");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "imageCodec");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.imageCodec, value["imageCodec"]));
+    valueCopy.removeMember("imageCodec");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "frameRate");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.frameRate, value["frameRate"]));
+    valueCopy.removeMember("frameRate");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "bitRate");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.bitRate, value["bitRate"]));
+    valueCopy.removeMember("bitRate");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "minResolution");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.minResolution, value["minResolution"]));
+    valueCopy.removeMember("minResolution");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "maxResolution");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.maxResolution, value["maxResolution"]));
+    valueCopy.removeMember("maxResolution");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "quality");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.quality, value["quality"]));
+    valueCopy.removeMember("quality");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "referenceCount");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.referenceCount, value["referenceCount"]));
+    valueCopy.removeMember("referenceCount");
+
+    return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy);
+}
+
+void ComplexArgumentParser::Finalize(chip::app::Clusters::CameraAvStreamManagement::Structs::SnapshotStreamStruct::Type & request)
+{
+    ComplexArgumentParser::Finalize(request.snapshotStreamID);
+    ComplexArgumentParser::Finalize(request.imageCodec);
+    ComplexArgumentParser::Finalize(request.frameRate);
+    ComplexArgumentParser::Finalize(request.bitRate);
+    ComplexArgumentParser::Finalize(request.minResolution);
+    ComplexArgumentParser::Finalize(request.maxResolution);
+    ComplexArgumentParser::Finalize(request.quality);
+    ComplexArgumentParser::Finalize(request.referenceCount);
+}
+
+CHIP_ERROR
+ComplexArgumentParser::Setup(const char * label,
+                             chip::app::Clusters::CameraAvStreamManagement::Structs::VideoSensorParamsStruct::Type & request,
+                             Json::Value & value)
+{
+    VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT);
+
+    // Copy to track which members we already processed.
+    Json::Value valueCopy(value);
+
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("VideoSensorParamsStruct.sensorWidth", "sensorWidth",
+                                                                  value.isMember("sensorWidth")));
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("VideoSensorParamsStruct.sensorHeight", "sensorHeight",
+                                                                  value.isMember("sensorHeight")));
+    ReturnErrorOnFailure(
+        ComplexArgumentParser::EnsureMemberExist("VideoSensorParamsStruct.HDRCapable", "HDRCapable", value.isMember("HDRCapable")));
+    ReturnErrorOnFailure(
+        ComplexArgumentParser::EnsureMemberExist("VideoSensorParamsStruct.maxFPS", "maxFPS", value.isMember("maxFPS")));
+    ReturnErrorOnFailure(
+        ComplexArgumentParser::EnsureMemberExist("VideoSensorParamsStruct.maxHDRFPS", "maxHDRFPS", value.isMember("maxHDRFPS")));
+
+    char labelWithMember[kMaxLabelLength];
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "sensorWidth");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.sensorWidth, value["sensorWidth"]));
+    valueCopy.removeMember("sensorWidth");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "sensorHeight");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.sensorHeight, value["sensorHeight"]));
+    valueCopy.removeMember("sensorHeight");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "HDRCapable");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.HDRCapable, value["HDRCapable"]));
+    valueCopy.removeMember("HDRCapable");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "maxFPS");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.maxFPS, value["maxFPS"]));
+    valueCopy.removeMember("maxFPS");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "maxHDRFPS");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.maxHDRFPS, value["maxHDRFPS"]));
+    valueCopy.removeMember("maxHDRFPS");
+
+    return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy);
+}
+
+void ComplexArgumentParser::Finalize(
+    chip::app::Clusters::CameraAvStreamManagement::Structs::VideoSensorParamsStruct::Type & request)
+{
+    ComplexArgumentParser::Finalize(request.sensorWidth);
+    ComplexArgumentParser::Finalize(request.sensorHeight);
+    ComplexArgumentParser::Finalize(request.HDRCapable);
+    ComplexArgumentParser::Finalize(request.maxFPS);
+    ComplexArgumentParser::Finalize(request.maxHDRFPS);
+}
+
+CHIP_ERROR ComplexArgumentParser::Setup(const char * label,
+                                        chip::app::Clusters::CameraAvStreamManagement::Structs::VideoStreamStruct::Type & request,
+                                        Json::Value & value)
+{
+    VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT);
+
+    // Copy to track which members we already processed.
+    Json::Value valueCopy(value);
+
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("VideoStreamStruct.videoStreamID", "videoStreamID",
+                                                                  value.isMember("videoStreamID")));
+    ReturnErrorOnFailure(
+        ComplexArgumentParser::EnsureMemberExist("VideoStreamStruct.streamType", "streamType", value.isMember("streamType")));
+    ReturnErrorOnFailure(
+        ComplexArgumentParser::EnsureMemberExist("VideoStreamStruct.videoCodec", "videoCodec", value.isMember("videoCodec")));
+    ReturnErrorOnFailure(
+        ComplexArgumentParser::EnsureMemberExist("VideoStreamStruct.minFrameRate", "minFrameRate", value.isMember("minFrameRate")));
+    ReturnErrorOnFailure(
+        ComplexArgumentParser::EnsureMemberExist("VideoStreamStruct.maxFrameRate", "maxFrameRate", value.isMember("maxFrameRate")));
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("VideoStreamStruct.minResolution", "minResolution",
+                                                                  value.isMember("minResolution")));
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("VideoStreamStruct.maxResolution", "maxResolution",
+                                                                  value.isMember("maxResolution")));
+    ReturnErrorOnFailure(
+        ComplexArgumentParser::EnsureMemberExist("VideoStreamStruct.minBitRate", "minBitRate", value.isMember("minBitRate")));
+    ReturnErrorOnFailure(
+        ComplexArgumentParser::EnsureMemberExist("VideoStreamStruct.maxBitRate", "maxBitRate", value.isMember("maxBitRate")));
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("VideoStreamStruct.minFragmentLen", "minFragmentLen",
+                                                                  value.isMember("minFragmentLen")));
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("VideoStreamStruct.maxFragmentLen", "maxFragmentLen",
+                                                                  value.isMember("maxFragmentLen")));
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("VideoStreamStruct.referenceCount", "referenceCount",
+                                                                  value.isMember("referenceCount")));
+
+    char labelWithMember[kMaxLabelLength];
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "videoStreamID");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.videoStreamID, value["videoStreamID"]));
+    valueCopy.removeMember("videoStreamID");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "streamType");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.streamType, value["streamType"]));
+    valueCopy.removeMember("streamType");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "videoCodec");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.videoCodec, value["videoCodec"]));
+    valueCopy.removeMember("videoCodec");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "minFrameRate");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.minFrameRate, value["minFrameRate"]));
+    valueCopy.removeMember("minFrameRate");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "maxFrameRate");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.maxFrameRate, value["maxFrameRate"]));
+    valueCopy.removeMember("maxFrameRate");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "minResolution");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.minResolution, value["minResolution"]));
+    valueCopy.removeMember("minResolution");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "maxResolution");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.maxResolution, value["maxResolution"]));
+    valueCopy.removeMember("maxResolution");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "minBitRate");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.minBitRate, value["minBitRate"]));
+    valueCopy.removeMember("minBitRate");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "maxBitRate");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.maxBitRate, value["maxBitRate"]));
+    valueCopy.removeMember("maxBitRate");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "minFragmentLen");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.minFragmentLen, value["minFragmentLen"]));
+    valueCopy.removeMember("minFragmentLen");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "maxFragmentLen");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.maxFragmentLen, value["maxFragmentLen"]));
+    valueCopy.removeMember("maxFragmentLen");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "referenceCount");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.referenceCount, value["referenceCount"]));
+    valueCopy.removeMember("referenceCount");
+
+    return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy);
+}
+
+void ComplexArgumentParser::Finalize(chip::app::Clusters::CameraAvStreamManagement::Structs::VideoStreamStruct::Type & request)
+{
+    ComplexArgumentParser::Finalize(request.videoStreamID);
+    ComplexArgumentParser::Finalize(request.streamType);
+    ComplexArgumentParser::Finalize(request.videoCodec);
+    ComplexArgumentParser::Finalize(request.minFrameRate);
+    ComplexArgumentParser::Finalize(request.maxFrameRate);
+    ComplexArgumentParser::Finalize(request.minResolution);
+    ComplexArgumentParser::Finalize(request.maxResolution);
+    ComplexArgumentParser::Finalize(request.minBitRate);
+    ComplexArgumentParser::Finalize(request.maxBitRate);
+    ComplexArgumentParser::Finalize(request.minFragmentLen);
+    ComplexArgumentParser::Finalize(request.maxFragmentLen);
+    ComplexArgumentParser::Finalize(request.referenceCount);
+}
+
+CHIP_ERROR
+ComplexArgumentParser::Setup(const char * label,
+                             chip::app::Clusters::CameraAvSettingsUserLevelManagement::Structs::MPTZStruct::Type & request,
+                             Json::Value & value)
+{
+    VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT);
+
+    // Copy to track which members we already processed.
+    Json::Value valueCopy(value);
+
+    char labelWithMember[kMaxLabelLength];
+    if (value.isMember("MPan"))
+    {
+        snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "MPan");
+        ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.MPan, value["MPan"]));
+    }
+    valueCopy.removeMember("MPan");
+
+    if (value.isMember("MTilt"))
+    {
+        snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "MTilt");
+        ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.MTilt, value["MTilt"]));
+    }
+    valueCopy.removeMember("MTilt");
+
+    if (value.isMember("MZoom"))
+    {
+        snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "MZoom");
+        ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.MZoom, value["MZoom"]));
+    }
+    valueCopy.removeMember("MZoom");
+
+    return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy);
+}
+
+void ComplexArgumentParser::Finalize(chip::app::Clusters::CameraAvSettingsUserLevelManagement::Structs::MPTZStruct::Type & request)
+{
+    ComplexArgumentParser::Finalize(request.MPan);
+    ComplexArgumentParser::Finalize(request.MTilt);
+    ComplexArgumentParser::Finalize(request.MZoom);
+}
+
+CHIP_ERROR ComplexArgumentParser::Setup(
+    const char * label,
+    chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportMotionTriggerTimeControlStruct::Type & request,
+    Json::Value & value)
+{
+    VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT);
+
+    // Copy to track which members we already processed.
+    Json::Value valueCopy(value);
+
+    ReturnErrorOnFailure(
+        ComplexArgumentParser::EnsureMemberExist("PushAVStreamTransportMotionTriggerTimeControlStruct.initialDuration",
+                                                 "initialDuration", value.isMember("initialDuration")));
+    ReturnErrorOnFailure(
+        ComplexArgumentParser::EnsureMemberExist("PushAVStreamTransportMotionTriggerTimeControlStruct.augmentationDuration",
+                                                 "augmentationDuration", value.isMember("augmentationDuration")));
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("PushAVStreamTransportMotionTriggerTimeControlStruct.maxDuration",
+                                                                  "maxDuration", value.isMember("maxDuration")));
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist(
+        "PushAVStreamTransportMotionTriggerTimeControlStruct.blindDuration", "blindDuration", value.isMember("blindDuration")));
+
+    char labelWithMember[kMaxLabelLength];
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "initialDuration");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.initialDuration, value["initialDuration"]));
+    valueCopy.removeMember("initialDuration");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "augmentationDuration");
+    ReturnErrorOnFailure(
+        ComplexArgumentParser::Setup(labelWithMember, request.augmentationDuration, value["augmentationDuration"]));
+    valueCopy.removeMember("augmentationDuration");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "maxDuration");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.maxDuration, value["maxDuration"]));
+    valueCopy.removeMember("maxDuration");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "blindDuration");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.blindDuration, value["blindDuration"]));
+    valueCopy.removeMember("blindDuration");
+
+    return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy);
+}
+
+void ComplexArgumentParser::Finalize(
+    chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportMotionTriggerTimeControlStruct::Type & request)
+{
+    ComplexArgumentParser::Finalize(request.initialDuration);
+    ComplexArgumentParser::Finalize(request.augmentationDuration);
+    ComplexArgumentParser::Finalize(request.maxDuration);
+    ComplexArgumentParser::Finalize(request.blindDuration);
+}
+
+CHIP_ERROR ComplexArgumentParser::Setup(
+    const char * label,
+    chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportMetadataOptionsStruct::Type & request,
+    Json::Value & value)
+{
+    VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT);
+
+    // Copy to track which members we already processed.
+    Json::Value valueCopy(value);
+
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("PushAVStreamTransportMetadataOptionsStruct.multiplexing",
+                                                                  "multiplexing", value.isMember("multiplexing")));
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("PushAVStreamTransportMetadataOptionsStruct.includeMotionZones",
+                                                                  "includeMotionZones", value.isMember("includeMotionZones")));
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist(
+        "PushAVStreamTransportMetadataOptionsStruct.enableMetadataPrivacySensitive", "enableMetadataPrivacySensitive",
+        value.isMember("enableMetadataPrivacySensitive")));
+
+    char labelWithMember[kMaxLabelLength];
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "multiplexing");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.multiplexing, value["multiplexing"]));
+    valueCopy.removeMember("multiplexing");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "includeMotionZones");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.includeMotionZones, value["includeMotionZones"]));
+    valueCopy.removeMember("includeMotionZones");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "enableMetadataPrivacySensitive");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.enableMetadataPrivacySensitive,
+                                                      value["enableMetadataPrivacySensitive"]));
+    valueCopy.removeMember("enableMetadataPrivacySensitive");
+
+    return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy);
+}
+
+void ComplexArgumentParser::Finalize(
+    chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportMetadataOptionsStruct::Type & request)
+{
+    ComplexArgumentParser::Finalize(request.multiplexing);
+    ComplexArgumentParser::Finalize(request.includeMotionZones);
+    ComplexArgumentParser::Finalize(request.enableMetadataPrivacySensitive);
+}
+
+CHIP_ERROR ComplexArgumentParser::Setup(
+    const char * label,
+    chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportTriggerOptionsStruct::Type & request,
+    Json::Value & value)
+{
+    VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT);
+
+    // Copy to track which members we already processed.
+    Json::Value valueCopy(value);
+
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("PushAVStreamTransportTriggerOptionsStruct.triggerType",
+                                                                  "triggerType", value.isMember("triggerType")));
+
+    char labelWithMember[kMaxLabelLength];
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "triggerType");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.triggerType, value["triggerType"]));
+    valueCopy.removeMember("triggerType");
+
+    if (value.isMember("motionZones"))
+    {
+        snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "motionZones");
+        ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.motionZones, value["motionZones"]));
+    }
+    valueCopy.removeMember("motionZones");
+
+    if (value.isMember("motionSensitivity"))
+    {
+        snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "motionSensitivity");
+        ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.motionSensitivity, value["motionSensitivity"]));
+    }
+    valueCopy.removeMember("motionSensitivity");
+
+    if (value.isMember("motionTimeControl"))
+    {
+        snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "motionTimeControl");
+        ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.motionTimeControl, value["motionTimeControl"]));
+    }
+    valueCopy.removeMember("motionTimeControl");
+
+    if (value.isMember("activationReason"))
+    {
+        snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "activationReason");
+        ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.activationReason, value["activationReason"]));
+    }
+    valueCopy.removeMember("activationReason");
+
+    return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy);
+}
+
+void ComplexArgumentParser::Finalize(
+    chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportTriggerOptionsStruct::Type & request)
+{
+    ComplexArgumentParser::Finalize(request.triggerType);
+    ComplexArgumentParser::Finalize(request.motionZones);
+    ComplexArgumentParser::Finalize(request.motionSensitivity);
+    ComplexArgumentParser::Finalize(request.motionTimeControl);
+    ComplexArgumentParser::Finalize(request.activationReason);
+}
+
+CHIP_ERROR ComplexArgumentParser::Setup(
+    const char * label,
+    chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportCMAFContainerOptionsStruct::Type & request,
+    Json::Value & value)
+{
+    VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT);
+
+    // Copy to track which members we already processed.
+    Json::Value valueCopy(value);
+
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("PushAVStreamTransportCMAFContainerOptionsStruct.chunkDuration",
+                                                                  "chunkDuration", value.isMember("chunkDuration")));
+
+    char labelWithMember[kMaxLabelLength];
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "chunkDuration");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.chunkDuration, value["chunkDuration"]));
+    valueCopy.removeMember("chunkDuration");
+
+    if (value.isMember("CENCKey"))
+    {
+        snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "CENCKey");
+        ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.CENCKey, value["CENCKey"]));
+    }
+    valueCopy.removeMember("CENCKey");
+
+    return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy);
+}
+
+void ComplexArgumentParser::Finalize(
+    chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportCMAFContainerOptionsStruct::Type & request)
+{
+    ComplexArgumentParser::Finalize(request.chunkDuration);
+    ComplexArgumentParser::Finalize(request.CENCKey);
+}
+
+CHIP_ERROR ComplexArgumentParser::Setup(
+    const char * label,
+    chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportContainerOptionsStruct::Type & request,
+    Json::Value & value)
+{
+    VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT);
+
+    // Copy to track which members we already processed.
+    Json::Value valueCopy(value);
+
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("PushAVStreamTransportContainerOptionsStruct.containerType",
+                                                                  "containerType", value.isMember("containerType")));
+
+    char labelWithMember[kMaxLabelLength];
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "containerType");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.containerType, value["containerType"]));
+    valueCopy.removeMember("containerType");
+
+    if (value.isMember("CMAFContainerOptions"))
+    {
+        snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "CMAFContainerOptions");
+        ReturnErrorOnFailure(
+            ComplexArgumentParser::Setup(labelWithMember, request.CMAFContainerOptions, value["CMAFContainerOptions"]));
+    }
+    valueCopy.removeMember("CMAFContainerOptions");
+
+    return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy);
+}
+
+void ComplexArgumentParser::Finalize(
+    chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportContainerOptionsStruct::Type & request)
+{
+    ComplexArgumentParser::Finalize(request.containerType);
+    ComplexArgumentParser::Finalize(request.CMAFContainerOptions);
+}
+
+CHIP_ERROR ComplexArgumentParser::Setup(
+    const char * label, chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportOptionsStruct::Type & request,
+    Json::Value & value)
+{
+    VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT);
+
+    // Copy to track which members we already processed.
+    Json::Value valueCopy(value);
+
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("PushAVStreamTransportOptionsStruct.streamType", "streamType",
+                                                                  value.isMember("streamType")));
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("PushAVStreamTransportOptionsStruct.TLSEndpointID",
+                                                                  "TLSEndpointID", value.isMember("TLSEndpointID")));
+    ReturnErrorOnFailure(
+        ComplexArgumentParser::EnsureMemberExist("PushAVStreamTransportOptionsStruct.url", "url", value.isMember("url")));
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("PushAVStreamTransportOptionsStruct.triggerOptions",
+                                                                  "triggerOptions", value.isMember("triggerOptions")));
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("PushAVStreamTransportOptionsStruct.containerFormat",
+                                                                  "containerFormat", value.isMember("containerFormat")));
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("PushAVStreamTransportOptionsStruct.ingestMethod", "ingestMethod",
+                                                                  value.isMember("ingestMethod")));
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("PushAVStreamTransportOptionsStruct.containerOptions",
+                                                                  "containerOptions", value.isMember("containerOptions")));
+
+    char labelWithMember[kMaxLabelLength];
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "streamType");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.streamType, value["streamType"]));
+    valueCopy.removeMember("streamType");
+
+    if (value.isMember("videoStreamID"))
+    {
+        snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "videoStreamID");
+        ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.videoStreamID, value["videoStreamID"]));
+    }
+    valueCopy.removeMember("videoStreamID");
+
+    if (value.isMember("audioStreamID"))
+    {
+        snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "audioStreamID");
+        ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.audioStreamID, value["audioStreamID"]));
+    }
+    valueCopy.removeMember("audioStreamID");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "TLSEndpointID");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.TLSEndpointID, value["TLSEndpointID"]));
+    valueCopy.removeMember("TLSEndpointID");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "url");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.url, value["url"]));
+    valueCopy.removeMember("url");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "triggerOptions");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.triggerOptions, value["triggerOptions"]));
+    valueCopy.removeMember("triggerOptions");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "containerFormat");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.containerFormat, value["containerFormat"]));
+    valueCopy.removeMember("containerFormat");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "ingestMethod");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.ingestMethod, value["ingestMethod"]));
+    valueCopy.removeMember("ingestMethod");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "containerOptions");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.containerOptions, value["containerOptions"]));
+    valueCopy.removeMember("containerOptions");
+
+    if (value.isMember("metadataOptions"))
+    {
+        snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "metadataOptions");
+        ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.metadataOptions, value["metadataOptions"]));
+    }
+    valueCopy.removeMember("metadataOptions");
+
+    if (value.isMember("expiryTime"))
+    {
+        snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "expiryTime");
+        ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.expiryTime, value["expiryTime"]));
+    }
+    valueCopy.removeMember("expiryTime");
+
+    return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy);
+}
+
+void ComplexArgumentParser::Finalize(
+    chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportOptionsStruct::Type & request)
+{
+    ComplexArgumentParser::Finalize(request.streamType);
+    ComplexArgumentParser::Finalize(request.videoStreamID);
+    ComplexArgumentParser::Finalize(request.audioStreamID);
+    ComplexArgumentParser::Finalize(request.TLSEndpointID);
+    ComplexArgumentParser::Finalize(request.url);
+    ComplexArgumentParser::Finalize(request.triggerOptions);
+    ComplexArgumentParser::Finalize(request.containerFormat);
+    ComplexArgumentParser::Finalize(request.ingestMethod);
+    ComplexArgumentParser::Finalize(request.containerOptions);
+    ComplexArgumentParser::Finalize(request.metadataOptions);
+    ComplexArgumentParser::Finalize(request.expiryTime);
+}
+
+CHIP_ERROR
+ComplexArgumentParser::Setup(const char * label,
+                             chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamConfigurationStruct::Type & request,
+                             Json::Value & value)
+{
+    VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT);
+
+    // Copy to track which members we already processed.
+    Json::Value valueCopy(value);
+
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("PushAVStreamConfigurationStruct.connectionID", "connectionID",
+                                                                  value.isMember("connectionID")));
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist(
+        "PushAVStreamConfigurationStruct.streamTransportStatus", "streamTransportStatus", value.isMember("streamTransportStatus")));
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("PushAVStreamConfigurationStruct.streamTransportOptions",
+                                                                  "streamTransportOptions",
+                                                                  value.isMember("streamTransportOptions")));
+
+    char labelWithMember[kMaxLabelLength];
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "connectionID");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.connectionID, value["connectionID"]));
+    valueCopy.removeMember("connectionID");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "streamTransportStatus");
+    ReturnErrorOnFailure(
+        ComplexArgumentParser::Setup(labelWithMember, request.streamTransportStatus, value["streamTransportStatus"]));
+    valueCopy.removeMember("streamTransportStatus");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "streamTransportOptions");
+    ReturnErrorOnFailure(
+        ComplexArgumentParser::Setup(labelWithMember, request.streamTransportOptions, value["streamTransportOptions"]));
+    valueCopy.removeMember("streamTransportOptions");
+
+    return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy);
+}
+
+void ComplexArgumentParser::Finalize(
+    chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamConfigurationStruct::Type & request)
+{
+    ComplexArgumentParser::Finalize(request.connectionID);
+    ComplexArgumentParser::Finalize(request.streamTransportStatus);
+    ComplexArgumentParser::Finalize(request.streamTransportOptions);
+}
+
+CHIP_ERROR ComplexArgumentParser::Setup(const char * label, chip::app::Clusters::Chime::Structs::ChimeSoundStruct::Type & request,
+                                        Json::Value & value)
+{
+    VerifyOrReturnError(value.isObject(), CHIP_ERROR_INVALID_ARGUMENT);
+
+    // Copy to track which members we already processed.
+    Json::Value valueCopy(value);
+
+    ReturnErrorOnFailure(
+        ComplexArgumentParser::EnsureMemberExist("ChimeSoundStruct.chimeId", "chimeId", value.isMember("chimeId")));
+    ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("ChimeSoundStruct.name", "name", value.isMember("name")));
+
+    char labelWithMember[kMaxLabelLength];
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "chimeId");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.chimeId, value["chimeId"]));
+    valueCopy.removeMember("chimeId");
+
+    snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "name");
+    ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.name, value["name"]));
+    valueCopy.removeMember("name");
+
+    return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy);
+}
+
+void ComplexArgumentParser::Finalize(chip::app::Clusters::Chime::Structs::ChimeSoundStruct::Type & request)
+{
+    ComplexArgumentParser::Finalize(request.chimeId);
+    ComplexArgumentParser::Finalize(request.name);
+}
+
 CHIP_ERROR ComplexArgumentParser::Setup(const char * label,
                                         chip::app::Clusters::EcosystemInformation::Structs::EcosystemDeviceStruct::Type & request,
                                         Json::Value & value)
diff --git a/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.h b/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.h
index ccce33ece63cd8..8cec71d678a241 100644
--- a/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.h
+++ b/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.h
@@ -72,6 +72,11 @@ static CHIP_ERROR Setup(const char * label, chip::app::Clusters::detail::Structs
 
 static void Finalize(chip::app::Clusters::detail::Structs::ErrorStateStruct::Type & request);
 
+static CHIP_ERROR Setup(const char * label, chip::app::Clusters::detail::Structs::ICEServerStruct::Type & request,
+                        Json::Value & value);
+
+static void Finalize(chip::app::Clusters::detail::Structs::ICEServerStruct::Type & request);
+
 static CHIP_ERROR Setup(const char * label, chip::app::Clusters::detail::Structs::LabelStruct::Type & request, Json::Value & value);
 
 static void Finalize(chip::app::Clusters::detail::Structs::LabelStruct::Type & request);
@@ -81,6 +86,21 @@ static CHIP_ERROR Setup(const char * label, chip::app::Clusters::detail::Structs
 
 static void Finalize(chip::app::Clusters::detail::Structs::OperationalStateStruct::Type & request);
 
+static CHIP_ERROR Setup(const char * label, chip::app::Clusters::detail::Structs::PerStreamStruct::Type & request,
+                        Json::Value & value);
+
+static void Finalize(chip::app::Clusters::detail::Structs::PerStreamStruct::Type & request);
+
+static CHIP_ERROR Setup(const char * label, chip::app::Clusters::detail::Structs::ViewportStruct::Type & request,
+                        Json::Value & value);
+
+static void Finalize(chip::app::Clusters::detail::Structs::ViewportStruct::Type & request);
+
+static CHIP_ERROR Setup(const char * label, chip::app::Clusters::detail::Structs::WebRTCSessionStruct::Type & request,
+                        Json::Value & value);
+
+static void Finalize(chip::app::Clusters::detail::Structs::WebRTCSessionStruct::Type & request);
+
 static CHIP_ERROR Setup(const char * label, chip::app::Clusters::Descriptor::Structs::SemanticTagStruct::Type & request,
                         Json::Value & value);
 
@@ -658,6 +678,111 @@ static CHIP_ERROR Setup(const char * label, chip::app::Clusters::ContentControl:
 
 static void Finalize(chip::app::Clusters::ContentControl::Structs::RatingNameStruct::Type & request);
 
+static CHIP_ERROR Setup(const char * label,
+                        chip::app::Clusters::CameraAvStreamManagement::Structs::AudioCapabilitiesStruct::Type & request,
+                        Json::Value & value);
+
+static void Finalize(chip::app::Clusters::CameraAvStreamManagement::Structs::AudioCapabilitiesStruct::Type & request);
+
+static CHIP_ERROR Setup(const char * label,
+                        chip::app::Clusters::CameraAvStreamManagement::Structs::AudioStreamStruct::Type & request,
+                        Json::Value & value);
+
+static void Finalize(chip::app::Clusters::CameraAvStreamManagement::Structs::AudioStreamStruct::Type & request);
+
+static CHIP_ERROR Setup(const char * label,
+                        chip::app::Clusters::CameraAvStreamManagement::Structs::RateDistortionTradeOffPointsStruct::Type & request,
+                        Json::Value & value);
+
+static void Finalize(chip::app::Clusters::CameraAvStreamManagement::Structs::RateDistortionTradeOffPointsStruct::Type & request);
+
+static CHIP_ERROR Setup(const char * label,
+                        chip::app::Clusters::CameraAvStreamManagement::Structs::SnapshotParamsStruct::Type & request,
+                        Json::Value & value);
+
+static void Finalize(chip::app::Clusters::CameraAvStreamManagement::Structs::SnapshotParamsStruct::Type & request);
+
+static CHIP_ERROR Setup(const char * label,
+                        chip::app::Clusters::CameraAvStreamManagement::Structs::SnapshotStreamStruct::Type & request,
+                        Json::Value & value);
+
+static void Finalize(chip::app::Clusters::CameraAvStreamManagement::Structs::SnapshotStreamStruct::Type & request);
+
+static CHIP_ERROR Setup(const char * label,
+                        chip::app::Clusters::CameraAvStreamManagement::Structs::VideoSensorParamsStruct::Type & request,
+                        Json::Value & value);
+
+static void Finalize(chip::app::Clusters::CameraAvStreamManagement::Structs::VideoSensorParamsStruct::Type & request);
+
+static CHIP_ERROR Setup(const char * label,
+                        chip::app::Clusters::CameraAvStreamManagement::Structs::VideoStreamStruct::Type & request,
+                        Json::Value & value);
+
+static void Finalize(chip::app::Clusters::CameraAvStreamManagement::Structs::VideoStreamStruct::Type & request);
+
+static CHIP_ERROR Setup(const char * label,
+                        chip::app::Clusters::CameraAvSettingsUserLevelManagement::Structs::MPTZStruct::Type & request,
+                        Json::Value & value);
+
+static void Finalize(chip::app::Clusters::CameraAvSettingsUserLevelManagement::Structs::MPTZStruct::Type & request);
+
+static CHIP_ERROR
+Setup(const char * label,
+      chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportMotionTriggerTimeControlStruct::Type & request,
+      Json::Value & value);
+
+static void
+Finalize(chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportMotionTriggerTimeControlStruct::Type & request);
+
+static CHIP_ERROR
+Setup(const char * label,
+      chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportMetadataOptionsStruct::Type & request,
+      Json::Value & value);
+
+static void
+Finalize(chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportMetadataOptionsStruct::Type & request);
+
+static CHIP_ERROR
+Setup(const char * label,
+      chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportTriggerOptionsStruct::Type & request,
+      Json::Value & value);
+
+static void
+Finalize(chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportTriggerOptionsStruct::Type & request);
+
+static CHIP_ERROR
+Setup(const char * label,
+      chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportCMAFContainerOptionsStruct::Type & request,
+      Json::Value & value);
+
+static void
+Finalize(chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportCMAFContainerOptionsStruct::Type & request);
+
+static CHIP_ERROR
+Setup(const char * label,
+      chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportContainerOptionsStruct::Type & request,
+      Json::Value & value);
+
+static void
+Finalize(chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportContainerOptionsStruct::Type & request);
+
+static CHIP_ERROR Setup(const char * label,
+                        chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportOptionsStruct::Type & request,
+                        Json::Value & value);
+
+static void Finalize(chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportOptionsStruct::Type & request);
+
+static CHIP_ERROR Setup(const char * label,
+                        chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamConfigurationStruct::Type & request,
+                        Json::Value & value);
+
+static void Finalize(chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamConfigurationStruct::Type & request);
+
+static CHIP_ERROR Setup(const char * label, chip::app::Clusters::Chime::Structs::ChimeSoundStruct::Type & request,
+                        Json::Value & value);
+
+static void Finalize(chip::app::Clusters::Chime::Structs::ChimeSoundStruct::Type & request);
+
 static CHIP_ERROR Setup(const char * label,
                         chip::app::Clusters::EcosystemInformation::Structs::EcosystemDeviceStruct::Type & request,
                         Json::Value & value);
diff --git a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp
index 2d788bd2613215..15ee61c3af79bc 100644
--- a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp
+++ b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp
@@ -377,6 +377,47 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const chip::app::Clusters::detail::Structs::ICEServerStruct::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    {
+        CHIP_ERROR err = LogValue("Urls", indent + 1, value.urls);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Urls'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = LogValue("Username", indent + 1, value.username);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Username'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = LogValue("Credential", indent + 1, value.credential);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Credential'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = LogValue("Caid", indent + 1, value.caid);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Caid'");
+            return err;
+        }
+    }
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
                                      const chip::app::Clusters::detail::Structs::LabelStruct::DecodableType & value)
 {
@@ -427,6 +468,137 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const chip::app::Clusters::detail::Structs::PerStreamStruct::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    {
+        CHIP_ERROR err = LogValue("StreamID", indent + 1, value.streamID);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'StreamID'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = LogValue("OnOff", indent + 1, value.onOff);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'OnOff'");
+            return err;
+        }
+    }
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const chip::app::Clusters::detail::Structs::ViewportStruct::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    {
+        CHIP_ERROR err = LogValue("X1", indent + 1, value.x1);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'X1'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = LogValue("Y1", indent + 1, value.y1);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Y1'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = LogValue("X2", indent + 1, value.x2);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'X2'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = LogValue("Y2", indent + 1, value.y2);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Y2'");
+            return err;
+        }
+    }
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const chip::app::Clusters::detail::Structs::WebRTCSessionStruct::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    {
+        CHIP_ERROR err = LogValue("Id", indent + 1, value.id);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Id'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = LogValue("PeerNodeId", indent + 1, value.peerNodeId);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'PeerNodeId'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = LogValue("PeerFabricIndex", indent + 1, value.peerFabricIndex);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'PeerFabricIndex'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = LogValue("StreamType", indent + 1, value.streamType);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'StreamType'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = LogValue("VideoStreamID", indent + 1, value.videoStreamID);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'VideoStreamID'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = LogValue("AudioStreamID", indent + 1, value.audioStreamID);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'AudioStreamID'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = LogValue("MetadataOptions", indent + 1, value.metadataOptions);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MetadataOptions'");
+            return err;
+        }
+    }
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
                                      const chip::app::Clusters::Descriptor::Structs::SemanticTagStruct::DecodableType & value)
 {
@@ -4992,114 +5164,114 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 
-CHIP_ERROR
-DataModelLogger::LogValue(const char * label, size_t indent,
-                          const chip::app::Clusters::EcosystemInformation::Structs::EcosystemDeviceStruct::DecodableType & value)
+CHIP_ERROR DataModelLogger::LogValue(
+    const char * label, size_t indent,
+    const chip::app::Clusters::CameraAvStreamManagement::Structs::AudioCapabilitiesStruct::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = LogValue("DeviceName", indent + 1, value.deviceName);
+        CHIP_ERROR err = LogValue("MaxNumberOfChannels", indent + 1, value.maxNumberOfChannels);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'DeviceName'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MaxNumberOfChannels'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("DeviceNameLastEdit", indent + 1, value.deviceNameLastEdit);
+        CHIP_ERROR err = LogValue("SupportedCodecs", indent + 1, value.supportedCodecs);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'DeviceNameLastEdit'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'SupportedCodecs'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("BridgedEndpoint", indent + 1, value.bridgedEndpoint);
+        CHIP_ERROR err = LogValue("SupportedSampleRates", indent + 1, value.supportedSampleRates);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'BridgedEndpoint'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'SupportedSampleRates'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("OriginalEndpoint", indent + 1, value.originalEndpoint);
+        CHIP_ERROR err = LogValue("SupportedBitDepths", indent + 1, value.supportedBitDepths);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'OriginalEndpoint'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'SupportedBitDepths'");
             return err;
         }
     }
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+
+CHIP_ERROR
+DataModelLogger::LogValue(const char * label, size_t indent,
+                          const chip::app::Clusters::CameraAvStreamManagement::Structs::AudioStreamStruct::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = LogValue("DeviceTypes", indent + 1, value.deviceTypes);
+        CHIP_ERROR err = LogValue("AudioStreamID", indent + 1, value.audioStreamID);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'DeviceTypes'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'AudioStreamID'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("UniqueLocationIDs", indent + 1, value.uniqueLocationIDs);
+        CHIP_ERROR err = LogValue("StreamType", indent + 1, value.streamType);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'UniqueLocationIDs'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'StreamType'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("UniqueLocationIDsLastEdit", indent + 1, value.uniqueLocationIDsLastEdit);
+        CHIP_ERROR err = LogValue("AudioCodec", indent + 1, value.audioCodec);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'UniqueLocationIDsLastEdit'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'AudioCodec'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("FabricIndex", indent + 1, value.fabricIndex);
+        CHIP_ERROR err = LogValue("ChannelCount", indent + 1, value.channelCount);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FabricIndex'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ChannelCount'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-
-CHIP_ERROR
-DataModelLogger::LogValue(const char * label, size_t indent,
-                          const chip::app::Clusters::EcosystemInformation::Structs::EcosystemLocationStruct::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = LogValue("UniqueLocationID", indent + 1, value.uniqueLocationID);
+        CHIP_ERROR err = LogValue("SampleRate", indent + 1, value.sampleRate);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'UniqueLocationID'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'SampleRate'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("LocationDescriptor", indent + 1, value.locationDescriptor);
+        CHIP_ERROR err = LogValue("BitRate", indent + 1, value.bitRate);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'LocationDescriptor'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'BitRate'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("LocationDescriptorLastEdit", indent + 1, value.locationDescriptorLastEdit);
+        CHIP_ERROR err = LogValue("BitDepth", indent + 1, value.bitDepth);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'LocationDescriptorLastEdit'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'BitDepth'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("FabricIndex", indent + 1, value.fabricIndex);
+        CHIP_ERROR err = LogValue("ReferenceCount", indent + 1, value.referenceCount);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FabricIndex'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ReferenceCount'");
             return err;
         }
     }
@@ -5108,79 +5280,66 @@ DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const chip::app::Clusters::UnitTesting::Structs::SimpleStruct::DecodableType & value)
+CHIP_ERROR DataModelLogger::LogValue(
+    const char * label, size_t indent,
+    const chip::app::Clusters::CameraAvStreamManagement::Structs::RateDistortionTradeOffPointsStruct::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = LogValue("A", indent + 1, value.a);
-        if (err != CHIP_NO_ERROR)
-        {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'A'");
-            return err;
-        }
-    }
-    {
-        CHIP_ERROR err = LogValue("B", indent + 1, value.b);
-        if (err != CHIP_NO_ERROR)
-        {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'B'");
-            return err;
-        }
-    }
-    {
-        CHIP_ERROR err = LogValue("C", indent + 1, value.c);
-        if (err != CHIP_NO_ERROR)
-        {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'C'");
-            return err;
-        }
-    }
-    {
-        CHIP_ERROR err = LogValue("D", indent + 1, value.d);
+        CHIP_ERROR err = LogValue("Codec", indent + 1, value.codec);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'D'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Codec'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("E", indent + 1, value.e);
+        CHIP_ERROR err = LogValue("Resolution", indent + 1, value.resolution);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'E'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Resolution'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("F", indent + 1, value.f);
+        CHIP_ERROR err = LogValue("MinBitRate", indent + 1, value.minBitRate);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'F'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MinBitRate'");
             return err;
         }
     }
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+
+CHIP_ERROR
+DataModelLogger::LogValue(const char * label, size_t indent,
+                          const chip::app::Clusters::CameraAvStreamManagement::Structs::SnapshotParamsStruct::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = LogValue("G", indent + 1, value.g);
+        CHIP_ERROR err = LogValue("Resolution", indent + 1, value.resolution);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'G'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Resolution'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("H", indent + 1, value.h);
+        CHIP_ERROR err = LogValue("MaxFrameRate", indent + 1, value.maxFrameRate);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'H'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MaxFrameRate'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("I", indent + 1, value.i);
+        CHIP_ERROR err = LogValue("ImageCodec", indent + 1, value.imageCodec);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'I'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ImageCodec'");
             return err;
         }
     }
@@ -5189,72 +5348,72 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const chip::app::Clusters::UnitTesting::Structs::TestFabricScoped::DecodableType & value)
+CHIP_ERROR
+DataModelLogger::LogValue(const char * label, size_t indent,
+                          const chip::app::Clusters::CameraAvStreamManagement::Structs::SnapshotStreamStruct::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = LogValue("FabricSensitiveInt8u", indent + 1, value.fabricSensitiveInt8u);
+        CHIP_ERROR err = LogValue("SnapshotStreamID", indent + 1, value.snapshotStreamID);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FabricSensitiveInt8u'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'SnapshotStreamID'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("OptionalFabricSensitiveInt8u", indent + 1, value.optionalFabricSensitiveInt8u);
+        CHIP_ERROR err = LogValue("ImageCodec", indent + 1, value.imageCodec);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'OptionalFabricSensitiveInt8u'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ImageCodec'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("NullableFabricSensitiveInt8u", indent + 1, value.nullableFabricSensitiveInt8u);
+        CHIP_ERROR err = LogValue("FrameRate", indent + 1, value.frameRate);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NullableFabricSensitiveInt8u'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FrameRate'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("NullableOptionalFabricSensitiveInt8u", indent + 1, value.nullableOptionalFabricSensitiveInt8u);
+        CHIP_ERROR err = LogValue("BitRate", indent + 1, value.bitRate);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1,
-                                       "Struct truncated due to invalid value for 'NullableOptionalFabricSensitiveInt8u'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'BitRate'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("FabricSensitiveCharString", indent + 1, value.fabricSensitiveCharString);
+        CHIP_ERROR err = LogValue("MinResolution", indent + 1, value.minResolution);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FabricSensitiveCharString'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MinResolution'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("FabricSensitiveStruct", indent + 1, value.fabricSensitiveStruct);
+        CHIP_ERROR err = LogValue("MaxResolution", indent + 1, value.maxResolution);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FabricSensitiveStruct'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MaxResolution'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("FabricSensitiveInt8uList", indent + 1, value.fabricSensitiveInt8uList);
+        CHIP_ERROR err = LogValue("Quality", indent + 1, value.quality);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FabricSensitiveInt8uList'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Quality'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("FabricIndex", indent + 1, value.fabricIndex);
+        CHIP_ERROR err = LogValue("ReferenceCount", indent + 1, value.referenceCount);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FabricIndex'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ReferenceCount'");
             return err;
         }
     }
@@ -5263,145 +5422,154 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 
-CHIP_ERROR
-DataModelLogger::LogValue(const char * label, size_t indent,
-                          const chip::app::Clusters::UnitTesting::Structs::NullablesAndOptionalsStruct::DecodableType & value)
+CHIP_ERROR DataModelLogger::LogValue(
+    const char * label, size_t indent,
+    const chip::app::Clusters::CameraAvStreamManagement::Structs::VideoSensorParamsStruct::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = LogValue("NullableInt", indent + 1, value.nullableInt);
+        CHIP_ERROR err = LogValue("SensorWidth", indent + 1, value.sensorWidth);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NullableInt'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'SensorWidth'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("OptionalInt", indent + 1, value.optionalInt);
+        CHIP_ERROR err = LogValue("SensorHeight", indent + 1, value.sensorHeight);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'OptionalInt'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'SensorHeight'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("NullableOptionalInt", indent + 1, value.nullableOptionalInt);
+        CHIP_ERROR err = LogValue("HDRCapable", indent + 1, value.HDRCapable);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NullableOptionalInt'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'HDRCapable'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("NullableString", indent + 1, value.nullableString);
+        CHIP_ERROR err = LogValue("MaxFPS", indent + 1, value.maxFPS);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NullableString'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MaxFPS'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("OptionalString", indent + 1, value.optionalString);
+        CHIP_ERROR err = LogValue("MaxHDRFPS", indent + 1, value.maxHDRFPS);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'OptionalString'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MaxHDRFPS'");
             return err;
         }
     }
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+
+CHIP_ERROR
+DataModelLogger::LogValue(const char * label, size_t indent,
+                          const chip::app::Clusters::CameraAvStreamManagement::Structs::VideoStreamStruct::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = LogValue("NullableOptionalString", indent + 1, value.nullableOptionalString);
+        CHIP_ERROR err = LogValue("VideoStreamID", indent + 1, value.videoStreamID);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NullableOptionalString'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'VideoStreamID'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("NullableStruct", indent + 1, value.nullableStruct);
+        CHIP_ERROR err = LogValue("StreamType", indent + 1, value.streamType);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NullableStruct'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'StreamType'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("OptionalStruct", indent + 1, value.optionalStruct);
+        CHIP_ERROR err = LogValue("VideoCodec", indent + 1, value.videoCodec);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'OptionalStruct'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'VideoCodec'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("NullableOptionalStruct", indent + 1, value.nullableOptionalStruct);
+        CHIP_ERROR err = LogValue("MinFrameRate", indent + 1, value.minFrameRate);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NullableOptionalStruct'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MinFrameRate'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("NullableList", indent + 1, value.nullableList);
+        CHIP_ERROR err = LogValue("MaxFrameRate", indent + 1, value.maxFrameRate);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NullableList'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MaxFrameRate'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("OptionalList", indent + 1, value.optionalList);
+        CHIP_ERROR err = LogValue("MinResolution", indent + 1, value.minResolution);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'OptionalList'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MinResolution'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("NullableOptionalList", indent + 1, value.nullableOptionalList);
+        CHIP_ERROR err = LogValue("MaxResolution", indent + 1, value.maxResolution);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NullableOptionalList'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MaxResolution'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const chip::app::Clusters::UnitTesting::Structs::NestedStruct::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = LogValue("A", indent + 1, value.a);
+        CHIP_ERROR err = LogValue("MinBitRate", indent + 1, value.minBitRate);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'A'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MinBitRate'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("B", indent + 1, value.b);
+        CHIP_ERROR err = LogValue("MaxBitRate", indent + 1, value.maxBitRate);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'B'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MaxBitRate'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("C", indent + 1, value.c);
+        CHIP_ERROR err = LogValue("MinFragmentLen", indent + 1, value.minFragmentLen);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'C'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MinFragmentLen'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("D", indent + 1, value.d);
+        CHIP_ERROR err = LogValue("MaxFragmentLen", indent + 1, value.maxFragmentLen);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'D'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MaxFragmentLen'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = LogValue("ReferenceCount", indent + 1, value.referenceCount);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ReferenceCount'");
             return err;
         }
     }
@@ -5410,63 +5578,75 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const chip::app::Clusters::UnitTesting::Structs::NestedStructList::DecodableType & value)
+CHIP_ERROR DataModelLogger::LogValue(
+    const char * label, size_t indent,
+    const chip::app::Clusters::CameraAvSettingsUserLevelManagement::Structs::MPTZStruct::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = LogValue("A", indent + 1, value.a);
+        CHIP_ERROR err = LogValue("MPan", indent + 1, value.MPan);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'A'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MPan'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("B", indent + 1, value.b);
+        CHIP_ERROR err = LogValue("MTilt", indent + 1, value.MTilt);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'B'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MTilt'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("C", indent + 1, value.c);
+        CHIP_ERROR err = LogValue("MZoom", indent + 1, value.MZoom);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'C'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MZoom'");
             return err;
         }
     }
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+
+CHIP_ERROR DataModelLogger::LogValue(
+    const char * label, size_t indent,
+    const chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportMotionTriggerTimeControlStruct::DecodableType &
+        value)
+{
+    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = LogValue("D", indent + 1, value.d);
+        CHIP_ERROR err = LogValue("InitialDuration", indent + 1, value.initialDuration);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'D'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'InitialDuration'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("E", indent + 1, value.e);
+        CHIP_ERROR err = LogValue("AugmentationDuration", indent + 1, value.augmentationDuration);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'E'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'AugmentationDuration'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("F", indent + 1, value.f);
+        CHIP_ERROR err = LogValue("MaxDuration", indent + 1, value.maxDuration);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'F'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MaxDuration'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("G", indent + 1, value.g);
+        CHIP_ERROR err = LogValue("BlindDuration", indent + 1, value.blindDuration);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'G'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'BlindDuration'");
             return err;
         }
     }
@@ -5475,40 +5655,32 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const chip::app::Clusters::UnitTesting::Structs::DoubleNestedStructList::DecodableType & value)
+CHIP_ERROR DataModelLogger::LogValue(
+    const char * label, size_t indent,
+    const chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportMetadataOptionsStruct::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = LogValue("A", indent + 1, value.a);
+        CHIP_ERROR err = LogValue("Multiplexing", indent + 1, value.multiplexing);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'A'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Multiplexing'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const chip::app::Clusters::UnitTesting::Structs::TestListStructOctet::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = LogValue("Member1", indent + 1, value.member1);
+        CHIP_ERROR err = LogValue("IncludeMotionZones", indent + 1, value.includeMotionZones);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Member1'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'IncludeMotionZones'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = LogValue("Member2", indent + 1, value.member2);
+        CHIP_ERROR err = LogValue("EnableMetadataPrivacySensitive", indent + 1, value.enableMetadataPrivacySensitive);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Member2'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'EnableMetadataPrivacySensitive'");
             return err;
         }
     }
@@ -5517,47 +5689,48 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const AccessControl::Events::AccessControlEntryChanged::DecodableType & value)
+CHIP_ERROR DataModelLogger::LogValue(
+    const char * label, size_t indent,
+    const chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportTriggerOptionsStruct::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("AdminNodeID", indent + 1, value.adminNodeID);
+        CHIP_ERROR err = LogValue("TriggerType", indent + 1, value.triggerType);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'AdminNodeID'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'TriggerType'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("AdminPasscodeID", indent + 1, value.adminPasscodeID);
+        CHIP_ERROR err = LogValue("MotionZones", indent + 1, value.motionZones);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'AdminPasscodeID'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MotionZones'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("ChangeType", indent + 1, value.changeType);
+        CHIP_ERROR err = LogValue("MotionSensitivity", indent + 1, value.motionSensitivity);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ChangeType'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MotionSensitivity'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("LatestValue", indent + 1, value.latestValue);
+        CHIP_ERROR err = LogValue("MotionTimeControl", indent + 1, value.motionTimeControl);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'LatestValue'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MotionTimeControl'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("FabricIndex", indent + 1, value.fabricIndex);
+        CHIP_ERROR err = LogValue("ActivationReason", indent + 1, value.activationReason);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'FabricIndex'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ActivationReason'");
             return err;
         }
     }
@@ -5565,47 +5738,52 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
 
     return CHIP_NO_ERROR;
 }
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const AccessControl::Events::AccessControlExtensionChanged::DecodableType & value)
+
+CHIP_ERROR DataModelLogger::LogValue(
+    const char * label, size_t indent,
+    const chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportCMAFContainerOptionsStruct::DecodableType &
+        value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("AdminNodeID", indent + 1, value.adminNodeID);
-        if (err != CHIP_NO_ERROR)
-        {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'AdminNodeID'");
-            return err;
-        }
-    }
-    {
-        CHIP_ERROR err = DataModelLogger::LogValue("AdminPasscodeID", indent + 1, value.adminPasscodeID);
+        CHIP_ERROR err = LogValue("ChunkDuration", indent + 1, value.chunkDuration);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'AdminPasscodeID'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ChunkDuration'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("ChangeType", indent + 1, value.changeType);
+        CHIP_ERROR err = LogValue("CENCKey", indent + 1, value.CENCKey);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ChangeType'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'CENCKey'");
             return err;
         }
     }
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+
+CHIP_ERROR DataModelLogger::LogValue(
+    const char * label, size_t indent,
+    const chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportContainerOptionsStruct::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("LatestValue", indent + 1, value.latestValue);
+        CHIP_ERROR err = LogValue("ContainerType", indent + 1, value.containerType);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'LatestValue'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ContainerType'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("FabricIndex", indent + 1, value.fabricIndex);
+        CHIP_ERROR err = LogValue("CMAFContainerOptions", indent + 1, value.CMAFContainerOptions);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'FabricIndex'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'CMAFContainerOptions'");
             return err;
         }
     }
@@ -5613,109 +5791,97 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
 
     return CHIP_NO_ERROR;
 }
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const AccessControl::Events::FabricRestrictionReviewUpdate::DecodableType & value)
+
+CHIP_ERROR DataModelLogger::LogValue(
+    const char * label, size_t indent,
+    const chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportOptionsStruct::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Token", indent + 1, value.token);
+        CHIP_ERROR err = LogValue("StreamType", indent + 1, value.streamType);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Token'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'StreamType'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Instruction", indent + 1, value.instruction);
+        CHIP_ERROR err = LogValue("VideoStreamID", indent + 1, value.videoStreamID);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Instruction'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'VideoStreamID'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("ARLRequestFlowUrl", indent + 1, value.ARLRequestFlowUrl);
+        CHIP_ERROR err = LogValue("AudioStreamID", indent + 1, value.audioStreamID);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ARLRequestFlowUrl'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'AudioStreamID'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("FabricIndex", indent + 1, value.fabricIndex);
+        CHIP_ERROR err = LogValue("TLSEndpointID", indent + 1, value.TLSEndpointID);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'FabricIndex'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'TLSEndpointID'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, const Actions::Events::StateChanged::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("ActionID", indent + 1, value.actionID);
+        CHIP_ERROR err = LogValue("Url", indent + 1, value.url);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ActionID'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Url'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("InvokeID", indent + 1, value.invokeID);
+        CHIP_ERROR err = LogValue("TriggerOptions", indent + 1, value.triggerOptions);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'InvokeID'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'TriggerOptions'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("NewState", indent + 1, value.newState);
+        CHIP_ERROR err = LogValue("ContainerFormat", indent + 1, value.containerFormat);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'NewState'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ContainerFormat'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, const Actions::Events::ActionFailed::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("ActionID", indent + 1, value.actionID);
+        CHIP_ERROR err = LogValue("IngestMethod", indent + 1, value.ingestMethod);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ActionID'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'IngestMethod'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("InvokeID", indent + 1, value.invokeID);
+        CHIP_ERROR err = LogValue("ContainerOptions", indent + 1, value.containerOptions);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'InvokeID'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ContainerOptions'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("NewState", indent + 1, value.newState);
+        CHIP_ERROR err = LogValue("MetadataOptions", indent + 1, value.metadataOptions);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'NewState'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'MetadataOptions'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Error", indent + 1, value.error);
+        CHIP_ERROR err = LogValue("ExpiryTime", indent + 1, value.expiryTime);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Error'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ExpiryTime'");
             return err;
         }
     }
@@ -5723,15 +5889,33 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, const Ac
 
     return CHIP_NO_ERROR;
 }
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const BasicInformation::Events::StartUp::DecodableType & value)
+
+CHIP_ERROR DataModelLogger::LogValue(
+    const char * label, size_t indent,
+    const chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamConfigurationStruct::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("SoftwareVersion", indent + 1, value.softwareVersion);
+        CHIP_ERROR err = LogValue("ConnectionID", indent + 1, value.connectionID);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SoftwareVersion'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ConnectionID'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = LogValue("StreamTransportStatus", indent + 1, value.streamTransportStatus);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'StreamTransportStatus'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = LogValue("StreamTransportOptions", indent + 1, value.streamTransportOptions);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'StreamTransportOptions'");
             return err;
         }
     }
@@ -5739,39 +5923,24 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
 
     return CHIP_NO_ERROR;
 }
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const BasicInformation::Events::ShutDown::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
-    DataModelLogger::LogString(indent, "}");
 
-    return CHIP_NO_ERROR;
-}
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const BasicInformation::Events::Leave::DecodableType & value)
+                                     const chip::app::Clusters::Chime::Structs::ChimeSoundStruct::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("FabricIndex", indent + 1, value.fabricIndex);
+        CHIP_ERROR err = LogValue("ChimeId", indent + 1, value.chimeId);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'FabricIndex'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'ChimeId'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const BasicInformation::Events::ReachableChanged::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("ReachableNewValue", indent + 1, value.reachableNewValue);
+        CHIP_ERROR err = LogValue("Name", indent + 1, value.name);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ReachableNewValue'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Name'");
             return err;
         }
     }
@@ -5779,63 +5948,73 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
 
     return CHIP_NO_ERROR;
 }
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const OtaSoftwareUpdateRequestor::Events::StateTransition::DecodableType & value)
+
+CHIP_ERROR
+DataModelLogger::LogValue(const char * label, size_t indent,
+                          const chip::app::Clusters::EcosystemInformation::Structs::EcosystemDeviceStruct::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("PreviousState", indent + 1, value.previousState);
+        CHIP_ERROR err = LogValue("DeviceName", indent + 1, value.deviceName);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'PreviousState'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'DeviceName'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("NewState", indent + 1, value.newState);
+        CHIP_ERROR err = LogValue("DeviceNameLastEdit", indent + 1, value.deviceNameLastEdit);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'NewState'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'DeviceNameLastEdit'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Reason", indent + 1, value.reason);
+        CHIP_ERROR err = LogValue("BridgedEndpoint", indent + 1, value.bridgedEndpoint);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Reason'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'BridgedEndpoint'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("TargetSoftwareVersion", indent + 1, value.targetSoftwareVersion);
+        CHIP_ERROR err = LogValue("OriginalEndpoint", indent + 1, value.originalEndpoint);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'TargetSoftwareVersion'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'OriginalEndpoint'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const OtaSoftwareUpdateRequestor::Events::VersionApplied::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("SoftwareVersion", indent + 1, value.softwareVersion);
+        CHIP_ERROR err = LogValue("DeviceTypes", indent + 1, value.deviceTypes);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SoftwareVersion'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'DeviceTypes'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("ProductID", indent + 1, value.productID);
+        CHIP_ERROR err = LogValue("UniqueLocationIDs", indent + 1, value.uniqueLocationIDs);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ProductID'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'UniqueLocationIDs'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = LogValue("UniqueLocationIDsLastEdit", indent + 1, value.uniqueLocationIDsLastEdit);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'UniqueLocationIDsLastEdit'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = LogValue("FabricIndex", indent + 1, value.fabricIndex);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FabricIndex'");
             return err;
         }
     }
@@ -5843,39 +6022,41 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
 
     return CHIP_NO_ERROR;
 }
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const OtaSoftwareUpdateRequestor::Events::DownloadError::DecodableType & value)
+
+CHIP_ERROR
+DataModelLogger::LogValue(const char * label, size_t indent,
+                          const chip::app::Clusters::EcosystemInformation::Structs::EcosystemLocationStruct::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("SoftwareVersion", indent + 1, value.softwareVersion);
+        CHIP_ERROR err = LogValue("UniqueLocationID", indent + 1, value.uniqueLocationID);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SoftwareVersion'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'UniqueLocationID'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("BytesDownloaded", indent + 1, value.bytesDownloaded);
+        CHIP_ERROR err = LogValue("LocationDescriptor", indent + 1, value.locationDescriptor);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'BytesDownloaded'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'LocationDescriptor'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("ProgressPercent", indent + 1, value.progressPercent);
+        CHIP_ERROR err = LogValue("LocationDescriptorLastEdit", indent + 1, value.locationDescriptorLastEdit);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ProgressPercent'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'LocationDescriptorLastEdit'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("PlatformCode", indent + 1, value.platformCode);
+        CHIP_ERROR err = LogValue("FabricIndex", indent + 1, value.fabricIndex);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'PlatformCode'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FabricIndex'");
             return err;
         }
     }
@@ -5883,95 +6064,80 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
 
     return CHIP_NO_ERROR;
 }
+
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const PowerSource::Events::WiredFaultChange::DecodableType & value)
+                                     const chip::app::Clusters::UnitTesting::Structs::SimpleStruct::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Current", indent + 1, value.current);
+        CHIP_ERROR err = LogValue("A", indent + 1, value.a);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Current'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'A'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Previous", indent + 1, value.previous);
+        CHIP_ERROR err = LogValue("B", indent + 1, value.b);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Previous'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'B'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const PowerSource::Events::BatFaultChange::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Current", indent + 1, value.current);
+        CHIP_ERROR err = LogValue("C", indent + 1, value.c);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Current'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'C'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Previous", indent + 1, value.previous);
+        CHIP_ERROR err = LogValue("D", indent + 1, value.d);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Previous'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'D'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const PowerSource::Events::BatChargeFaultChange::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Current", indent + 1, value.current);
+        CHIP_ERROR err = LogValue("E", indent + 1, value.e);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Current'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'E'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Previous", indent + 1, value.previous);
+        CHIP_ERROR err = LogValue("F", indent + 1, value.f);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Previous'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'F'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const GeneralDiagnostics::Events::HardwareFaultChange::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Current", indent + 1, value.current);
+        CHIP_ERROR err = LogValue("G", indent + 1, value.g);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Current'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'G'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Previous", indent + 1, value.previous);
+        CHIP_ERROR err = LogValue("H", indent + 1, value.h);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Previous'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'H'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = LogValue("I", indent + 1, value.i);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'I'");
             return err;
         }
     }
@@ -5979,95 +6145,73 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
 
     return CHIP_NO_ERROR;
 }
+
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const GeneralDiagnostics::Events::RadioFaultChange::DecodableType & value)
+                                     const chip::app::Clusters::UnitTesting::Structs::TestFabricScoped::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Current", indent + 1, value.current);
+        CHIP_ERROR err = LogValue("FabricSensitiveInt8u", indent + 1, value.fabricSensitiveInt8u);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Current'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FabricSensitiveInt8u'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Previous", indent + 1, value.previous);
+        CHIP_ERROR err = LogValue("OptionalFabricSensitiveInt8u", indent + 1, value.optionalFabricSensitiveInt8u);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Previous'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'OptionalFabricSensitiveInt8u'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const GeneralDiagnostics::Events::NetworkFaultChange::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Current", indent + 1, value.current);
+        CHIP_ERROR err = LogValue("NullableFabricSensitiveInt8u", indent + 1, value.nullableFabricSensitiveInt8u);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Current'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NullableFabricSensitiveInt8u'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Previous", indent + 1, value.previous);
+        CHIP_ERROR err = LogValue("NullableOptionalFabricSensitiveInt8u", indent + 1, value.nullableOptionalFabricSensitiveInt8u);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Previous'");
+            DataModelLogger::LogString(indent + 1,
+                                       "Struct truncated due to invalid value for 'NullableOptionalFabricSensitiveInt8u'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const GeneralDiagnostics::Events::BootReason::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("BootReason", indent + 1, value.bootReason);
+        CHIP_ERROR err = LogValue("FabricSensitiveCharString", indent + 1, value.fabricSensitiveCharString);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'BootReason'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FabricSensitiveCharString'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const SoftwareDiagnostics::Events::SoftwareFault::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Id", indent + 1, value.id);
+        CHIP_ERROR err = LogValue("FabricSensitiveStruct", indent + 1, value.fabricSensitiveStruct);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Id'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FabricSensitiveStruct'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Name", indent + 1, value.name);
+        CHIP_ERROR err = LogValue("FabricSensitiveInt8uList", indent + 1, value.fabricSensitiveInt8uList);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Name'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FabricSensitiveInt8uList'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("FaultRecording", indent + 1, value.faultRecording);
+        CHIP_ERROR err = LogValue("FabricIndex", indent + 1, value.fabricIndex);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'FaultRecording'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FabricIndex'");
             return err;
         }
     }
@@ -6075,207 +6219,105 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
 
     return CHIP_NO_ERROR;
 }
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const ThreadNetworkDiagnostics::Events::ConnectionStatus::DecodableType & value)
+
+CHIP_ERROR
+DataModelLogger::LogValue(const char * label, size_t indent,
+                          const chip::app::Clusters::UnitTesting::Structs::NullablesAndOptionalsStruct::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("ConnectionStatus", indent + 1, value.connectionStatus);
+        CHIP_ERROR err = LogValue("NullableInt", indent + 1, value.nullableInt);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ConnectionStatus'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NullableInt'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const ThreadNetworkDiagnostics::Events::NetworkFaultChange::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Current", indent + 1, value.current);
+        CHIP_ERROR err = LogValue("OptionalInt", indent + 1, value.optionalInt);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Current'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'OptionalInt'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Previous", indent + 1, value.previous);
+        CHIP_ERROR err = LogValue("NullableOptionalInt", indent + 1, value.nullableOptionalInt);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Previous'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NullableOptionalInt'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const WiFiNetworkDiagnostics::Events::Disconnection::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("ReasonCode", indent + 1, value.reasonCode);
+        CHIP_ERROR err = LogValue("NullableString", indent + 1, value.nullableString);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ReasonCode'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NullableString'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const WiFiNetworkDiagnostics::Events::AssociationFailure::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("AssociationFailureCause", indent + 1, value.associationFailureCause);
+        CHIP_ERROR err = LogValue("OptionalString", indent + 1, value.optionalString);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'AssociationFailureCause'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'OptionalString'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Status", indent + 1, value.status);
+        CHIP_ERROR err = LogValue("NullableOptionalString", indent + 1, value.nullableOptionalString);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Status'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NullableOptionalString'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const WiFiNetworkDiagnostics::Events::ConnectionStatus::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("ConnectionStatus", indent + 1, value.connectionStatus);
+        CHIP_ERROR err = LogValue("NullableStruct", indent + 1, value.nullableStruct);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ConnectionStatus'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NullableStruct'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const TimeSynchronization::Events::DSTTableEmpty::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const TimeSynchronization::Events::DSTStatus::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("DSTOffsetActive", indent + 1, value.DSTOffsetActive);
+        CHIP_ERROR err = LogValue("OptionalStruct", indent + 1, value.optionalStruct);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'DSTOffsetActive'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'OptionalStruct'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const TimeSynchronization::Events::TimeZoneStatus::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Offset", indent + 1, value.offset);
+        CHIP_ERROR err = LogValue("NullableOptionalStruct", indent + 1, value.nullableOptionalStruct);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Offset'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NullableOptionalStruct'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Name", indent + 1, value.name);
+        CHIP_ERROR err = LogValue("NullableList", indent + 1, value.nullableList);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Name'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NullableList'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const TimeSynchronization::Events::TimeFailure::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const TimeSynchronization::Events::MissingTrustedTimeSource::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const BridgedDeviceBasicInformation::Events::StartUp::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("SoftwareVersion", indent + 1, value.softwareVersion);
+        CHIP_ERROR err = LogValue("OptionalList", indent + 1, value.optionalList);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SoftwareVersion'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'OptionalList'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const BridgedDeviceBasicInformation::Events::ShutDown::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const BridgedDeviceBasicInformation::Events::Leave::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const BridgedDeviceBasicInformation::Events::ReachableChanged::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("ReachableNewValue", indent + 1, value.reachableNewValue);
+        CHIP_ERROR err = LogValue("NullableOptionalList", indent + 1, value.nullableOptionalList);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ReachableNewValue'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'NullableOptionalList'");
             return err;
         }
     }
@@ -6283,60 +6325,40 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
 
     return CHIP_NO_ERROR;
 }
+
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const BridgedDeviceBasicInformation::Events::ActiveChanged::DecodableType & value)
+                                     const chip::app::Clusters::UnitTesting::Structs::NestedStruct::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("PromisedActiveDuration", indent + 1, value.promisedActiveDuration);
+        CHIP_ERROR err = LogValue("A", indent + 1, value.a);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'PromisedActiveDuration'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'A'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, const Switch::Events::SwitchLatched::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("NewPosition", indent + 1, value.newPosition);
+        CHIP_ERROR err = LogValue("B", indent + 1, value.b);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'NewPosition'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'B'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, const Switch::Events::InitialPress::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("NewPosition", indent + 1, value.newPosition);
+        CHIP_ERROR err = LogValue("C", indent + 1, value.c);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'NewPosition'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'C'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, const Switch::Events::LongPress::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("NewPosition", indent + 1, value.newPosition);
+        CHIP_ERROR err = LogValue("D", indent + 1, value.d);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'NewPosition'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'D'");
             return err;
         }
     }
@@ -6344,94 +6366,64 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, const Sw
 
     return CHIP_NO_ERROR;
 }
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, const Switch::Events::ShortRelease::DecodableType & value)
+
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const chip::app::Clusters::UnitTesting::Structs::NestedStructList::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("PreviousPosition", indent + 1, value.previousPosition);
+        CHIP_ERROR err = LogValue("A", indent + 1, value.a);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'PreviousPosition'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'A'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, const Switch::Events::LongRelease::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("PreviousPosition", indent + 1, value.previousPosition);
+        CHIP_ERROR err = LogValue("B", indent + 1, value.b);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'PreviousPosition'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'B'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const Switch::Events::MultiPressOngoing::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("NewPosition", indent + 1, value.newPosition);
+        CHIP_ERROR err = LogValue("C", indent + 1, value.c);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'NewPosition'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'C'");
             return err;
         }
     }
     {
-        CHIP_ERROR err =
-            DataModelLogger::LogValue("CurrentNumberOfPressesCounted", indent + 1, value.currentNumberOfPressesCounted);
+        CHIP_ERROR err = LogValue("D", indent + 1, value.d);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'CurrentNumberOfPressesCounted'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'D'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const Switch::Events::MultiPressComplete::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("PreviousPosition", indent + 1, value.previousPosition);
+        CHIP_ERROR err = LogValue("E", indent + 1, value.e);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'PreviousPosition'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'E'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("TotalNumberOfPressesCounted", indent + 1, value.totalNumberOfPressesCounted);
+        CHIP_ERROR err = LogValue("F", indent + 1, value.f);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'TotalNumberOfPressesCounted'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'F'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const BooleanState::Events::StateChange::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("StateValue", indent + 1, value.stateValue);
+        CHIP_ERROR err = LogValue("G", indent + 1, value.g);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'StateValue'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'G'");
             return err;
         }
     }
@@ -6439,15 +6431,16 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
 
     return CHIP_NO_ERROR;
 }
+
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const OvenCavityOperationalState::Events::OperationalError::DecodableType & value)
+                                     const chip::app::Clusters::UnitTesting::Structs::DoubleNestedStructList::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("ErrorState", indent + 1, value.errorState);
+        CHIP_ERROR err = LogValue("A", indent + 1, value.a);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ErrorState'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'A'");
             return err;
         }
     }
@@ -6455,31 +6448,24 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
 
     return CHIP_NO_ERROR;
 }
+
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const OvenCavityOperationalState::Events::OperationCompletion::DecodableType & value)
+                                     const chip::app::Clusters::UnitTesting::Structs::TestListStructOctet::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("CompletionErrorCode", indent + 1, value.completionErrorCode);
-        if (err != CHIP_NO_ERROR)
-        {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'CompletionErrorCode'");
-            return err;
-        }
-    }
-    {
-        CHIP_ERROR err = DataModelLogger::LogValue("TotalOperationalTime", indent + 1, value.totalOperationalTime);
+        CHIP_ERROR err = LogValue("Member1", indent + 1, value.member1);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'TotalOperationalTime'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Member1'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("PausedTime", indent + 1, value.pausedTime);
+        CHIP_ERROR err = LogValue("Member2", indent + 1, value.member2);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'PausedTime'");
+            DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'Member2'");
             return err;
         }
     }
@@ -6487,39 +6473,48 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
 
     return CHIP_NO_ERROR;
 }
+
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const RefrigeratorAlarm::Events::Notify::DecodableType & value)
+                                     const AccessControl::Events::AccessControlEntryChanged::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Active", indent + 1, value.active);
+        CHIP_ERROR err = DataModelLogger::LogValue("AdminNodeID", indent + 1, value.adminNodeID);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Active'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'AdminNodeID'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Inactive", indent + 1, value.inactive);
+        CHIP_ERROR err = DataModelLogger::LogValue("AdminPasscodeID", indent + 1, value.adminPasscodeID);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Inactive'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'AdminPasscodeID'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("State", indent + 1, value.state);
+        CHIP_ERROR err = DataModelLogger::LogValue("ChangeType", indent + 1, value.changeType);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'State'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ChangeType'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Mask", indent + 1, value.mask);
+        CHIP_ERROR err = DataModelLogger::LogValue("LatestValue", indent + 1, value.latestValue);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Mask'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'LatestValue'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("FabricIndex", indent + 1, value.fabricIndex);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'FabricIndex'");
             return err;
         }
     }
@@ -6528,117 +6523,46 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const SmokeCoAlarm::Events::SmokeAlarm::DecodableType & value)
+                                     const AccessControl::Events::AccessControlExtensionChanged::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("AlarmSeverityLevel", indent + 1, value.alarmSeverityLevel);
+        CHIP_ERROR err = DataModelLogger::LogValue("AdminNodeID", indent + 1, value.adminNodeID);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'AlarmSeverityLevel'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'AdminNodeID'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, const SmokeCoAlarm::Events::COAlarm::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("AlarmSeverityLevel", indent + 1, value.alarmSeverityLevel);
+        CHIP_ERROR err = DataModelLogger::LogValue("AdminPasscodeID", indent + 1, value.adminPasscodeID);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'AlarmSeverityLevel'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'AdminPasscodeID'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const SmokeCoAlarm::Events::LowBattery::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("AlarmSeverityLevel", indent + 1, value.alarmSeverityLevel);
+        CHIP_ERROR err = DataModelLogger::LogValue("ChangeType", indent + 1, value.changeType);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'AlarmSeverityLevel'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ChangeType'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const SmokeCoAlarm::Events::HardwareFault::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const SmokeCoAlarm::Events::EndOfService::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const SmokeCoAlarm::Events::SelfTestComplete::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const SmokeCoAlarm::Events::AlarmMuted::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const SmokeCoAlarm::Events::MuteEnded::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const SmokeCoAlarm::Events::InterconnectSmokeAlarm::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("AlarmSeverityLevel", indent + 1, value.alarmSeverityLevel);
+        CHIP_ERROR err = DataModelLogger::LogValue("LatestValue", indent + 1, value.latestValue);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'AlarmSeverityLevel'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'LatestValue'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const SmokeCoAlarm::Events::InterconnectCOAlarm::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("AlarmSeverityLevel", indent + 1, value.alarmSeverityLevel);
+        CHIP_ERROR err = DataModelLogger::LogValue("FabricIndex", indent + 1, value.fabricIndex);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'AlarmSeverityLevel'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'FabricIndex'");
             return err;
         }
     }
@@ -6646,62 +6570,39 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
 
     return CHIP_NO_ERROR;
 }
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, const SmokeCoAlarm::Events::AllClear::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const DishwasherAlarm::Events::Notify::DecodableType & value)
+                                     const AccessControl::Events::FabricRestrictionReviewUpdate::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Active", indent + 1, value.active);
-        if (err != CHIP_NO_ERROR)
-        {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Active'");
-            return err;
-        }
-    }
-    {
-        CHIP_ERROR err = DataModelLogger::LogValue("Inactive", indent + 1, value.inactive);
+        CHIP_ERROR err = DataModelLogger::LogValue("Token", indent + 1, value.token);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Inactive'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Token'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("State", indent + 1, value.state);
+        CHIP_ERROR err = DataModelLogger::LogValue("Instruction", indent + 1, value.instruction);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'State'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Instruction'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Mask", indent + 1, value.mask);
+        CHIP_ERROR err = DataModelLogger::LogValue("ARLRequestFlowUrl", indent + 1, value.ARLRequestFlowUrl);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Mask'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ARLRequestFlowUrl'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const OperationalState::Events::OperationalError::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("ErrorState", indent + 1, value.errorState);
+        CHIP_ERROR err = DataModelLogger::LogValue("FabricIndex", indent + 1, value.fabricIndex);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ErrorState'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'FabricIndex'");
             return err;
         }
     }
@@ -6709,31 +6610,30 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
 
     return CHIP_NO_ERROR;
 }
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const OperationalState::Events::OperationCompletion::DecodableType & value)
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, const Actions::Events::StateChanged::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("CompletionErrorCode", indent + 1, value.completionErrorCode);
+        CHIP_ERROR err = DataModelLogger::LogValue("ActionID", indent + 1, value.actionID);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'CompletionErrorCode'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ActionID'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("TotalOperationalTime", indent + 1, value.totalOperationalTime);
+        CHIP_ERROR err = DataModelLogger::LogValue("InvokeID", indent + 1, value.invokeID);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'TotalOperationalTime'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'InvokeID'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("PausedTime", indent + 1, value.pausedTime);
+        CHIP_ERROR err = DataModelLogger::LogValue("NewState", indent + 1, value.newState);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'PausedTime'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'NewState'");
             return err;
         }
     }
@@ -6741,47 +6641,38 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
 
     return CHIP_NO_ERROR;
 }
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const RvcOperationalState::Events::OperationalError::DecodableType & value)
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, const Actions::Events::ActionFailed::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("ErrorState", indent + 1, value.errorState);
+        CHIP_ERROR err = DataModelLogger::LogValue("ActionID", indent + 1, value.actionID);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ErrorState'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ActionID'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const RvcOperationalState::Events::OperationCompletion::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("CompletionErrorCode", indent + 1, value.completionErrorCode);
+        CHIP_ERROR err = DataModelLogger::LogValue("InvokeID", indent + 1, value.invokeID);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'CompletionErrorCode'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'InvokeID'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("TotalOperationalTime", indent + 1, value.totalOperationalTime);
+        CHIP_ERROR err = DataModelLogger::LogValue("NewState", indent + 1, value.newState);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'TotalOperationalTime'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'NewState'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("PausedTime", indent + 1, value.pausedTime);
+        CHIP_ERROR err = DataModelLogger::LogValue("Error", indent + 1, value.error);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'PausedTime'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Error'");
             return err;
         }
     }
@@ -6790,22 +6681,38 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const BooleanStateConfiguration::Events::AlarmsStateChanged::DecodableType & value)
+                                     const BasicInformation::Events::StartUp::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("AlarmsActive", indent + 1, value.alarmsActive);
+        CHIP_ERROR err = DataModelLogger::LogValue("SoftwareVersion", indent + 1, value.softwareVersion);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'AlarmsActive'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SoftwareVersion'");
             return err;
         }
     }
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const BasicInformation::Events::ShutDown::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const BasicInformation::Events::Leave::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("AlarmsSuppressed", indent + 1, value.alarmsSuppressed);
+        CHIP_ERROR err = DataModelLogger::LogValue("FabricIndex", indent + 1, value.fabricIndex);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'AlarmsSuppressed'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'FabricIndex'");
             return err;
         }
     }
@@ -6814,14 +6721,14 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const BooleanStateConfiguration::Events::SensorFault::DecodableType & value)
+                                     const BasicInformation::Events::ReachableChanged::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("SensorFault", indent + 1, value.sensorFault);
+        CHIP_ERROR err = DataModelLogger::LogValue("ReachableNewValue", indent + 1, value.reachableNewValue);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SensorFault'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ReachableNewValue'");
             return err;
         }
     }
@@ -6830,54 +6737,38 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const ValveConfigurationAndControl::Events::ValveStateChanged::DecodableType & value)
+                                     const OtaSoftwareUpdateRequestor::Events::StateTransition::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("ValveState", indent + 1, value.valveState);
+        CHIP_ERROR err = DataModelLogger::LogValue("PreviousState", indent + 1, value.previousState);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ValveState'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'PreviousState'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("ValveLevel", indent + 1, value.valveLevel);
+        CHIP_ERROR err = DataModelLogger::LogValue("NewState", indent + 1, value.newState);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ValveLevel'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'NewState'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const ValveConfigurationAndControl::Events::ValveFault::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("ValveFault", indent + 1, value.valveFault);
+        CHIP_ERROR err = DataModelLogger::LogValue("Reason", indent + 1, value.reason);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ValveFault'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Reason'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const ElectricalPowerMeasurement::Events::MeasurementPeriodRanges::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Ranges", indent + 1, value.ranges);
+        CHIP_ERROR err = DataModelLogger::LogValue("TargetSoftwareVersion", indent + 1, value.targetSoftwareVersion);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Ranges'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'TargetSoftwareVersion'");
             return err;
         }
     }
@@ -6886,22 +6777,22 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const ElectricalEnergyMeasurement::Events::CumulativeEnergyMeasured::DecodableType & value)
+                                     const OtaSoftwareUpdateRequestor::Events::VersionApplied::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("EnergyImported", indent + 1, value.energyImported);
+        CHIP_ERROR err = DataModelLogger::LogValue("SoftwareVersion", indent + 1, value.softwareVersion);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'EnergyImported'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SoftwareVersion'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("EnergyExported", indent + 1, value.energyExported);
+        CHIP_ERROR err = DataModelLogger::LogValue("ProductID", indent + 1, value.productID);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'EnergyExported'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ProductID'");
             return err;
         }
     }
@@ -6910,38 +6801,38 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const ElectricalEnergyMeasurement::Events::PeriodicEnergyMeasured::DecodableType & value)
+                                     const OtaSoftwareUpdateRequestor::Events::DownloadError::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("EnergyImported", indent + 1, value.energyImported);
+        CHIP_ERROR err = DataModelLogger::LogValue("SoftwareVersion", indent + 1, value.softwareVersion);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'EnergyImported'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SoftwareVersion'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("EnergyExported", indent + 1, value.energyExported);
+        CHIP_ERROR err = DataModelLogger::LogValue("BytesDownloaded", indent + 1, value.bytesDownloaded);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'EnergyExported'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'BytesDownloaded'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const WaterHeaterManagement::Events::BoostStarted::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("BoostInfo", indent + 1, value.boostInfo);
+        CHIP_ERROR err = DataModelLogger::LogValue("ProgressPercent", indent + 1, value.progressPercent);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'BoostInfo'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ProgressPercent'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("PlatformCode", indent + 1, value.platformCode);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'PlatformCode'");
             return err;
         }
     }
@@ -6950,94 +6841,118 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const WaterHeaterManagement::Events::BoostEnded::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const DemandResponseLoadControl::Events::LoadControlEventStatusChange::DecodableType & value)
+                                     const PowerSource::Events::WiredFaultChange::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("EventID", indent + 1, value.eventID);
+        CHIP_ERROR err = DataModelLogger::LogValue("Current", indent + 1, value.current);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'EventID'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Current'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("TransitionIndex", indent + 1, value.transitionIndex);
+        CHIP_ERROR err = DataModelLogger::LogValue("Previous", indent + 1, value.previous);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'TransitionIndex'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Previous'");
             return err;
         }
     }
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const PowerSource::Events::BatFaultChange::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Status", indent + 1, value.status);
+        CHIP_ERROR err = DataModelLogger::LogValue("Current", indent + 1, value.current);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Status'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Current'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Criticality", indent + 1, value.criticality);
+        CHIP_ERROR err = DataModelLogger::LogValue("Previous", indent + 1, value.previous);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Criticality'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Previous'");
             return err;
         }
     }
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const PowerSource::Events::BatChargeFaultChange::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Control", indent + 1, value.control);
+        CHIP_ERROR err = DataModelLogger::LogValue("Current", indent + 1, value.current);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Control'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Current'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("TemperatureControl", indent + 1, value.temperatureControl);
+        CHIP_ERROR err = DataModelLogger::LogValue("Previous", indent + 1, value.previous);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'TemperatureControl'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Previous'");
             return err;
         }
     }
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const GeneralDiagnostics::Events::HardwareFaultChange::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("AverageLoadControl", indent + 1, value.averageLoadControl);
+        CHIP_ERROR err = DataModelLogger::LogValue("Current", indent + 1, value.current);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'AverageLoadControl'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Current'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("DutyCycleControl", indent + 1, value.dutyCycleControl);
+        CHIP_ERROR err = DataModelLogger::LogValue("Previous", indent + 1, value.previous);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'DutyCycleControl'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Previous'");
             return err;
         }
     }
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const GeneralDiagnostics::Events::RadioFaultChange::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("PowerSavingsControl", indent + 1, value.powerSavingsControl);
+        CHIP_ERROR err = DataModelLogger::LogValue("Current", indent + 1, value.current);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'PowerSavingsControl'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Current'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("HeatingSourceControl", indent + 1, value.heatingSourceControl);
+        CHIP_ERROR err = DataModelLogger::LogValue("Previous", indent + 1, value.previous);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'HeatingSourceControl'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Previous'");
             return err;
         }
     }
@@ -7046,14 +6961,22 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const Messages::Events::MessageQueued::DecodableType & value)
+                                     const GeneralDiagnostics::Events::NetworkFaultChange::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("MessageID", indent + 1, value.messageID);
+        CHIP_ERROR err = DataModelLogger::LogValue("Current", indent + 1, value.current);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'MessageID'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Current'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("Previous", indent + 1, value.previous);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Previous'");
             return err;
         }
     }
@@ -7062,14 +6985,14 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const Messages::Events::MessagePresented::DecodableType & value)
+                                     const GeneralDiagnostics::Events::BootReason::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("MessageID", indent + 1, value.messageID);
+        CHIP_ERROR err = DataModelLogger::LogValue("BootReason", indent + 1, value.bootReason);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'MessageID'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'BootReason'");
             return err;
         }
     }
@@ -7078,38 +7001,30 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const Messages::Events::MessageComplete::DecodableType & value)
+                                     const SoftwareDiagnostics::Events::SoftwareFault::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("MessageID", indent + 1, value.messageID);
-        if (err != CHIP_NO_ERROR)
-        {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'MessageID'");
-            return err;
-        }
-    }
-    {
-        CHIP_ERROR err = DataModelLogger::LogValue("ResponseID", indent + 1, value.responseID);
+        CHIP_ERROR err = DataModelLogger::LogValue("Id", indent + 1, value.id);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ResponseID'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Id'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Reply", indent + 1, value.reply);
+        CHIP_ERROR err = DataModelLogger::LogValue("Name", indent + 1, value.name);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Reply'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Name'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("FutureMessagesPreference", indent + 1, value.futureMessagesPreference);
+        CHIP_ERROR err = DataModelLogger::LogValue("FaultRecording", indent + 1, value.faultRecording);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'FutureMessagesPreference'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'FaultRecording'");
             return err;
         }
     }
@@ -7118,38 +7033,38 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const DeviceEnergyManagement::Events::PowerAdjustStart::DecodableType & value)
+                                     const ThreadNetworkDiagnostics::Events::ConnectionStatus::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("ConnectionStatus", indent + 1, value.connectionStatus);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ConnectionStatus'");
+            return err;
+        }
+    }
     DataModelLogger::LogString(indent, "}");
 
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const DeviceEnergyManagement::Events::PowerAdjustEnd::DecodableType & value)
+                                     const ThreadNetworkDiagnostics::Events::NetworkFaultChange::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Cause", indent + 1, value.cause);
-        if (err != CHIP_NO_ERROR)
-        {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Cause'");
-            return err;
-        }
-    }
-    {
-        CHIP_ERROR err = DataModelLogger::LogValue("Duration", indent + 1, value.duration);
+        CHIP_ERROR err = DataModelLogger::LogValue("Current", indent + 1, value.current);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Duration'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Current'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("EnergyUse", indent + 1, value.energyUse);
+        CHIP_ERROR err = DataModelLogger::LogValue("Previous", indent + 1, value.previous);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'EnergyUse'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Previous'");
             return err;
         }
     }
@@ -7158,22 +7073,38 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const DeviceEnergyManagement::Events::Paused::DecodableType & value)
+                                     const WiFiNetworkDiagnostics::Events::Disconnection::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("ReasonCode", indent + 1, value.reasonCode);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ReasonCode'");
+            return err;
+        }
+    }
     DataModelLogger::LogString(indent, "}");
 
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const DeviceEnergyManagement::Events::Resumed::DecodableType & value)
+                                     const WiFiNetworkDiagnostics::Events::AssociationFailure::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Cause", indent + 1, value.cause);
+        CHIP_ERROR err = DataModelLogger::LogValue("AssociationFailureCause", indent + 1, value.associationFailureCause);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Cause'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'AssociationFailureCause'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("Status", indent + 1, value.status);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Status'");
             return err;
         }
     }
@@ -7182,14 +7113,14 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const EnergyEvse::Events::EVConnected::DecodableType & value)
+                                     const WiFiNetworkDiagnostics::Events::ConnectionStatus::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("SessionID", indent + 1, value.sessionID);
+        CHIP_ERROR err = DataModelLogger::LogValue("ConnectionStatus", indent + 1, value.connectionStatus);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SessionID'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ConnectionStatus'");
             return err;
         }
     }
@@ -7198,46 +7129,46 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const EnergyEvse::Events::EVNotDetected::DecodableType & value)
+                                     const TimeSynchronization::Events::DSTTableEmpty::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const TimeSynchronization::Events::DSTStatus::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("SessionID", indent + 1, value.sessionID);
-        if (err != CHIP_NO_ERROR)
-        {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SessionID'");
-            return err;
-        }
-    }
-    {
-        CHIP_ERROR err = DataModelLogger::LogValue("State", indent + 1, value.state);
-        if (err != CHIP_NO_ERROR)
-        {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'State'");
-            return err;
-        }
-    }
-    {
-        CHIP_ERROR err = DataModelLogger::LogValue("SessionDuration", indent + 1, value.sessionDuration);
+        CHIP_ERROR err = DataModelLogger::LogValue("DSTOffsetActive", indent + 1, value.DSTOffsetActive);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SessionDuration'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'DSTOffsetActive'");
             return err;
         }
     }
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const TimeSynchronization::Events::TimeZoneStatus::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("SessionEnergyCharged", indent + 1, value.sessionEnergyCharged);
+        CHIP_ERROR err = DataModelLogger::LogValue("Offset", indent + 1, value.offset);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SessionEnergyCharged'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Offset'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("SessionEnergyDischarged", indent + 1, value.sessionEnergyDischarged);
+        CHIP_ERROR err = DataModelLogger::LogValue("Name", indent + 1, value.name);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SessionEnergyDischarged'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Name'");
             return err;
         }
     }
@@ -7246,38 +7177,30 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const EnergyEvse::Events::EnergyTransferStarted::DecodableType & value)
+                                     const TimeSynchronization::Events::TimeFailure::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const TimeSynchronization::Events::MissingTrustedTimeSource::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const BridgedDeviceBasicInformation::Events::StartUp::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("SessionID", indent + 1, value.sessionID);
-        if (err != CHIP_NO_ERROR)
-        {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SessionID'");
-            return err;
-        }
-    }
-    {
-        CHIP_ERROR err = DataModelLogger::LogValue("State", indent + 1, value.state);
-        if (err != CHIP_NO_ERROR)
-        {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'State'");
-            return err;
-        }
-    }
-    {
-        CHIP_ERROR err = DataModelLogger::LogValue("MaximumCurrent", indent + 1, value.maximumCurrent);
-        if (err != CHIP_NO_ERROR)
-        {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'MaximumCurrent'");
-            return err;
-        }
-    }
-    {
-        CHIP_ERROR err = DataModelLogger::LogValue("MaximumDischargeCurrent", indent + 1, value.maximumDischargeCurrent);
+        CHIP_ERROR err = DataModelLogger::LogValue("SoftwareVersion", indent + 1, value.softwareVersion);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'MaximumDischargeCurrent'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SoftwareVersion'");
             return err;
         }
     }
@@ -7286,85 +7209,76 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const EnergyEvse::Events::EnergyTransferStopped::DecodableType & value)
+                                     const BridgedDeviceBasicInformation::Events::ShutDown::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    {
-        CHIP_ERROR err = DataModelLogger::LogValue("SessionID", indent + 1, value.sessionID);
-        if (err != CHIP_NO_ERROR)
-        {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SessionID'");
-            return err;
-        }
-    }
-    {
-        CHIP_ERROR err = DataModelLogger::LogValue("State", indent + 1, value.state);
-        if (err != CHIP_NO_ERROR)
-        {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'State'");
-            return err;
-        }
-    }
-    {
-        CHIP_ERROR err = DataModelLogger::LogValue("Reason", indent + 1, value.reason);
-        if (err != CHIP_NO_ERROR)
-        {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Reason'");
-            return err;
-        }
-    }
-    {
-        CHIP_ERROR err = DataModelLogger::LogValue("EnergyTransferred", indent + 1, value.energyTransferred);
-        if (err != CHIP_NO_ERROR)
-        {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'EnergyTransferred'");
-            return err;
-        }
-    }
-    {
-        CHIP_ERROR err = DataModelLogger::LogValue("EnergyDischarged", indent + 1, value.energyDischarged);
-        if (err != CHIP_NO_ERROR)
-        {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'EnergyDischarged'");
-            return err;
-        }
-    }
     DataModelLogger::LogString(indent, "}");
 
     return CHIP_NO_ERROR;
 }
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, const EnergyEvse::Events::Fault::DecodableType & value)
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const BridgedDeviceBasicInformation::Events::Leave::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const BridgedDeviceBasicInformation::Events::ReachableChanged::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("SessionID", indent + 1, value.sessionID);
+        CHIP_ERROR err = DataModelLogger::LogValue("ReachableNewValue", indent + 1, value.reachableNewValue);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SessionID'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ReachableNewValue'");
             return err;
         }
     }
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const BridgedDeviceBasicInformation::Events::ActiveChanged::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("State", indent + 1, value.state);
+        CHIP_ERROR err = DataModelLogger::LogValue("PromisedActiveDuration", indent + 1, value.promisedActiveDuration);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'State'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'PromisedActiveDuration'");
             return err;
         }
     }
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, const Switch::Events::SwitchLatched::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("FaultStatePreviousState", indent + 1, value.faultStatePreviousState);
+        CHIP_ERROR err = DataModelLogger::LogValue("NewPosition", indent + 1, value.newPosition);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'FaultStatePreviousState'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'NewPosition'");
             return err;
         }
     }
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, const Switch::Events::InitialPress::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("FaultStateCurrentState", indent + 1, value.faultStateCurrentState);
+        CHIP_ERROR err = DataModelLogger::LogValue("NewPosition", indent + 1, value.newPosition);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'FaultStateCurrentState'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'NewPosition'");
             return err;
         }
     }
@@ -7372,14 +7286,14 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, const En
 
     return CHIP_NO_ERROR;
 }
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, const EnergyEvse::Events::Rfid::DecodableType & value)
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, const Switch::Events::LongPress::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Uid", indent + 1, value.uid);
+        CHIP_ERROR err = DataModelLogger::LogValue("NewPosition", indent + 1, value.newPosition);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Uid'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'NewPosition'");
             return err;
         }
     }
@@ -7387,15 +7301,14 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, const En
 
     return CHIP_NO_ERROR;
 }
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const DoorLock::Events::DoorLockAlarm::DecodableType & value)
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, const Switch::Events::ShortRelease::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("AlarmCode", indent + 1, value.alarmCode);
+        CHIP_ERROR err = DataModelLogger::LogValue("PreviousPosition", indent + 1, value.previousPosition);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'AlarmCode'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'PreviousPosition'");
             return err;
         }
     }
@@ -7403,15 +7316,14 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
 
     return CHIP_NO_ERROR;
 }
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const DoorLock::Events::DoorStateChange::DecodableType & value)
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, const Switch::Events::LongRelease::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("DoorState", indent + 1, value.doorState);
+        CHIP_ERROR err = DataModelLogger::LogValue("PreviousPosition", indent + 1, value.previousPosition);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'DoorState'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'PreviousPosition'");
             return err;
         }
     }
@@ -7420,54 +7332,79 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const DoorLock::Events::LockOperation::DecodableType & value)
+                                     const Switch::Events::MultiPressOngoing::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("LockOperationType", indent + 1, value.lockOperationType);
+        CHIP_ERROR err = DataModelLogger::LogValue("NewPosition", indent + 1, value.newPosition);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'LockOperationType'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'NewPosition'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("OperationSource", indent + 1, value.operationSource);
+        CHIP_ERROR err =
+            DataModelLogger::LogValue("CurrentNumberOfPressesCounted", indent + 1, value.currentNumberOfPressesCounted);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'OperationSource'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'CurrentNumberOfPressesCounted'");
             return err;
         }
     }
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const Switch::Events::MultiPressComplete::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("UserIndex", indent + 1, value.userIndex);
+        CHIP_ERROR err = DataModelLogger::LogValue("PreviousPosition", indent + 1, value.previousPosition);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'UserIndex'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'PreviousPosition'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("FabricIndex", indent + 1, value.fabricIndex);
+        CHIP_ERROR err = DataModelLogger::LogValue("TotalNumberOfPressesCounted", indent + 1, value.totalNumberOfPressesCounted);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'FabricIndex'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'TotalNumberOfPressesCounted'");
             return err;
         }
     }
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const BooleanState::Events::StateChange::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("SourceNode", indent + 1, value.sourceNode);
+        CHIP_ERROR err = DataModelLogger::LogValue("StateValue", indent + 1, value.stateValue);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SourceNode'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'StateValue'");
             return err;
         }
     }
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const OvenCavityOperationalState::Events::OperationalError::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Credentials", indent + 1, value.credentials);
+        CHIP_ERROR err = DataModelLogger::LogValue("ErrorState", indent + 1, value.errorState);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Credentials'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ErrorState'");
             return err;
         }
     }
@@ -7476,62 +7413,70 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const DoorLock::Events::LockOperationError::DecodableType & value)
+                                     const OvenCavityOperationalState::Events::OperationCompletion::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("LockOperationType", indent + 1, value.lockOperationType);
+        CHIP_ERROR err = DataModelLogger::LogValue("CompletionErrorCode", indent + 1, value.completionErrorCode);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'LockOperationType'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'CompletionErrorCode'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("OperationSource", indent + 1, value.operationSource);
+        CHIP_ERROR err = DataModelLogger::LogValue("TotalOperationalTime", indent + 1, value.totalOperationalTime);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'OperationSource'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'TotalOperationalTime'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("OperationError", indent + 1, value.operationError);
+        CHIP_ERROR err = DataModelLogger::LogValue("PausedTime", indent + 1, value.pausedTime);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'OperationError'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'PausedTime'");
             return err;
         }
     }
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const RefrigeratorAlarm::Events::Notify::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("UserIndex", indent + 1, value.userIndex);
+        CHIP_ERROR err = DataModelLogger::LogValue("Active", indent + 1, value.active);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'UserIndex'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Active'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("FabricIndex", indent + 1, value.fabricIndex);
+        CHIP_ERROR err = DataModelLogger::LogValue("Inactive", indent + 1, value.inactive);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'FabricIndex'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Inactive'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("SourceNode", indent + 1, value.sourceNode);
+        CHIP_ERROR err = DataModelLogger::LogValue("State", indent + 1, value.state);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SourceNode'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'State'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Credentials", indent + 1, value.credentials);
+        CHIP_ERROR err = DataModelLogger::LogValue("Mask", indent + 1, value.mask);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Credentials'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Mask'");
             return err;
         }
     }
@@ -7540,143 +7485,54 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const DoorLock::Events::LockUserChange::DecodableType & value)
+                                     const SmokeCoAlarm::Events::SmokeAlarm::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("LockDataType", indent + 1, value.lockDataType);
+        CHIP_ERROR err = DataModelLogger::LogValue("AlarmSeverityLevel", indent + 1, value.alarmSeverityLevel);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'LockDataType'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'AlarmSeverityLevel'");
             return err;
         }
     }
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, const SmokeCoAlarm::Events::COAlarm::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("DataOperationType", indent + 1, value.dataOperationType);
+        CHIP_ERROR err = DataModelLogger::LogValue("AlarmSeverityLevel", indent + 1, value.alarmSeverityLevel);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'DataOperationType'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'AlarmSeverityLevel'");
             return err;
         }
     }
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const SmokeCoAlarm::Events::LowBattery::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("OperationSource", indent + 1, value.operationSource);
+        CHIP_ERROR err = DataModelLogger::LogValue("AlarmSeverityLevel", indent + 1, value.alarmSeverityLevel);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'OperationSource'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'AlarmSeverityLevel'");
             return err;
         }
     }
-    {
-        CHIP_ERROR err = DataModelLogger::LogValue("UserIndex", indent + 1, value.userIndex);
-        if (err != CHIP_NO_ERROR)
-        {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'UserIndex'");
-            return err;
-        }
-    }
-    {
-        CHIP_ERROR err = DataModelLogger::LogValue("FabricIndex", indent + 1, value.fabricIndex);
-        if (err != CHIP_NO_ERROR)
-        {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'FabricIndex'");
-            return err;
-        }
-    }
-    {
-        CHIP_ERROR err = DataModelLogger::LogValue("SourceNode", indent + 1, value.sourceNode);
-        if (err != CHIP_NO_ERROR)
-        {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SourceNode'");
-            return err;
-        }
-    }
-    {
-        CHIP_ERROR err = DataModelLogger::LogValue("DataIndex", indent + 1, value.dataIndex);
-        if (err != CHIP_NO_ERROR)
-        {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'DataIndex'");
-            return err;
-        }
-    }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const PumpConfigurationAndControl::Events::SupplyVoltageLow::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const PumpConfigurationAndControl::Events::SupplyVoltageHigh::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const PumpConfigurationAndControl::Events::PowerMissingPhase::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const PumpConfigurationAndControl::Events::SystemPressureLow::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     DataModelLogger::LogString(indent, "}");
 
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const PumpConfigurationAndControl::Events::SystemPressureHigh::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const PumpConfigurationAndControl::Events::DryRunning::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const PumpConfigurationAndControl::Events::MotorTemperatureHigh::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const PumpConfigurationAndControl::Events::PumpMotorFatalFailure::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const PumpConfigurationAndControl::Events::ElectronicTemperatureHigh::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const PumpConfigurationAndControl::Events::PumpBlocked::DecodableType & value)
+                                     const SmokeCoAlarm::Events::HardwareFault::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     DataModelLogger::LogString(indent, "}");
@@ -7684,7 +7540,7 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const PumpConfigurationAndControl::Events::SensorFailure::DecodableType & value)
+                                     const SmokeCoAlarm::Events::EndOfService::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     DataModelLogger::LogString(indent, "}");
@@ -7692,7 +7548,7 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const PumpConfigurationAndControl::Events::ElectronicNonFatalFailure::DecodableType & value)
+                                     const SmokeCoAlarm::Events::SelfTestComplete::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     DataModelLogger::LogString(indent, "}");
@@ -7700,7 +7556,7 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const PumpConfigurationAndControl::Events::ElectronicFatalFailure::DecodableType & value)
+                                     const SmokeCoAlarm::Events::AlarmMuted::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     DataModelLogger::LogString(indent, "}");
@@ -7708,7 +7564,7 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const PumpConfigurationAndControl::Events::GeneralFault::DecodableType & value)
+                                     const SmokeCoAlarm::Events::MuteEnded::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     DataModelLogger::LogString(indent, "}");
@@ -7716,23 +7572,38 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const PumpConfigurationAndControl::Events::Leakage::DecodableType & value)
+                                     const SmokeCoAlarm::Events::InterconnectSmokeAlarm::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("AlarmSeverityLevel", indent + 1, value.alarmSeverityLevel);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'AlarmSeverityLevel'");
+            return err;
+        }
+    }
     DataModelLogger::LogString(indent, "}");
 
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const PumpConfigurationAndControl::Events::AirDetection::DecodableType & value)
+                                     const SmokeCoAlarm::Events::InterconnectCOAlarm::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("AlarmSeverityLevel", indent + 1, value.alarmSeverityLevel);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'AlarmSeverityLevel'");
+            return err;
+        }
+    }
     DataModelLogger::LogString(indent, "}");
 
     return CHIP_NO_ERROR;
 }
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const PumpConfigurationAndControl::Events::TurbineOperation::DecodableType & value)
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, const SmokeCoAlarm::Events::AllClear::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     DataModelLogger::LogString(indent, "}");
@@ -7740,46 +7611,38 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const OccupancySensing::Events::OccupancyChanged::DecodableType & value)
+                                     const DishwasherAlarm::Events::Notify::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Occupancy", indent + 1, value.occupancy);
+        CHIP_ERROR err = DataModelLogger::LogValue("Active", indent + 1, value.active);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Occupancy'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Active'");
             return err;
         }
     }
-    DataModelLogger::LogString(indent, "}");
-
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const TargetNavigator::Events::TargetUpdated::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("TargetList", indent + 1, value.targetList);
+        CHIP_ERROR err = DataModelLogger::LogValue("Inactive", indent + 1, value.inactive);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'TargetList'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Inactive'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("CurrentTarget", indent + 1, value.currentTarget);
+        CHIP_ERROR err = DataModelLogger::LogValue("State", indent + 1, value.state);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'CurrentTarget'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'State'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Data", indent + 1, value.data);
+        CHIP_ERROR err = DataModelLogger::LogValue("Mask", indent + 1, value.mask);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Data'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Mask'");
             return err;
         }
     }
@@ -7788,78 +7651,94 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const MediaPlayback::Events::StateChanged::DecodableType & value)
+                                     const OperationalState::Events::OperationalError::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("CurrentState", indent + 1, value.currentState);
-        if (err != CHIP_NO_ERROR)
-        {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'CurrentState'");
-            return err;
-        }
-    }
-    {
-        CHIP_ERROR err = DataModelLogger::LogValue("StartTime", indent + 1, value.startTime);
+        CHIP_ERROR err = DataModelLogger::LogValue("ErrorState", indent + 1, value.errorState);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'StartTime'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ErrorState'");
             return err;
         }
     }
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const OperationalState::Events::OperationCompletion::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Duration", indent + 1, value.duration);
+        CHIP_ERROR err = DataModelLogger::LogValue("CompletionErrorCode", indent + 1, value.completionErrorCode);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Duration'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'CompletionErrorCode'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("SampledPosition", indent + 1, value.sampledPosition);
+        CHIP_ERROR err = DataModelLogger::LogValue("TotalOperationalTime", indent + 1, value.totalOperationalTime);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SampledPosition'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'TotalOperationalTime'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("PlaybackSpeed", indent + 1, value.playbackSpeed);
+        CHIP_ERROR err = DataModelLogger::LogValue("PausedTime", indent + 1, value.pausedTime);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'PlaybackSpeed'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'PausedTime'");
             return err;
         }
     }
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const RvcOperationalState::Events::OperationalError::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("SeekRangeEnd", indent + 1, value.seekRangeEnd);
+        CHIP_ERROR err = DataModelLogger::LogValue("ErrorState", indent + 1, value.errorState);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SeekRangeEnd'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ErrorState'");
             return err;
         }
     }
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const RvcOperationalState::Events::OperationCompletion::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("SeekRangeStart", indent + 1, value.seekRangeStart);
+        CHIP_ERROR err = DataModelLogger::LogValue("CompletionErrorCode", indent + 1, value.completionErrorCode);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SeekRangeStart'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'CompletionErrorCode'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Data", indent + 1, value.data);
+        CHIP_ERROR err = DataModelLogger::LogValue("TotalOperationalTime", indent + 1, value.totalOperationalTime);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Data'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'TotalOperationalTime'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("AudioAdvanceUnmuted", indent + 1, value.audioAdvanceUnmuted);
+        CHIP_ERROR err = DataModelLogger::LogValue("PausedTime", indent + 1, value.pausedTime);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'AudioAdvanceUnmuted'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'PausedTime'");
             return err;
         }
     }
@@ -7868,14 +7747,22 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const AccountLogin::Events::LoggedOut::DecodableType & value)
+                                     const BooleanStateConfiguration::Events::AlarmsStateChanged::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Node", indent + 1, value.node);
+        CHIP_ERROR err = DataModelLogger::LogValue("AlarmsActive", indent + 1, value.alarmsActive);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Node'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'AlarmsActive'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("AlarmsSuppressed", indent + 1, value.alarmsSuppressed);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'AlarmsSuppressed'");
             return err;
         }
     }
@@ -7884,46 +7771,70 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const ContentControl::Events::RemainingScreenTimeExpired::DecodableType & value)
+                                     const BooleanStateConfiguration::Events::SensorFault::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("SensorFault", indent + 1, value.sensorFault);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SensorFault'");
+            return err;
+        }
+    }
     DataModelLogger::LogString(indent, "}");
 
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const CommissionerControl::Events::CommissioningRequestResult::DecodableType & value)
+                                     const ValveConfigurationAndControl::Events::ValveStateChanged::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("RequestID", indent + 1, value.requestID);
+        CHIP_ERROR err = DataModelLogger::LogValue("ValveState", indent + 1, value.valveState);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'RequestID'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ValveState'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("ClientNodeID", indent + 1, value.clientNodeID);
+        CHIP_ERROR err = DataModelLogger::LogValue("ValveLevel", indent + 1, value.valveLevel);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ClientNodeID'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ValveLevel'");
             return err;
         }
     }
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const ValveConfigurationAndControl::Events::ValveFault::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("StatusCode", indent + 1, value.statusCode);
+        CHIP_ERROR err = DataModelLogger::LogValue("ValveFault", indent + 1, value.valveFault);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'StatusCode'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ValveFault'");
             return err;
         }
     }
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const ElectricalPowerMeasurement::Events::MeasurementPeriodRanges::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("FabricIndex", indent + 1, value.fabricIndex);
+        CHIP_ERROR err = DataModelLogger::LogValue("Ranges", indent + 1, value.ranges);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'FabricIndex'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Ranges'");
             return err;
         }
     }
@@ -7931,54 +7842,159 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
 
     return CHIP_NO_ERROR;
 }
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, const UnitTesting::Events::TestEvent::DecodableType & value)
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const ElectricalEnergyMeasurement::Events::CumulativeEnergyMeasured::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Arg1", indent + 1, value.arg1);
+        CHIP_ERROR err = DataModelLogger::LogValue("EnergyImported", indent + 1, value.energyImported);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Arg1'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'EnergyImported'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Arg2", indent + 1, value.arg2);
+        CHIP_ERROR err = DataModelLogger::LogValue("EnergyExported", indent + 1, value.energyExported);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Arg2'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'EnergyExported'");
             return err;
         }
     }
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const ElectricalEnergyMeasurement::Events::PeriodicEnergyMeasured::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Arg3", indent + 1, value.arg3);
+        CHIP_ERROR err = DataModelLogger::LogValue("EnergyImported", indent + 1, value.energyImported);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Arg3'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'EnergyImported'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Arg4", indent + 1, value.arg4);
+        CHIP_ERROR err = DataModelLogger::LogValue("EnergyExported", indent + 1, value.energyExported);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Arg4'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'EnergyExported'");
+            return err;
+        }
+    }
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const WaterHeaterManagement::Events::BoostStarted::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("BoostInfo", indent + 1, value.boostInfo);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'BoostInfo'");
             return err;
         }
     }
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const WaterHeaterManagement::Events::BoostEnded::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    DataModelLogger::LogString(indent, "}");
+
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const DemandResponseLoadControl::Events::LoadControlEventStatusChange::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Arg5", indent + 1, value.arg5);
+        CHIP_ERROR err = DataModelLogger::LogValue("EventID", indent + 1, value.eventID);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Arg5'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'EventID'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Arg6", indent + 1, value.arg6);
+        CHIP_ERROR err = DataModelLogger::LogValue("TransitionIndex", indent + 1, value.transitionIndex);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Arg6'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'TransitionIndex'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("Status", indent + 1, value.status);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Status'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("Criticality", indent + 1, value.criticality);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Criticality'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("Control", indent + 1, value.control);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Control'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("TemperatureControl", indent + 1, value.temperatureControl);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'TemperatureControl'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("AverageLoadControl", indent + 1, value.averageLoadControl);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'AverageLoadControl'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("DutyCycleControl", indent + 1, value.dutyCycleControl);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'DutyCycleControl'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("PowerSavingsControl", indent + 1, value.powerSavingsControl);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'PowerSavingsControl'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("HeatingSourceControl", indent + 1, value.heatingSourceControl);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'HeatingSourceControl'");
             return err;
         }
     }
@@ -7987,14 +8003,14 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, const Un
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const UnitTesting::Events::TestFabricScopedEvent::DecodableType & value)
+                                     const Messages::Events::MessageQueued::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("FabricIndex", indent + 1, value.fabricIndex);
+        CHIP_ERROR err = DataModelLogger::LogValue("MessageID", indent + 1, value.messageID);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'FabricIndex'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'MessageID'");
             return err;
         }
     }
@@ -8003,14 +8019,14 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const UnitTesting::Events::TestDifferentVendorMeiEvent::DecodableType & value)
+                                     const Messages::Events::MessagePresented::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Arg1", indent + 1, value.arg1);
+        CHIP_ERROR err = DataModelLogger::LogValue("MessageID", indent + 1, value.messageID);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Arg1'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'MessageID'");
             return err;
         }
     }
@@ -8019,22 +8035,38 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const SampleMei::Events::PingCountEvent::DecodableType & value)
+                                     const Messages::Events::MessageComplete::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("Count", indent + 1, value.count);
+        CHIP_ERROR err = DataModelLogger::LogValue("MessageID", indent + 1, value.messageID);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Count'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'MessageID'");
             return err;
         }
     }
     {
-        CHIP_ERROR err = DataModelLogger::LogValue("FabricIndex", indent + 1, value.fabricIndex);
+        CHIP_ERROR err = DataModelLogger::LogValue("ResponseID", indent + 1, value.responseID);
         if (err != CHIP_NO_ERROR)
         {
-            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'FabricIndex'");
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ResponseID'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("Reply", indent + 1, value.reply);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Reply'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("FutureMessagesPreference", indent + 1, value.futureMessagesPreference);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'FutureMessagesPreference'");
             return err;
         }
     }
@@ -8042,939 +8074,2565 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
 
     return CHIP_NO_ERROR;
 }
-
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const Groups::Commands::AddGroupResponse::DecodableType & value)
+                                     const DeviceEnergyManagement::Events::PowerAdjustStart::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("groupID", indent + 1, value.groupID));
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const Groups::Commands::ViewGroupResponse::DecodableType & value)
+                                     const DeviceEnergyManagement::Events::PowerAdjustEnd::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("groupID", indent + 1, value.groupID));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("groupName", indent + 1, value.groupName));
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("Cause", indent + 1, value.cause);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Cause'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("Duration", indent + 1, value.duration);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Duration'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("EnergyUse", indent + 1, value.energyUse);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'EnergyUse'");
+            return err;
+        }
+    }
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const Groups::Commands::GetGroupMembershipResponse::DecodableType & value)
+                                     const DeviceEnergyManagement::Events::Paused::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("capacity", indent + 1, value.capacity));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("groupList", indent + 1, value.groupList));
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const Groups::Commands::RemoveGroupResponse::DecodableType & value)
+                                     const DeviceEnergyManagement::Events::Resumed::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("groupID", indent + 1, value.groupID));
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("Cause", indent + 1, value.cause);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Cause'");
+            return err;
+        }
+    }
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const AccessControl::Commands::ReviewFabricRestrictionsResponse::DecodableType & value)
+                                     const EnergyEvse::Events::EVConnected::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("token", indent + 1, value.token));
-    DataModelLogger::LogString(indent, "}");
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const OtaSoftwareUpdateProvider::Commands::QueryImageResponse::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("delayedActionTime", indent + 1, value.delayedActionTime));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("imageURI", indent + 1, value.imageURI));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("softwareVersion", indent + 1, value.softwareVersion));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("softwareVersionString", indent + 1, value.softwareVersionString));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("updateToken", indent + 1, value.updateToken));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("userConsentNeeded", indent + 1, value.userConsentNeeded));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("metadataForRequestor", indent + 1, value.metadataForRequestor));
-    DataModelLogger::LogString(indent, "}");
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const OtaSoftwareUpdateProvider::Commands::ApplyUpdateResponse::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("action", indent + 1, value.action));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("delayedActionTime", indent + 1, value.delayedActionTime));
-    DataModelLogger::LogString(indent, "}");
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const GeneralCommissioning::Commands::ArmFailSafeResponse::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("errorCode", indent + 1, value.errorCode));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("debugText", indent + 1, value.debugText));
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("SessionID", indent + 1, value.sessionID);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SessionID'");
+            return err;
+        }
+    }
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const GeneralCommissioning::Commands::SetRegulatoryConfigResponse::DecodableType & value)
+                                     const EnergyEvse::Events::EVNotDetected::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("errorCode", indent + 1, value.errorCode));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("debugText", indent + 1, value.debugText));
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("SessionID", indent + 1, value.sessionID);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SessionID'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("State", indent + 1, value.state);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'State'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("SessionDuration", indent + 1, value.sessionDuration);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SessionDuration'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("SessionEnergyCharged", indent + 1, value.sessionEnergyCharged);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SessionEnergyCharged'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("SessionEnergyDischarged", indent + 1, value.sessionEnergyDischarged);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SessionEnergyDischarged'");
+            return err;
+        }
+    }
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const GeneralCommissioning::Commands::CommissioningCompleteResponse::DecodableType & value)
+                                     const EnergyEvse::Events::EnergyTransferStarted::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("errorCode", indent + 1, value.errorCode));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("debugText", indent + 1, value.debugText));
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("SessionID", indent + 1, value.sessionID);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SessionID'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("State", indent + 1, value.state);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'State'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("MaximumCurrent", indent + 1, value.maximumCurrent);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'MaximumCurrent'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("MaximumDischargeCurrent", indent + 1, value.maximumDischargeCurrent);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'MaximumDischargeCurrent'");
+            return err;
+        }
+    }
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const GeneralCommissioning::Commands::SetTCAcknowledgementsResponse::DecodableType & value)
+                                     const EnergyEvse::Events::EnergyTransferStopped::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("errorCode", indent + 1, value.errorCode));
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("SessionID", indent + 1, value.sessionID);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SessionID'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("State", indent + 1, value.state);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'State'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("Reason", indent + 1, value.reason);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Reason'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("EnergyTransferred", indent + 1, value.energyTransferred);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'EnergyTransferred'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("EnergyDischarged", indent + 1, value.energyDischarged);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'EnergyDischarged'");
+            return err;
+        }
+    }
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const NetworkCommissioning::Commands::ScanNetworksResponse::DecodableType & value)
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, const EnergyEvse::Events::Fault::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("networkingStatus", indent + 1, value.networkingStatus));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("debugText", indent + 1, value.debugText));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("wiFiScanResults", indent + 1, value.wiFiScanResults));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("threadScanResults", indent + 1, value.threadScanResults));
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("SessionID", indent + 1, value.sessionID);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SessionID'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("State", indent + 1, value.state);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'State'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("FaultStatePreviousState", indent + 1, value.faultStatePreviousState);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'FaultStatePreviousState'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("FaultStateCurrentState", indent + 1, value.faultStateCurrentState);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'FaultStateCurrentState'");
+            return err;
+        }
+    }
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const NetworkCommissioning::Commands::NetworkConfigResponse::DecodableType & value)
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, const EnergyEvse::Events::Rfid::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("networkingStatus", indent + 1, value.networkingStatus));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("debugText", indent + 1, value.debugText));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("networkIndex", indent + 1, value.networkIndex));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("clientIdentity", indent + 1, value.clientIdentity));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("possessionSignature", indent + 1, value.possessionSignature));
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("Uid", indent + 1, value.uid);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Uid'");
+            return err;
+        }
+    }
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const NetworkCommissioning::Commands::ConnectNetworkResponse::DecodableType & value)
+                                     const DoorLock::Events::DoorLockAlarm::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("networkingStatus", indent + 1, value.networkingStatus));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("debugText", indent + 1, value.debugText));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("errorValue", indent + 1, value.errorValue));
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("AlarmCode", indent + 1, value.alarmCode);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'AlarmCode'");
+            return err;
+        }
+    }
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const NetworkCommissioning::Commands::QueryIdentityResponse::DecodableType & value)
+                                     const DoorLock::Events::DoorStateChange::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("identity", indent + 1, value.identity));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("possessionSignature", indent + 1, value.possessionSignature));
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("DoorState", indent + 1, value.doorState);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'DoorState'");
+            return err;
+        }
+    }
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const DiagnosticLogs::Commands::RetrieveLogsResponse::DecodableType & value)
+                                     const DoorLock::Events::LockOperation::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("logContent", indent + 1, value.logContent));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("UTCTimeStamp", indent + 1, value.UTCTimeStamp));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("timeSinceBoot", indent + 1, value.timeSinceBoot));
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("LockOperationType", indent + 1, value.lockOperationType);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'LockOperationType'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("OperationSource", indent + 1, value.operationSource);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'OperationSource'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("UserIndex", indent + 1, value.userIndex);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'UserIndex'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("FabricIndex", indent + 1, value.fabricIndex);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'FabricIndex'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("SourceNode", indent + 1, value.sourceNode);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SourceNode'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("Credentials", indent + 1, value.credentials);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Credentials'");
+            return err;
+        }
+    }
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const GeneralDiagnostics::Commands::TimeSnapshotResponse::DecodableType & value)
+                                     const DoorLock::Events::LockOperationError::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("systemTimeMs", indent + 1, value.systemTimeMs));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("posixTimeMs", indent + 1, value.posixTimeMs));
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("LockOperationType", indent + 1, value.lockOperationType);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'LockOperationType'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("OperationSource", indent + 1, value.operationSource);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'OperationSource'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("OperationError", indent + 1, value.operationError);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'OperationError'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("UserIndex", indent + 1, value.userIndex);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'UserIndex'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("FabricIndex", indent + 1, value.fabricIndex);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'FabricIndex'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("SourceNode", indent + 1, value.sourceNode);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SourceNode'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("Credentials", indent + 1, value.credentials);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Credentials'");
+            return err;
+        }
+    }
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const GeneralDiagnostics::Commands::PayloadTestResponse::DecodableType & value)
+                                     const DoorLock::Events::LockUserChange::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("payload", indent + 1, value.payload));
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("LockDataType", indent + 1, value.lockDataType);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'LockDataType'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("DataOperationType", indent + 1, value.dataOperationType);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'DataOperationType'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("OperationSource", indent + 1, value.operationSource);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'OperationSource'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("UserIndex", indent + 1, value.userIndex);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'UserIndex'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("FabricIndex", indent + 1, value.fabricIndex);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'FabricIndex'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("SourceNode", indent + 1, value.sourceNode);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SourceNode'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("DataIndex", indent + 1, value.dataIndex);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'DataIndex'");
+            return err;
+        }
+    }
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const TimeSynchronization::Commands::SetTimeZoneResponse::DecodableType & value)
+                                     const PumpConfigurationAndControl::Events::SupplyVoltageLow::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("DSTOffsetRequired", indent + 1, value.DSTOffsetRequired));
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const OperationalCredentials::Commands::AttestationResponse::DecodableType & value)
+                                     const PumpConfigurationAndControl::Events::SupplyVoltageHigh::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("attestationElements", indent + 1, value.attestationElements));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("attestationSignature", indent + 1, value.attestationSignature));
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const OperationalCredentials::Commands::CertificateChainResponse::DecodableType & value)
+                                     const PumpConfigurationAndControl::Events::PowerMissingPhase::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("certificate", indent + 1, value.certificate));
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const OperationalCredentials::Commands::CSRResponse::DecodableType & value)
+                                     const PumpConfigurationAndControl::Events::SystemPressureLow::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("NOCSRElements", indent + 1, value.NOCSRElements));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("attestationSignature", indent + 1, value.attestationSignature));
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const OperationalCredentials::Commands::NOCResponse::DecodableType & value)
+                                     const PumpConfigurationAndControl::Events::SystemPressureHigh::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("statusCode", indent + 1, value.statusCode));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("fabricIndex", indent + 1, value.fabricIndex));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("debugText", indent + 1, value.debugText));
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const GroupKeyManagement::Commands::KeySetReadResponse::DecodableType & value)
+                                     const PumpConfigurationAndControl::Events::DryRunning::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("groupKeySet", indent + 1, value.groupKeySet));
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const GroupKeyManagement::Commands::KeySetReadAllIndicesResponse::DecodableType & value)
+                                     const PumpConfigurationAndControl::Events::MotorTemperatureHigh::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("groupKeySetIDs", indent + 1, value.groupKeySetIDs));
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const IcdManagement::Commands::RegisterClientResponse::DecodableType & value)
+                                     const PumpConfigurationAndControl::Events::PumpMotorFatalFailure::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("ICDCounter", indent + 1, value.ICDCounter));
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const IcdManagement::Commands::StayActiveResponse::DecodableType & value)
+                                     const PumpConfigurationAndControl::Events::ElectronicTemperatureHigh::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("promisedActiveDuration", indent + 1, value.promisedActiveDuration));
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const OvenCavityOperationalState::Commands::OperationalCommandResponse::DecodableType & value)
+                                     const PumpConfigurationAndControl::Events::PumpBlocked::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("commandResponseState", indent + 1, value.commandResponseState));
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const OvenMode::Commands::ChangeToModeResponse::DecodableType & value)
+                                     const PumpConfigurationAndControl::Events::SensorFailure::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("statusText", indent + 1, value.statusText));
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const LaundryWasherMode::Commands::ChangeToModeResponse::DecodableType & value)
+                                     const PumpConfigurationAndControl::Events::ElectronicNonFatalFailure::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("statusText", indent + 1, value.statusText));
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
-CHIP_ERROR DataModelLogger::LogValue(
-    const char * label, size_t indent,
-    const RefrigeratorAndTemperatureControlledCabinetMode::Commands::ChangeToModeResponse::DecodableType & value)
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const PumpConfigurationAndControl::Events::ElectronicFatalFailure::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("statusText", indent + 1, value.statusText));
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const RvcRunMode::Commands::ChangeToModeResponse::DecodableType & value)
+                                     const PumpConfigurationAndControl::Events::GeneralFault::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("statusText", indent + 1, value.statusText));
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const RvcCleanMode::Commands::ChangeToModeResponse::DecodableType & value)
+                                     const PumpConfigurationAndControl::Events::Leakage::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("statusText", indent + 1, value.statusText));
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const DishwasherMode::Commands::ChangeToModeResponse::DecodableType & value)
+                                     const PumpConfigurationAndControl::Events::AirDetection::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("statusText", indent + 1, value.statusText));
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const OperationalState::Commands::OperationalCommandResponse::DecodableType & value)
+                                     const PumpConfigurationAndControl::Events::TurbineOperation::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("commandResponseState", indent + 1, value.commandResponseState));
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const RvcOperationalState::Commands::OperationalCommandResponse::DecodableType & value)
+                                     const OccupancySensing::Events::OccupancyChanged::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("commandResponseState", indent + 1, value.commandResponseState));
-    DataModelLogger::LogString(indent, "}");
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const ScenesManagement::Commands::AddSceneResponse::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("groupID", indent + 1, value.groupID));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("sceneID", indent + 1, value.sceneID));
-    DataModelLogger::LogString(indent, "}");
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const ScenesManagement::Commands::ViewSceneResponse::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("groupID", indent + 1, value.groupID));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("sceneID", indent + 1, value.sceneID));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("transitionTime", indent + 1, value.transitionTime));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("sceneName", indent + 1, value.sceneName));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("extensionFieldSets", indent + 1, value.extensionFieldSets));
-    DataModelLogger::LogString(indent, "}");
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const ScenesManagement::Commands::RemoveSceneResponse::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("groupID", indent + 1, value.groupID));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("sceneID", indent + 1, value.sceneID));
-    DataModelLogger::LogString(indent, "}");
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const ScenesManagement::Commands::RemoveAllScenesResponse::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("groupID", indent + 1, value.groupID));
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("Occupancy", indent + 1, value.occupancy);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Occupancy'");
+            return err;
+        }
+    }
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const ScenesManagement::Commands::StoreSceneResponse::DecodableType & value)
+                                     const TargetNavigator::Events::TargetUpdated::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("groupID", indent + 1, value.groupID));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("sceneID", indent + 1, value.sceneID));
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("TargetList", indent + 1, value.targetList);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'TargetList'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("CurrentTarget", indent + 1, value.currentTarget);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'CurrentTarget'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("Data", indent + 1, value.data);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Data'");
+            return err;
+        }
+    }
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const ScenesManagement::Commands::GetSceneMembershipResponse::DecodableType & value)
+                                     const MediaPlayback::Events::StateChanged::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("capacity", indent + 1, value.capacity));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("groupID", indent + 1, value.groupID));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("sceneList", indent + 1, value.sceneList));
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("CurrentState", indent + 1, value.currentState);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'CurrentState'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("StartTime", indent + 1, value.startTime);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'StartTime'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("Duration", indent + 1, value.duration);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Duration'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("SampledPosition", indent + 1, value.sampledPosition);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SampledPosition'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("PlaybackSpeed", indent + 1, value.playbackSpeed);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'PlaybackSpeed'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("SeekRangeEnd", indent + 1, value.seekRangeEnd);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SeekRangeEnd'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("SeekRangeStart", indent + 1, value.seekRangeStart);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SeekRangeStart'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("Data", indent + 1, value.data);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Data'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("AudioAdvanceUnmuted", indent + 1, value.audioAdvanceUnmuted);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'AudioAdvanceUnmuted'");
+            return err;
+        }
+    }
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const ScenesManagement::Commands::CopySceneResponse::DecodableType & value)
+                                     const AccountLogin::Events::LoggedOut::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("groupIdentifierFrom", indent + 1, value.groupIdentifierFrom));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("sceneIdentifierFrom", indent + 1, value.sceneIdentifierFrom));
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("Node", indent + 1, value.node);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Node'");
+            return err;
+        }
+    }
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const EnergyEvse::Commands::GetTargetsResponse::DecodableType & value)
+                                     const ContentControl::Events::RemainingScreenTimeExpired::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("chargingTargetSchedules", indent + 1, value.chargingTargetSchedules));
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const EnergyEvseMode::Commands::ChangeToModeResponse::DecodableType & value)
+                                     const CameraAvStreamManagement::Events::VideoStreamChanged::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("statusText", indent + 1, value.statusText));
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("VideoStreamID", indent + 1, value.videoStreamID);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'VideoStreamID'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("StreamType", indent + 1, value.streamType);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'StreamType'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("VideoCodec", indent + 1, value.videoCodec);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'VideoCodec'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("MinFrameRate", indent + 1, value.minFrameRate);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'MinFrameRate'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("MaxFrameRate", indent + 1, value.maxFrameRate);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'MaxFrameRate'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("MinResolution", indent + 1, value.minResolution);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'MinResolution'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("MaxResolution", indent + 1, value.maxResolution);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'MaxResolution'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("MinBitRate", indent + 1, value.minBitRate);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'MinBitRate'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("MaxBitRate", indent + 1, value.maxBitRate);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'MaxBitRate'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("MinFragmentLen", indent + 1, value.minFragmentLen);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'MinFragmentLen'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("MaxFragmentLen", indent + 1, value.maxFragmentLen);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'MaxFragmentLen'");
+            return err;
+        }
+    }
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const WaterHeaterMode::Commands::ChangeToModeResponse::DecodableType & value)
+                                     const CameraAvStreamManagement::Events::AudioStreamChanged::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("statusText", indent + 1, value.statusText));
-    DataModelLogger::LogString(indent, "}");
-    return CHIP_NO_ERROR;
-}
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const DeviceEnergyManagementMode::Commands::ChangeToModeResponse::DecodableType & value)
-{
-    DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("statusText", indent + 1, value.statusText));
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("AudioStreamID", indent + 1, value.audioStreamID);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'AudioStreamID'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("StreamType", indent + 1, value.streamType);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'StreamType'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("AudioCodec", indent + 1, value.audioCodec);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'AudioCodec'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("ChannelCount", indent + 1, value.channelCount);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ChannelCount'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("SampleRate", indent + 1, value.sampleRate);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SampleRate'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("BitRate", indent + 1, value.bitRate);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'BitRate'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("BitDepth", indent + 1, value.bitDepth);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'BitDepth'");
+            return err;
+        }
+    }
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const DoorLock::Commands::GetWeekDayScheduleResponse::DecodableType & value)
+                                     const CameraAvStreamManagement::Events::SnapshotStreamChanged::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("weekDayIndex", indent + 1, value.weekDayIndex));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("userIndex", indent + 1, value.userIndex));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("daysMask", indent + 1, value.daysMask));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("startHour", indent + 1, value.startHour));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("startMinute", indent + 1, value.startMinute));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("endHour", indent + 1, value.endHour));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("endMinute", indent + 1, value.endMinute));
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("SnapshotStreamID", indent + 1, value.snapshotStreamID);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'SnapshotStreamID'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("ImageCodec", indent + 1, value.imageCodec);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ImageCodec'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("FrameRate", indent + 1, value.frameRate);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'FrameRate'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("BitRate", indent + 1, value.bitRate);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'BitRate'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("MinResolution", indent + 1, value.minResolution);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'MinResolution'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("MaxResolution", indent + 1, value.maxResolution);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'MaxResolution'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("Quality", indent + 1, value.quality);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Quality'");
+            return err;
+        }
+    }
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const DoorLock::Commands::GetYearDayScheduleResponse::DecodableType & value)
+                                     const PushAvStreamTransport::Events::PushTransportBegin::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("yearDayIndex", indent + 1, value.yearDayIndex));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("userIndex", indent + 1, value.userIndex));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("localStartTime", indent + 1, value.localStartTime));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("localEndTime", indent + 1, value.localEndTime));
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const DoorLock::Commands::GetHolidayScheduleResponse::DecodableType & value)
+                                     const PushAvStreamTransport::Events::PushTransportEnd::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("holidayIndex", indent + 1, value.holidayIndex));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("localStartTime", indent + 1, value.localStartTime));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("localEndTime", indent + 1, value.localEndTime));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("operatingMode", indent + 1, value.operatingMode));
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("ConnectionID", indent + 1, value.connectionID);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ConnectionID'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("TriggerDetails", indent + 1, value.triggerDetails);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'TriggerDetails'");
+            return err;
+        }
+    }
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const DoorLock::Commands::GetUserResponse::DecodableType & value)
+                                     const CommissionerControl::Events::CommissioningRequestResult::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("userIndex", indent + 1, value.userIndex));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("userName", indent + 1, value.userName));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("userUniqueID", indent + 1, value.userUniqueID));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("userStatus", indent + 1, value.userStatus));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("userType", indent + 1, value.userType));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("credentialRule", indent + 1, value.credentialRule));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("credentials", indent + 1, value.credentials));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("creatorFabricIndex", indent + 1, value.creatorFabricIndex));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("lastModifiedFabricIndex", indent + 1, value.lastModifiedFabricIndex));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("nextUserIndex", indent + 1, value.nextUserIndex));
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("RequestID", indent + 1, value.requestID);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'RequestID'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("ClientNodeID", indent + 1, value.clientNodeID);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'ClientNodeID'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("StatusCode", indent + 1, value.statusCode);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'StatusCode'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("FabricIndex", indent + 1, value.fabricIndex);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'FabricIndex'");
+            return err;
+        }
+    }
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const DoorLock::Commands::SetCredentialResponse::DecodableType & value)
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, const UnitTesting::Events::TestEvent::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("userIndex", indent + 1, value.userIndex));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("nextCredentialIndex", indent + 1, value.nextCredentialIndex));
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("Arg1", indent + 1, value.arg1);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Arg1'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("Arg2", indent + 1, value.arg2);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Arg2'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("Arg3", indent + 1, value.arg3);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Arg3'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("Arg4", indent + 1, value.arg4);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Arg4'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("Arg5", indent + 1, value.arg5);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Arg5'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("Arg6", indent + 1, value.arg6);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Arg6'");
+            return err;
+        }
+    }
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const DoorLock::Commands::GetCredentialStatusResponse::DecodableType & value)
+                                     const UnitTesting::Events::TestFabricScopedEvent::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("credentialExists", indent + 1, value.credentialExists));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("userIndex", indent + 1, value.userIndex));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("creatorFabricIndex", indent + 1, value.creatorFabricIndex));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("lastModifiedFabricIndex", indent + 1, value.lastModifiedFabricIndex));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("nextCredentialIndex", indent + 1, value.nextCredentialIndex));
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("FabricIndex", indent + 1, value.fabricIndex);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'FabricIndex'");
+            return err;
+        }
+    }
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const ServiceArea::Commands::SelectAreasResponse::DecodableType & value)
+                                     const UnitTesting::Events::TestDifferentVendorMeiEvent::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("statusText", indent + 1, value.statusText));
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("Arg1", indent + 1, value.arg1);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Arg1'");
+            return err;
+        }
+    }
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const ServiceArea::Commands::SkipAreaResponse::DecodableType & value)
+                                     const SampleMei::Events::PingCountEvent::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("statusText", indent + 1, value.statusText));
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("Count", indent + 1, value.count);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'Count'");
+            return err;
+        }
+    }
+    {
+        CHIP_ERROR err = DataModelLogger::LogValue("FabricIndex", indent + 1, value.fabricIndex);
+        if (err != CHIP_NO_ERROR)
+        {
+            DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'FabricIndex'");
+            return err;
+        }
+    }
     DataModelLogger::LogString(indent, "}");
+
     return CHIP_NO_ERROR;
 }
+
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const Thermostat::Commands::GetWeeklyScheduleResponse::DecodableType & value)
+                                     const Groups::Commands::AddGroupResponse::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(
-        DataModelLogger::LogValue("numberOfTransitionsForSequence", indent + 1, value.numberOfTransitionsForSequence));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("dayOfWeekForSequence", indent + 1, value.dayOfWeekForSequence));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("modeForSequence", indent + 1, value.modeForSequence));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("transitions", indent + 1, value.transitions));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("groupID", indent + 1, value.groupID));
     DataModelLogger::LogString(indent, "}");
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const Thermostat::Commands::AtomicResponse::DecodableType & value)
+                                     const Groups::Commands::ViewGroupResponse::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("statusCode", indent + 1, value.statusCode));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("attributeStatus", indent + 1, value.attributeStatus));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("timeout", indent + 1, value.timeout));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("groupID", indent + 1, value.groupID));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("groupName", indent + 1, value.groupName));
     DataModelLogger::LogString(indent, "}");
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const WiFiNetworkManagement::Commands::NetworkPassphraseResponse::DecodableType & value)
+                                     const Groups::Commands::GetGroupMembershipResponse::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("passphrase", indent + 1, value.passphrase));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("capacity", indent + 1, value.capacity));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("groupList", indent + 1, value.groupList));
     DataModelLogger::LogString(indent, "}");
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const ThreadBorderRouterManagement::Commands::DatasetResponse::DecodableType & value)
+                                     const Groups::Commands::RemoveGroupResponse::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("dataset", indent + 1, value.dataset));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("groupID", indent + 1, value.groupID));
     DataModelLogger::LogString(indent, "}");
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const ThreadNetworkDirectory::Commands::OperationalDatasetResponse::DecodableType & value)
+                                     const AccessControl::Commands::ReviewFabricRestrictionsResponse::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("operationalDataset", indent + 1, value.operationalDataset));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("token", indent + 1, value.token));
     DataModelLogger::LogString(indent, "}");
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const Channel::Commands::ChangeChannelResponse::DecodableType & value)
+                                     const OtaSoftwareUpdateProvider::Commands::QueryImageResponse::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
     ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("data", indent + 1, value.data));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("delayedActionTime", indent + 1, value.delayedActionTime));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("imageURI", indent + 1, value.imageURI));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("softwareVersion", indent + 1, value.softwareVersion));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("softwareVersionString", indent + 1, value.softwareVersionString));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("updateToken", indent + 1, value.updateToken));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("userConsentNeeded", indent + 1, value.userConsentNeeded));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("metadataForRequestor", indent + 1, value.metadataForRequestor));
     DataModelLogger::LogString(indent, "}");
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const Channel::Commands::ProgramGuideResponse::DecodableType & value)
+                                     const OtaSoftwareUpdateProvider::Commands::ApplyUpdateResponse::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("paging", indent + 1, value.paging));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("programList", indent + 1, value.programList));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("action", indent + 1, value.action));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("delayedActionTime", indent + 1, value.delayedActionTime));
     DataModelLogger::LogString(indent, "}");
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const TargetNavigator::Commands::NavigateTargetResponse::DecodableType & value)
+                                     const GeneralCommissioning::Commands::ArmFailSafeResponse::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("data", indent + 1, value.data));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("errorCode", indent + 1, value.errorCode));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("debugText", indent + 1, value.debugText));
     DataModelLogger::LogString(indent, "}");
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const MediaPlayback::Commands::PlaybackResponse::DecodableType & value)
+                                     const GeneralCommissioning::Commands::SetRegulatoryConfigResponse::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("data", indent + 1, value.data));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("errorCode", indent + 1, value.errorCode));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("debugText", indent + 1, value.debugText));
     DataModelLogger::LogString(indent, "}");
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const KeypadInput::Commands::SendKeyResponse::DecodableType & value)
+                                     const GeneralCommissioning::Commands::CommissioningCompleteResponse::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("errorCode", indent + 1, value.errorCode));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("debugText", indent + 1, value.debugText));
     DataModelLogger::LogString(indent, "}");
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const ContentLauncher::Commands::LauncherResponse::DecodableType & value)
+                                     const GeneralCommissioning::Commands::SetTCAcknowledgementsResponse::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("data", indent + 1, value.data));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("errorCode", indent + 1, value.errorCode));
     DataModelLogger::LogString(indent, "}");
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const ApplicationLauncher::Commands::LauncherResponse::DecodableType & value)
+                                     const NetworkCommissioning::Commands::ScanNetworksResponse::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("data", indent + 1, value.data));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("networkingStatus", indent + 1, value.networkingStatus));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("debugText", indent + 1, value.debugText));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("wiFiScanResults", indent + 1, value.wiFiScanResults));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("threadScanResults", indent + 1, value.threadScanResults));
     DataModelLogger::LogString(indent, "}");
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const AccountLogin::Commands::GetSetupPINResponse::DecodableType & value)
+                                     const NetworkCommissioning::Commands::NetworkConfigResponse::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("setupPIN", indent + 1, value.setupPIN));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("networkingStatus", indent + 1, value.networkingStatus));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("debugText", indent + 1, value.debugText));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("networkIndex", indent + 1, value.networkIndex));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("clientIdentity", indent + 1, value.clientIdentity));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("possessionSignature", indent + 1, value.possessionSignature));
     DataModelLogger::LogString(indent, "}");
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const ContentControl::Commands::ResetPINResponse::DecodableType & value)
+                                     const NetworkCommissioning::Commands::ConnectNetworkResponse::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("PINCode", indent + 1, value.PINCode));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("networkingStatus", indent + 1, value.networkingStatus));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("debugText", indent + 1, value.debugText));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("errorValue", indent + 1, value.errorValue));
     DataModelLogger::LogString(indent, "}");
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const ContentAppObserver::Commands::ContentAppMessageResponse::DecodableType & value)
+                                     const NetworkCommissioning::Commands::QueryIdentityResponse::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("data", indent + 1, value.data));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("encodingHint", indent + 1, value.encodingHint));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("identity", indent + 1, value.identity));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("possessionSignature", indent + 1, value.possessionSignature));
     DataModelLogger::LogString(indent, "}");
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const CommissionerControl::Commands::ReverseOpenCommissioningWindow::DecodableType & value)
+                                     const DiagnosticLogs::Commands::RetrieveLogsResponse::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("commissioningTimeout", indent + 1, value.commissioningTimeout));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("PAKEPasscodeVerifier", indent + 1, value.PAKEPasscodeVerifier));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("discriminator", indent + 1, value.discriminator));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("iterations", indent + 1, value.iterations));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("salt", indent + 1, value.salt));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("logContent", indent + 1, value.logContent));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("UTCTimeStamp", indent + 1, value.UTCTimeStamp));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("timeSinceBoot", indent + 1, value.timeSinceBoot));
     DataModelLogger::LogString(indent, "}");
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const ElectricalMeasurement::Commands::GetProfileInfoResponseCommand::DecodableType & value)
+                                     const GeneralDiagnostics::Commands::TimeSnapshotResponse::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("profileCount", indent + 1, value.profileCount));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("profileIntervalPeriod", indent + 1, value.profileIntervalPeriod));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("maxNumberOfIntervals", indent + 1, value.maxNumberOfIntervals));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("listOfAttributes", indent + 1, value.listOfAttributes));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("systemTimeMs", indent + 1, value.systemTimeMs));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("posixTimeMs", indent + 1, value.posixTimeMs));
     DataModelLogger::LogString(indent, "}");
     return CHIP_NO_ERROR;
 }
-CHIP_ERROR
-DataModelLogger::LogValue(const char * label, size_t indent,
-                          const ElectricalMeasurement::Commands::GetMeasurementProfileResponseCommand::DecodableType & value)
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const GeneralDiagnostics::Commands::PayloadTestResponse::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("startTime", indent + 1, value.startTime));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("profileIntervalPeriod", indent + 1, value.profileIntervalPeriod));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("numberOfIntervalsDelivered", indent + 1, value.numberOfIntervalsDelivered));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("attributeId", indent + 1, value.attributeId));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("intervals", indent + 1, value.intervals));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("payload", indent + 1, value.payload));
     DataModelLogger::LogString(indent, "}");
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const UnitTesting::Commands::TestSpecificResponse::DecodableType & value)
+                                     const TimeSynchronization::Commands::SetTimeZoneResponse::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("returnValue", indent + 1, value.returnValue));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("DSTOffsetRequired", indent + 1, value.DSTOffsetRequired));
     DataModelLogger::LogString(indent, "}");
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const UnitTesting::Commands::TestAddArgumentsResponse::DecodableType & value)
+                                     const OperationalCredentials::Commands::AttestationResponse::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("returnValue", indent + 1, value.returnValue));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("attestationElements", indent + 1, value.attestationElements));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("attestationSignature", indent + 1, value.attestationSignature));
     DataModelLogger::LogString(indent, "}");
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const UnitTesting::Commands::TestSimpleArgumentResponse::DecodableType & value)
+                                     const OperationalCredentials::Commands::CertificateChainResponse::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("returnValue", indent + 1, value.returnValue));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("certificate", indent + 1, value.certificate));
     DataModelLogger::LogString(indent, "}");
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const UnitTesting::Commands::TestStructArrayArgumentResponse::DecodableType & value)
+                                     const OperationalCredentials::Commands::CSRResponse::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("arg1", indent + 1, value.arg1));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("arg2", indent + 1, value.arg2));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("arg3", indent + 1, value.arg3));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("arg4", indent + 1, value.arg4));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("arg5", indent + 1, value.arg5));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("arg6", indent + 1, value.arg6));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("NOCSRElements", indent + 1, value.NOCSRElements));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("attestationSignature", indent + 1, value.attestationSignature));
     DataModelLogger::LogString(indent, "}");
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const UnitTesting::Commands::TestListInt8UReverseResponse::DecodableType & value)
+                                     const OperationalCredentials::Commands::NOCResponse::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("arg1", indent + 1, value.arg1));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("statusCode", indent + 1, value.statusCode));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("fabricIndex", indent + 1, value.fabricIndex));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("debugText", indent + 1, value.debugText));
     DataModelLogger::LogString(indent, "}");
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const UnitTesting::Commands::TestEnumsResponse::DecodableType & value)
+                                     const GroupKeyManagement::Commands::KeySetReadResponse::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("arg1", indent + 1, value.arg1));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("arg2", indent + 1, value.arg2));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("groupKeySet", indent + 1, value.groupKeySet));
     DataModelLogger::LogString(indent, "}");
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const UnitTesting::Commands::TestNullableOptionalResponse::DecodableType & value)
+                                     const GroupKeyManagement::Commands::KeySetReadAllIndicesResponse::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("wasPresent", indent + 1, value.wasPresent));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("wasNull", indent + 1, value.wasNull));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("value", indent + 1, value.value));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("originalValue", indent + 1, value.originalValue));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("groupKeySetIDs", indent + 1, value.groupKeySetIDs));
     DataModelLogger::LogString(indent, "}");
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const UnitTesting::Commands::TestComplexNullableOptionalResponse::DecodableType & value)
+                                     const IcdManagement::Commands::RegisterClientResponse::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("nullableIntWasNull", indent + 1, value.nullableIntWasNull));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("nullableIntValue", indent + 1, value.nullableIntValue));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("optionalIntWasPresent", indent + 1, value.optionalIntWasPresent));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("optionalIntValue", indent + 1, value.optionalIntValue));
-    ReturnErrorOnFailure(
-        DataModelLogger::LogValue("nullableOptionalIntWasPresent", indent + 1, value.nullableOptionalIntWasPresent));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("nullableOptionalIntWasNull", indent + 1, value.nullableOptionalIntWasNull));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("nullableOptionalIntValue", indent + 1, value.nullableOptionalIntValue));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("nullableStringWasNull", indent + 1, value.nullableStringWasNull));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("nullableStringValue", indent + 1, value.nullableStringValue));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("optionalStringWasPresent", indent + 1, value.optionalStringWasPresent));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("optionalStringValue", indent + 1, value.optionalStringValue));
-    ReturnErrorOnFailure(
-        DataModelLogger::LogValue("nullableOptionalStringWasPresent", indent + 1, value.nullableOptionalStringWasPresent));
-    ReturnErrorOnFailure(
-        DataModelLogger::LogValue("nullableOptionalStringWasNull", indent + 1, value.nullableOptionalStringWasNull));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("nullableOptionalStringValue", indent + 1, value.nullableOptionalStringValue));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("nullableStructWasNull", indent + 1, value.nullableStructWasNull));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("nullableStructValue", indent + 1, value.nullableStructValue));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("optionalStructWasPresent", indent + 1, value.optionalStructWasPresent));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("optionalStructValue", indent + 1, value.optionalStructValue));
-    ReturnErrorOnFailure(
-        DataModelLogger::LogValue("nullableOptionalStructWasPresent", indent + 1, value.nullableOptionalStructWasPresent));
-    ReturnErrorOnFailure(
-        DataModelLogger::LogValue("nullableOptionalStructWasNull", indent + 1, value.nullableOptionalStructWasNull));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("nullableOptionalStructValue", indent + 1, value.nullableOptionalStructValue));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("nullableListWasNull", indent + 1, value.nullableListWasNull));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("nullableListValue", indent + 1, value.nullableListValue));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("optionalListWasPresent", indent + 1, value.optionalListWasPresent));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("optionalListValue", indent + 1, value.optionalListValue));
-    ReturnErrorOnFailure(
-        DataModelLogger::LogValue("nullableOptionalListWasPresent", indent + 1, value.nullableOptionalListWasPresent));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("nullableOptionalListWasNull", indent + 1, value.nullableOptionalListWasNull));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("nullableOptionalListValue", indent + 1, value.nullableOptionalListValue));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("ICDCounter", indent + 1, value.ICDCounter));
     DataModelLogger::LogString(indent, "}");
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const UnitTesting::Commands::BooleanResponse::DecodableType & value)
+                                     const IcdManagement::Commands::StayActiveResponse::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("value", indent + 1, value.value));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("promisedActiveDuration", indent + 1, value.promisedActiveDuration));
     DataModelLogger::LogString(indent, "}");
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const UnitTesting::Commands::SimpleStructResponse::DecodableType & value)
+                                     const OvenCavityOperationalState::Commands::OperationalCommandResponse::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("arg1", indent + 1, value.arg1));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("commandResponseState", indent + 1, value.commandResponseState));
     DataModelLogger::LogString(indent, "}");
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const UnitTesting::Commands::TestEmitTestEventResponse::DecodableType & value)
+                                     const OvenMode::Commands::ChangeToModeResponse::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("value", indent + 1, value.value));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("statusText", indent + 1, value.statusText));
     DataModelLogger::LogString(indent, "}");
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const UnitTesting::Commands::TestEmitTestFabricScopedEventResponse::DecodableType & value)
+                                     const LaundryWasherMode::Commands::ChangeToModeResponse::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("value", indent + 1, value.value));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("statusText", indent + 1, value.statusText));
     DataModelLogger::LogString(indent, "}");
     return CHIP_NO_ERROR;
 }
-CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const UnitTesting::Commands::TestBatchHelperResponse::DecodableType & value)
+CHIP_ERROR DataModelLogger::LogValue(
+    const char * label, size_t indent,
+    const RefrigeratorAndTemperatureControlledCabinetMode::Commands::ChangeToModeResponse::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("buffer", indent + 1, value.buffer));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("statusText", indent + 1, value.statusText));
     DataModelLogger::LogString(indent, "}");
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const UnitTesting::Commands::StringEchoResponse::DecodableType & value)
+                                     const RvcRunMode::Commands::ChangeToModeResponse::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("payload", indent + 1, value.payload));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("statusText", indent + 1, value.statusText));
     DataModelLogger::LogString(indent, "}");
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const UnitTesting::Commands::GlobalEchoResponse::DecodableType & value)
+                                     const RvcCleanMode::Commands::ChangeToModeResponse::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("field1", indent + 1, value.field1));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("field2", indent + 1, value.field2));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("statusText", indent + 1, value.statusText));
     DataModelLogger::LogString(indent, "}");
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const UnitTesting::Commands::TestDifferentVendorMeiResponse::DecodableType & value)
+                                     const DishwasherMode::Commands::ChangeToModeResponse::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("arg1", indent + 1, value.arg1));
-    ReturnErrorOnFailure(DataModelLogger::LogValue("eventNumber", indent + 1, value.eventNumber));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("statusText", indent + 1, value.statusText));
     DataModelLogger::LogString(indent, "}");
     return CHIP_NO_ERROR;
 }
 CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
-                                     const SampleMei::Commands::AddArgumentsResponse::DecodableType & value)
+                                     const OperationalState::Commands::OperationalCommandResponse::DecodableType & value)
 {
     DataModelLogger::LogString(label, indent, "{");
-    ReturnErrorOnFailure(DataModelLogger::LogValue("returnValue", indent + 1, value.returnValue));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("commandResponseState", indent + 1, value.commandResponseState));
     DataModelLogger::LogString(indent, "}");
     return CHIP_NO_ERROR;
 }
-
-CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributePath & path, chip::TLV::TLVReader * data)
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const RvcOperationalState::Commands::OperationalCommandResponse::DecodableType & value)
 {
-    ChipLogProgress(chipTool, "Endpoint: %u Cluster: " ChipLogFormatMEI " Attribute " ChipLogFormatMEI " DataVersion: %" PRIu32,
-                    path.mEndpointId, ChipLogValueMEI(path.mClusterId), ChipLogValueMEI(path.mAttributeId),
-                    path.mDataVersion.ValueOr(0));
-
-    switch (path.mClusterId)
-    {
-    case Identify::Id: {
-        switch (path.mAttributeId)
-        {
-        case Identify::Attributes::IdentifyTime::Id: {
-            uint16_t value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("IdentifyTime", 1, value);
-        }
-        case Identify::Attributes::IdentifyType::Id: {
-            chip::app::Clusters::Identify::IdentifyTypeEnum value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("IdentifyType", 1, value);
-        }
-        case Identify::Attributes::GeneratedCommandList::Id: {
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("commandResponseState", indent + 1, value.commandResponseState));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const ScenesManagement::Commands::AddSceneResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("groupID", indent + 1, value.groupID));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("sceneID", indent + 1, value.sceneID));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const ScenesManagement::Commands::ViewSceneResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("groupID", indent + 1, value.groupID));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("sceneID", indent + 1, value.sceneID));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("transitionTime", indent + 1, value.transitionTime));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("sceneName", indent + 1, value.sceneName));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("extensionFieldSets", indent + 1, value.extensionFieldSets));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const ScenesManagement::Commands::RemoveSceneResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("groupID", indent + 1, value.groupID));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("sceneID", indent + 1, value.sceneID));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const ScenesManagement::Commands::RemoveAllScenesResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("groupID", indent + 1, value.groupID));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const ScenesManagement::Commands::StoreSceneResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("groupID", indent + 1, value.groupID));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("sceneID", indent + 1, value.sceneID));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const ScenesManagement::Commands::GetSceneMembershipResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("capacity", indent + 1, value.capacity));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("groupID", indent + 1, value.groupID));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("sceneList", indent + 1, value.sceneList));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const ScenesManagement::Commands::CopySceneResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("groupIdentifierFrom", indent + 1, value.groupIdentifierFrom));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("sceneIdentifierFrom", indent + 1, value.sceneIdentifierFrom));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const EnergyEvse::Commands::GetTargetsResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("chargingTargetSchedules", indent + 1, value.chargingTargetSchedules));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const EnergyEvseMode::Commands::ChangeToModeResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("statusText", indent + 1, value.statusText));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const WaterHeaterMode::Commands::ChangeToModeResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("statusText", indent + 1, value.statusText));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const DeviceEnergyManagementMode::Commands::ChangeToModeResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("statusText", indent + 1, value.statusText));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const DoorLock::Commands::GetWeekDayScheduleResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("weekDayIndex", indent + 1, value.weekDayIndex));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("userIndex", indent + 1, value.userIndex));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("daysMask", indent + 1, value.daysMask));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("startHour", indent + 1, value.startHour));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("startMinute", indent + 1, value.startMinute));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("endHour", indent + 1, value.endHour));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("endMinute", indent + 1, value.endMinute));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const DoorLock::Commands::GetYearDayScheduleResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("yearDayIndex", indent + 1, value.yearDayIndex));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("userIndex", indent + 1, value.userIndex));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("localStartTime", indent + 1, value.localStartTime));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("localEndTime", indent + 1, value.localEndTime));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const DoorLock::Commands::GetHolidayScheduleResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("holidayIndex", indent + 1, value.holidayIndex));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("localStartTime", indent + 1, value.localStartTime));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("localEndTime", indent + 1, value.localEndTime));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("operatingMode", indent + 1, value.operatingMode));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const DoorLock::Commands::GetUserResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("userIndex", indent + 1, value.userIndex));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("userName", indent + 1, value.userName));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("userUniqueID", indent + 1, value.userUniqueID));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("userStatus", indent + 1, value.userStatus));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("userType", indent + 1, value.userType));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("credentialRule", indent + 1, value.credentialRule));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("credentials", indent + 1, value.credentials));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("creatorFabricIndex", indent + 1, value.creatorFabricIndex));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("lastModifiedFabricIndex", indent + 1, value.lastModifiedFabricIndex));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("nextUserIndex", indent + 1, value.nextUserIndex));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const DoorLock::Commands::SetCredentialResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("userIndex", indent + 1, value.userIndex));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("nextCredentialIndex", indent + 1, value.nextCredentialIndex));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const DoorLock::Commands::GetCredentialStatusResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("credentialExists", indent + 1, value.credentialExists));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("userIndex", indent + 1, value.userIndex));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("creatorFabricIndex", indent + 1, value.creatorFabricIndex));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("lastModifiedFabricIndex", indent + 1, value.lastModifiedFabricIndex));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("nextCredentialIndex", indent + 1, value.nextCredentialIndex));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const ServiceArea::Commands::SelectAreasResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("statusText", indent + 1, value.statusText));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const ServiceArea::Commands::SkipAreaResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("statusText", indent + 1, value.statusText));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const Thermostat::Commands::GetWeeklyScheduleResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(
+        DataModelLogger::LogValue("numberOfTransitionsForSequence", indent + 1, value.numberOfTransitionsForSequence));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("dayOfWeekForSequence", indent + 1, value.dayOfWeekForSequence));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("modeForSequence", indent + 1, value.modeForSequence));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("transitions", indent + 1, value.transitions));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const Thermostat::Commands::AtomicResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("statusCode", indent + 1, value.statusCode));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("attributeStatus", indent + 1, value.attributeStatus));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("timeout", indent + 1, value.timeout));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const WiFiNetworkManagement::Commands::NetworkPassphraseResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("passphrase", indent + 1, value.passphrase));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const ThreadBorderRouterManagement::Commands::DatasetResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("dataset", indent + 1, value.dataset));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const ThreadNetworkDirectory::Commands::OperationalDatasetResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("operationalDataset", indent + 1, value.operationalDataset));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const Channel::Commands::ChangeChannelResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("data", indent + 1, value.data));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const Channel::Commands::ProgramGuideResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("paging", indent + 1, value.paging));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("programList", indent + 1, value.programList));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const TargetNavigator::Commands::NavigateTargetResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("data", indent + 1, value.data));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const MediaPlayback::Commands::PlaybackResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("data", indent + 1, value.data));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const KeypadInput::Commands::SendKeyResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const ContentLauncher::Commands::LauncherResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("data", indent + 1, value.data));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const ApplicationLauncher::Commands::LauncherResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("data", indent + 1, value.data));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const AccountLogin::Commands::GetSetupPINResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("setupPIN", indent + 1, value.setupPIN));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const ContentControl::Commands::ResetPINResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("PINCode", indent + 1, value.PINCode));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const ContentAppObserver::Commands::ContentAppMessageResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("data", indent + 1, value.data));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("encodingHint", indent + 1, value.encodingHint));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const CameraAvStreamManagement::Commands::AudioStreamAllocateResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("audioStreamID", indent + 1, value.audioStreamID));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const CameraAvStreamManagement::Commands::VideoStreamAllocateResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("videoStreamID", indent + 1, value.videoStreamID));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR
+DataModelLogger::LogValue(const char * label, size_t indent,
+                          const CameraAvStreamManagement::Commands::SnapshotStreamAllocateResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("snapshotStreamID", indent + 1, value.snapshotStreamID));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const CameraAvStreamManagement::Commands::CaptureSnapshotResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("data", indent + 1, value.data));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("imageCodec", indent + 1, value.imageCodec));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("resolution", indent + 1, value.resolution));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const WebRTCTransportProvider::Commands::WebRTCSolicitOfferResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("webRTCSessionID", indent + 1, value.webRTCSessionID));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("deferredOffer", indent + 1, value.deferredOffer));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("videoStreamID", indent + 1, value.videoStreamID));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("audioStreamID", indent + 1, value.audioStreamID));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const WebRTCTransportProvider::Commands::WebRTCProvideOfferResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("webRTCSessionID", indent + 1, value.webRTCSessionID));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("videoStreamID", indent + 1, value.videoStreamID));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("audioStreamID", indent + 1, value.audioStreamID));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const PushAvStreamTransport::Commands::AllocatePushTransportResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("connectionID", indent + 1, value.connectionID));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("streamTransportOptions", indent + 1, value.streamTransportOptions));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("transportStatus", indent + 1, value.transportStatus));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const PushAvStreamTransport::Commands::FindStreamConfigurationResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("streamConfigurations", indent + 1, value.streamConfigurations));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const CommissionerControl::Commands::ReverseOpenCommissioningWindow::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("commissioningTimeout", indent + 1, value.commissioningTimeout));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("PAKEPasscodeVerifier", indent + 1, value.PAKEPasscodeVerifier));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("discriminator", indent + 1, value.discriminator));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("iterations", indent + 1, value.iterations));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("salt", indent + 1, value.salt));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const ElectricalMeasurement::Commands::GetProfileInfoResponseCommand::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("profileCount", indent + 1, value.profileCount));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("profileIntervalPeriod", indent + 1, value.profileIntervalPeriod));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("maxNumberOfIntervals", indent + 1, value.maxNumberOfIntervals));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("listOfAttributes", indent + 1, value.listOfAttributes));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR
+DataModelLogger::LogValue(const char * label, size_t indent,
+                          const ElectricalMeasurement::Commands::GetMeasurementProfileResponseCommand::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("startTime", indent + 1, value.startTime));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("status", indent + 1, value.status));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("profileIntervalPeriod", indent + 1, value.profileIntervalPeriod));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("numberOfIntervalsDelivered", indent + 1, value.numberOfIntervalsDelivered));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("attributeId", indent + 1, value.attributeId));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("intervals", indent + 1, value.intervals));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const UnitTesting::Commands::TestSpecificResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("returnValue", indent + 1, value.returnValue));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const UnitTesting::Commands::TestAddArgumentsResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("returnValue", indent + 1, value.returnValue));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const UnitTesting::Commands::TestSimpleArgumentResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("returnValue", indent + 1, value.returnValue));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const UnitTesting::Commands::TestStructArrayArgumentResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("arg1", indent + 1, value.arg1));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("arg2", indent + 1, value.arg2));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("arg3", indent + 1, value.arg3));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("arg4", indent + 1, value.arg4));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("arg5", indent + 1, value.arg5));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("arg6", indent + 1, value.arg6));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const UnitTesting::Commands::TestListInt8UReverseResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("arg1", indent + 1, value.arg1));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const UnitTesting::Commands::TestEnumsResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("arg1", indent + 1, value.arg1));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("arg2", indent + 1, value.arg2));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const UnitTesting::Commands::TestNullableOptionalResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("wasPresent", indent + 1, value.wasPresent));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("wasNull", indent + 1, value.wasNull));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("value", indent + 1, value.value));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("originalValue", indent + 1, value.originalValue));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const UnitTesting::Commands::TestComplexNullableOptionalResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("nullableIntWasNull", indent + 1, value.nullableIntWasNull));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("nullableIntValue", indent + 1, value.nullableIntValue));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("optionalIntWasPresent", indent + 1, value.optionalIntWasPresent));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("optionalIntValue", indent + 1, value.optionalIntValue));
+    ReturnErrorOnFailure(
+        DataModelLogger::LogValue("nullableOptionalIntWasPresent", indent + 1, value.nullableOptionalIntWasPresent));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("nullableOptionalIntWasNull", indent + 1, value.nullableOptionalIntWasNull));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("nullableOptionalIntValue", indent + 1, value.nullableOptionalIntValue));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("nullableStringWasNull", indent + 1, value.nullableStringWasNull));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("nullableStringValue", indent + 1, value.nullableStringValue));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("optionalStringWasPresent", indent + 1, value.optionalStringWasPresent));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("optionalStringValue", indent + 1, value.optionalStringValue));
+    ReturnErrorOnFailure(
+        DataModelLogger::LogValue("nullableOptionalStringWasPresent", indent + 1, value.nullableOptionalStringWasPresent));
+    ReturnErrorOnFailure(
+        DataModelLogger::LogValue("nullableOptionalStringWasNull", indent + 1, value.nullableOptionalStringWasNull));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("nullableOptionalStringValue", indent + 1, value.nullableOptionalStringValue));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("nullableStructWasNull", indent + 1, value.nullableStructWasNull));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("nullableStructValue", indent + 1, value.nullableStructValue));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("optionalStructWasPresent", indent + 1, value.optionalStructWasPresent));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("optionalStructValue", indent + 1, value.optionalStructValue));
+    ReturnErrorOnFailure(
+        DataModelLogger::LogValue("nullableOptionalStructWasPresent", indent + 1, value.nullableOptionalStructWasPresent));
+    ReturnErrorOnFailure(
+        DataModelLogger::LogValue("nullableOptionalStructWasNull", indent + 1, value.nullableOptionalStructWasNull));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("nullableOptionalStructValue", indent + 1, value.nullableOptionalStructValue));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("nullableListWasNull", indent + 1, value.nullableListWasNull));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("nullableListValue", indent + 1, value.nullableListValue));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("optionalListWasPresent", indent + 1, value.optionalListWasPresent));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("optionalListValue", indent + 1, value.optionalListValue));
+    ReturnErrorOnFailure(
+        DataModelLogger::LogValue("nullableOptionalListWasPresent", indent + 1, value.nullableOptionalListWasPresent));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("nullableOptionalListWasNull", indent + 1, value.nullableOptionalListWasNull));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("nullableOptionalListValue", indent + 1, value.nullableOptionalListValue));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const UnitTesting::Commands::BooleanResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("value", indent + 1, value.value));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const UnitTesting::Commands::SimpleStructResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("arg1", indent + 1, value.arg1));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const UnitTesting::Commands::TestEmitTestEventResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("value", indent + 1, value.value));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const UnitTesting::Commands::TestEmitTestFabricScopedEventResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("value", indent + 1, value.value));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const UnitTesting::Commands::TestBatchHelperResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("buffer", indent + 1, value.buffer));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const UnitTesting::Commands::StringEchoResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("payload", indent + 1, value.payload));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const UnitTesting::Commands::GlobalEchoResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("field1", indent + 1, value.field1));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("field2", indent + 1, value.field2));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const UnitTesting::Commands::TestDifferentVendorMeiResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("arg1", indent + 1, value.arg1));
+    ReturnErrorOnFailure(DataModelLogger::LogValue("eventNumber", indent + 1, value.eventNumber));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent,
+                                     const SampleMei::Commands::AddArgumentsResponse::DecodableType & value)
+{
+    DataModelLogger::LogString(label, indent, "{");
+    ReturnErrorOnFailure(DataModelLogger::LogValue("returnValue", indent + 1, value.returnValue));
+    DataModelLogger::LogString(indent, "}");
+    return CHIP_NO_ERROR;
+}
+
+CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributePath & path, chip::TLV::TLVReader * data)
+{
+    ChipLogProgress(chipTool, "Endpoint: %u Cluster: " ChipLogFormatMEI " Attribute " ChipLogFormatMEI " DataVersion: %" PRIu32,
+                    path.mEndpointId, ChipLogValueMEI(path.mClusterId), ChipLogValueMEI(path.mAttributeId),
+                    path.mDataVersion.ValueOr(0));
+
+    switch (path.mClusterId)
+    {
+    case Identify::Id: {
+        switch (path.mAttributeId)
+        {
+        case Identify::Attributes::IdentifyTime::Id: {
+            uint16_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("IdentifyTime", 1, value);
+        }
+        case Identify::Attributes::IdentifyType::Id: {
+            chip::app::Clusters::Identify::IdentifyTypeEnum value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("IdentifyType", 1, value);
+        }
+        case Identify::Attributes::GeneratedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, Identify::Id);
+        }
+        case Identify::Attributes::AcceptedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, Identify::Id);
+        }
+        case Identify::Attributes::EventList::Id: {
+            chip::app::DataModel::DecodableList<chip::EventId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("EventList", 1, value);
+        }
+        case Identify::Attributes::AttributeList::Id: {
+            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, Identify::Id);
+        }
+        case Identify::Attributes::FeatureMap::Id: {
+            uint32_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("FeatureMap", 1, value);
+        }
+        case Identify::Attributes::ClusterRevision::Id: {
+            uint16_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("ClusterRevision", 1, value);
+        }
+        }
+        break;
+    }
+    case Groups::Id: {
+        switch (path.mAttributeId)
+        {
+        case Groups::Attributes::NameSupport::Id: {
+            chip::BitMask<chip::app::Clusters::Groups::NameSupportBitmap> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("NameSupport", 1, value);
+        }
+        case Groups::Attributes::GeneratedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, Groups::Id);
+        }
+        case Groups::Attributes::AcceptedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, Groups::Id);
+        }
+        case Groups::Attributes::EventList::Id: {
+            chip::app::DataModel::DecodableList<chip::EventId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("EventList", 1, value);
+        }
+        case Groups::Attributes::AttributeList::Id: {
+            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, Groups::Id);
+        }
+        case Groups::Attributes::FeatureMap::Id: {
+            uint32_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("FeatureMap", 1, value);
+        }
+        case Groups::Attributes::ClusterRevision::Id: {
+            uint16_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("ClusterRevision", 1, value);
+        }
+        }
+        break;
+    }
+    case OnOff::Id: {
+        switch (path.mAttributeId)
+        {
+        case OnOff::Attributes::OnOff::Id: {
+            bool value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("OnOff", 1, value);
+        }
+        case OnOff::Attributes::GlobalSceneControl::Id: {
+            bool value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("GlobalSceneControl", 1, value);
+        }
+        case OnOff::Attributes::OnTime::Id: {
+            uint16_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("OnTime", 1, value);
+        }
+        case OnOff::Attributes::OffWaitTime::Id: {
+            uint16_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("OffWaitTime", 1, value);
+        }
+        case OnOff::Attributes::StartUpOnOff::Id: {
+            chip::app::DataModel::Nullable<chip::app::Clusters::OnOff::StartUpOnOffEnum> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("StartUpOnOff", 1, value);
+        }
+        case OnOff::Attributes::GeneratedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, OnOff::Id);
+        }
+        case OnOff::Attributes::AcceptedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, OnOff::Id);
+        }
+        case OnOff::Attributes::EventList::Id: {
+            chip::app::DataModel::DecodableList<chip::EventId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("EventList", 1, value);
+        }
+        case OnOff::Attributes::AttributeList::Id: {
+            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, OnOff::Id);
+        }
+        case OnOff::Attributes::FeatureMap::Id: {
+            uint32_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("FeatureMap", 1, value);
+        }
+        case OnOff::Attributes::ClusterRevision::Id: {
+            uint16_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("ClusterRevision", 1, value);
+        }
+        }
+        break;
+    }
+    case OnOffSwitchConfiguration::Id: {
+        switch (path.mAttributeId)
+        {
+        case OnOffSwitchConfiguration::Attributes::SwitchType::Id: {
+            uint8_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("switch type", 1, value);
+        }
+        case OnOffSwitchConfiguration::Attributes::SwitchActions::Id: {
+            uint8_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("switch actions", 1, value);
+        }
+        case OnOffSwitchConfiguration::Attributes::GeneratedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, OnOffSwitchConfiguration::Id);
+        }
+        case OnOffSwitchConfiguration::Attributes::AcceptedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, OnOffSwitchConfiguration::Id);
+        }
+        case OnOffSwitchConfiguration::Attributes::EventList::Id: {
+            chip::app::DataModel::DecodableList<chip::EventId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("EventList", 1, value);
+        }
+        case OnOffSwitchConfiguration::Attributes::AttributeList::Id: {
+            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, OnOffSwitchConfiguration::Id);
+        }
+        case OnOffSwitchConfiguration::Attributes::FeatureMap::Id: {
+            uint32_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("FeatureMap", 1, value);
+        }
+        case OnOffSwitchConfiguration::Attributes::ClusterRevision::Id: {
+            uint16_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("ClusterRevision", 1, value);
+        }
+        }
+        break;
+    }
+    case LevelControl::Id: {
+        switch (path.mAttributeId)
+        {
+        case LevelControl::Attributes::CurrentLevel::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("CurrentLevel", 1, value);
+        }
+        case LevelControl::Attributes::RemainingTime::Id: {
+            uint16_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("RemainingTime", 1, value);
+        }
+        case LevelControl::Attributes::MinLevel::Id: {
+            uint8_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("MinLevel", 1, value);
+        }
+        case LevelControl::Attributes::MaxLevel::Id: {
+            uint8_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("MaxLevel", 1, value);
+        }
+        case LevelControl::Attributes::CurrentFrequency::Id: {
+            uint16_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("CurrentFrequency", 1, value);
+        }
+        case LevelControl::Attributes::MinFrequency::Id: {
+            uint16_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("MinFrequency", 1, value);
+        }
+        case LevelControl::Attributes::MaxFrequency::Id: {
+            uint16_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("MaxFrequency", 1, value);
+        }
+        case LevelControl::Attributes::Options::Id: {
+            chip::BitMask<chip::app::Clusters::LevelControl::OptionsBitmap> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("Options", 1, value);
+        }
+        case LevelControl::Attributes::OnOffTransitionTime::Id: {
+            uint16_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("OnOffTransitionTime", 1, value);
+        }
+        case LevelControl::Attributes::OnLevel::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("OnLevel", 1, value);
+        }
+        case LevelControl::Attributes::OnTransitionTime::Id: {
+            chip::app::DataModel::Nullable<uint16_t> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("OnTransitionTime", 1, value);
+        }
+        case LevelControl::Attributes::OffTransitionTime::Id: {
+            chip::app::DataModel::Nullable<uint16_t> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("OffTransitionTime", 1, value);
+        }
+        case LevelControl::Attributes::DefaultMoveRate::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("DefaultMoveRate", 1, value);
+        }
+        case LevelControl::Attributes::StartUpCurrentLevel::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("StartUpCurrentLevel", 1, value);
+        }
+        case LevelControl::Attributes::GeneratedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, LevelControl::Id);
+        }
+        case LevelControl::Attributes::AcceptedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, LevelControl::Id);
+        }
+        case LevelControl::Attributes::EventList::Id: {
+            chip::app::DataModel::DecodableList<chip::EventId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("EventList", 1, value);
+        }
+        case LevelControl::Attributes::AttributeList::Id: {
+            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, LevelControl::Id);
+        }
+        case LevelControl::Attributes::FeatureMap::Id: {
+            uint32_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("FeatureMap", 1, value);
+        }
+        case LevelControl::Attributes::ClusterRevision::Id: {
+            uint16_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("ClusterRevision", 1, value);
+        }
+        }
+        break;
+    }
+    case BinaryInputBasic::Id: {
+        switch (path.mAttributeId)
+        {
+        case BinaryInputBasic::Attributes::ActiveText::Id: {
+            chip::CharSpan value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("active text", 1, value);
+        }
+        case BinaryInputBasic::Attributes::Description::Id: {
+            chip::CharSpan value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("description", 1, value);
+        }
+        case BinaryInputBasic::Attributes::InactiveText::Id: {
+            chip::CharSpan value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("inactive text", 1, value);
+        }
+        case BinaryInputBasic::Attributes::OutOfService::Id: {
+            bool value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("out of service", 1, value);
+        }
+        case BinaryInputBasic::Attributes::Polarity::Id: {
+            uint8_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("polarity", 1, value);
+        }
+        case BinaryInputBasic::Attributes::PresentValue::Id: {
+            bool value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("present value", 1, value);
+        }
+        case BinaryInputBasic::Attributes::Reliability::Id: {
+            uint8_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("reliability", 1, value);
+        }
+        case BinaryInputBasic::Attributes::StatusFlags::Id: {
+            uint8_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("status flags", 1, value);
+        }
+        case BinaryInputBasic::Attributes::ApplicationType::Id: {
+            uint32_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("application type", 1, value);
+        }
+        case BinaryInputBasic::Attributes::GeneratedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, BinaryInputBasic::Id);
+        }
+        case BinaryInputBasic::Attributes::AcceptedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, BinaryInputBasic::Id);
+        }
+        case BinaryInputBasic::Attributes::EventList::Id: {
+            chip::app::DataModel::DecodableList<chip::EventId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("EventList", 1, value);
+        }
+        case BinaryInputBasic::Attributes::AttributeList::Id: {
+            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, BinaryInputBasic::Id);
+        }
+        case BinaryInputBasic::Attributes::FeatureMap::Id: {
+            uint32_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("FeatureMap", 1, value);
+        }
+        case BinaryInputBasic::Attributes::ClusterRevision::Id: {
+            uint16_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("ClusterRevision", 1, value);
+        }
+        }
+        break;
+    }
+    case PulseWidthModulation::Id: {
+        switch (path.mAttributeId)
+        {
+        case PulseWidthModulation::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, Identify::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, PulseWidthModulation::Id);
         }
-        case Identify::Attributes::AcceptedCommandList::Id: {
+        case PulseWidthModulation::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, Identify::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, PulseWidthModulation::Id);
         }
-        case Identify::Attributes::EventList::Id: {
+        case PulseWidthModulation::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case Identify::Attributes::AttributeList::Id: {
+        case PulseWidthModulation::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, Identify::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, PulseWidthModulation::Id);
         }
-        case Identify::Attributes::FeatureMap::Id: {
+        case PulseWidthModulation::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case Identify::Attributes::ClusterRevision::Id: {
+        case PulseWidthModulation::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -8982,40 +10640,60 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case Groups::Id: {
+    case Descriptor::Id: {
         switch (path.mAttributeId)
         {
-        case Groups::Attributes::NameSupport::Id: {
-            chip::BitMask<chip::app::Clusters::Groups::NameSupportBitmap> value;
+        case Descriptor::Attributes::DeviceTypeList::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::Descriptor::Structs::DeviceTypeStruct::DecodableType> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NameSupport", 1, value);
+            return DataModelLogger::LogValue("DeviceTypeList", 1, value);
         }
-        case Groups::Attributes::GeneratedCommandList::Id: {
+        case Descriptor::Attributes::ServerList::Id: {
+            chip::app::DataModel::DecodableList<chip::ClusterId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogClusterId("ServerList", 1, value);
+        }
+        case Descriptor::Attributes::ClientList::Id: {
+            chip::app::DataModel::DecodableList<chip::ClusterId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogClusterId("ClientList", 1, value);
+        }
+        case Descriptor::Attributes::PartsList::Id: {
+            chip::app::DataModel::DecodableList<chip::EndpointId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("PartsList", 1, value);
+        }
+        case Descriptor::Attributes::TagList::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::Descriptor::Structs::SemanticTagStruct::DecodableType> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("TagList", 1, value);
+        }
+        case Descriptor::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, Groups::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, Descriptor::Id);
         }
-        case Groups::Attributes::AcceptedCommandList::Id: {
+        case Descriptor::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, Groups::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, Descriptor::Id);
         }
-        case Groups::Attributes::EventList::Id: {
+        case Descriptor::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case Groups::Attributes::AttributeList::Id: {
+        case Descriptor::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, Groups::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, Descriptor::Id);
         }
-        case Groups::Attributes::FeatureMap::Id: {
+        case Descriptor::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case Groups::Attributes::ClusterRevision::Id: {
+        case Descriptor::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -9023,60 +10701,40 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case OnOff::Id: {
+    case Binding::Id: {
         switch (path.mAttributeId)
         {
-        case OnOff::Attributes::OnOff::Id: {
-            bool value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OnOff", 1, value);
-        }
-        case OnOff::Attributes::GlobalSceneControl::Id: {
-            bool value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("GlobalSceneControl", 1, value);
-        }
-        case OnOff::Attributes::OnTime::Id: {
-            uint16_t value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OnTime", 1, value);
-        }
-        case OnOff::Attributes::OffWaitTime::Id: {
-            uint16_t value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OffWaitTime", 1, value);
-        }
-        case OnOff::Attributes::StartUpOnOff::Id: {
-            chip::app::DataModel::Nullable<chip::app::Clusters::OnOff::StartUpOnOffEnum> value;
+        case Binding::Attributes::Binding::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::Binding::Structs::TargetStruct::DecodableType> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("StartUpOnOff", 1, value);
+            return DataModelLogger::LogValue("Binding", 1, value);
         }
-        case OnOff::Attributes::GeneratedCommandList::Id: {
+        case Binding::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, OnOff::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, Binding::Id);
         }
-        case OnOff::Attributes::AcceptedCommandList::Id: {
+        case Binding::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, OnOff::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, Binding::Id);
         }
-        case OnOff::Attributes::EventList::Id: {
+        case Binding::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case OnOff::Attributes::AttributeList::Id: {
+        case Binding::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, OnOff::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, Binding::Id);
         }
-        case OnOff::Attributes::FeatureMap::Id: {
+        case Binding::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case OnOff::Attributes::ClusterRevision::Id: {
+        case Binding::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -9084,45 +10742,78 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case OnOffSwitchConfiguration::Id: {
+    case AccessControl::Id: {
         switch (path.mAttributeId)
         {
-        case OnOffSwitchConfiguration::Attributes::SwitchType::Id: {
-            uint8_t value;
+        case AccessControl::Attributes::Acl::Id: {
+            chip::app::DataModel::DecodableList<
+                chip::app::Clusters::AccessControl::Structs::AccessControlEntryStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("switch type", 1, value);
+            return DataModelLogger::LogValue("ACL", 1, value);
         }
-        case OnOffSwitchConfiguration::Attributes::SwitchActions::Id: {
-            uint8_t value;
+        case AccessControl::Attributes::Extension::Id: {
+            chip::app::DataModel::DecodableList<
+                chip::app::Clusters::AccessControl::Structs::AccessControlExtensionStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("switch actions", 1, value);
+            return DataModelLogger::LogValue("Extension", 1, value);
         }
-        case OnOffSwitchConfiguration::Attributes::GeneratedCommandList::Id: {
+        case AccessControl::Attributes::SubjectsPerAccessControlEntry::Id: {
+            uint16_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("SubjectsPerAccessControlEntry", 1, value);
+        }
+        case AccessControl::Attributes::TargetsPerAccessControlEntry::Id: {
+            uint16_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("TargetsPerAccessControlEntry", 1, value);
+        }
+        case AccessControl::Attributes::AccessControlEntriesPerFabric::Id: {
+            uint16_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("AccessControlEntriesPerFabric", 1, value);
+        }
+        case AccessControl::Attributes::CommissioningARL::Id: {
+            chip::app::DataModel::DecodableList<
+                chip::app::Clusters::AccessControl::Structs::CommissioningAccessRestrictionEntryStruct::DecodableType>
+                value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("CommissioningARL", 1, value);
+        }
+        case AccessControl::Attributes::Arl::Id: {
+            chip::app::DataModel::DecodableList<
+                chip::app::Clusters::AccessControl::Structs::AccessRestrictionEntryStruct::DecodableType>
+                value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("ARL", 1, value);
+        }
+        case AccessControl::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, OnOffSwitchConfiguration::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, AccessControl::Id);
         }
-        case OnOffSwitchConfiguration::Attributes::AcceptedCommandList::Id: {
+        case AccessControl::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, OnOffSwitchConfiguration::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, AccessControl::Id);
         }
-        case OnOffSwitchConfiguration::Attributes::EventList::Id: {
+        case AccessControl::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case OnOffSwitchConfiguration::Attributes::AttributeList::Id: {
+        case AccessControl::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, OnOffSwitchConfiguration::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, AccessControl::Id);
         }
-        case OnOffSwitchConfiguration::Attributes::FeatureMap::Id: {
+        case AccessControl::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case OnOffSwitchConfiguration::Attributes::ClusterRevision::Id: {
+        case AccessControl::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -9130,186 +10821,201 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case LevelControl::Id: {
+    case Actions::Id: {
         switch (path.mAttributeId)
         {
-        case LevelControl::Attributes::CurrentLevel::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case Actions::Attributes::ActionList::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::Actions::Structs::ActionStruct::DecodableType> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentLevel", 1, value);
+            return DataModelLogger::LogValue("ActionList", 1, value);
         }
-        case LevelControl::Attributes::RemainingTime::Id: {
-            uint16_t value;
+        case Actions::Attributes::EndpointLists::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::Actions::Structs::EndpointListStruct::DecodableType> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("RemainingTime", 1, value);
+            return DataModelLogger::LogValue("EndpointLists", 1, value);
         }
-        case LevelControl::Attributes::MinLevel::Id: {
-            uint8_t value;
+        case Actions::Attributes::SetupURL::Id: {
+            chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MinLevel", 1, value);
+            return DataModelLogger::LogValue("SetupURL", 1, value);
         }
-        case LevelControl::Attributes::MaxLevel::Id: {
-            uint8_t value;
+        case Actions::Attributes::GeneratedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MaxLevel", 1, value);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, Actions::Id);
         }
-        case LevelControl::Attributes::CurrentFrequency::Id: {
-            uint16_t value;
+        case Actions::Attributes::AcceptedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentFrequency", 1, value);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, Actions::Id);
         }
-        case LevelControl::Attributes::MinFrequency::Id: {
-            uint16_t value;
+        case Actions::Attributes::EventList::Id: {
+            chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MinFrequency", 1, value);
+            return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case LevelControl::Attributes::MaxFrequency::Id: {
-            uint16_t value;
+        case Actions::Attributes::AttributeList::Id: {
+            chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MaxFrequency", 1, value);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, Actions::Id);
         }
-        case LevelControl::Attributes::Options::Id: {
-            chip::BitMask<chip::app::Clusters::LevelControl::OptionsBitmap> value;
+        case Actions::Attributes::FeatureMap::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Options", 1, value);
+            return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case LevelControl::Attributes::OnOffTransitionTime::Id: {
+        case Actions::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OnOffTransitionTime", 1, value);
+            return DataModelLogger::LogValue("ClusterRevision", 1, value);
         }
-        case LevelControl::Attributes::OnLevel::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        }
+        break;
+    }
+    case BasicInformation::Id: {
+        switch (path.mAttributeId)
+        {
+        case BasicInformation::Attributes::DataModelRevision::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OnLevel", 1, value);
+            return DataModelLogger::LogValue("DataModelRevision", 1, value);
         }
-        case LevelControl::Attributes::OnTransitionTime::Id: {
-            chip::app::DataModel::Nullable<uint16_t> value;
+        case BasicInformation::Attributes::VendorName::Id: {
+            chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OnTransitionTime", 1, value);
+            return DataModelLogger::LogValue("VendorName", 1, value);
         }
-        case LevelControl::Attributes::OffTransitionTime::Id: {
-            chip::app::DataModel::Nullable<uint16_t> value;
+        case BasicInformation::Attributes::VendorID::Id: {
+            chip::VendorId value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OffTransitionTime", 1, value);
+            return DataModelLogger::LogValue("VendorID", 1, value);
         }
-        case LevelControl::Attributes::DefaultMoveRate::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case BasicInformation::Attributes::ProductName::Id: {
+            chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("DefaultMoveRate", 1, value);
+            return DataModelLogger::LogValue("ProductName", 1, value);
         }
-        case LevelControl::Attributes::StartUpCurrentLevel::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case BasicInformation::Attributes::ProductID::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("StartUpCurrentLevel", 1, value);
+            return DataModelLogger::LogValue("ProductID", 1, value);
         }
-        case LevelControl::Attributes::GeneratedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case BasicInformation::Attributes::NodeLabel::Id: {
+            chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, LevelControl::Id);
+            return DataModelLogger::LogValue("NodeLabel", 1, value);
         }
-        case LevelControl::Attributes::AcceptedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case BasicInformation::Attributes::Location::Id: {
+            chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, LevelControl::Id);
+            return DataModelLogger::LogValue("Location", 1, value);
         }
-        case LevelControl::Attributes::EventList::Id: {
-            chip::app::DataModel::DecodableList<chip::EventId> value;
+        case BasicInformation::Attributes::HardwareVersion::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EventList", 1, value);
+            return DataModelLogger::LogValue("HardwareVersion", 1, value);
         }
-        case LevelControl::Attributes::AttributeList::Id: {
-            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+        case BasicInformation::Attributes::HardwareVersionString::Id: {
+            chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, LevelControl::Id);
+            return DataModelLogger::LogValue("HardwareVersionString", 1, value);
         }
-        case LevelControl::Attributes::FeatureMap::Id: {
+        case BasicInformation::Attributes::SoftwareVersion::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("FeatureMap", 1, value);
+            return DataModelLogger::LogValue("SoftwareVersion", 1, value);
         }
-        case LevelControl::Attributes::ClusterRevision::Id: {
-            uint16_t value;
+        case BasicInformation::Attributes::SoftwareVersionString::Id: {
+            chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ClusterRevision", 1, value);
+            return DataModelLogger::LogValue("SoftwareVersionString", 1, value);
         }
+        case BasicInformation::Attributes::ManufacturingDate::Id: {
+            chip::CharSpan value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("ManufacturingDate", 1, value);
         }
-        break;
-    }
-    case BinaryInputBasic::Id: {
-        switch (path.mAttributeId)
-        {
-        case BinaryInputBasic::Attributes::ActiveText::Id: {
+        case BasicInformation::Attributes::PartNumber::Id: {
             chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("active text", 1, value);
+            return DataModelLogger::LogValue("PartNumber", 1, value);
         }
-        case BinaryInputBasic::Attributes::Description::Id: {
+        case BasicInformation::Attributes::ProductURL::Id: {
             chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("description", 1, value);
+            return DataModelLogger::LogValue("ProductURL", 1, value);
         }
-        case BinaryInputBasic::Attributes::InactiveText::Id: {
+        case BasicInformation::Attributes::ProductLabel::Id: {
             chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("inactive text", 1, value);
+            return DataModelLogger::LogValue("ProductLabel", 1, value);
         }
-        case BinaryInputBasic::Attributes::OutOfService::Id: {
-            bool value;
+        case BasicInformation::Attributes::SerialNumber::Id: {
+            chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("out of service", 1, value);
+            return DataModelLogger::LogValue("SerialNumber", 1, value);
         }
-        case BinaryInputBasic::Attributes::Polarity::Id: {
-            uint8_t value;
+        case BasicInformation::Attributes::LocalConfigDisabled::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("polarity", 1, value);
+            return DataModelLogger::LogValue("LocalConfigDisabled", 1, value);
         }
-        case BinaryInputBasic::Attributes::PresentValue::Id: {
+        case BasicInformation::Attributes::Reachable::Id: {
             bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("present value", 1, value);
+            return DataModelLogger::LogValue("Reachable", 1, value);
         }
-        case BinaryInputBasic::Attributes::Reliability::Id: {
-            uint8_t value;
+        case BasicInformation::Attributes::UniqueID::Id: {
+            chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("reliability", 1, value);
+            return DataModelLogger::LogValue("UniqueID", 1, value);
         }
-        case BinaryInputBasic::Attributes::StatusFlags::Id: {
-            uint8_t value;
+        case BasicInformation::Attributes::CapabilityMinima::Id: {
+            chip::app::Clusters::BasicInformation::Structs::CapabilityMinimaStruct::DecodableType value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("status flags", 1, value);
+            return DataModelLogger::LogValue("CapabilityMinima", 1, value);
         }
-        case BinaryInputBasic::Attributes::ApplicationType::Id: {
+        case BasicInformation::Attributes::ProductAppearance::Id: {
+            chip::app::Clusters::BasicInformation::Structs::ProductAppearanceStruct::DecodableType value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("ProductAppearance", 1, value);
+        }
+        case BasicInformation::Attributes::SpecificationVersion::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("application type", 1, value);
+            return DataModelLogger::LogValue("SpecificationVersion", 1, value);
         }
-        case BinaryInputBasic::Attributes::GeneratedCommandList::Id: {
+        case BasicInformation::Attributes::MaxPathsPerInvoke::Id: {
+            uint16_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("MaxPathsPerInvoke", 1, value);
+        }
+        case BasicInformation::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, BinaryInputBasic::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, BasicInformation::Id);
         }
-        case BinaryInputBasic::Attributes::AcceptedCommandList::Id: {
+        case BasicInformation::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, BinaryInputBasic::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, BasicInformation::Id);
         }
-        case BinaryInputBasic::Attributes::EventList::Id: {
+        case BasicInformation::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case BinaryInputBasic::Attributes::AttributeList::Id: {
+        case BasicInformation::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, BinaryInputBasic::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, BasicInformation::Id);
         }
-        case BinaryInputBasic::Attributes::FeatureMap::Id: {
+        case BasicInformation::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case BinaryInputBasic::Attributes::ClusterRevision::Id: {
+        case BasicInformation::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -9317,35 +11023,35 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case PulseWidthModulation::Id: {
+    case OtaSoftwareUpdateProvider::Id: {
         switch (path.mAttributeId)
         {
-        case PulseWidthModulation::Attributes::GeneratedCommandList::Id: {
+        case OtaSoftwareUpdateProvider::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, PulseWidthModulation::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, OtaSoftwareUpdateProvider::Id);
         }
-        case PulseWidthModulation::Attributes::AcceptedCommandList::Id: {
+        case OtaSoftwareUpdateProvider::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, PulseWidthModulation::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, OtaSoftwareUpdateProvider::Id);
         }
-        case PulseWidthModulation::Attributes::EventList::Id: {
+        case OtaSoftwareUpdateProvider::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case PulseWidthModulation::Attributes::AttributeList::Id: {
+        case OtaSoftwareUpdateProvider::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, PulseWidthModulation::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, OtaSoftwareUpdateProvider::Id);
         }
-        case PulseWidthModulation::Attributes::FeatureMap::Id: {
+        case OtaSoftwareUpdateProvider::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case PulseWidthModulation::Attributes::ClusterRevision::Id: {
+        case OtaSoftwareUpdateProvider::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -9353,60 +11059,57 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case Descriptor::Id: {
+    case OtaSoftwareUpdateRequestor::Id: {
         switch (path.mAttributeId)
         {
-        case Descriptor::Attributes::DeviceTypeList::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::Descriptor::Structs::DeviceTypeStruct::DecodableType> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("DeviceTypeList", 1, value);
-        }
-        case Descriptor::Attributes::ServerList::Id: {
-            chip::app::DataModel::DecodableList<chip::ClusterId> value;
+        case OtaSoftwareUpdateRequestor::Attributes::DefaultOTAProviders::Id: {
+            chip::app::DataModel::DecodableList<
+                chip::app::Clusters::OtaSoftwareUpdateRequestor::Structs::ProviderLocation::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogClusterId("ServerList", 1, value);
+            return DataModelLogger::LogValue("DefaultOTAProviders", 1, value);
         }
-        case Descriptor::Attributes::ClientList::Id: {
-            chip::app::DataModel::DecodableList<chip::ClusterId> value;
+        case OtaSoftwareUpdateRequestor::Attributes::UpdatePossible::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogClusterId("ClientList", 1, value);
+            return DataModelLogger::LogValue("UpdatePossible", 1, value);
         }
-        case Descriptor::Attributes::PartsList::Id: {
-            chip::app::DataModel::DecodableList<chip::EndpointId> value;
+        case OtaSoftwareUpdateRequestor::Attributes::UpdateState::Id: {
+            chip::app::Clusters::OtaSoftwareUpdateRequestor::UpdateStateEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PartsList", 1, value);
+            return DataModelLogger::LogValue("UpdateState", 1, value);
         }
-        case Descriptor::Attributes::TagList::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::Descriptor::Structs::SemanticTagStruct::DecodableType> value;
+        case OtaSoftwareUpdateRequestor::Attributes::UpdateStateProgress::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TagList", 1, value);
+            return DataModelLogger::LogValue("UpdateStateProgress", 1, value);
         }
-        case Descriptor::Attributes::GeneratedCommandList::Id: {
+        case OtaSoftwareUpdateRequestor::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, Descriptor::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, OtaSoftwareUpdateRequestor::Id);
         }
-        case Descriptor::Attributes::AcceptedCommandList::Id: {
+        case OtaSoftwareUpdateRequestor::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, Descriptor::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, OtaSoftwareUpdateRequestor::Id);
         }
-        case Descriptor::Attributes::EventList::Id: {
+        case OtaSoftwareUpdateRequestor::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case Descriptor::Attributes::AttributeList::Id: {
+        case OtaSoftwareUpdateRequestor::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, Descriptor::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, OtaSoftwareUpdateRequestor::Id);
         }
-        case Descriptor::Attributes::FeatureMap::Id: {
+        case OtaSoftwareUpdateRequestor::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case Descriptor::Attributes::ClusterRevision::Id: {
+        case OtaSoftwareUpdateRequestor::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -9414,40 +11117,45 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case Binding::Id: {
+    case LocalizationConfiguration::Id: {
         switch (path.mAttributeId)
         {
-        case Binding::Attributes::Binding::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::Binding::Structs::TargetStruct::DecodableType> value;
+        case LocalizationConfiguration::Attributes::ActiveLocale::Id: {
+            chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Binding", 1, value);
+            return DataModelLogger::LogValue("ActiveLocale", 1, value);
         }
-        case Binding::Attributes::GeneratedCommandList::Id: {
+        case LocalizationConfiguration::Attributes::SupportedLocales::Id: {
+            chip::app::DataModel::DecodableList<chip::CharSpan> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("SupportedLocales", 1, value);
+        }
+        case LocalizationConfiguration::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, Binding::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, LocalizationConfiguration::Id);
         }
-        case Binding::Attributes::AcceptedCommandList::Id: {
+        case LocalizationConfiguration::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, Binding::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, LocalizationConfiguration::Id);
         }
-        case Binding::Attributes::EventList::Id: {
+        case LocalizationConfiguration::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case Binding::Attributes::AttributeList::Id: {
+        case LocalizationConfiguration::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, Binding::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, LocalizationConfiguration::Id);
         }
-        case Binding::Attributes::FeatureMap::Id: {
+        case LocalizationConfiguration::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case Binding::Attributes::ClusterRevision::Id: {
+        case LocalizationConfiguration::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -9455,78 +11163,91 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case AccessControl::Id: {
+    case TimeFormatLocalization::Id: {
         switch (path.mAttributeId)
         {
-        case AccessControl::Attributes::Acl::Id: {
-            chip::app::DataModel::DecodableList<
-                chip::app::Clusters::AccessControl::Structs::AccessControlEntryStruct::DecodableType>
-                value;
+        case TimeFormatLocalization::Attributes::HourFormat::Id: {
+            chip::app::Clusters::TimeFormatLocalization::HourFormatEnum value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("HourFormat", 1, value);
+        }
+        case TimeFormatLocalization::Attributes::ActiveCalendarType::Id: {
+            chip::app::Clusters::TimeFormatLocalization::CalendarTypeEnum value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("ActiveCalendarType", 1, value);
+        }
+        case TimeFormatLocalization::Attributes::SupportedCalendarTypes::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::TimeFormatLocalization::CalendarTypeEnum> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("SupportedCalendarTypes", 1, value);
+        }
+        case TimeFormatLocalization::Attributes::GeneratedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, TimeFormatLocalization::Id);
+        }
+        case TimeFormatLocalization::Attributes::AcceptedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ACL", 1, value);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, TimeFormatLocalization::Id);
         }
-        case AccessControl::Attributes::Extension::Id: {
-            chip::app::DataModel::DecodableList<
-                chip::app::Clusters::AccessControl::Structs::AccessControlExtensionStruct::DecodableType>
-                value;
+        case TimeFormatLocalization::Attributes::EventList::Id: {
+            chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Extension", 1, value);
+            return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case AccessControl::Attributes::SubjectsPerAccessControlEntry::Id: {
-            uint16_t value;
+        case TimeFormatLocalization::Attributes::AttributeList::Id: {
+            chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SubjectsPerAccessControlEntry", 1, value);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, TimeFormatLocalization::Id);
         }
-        case AccessControl::Attributes::TargetsPerAccessControlEntry::Id: {
-            uint16_t value;
+        case TimeFormatLocalization::Attributes::FeatureMap::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TargetsPerAccessControlEntry", 1, value);
+            return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case AccessControl::Attributes::AccessControlEntriesPerFabric::Id: {
+        case TimeFormatLocalization::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AccessControlEntriesPerFabric", 1, value);
+            return DataModelLogger::LogValue("ClusterRevision", 1, value);
         }
-        case AccessControl::Attributes::CommissioningARL::Id: {
-            chip::app::DataModel::DecodableList<
-                chip::app::Clusters::AccessControl::Structs::CommissioningAccessRestrictionEntryStruct::DecodableType>
-                value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CommissioningARL", 1, value);
         }
-        case AccessControl::Attributes::Arl::Id: {
-            chip::app::DataModel::DecodableList<
-                chip::app::Clusters::AccessControl::Structs::AccessRestrictionEntryStruct::DecodableType>
-                value;
+        break;
+    }
+    case UnitLocalization::Id: {
+        switch (path.mAttributeId)
+        {
+        case UnitLocalization::Attributes::TemperatureUnit::Id: {
+            chip::app::Clusters::UnitLocalization::TempUnitEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ARL", 1, value);
+            return DataModelLogger::LogValue("TemperatureUnit", 1, value);
         }
-        case AccessControl::Attributes::GeneratedCommandList::Id: {
+        case UnitLocalization::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, AccessControl::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, UnitLocalization::Id);
         }
-        case AccessControl::Attributes::AcceptedCommandList::Id: {
+        case UnitLocalization::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, AccessControl::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, UnitLocalization::Id);
         }
-        case AccessControl::Attributes::EventList::Id: {
+        case UnitLocalization::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case AccessControl::Attributes::AttributeList::Id: {
+        case UnitLocalization::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, AccessControl::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, UnitLocalization::Id);
         }
-        case AccessControl::Attributes::FeatureMap::Id: {
+        case UnitLocalization::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case AccessControl::Attributes::ClusterRevision::Id: {
+        case UnitLocalization::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -9534,50 +11255,40 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case Actions::Id: {
+    case PowerSourceConfiguration::Id: {
         switch (path.mAttributeId)
         {
-        case Actions::Attributes::ActionList::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::Actions::Structs::ActionStruct::DecodableType> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ActionList", 1, value);
-        }
-        case Actions::Attributes::EndpointLists::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::Actions::Structs::EndpointListStruct::DecodableType> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EndpointLists", 1, value);
-        }
-        case Actions::Attributes::SetupURL::Id: {
-            chip::CharSpan value;
+        case PowerSourceConfiguration::Attributes::Sources::Id: {
+            chip::app::DataModel::DecodableList<chip::EndpointId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SetupURL", 1, value);
+            return DataModelLogger::LogValue("Sources", 1, value);
         }
-        case Actions::Attributes::GeneratedCommandList::Id: {
+        case PowerSourceConfiguration::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, Actions::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, PowerSourceConfiguration::Id);
         }
-        case Actions::Attributes::AcceptedCommandList::Id: {
+        case PowerSourceConfiguration::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, Actions::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, PowerSourceConfiguration::Id);
         }
-        case Actions::Attributes::EventList::Id: {
+        case PowerSourceConfiguration::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case Actions::Attributes::AttributeList::Id: {
+        case PowerSourceConfiguration::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, Actions::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, PowerSourceConfiguration::Id);
         }
-        case Actions::Attributes::FeatureMap::Id: {
+        case PowerSourceConfiguration::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case Actions::Attributes::ClusterRevision::Id: {
+        case PowerSourceConfiguration::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -9585,186 +11296,195 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case BasicInformation::Id: {
+    case PowerSource::Id: {
         switch (path.mAttributeId)
         {
-        case BasicInformation::Attributes::DataModelRevision::Id: {
-            uint16_t value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("DataModelRevision", 1, value);
-        }
-        case BasicInformation::Attributes::VendorName::Id: {
-            chip::CharSpan value;
+        case PowerSource::Attributes::Status::Id: {
+            chip::app::Clusters::PowerSource::PowerSourceStatusEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("VendorName", 1, value);
+            return DataModelLogger::LogValue("Status", 1, value);
         }
-        case BasicInformation::Attributes::VendorID::Id: {
-            chip::VendorId value;
+        case PowerSource::Attributes::Order::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("VendorID", 1, value);
+            return DataModelLogger::LogValue("Order", 1, value);
         }
-        case BasicInformation::Attributes::ProductName::Id: {
+        case PowerSource::Attributes::Description::Id: {
             chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ProductName", 1, value);
+            return DataModelLogger::LogValue("Description", 1, value);
         }
-        case BasicInformation::Attributes::ProductID::Id: {
-            uint16_t value;
+        case PowerSource::Attributes::WiredAssessedInputVoltage::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ProductID", 1, value);
+            return DataModelLogger::LogValue("WiredAssessedInputVoltage", 1, value);
         }
-        case BasicInformation::Attributes::NodeLabel::Id: {
-            chip::CharSpan value;
+        case PowerSource::Attributes::WiredAssessedInputFrequency::Id: {
+            chip::app::DataModel::Nullable<uint16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NodeLabel", 1, value);
+            return DataModelLogger::LogValue("WiredAssessedInputFrequency", 1, value);
         }
-        case BasicInformation::Attributes::Location::Id: {
-            chip::CharSpan value;
+        case PowerSource::Attributes::WiredCurrentType::Id: {
+            chip::app::Clusters::PowerSource::WiredCurrentTypeEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Location", 1, value);
+            return DataModelLogger::LogValue("WiredCurrentType", 1, value);
         }
-        case BasicInformation::Attributes::HardwareVersion::Id: {
-            uint16_t value;
+        case PowerSource::Attributes::WiredAssessedCurrent::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("HardwareVersion", 1, value);
+            return DataModelLogger::LogValue("WiredAssessedCurrent", 1, value);
         }
-        case BasicInformation::Attributes::HardwareVersionString::Id: {
-            chip::CharSpan value;
+        case PowerSource::Attributes::WiredNominalVoltage::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("HardwareVersionString", 1, value);
+            return DataModelLogger::LogValue("WiredNominalVoltage", 1, value);
         }
-        case BasicInformation::Attributes::SoftwareVersion::Id: {
+        case PowerSource::Attributes::WiredMaximumCurrent::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SoftwareVersion", 1, value);
+            return DataModelLogger::LogValue("WiredMaximumCurrent", 1, value);
         }
-        case BasicInformation::Attributes::SoftwareVersionString::Id: {
-            chip::CharSpan value;
+        case PowerSource::Attributes::WiredPresent::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SoftwareVersionString", 1, value);
+            return DataModelLogger::LogValue("WiredPresent", 1, value);
         }
-        case BasicInformation::Attributes::ManufacturingDate::Id: {
-            chip::CharSpan value;
+        case PowerSource::Attributes::ActiveWiredFaults::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::WiredFaultEnum> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ManufacturingDate", 1, value);
+            return DataModelLogger::LogValue("ActiveWiredFaults", 1, value);
         }
-        case BasicInformation::Attributes::PartNumber::Id: {
-            chip::CharSpan value;
+        case PowerSource::Attributes::BatVoltage::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PartNumber", 1, value);
+            return DataModelLogger::LogValue("BatVoltage", 1, value);
         }
-        case BasicInformation::Attributes::ProductURL::Id: {
-            chip::CharSpan value;
+        case PowerSource::Attributes::BatPercentRemaining::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ProductURL", 1, value);
+            return DataModelLogger::LogValue("BatPercentRemaining", 1, value);
         }
-        case BasicInformation::Attributes::ProductLabel::Id: {
-            chip::CharSpan value;
+        case PowerSource::Attributes::BatTimeRemaining::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ProductLabel", 1, value);
+            return DataModelLogger::LogValue("BatTimeRemaining", 1, value);
         }
-        case BasicInformation::Attributes::SerialNumber::Id: {
-            chip::CharSpan value;
+        case PowerSource::Attributes::BatChargeLevel::Id: {
+            chip::app::Clusters::PowerSource::BatChargeLevelEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SerialNumber", 1, value);
+            return DataModelLogger::LogValue("BatChargeLevel", 1, value);
         }
-        case BasicInformation::Attributes::LocalConfigDisabled::Id: {
+        case PowerSource::Attributes::BatReplacementNeeded::Id: {
             bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LocalConfigDisabled", 1, value);
+            return DataModelLogger::LogValue("BatReplacementNeeded", 1, value);
         }
-        case BasicInformation::Attributes::Reachable::Id: {
+        case PowerSource::Attributes::BatReplaceability::Id: {
+            chip::app::Clusters::PowerSource::BatReplaceabilityEnum value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("BatReplaceability", 1, value);
+        }
+        case PowerSource::Attributes::BatPresent::Id: {
             bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Reachable", 1, value);
+            return DataModelLogger::LogValue("BatPresent", 1, value);
         }
-        case BasicInformation::Attributes::UniqueID::Id: {
+        case PowerSource::Attributes::ActiveBatFaults::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::BatFaultEnum> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("ActiveBatFaults", 1, value);
+        }
+        case PowerSource::Attributes::BatReplacementDescription::Id: {
             chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("UniqueID", 1, value);
+            return DataModelLogger::LogValue("BatReplacementDescription", 1, value);
         }
-        case BasicInformation::Attributes::CapabilityMinima::Id: {
-            chip::app::Clusters::BasicInformation::Structs::CapabilityMinimaStruct::DecodableType value;
+        case PowerSource::Attributes::BatCommonDesignation::Id: {
+            chip::app::Clusters::PowerSource::BatCommonDesignationEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CapabilityMinima", 1, value);
+            return DataModelLogger::LogValue("BatCommonDesignation", 1, value);
         }
-        case BasicInformation::Attributes::ProductAppearance::Id: {
-            chip::app::Clusters::BasicInformation::Structs::ProductAppearanceStruct::DecodableType value;
+        case PowerSource::Attributes::BatANSIDesignation::Id: {
+            chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ProductAppearance", 1, value);
+            return DataModelLogger::LogValue("BatANSIDesignation", 1, value);
         }
-        case BasicInformation::Attributes::SpecificationVersion::Id: {
-            uint32_t value;
+        case PowerSource::Attributes::BatIECDesignation::Id: {
+            chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SpecificationVersion", 1, value);
+            return DataModelLogger::LogValue("BatIECDesignation", 1, value);
         }
-        case BasicInformation::Attributes::MaxPathsPerInvoke::Id: {
-            uint16_t value;
+        case PowerSource::Attributes::BatApprovedChemistry::Id: {
+            chip::app::Clusters::PowerSource::BatApprovedChemistryEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MaxPathsPerInvoke", 1, value);
+            return DataModelLogger::LogValue("BatApprovedChemistry", 1, value);
         }
-        case BasicInformation::Attributes::GeneratedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case PowerSource::Attributes::BatCapacity::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, BasicInformation::Id);
+            return DataModelLogger::LogValue("BatCapacity", 1, value);
         }
-        case BasicInformation::Attributes::AcceptedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case PowerSource::Attributes::BatQuantity::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, BasicInformation::Id);
+            return DataModelLogger::LogValue("BatQuantity", 1, value);
+        }
+        case PowerSource::Attributes::BatChargeState::Id: {
+            chip::app::Clusters::PowerSource::BatChargeStateEnum value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("BatChargeState", 1, value);
         }
-        case BasicInformation::Attributes::EventList::Id: {
-            chip::app::DataModel::DecodableList<chip::EventId> value;
+        case PowerSource::Attributes::BatTimeToFullCharge::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EventList", 1, value);
+            return DataModelLogger::LogValue("BatTimeToFullCharge", 1, value);
         }
-        case BasicInformation::Attributes::AttributeList::Id: {
-            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+        case PowerSource::Attributes::BatFunctionalWhileCharging::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, BasicInformation::Id);
+            return DataModelLogger::LogValue("BatFunctionalWhileCharging", 1, value);
         }
-        case BasicInformation::Attributes::FeatureMap::Id: {
-            uint32_t value;
+        case PowerSource::Attributes::BatChargingCurrent::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("FeatureMap", 1, value);
+            return DataModelLogger::LogValue("BatChargingCurrent", 1, value);
         }
-        case BasicInformation::Attributes::ClusterRevision::Id: {
-            uint16_t value;
+        case PowerSource::Attributes::ActiveBatChargeFaults::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::BatChargeFaultEnum> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ClusterRevision", 1, value);
+            return DataModelLogger::LogValue("ActiveBatChargeFaults", 1, value);
         }
+        case PowerSource::Attributes::EndpointList::Id: {
+            chip::app::DataModel::DecodableList<chip::EndpointId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("EndpointList", 1, value);
         }
-        break;
-    }
-    case OtaSoftwareUpdateProvider::Id: {
-        switch (path.mAttributeId)
-        {
-        case OtaSoftwareUpdateProvider::Attributes::GeneratedCommandList::Id: {
+        case PowerSource::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, OtaSoftwareUpdateProvider::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, PowerSource::Id);
         }
-        case OtaSoftwareUpdateProvider::Attributes::AcceptedCommandList::Id: {
+        case PowerSource::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, OtaSoftwareUpdateProvider::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, PowerSource::Id);
         }
-        case OtaSoftwareUpdateProvider::Attributes::EventList::Id: {
+        case PowerSource::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case OtaSoftwareUpdateProvider::Attributes::AttributeList::Id: {
+        case PowerSource::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, OtaSoftwareUpdateProvider::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, PowerSource::Id);
         }
-        case OtaSoftwareUpdateProvider::Attributes::FeatureMap::Id: {
+        case PowerSource::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case OtaSoftwareUpdateProvider::Attributes::ClusterRevision::Id: {
+        case PowerSource::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -9772,103 +11492,80 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case OtaSoftwareUpdateRequestor::Id: {
+    case GeneralCommissioning::Id: {
         switch (path.mAttributeId)
         {
-        case OtaSoftwareUpdateRequestor::Attributes::DefaultOTAProviders::Id: {
-            chip::app::DataModel::DecodableList<
-                chip::app::Clusters::OtaSoftwareUpdateRequestor::Structs::ProviderLocation::DecodableType>
-                value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("DefaultOTAProviders", 1, value);
-        }
-        case OtaSoftwareUpdateRequestor::Attributes::UpdatePossible::Id: {
-            bool value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("UpdatePossible", 1, value);
-        }
-        case OtaSoftwareUpdateRequestor::Attributes::UpdateState::Id: {
-            chip::app::Clusters::OtaSoftwareUpdateRequestor::UpdateStateEnum value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("UpdateState", 1, value);
-        }
-        case OtaSoftwareUpdateRequestor::Attributes::UpdateStateProgress::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case GeneralCommissioning::Attributes::Breadcrumb::Id: {
+            uint64_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("UpdateStateProgress", 1, value);
+            return DataModelLogger::LogValue("Breadcrumb", 1, value);
         }
-        case OtaSoftwareUpdateRequestor::Attributes::GeneratedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case GeneralCommissioning::Attributes::BasicCommissioningInfo::Id: {
+            chip::app::Clusters::GeneralCommissioning::Structs::BasicCommissioningInfo::DecodableType value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, OtaSoftwareUpdateRequestor::Id);
+            return DataModelLogger::LogValue("BasicCommissioningInfo", 1, value);
         }
-        case OtaSoftwareUpdateRequestor::Attributes::AcceptedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case GeneralCommissioning::Attributes::RegulatoryConfig::Id: {
+            chip::app::Clusters::GeneralCommissioning::RegulatoryLocationTypeEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, OtaSoftwareUpdateRequestor::Id);
+            return DataModelLogger::LogValue("RegulatoryConfig", 1, value);
         }
-        case OtaSoftwareUpdateRequestor::Attributes::EventList::Id: {
-            chip::app::DataModel::DecodableList<chip::EventId> value;
+        case GeneralCommissioning::Attributes::LocationCapability::Id: {
+            chip::app::Clusters::GeneralCommissioning::RegulatoryLocationTypeEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EventList", 1, value);
+            return DataModelLogger::LogValue("LocationCapability", 1, value);
         }
-        case OtaSoftwareUpdateRequestor::Attributes::AttributeList::Id: {
-            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+        case GeneralCommissioning::Attributes::SupportsConcurrentConnection::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, OtaSoftwareUpdateRequestor::Id);
+            return DataModelLogger::LogValue("SupportsConcurrentConnection", 1, value);
         }
-        case OtaSoftwareUpdateRequestor::Attributes::FeatureMap::Id: {
-            uint32_t value;
+        case GeneralCommissioning::Attributes::TCAcceptedVersion::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("FeatureMap", 1, value);
+            return DataModelLogger::LogValue("TCAcceptedVersion", 1, value);
         }
-        case OtaSoftwareUpdateRequestor::Attributes::ClusterRevision::Id: {
+        case GeneralCommissioning::Attributes::TCMinRequiredVersion::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ClusterRevision", 1, value);
-        }
+            return DataModelLogger::LogValue("TCMinRequiredVersion", 1, value);
         }
-        break;
-    }
-    case LocalizationConfiguration::Id: {
-        switch (path.mAttributeId)
-        {
-        case LocalizationConfiguration::Attributes::ActiveLocale::Id: {
-            chip::CharSpan value;
+        case GeneralCommissioning::Attributes::TCAcknowledgements::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ActiveLocale", 1, value);
+            return DataModelLogger::LogValue("TCAcknowledgements", 1, value);
         }
-        case LocalizationConfiguration::Attributes::SupportedLocales::Id: {
-            chip::app::DataModel::DecodableList<chip::CharSpan> value;
+        case GeneralCommissioning::Attributes::TCAcknowledgementsRequired::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SupportedLocales", 1, value);
+            return DataModelLogger::LogValue("TCAcknowledgementsRequired", 1, value);
         }
-        case LocalizationConfiguration::Attributes::GeneratedCommandList::Id: {
+        case GeneralCommissioning::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, LocalizationConfiguration::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, GeneralCommissioning::Id);
         }
-        case LocalizationConfiguration::Attributes::AcceptedCommandList::Id: {
+        case GeneralCommissioning::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, LocalizationConfiguration::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, GeneralCommissioning::Id);
         }
-        case LocalizationConfiguration::Attributes::EventList::Id: {
+        case GeneralCommissioning::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case LocalizationConfiguration::Attributes::AttributeList::Id: {
+        case GeneralCommissioning::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, LocalizationConfiguration::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, GeneralCommissioning::Id);
         }
-        case LocalizationConfiguration::Attributes::FeatureMap::Id: {
+        case GeneralCommissioning::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case LocalizationConfiguration::Attributes::ClusterRevision::Id: {
+        case GeneralCommissioning::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -9876,91 +11573,92 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case TimeFormatLocalization::Id: {
+    case NetworkCommissioning::Id: {
         switch (path.mAttributeId)
         {
-        case TimeFormatLocalization::Attributes::HourFormat::Id: {
-            chip::app::Clusters::TimeFormatLocalization::HourFormatEnum value;
+        case NetworkCommissioning::Attributes::MaxNetworks::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("HourFormat", 1, value);
+            return DataModelLogger::LogValue("MaxNetworks", 1, value);
         }
-        case TimeFormatLocalization::Attributes::ActiveCalendarType::Id: {
-            chip::app::Clusters::TimeFormatLocalization::CalendarTypeEnum value;
+        case NetworkCommissioning::Attributes::Networks::Id: {
+            chip::app::DataModel::DecodableList<
+                chip::app::Clusters::NetworkCommissioning::Structs::NetworkInfoStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ActiveCalendarType", 1, value);
+            return DataModelLogger::LogValue("Networks", 1, value);
         }
-        case TimeFormatLocalization::Attributes::SupportedCalendarTypes::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::TimeFormatLocalization::CalendarTypeEnum> value;
+        case NetworkCommissioning::Attributes::ScanMaxTimeSeconds::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SupportedCalendarTypes", 1, value);
+            return DataModelLogger::LogValue("ScanMaxTimeSeconds", 1, value);
         }
-        case TimeFormatLocalization::Attributes::GeneratedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case NetworkCommissioning::Attributes::ConnectMaxTimeSeconds::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, TimeFormatLocalization::Id);
+            return DataModelLogger::LogValue("ConnectMaxTimeSeconds", 1, value);
         }
-        case TimeFormatLocalization::Attributes::AcceptedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case NetworkCommissioning::Attributes::InterfaceEnabled::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, TimeFormatLocalization::Id);
+            return DataModelLogger::LogValue("InterfaceEnabled", 1, value);
         }
-        case TimeFormatLocalization::Attributes::EventList::Id: {
-            chip::app::DataModel::DecodableList<chip::EventId> value;
+        case NetworkCommissioning::Attributes::LastNetworkingStatus::Id: {
+            chip::app::DataModel::Nullable<chip::app::Clusters::NetworkCommissioning::NetworkCommissioningStatusEnum> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EventList", 1, value);
+            return DataModelLogger::LogValue("LastNetworkingStatus", 1, value);
         }
-        case TimeFormatLocalization::Attributes::AttributeList::Id: {
-            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+        case NetworkCommissioning::Attributes::LastNetworkID::Id: {
+            chip::app::DataModel::Nullable<chip::ByteSpan> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, TimeFormatLocalization::Id);
+            return DataModelLogger::LogValue("LastNetworkID", 1, value);
         }
-        case TimeFormatLocalization::Attributes::FeatureMap::Id: {
-            uint32_t value;
+        case NetworkCommissioning::Attributes::LastConnectErrorValue::Id: {
+            chip::app::DataModel::Nullable<int32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("FeatureMap", 1, value);
+            return DataModelLogger::LogValue("LastConnectErrorValue", 1, value);
         }
-        case TimeFormatLocalization::Attributes::ClusterRevision::Id: {
-            uint16_t value;
+        case NetworkCommissioning::Attributes::SupportedWiFiBands::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::NetworkCommissioning::WiFiBandEnum> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ClusterRevision", 1, value);
+            return DataModelLogger::LogValue("SupportedWiFiBands", 1, value);
         }
+        case NetworkCommissioning::Attributes::SupportedThreadFeatures::Id: {
+            chip::BitMask<chip::app::Clusters::NetworkCommissioning::ThreadCapabilitiesBitmap> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("SupportedThreadFeatures", 1, value);
         }
-        break;
-    }
-    case UnitLocalization::Id: {
-        switch (path.mAttributeId)
-        {
-        case UnitLocalization::Attributes::TemperatureUnit::Id: {
-            chip::app::Clusters::UnitLocalization::TempUnitEnum value;
+        case NetworkCommissioning::Attributes::ThreadVersion::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TemperatureUnit", 1, value);
+            return DataModelLogger::LogValue("ThreadVersion", 1, value);
         }
-        case UnitLocalization::Attributes::GeneratedCommandList::Id: {
+        case NetworkCommissioning::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, UnitLocalization::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, NetworkCommissioning::Id);
         }
-        case UnitLocalization::Attributes::AcceptedCommandList::Id: {
+        case NetworkCommissioning::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, UnitLocalization::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, NetworkCommissioning::Id);
         }
-        case UnitLocalization::Attributes::EventList::Id: {
+        case NetworkCommissioning::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case UnitLocalization::Attributes::AttributeList::Id: {
+        case NetworkCommissioning::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, UnitLocalization::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, NetworkCommissioning::Id);
         }
-        case UnitLocalization::Attributes::FeatureMap::Id: {
+        case NetworkCommissioning::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case UnitLocalization::Attributes::ClusterRevision::Id: {
+        case NetworkCommissioning::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -9968,40 +11666,35 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case PowerSourceConfiguration::Id: {
+    case DiagnosticLogs::Id: {
         switch (path.mAttributeId)
         {
-        case PowerSourceConfiguration::Attributes::Sources::Id: {
-            chip::app::DataModel::DecodableList<chip::EndpointId> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Sources", 1, value);
-        }
-        case PowerSourceConfiguration::Attributes::GeneratedCommandList::Id: {
+        case DiagnosticLogs::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, PowerSourceConfiguration::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, DiagnosticLogs::Id);
         }
-        case PowerSourceConfiguration::Attributes::AcceptedCommandList::Id: {
+        case DiagnosticLogs::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, PowerSourceConfiguration::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, DiagnosticLogs::Id);
         }
-        case PowerSourceConfiguration::Attributes::EventList::Id: {
+        case DiagnosticLogs::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case PowerSourceConfiguration::Attributes::AttributeList::Id: {
+        case DiagnosticLogs::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, PowerSourceConfiguration::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, DiagnosticLogs::Id);
         }
-        case PowerSourceConfiguration::Attributes::FeatureMap::Id: {
+        case DiagnosticLogs::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case PowerSourceConfiguration::Attributes::ClusterRevision::Id: {
+        case DiagnosticLogs::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -10009,487 +11702,497 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case PowerSource::Id: {
+    case GeneralDiagnostics::Id: {
         switch (path.mAttributeId)
         {
-        case PowerSource::Attributes::Status::Id: {
-            chip::app::Clusters::PowerSource::PowerSourceStatusEnum value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Status", 1, value);
-        }
-        case PowerSource::Attributes::Order::Id: {
-            uint8_t value;
+        case GeneralDiagnostics::Attributes::NetworkInterfaces::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::GeneralDiagnostics::Structs::NetworkInterface::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Order", 1, value);
+            return DataModelLogger::LogValue("NetworkInterfaces", 1, value);
         }
-        case PowerSource::Attributes::Description::Id: {
-            chip::CharSpan value;
+        case GeneralDiagnostics::Attributes::RebootCount::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Description", 1, value);
+            return DataModelLogger::LogValue("RebootCount", 1, value);
         }
-        case PowerSource::Attributes::WiredAssessedInputVoltage::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
+        case GeneralDiagnostics::Attributes::UpTime::Id: {
+            uint64_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("WiredAssessedInputVoltage", 1, value);
+            return DataModelLogger::LogValue("UpTime", 1, value);
         }
-        case PowerSource::Attributes::WiredAssessedInputFrequency::Id: {
-            chip::app::DataModel::Nullable<uint16_t> value;
+        case GeneralDiagnostics::Attributes::TotalOperationalHours::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("WiredAssessedInputFrequency", 1, value);
+            return DataModelLogger::LogValue("TotalOperationalHours", 1, value);
         }
-        case PowerSource::Attributes::WiredCurrentType::Id: {
-            chip::app::Clusters::PowerSource::WiredCurrentTypeEnum value;
+        case GeneralDiagnostics::Attributes::BootReason::Id: {
+            chip::app::Clusters::GeneralDiagnostics::BootReasonEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("WiredCurrentType", 1, value);
+            return DataModelLogger::LogValue("BootReason", 1, value);
         }
-        case PowerSource::Attributes::WiredAssessedCurrent::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
+        case GeneralDiagnostics::Attributes::ActiveHardwareFaults::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::GeneralDiagnostics::HardwareFaultEnum> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("WiredAssessedCurrent", 1, value);
+            return DataModelLogger::LogValue("ActiveHardwareFaults", 1, value);
         }
-        case PowerSource::Attributes::WiredNominalVoltage::Id: {
-            uint32_t value;
+        case GeneralDiagnostics::Attributes::ActiveRadioFaults::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::GeneralDiagnostics::RadioFaultEnum> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("WiredNominalVoltage", 1, value);
+            return DataModelLogger::LogValue("ActiveRadioFaults", 1, value);
         }
-        case PowerSource::Attributes::WiredMaximumCurrent::Id: {
-            uint32_t value;
+        case GeneralDiagnostics::Attributes::ActiveNetworkFaults::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::GeneralDiagnostics::NetworkFaultEnum> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("WiredMaximumCurrent", 1, value);
+            return DataModelLogger::LogValue("ActiveNetworkFaults", 1, value);
         }
-        case PowerSource::Attributes::WiredPresent::Id: {
+        case GeneralDiagnostics::Attributes::TestEventTriggersEnabled::Id: {
             bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("WiredPresent", 1, value);
+            return DataModelLogger::LogValue("TestEventTriggersEnabled", 1, value);
         }
-        case PowerSource::Attributes::ActiveWiredFaults::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::WiredFaultEnum> value;
+        case GeneralDiagnostics::Attributes::GeneratedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ActiveWiredFaults", 1, value);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, GeneralDiagnostics::Id);
         }
-        case PowerSource::Attributes::BatVoltage::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
+        case GeneralDiagnostics::Attributes::AcceptedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatVoltage", 1, value);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, GeneralDiagnostics::Id);
         }
-        case PowerSource::Attributes::BatPercentRemaining::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case GeneralDiagnostics::Attributes::EventList::Id: {
+            chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatPercentRemaining", 1, value);
+            return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case PowerSource::Attributes::BatTimeRemaining::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
+        case GeneralDiagnostics::Attributes::AttributeList::Id: {
+            chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatTimeRemaining", 1, value);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, GeneralDiagnostics::Id);
         }
-        case PowerSource::Attributes::BatChargeLevel::Id: {
-            chip::app::Clusters::PowerSource::BatChargeLevelEnum value;
+        case GeneralDiagnostics::Attributes::FeatureMap::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatChargeLevel", 1, value);
+            return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case PowerSource::Attributes::BatReplacementNeeded::Id: {
-            bool value;
+        case GeneralDiagnostics::Attributes::ClusterRevision::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatReplacementNeeded", 1, value);
+            return DataModelLogger::LogValue("ClusterRevision", 1, value);
         }
-        case PowerSource::Attributes::BatReplaceability::Id: {
-            chip::app::Clusters::PowerSource::BatReplaceabilityEnum value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatReplaceability", 1, value);
         }
-        case PowerSource::Attributes::BatPresent::Id: {
-            bool value;
+        break;
+    }
+    case SoftwareDiagnostics::Id: {
+        switch (path.mAttributeId)
+        {
+        case SoftwareDiagnostics::Attributes::ThreadMetrics::Id: {
+            chip::app::DataModel::DecodableList<
+                chip::app::Clusters::SoftwareDiagnostics::Structs::ThreadMetricsStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatPresent", 1, value);
+            return DataModelLogger::LogValue("ThreadMetrics", 1, value);
         }
-        case PowerSource::Attributes::ActiveBatFaults::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::BatFaultEnum> value;
+        case SoftwareDiagnostics::Attributes::CurrentHeapFree::Id: {
+            uint64_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ActiveBatFaults", 1, value);
+            return DataModelLogger::LogValue("CurrentHeapFree", 1, value);
         }
-        case PowerSource::Attributes::BatReplacementDescription::Id: {
-            chip::CharSpan value;
+        case SoftwareDiagnostics::Attributes::CurrentHeapUsed::Id: {
+            uint64_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatReplacementDescription", 1, value);
+            return DataModelLogger::LogValue("CurrentHeapUsed", 1, value);
         }
-        case PowerSource::Attributes::BatCommonDesignation::Id: {
-            chip::app::Clusters::PowerSource::BatCommonDesignationEnum value;
+        case SoftwareDiagnostics::Attributes::CurrentHeapHighWatermark::Id: {
+            uint64_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatCommonDesignation", 1, value);
+            return DataModelLogger::LogValue("CurrentHeapHighWatermark", 1, value);
         }
-        case PowerSource::Attributes::BatANSIDesignation::Id: {
-            chip::CharSpan value;
+        case SoftwareDiagnostics::Attributes::GeneratedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatANSIDesignation", 1, value);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, SoftwareDiagnostics::Id);
         }
-        case PowerSource::Attributes::BatIECDesignation::Id: {
-            chip::CharSpan value;
+        case SoftwareDiagnostics::Attributes::AcceptedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatIECDesignation", 1, value);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, SoftwareDiagnostics::Id);
         }
-        case PowerSource::Attributes::BatApprovedChemistry::Id: {
-            chip::app::Clusters::PowerSource::BatApprovedChemistryEnum value;
+        case SoftwareDiagnostics::Attributes::EventList::Id: {
+            chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatApprovedChemistry", 1, value);
+            return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case PowerSource::Attributes::BatCapacity::Id: {
-            uint32_t value;
+        case SoftwareDiagnostics::Attributes::AttributeList::Id: {
+            chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatCapacity", 1, value);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, SoftwareDiagnostics::Id);
         }
-        case PowerSource::Attributes::BatQuantity::Id: {
-            uint8_t value;
+        case SoftwareDiagnostics::Attributes::FeatureMap::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatQuantity", 1, value);
+            return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case PowerSource::Attributes::BatChargeState::Id: {
-            chip::app::Clusters::PowerSource::BatChargeStateEnum value;
+        case SoftwareDiagnostics::Attributes::ClusterRevision::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatChargeState", 1, value);
+            return DataModelLogger::LogValue("ClusterRevision", 1, value);
         }
-        case PowerSource::Attributes::BatTimeToFullCharge::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatTimeToFullCharge", 1, value);
         }
-        case PowerSource::Attributes::BatFunctionalWhileCharging::Id: {
-            bool value;
+        break;
+    }
+    case ThreadNetworkDiagnostics::Id: {
+        switch (path.mAttributeId)
+        {
+        case ThreadNetworkDiagnostics::Attributes::Channel::Id: {
+            chip::app::DataModel::Nullable<uint16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatFunctionalWhileCharging", 1, value);
+            return DataModelLogger::LogValue("Channel", 1, value);
         }
-        case PowerSource::Attributes::BatChargingCurrent::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
+        case ThreadNetworkDiagnostics::Attributes::RoutingRole::Id: {
+            chip::app::DataModel::Nullable<chip::app::Clusters::ThreadNetworkDiagnostics::RoutingRoleEnum> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatChargingCurrent", 1, value);
+            return DataModelLogger::LogValue("RoutingRole", 1, value);
         }
-        case PowerSource::Attributes::ActiveBatChargeFaults::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::PowerSource::BatChargeFaultEnum> value;
+        case ThreadNetworkDiagnostics::Attributes::NetworkName::Id: {
+            chip::app::DataModel::Nullable<chip::CharSpan> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ActiveBatChargeFaults", 1, value);
+            return DataModelLogger::LogValue("NetworkName", 1, value);
         }
-        case PowerSource::Attributes::EndpointList::Id: {
-            chip::app::DataModel::DecodableList<chip::EndpointId> value;
+        case ThreadNetworkDiagnostics::Attributes::PanId::Id: {
+            chip::app::DataModel::Nullable<uint16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EndpointList", 1, value);
+            return DataModelLogger::LogValue("PanId", 1, value);
         }
-        case PowerSource::Attributes::GeneratedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case ThreadNetworkDiagnostics::Attributes::ExtendedPanId::Id: {
+            chip::app::DataModel::Nullable<uint64_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, PowerSource::Id);
+            return DataModelLogger::LogValue("ExtendedPanId", 1, value);
         }
-        case PowerSource::Attributes::AcceptedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case ThreadNetworkDiagnostics::Attributes::MeshLocalPrefix::Id: {
+            chip::app::DataModel::Nullable<chip::ByteSpan> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, PowerSource::Id);
+            return DataModelLogger::LogValue("MeshLocalPrefix", 1, value);
         }
-        case PowerSource::Attributes::EventList::Id: {
-            chip::app::DataModel::DecodableList<chip::EventId> value;
+        case ThreadNetworkDiagnostics::Attributes::OverrunCount::Id: {
+            uint64_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EventList", 1, value);
+            return DataModelLogger::LogValue("OverrunCount", 1, value);
         }
-        case PowerSource::Attributes::AttributeList::Id: {
-            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+        case ThreadNetworkDiagnostics::Attributes::NeighborTable::Id: {
+            chip::app::DataModel::DecodableList<
+                chip::app::Clusters::ThreadNetworkDiagnostics::Structs::NeighborTableStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, PowerSource::Id);
+            return DataModelLogger::LogValue("NeighborTable", 1, value);
         }
-        case PowerSource::Attributes::FeatureMap::Id: {
-            uint32_t value;
+        case ThreadNetworkDiagnostics::Attributes::RouteTable::Id: {
+            chip::app::DataModel::DecodableList<
+                chip::app::Clusters::ThreadNetworkDiagnostics::Structs::RouteTableStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("FeatureMap", 1, value);
+            return DataModelLogger::LogValue("RouteTable", 1, value);
         }
-        case PowerSource::Attributes::ClusterRevision::Id: {
-            uint16_t value;
+        case ThreadNetworkDiagnostics::Attributes::PartitionId::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ClusterRevision", 1, value);
-        }
-        }
-        break;
-    }
-    case GeneralCommissioning::Id: {
-        switch (path.mAttributeId)
-        {
-        case GeneralCommissioning::Attributes::Breadcrumb::Id: {
-            uint64_t value;
+            return DataModelLogger::LogValue("PartitionId", 1, value);
+        }
+        case ThreadNetworkDiagnostics::Attributes::Weighting::Id: {
+            chip::app::DataModel::Nullable<uint16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Breadcrumb", 1, value);
+            return DataModelLogger::LogValue("Weighting", 1, value);
         }
-        case GeneralCommissioning::Attributes::BasicCommissioningInfo::Id: {
-            chip::app::Clusters::GeneralCommissioning::Structs::BasicCommissioningInfo::DecodableType value;
+        case ThreadNetworkDiagnostics::Attributes::DataVersion::Id: {
+            chip::app::DataModel::Nullable<uint16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BasicCommissioningInfo", 1, value);
+            return DataModelLogger::LogValue("DataVersion", 1, value);
         }
-        case GeneralCommissioning::Attributes::RegulatoryConfig::Id: {
-            chip::app::Clusters::GeneralCommissioning::RegulatoryLocationTypeEnum value;
+        case ThreadNetworkDiagnostics::Attributes::StableDataVersion::Id: {
+            chip::app::DataModel::Nullable<uint16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("RegulatoryConfig", 1, value);
+            return DataModelLogger::LogValue("StableDataVersion", 1, value);
         }
-        case GeneralCommissioning::Attributes::LocationCapability::Id: {
-            chip::app::Clusters::GeneralCommissioning::RegulatoryLocationTypeEnum value;
+        case ThreadNetworkDiagnostics::Attributes::LeaderRouterId::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LocationCapability", 1, value);
+            return DataModelLogger::LogValue("LeaderRouterId", 1, value);
         }
-        case GeneralCommissioning::Attributes::SupportsConcurrentConnection::Id: {
-            bool value;
+        case ThreadNetworkDiagnostics::Attributes::DetachedRoleCount::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SupportsConcurrentConnection", 1, value);
+            return DataModelLogger::LogValue("DetachedRoleCount", 1, value);
         }
-        case GeneralCommissioning::Attributes::TCAcceptedVersion::Id: {
+        case ThreadNetworkDiagnostics::Attributes::ChildRoleCount::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TCAcceptedVersion", 1, value);
+            return DataModelLogger::LogValue("ChildRoleCount", 1, value);
         }
-        case GeneralCommissioning::Attributes::TCMinRequiredVersion::Id: {
+        case ThreadNetworkDiagnostics::Attributes::RouterRoleCount::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TCMinRequiredVersion", 1, value);
+            return DataModelLogger::LogValue("RouterRoleCount", 1, value);
         }
-        case GeneralCommissioning::Attributes::TCAcknowledgements::Id: {
+        case ThreadNetworkDiagnostics::Attributes::LeaderRoleCount::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TCAcknowledgements", 1, value);
+            return DataModelLogger::LogValue("LeaderRoleCount", 1, value);
         }
-        case GeneralCommissioning::Attributes::TCAcknowledgementsRequired::Id: {
-            bool value;
+        case ThreadNetworkDiagnostics::Attributes::AttachAttemptCount::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TCAcknowledgementsRequired", 1, value);
+            return DataModelLogger::LogValue("AttachAttemptCount", 1, value);
         }
-        case GeneralCommissioning::Attributes::GeneratedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case ThreadNetworkDiagnostics::Attributes::PartitionIdChangeCount::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, GeneralCommissioning::Id);
+            return DataModelLogger::LogValue("PartitionIdChangeCount", 1, value);
         }
-        case GeneralCommissioning::Attributes::AcceptedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case ThreadNetworkDiagnostics::Attributes::BetterPartitionAttachAttemptCount::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, GeneralCommissioning::Id);
+            return DataModelLogger::LogValue("BetterPartitionAttachAttemptCount", 1, value);
         }
-        case GeneralCommissioning::Attributes::EventList::Id: {
-            chip::app::DataModel::DecodableList<chip::EventId> value;
+        case ThreadNetworkDiagnostics::Attributes::ParentChangeCount::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EventList", 1, value);
+            return DataModelLogger::LogValue("ParentChangeCount", 1, value);
         }
-        case GeneralCommissioning::Attributes::AttributeList::Id: {
-            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+        case ThreadNetworkDiagnostics::Attributes::TxTotalCount::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, GeneralCommissioning::Id);
+            return DataModelLogger::LogValue("TxTotalCount", 1, value);
         }
-        case GeneralCommissioning::Attributes::FeatureMap::Id: {
+        case ThreadNetworkDiagnostics::Attributes::TxUnicastCount::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("FeatureMap", 1, value);
+            return DataModelLogger::LogValue("TxUnicastCount", 1, value);
         }
-        case GeneralCommissioning::Attributes::ClusterRevision::Id: {
-            uint16_t value;
+        case ThreadNetworkDiagnostics::Attributes::TxBroadcastCount::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ClusterRevision", 1, value);
+            return DataModelLogger::LogValue("TxBroadcastCount", 1, value);
         }
+        case ThreadNetworkDiagnostics::Attributes::TxAckRequestedCount::Id: {
+            uint32_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("TxAckRequestedCount", 1, value);
         }
-        break;
-    }
-    case NetworkCommissioning::Id: {
-        switch (path.mAttributeId)
-        {
-        case NetworkCommissioning::Attributes::MaxNetworks::Id: {
-            uint8_t value;
+        case ThreadNetworkDiagnostics::Attributes::TxAckedCount::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MaxNetworks", 1, value);
+            return DataModelLogger::LogValue("TxAckedCount", 1, value);
         }
-        case NetworkCommissioning::Attributes::Networks::Id: {
-            chip::app::DataModel::DecodableList<
-                chip::app::Clusters::NetworkCommissioning::Structs::NetworkInfoStruct::DecodableType>
-                value;
+        case ThreadNetworkDiagnostics::Attributes::TxNoAckRequestedCount::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Networks", 1, value);
+            return DataModelLogger::LogValue("TxNoAckRequestedCount", 1, value);
         }
-        case NetworkCommissioning::Attributes::ScanMaxTimeSeconds::Id: {
-            uint8_t value;
+        case ThreadNetworkDiagnostics::Attributes::TxDataCount::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ScanMaxTimeSeconds", 1, value);
+            return DataModelLogger::LogValue("TxDataCount", 1, value);
         }
-        case NetworkCommissioning::Attributes::ConnectMaxTimeSeconds::Id: {
-            uint8_t value;
+        case ThreadNetworkDiagnostics::Attributes::TxDataPollCount::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ConnectMaxTimeSeconds", 1, value);
+            return DataModelLogger::LogValue("TxDataPollCount", 1, value);
         }
-        case NetworkCommissioning::Attributes::InterfaceEnabled::Id: {
-            bool value;
+        case ThreadNetworkDiagnostics::Attributes::TxBeaconCount::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("InterfaceEnabled", 1, value);
+            return DataModelLogger::LogValue("TxBeaconCount", 1, value);
         }
-        case NetworkCommissioning::Attributes::LastNetworkingStatus::Id: {
-            chip::app::DataModel::Nullable<chip::app::Clusters::NetworkCommissioning::NetworkCommissioningStatusEnum> value;
+        case ThreadNetworkDiagnostics::Attributes::TxBeaconRequestCount::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LastNetworkingStatus", 1, value);
+            return DataModelLogger::LogValue("TxBeaconRequestCount", 1, value);
         }
-        case NetworkCommissioning::Attributes::LastNetworkID::Id: {
-            chip::app::DataModel::Nullable<chip::ByteSpan> value;
+        case ThreadNetworkDiagnostics::Attributes::TxOtherCount::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LastNetworkID", 1, value);
+            return DataModelLogger::LogValue("TxOtherCount", 1, value);
         }
-        case NetworkCommissioning::Attributes::LastConnectErrorValue::Id: {
-            chip::app::DataModel::Nullable<int32_t> value;
+        case ThreadNetworkDiagnostics::Attributes::TxRetryCount::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LastConnectErrorValue", 1, value);
+            return DataModelLogger::LogValue("TxRetryCount", 1, value);
         }
-        case NetworkCommissioning::Attributes::SupportedWiFiBands::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::NetworkCommissioning::WiFiBandEnum> value;
+        case ThreadNetworkDiagnostics::Attributes::TxDirectMaxRetryExpiryCount::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SupportedWiFiBands", 1, value);
+            return DataModelLogger::LogValue("TxDirectMaxRetryExpiryCount", 1, value);
         }
-        case NetworkCommissioning::Attributes::SupportedThreadFeatures::Id: {
-            chip::BitMask<chip::app::Clusters::NetworkCommissioning::ThreadCapabilitiesBitmap> value;
+        case ThreadNetworkDiagnostics::Attributes::TxIndirectMaxRetryExpiryCount::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SupportedThreadFeatures", 1, value);
+            return DataModelLogger::LogValue("TxIndirectMaxRetryExpiryCount", 1, value);
         }
-        case NetworkCommissioning::Attributes::ThreadVersion::Id: {
-            uint16_t value;
+        case ThreadNetworkDiagnostics::Attributes::TxErrCcaCount::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ThreadVersion", 1, value);
+            return DataModelLogger::LogValue("TxErrCcaCount", 1, value);
         }
-        case NetworkCommissioning::Attributes::GeneratedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case ThreadNetworkDiagnostics::Attributes::TxErrAbortCount::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, NetworkCommissioning::Id);
+            return DataModelLogger::LogValue("TxErrAbortCount", 1, value);
         }
-        case NetworkCommissioning::Attributes::AcceptedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case ThreadNetworkDiagnostics::Attributes::TxErrBusyChannelCount::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, NetworkCommissioning::Id);
+            return DataModelLogger::LogValue("TxErrBusyChannelCount", 1, value);
         }
-        case NetworkCommissioning::Attributes::EventList::Id: {
-            chip::app::DataModel::DecodableList<chip::EventId> value;
+        case ThreadNetworkDiagnostics::Attributes::RxTotalCount::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EventList", 1, value);
+            return DataModelLogger::LogValue("RxTotalCount", 1, value);
         }
-        case NetworkCommissioning::Attributes::AttributeList::Id: {
-            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+        case ThreadNetworkDiagnostics::Attributes::RxUnicastCount::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, NetworkCommissioning::Id);
+            return DataModelLogger::LogValue("RxUnicastCount", 1, value);
         }
-        case NetworkCommissioning::Attributes::FeatureMap::Id: {
+        case ThreadNetworkDiagnostics::Attributes::RxBroadcastCount::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("FeatureMap", 1, value);
+            return DataModelLogger::LogValue("RxBroadcastCount", 1, value);
         }
-        case NetworkCommissioning::Attributes::ClusterRevision::Id: {
-            uint16_t value;
+        case ThreadNetworkDiagnostics::Attributes::RxDataCount::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ClusterRevision", 1, value);
+            return DataModelLogger::LogValue("RxDataCount", 1, value);
         }
+        case ThreadNetworkDiagnostics::Attributes::RxDataPollCount::Id: {
+            uint32_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("RxDataPollCount", 1, value);
         }
-        break;
-    }
-    case DiagnosticLogs::Id: {
-        switch (path.mAttributeId)
-        {
-        case DiagnosticLogs::Attributes::GeneratedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case ThreadNetworkDiagnostics::Attributes::RxBeaconCount::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, DiagnosticLogs::Id);
+            return DataModelLogger::LogValue("RxBeaconCount", 1, value);
         }
-        case DiagnosticLogs::Attributes::AcceptedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case ThreadNetworkDiagnostics::Attributes::RxBeaconRequestCount::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, DiagnosticLogs::Id);
+            return DataModelLogger::LogValue("RxBeaconRequestCount", 1, value);
         }
-        case DiagnosticLogs::Attributes::EventList::Id: {
-            chip::app::DataModel::DecodableList<chip::EventId> value;
+        case ThreadNetworkDiagnostics::Attributes::RxOtherCount::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EventList", 1, value);
+            return DataModelLogger::LogValue("RxOtherCount", 1, value);
         }
-        case DiagnosticLogs::Attributes::AttributeList::Id: {
-            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+        case ThreadNetworkDiagnostics::Attributes::RxAddressFilteredCount::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, DiagnosticLogs::Id);
+            return DataModelLogger::LogValue("RxAddressFilteredCount", 1, value);
         }
-        case DiagnosticLogs::Attributes::FeatureMap::Id: {
+        case ThreadNetworkDiagnostics::Attributes::RxDestAddrFilteredCount::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("FeatureMap", 1, value);
+            return DataModelLogger::LogValue("RxDestAddrFilteredCount", 1, value);
         }
-        case DiagnosticLogs::Attributes::ClusterRevision::Id: {
-            uint16_t value;
+        case ThreadNetworkDiagnostics::Attributes::RxDuplicatedCount::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ClusterRevision", 1, value);
+            return DataModelLogger::LogValue("RxDuplicatedCount", 1, value);
         }
+        case ThreadNetworkDiagnostics::Attributes::RxErrNoFrameCount::Id: {
+            uint32_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("RxErrNoFrameCount", 1, value);
         }
-        break;
-    }
-    case GeneralDiagnostics::Id: {
-        switch (path.mAttributeId)
-        {
-        case GeneralDiagnostics::Attributes::NetworkInterfaces::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::GeneralDiagnostics::Structs::NetworkInterface::DecodableType>
-                value;
+        case ThreadNetworkDiagnostics::Attributes::RxErrUnknownNeighborCount::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NetworkInterfaces", 1, value);
+            return DataModelLogger::LogValue("RxErrUnknownNeighborCount", 1, value);
+        }
+        case ThreadNetworkDiagnostics::Attributes::RxErrInvalidSrcAddrCount::Id: {
+            uint32_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("RxErrInvalidSrcAddrCount", 1, value);
         }
-        case GeneralDiagnostics::Attributes::RebootCount::Id: {
-            uint16_t value;
+        case ThreadNetworkDiagnostics::Attributes::RxErrSecCount::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("RebootCount", 1, value);
+            return DataModelLogger::LogValue("RxErrSecCount", 1, value);
         }
-        case GeneralDiagnostics::Attributes::UpTime::Id: {
-            uint64_t value;
+        case ThreadNetworkDiagnostics::Attributes::RxErrFcsCount::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("UpTime", 1, value);
+            return DataModelLogger::LogValue("RxErrFcsCount", 1, value);
         }
-        case GeneralDiagnostics::Attributes::TotalOperationalHours::Id: {
+        case ThreadNetworkDiagnostics::Attributes::RxErrOtherCount::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TotalOperationalHours", 1, value);
+            return DataModelLogger::LogValue("RxErrOtherCount", 1, value);
         }
-        case GeneralDiagnostics::Attributes::BootReason::Id: {
-            chip::app::Clusters::GeneralDiagnostics::BootReasonEnum value;
+        case ThreadNetworkDiagnostics::Attributes::ActiveTimestamp::Id: {
+            chip::app::DataModel::Nullable<uint64_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BootReason", 1, value);
+            return DataModelLogger::LogValue("ActiveTimestamp", 1, value);
         }
-        case GeneralDiagnostics::Attributes::ActiveHardwareFaults::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::GeneralDiagnostics::HardwareFaultEnum> value;
+        case ThreadNetworkDiagnostics::Attributes::PendingTimestamp::Id: {
+            chip::app::DataModel::Nullable<uint64_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ActiveHardwareFaults", 1, value);
+            return DataModelLogger::LogValue("PendingTimestamp", 1, value);
         }
-        case GeneralDiagnostics::Attributes::ActiveRadioFaults::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::GeneralDiagnostics::RadioFaultEnum> value;
+        case ThreadNetworkDiagnostics::Attributes::Delay::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ActiveRadioFaults", 1, value);
+            return DataModelLogger::LogValue("Delay", 1, value);
         }
-        case GeneralDiagnostics::Attributes::ActiveNetworkFaults::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::GeneralDiagnostics::NetworkFaultEnum> value;
+        case ThreadNetworkDiagnostics::Attributes::SecurityPolicy::Id: {
+            chip::app::DataModel::Nullable<chip::app::Clusters::ThreadNetworkDiagnostics::Structs::SecurityPolicy::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ActiveNetworkFaults", 1, value);
+            return DataModelLogger::LogValue("SecurityPolicy", 1, value);
         }
-        case GeneralDiagnostics::Attributes::TestEventTriggersEnabled::Id: {
-            bool value;
+        case ThreadNetworkDiagnostics::Attributes::ChannelPage0Mask::Id: {
+            chip::app::DataModel::Nullable<chip::ByteSpan> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TestEventTriggersEnabled", 1, value);
+            return DataModelLogger::LogValue("ChannelPage0Mask", 1, value);
         }
-        case GeneralDiagnostics::Attributes::GeneratedCommandList::Id: {
+        case ThreadNetworkDiagnostics::Attributes::OperationalDatasetComponents::Id: {
+            chip::app::DataModel::Nullable<
+                chip::app::Clusters::ThreadNetworkDiagnostics::Structs::OperationalDatasetComponents::DecodableType>
+                value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("OperationalDatasetComponents", 1, value);
+        }
+        case ThreadNetworkDiagnostics::Attributes::ActiveNetworkFaultsList::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::ThreadNetworkDiagnostics::NetworkFaultEnum> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("ActiveNetworkFaultsList", 1, value);
+        }
+        case ThreadNetworkDiagnostics::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, GeneralDiagnostics::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ThreadNetworkDiagnostics::Id);
         }
-        case GeneralDiagnostics::Attributes::AcceptedCommandList::Id: {
+        case ThreadNetworkDiagnostics::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, GeneralDiagnostics::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ThreadNetworkDiagnostics::Id);
         }
-        case GeneralDiagnostics::Attributes::EventList::Id: {
+        case ThreadNetworkDiagnostics::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case GeneralDiagnostics::Attributes::AttributeList::Id: {
+        case ThreadNetworkDiagnostics::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, GeneralDiagnostics::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ThreadNetworkDiagnostics::Id);
         }
-        case GeneralDiagnostics::Attributes::FeatureMap::Id: {
+        case ThreadNetworkDiagnostics::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case GeneralDiagnostics::Attributes::ClusterRevision::Id: {
+        case ThreadNetworkDiagnostics::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -10497,415 +12200,407 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case SoftwareDiagnostics::Id: {
+    case WiFiNetworkDiagnostics::Id: {
         switch (path.mAttributeId)
         {
-        case SoftwareDiagnostics::Attributes::ThreadMetrics::Id: {
-            chip::app::DataModel::DecodableList<
-                chip::app::Clusters::SoftwareDiagnostics::Structs::ThreadMetricsStruct::DecodableType>
-                value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ThreadMetrics", 1, value);
-        }
-        case SoftwareDiagnostics::Attributes::CurrentHeapFree::Id: {
-            uint64_t value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentHeapFree", 1, value);
-        }
-        case SoftwareDiagnostics::Attributes::CurrentHeapUsed::Id: {
-            uint64_t value;
+        case WiFiNetworkDiagnostics::Attributes::Bssid::Id: {
+            chip::app::DataModel::Nullable<chip::ByteSpan> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentHeapUsed", 1, value);
+            return DataModelLogger::LogValue("BSSID", 1, value);
         }
-        case SoftwareDiagnostics::Attributes::CurrentHeapHighWatermark::Id: {
-            uint64_t value;
+        case WiFiNetworkDiagnostics::Attributes::SecurityType::Id: {
+            chip::app::DataModel::Nullable<chip::app::Clusters::WiFiNetworkDiagnostics::SecurityTypeEnum> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentHeapHighWatermark", 1, value);
+            return DataModelLogger::LogValue("SecurityType", 1, value);
         }
-        case SoftwareDiagnostics::Attributes::GeneratedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case WiFiNetworkDiagnostics::Attributes::WiFiVersion::Id: {
+            chip::app::DataModel::Nullable<chip::app::Clusters::WiFiNetworkDiagnostics::WiFiVersionEnum> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, SoftwareDiagnostics::Id);
+            return DataModelLogger::LogValue("WiFiVersion", 1, value);
         }
-        case SoftwareDiagnostics::Attributes::AcceptedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case WiFiNetworkDiagnostics::Attributes::ChannelNumber::Id: {
+            chip::app::DataModel::Nullable<uint16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, SoftwareDiagnostics::Id);
+            return DataModelLogger::LogValue("ChannelNumber", 1, value);
         }
-        case SoftwareDiagnostics::Attributes::EventList::Id: {
-            chip::app::DataModel::DecodableList<chip::EventId> value;
+        case WiFiNetworkDiagnostics::Attributes::Rssi::Id: {
+            chip::app::DataModel::Nullable<int8_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EventList", 1, value);
+            return DataModelLogger::LogValue("RSSI", 1, value);
         }
-        case SoftwareDiagnostics::Attributes::AttributeList::Id: {
-            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+        case WiFiNetworkDiagnostics::Attributes::BeaconLostCount::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, SoftwareDiagnostics::Id);
+            return DataModelLogger::LogValue("BeaconLostCount", 1, value);
         }
-        case SoftwareDiagnostics::Attributes::FeatureMap::Id: {
-            uint32_t value;
+        case WiFiNetworkDiagnostics::Attributes::BeaconRxCount::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("FeatureMap", 1, value);
+            return DataModelLogger::LogValue("BeaconRxCount", 1, value);
         }
-        case SoftwareDiagnostics::Attributes::ClusterRevision::Id: {
-            uint16_t value;
+        case WiFiNetworkDiagnostics::Attributes::PacketMulticastRxCount::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ClusterRevision", 1, value);
-        }
+            return DataModelLogger::LogValue("PacketMulticastRxCount", 1, value);
         }
-        break;
-    }
-    case ThreadNetworkDiagnostics::Id: {
-        switch (path.mAttributeId)
-        {
-        case ThreadNetworkDiagnostics::Attributes::Channel::Id: {
-            chip::app::DataModel::Nullable<uint16_t> value;
+        case WiFiNetworkDiagnostics::Attributes::PacketMulticastTxCount::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Channel", 1, value);
+            return DataModelLogger::LogValue("PacketMulticastTxCount", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::RoutingRole::Id: {
-            chip::app::DataModel::Nullable<chip::app::Clusters::ThreadNetworkDiagnostics::RoutingRoleEnum> value;
+        case WiFiNetworkDiagnostics::Attributes::PacketUnicastRxCount::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("RoutingRole", 1, value);
+            return DataModelLogger::LogValue("PacketUnicastRxCount", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::NetworkName::Id: {
-            chip::app::DataModel::Nullable<chip::CharSpan> value;
+        case WiFiNetworkDiagnostics::Attributes::PacketUnicastTxCount::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NetworkName", 1, value);
+            return DataModelLogger::LogValue("PacketUnicastTxCount", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::PanId::Id: {
-            chip::app::DataModel::Nullable<uint16_t> value;
+        case WiFiNetworkDiagnostics::Attributes::CurrentMaxRate::Id: {
+            chip::app::DataModel::Nullable<uint64_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PanId", 1, value);
+            return DataModelLogger::LogValue("CurrentMaxRate", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::ExtendedPanId::Id: {
+        case WiFiNetworkDiagnostics::Attributes::OverrunCount::Id: {
             chip::app::DataModel::Nullable<uint64_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ExtendedPanId", 1, value);
+            return DataModelLogger::LogValue("OverrunCount", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::MeshLocalPrefix::Id: {
-            chip::app::DataModel::Nullable<chip::ByteSpan> value;
+        case WiFiNetworkDiagnostics::Attributes::GeneratedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MeshLocalPrefix", 1, value);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, WiFiNetworkDiagnostics::Id);
         }
-        case ThreadNetworkDiagnostics::Attributes::OverrunCount::Id: {
-            uint64_t value;
+        case WiFiNetworkDiagnostics::Attributes::AcceptedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OverrunCount", 1, value);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, WiFiNetworkDiagnostics::Id);
         }
-        case ThreadNetworkDiagnostics::Attributes::NeighborTable::Id: {
-            chip::app::DataModel::DecodableList<
-                chip::app::Clusters::ThreadNetworkDiagnostics::Structs::NeighborTableStruct::DecodableType>
-                value;
+        case WiFiNetworkDiagnostics::Attributes::EventList::Id: {
+            chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NeighborTable", 1, value);
+            return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::RouteTable::Id: {
-            chip::app::DataModel::DecodableList<
-                chip::app::Clusters::ThreadNetworkDiagnostics::Structs::RouteTableStruct::DecodableType>
-                value;
+        case WiFiNetworkDiagnostics::Attributes::AttributeList::Id: {
+            chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("RouteTable", 1, value);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, WiFiNetworkDiagnostics::Id);
         }
-        case ThreadNetworkDiagnostics::Attributes::PartitionId::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
+        case WiFiNetworkDiagnostics::Attributes::FeatureMap::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PartitionId", 1, value);
+            return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::Weighting::Id: {
-            chip::app::DataModel::Nullable<uint16_t> value;
+        case WiFiNetworkDiagnostics::Attributes::ClusterRevision::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Weighting", 1, value);
+            return DataModelLogger::LogValue("ClusterRevision", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::DataVersion::Id: {
-            chip::app::DataModel::Nullable<uint16_t> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("DataVersion", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::StableDataVersion::Id: {
-            chip::app::DataModel::Nullable<uint16_t> value;
+        break;
+    }
+    case EthernetNetworkDiagnostics::Id: {
+        switch (path.mAttributeId)
+        {
+        case EthernetNetworkDiagnostics::Attributes::PHYRate::Id: {
+            chip::app::DataModel::Nullable<chip::app::Clusters::EthernetNetworkDiagnostics::PHYRateEnum> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("StableDataVersion", 1, value);
+            return DataModelLogger::LogValue("PHYRate", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::LeaderRouterId::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case EthernetNetworkDiagnostics::Attributes::FullDuplex::Id: {
+            chip::app::DataModel::Nullable<bool> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LeaderRouterId", 1, value);
+            return DataModelLogger::LogValue("FullDuplex", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::DetachedRoleCount::Id: {
-            uint16_t value;
+        case EthernetNetworkDiagnostics::Attributes::PacketRxCount::Id: {
+            uint64_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("DetachedRoleCount", 1, value);
+            return DataModelLogger::LogValue("PacketRxCount", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::ChildRoleCount::Id: {
-            uint16_t value;
+        case EthernetNetworkDiagnostics::Attributes::PacketTxCount::Id: {
+            uint64_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ChildRoleCount", 1, value);
+            return DataModelLogger::LogValue("PacketTxCount", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::RouterRoleCount::Id: {
-            uint16_t value;
+        case EthernetNetworkDiagnostics::Attributes::TxErrCount::Id: {
+            uint64_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("RouterRoleCount", 1, value);
+            return DataModelLogger::LogValue("TxErrCount", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::LeaderRoleCount::Id: {
-            uint16_t value;
+        case EthernetNetworkDiagnostics::Attributes::CollisionCount::Id: {
+            uint64_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LeaderRoleCount", 1, value);
+            return DataModelLogger::LogValue("CollisionCount", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::AttachAttemptCount::Id: {
-            uint16_t value;
+        case EthernetNetworkDiagnostics::Attributes::OverrunCount::Id: {
+            uint64_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AttachAttemptCount", 1, value);
+            return DataModelLogger::LogValue("OverrunCount", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::PartitionIdChangeCount::Id: {
-            uint16_t value;
+        case EthernetNetworkDiagnostics::Attributes::CarrierDetect::Id: {
+            chip::app::DataModel::Nullable<bool> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PartitionIdChangeCount", 1, value);
+            return DataModelLogger::LogValue("CarrierDetect", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::BetterPartitionAttachAttemptCount::Id: {
-            uint16_t value;
+        case EthernetNetworkDiagnostics::Attributes::TimeSinceReset::Id: {
+            uint64_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BetterPartitionAttachAttemptCount", 1, value);
+            return DataModelLogger::LogValue("TimeSinceReset", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::ParentChangeCount::Id: {
-            uint16_t value;
+        case EthernetNetworkDiagnostics::Attributes::GeneratedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ParentChangeCount", 1, value);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, EthernetNetworkDiagnostics::Id);
         }
-        case ThreadNetworkDiagnostics::Attributes::TxTotalCount::Id: {
-            uint32_t value;
+        case EthernetNetworkDiagnostics::Attributes::AcceptedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TxTotalCount", 1, value);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, EthernetNetworkDiagnostics::Id);
         }
-        case ThreadNetworkDiagnostics::Attributes::TxUnicastCount::Id: {
-            uint32_t value;
+        case EthernetNetworkDiagnostics::Attributes::EventList::Id: {
+            chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TxUnicastCount", 1, value);
+            return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::TxBroadcastCount::Id: {
-            uint32_t value;
+        case EthernetNetworkDiagnostics::Attributes::AttributeList::Id: {
+            chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TxBroadcastCount", 1, value);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, EthernetNetworkDiagnostics::Id);
         }
-        case ThreadNetworkDiagnostics::Attributes::TxAckRequestedCount::Id: {
+        case EthernetNetworkDiagnostics::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TxAckRequestedCount", 1, value);
+            return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::TxAckedCount::Id: {
-            uint32_t value;
+        case EthernetNetworkDiagnostics::Attributes::ClusterRevision::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TxAckedCount", 1, value);
+            return DataModelLogger::LogValue("ClusterRevision", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::TxNoAckRequestedCount::Id: {
-            uint32_t value;
+        }
+        break;
+    }
+    case TimeSynchronization::Id: {
+        switch (path.mAttributeId)
+        {
+        case TimeSynchronization::Attributes::UTCTime::Id: {
+            chip::app::DataModel::Nullable<uint64_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TxNoAckRequestedCount", 1, value);
+            return DataModelLogger::LogValue("UTCTime", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::TxDataCount::Id: {
-            uint32_t value;
+        case TimeSynchronization::Attributes::Granularity::Id: {
+            chip::app::Clusters::TimeSynchronization::GranularityEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TxDataCount", 1, value);
+            return DataModelLogger::LogValue("Granularity", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::TxDataPollCount::Id: {
-            uint32_t value;
+        case TimeSynchronization::Attributes::TimeSource::Id: {
+            chip::app::Clusters::TimeSynchronization::TimeSourceEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TxDataPollCount", 1, value);
+            return DataModelLogger::LogValue("TimeSource", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::TxBeaconCount::Id: {
-            uint32_t value;
+        case TimeSynchronization::Attributes::TrustedTimeSource::Id: {
+            chip::app::DataModel::Nullable<
+                chip::app::Clusters::TimeSynchronization::Structs::TrustedTimeSourceStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TxBeaconCount", 1, value);
+            return DataModelLogger::LogValue("TrustedTimeSource", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::TxBeaconRequestCount::Id: {
-            uint32_t value;
+        case TimeSynchronization::Attributes::DefaultNTP::Id: {
+            chip::app::DataModel::Nullable<chip::CharSpan> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TxBeaconRequestCount", 1, value);
+            return DataModelLogger::LogValue("DefaultNTP", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::TxOtherCount::Id: {
-            uint32_t value;
+        case TimeSynchronization::Attributes::TimeZone::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::TimeSynchronization::Structs::TimeZoneStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TxOtherCount", 1, value);
+            return DataModelLogger::LogValue("TimeZone", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::TxRetryCount::Id: {
-            uint32_t value;
+        case TimeSynchronization::Attributes::DSTOffset::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::TimeSynchronization::Structs::DSTOffsetStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TxRetryCount", 1, value);
+            return DataModelLogger::LogValue("DSTOffset", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::TxDirectMaxRetryExpiryCount::Id: {
-            uint32_t value;
+        case TimeSynchronization::Attributes::LocalTime::Id: {
+            chip::app::DataModel::Nullable<uint64_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TxDirectMaxRetryExpiryCount", 1, value);
+            return DataModelLogger::LogValue("LocalTime", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::TxIndirectMaxRetryExpiryCount::Id: {
-            uint32_t value;
+        case TimeSynchronization::Attributes::TimeZoneDatabase::Id: {
+            chip::app::Clusters::TimeSynchronization::TimeZoneDatabaseEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TxIndirectMaxRetryExpiryCount", 1, value);
+            return DataModelLogger::LogValue("TimeZoneDatabase", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::TxErrCcaCount::Id: {
-            uint32_t value;
+        case TimeSynchronization::Attributes::NTPServerAvailable::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TxErrCcaCount", 1, value);
+            return DataModelLogger::LogValue("NTPServerAvailable", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::TxErrAbortCount::Id: {
-            uint32_t value;
+        case TimeSynchronization::Attributes::TimeZoneListMaxSize::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TxErrAbortCount", 1, value);
+            return DataModelLogger::LogValue("TimeZoneListMaxSize", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::TxErrBusyChannelCount::Id: {
-            uint32_t value;
+        case TimeSynchronization::Attributes::DSTOffsetListMaxSize::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TxErrBusyChannelCount", 1, value);
+            return DataModelLogger::LogValue("DSTOffsetListMaxSize", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::RxTotalCount::Id: {
-            uint32_t value;
+        case TimeSynchronization::Attributes::SupportsDNSResolve::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("RxTotalCount", 1, value);
+            return DataModelLogger::LogValue("SupportsDNSResolve", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::RxUnicastCount::Id: {
-            uint32_t value;
+        case TimeSynchronization::Attributes::GeneratedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("RxUnicastCount", 1, value);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, TimeSynchronization::Id);
         }
-        case ThreadNetworkDiagnostics::Attributes::RxBroadcastCount::Id: {
-            uint32_t value;
+        case TimeSynchronization::Attributes::AcceptedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("RxBroadcastCount", 1, value);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, TimeSynchronization::Id);
         }
-        case ThreadNetworkDiagnostics::Attributes::RxDataCount::Id: {
-            uint32_t value;
+        case TimeSynchronization::Attributes::EventList::Id: {
+            chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("RxDataCount", 1, value);
+            return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::RxDataPollCount::Id: {
-            uint32_t value;
+        case TimeSynchronization::Attributes::AttributeList::Id: {
+            chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("RxDataPollCount", 1, value);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, TimeSynchronization::Id);
         }
-        case ThreadNetworkDiagnostics::Attributes::RxBeaconCount::Id: {
+        case TimeSynchronization::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("RxBeaconCount", 1, value);
+            return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::RxBeaconRequestCount::Id: {
-            uint32_t value;
+        case TimeSynchronization::Attributes::ClusterRevision::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("RxBeaconRequestCount", 1, value);
+            return DataModelLogger::LogValue("ClusterRevision", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::RxOtherCount::Id: {
-            uint32_t value;
+        }
+        break;
+    }
+    case BridgedDeviceBasicInformation::Id: {
+        switch (path.mAttributeId)
+        {
+        case BridgedDeviceBasicInformation::Attributes::VendorName::Id: {
+            chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("RxOtherCount", 1, value);
+            return DataModelLogger::LogValue("VendorName", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::RxAddressFilteredCount::Id: {
-            uint32_t value;
+        case BridgedDeviceBasicInformation::Attributes::VendorID::Id: {
+            chip::VendorId value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("RxAddressFilteredCount", 1, value);
+            return DataModelLogger::LogValue("VendorID", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::RxDestAddrFilteredCount::Id: {
-            uint32_t value;
+        case BridgedDeviceBasicInformation::Attributes::ProductName::Id: {
+            chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("RxDestAddrFilteredCount", 1, value);
+            return DataModelLogger::LogValue("ProductName", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::RxDuplicatedCount::Id: {
-            uint32_t value;
+        case BridgedDeviceBasicInformation::Attributes::ProductID::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("RxDuplicatedCount", 1, value);
+            return DataModelLogger::LogValue("ProductID", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::RxErrNoFrameCount::Id: {
-            uint32_t value;
+        case BridgedDeviceBasicInformation::Attributes::NodeLabel::Id: {
+            chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("RxErrNoFrameCount", 1, value);
+            return DataModelLogger::LogValue("NodeLabel", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::RxErrUnknownNeighborCount::Id: {
-            uint32_t value;
+        case BridgedDeviceBasicInformation::Attributes::HardwareVersion::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("RxErrUnknownNeighborCount", 1, value);
+            return DataModelLogger::LogValue("HardwareVersion", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::RxErrInvalidSrcAddrCount::Id: {
-            uint32_t value;
+        case BridgedDeviceBasicInformation::Attributes::HardwareVersionString::Id: {
+            chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("RxErrInvalidSrcAddrCount", 1, value);
+            return DataModelLogger::LogValue("HardwareVersionString", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::RxErrSecCount::Id: {
+        case BridgedDeviceBasicInformation::Attributes::SoftwareVersion::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("RxErrSecCount", 1, value);
+            return DataModelLogger::LogValue("SoftwareVersion", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::RxErrFcsCount::Id: {
-            uint32_t value;
+        case BridgedDeviceBasicInformation::Attributes::SoftwareVersionString::Id: {
+            chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("RxErrFcsCount", 1, value);
+            return DataModelLogger::LogValue("SoftwareVersionString", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::RxErrOtherCount::Id: {
-            uint32_t value;
+        case BridgedDeviceBasicInformation::Attributes::ManufacturingDate::Id: {
+            chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("RxErrOtherCount", 1, value);
+            return DataModelLogger::LogValue("ManufacturingDate", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::ActiveTimestamp::Id: {
-            chip::app::DataModel::Nullable<uint64_t> value;
+        case BridgedDeviceBasicInformation::Attributes::PartNumber::Id: {
+            chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ActiveTimestamp", 1, value);
+            return DataModelLogger::LogValue("PartNumber", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::PendingTimestamp::Id: {
-            chip::app::DataModel::Nullable<uint64_t> value;
+        case BridgedDeviceBasicInformation::Attributes::ProductURL::Id: {
+            chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PendingTimestamp", 1, value);
+            return DataModelLogger::LogValue("ProductURL", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::Delay::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
+        case BridgedDeviceBasicInformation::Attributes::ProductLabel::Id: {
+            chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Delay", 1, value);
+            return DataModelLogger::LogValue("ProductLabel", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::SecurityPolicy::Id: {
-            chip::app::DataModel::Nullable<chip::app::Clusters::ThreadNetworkDiagnostics::Structs::SecurityPolicy::DecodableType>
-                value;
+        case BridgedDeviceBasicInformation::Attributes::SerialNumber::Id: {
+            chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SecurityPolicy", 1, value);
+            return DataModelLogger::LogValue("SerialNumber", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::ChannelPage0Mask::Id: {
-            chip::app::DataModel::Nullable<chip::ByteSpan> value;
+        case BridgedDeviceBasicInformation::Attributes::Reachable::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ChannelPage0Mask", 1, value);
+            return DataModelLogger::LogValue("Reachable", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::OperationalDatasetComponents::Id: {
-            chip::app::DataModel::Nullable<
-                chip::app::Clusters::ThreadNetworkDiagnostics::Structs::OperationalDatasetComponents::DecodableType>
-                value;
+        case BridgedDeviceBasicInformation::Attributes::UniqueID::Id: {
+            chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OperationalDatasetComponents", 1, value);
+            return DataModelLogger::LogValue("UniqueID", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::ActiveNetworkFaultsList::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::ThreadNetworkDiagnostics::NetworkFaultEnum> value;
+        case BridgedDeviceBasicInformation::Attributes::ProductAppearance::Id: {
+            chip::app::Clusters::BridgedDeviceBasicInformation::Structs::ProductAppearanceStruct::DecodableType value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ActiveNetworkFaultsList", 1, value);
+            return DataModelLogger::LogValue("ProductAppearance", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::GeneratedCommandList::Id: {
+        case BridgedDeviceBasicInformation::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ThreadNetworkDiagnostics::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, BridgedDeviceBasicInformation::Id);
         }
-        case ThreadNetworkDiagnostics::Attributes::AcceptedCommandList::Id: {
+        case BridgedDeviceBasicInformation::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ThreadNetworkDiagnostics::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, BridgedDeviceBasicInformation::Id);
         }
-        case ThreadNetworkDiagnostics::Attributes::EventList::Id: {
+        case BridgedDeviceBasicInformation::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::AttributeList::Id: {
+        case BridgedDeviceBasicInformation::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ThreadNetworkDiagnostics::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, BridgedDeviceBasicInformation::Id);
         }
-        case ThreadNetworkDiagnostics::Attributes::FeatureMap::Id: {
+        case BridgedDeviceBasicInformation::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case ThreadNetworkDiagnostics::Attributes::ClusterRevision::Id: {
+        case BridgedDeviceBasicInformation::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -10913,100 +12608,101 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case WiFiNetworkDiagnostics::Id: {
+    case Switch::Id: {
         switch (path.mAttributeId)
         {
-        case WiFiNetworkDiagnostics::Attributes::Bssid::Id: {
-            chip::app::DataModel::Nullable<chip::ByteSpan> value;
+        case Switch::Attributes::NumberOfPositions::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BSSID", 1, value);
+            return DataModelLogger::LogValue("NumberOfPositions", 1, value);
         }
-        case WiFiNetworkDiagnostics::Attributes::SecurityType::Id: {
-            chip::app::DataModel::Nullable<chip::app::Clusters::WiFiNetworkDiagnostics::SecurityTypeEnum> value;
+        case Switch::Attributes::CurrentPosition::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SecurityType", 1, value);
+            return DataModelLogger::LogValue("CurrentPosition", 1, value);
         }
-        case WiFiNetworkDiagnostics::Attributes::WiFiVersion::Id: {
-            chip::app::DataModel::Nullable<chip::app::Clusters::WiFiNetworkDiagnostics::WiFiVersionEnum> value;
+        case Switch::Attributes::MultiPressMax::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("WiFiVersion", 1, value);
+            return DataModelLogger::LogValue("MultiPressMax", 1, value);
         }
-        case WiFiNetworkDiagnostics::Attributes::ChannelNumber::Id: {
-            chip::app::DataModel::Nullable<uint16_t> value;
+        case Switch::Attributes::GeneratedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ChannelNumber", 1, value);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, Switch::Id);
         }
-        case WiFiNetworkDiagnostics::Attributes::Rssi::Id: {
-            chip::app::DataModel::Nullable<int8_t> value;
+        case Switch::Attributes::AcceptedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("RSSI", 1, value);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, Switch::Id);
         }
-        case WiFiNetworkDiagnostics::Attributes::BeaconLostCount::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
+        case Switch::Attributes::EventList::Id: {
+            chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BeaconLostCount", 1, value);
+            return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case WiFiNetworkDiagnostics::Attributes::BeaconRxCount::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
+        case Switch::Attributes::AttributeList::Id: {
+            chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BeaconRxCount", 1, value);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, Switch::Id);
         }
-        case WiFiNetworkDiagnostics::Attributes::PacketMulticastRxCount::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
+        case Switch::Attributes::FeatureMap::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PacketMulticastRxCount", 1, value);
+            return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case WiFiNetworkDiagnostics::Attributes::PacketMulticastTxCount::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
+        case Switch::Attributes::ClusterRevision::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PacketMulticastTxCount", 1, value);
+            return DataModelLogger::LogValue("ClusterRevision", 1, value);
         }
-        case WiFiNetworkDiagnostics::Attributes::PacketUnicastRxCount::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PacketUnicastRxCount", 1, value);
         }
-        case WiFiNetworkDiagnostics::Attributes::PacketUnicastTxCount::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
+        break;
+    }
+    case AdministratorCommissioning::Id: {
+        switch (path.mAttributeId)
+        {
+        case AdministratorCommissioning::Attributes::WindowStatus::Id: {
+            chip::app::Clusters::AdministratorCommissioning::CommissioningWindowStatusEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PacketUnicastTxCount", 1, value);
+            return DataModelLogger::LogValue("WindowStatus", 1, value);
         }
-        case WiFiNetworkDiagnostics::Attributes::CurrentMaxRate::Id: {
-            chip::app::DataModel::Nullable<uint64_t> value;
+        case AdministratorCommissioning::Attributes::AdminFabricIndex::Id: {
+            chip::app::DataModel::Nullable<chip::FabricIndex> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentMaxRate", 1, value);
+            return DataModelLogger::LogValue("AdminFabricIndex", 1, value);
         }
-        case WiFiNetworkDiagnostics::Attributes::OverrunCount::Id: {
-            chip::app::DataModel::Nullable<uint64_t> value;
+        case AdministratorCommissioning::Attributes::AdminVendorId::Id: {
+            chip::app::DataModel::Nullable<chip::VendorId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OverrunCount", 1, value);
+            return DataModelLogger::LogValue("AdminVendorId", 1, value);
         }
-        case WiFiNetworkDiagnostics::Attributes::GeneratedCommandList::Id: {
+        case AdministratorCommissioning::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, WiFiNetworkDiagnostics::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, AdministratorCommissioning::Id);
         }
-        case WiFiNetworkDiagnostics::Attributes::AcceptedCommandList::Id: {
+        case AdministratorCommissioning::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, WiFiNetworkDiagnostics::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, AdministratorCommissioning::Id);
         }
-        case WiFiNetworkDiagnostics::Attributes::EventList::Id: {
+        case AdministratorCommissioning::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case WiFiNetworkDiagnostics::Attributes::AttributeList::Id: {
+        case AdministratorCommissioning::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, WiFiNetworkDiagnostics::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, AdministratorCommissioning::Id);
         }
-        case WiFiNetworkDiagnostics::Attributes::FeatureMap::Id: {
+        case AdministratorCommissioning::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case WiFiNetworkDiagnostics::Attributes::ClusterRevision::Id: {
+        case AdministratorCommissioning::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -11014,80 +12710,126 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case EthernetNetworkDiagnostics::Id: {
+    case OperationalCredentials::Id: {
         switch (path.mAttributeId)
         {
-        case EthernetNetworkDiagnostics::Attributes::PHYRate::Id: {
-            chip::app::DataModel::Nullable<chip::app::Clusters::EthernetNetworkDiagnostics::PHYRateEnum> value;
+        case OperationalCredentials::Attributes::NOCs::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::OperationalCredentials::Structs::NOCStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PHYRate", 1, value);
+            return DataModelLogger::LogValue("NOCs", 1, value);
         }
-        case EthernetNetworkDiagnostics::Attributes::FullDuplex::Id: {
-            chip::app::DataModel::Nullable<bool> value;
+        case OperationalCredentials::Attributes::Fabrics::Id: {
+            chip::app::DataModel::DecodableList<
+                chip::app::Clusters::OperationalCredentials::Structs::FabricDescriptorStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("FullDuplex", 1, value);
+            return DataModelLogger::LogValue("Fabrics", 1, value);
         }
-        case EthernetNetworkDiagnostics::Attributes::PacketRxCount::Id: {
-            uint64_t value;
+        case OperationalCredentials::Attributes::SupportedFabrics::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PacketRxCount", 1, value);
+            return DataModelLogger::LogValue("SupportedFabrics", 1, value);
         }
-        case EthernetNetworkDiagnostics::Attributes::PacketTxCount::Id: {
-            uint64_t value;
+        case OperationalCredentials::Attributes::CommissionedFabrics::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PacketTxCount", 1, value);
+            return DataModelLogger::LogValue("CommissionedFabrics", 1, value);
         }
-        case EthernetNetworkDiagnostics::Attributes::TxErrCount::Id: {
-            uint64_t value;
+        case OperationalCredentials::Attributes::TrustedRootCertificates::Id: {
+            chip::app::DataModel::DecodableList<chip::ByteSpan> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TxErrCount", 1, value);
+            return DataModelLogger::LogValue("TrustedRootCertificates", 1, value);
         }
-        case EthernetNetworkDiagnostics::Attributes::CollisionCount::Id: {
-            uint64_t value;
+        case OperationalCredentials::Attributes::CurrentFabricIndex::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CollisionCount", 1, value);
+            return DataModelLogger::LogValue("CurrentFabricIndex", 1, value);
         }
-        case EthernetNetworkDiagnostics::Attributes::OverrunCount::Id: {
-            uint64_t value;
+        case OperationalCredentials::Attributes::GeneratedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OverrunCount", 1, value);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, OperationalCredentials::Id);
         }
-        case EthernetNetworkDiagnostics::Attributes::CarrierDetect::Id: {
-            chip::app::DataModel::Nullable<bool> value;
+        case OperationalCredentials::Attributes::AcceptedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CarrierDetect", 1, value);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, OperationalCredentials::Id);
         }
-        case EthernetNetworkDiagnostics::Attributes::TimeSinceReset::Id: {
-            uint64_t value;
+        case OperationalCredentials::Attributes::EventList::Id: {
+            chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TimeSinceReset", 1, value);
+            return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case EthernetNetworkDiagnostics::Attributes::GeneratedCommandList::Id: {
+        case OperationalCredentials::Attributes::AttributeList::Id: {
+            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, OperationalCredentials::Id);
+        }
+        case OperationalCredentials::Attributes::FeatureMap::Id: {
+            uint32_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("FeatureMap", 1, value);
+        }
+        case OperationalCredentials::Attributes::ClusterRevision::Id: {
+            uint16_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("ClusterRevision", 1, value);
+        }
+        }
+        break;
+    }
+    case GroupKeyManagement::Id: {
+        switch (path.mAttributeId)
+        {
+        case GroupKeyManagement::Attributes::GroupKeyMap::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::GroupKeyManagement::Structs::GroupKeyMapStruct::DecodableType>
+                value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("GroupKeyMap", 1, value);
+        }
+        case GroupKeyManagement::Attributes::GroupTable::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::GroupKeyManagement::Structs::GroupInfoMapStruct::DecodableType>
+                value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("GroupTable", 1, value);
+        }
+        case GroupKeyManagement::Attributes::MaxGroupsPerFabric::Id: {
+            uint16_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("MaxGroupsPerFabric", 1, value);
+        }
+        case GroupKeyManagement::Attributes::MaxGroupKeysPerFabric::Id: {
+            uint16_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("MaxGroupKeysPerFabric", 1, value);
+        }
+        case GroupKeyManagement::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, EthernetNetworkDiagnostics::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, GroupKeyManagement::Id);
         }
-        case EthernetNetworkDiagnostics::Attributes::AcceptedCommandList::Id: {
+        case GroupKeyManagement::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, EthernetNetworkDiagnostics::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, GroupKeyManagement::Id);
         }
-        case EthernetNetworkDiagnostics::Attributes::EventList::Id: {
+        case GroupKeyManagement::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case EthernetNetworkDiagnostics::Attributes::AttributeList::Id: {
+        case GroupKeyManagement::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, EthernetNetworkDiagnostics::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, GroupKeyManagement::Id);
         }
-        case EthernetNetworkDiagnostics::Attributes::FeatureMap::Id: {
+        case GroupKeyManagement::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case EthernetNetworkDiagnostics::Attributes::ClusterRevision::Id: {
+        case GroupKeyManagement::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -11095,104 +12837,81 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case TimeSynchronization::Id: {
+    case FixedLabel::Id: {
         switch (path.mAttributeId)
         {
-        case TimeSynchronization::Attributes::UTCTime::Id: {
-            chip::app::DataModel::Nullable<uint64_t> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("UTCTime", 1, value);
-        }
-        case TimeSynchronization::Attributes::Granularity::Id: {
-            chip::app::Clusters::TimeSynchronization::GranularityEnum value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Granularity", 1, value);
-        }
-        case TimeSynchronization::Attributes::TimeSource::Id: {
-            chip::app::Clusters::TimeSynchronization::TimeSourceEnum value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TimeSource", 1, value);
-        }
-        case TimeSynchronization::Attributes::TrustedTimeSource::Id: {
-            chip::app::DataModel::Nullable<
-                chip::app::Clusters::TimeSynchronization::Structs::TrustedTimeSourceStruct::DecodableType>
-                value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TrustedTimeSource", 1, value);
-        }
-        case TimeSynchronization::Attributes::DefaultNTP::Id: {
-            chip::app::DataModel::Nullable<chip::CharSpan> value;
+        case FixedLabel::Attributes::LabelList::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::FixedLabel::Structs::LabelStruct::DecodableType> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("DefaultNTP", 1, value);
+            return DataModelLogger::LogValue("LabelList", 1, value);
         }
-        case TimeSynchronization::Attributes::TimeZone::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::TimeSynchronization::Structs::TimeZoneStruct::DecodableType>
-                value;
+        case FixedLabel::Attributes::GeneratedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TimeZone", 1, value);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, FixedLabel::Id);
         }
-        case TimeSynchronization::Attributes::DSTOffset::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::TimeSynchronization::Structs::DSTOffsetStruct::DecodableType>
-                value;
+        case FixedLabel::Attributes::AcceptedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("DSTOffset", 1, value);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, FixedLabel::Id);
         }
-        case TimeSynchronization::Attributes::LocalTime::Id: {
-            chip::app::DataModel::Nullable<uint64_t> value;
+        case FixedLabel::Attributes::EventList::Id: {
+            chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LocalTime", 1, value);
+            return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case TimeSynchronization::Attributes::TimeZoneDatabase::Id: {
-            chip::app::Clusters::TimeSynchronization::TimeZoneDatabaseEnum value;
+        case FixedLabel::Attributes::AttributeList::Id: {
+            chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TimeZoneDatabase", 1, value);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, FixedLabel::Id);
         }
-        case TimeSynchronization::Attributes::NTPServerAvailable::Id: {
-            bool value;
+        case FixedLabel::Attributes::FeatureMap::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NTPServerAvailable", 1, value);
+            return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case TimeSynchronization::Attributes::TimeZoneListMaxSize::Id: {
-            uint8_t value;
+        case FixedLabel::Attributes::ClusterRevision::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TimeZoneListMaxSize", 1, value);
+            return DataModelLogger::LogValue("ClusterRevision", 1, value);
         }
-        case TimeSynchronization::Attributes::DSTOffsetListMaxSize::Id: {
-            uint8_t value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("DSTOffsetListMaxSize", 1, value);
         }
-        case TimeSynchronization::Attributes::SupportsDNSResolve::Id: {
-            bool value;
+        break;
+    }
+    case UserLabel::Id: {
+        switch (path.mAttributeId)
+        {
+        case UserLabel::Attributes::LabelList::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::UserLabel::Structs::LabelStruct::DecodableType> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SupportsDNSResolve", 1, value);
+            return DataModelLogger::LogValue("LabelList", 1, value);
         }
-        case TimeSynchronization::Attributes::GeneratedCommandList::Id: {
+        case UserLabel::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, TimeSynchronization::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, UserLabel::Id);
         }
-        case TimeSynchronization::Attributes::AcceptedCommandList::Id: {
+        case UserLabel::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, TimeSynchronization::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, UserLabel::Id);
         }
-        case TimeSynchronization::Attributes::EventList::Id: {
+        case UserLabel::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case TimeSynchronization::Attributes::AttributeList::Id: {
+        case UserLabel::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, TimeSynchronization::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, UserLabel::Id);
         }
-        case TimeSynchronization::Attributes::FeatureMap::Id: {
+        case UserLabel::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case TimeSynchronization::Attributes::ClusterRevision::Id: {
+        case UserLabel::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -11200,120 +12919,107 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case BridgedDeviceBasicInformation::Id: {
+    case ProxyConfiguration::Id: {
         switch (path.mAttributeId)
         {
-        case BridgedDeviceBasicInformation::Attributes::VendorName::Id: {
-            chip::CharSpan value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("VendorName", 1, value);
-        }
-        case BridgedDeviceBasicInformation::Attributes::VendorID::Id: {
-            chip::VendorId value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("VendorID", 1, value);
-        }
-        case BridgedDeviceBasicInformation::Attributes::ProductName::Id: {
-            chip::CharSpan value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ProductName", 1, value);
-        }
-        case BridgedDeviceBasicInformation::Attributes::ProductID::Id: {
-            uint16_t value;
+        case ProxyConfiguration::Attributes::GeneratedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ProductID", 1, value);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ProxyConfiguration::Id);
         }
-        case BridgedDeviceBasicInformation::Attributes::NodeLabel::Id: {
-            chip::CharSpan value;
+        case ProxyConfiguration::Attributes::AcceptedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NodeLabel", 1, value);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ProxyConfiguration::Id);
         }
-        case BridgedDeviceBasicInformation::Attributes::HardwareVersion::Id: {
-            uint16_t value;
+        case ProxyConfiguration::Attributes::EventList::Id: {
+            chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("HardwareVersion", 1, value);
+            return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case BridgedDeviceBasicInformation::Attributes::HardwareVersionString::Id: {
-            chip::CharSpan value;
+        case ProxyConfiguration::Attributes::AttributeList::Id: {
+            chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("HardwareVersionString", 1, value);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ProxyConfiguration::Id);
         }
-        case BridgedDeviceBasicInformation::Attributes::SoftwareVersion::Id: {
+        case ProxyConfiguration::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SoftwareVersion", 1, value);
+            return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case BridgedDeviceBasicInformation::Attributes::SoftwareVersionString::Id: {
-            chip::CharSpan value;
+        case ProxyConfiguration::Attributes::ClusterRevision::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SoftwareVersionString", 1, value);
+            return DataModelLogger::LogValue("ClusterRevision", 1, value);
         }
-        case BridgedDeviceBasicInformation::Attributes::ManufacturingDate::Id: {
-            chip::CharSpan value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ManufacturingDate", 1, value);
         }
-        case BridgedDeviceBasicInformation::Attributes::PartNumber::Id: {
-            chip::CharSpan value;
+        break;
+    }
+    case ProxyDiscovery::Id: {
+        switch (path.mAttributeId)
+        {
+        case ProxyDiscovery::Attributes::GeneratedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PartNumber", 1, value);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ProxyDiscovery::Id);
         }
-        case BridgedDeviceBasicInformation::Attributes::ProductURL::Id: {
-            chip::CharSpan value;
+        case ProxyDiscovery::Attributes::AcceptedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ProductURL", 1, value);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ProxyDiscovery::Id);
         }
-        case BridgedDeviceBasicInformation::Attributes::ProductLabel::Id: {
-            chip::CharSpan value;
+        case ProxyDiscovery::Attributes::EventList::Id: {
+            chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ProductLabel", 1, value);
+            return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case BridgedDeviceBasicInformation::Attributes::SerialNumber::Id: {
-            chip::CharSpan value;
+        case ProxyDiscovery::Attributes::AttributeList::Id: {
+            chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SerialNumber", 1, value);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ProxyDiscovery::Id);
         }
-        case BridgedDeviceBasicInformation::Attributes::Reachable::Id: {
-            bool value;
+        case ProxyDiscovery::Attributes::FeatureMap::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Reachable", 1, value);
+            return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case BridgedDeviceBasicInformation::Attributes::UniqueID::Id: {
-            chip::CharSpan value;
+        case ProxyDiscovery::Attributes::ClusterRevision::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("UniqueID", 1, value);
+            return DataModelLogger::LogValue("ClusterRevision", 1, value);
         }
-        case BridgedDeviceBasicInformation::Attributes::ProductAppearance::Id: {
-            chip::app::Clusters::BridgedDeviceBasicInformation::Structs::ProductAppearanceStruct::DecodableType value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ProductAppearance", 1, value);
         }
-        case BridgedDeviceBasicInformation::Attributes::GeneratedCommandList::Id: {
+        break;
+    }
+    case ProxyValid::Id: {
+        switch (path.mAttributeId)
+        {
+        case ProxyValid::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, BridgedDeviceBasicInformation::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ProxyValid::Id);
         }
-        case BridgedDeviceBasicInformation::Attributes::AcceptedCommandList::Id: {
+        case ProxyValid::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, BridgedDeviceBasicInformation::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ProxyValid::Id);
         }
-        case BridgedDeviceBasicInformation::Attributes::EventList::Id: {
+        case ProxyValid::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case BridgedDeviceBasicInformation::Attributes::AttributeList::Id: {
+        case ProxyValid::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, BridgedDeviceBasicInformation::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ProxyValid::Id);
         }
-        case BridgedDeviceBasicInformation::Attributes::FeatureMap::Id: {
+        case ProxyValid::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case BridgedDeviceBasicInformation::Attributes::ClusterRevision::Id: {
+        case ProxyValid::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -11321,50 +13027,40 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case Switch::Id: {
+    case BooleanState::Id: {
         switch (path.mAttributeId)
         {
-        case Switch::Attributes::NumberOfPositions::Id: {
-            uint8_t value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NumberOfPositions", 1, value);
-        }
-        case Switch::Attributes::CurrentPosition::Id: {
-            uint8_t value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentPosition", 1, value);
-        }
-        case Switch::Attributes::MultiPressMax::Id: {
-            uint8_t value;
+        case BooleanState::Attributes::StateValue::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MultiPressMax", 1, value);
+            return DataModelLogger::LogValue("StateValue", 1, value);
         }
-        case Switch::Attributes::GeneratedCommandList::Id: {
+        case BooleanState::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, Switch::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, BooleanState::Id);
         }
-        case Switch::Attributes::AcceptedCommandList::Id: {
+        case BooleanState::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, Switch::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, BooleanState::Id);
         }
-        case Switch::Attributes::EventList::Id: {
+        case BooleanState::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case Switch::Attributes::AttributeList::Id: {
+        case BooleanState::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, Switch::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, BooleanState::Id);
         }
-        case Switch::Attributes::FeatureMap::Id: {
+        case BooleanState::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case Switch::Attributes::ClusterRevision::Id: {
+        case BooleanState::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -11372,50 +13068,87 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case AdministratorCommissioning::Id: {
+    case IcdManagement::Id: {
         switch (path.mAttributeId)
         {
-        case AdministratorCommissioning::Attributes::WindowStatus::Id: {
-            chip::app::Clusters::AdministratorCommissioning::CommissioningWindowStatusEnum value;
+        case IcdManagement::Attributes::IdleModeDuration::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("WindowStatus", 1, value);
+            return DataModelLogger::LogValue("IdleModeDuration", 1, value);
         }
-        case AdministratorCommissioning::Attributes::AdminFabricIndex::Id: {
-            chip::app::DataModel::Nullable<chip::FabricIndex> value;
+        case IcdManagement::Attributes::ActiveModeDuration::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AdminFabricIndex", 1, value);
+            return DataModelLogger::LogValue("ActiveModeDuration", 1, value);
         }
-        case AdministratorCommissioning::Attributes::AdminVendorId::Id: {
-            chip::app::DataModel::Nullable<chip::VendorId> value;
+        case IcdManagement::Attributes::ActiveModeThreshold::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AdminVendorId", 1, value);
+            return DataModelLogger::LogValue("ActiveModeThreshold", 1, value);
         }
-        case AdministratorCommissioning::Attributes::GeneratedCommandList::Id: {
+        case IcdManagement::Attributes::RegisteredClients::Id: {
+            chip::app::DataModel::DecodableList<
+                chip::app::Clusters::IcdManagement::Structs::MonitoringRegistrationStruct::DecodableType>
+                value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("RegisteredClients", 1, value);
+        }
+        case IcdManagement::Attributes::ICDCounter::Id: {
+            uint32_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("ICDCounter", 1, value);
+        }
+        case IcdManagement::Attributes::ClientsSupportedPerFabric::Id: {
+            uint16_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("ClientsSupportedPerFabric", 1, value);
+        }
+        case IcdManagement::Attributes::UserActiveModeTriggerHint::Id: {
+            chip::BitMask<chip::app::Clusters::IcdManagement::UserActiveModeTriggerBitmap> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("UserActiveModeTriggerHint", 1, value);
+        }
+        case IcdManagement::Attributes::UserActiveModeTriggerInstruction::Id: {
+            chip::CharSpan value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("UserActiveModeTriggerInstruction", 1, value);
+        }
+        case IcdManagement::Attributes::OperatingMode::Id: {
+            chip::app::Clusters::IcdManagement::OperatingModeEnum value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("OperatingMode", 1, value);
+        }
+        case IcdManagement::Attributes::MaximumCheckInBackOff::Id: {
+            uint32_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("MaximumCheckInBackOff", 1, value);
+        }
+        case IcdManagement::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, AdministratorCommissioning::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, IcdManagement::Id);
         }
-        case AdministratorCommissioning::Attributes::AcceptedCommandList::Id: {
+        case IcdManagement::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, AdministratorCommissioning::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, IcdManagement::Id);
         }
-        case AdministratorCommissioning::Attributes::EventList::Id: {
+        case IcdManagement::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case AdministratorCommissioning::Attributes::AttributeList::Id: {
+        case IcdManagement::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, AdministratorCommissioning::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, IcdManagement::Id);
         }
-        case AdministratorCommissioning::Attributes::FeatureMap::Id: {
+        case IcdManagement::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case AdministratorCommissioning::Attributes::ClusterRevision::Id: {
+        case IcdManagement::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -11423,68 +13156,50 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case OperationalCredentials::Id: {
+    case Timer::Id: {
         switch (path.mAttributeId)
         {
-        case OperationalCredentials::Attributes::NOCs::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::OperationalCredentials::Structs::NOCStruct::DecodableType>
-                value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NOCs", 1, value);
-        }
-        case OperationalCredentials::Attributes::Fabrics::Id: {
-            chip::app::DataModel::DecodableList<
-                chip::app::Clusters::OperationalCredentials::Structs::FabricDescriptorStruct::DecodableType>
-                value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Fabrics", 1, value);
-        }
-        case OperationalCredentials::Attributes::SupportedFabrics::Id: {
-            uint8_t value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SupportedFabrics", 1, value);
-        }
-        case OperationalCredentials::Attributes::CommissionedFabrics::Id: {
-            uint8_t value;
+        case Timer::Attributes::SetTime::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CommissionedFabrics", 1, value);
+            return DataModelLogger::LogValue("SetTime", 1, value);
         }
-        case OperationalCredentials::Attributes::TrustedRootCertificates::Id: {
-            chip::app::DataModel::DecodableList<chip::ByteSpan> value;
+        case Timer::Attributes::TimeRemaining::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TrustedRootCertificates", 1, value);
+            return DataModelLogger::LogValue("TimeRemaining", 1, value);
         }
-        case OperationalCredentials::Attributes::CurrentFabricIndex::Id: {
-            uint8_t value;
+        case Timer::Attributes::TimerState::Id: {
+            chip::app::Clusters::Timer::TimerStatusEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentFabricIndex", 1, value);
+            return DataModelLogger::LogValue("TimerState", 1, value);
         }
-        case OperationalCredentials::Attributes::GeneratedCommandList::Id: {
+        case Timer::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, OperationalCredentials::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, Timer::Id);
         }
-        case OperationalCredentials::Attributes::AcceptedCommandList::Id: {
+        case Timer::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, OperationalCredentials::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, Timer::Id);
         }
-        case OperationalCredentials::Attributes::EventList::Id: {
+        case Timer::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case OperationalCredentials::Attributes::AttributeList::Id: {
+        case Timer::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, OperationalCredentials::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, Timer::Id);
         }
-        case OperationalCredentials::Attributes::FeatureMap::Id: {
+        case Timer::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case OperationalCredentials::Attributes::ClusterRevision::Id: {
+        case Timer::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -11492,57 +13207,67 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case GroupKeyManagement::Id: {
+    case OvenCavityOperationalState::Id: {
         switch (path.mAttributeId)
         {
-        case GroupKeyManagement::Attributes::GroupKeyMap::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::GroupKeyManagement::Structs::GroupKeyMapStruct::DecodableType>
-                value;
+        case OvenCavityOperationalState::Attributes::PhaseList::Id: {
+            chip::app::DataModel::Nullable<chip::app::DataModel::DecodableList<chip::CharSpan>> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("GroupKeyMap", 1, value);
+            return DataModelLogger::LogValue("PhaseList", 1, value);
         }
-        case GroupKeyManagement::Attributes::GroupTable::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::GroupKeyManagement::Structs::GroupInfoMapStruct::DecodableType>
+        case OvenCavityOperationalState::Attributes::CurrentPhase::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("CurrentPhase", 1, value);
+        }
+        case OvenCavityOperationalState::Attributes::CountdownTime::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("CountdownTime", 1, value);
+        }
+        case OvenCavityOperationalState::Attributes::OperationalStateList::Id: {
+            chip::app::DataModel::DecodableList<
+                chip::app::Clusters::OvenCavityOperationalState::Structs::OperationalStateStruct::DecodableType>
                 value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("GroupTable", 1, value);
+            return DataModelLogger::LogValue("OperationalStateList", 1, value);
         }
-        case GroupKeyManagement::Attributes::MaxGroupsPerFabric::Id: {
-            uint16_t value;
+        case OvenCavityOperationalState::Attributes::OperationalState::Id: {
+            chip::app::Clusters::OvenCavityOperationalState::OperationalStateEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MaxGroupsPerFabric", 1, value);
+            return DataModelLogger::LogValue("OperationalState", 1, value);
         }
-        case GroupKeyManagement::Attributes::MaxGroupKeysPerFabric::Id: {
-            uint16_t value;
+        case OvenCavityOperationalState::Attributes::OperationalError::Id: {
+            chip::app::Clusters::OvenCavityOperationalState::Structs::ErrorStateStruct::DecodableType value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MaxGroupKeysPerFabric", 1, value);
+            return DataModelLogger::LogValue("OperationalError", 1, value);
         }
-        case GroupKeyManagement::Attributes::GeneratedCommandList::Id: {
+        case OvenCavityOperationalState::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, GroupKeyManagement::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, OvenCavityOperationalState::Id);
         }
-        case GroupKeyManagement::Attributes::AcceptedCommandList::Id: {
+        case OvenCavityOperationalState::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, GroupKeyManagement::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, OvenCavityOperationalState::Id);
         }
-        case GroupKeyManagement::Attributes::EventList::Id: {
+        case OvenCavityOperationalState::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case GroupKeyManagement::Attributes::AttributeList::Id: {
+        case OvenCavityOperationalState::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, GroupKeyManagement::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, OvenCavityOperationalState::Id);
         }
-        case GroupKeyManagement::Attributes::FeatureMap::Id: {
+        case OvenCavityOperationalState::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case GroupKeyManagement::Attributes::ClusterRevision::Id: {
+        case OvenCavityOperationalState::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -11550,40 +13275,55 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case FixedLabel::Id: {
+    case OvenMode::Id: {
         switch (path.mAttributeId)
         {
-        case FixedLabel::Attributes::LabelList::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::FixedLabel::Structs::LabelStruct::DecodableType> value;
+        case OvenMode::Attributes::SupportedModes::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::OvenMode::Structs::ModeOptionStruct::DecodableType> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LabelList", 1, value);
+            return DataModelLogger::LogValue("SupportedModes", 1, value);
         }
-        case FixedLabel::Attributes::GeneratedCommandList::Id: {
+        case OvenMode::Attributes::CurrentMode::Id: {
+            uint8_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("CurrentMode", 1, value);
+        }
+        case OvenMode::Attributes::StartUpMode::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("StartUpMode", 1, value);
+        }
+        case OvenMode::Attributes::OnMode::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("OnMode", 1, value);
+        }
+        case OvenMode::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, FixedLabel::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, OvenMode::Id);
         }
-        case FixedLabel::Attributes::AcceptedCommandList::Id: {
+        case OvenMode::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, FixedLabel::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, OvenMode::Id);
         }
-        case FixedLabel::Attributes::EventList::Id: {
+        case OvenMode::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case FixedLabel::Attributes::AttributeList::Id: {
+        case OvenMode::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, FixedLabel::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, OvenMode::Id);
         }
-        case FixedLabel::Attributes::FeatureMap::Id: {
+        case OvenMode::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case FixedLabel::Attributes::ClusterRevision::Id: {
+        case OvenMode::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -11591,40 +13331,45 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case UserLabel::Id: {
+    case LaundryDryerControls::Id: {
         switch (path.mAttributeId)
         {
-        case UserLabel::Attributes::LabelList::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::UserLabel::Structs::LabelStruct::DecodableType> value;
+        case LaundryDryerControls::Attributes::SupportedDrynessLevels::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::LaundryDryerControls::DrynessLevelEnum> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LabelList", 1, value);
+            return DataModelLogger::LogValue("SupportedDrynessLevels", 1, value);
+        }
+        case LaundryDryerControls::Attributes::SelectedDrynessLevel::Id: {
+            chip::app::DataModel::Nullable<chip::app::Clusters::LaundryDryerControls::DrynessLevelEnum> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("SelectedDrynessLevel", 1, value);
         }
-        case UserLabel::Attributes::GeneratedCommandList::Id: {
+        case LaundryDryerControls::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, UserLabel::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, LaundryDryerControls::Id);
         }
-        case UserLabel::Attributes::AcceptedCommandList::Id: {
+        case LaundryDryerControls::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, UserLabel::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, LaundryDryerControls::Id);
         }
-        case UserLabel::Attributes::EventList::Id: {
+        case LaundryDryerControls::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case UserLabel::Attributes::AttributeList::Id: {
+        case LaundryDryerControls::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, UserLabel::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, LaundryDryerControls::Id);
         }
-        case UserLabel::Attributes::FeatureMap::Id: {
+        case LaundryDryerControls::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case UserLabel::Attributes::ClusterRevision::Id: {
+        case LaundryDryerControls::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -11632,71 +13377,65 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case ProxyConfiguration::Id: {
+    case ModeSelect::Id: {
         switch (path.mAttributeId)
         {
-        case ProxyConfiguration::Attributes::GeneratedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case ModeSelect::Attributes::Description::Id: {
+            chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ProxyConfiguration::Id);
+            return DataModelLogger::LogValue("Description", 1, value);
         }
-        case ProxyConfiguration::Attributes::AcceptedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case ModeSelect::Attributes::StandardNamespace::Id: {
+            chip::app::DataModel::Nullable<uint16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ProxyConfiguration::Id);
+            return DataModelLogger::LogValue("StandardNamespace", 1, value);
         }
-        case ProxyConfiguration::Attributes::EventList::Id: {
-            chip::app::DataModel::DecodableList<chip::EventId> value;
+        case ModeSelect::Attributes::SupportedModes::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::ModeSelect::Structs::ModeOptionStruct::DecodableType> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EventList", 1, value);
+            return DataModelLogger::LogValue("SupportedModes", 1, value);
         }
-        case ProxyConfiguration::Attributes::AttributeList::Id: {
-            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+        case ModeSelect::Attributes::CurrentMode::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ProxyConfiguration::Id);
+            return DataModelLogger::LogValue("CurrentMode", 1, value);
         }
-        case ProxyConfiguration::Attributes::FeatureMap::Id: {
-            uint32_t value;
+        case ModeSelect::Attributes::StartUpMode::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("FeatureMap", 1, value);
+            return DataModelLogger::LogValue("StartUpMode", 1, value);
         }
-        case ProxyConfiguration::Attributes::ClusterRevision::Id: {
-            uint16_t value;
+        case ModeSelect::Attributes::OnMode::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ClusterRevision", 1, value);
-        }
+            return DataModelLogger::LogValue("OnMode", 1, value);
         }
-        break;
-    }
-    case ProxyDiscovery::Id: {
-        switch (path.mAttributeId)
-        {
-        case ProxyDiscovery::Attributes::GeneratedCommandList::Id: {
+        case ModeSelect::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ProxyDiscovery::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ModeSelect::Id);
         }
-        case ProxyDiscovery::Attributes::AcceptedCommandList::Id: {
+        case ModeSelect::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ProxyDiscovery::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ModeSelect::Id);
         }
-        case ProxyDiscovery::Attributes::EventList::Id: {
+        case ModeSelect::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case ProxyDiscovery::Attributes::AttributeList::Id: {
+        case ModeSelect::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ProxyDiscovery::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ModeSelect::Id);
         }
-        case ProxyDiscovery::Attributes::FeatureMap::Id: {
+        case ModeSelect::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case ProxyDiscovery::Attributes::ClusterRevision::Id: {
+        case ModeSelect::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -11704,35 +13443,56 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case ProxyValid::Id: {
+    case LaundryWasherMode::Id: {
         switch (path.mAttributeId)
         {
-        case ProxyValid::Attributes::GeneratedCommandList::Id: {
+        case LaundryWasherMode::Attributes::SupportedModes::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::LaundryWasherMode::Structs::ModeOptionStruct::DecodableType>
+                value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("SupportedModes", 1, value);
+        }
+        case LaundryWasherMode::Attributes::CurrentMode::Id: {
+            uint8_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("CurrentMode", 1, value);
+        }
+        case LaundryWasherMode::Attributes::StartUpMode::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("StartUpMode", 1, value);
+        }
+        case LaundryWasherMode::Attributes::OnMode::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("OnMode", 1, value);
+        }
+        case LaundryWasherMode::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ProxyValid::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, LaundryWasherMode::Id);
         }
-        case ProxyValid::Attributes::AcceptedCommandList::Id: {
+        case LaundryWasherMode::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ProxyValid::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, LaundryWasherMode::Id);
         }
-        case ProxyValid::Attributes::EventList::Id: {
+        case LaundryWasherMode::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case ProxyValid::Attributes::AttributeList::Id: {
+        case LaundryWasherMode::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ProxyValid::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, LaundryWasherMode::Id);
         }
-        case ProxyValid::Attributes::FeatureMap::Id: {
+        case LaundryWasherMode::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case ProxyValid::Attributes::ClusterRevision::Id: {
+        case LaundryWasherMode::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -11740,40 +13500,59 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case BooleanState::Id: {
+    case RefrigeratorAndTemperatureControlledCabinetMode::Id: {
         switch (path.mAttributeId)
         {
-        case BooleanState::Attributes::StateValue::Id: {
-            bool value;
+        case RefrigeratorAndTemperatureControlledCabinetMode::Attributes::SupportedModes::Id: {
+            chip::app::DataModel::DecodableList<
+                chip::app::Clusters::RefrigeratorAndTemperatureControlledCabinetMode::Structs::ModeOptionStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("StateValue", 1, value);
+            return DataModelLogger::LogValue("SupportedModes", 1, value);
         }
-        case BooleanState::Attributes::GeneratedCommandList::Id: {
+        case RefrigeratorAndTemperatureControlledCabinetMode::Attributes::CurrentMode::Id: {
+            uint8_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("CurrentMode", 1, value);
+        }
+        case RefrigeratorAndTemperatureControlledCabinetMode::Attributes::StartUpMode::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("StartUpMode", 1, value);
+        }
+        case RefrigeratorAndTemperatureControlledCabinetMode::Attributes::OnMode::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("OnMode", 1, value);
+        }
+        case RefrigeratorAndTemperatureControlledCabinetMode::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, BooleanState::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value,
+                                                          RefrigeratorAndTemperatureControlledCabinetMode::Id);
         }
-        case BooleanState::Attributes::AcceptedCommandList::Id: {
+        case RefrigeratorAndTemperatureControlledCabinetMode::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, BooleanState::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value,
+                                                         RefrigeratorAndTemperatureControlledCabinetMode::Id);
         }
-        case BooleanState::Attributes::EventList::Id: {
+        case RefrigeratorAndTemperatureControlledCabinetMode::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case BooleanState::Attributes::AttributeList::Id: {
+        case RefrigeratorAndTemperatureControlledCabinetMode::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, BooleanState::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, RefrigeratorAndTemperatureControlledCabinetMode::Id);
         }
-        case BooleanState::Attributes::FeatureMap::Id: {
+        case RefrigeratorAndTemperatureControlledCabinetMode::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case BooleanState::Attributes::ClusterRevision::Id: {
+        case RefrigeratorAndTemperatureControlledCabinetMode::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -11781,138 +13560,101 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case IcdManagement::Id: {
+    case LaundryWasherControls::Id: {
         switch (path.mAttributeId)
         {
-        case IcdManagement::Attributes::IdleModeDuration::Id: {
-            uint32_t value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("IdleModeDuration", 1, value);
-        }
-        case IcdManagement::Attributes::ActiveModeDuration::Id: {
-            uint32_t value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ActiveModeDuration", 1, value);
-        }
-        case IcdManagement::Attributes::ActiveModeThreshold::Id: {
-            uint16_t value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ActiveModeThreshold", 1, value);
-        }
-        case IcdManagement::Attributes::RegisteredClients::Id: {
-            chip::app::DataModel::DecodableList<
-                chip::app::Clusters::IcdManagement::Structs::MonitoringRegistrationStruct::DecodableType>
-                value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("RegisteredClients", 1, value);
-        }
-        case IcdManagement::Attributes::ICDCounter::Id: {
-            uint32_t value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ICDCounter", 1, value);
-        }
-        case IcdManagement::Attributes::ClientsSupportedPerFabric::Id: {
-            uint16_t value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ClientsSupportedPerFabric", 1, value);
-        }
-        case IcdManagement::Attributes::UserActiveModeTriggerHint::Id: {
-            chip::BitMask<chip::app::Clusters::IcdManagement::UserActiveModeTriggerBitmap> value;
+        case LaundryWasherControls::Attributes::SpinSpeeds::Id: {
+            chip::app::DataModel::DecodableList<chip::CharSpan> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("UserActiveModeTriggerHint", 1, value);
+            return DataModelLogger::LogValue("SpinSpeeds", 1, value);
         }
-        case IcdManagement::Attributes::UserActiveModeTriggerInstruction::Id: {
-            chip::CharSpan value;
+        case LaundryWasherControls::Attributes::SpinSpeedCurrent::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("UserActiveModeTriggerInstruction", 1, value);
+            return DataModelLogger::LogValue("SpinSpeedCurrent", 1, value);
         }
-        case IcdManagement::Attributes::OperatingMode::Id: {
-            chip::app::Clusters::IcdManagement::OperatingModeEnum value;
+        case LaundryWasherControls::Attributes::NumberOfRinses::Id: {
+            chip::app::Clusters::LaundryWasherControls::NumberOfRinsesEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OperatingMode", 1, value);
+            return DataModelLogger::LogValue("NumberOfRinses", 1, value);
         }
-        case IcdManagement::Attributes::MaximumCheckInBackOff::Id: {
-            uint32_t value;
+        case LaundryWasherControls::Attributes::SupportedRinses::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::LaundryWasherControls::NumberOfRinsesEnum> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MaximumCheckInBackOff", 1, value);
+            return DataModelLogger::LogValue("SupportedRinses", 1, value);
         }
-        case IcdManagement::Attributes::GeneratedCommandList::Id: {
+        case LaundryWasherControls::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, IcdManagement::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, LaundryWasherControls::Id);
         }
-        case IcdManagement::Attributes::AcceptedCommandList::Id: {
+        case LaundryWasherControls::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, IcdManagement::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, LaundryWasherControls::Id);
         }
-        case IcdManagement::Attributes::EventList::Id: {
+        case LaundryWasherControls::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case IcdManagement::Attributes::AttributeList::Id: {
+        case LaundryWasherControls::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, IcdManagement::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, LaundryWasherControls::Id);
         }
-        case IcdManagement::Attributes::FeatureMap::Id: {
+        case LaundryWasherControls::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case IcdManagement::Attributes::ClusterRevision::Id: {
+        case LaundryWasherControls::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
         }
-        }
-        break;
-    }
-    case Timer::Id: {
-        switch (path.mAttributeId)
-        {
-        case Timer::Attributes::SetTime::Id: {
-            uint32_t value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SetTime", 1, value);
-        }
-        case Timer::Attributes::TimeRemaining::Id: {
-            uint32_t value;
+        }
+        break;
+    }
+    case RvcRunMode::Id: {
+        switch (path.mAttributeId)
+        {
+        case RvcRunMode::Attributes::SupportedModes::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::RvcRunMode::Structs::ModeOptionStruct::DecodableType> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TimeRemaining", 1, value);
+            return DataModelLogger::LogValue("SupportedModes", 1, value);
         }
-        case Timer::Attributes::TimerState::Id: {
-            chip::app::Clusters::Timer::TimerStatusEnum value;
+        case RvcRunMode::Attributes::CurrentMode::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TimerState", 1, value);
+            return DataModelLogger::LogValue("CurrentMode", 1, value);
         }
-        case Timer::Attributes::GeneratedCommandList::Id: {
+        case RvcRunMode::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, Timer::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, RvcRunMode::Id);
         }
-        case Timer::Attributes::AcceptedCommandList::Id: {
+        case RvcRunMode::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, Timer::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, RvcRunMode::Id);
         }
-        case Timer::Attributes::EventList::Id: {
+        case RvcRunMode::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case Timer::Attributes::AttributeList::Id: {
+        case RvcRunMode::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, Timer::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, RvcRunMode::Id);
         }
-        case Timer::Attributes::FeatureMap::Id: {
+        case RvcRunMode::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case Timer::Attributes::ClusterRevision::Id: {
+        case RvcRunMode::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -11920,67 +13662,45 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case OvenCavityOperationalState::Id: {
+    case RvcCleanMode::Id: {
         switch (path.mAttributeId)
         {
-        case OvenCavityOperationalState::Attributes::PhaseList::Id: {
-            chip::app::DataModel::Nullable<chip::app::DataModel::DecodableList<chip::CharSpan>> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PhaseList", 1, value);
-        }
-        case OvenCavityOperationalState::Attributes::CurrentPhase::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentPhase", 1, value);
-        }
-        case OvenCavityOperationalState::Attributes::CountdownTime::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CountdownTime", 1, value);
-        }
-        case OvenCavityOperationalState::Attributes::OperationalStateList::Id: {
-            chip::app::DataModel::DecodableList<
-                chip::app::Clusters::OvenCavityOperationalState::Structs::OperationalStateStruct::DecodableType>
-                value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OperationalStateList", 1, value);
-        }
-        case OvenCavityOperationalState::Attributes::OperationalState::Id: {
-            chip::app::Clusters::OvenCavityOperationalState::OperationalStateEnum value;
+        case RvcCleanMode::Attributes::SupportedModes::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::RvcCleanMode::Structs::ModeOptionStruct::DecodableType> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OperationalState", 1, value);
+            return DataModelLogger::LogValue("SupportedModes", 1, value);
         }
-        case OvenCavityOperationalState::Attributes::OperationalError::Id: {
-            chip::app::Clusters::OvenCavityOperationalState::Structs::ErrorStateStruct::DecodableType value;
+        case RvcCleanMode::Attributes::CurrentMode::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OperationalError", 1, value);
+            return DataModelLogger::LogValue("CurrentMode", 1, value);
         }
-        case OvenCavityOperationalState::Attributes::GeneratedCommandList::Id: {
+        case RvcCleanMode::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, OvenCavityOperationalState::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, RvcCleanMode::Id);
         }
-        case OvenCavityOperationalState::Attributes::AcceptedCommandList::Id: {
+        case RvcCleanMode::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, OvenCavityOperationalState::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, RvcCleanMode::Id);
         }
-        case OvenCavityOperationalState::Attributes::EventList::Id: {
+        case RvcCleanMode::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case OvenCavityOperationalState::Attributes::AttributeList::Id: {
+        case RvcCleanMode::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, OvenCavityOperationalState::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, RvcCleanMode::Id);
         }
-        case OvenCavityOperationalState::Attributes::FeatureMap::Id: {
+        case RvcCleanMode::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case OvenCavityOperationalState::Attributes::ClusterRevision::Id: {
+        case RvcCleanMode::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -11988,55 +13708,65 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case OvenMode::Id: {
+    case TemperatureControl::Id: {
         switch (path.mAttributeId)
         {
-        case OvenMode::Attributes::SupportedModes::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::OvenMode::Structs::ModeOptionStruct::DecodableType> value;
+        case TemperatureControl::Attributes::TemperatureSetpoint::Id: {
+            int16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SupportedModes", 1, value);
+            return DataModelLogger::LogValue("TemperatureSetpoint", 1, value);
         }
-        case OvenMode::Attributes::CurrentMode::Id: {
-            uint8_t value;
+        case TemperatureControl::Attributes::MinTemperature::Id: {
+            int16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentMode", 1, value);
+            return DataModelLogger::LogValue("MinTemperature", 1, value);
         }
-        case OvenMode::Attributes::StartUpMode::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case TemperatureControl::Attributes::MaxTemperature::Id: {
+            int16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("StartUpMode", 1, value);
+            return DataModelLogger::LogValue("MaxTemperature", 1, value);
         }
-        case OvenMode::Attributes::OnMode::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case TemperatureControl::Attributes::Step::Id: {
+            int16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OnMode", 1, value);
+            return DataModelLogger::LogValue("Step", 1, value);
         }
-        case OvenMode::Attributes::GeneratedCommandList::Id: {
+        case TemperatureControl::Attributes::SelectedTemperatureLevel::Id: {
+            uint8_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("SelectedTemperatureLevel", 1, value);
+        }
+        case TemperatureControl::Attributes::SupportedTemperatureLevels::Id: {
+            chip::app::DataModel::DecodableList<chip::CharSpan> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("SupportedTemperatureLevels", 1, value);
+        }
+        case TemperatureControl::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, OvenMode::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, TemperatureControl::Id);
         }
-        case OvenMode::Attributes::AcceptedCommandList::Id: {
+        case TemperatureControl::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, OvenMode::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, TemperatureControl::Id);
         }
-        case OvenMode::Attributes::EventList::Id: {
+        case TemperatureControl::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case OvenMode::Attributes::AttributeList::Id: {
+        case TemperatureControl::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, OvenMode::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, TemperatureControl::Id);
         }
-        case OvenMode::Attributes::FeatureMap::Id: {
+        case TemperatureControl::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case OvenMode::Attributes::ClusterRevision::Id: {
+        case TemperatureControl::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -12044,45 +13774,50 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case LaundryDryerControls::Id: {
+    case RefrigeratorAlarm::Id: {
         switch (path.mAttributeId)
         {
-        case LaundryDryerControls::Attributes::SupportedDrynessLevels::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::LaundryDryerControls::DrynessLevelEnum> value;
+        case RefrigeratorAlarm::Attributes::Mask::Id: {
+            chip::BitMask<chip::app::Clusters::RefrigeratorAlarm::AlarmBitmap> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SupportedDrynessLevels", 1, value);
+            return DataModelLogger::LogValue("Mask", 1, value);
         }
-        case LaundryDryerControls::Attributes::SelectedDrynessLevel::Id: {
-            chip::app::DataModel::Nullable<chip::app::Clusters::LaundryDryerControls::DrynessLevelEnum> value;
+        case RefrigeratorAlarm::Attributes::State::Id: {
+            chip::BitMask<chip::app::Clusters::RefrigeratorAlarm::AlarmBitmap> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SelectedDrynessLevel", 1, value);
+            return DataModelLogger::LogValue("State", 1, value);
         }
-        case LaundryDryerControls::Attributes::GeneratedCommandList::Id: {
+        case RefrigeratorAlarm::Attributes::Supported::Id: {
+            chip::BitMask<chip::app::Clusters::RefrigeratorAlarm::AlarmBitmap> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("Supported", 1, value);
+        }
+        case RefrigeratorAlarm::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, LaundryDryerControls::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, RefrigeratorAlarm::Id);
         }
-        case LaundryDryerControls::Attributes::AcceptedCommandList::Id: {
+        case RefrigeratorAlarm::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, LaundryDryerControls::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, RefrigeratorAlarm::Id);
         }
-        case LaundryDryerControls::Attributes::EventList::Id: {
+        case RefrigeratorAlarm::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case LaundryDryerControls::Attributes::AttributeList::Id: {
+        case RefrigeratorAlarm::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, LaundryDryerControls::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, RefrigeratorAlarm::Id);
         }
-        case LaundryDryerControls::Attributes::FeatureMap::Id: {
+        case RefrigeratorAlarm::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case LaundryDryerControls::Attributes::ClusterRevision::Id: {
+        case RefrigeratorAlarm::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -12090,65 +13825,56 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case ModeSelect::Id: {
+    case DishwasherMode::Id: {
         switch (path.mAttributeId)
         {
-        case ModeSelect::Attributes::Description::Id: {
-            chip::CharSpan value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Description", 1, value);
-        }
-        case ModeSelect::Attributes::StandardNamespace::Id: {
-            chip::app::DataModel::Nullable<uint16_t> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("StandardNamespace", 1, value);
-        }
-        case ModeSelect::Attributes::SupportedModes::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::ModeSelect::Structs::ModeOptionStruct::DecodableType> value;
+        case DishwasherMode::Attributes::SupportedModes::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::DishwasherMode::Structs::ModeOptionStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("SupportedModes", 1, value);
         }
-        case ModeSelect::Attributes::CurrentMode::Id: {
+        case DishwasherMode::Attributes::CurrentMode::Id: {
             uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("CurrentMode", 1, value);
         }
-        case ModeSelect::Attributes::StartUpMode::Id: {
+        case DishwasherMode::Attributes::StartUpMode::Id: {
             chip::app::DataModel::Nullable<uint8_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("StartUpMode", 1, value);
         }
-        case ModeSelect::Attributes::OnMode::Id: {
+        case DishwasherMode::Attributes::OnMode::Id: {
             chip::app::DataModel::Nullable<uint8_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("OnMode", 1, value);
         }
-        case ModeSelect::Attributes::GeneratedCommandList::Id: {
+        case DishwasherMode::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ModeSelect::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, DishwasherMode::Id);
         }
-        case ModeSelect::Attributes::AcceptedCommandList::Id: {
+        case DishwasherMode::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ModeSelect::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, DishwasherMode::Id);
         }
-        case ModeSelect::Attributes::EventList::Id: {
+        case DishwasherMode::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case ModeSelect::Attributes::AttributeList::Id: {
+        case DishwasherMode::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ModeSelect::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, DishwasherMode::Id);
         }
-        case ModeSelect::Attributes::FeatureMap::Id: {
+        case DishwasherMode::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case ModeSelect::Attributes::ClusterRevision::Id: {
+        case DishwasherMode::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -12156,56 +13882,40 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case LaundryWasherMode::Id: {
+    case AirQuality::Id: {
         switch (path.mAttributeId)
         {
-        case LaundryWasherMode::Attributes::SupportedModes::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::LaundryWasherMode::Structs::ModeOptionStruct::DecodableType>
-                value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SupportedModes", 1, value);
-        }
-        case LaundryWasherMode::Attributes::CurrentMode::Id: {
-            uint8_t value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentMode", 1, value);
-        }
-        case LaundryWasherMode::Attributes::StartUpMode::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("StartUpMode", 1, value);
-        }
-        case LaundryWasherMode::Attributes::OnMode::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case AirQuality::Attributes::AirQuality::Id: {
+            chip::app::Clusters::AirQuality::AirQualityEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OnMode", 1, value);
+            return DataModelLogger::LogValue("AirQuality", 1, value);
         }
-        case LaundryWasherMode::Attributes::GeneratedCommandList::Id: {
+        case AirQuality::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, LaundryWasherMode::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, AirQuality::Id);
         }
-        case LaundryWasherMode::Attributes::AcceptedCommandList::Id: {
+        case AirQuality::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, LaundryWasherMode::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, AirQuality::Id);
         }
-        case LaundryWasherMode::Attributes::EventList::Id: {
+        case AirQuality::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case LaundryWasherMode::Attributes::AttributeList::Id: {
+        case AirQuality::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, LaundryWasherMode::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, AirQuality::Id);
         }
-        case LaundryWasherMode::Attributes::FeatureMap::Id: {
+        case AirQuality::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case LaundryWasherMode::Attributes::ClusterRevision::Id: {
+        case AirQuality::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -12213,115 +13923,100 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case RefrigeratorAndTemperatureControlledCabinetMode::Id: {
+    case SmokeCoAlarm::Id: {
         switch (path.mAttributeId)
         {
-        case RefrigeratorAndTemperatureControlledCabinetMode::Attributes::SupportedModes::Id: {
-            chip::app::DataModel::DecodableList<
-                chip::app::Clusters::RefrigeratorAndTemperatureControlledCabinetMode::Structs::ModeOptionStruct::DecodableType>
-                value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SupportedModes", 1, value);
-        }
-        case RefrigeratorAndTemperatureControlledCabinetMode::Attributes::CurrentMode::Id: {
-            uint8_t value;
+        case SmokeCoAlarm::Attributes::ExpressedState::Id: {
+            chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentMode", 1, value);
+            return DataModelLogger::LogValue("ExpressedState", 1, value);
         }
-        case RefrigeratorAndTemperatureControlledCabinetMode::Attributes::StartUpMode::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case SmokeCoAlarm::Attributes::SmokeState::Id: {
+            chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("StartUpMode", 1, value);
+            return DataModelLogger::LogValue("SmokeState", 1, value);
         }
-        case RefrigeratorAndTemperatureControlledCabinetMode::Attributes::OnMode::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case SmokeCoAlarm::Attributes::COState::Id: {
+            chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OnMode", 1, value);
+            return DataModelLogger::LogValue("COState", 1, value);
         }
-        case RefrigeratorAndTemperatureControlledCabinetMode::Attributes::GeneratedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case SmokeCoAlarm::Attributes::BatteryAlert::Id: {
+            chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value,
-                                                          RefrigeratorAndTemperatureControlledCabinetMode::Id);
+            return DataModelLogger::LogValue("BatteryAlert", 1, value);
         }
-        case RefrigeratorAndTemperatureControlledCabinetMode::Attributes::AcceptedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case SmokeCoAlarm::Attributes::DeviceMuted::Id: {
+            chip::app::Clusters::SmokeCoAlarm::MuteStateEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value,
-                                                         RefrigeratorAndTemperatureControlledCabinetMode::Id);
+            return DataModelLogger::LogValue("DeviceMuted", 1, value);
         }
-        case RefrigeratorAndTemperatureControlledCabinetMode::Attributes::EventList::Id: {
-            chip::app::DataModel::DecodableList<chip::EventId> value;
+        case SmokeCoAlarm::Attributes::TestInProgress::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EventList", 1, value);
+            return DataModelLogger::LogValue("TestInProgress", 1, value);
         }
-        case RefrigeratorAndTemperatureControlledCabinetMode::Attributes::AttributeList::Id: {
-            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+        case SmokeCoAlarm::Attributes::HardwareFaultAlert::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, RefrigeratorAndTemperatureControlledCabinetMode::Id);
+            return DataModelLogger::LogValue("HardwareFaultAlert", 1, value);
         }
-        case RefrigeratorAndTemperatureControlledCabinetMode::Attributes::FeatureMap::Id: {
-            uint32_t value;
+        case SmokeCoAlarm::Attributes::EndOfServiceAlert::Id: {
+            chip::app::Clusters::SmokeCoAlarm::EndOfServiceEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("FeatureMap", 1, value);
+            return DataModelLogger::LogValue("EndOfServiceAlert", 1, value);
         }
-        case RefrigeratorAndTemperatureControlledCabinetMode::Attributes::ClusterRevision::Id: {
-            uint16_t value;
+        case SmokeCoAlarm::Attributes::InterconnectSmokeAlarm::Id: {
+            chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ClusterRevision", 1, value);
-        }
+            return DataModelLogger::LogValue("InterconnectSmokeAlarm", 1, value);
         }
-        break;
-    }
-    case LaundryWasherControls::Id: {
-        switch (path.mAttributeId)
-        {
-        case LaundryWasherControls::Attributes::SpinSpeeds::Id: {
-            chip::app::DataModel::DecodableList<chip::CharSpan> value;
+        case SmokeCoAlarm::Attributes::InterconnectCOAlarm::Id: {
+            chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SpinSpeeds", 1, value);
+            return DataModelLogger::LogValue("InterconnectCOAlarm", 1, value);
         }
-        case LaundryWasherControls::Attributes::SpinSpeedCurrent::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case SmokeCoAlarm::Attributes::ContaminationState::Id: {
+            chip::app::Clusters::SmokeCoAlarm::ContaminationStateEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SpinSpeedCurrent", 1, value);
+            return DataModelLogger::LogValue("ContaminationState", 1, value);
         }
-        case LaundryWasherControls::Attributes::NumberOfRinses::Id: {
-            chip::app::Clusters::LaundryWasherControls::NumberOfRinsesEnum value;
+        case SmokeCoAlarm::Attributes::SmokeSensitivityLevel::Id: {
+            chip::app::Clusters::SmokeCoAlarm::SensitivityEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NumberOfRinses", 1, value);
+            return DataModelLogger::LogValue("SmokeSensitivityLevel", 1, value);
         }
-        case LaundryWasherControls::Attributes::SupportedRinses::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::LaundryWasherControls::NumberOfRinsesEnum> value;
+        case SmokeCoAlarm::Attributes::ExpiryDate::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SupportedRinses", 1, value);
+            return DataModelLogger::LogValue("ExpiryDate", 1, value);
         }
-        case LaundryWasherControls::Attributes::GeneratedCommandList::Id: {
+        case SmokeCoAlarm::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, LaundryWasherControls::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, SmokeCoAlarm::Id);
         }
-        case LaundryWasherControls::Attributes::AcceptedCommandList::Id: {
+        case SmokeCoAlarm::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, LaundryWasherControls::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, SmokeCoAlarm::Id);
         }
-        case LaundryWasherControls::Attributes::EventList::Id: {
+        case SmokeCoAlarm::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case LaundryWasherControls::Attributes::AttributeList::Id: {
+        case SmokeCoAlarm::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, LaundryWasherControls::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, SmokeCoAlarm::Id);
         }
-        case LaundryWasherControls::Attributes::FeatureMap::Id: {
+        case SmokeCoAlarm::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case LaundryWasherControls::Attributes::ClusterRevision::Id: {
+        case SmokeCoAlarm::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -12329,45 +14024,55 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case RvcRunMode::Id: {
+    case DishwasherAlarm::Id: {
         switch (path.mAttributeId)
         {
-        case RvcRunMode::Attributes::SupportedModes::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::RvcRunMode::Structs::ModeOptionStruct::DecodableType> value;
+        case DishwasherAlarm::Attributes::Mask::Id: {
+            chip::BitMask<chip::app::Clusters::DishwasherAlarm::AlarmBitmap> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SupportedModes", 1, value);
+            return DataModelLogger::LogValue("Mask", 1, value);
         }
-        case RvcRunMode::Attributes::CurrentMode::Id: {
-            uint8_t value;
+        case DishwasherAlarm::Attributes::Latch::Id: {
+            chip::BitMask<chip::app::Clusters::DishwasherAlarm::AlarmBitmap> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentMode", 1, value);
+            return DataModelLogger::LogValue("Latch", 1, value);
         }
-        case RvcRunMode::Attributes::GeneratedCommandList::Id: {
+        case DishwasherAlarm::Attributes::State::Id: {
+            chip::BitMask<chip::app::Clusters::DishwasherAlarm::AlarmBitmap> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("State", 1, value);
+        }
+        case DishwasherAlarm::Attributes::Supported::Id: {
+            chip::BitMask<chip::app::Clusters::DishwasherAlarm::AlarmBitmap> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("Supported", 1, value);
+        }
+        case DishwasherAlarm::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, RvcRunMode::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, DishwasherAlarm::Id);
         }
-        case RvcRunMode::Attributes::AcceptedCommandList::Id: {
+        case DishwasherAlarm::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, RvcRunMode::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, DishwasherAlarm::Id);
         }
-        case RvcRunMode::Attributes::EventList::Id: {
+        case DishwasherAlarm::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case RvcRunMode::Attributes::AttributeList::Id: {
+        case DishwasherAlarm::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, RvcRunMode::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, DishwasherAlarm::Id);
         }
-        case RvcRunMode::Attributes::FeatureMap::Id: {
+        case DishwasherAlarm::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case RvcRunMode::Attributes::ClusterRevision::Id: {
+        case DishwasherAlarm::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -12375,45 +14080,46 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case RvcCleanMode::Id: {
+    case MicrowaveOvenMode::Id: {
         switch (path.mAttributeId)
         {
-        case RvcCleanMode::Attributes::SupportedModes::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::RvcCleanMode::Structs::ModeOptionStruct::DecodableType> value;
+        case MicrowaveOvenMode::Attributes::SupportedModes::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::MicrowaveOvenMode::Structs::ModeOptionStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("SupportedModes", 1, value);
         }
-        case RvcCleanMode::Attributes::CurrentMode::Id: {
+        case MicrowaveOvenMode::Attributes::CurrentMode::Id: {
             uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("CurrentMode", 1, value);
         }
-        case RvcCleanMode::Attributes::GeneratedCommandList::Id: {
+        case MicrowaveOvenMode::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, RvcCleanMode::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, MicrowaveOvenMode::Id);
         }
-        case RvcCleanMode::Attributes::AcceptedCommandList::Id: {
+        case MicrowaveOvenMode::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, RvcCleanMode::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, MicrowaveOvenMode::Id);
         }
-        case RvcCleanMode::Attributes::EventList::Id: {
+        case MicrowaveOvenMode::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case RvcCleanMode::Attributes::AttributeList::Id: {
+        case MicrowaveOvenMode::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, RvcCleanMode::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, MicrowaveOvenMode::Id);
         }
-        case RvcCleanMode::Attributes::FeatureMap::Id: {
+        case MicrowaveOvenMode::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case RvcCleanMode::Attributes::ClusterRevision::Id: {
+        case MicrowaveOvenMode::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -12421,65 +14127,80 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case TemperatureControl::Id: {
+    case MicrowaveOvenControl::Id: {
         switch (path.mAttributeId)
         {
-        case TemperatureControl::Attributes::TemperatureSetpoint::Id: {
-            int16_t value;
+        case MicrowaveOvenControl::Attributes::CookTime::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TemperatureSetpoint", 1, value);
+            return DataModelLogger::LogValue("CookTime", 1, value);
         }
-        case TemperatureControl::Attributes::MinTemperature::Id: {
-            int16_t value;
+        case MicrowaveOvenControl::Attributes::MaxCookTime::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MinTemperature", 1, value);
+            return DataModelLogger::LogValue("MaxCookTime", 1, value);
         }
-        case TemperatureControl::Attributes::MaxTemperature::Id: {
-            int16_t value;
+        case MicrowaveOvenControl::Attributes::PowerSetting::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MaxTemperature", 1, value);
+            return DataModelLogger::LogValue("PowerSetting", 1, value);
         }
-        case TemperatureControl::Attributes::Step::Id: {
-            int16_t value;
+        case MicrowaveOvenControl::Attributes::MinPower::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Step", 1, value);
+            return DataModelLogger::LogValue("MinPower", 1, value);
         }
-        case TemperatureControl::Attributes::SelectedTemperatureLevel::Id: {
+        case MicrowaveOvenControl::Attributes::MaxPower::Id: {
             uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SelectedTemperatureLevel", 1, value);
+            return DataModelLogger::LogValue("MaxPower", 1, value);
         }
-        case TemperatureControl::Attributes::SupportedTemperatureLevels::Id: {
-            chip::app::DataModel::DecodableList<chip::CharSpan> value;
+        case MicrowaveOvenControl::Attributes::PowerStep::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SupportedTemperatureLevels", 1, value);
+            return DataModelLogger::LogValue("PowerStep", 1, value);
         }
-        case TemperatureControl::Attributes::GeneratedCommandList::Id: {
+        case MicrowaveOvenControl::Attributes::SupportedWatts::Id: {
+            chip::app::DataModel::DecodableList<uint16_t> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("SupportedWatts", 1, value);
+        }
+        case MicrowaveOvenControl::Attributes::SelectedWattIndex::Id: {
+            uint8_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("SelectedWattIndex", 1, value);
+        }
+        case MicrowaveOvenControl::Attributes::WattRating::Id: {
+            uint16_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("WattRating", 1, value);
+        }
+        case MicrowaveOvenControl::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, TemperatureControl::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, MicrowaveOvenControl::Id);
         }
-        case TemperatureControl::Attributes::AcceptedCommandList::Id: {
+        case MicrowaveOvenControl::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, TemperatureControl::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, MicrowaveOvenControl::Id);
         }
-        case TemperatureControl::Attributes::EventList::Id: {
+        case MicrowaveOvenControl::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case TemperatureControl::Attributes::AttributeList::Id: {
+        case MicrowaveOvenControl::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, TemperatureControl::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, MicrowaveOvenControl::Id);
         }
-        case TemperatureControl::Attributes::FeatureMap::Id: {
+        case MicrowaveOvenControl::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case TemperatureControl::Attributes::ClusterRevision::Id: {
+        case MicrowaveOvenControl::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -12487,50 +14208,67 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case RefrigeratorAlarm::Id: {
+    case OperationalState::Id: {
         switch (path.mAttributeId)
         {
-        case RefrigeratorAlarm::Attributes::Mask::Id: {
-            chip::BitMask<chip::app::Clusters::RefrigeratorAlarm::AlarmBitmap> value;
+        case OperationalState::Attributes::PhaseList::Id: {
+            chip::app::DataModel::Nullable<chip::app::DataModel::DecodableList<chip::CharSpan>> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Mask", 1, value);
+            return DataModelLogger::LogValue("PhaseList", 1, value);
         }
-        case RefrigeratorAlarm::Attributes::State::Id: {
-            chip::BitMask<chip::app::Clusters::RefrigeratorAlarm::AlarmBitmap> value;
+        case OperationalState::Attributes::CurrentPhase::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("State", 1, value);
+            return DataModelLogger::LogValue("CurrentPhase", 1, value);
         }
-        case RefrigeratorAlarm::Attributes::Supported::Id: {
-            chip::BitMask<chip::app::Clusters::RefrigeratorAlarm::AlarmBitmap> value;
+        case OperationalState::Attributes::CountdownTime::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Supported", 1, value);
+            return DataModelLogger::LogValue("CountdownTime", 1, value);
         }
-        case RefrigeratorAlarm::Attributes::GeneratedCommandList::Id: {
+        case OperationalState::Attributes::OperationalStateList::Id: {
+            chip::app::DataModel::DecodableList<
+                chip::app::Clusters::OperationalState::Structs::OperationalStateStruct::DecodableType>
+                value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("OperationalStateList", 1, value);
+        }
+        case OperationalState::Attributes::OperationalState::Id: {
+            chip::app::Clusters::OperationalState::OperationalStateEnum value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("OperationalState", 1, value);
+        }
+        case OperationalState::Attributes::OperationalError::Id: {
+            chip::app::Clusters::OperationalState::Structs::ErrorStateStruct::DecodableType value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("OperationalError", 1, value);
+        }
+        case OperationalState::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, RefrigeratorAlarm::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, OperationalState::Id);
         }
-        case RefrigeratorAlarm::Attributes::AcceptedCommandList::Id: {
+        case OperationalState::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, RefrigeratorAlarm::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, OperationalState::Id);
         }
-        case RefrigeratorAlarm::Attributes::EventList::Id: {
+        case OperationalState::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case RefrigeratorAlarm::Attributes::AttributeList::Id: {
+        case OperationalState::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, RefrigeratorAlarm::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, OperationalState::Id);
         }
-        case RefrigeratorAlarm::Attributes::FeatureMap::Id: {
+        case OperationalState::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case RefrigeratorAlarm::Attributes::ClusterRevision::Id: {
+        case OperationalState::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -12538,56 +14276,67 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case DishwasherMode::Id: {
+    case RvcOperationalState::Id: {
         switch (path.mAttributeId)
         {
-        case DishwasherMode::Attributes::SupportedModes::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::DishwasherMode::Structs::ModeOptionStruct::DecodableType>
-                value;
+        case RvcOperationalState::Attributes::PhaseList::Id: {
+            chip::app::DataModel::Nullable<chip::app::DataModel::DecodableList<chip::CharSpan>> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SupportedModes", 1, value);
+            return DataModelLogger::LogValue("PhaseList", 1, value);
         }
-        case DishwasherMode::Attributes::CurrentMode::Id: {
-            uint8_t value;
+        case RvcOperationalState::Attributes::CurrentPhase::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentMode", 1, value);
+            return DataModelLogger::LogValue("CurrentPhase", 1, value);
         }
-        case DishwasherMode::Attributes::StartUpMode::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case RvcOperationalState::Attributes::CountdownTime::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("StartUpMode", 1, value);
+            return DataModelLogger::LogValue("CountdownTime", 1, value);
         }
-        case DishwasherMode::Attributes::OnMode::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case RvcOperationalState::Attributes::OperationalStateList::Id: {
+            chip::app::DataModel::DecodableList<
+                chip::app::Clusters::RvcOperationalState::Structs::OperationalStateStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OnMode", 1, value);
+            return DataModelLogger::LogValue("OperationalStateList", 1, value);
         }
-        case DishwasherMode::Attributes::GeneratedCommandList::Id: {
+        case RvcOperationalState::Attributes::OperationalState::Id: {
+            uint8_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("OperationalState", 1, value);
+        }
+        case RvcOperationalState::Attributes::OperationalError::Id: {
+            chip::app::Clusters::RvcOperationalState::Structs::ErrorStateStruct::DecodableType value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("OperationalError", 1, value);
+        }
+        case RvcOperationalState::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, DishwasherMode::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, RvcOperationalState::Id);
         }
-        case DishwasherMode::Attributes::AcceptedCommandList::Id: {
+        case RvcOperationalState::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, DishwasherMode::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, RvcOperationalState::Id);
         }
-        case DishwasherMode::Attributes::EventList::Id: {
+        case RvcOperationalState::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case DishwasherMode::Attributes::AttributeList::Id: {
+        case RvcOperationalState::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, DishwasherMode::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, RvcOperationalState::Id);
         }
-        case DishwasherMode::Attributes::FeatureMap::Id: {
+        case RvcOperationalState::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case DishwasherMode::Attributes::ClusterRevision::Id: {
+        case RvcOperationalState::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -12595,40 +14344,51 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case AirQuality::Id: {
+    case ScenesManagement::Id: {
         switch (path.mAttributeId)
         {
-        case AirQuality::Attributes::AirQuality::Id: {
-            chip::app::Clusters::AirQuality::AirQualityEnum value;
+        case ScenesManagement::Attributes::LastConfiguredBy::Id: {
+            chip::app::DataModel::Nullable<chip::NodeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AirQuality", 1, value);
+            return DataModelLogger::LogValue("LastConfiguredBy", 1, value);
         }
-        case AirQuality::Attributes::GeneratedCommandList::Id: {
+        case ScenesManagement::Attributes::SceneTableSize::Id: {
+            uint16_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("SceneTableSize", 1, value);
+        }
+        case ScenesManagement::Attributes::FabricSceneInfo::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::ScenesManagement::Structs::SceneInfoStruct::DecodableType>
+                value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("FabricSceneInfo", 1, value);
+        }
+        case ScenesManagement::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, AirQuality::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ScenesManagement::Id);
         }
-        case AirQuality::Attributes::AcceptedCommandList::Id: {
+        case ScenesManagement::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, AirQuality::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ScenesManagement::Id);
         }
-        case AirQuality::Attributes::EventList::Id: {
+        case ScenesManagement::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case AirQuality::Attributes::AttributeList::Id: {
+        case ScenesManagement::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, AirQuality::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ScenesManagement::Id);
         }
-        case AirQuality::Attributes::FeatureMap::Id: {
+        case ScenesManagement::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case AirQuality::Attributes::ClusterRevision::Id: {
+        case ScenesManagement::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -12636,100 +14396,67 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case SmokeCoAlarm::Id: {
+    case HepaFilterMonitoring::Id: {
         switch (path.mAttributeId)
         {
-        case SmokeCoAlarm::Attributes::ExpressedState::Id: {
-            chip::app::Clusters::SmokeCoAlarm::ExpressedStateEnum value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ExpressedState", 1, value);
-        }
-        case SmokeCoAlarm::Attributes::SmokeState::Id: {
-            chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SmokeState", 1, value);
-        }
-        case SmokeCoAlarm::Attributes::COState::Id: {
-            chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("COState", 1, value);
-        }
-        case SmokeCoAlarm::Attributes::BatteryAlert::Id: {
-            chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value;
+        case HepaFilterMonitoring::Attributes::Condition::Id: {
+            chip::Percent value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatteryAlert", 1, value);
+            return DataModelLogger::LogValue("Condition", 1, value);
         }
-        case SmokeCoAlarm::Attributes::DeviceMuted::Id: {
-            chip::app::Clusters::SmokeCoAlarm::MuteStateEnum value;
+        case HepaFilterMonitoring::Attributes::DegradationDirection::Id: {
+            chip::app::Clusters::HepaFilterMonitoring::DegradationDirectionEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("DeviceMuted", 1, value);
+            return DataModelLogger::LogValue("DegradationDirection", 1, value);
         }
-        case SmokeCoAlarm::Attributes::TestInProgress::Id: {
-            bool value;
+        case HepaFilterMonitoring::Attributes::ChangeIndication::Id: {
+            chip::app::Clusters::HepaFilterMonitoring::ChangeIndicationEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TestInProgress", 1, value);
+            return DataModelLogger::LogValue("ChangeIndication", 1, value);
         }
-        case SmokeCoAlarm::Attributes::HardwareFaultAlert::Id: {
+        case HepaFilterMonitoring::Attributes::InPlaceIndicator::Id: {
             bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("HardwareFaultAlert", 1, value);
-        }
-        case SmokeCoAlarm::Attributes::EndOfServiceAlert::Id: {
-            chip::app::Clusters::SmokeCoAlarm::EndOfServiceEnum value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EndOfServiceAlert", 1, value);
-        }
-        case SmokeCoAlarm::Attributes::InterconnectSmokeAlarm::Id: {
-            chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("InterconnectSmokeAlarm", 1, value);
-        }
-        case SmokeCoAlarm::Attributes::InterconnectCOAlarm::Id: {
-            chip::app::Clusters::SmokeCoAlarm::AlarmStateEnum value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("InterconnectCOAlarm", 1, value);
-        }
-        case SmokeCoAlarm::Attributes::ContaminationState::Id: {
-            chip::app::Clusters::SmokeCoAlarm::ContaminationStateEnum value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ContaminationState", 1, value);
+            return DataModelLogger::LogValue("InPlaceIndicator", 1, value);
         }
-        case SmokeCoAlarm::Attributes::SmokeSensitivityLevel::Id: {
-            chip::app::Clusters::SmokeCoAlarm::SensitivityEnum value;
+        case HepaFilterMonitoring::Attributes::LastChangedTime::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SmokeSensitivityLevel", 1, value);
+            return DataModelLogger::LogValue("LastChangedTime", 1, value);
         }
-        case SmokeCoAlarm::Attributes::ExpiryDate::Id: {
-            uint32_t value;
+        case HepaFilterMonitoring::Attributes::ReplacementProductList::Id: {
+            chip::app::DataModel::DecodableList<
+                chip::app::Clusters::HepaFilterMonitoring::Structs::ReplacementProductStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ExpiryDate", 1, value);
+            return DataModelLogger::LogValue("ReplacementProductList", 1, value);
         }
-        case SmokeCoAlarm::Attributes::GeneratedCommandList::Id: {
+        case HepaFilterMonitoring::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, SmokeCoAlarm::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, HepaFilterMonitoring::Id);
         }
-        case SmokeCoAlarm::Attributes::AcceptedCommandList::Id: {
+        case HepaFilterMonitoring::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, SmokeCoAlarm::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, HepaFilterMonitoring::Id);
         }
-        case SmokeCoAlarm::Attributes::EventList::Id: {
+        case HepaFilterMonitoring::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case SmokeCoAlarm::Attributes::AttributeList::Id: {
+        case HepaFilterMonitoring::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, SmokeCoAlarm::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, HepaFilterMonitoring::Id);
         }
-        case SmokeCoAlarm::Attributes::FeatureMap::Id: {
+        case HepaFilterMonitoring::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case SmokeCoAlarm::Attributes::ClusterRevision::Id: {
+        case HepaFilterMonitoring::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -12737,55 +14464,67 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case DishwasherAlarm::Id: {
+    case ActivatedCarbonFilterMonitoring::Id: {
         switch (path.mAttributeId)
         {
-        case DishwasherAlarm::Attributes::Mask::Id: {
-            chip::BitMask<chip::app::Clusters::DishwasherAlarm::AlarmBitmap> value;
+        case ActivatedCarbonFilterMonitoring::Attributes::Condition::Id: {
+            chip::Percent value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("Condition", 1, value);
+        }
+        case ActivatedCarbonFilterMonitoring::Attributes::DegradationDirection::Id: {
+            chip::app::Clusters::ActivatedCarbonFilterMonitoring::DegradationDirectionEnum value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("DegradationDirection", 1, value);
+        }
+        case ActivatedCarbonFilterMonitoring::Attributes::ChangeIndication::Id: {
+            chip::app::Clusters::ActivatedCarbonFilterMonitoring::ChangeIndicationEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Mask", 1, value);
+            return DataModelLogger::LogValue("ChangeIndication", 1, value);
         }
-        case DishwasherAlarm::Attributes::Latch::Id: {
-            chip::BitMask<chip::app::Clusters::DishwasherAlarm::AlarmBitmap> value;
+        case ActivatedCarbonFilterMonitoring::Attributes::InPlaceIndicator::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Latch", 1, value);
+            return DataModelLogger::LogValue("InPlaceIndicator", 1, value);
         }
-        case DishwasherAlarm::Attributes::State::Id: {
-            chip::BitMask<chip::app::Clusters::DishwasherAlarm::AlarmBitmap> value;
+        case ActivatedCarbonFilterMonitoring::Attributes::LastChangedTime::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("State", 1, value);
+            return DataModelLogger::LogValue("LastChangedTime", 1, value);
         }
-        case DishwasherAlarm::Attributes::Supported::Id: {
-            chip::BitMask<chip::app::Clusters::DishwasherAlarm::AlarmBitmap> value;
+        case ActivatedCarbonFilterMonitoring::Attributes::ReplacementProductList::Id: {
+            chip::app::DataModel::DecodableList<
+                chip::app::Clusters::ActivatedCarbonFilterMonitoring::Structs::ReplacementProductStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Supported", 1, value);
+            return DataModelLogger::LogValue("ReplacementProductList", 1, value);
         }
-        case DishwasherAlarm::Attributes::GeneratedCommandList::Id: {
+        case ActivatedCarbonFilterMonitoring::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, DishwasherAlarm::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ActivatedCarbonFilterMonitoring::Id);
         }
-        case DishwasherAlarm::Attributes::AcceptedCommandList::Id: {
+        case ActivatedCarbonFilterMonitoring::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, DishwasherAlarm::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ActivatedCarbonFilterMonitoring::Id);
         }
-        case DishwasherAlarm::Attributes::EventList::Id: {
+        case ActivatedCarbonFilterMonitoring::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case DishwasherAlarm::Attributes::AttributeList::Id: {
+        case ActivatedCarbonFilterMonitoring::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, DishwasherAlarm::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ActivatedCarbonFilterMonitoring::Id);
         }
-        case DishwasherAlarm::Attributes::FeatureMap::Id: {
+        case ActivatedCarbonFilterMonitoring::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case DishwasherAlarm::Attributes::ClusterRevision::Id: {
+        case ActivatedCarbonFilterMonitoring::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -12793,46 +14532,75 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case MicrowaveOvenMode::Id: {
+    case BooleanStateConfiguration::Id: {
         switch (path.mAttributeId)
         {
-        case MicrowaveOvenMode::Attributes::SupportedModes::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::MicrowaveOvenMode::Structs::ModeOptionStruct::DecodableType>
-                value;
+        case BooleanStateConfiguration::Attributes::CurrentSensitivityLevel::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SupportedModes", 1, value);
+            return DataModelLogger::LogValue("CurrentSensitivityLevel", 1, value);
         }
-        case MicrowaveOvenMode::Attributes::CurrentMode::Id: {
+        case BooleanStateConfiguration::Attributes::SupportedSensitivityLevels::Id: {
             uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentMode", 1, value);
+            return DataModelLogger::LogValue("SupportedSensitivityLevels", 1, value);
         }
-        case MicrowaveOvenMode::Attributes::GeneratedCommandList::Id: {
+        case BooleanStateConfiguration::Attributes::DefaultSensitivityLevel::Id: {
+            uint8_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("DefaultSensitivityLevel", 1, value);
+        }
+        case BooleanStateConfiguration::Attributes::AlarmsActive::Id: {
+            chip::BitMask<chip::app::Clusters::BooleanStateConfiguration::AlarmModeBitmap> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("AlarmsActive", 1, value);
+        }
+        case BooleanStateConfiguration::Attributes::AlarmsSuppressed::Id: {
+            chip::BitMask<chip::app::Clusters::BooleanStateConfiguration::AlarmModeBitmap> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("AlarmsSuppressed", 1, value);
+        }
+        case BooleanStateConfiguration::Attributes::AlarmsEnabled::Id: {
+            chip::BitMask<chip::app::Clusters::BooleanStateConfiguration::AlarmModeBitmap> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("AlarmsEnabled", 1, value);
+        }
+        case BooleanStateConfiguration::Attributes::AlarmsSupported::Id: {
+            chip::BitMask<chip::app::Clusters::BooleanStateConfiguration::AlarmModeBitmap> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("AlarmsSupported", 1, value);
+        }
+        case BooleanStateConfiguration::Attributes::SensorFault::Id: {
+            chip::BitMask<chip::app::Clusters::BooleanStateConfiguration::SensorFaultBitmap> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("SensorFault", 1, value);
+        }
+        case BooleanStateConfiguration::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, MicrowaveOvenMode::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, BooleanStateConfiguration::Id);
         }
-        case MicrowaveOvenMode::Attributes::AcceptedCommandList::Id: {
+        case BooleanStateConfiguration::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, MicrowaveOvenMode::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, BooleanStateConfiguration::Id);
         }
-        case MicrowaveOvenMode::Attributes::EventList::Id: {
+        case BooleanStateConfiguration::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case MicrowaveOvenMode::Attributes::AttributeList::Id: {
+        case BooleanStateConfiguration::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, MicrowaveOvenMode::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, BooleanStateConfiguration::Id);
         }
-        case MicrowaveOvenMode::Attributes::FeatureMap::Id: {
+        case BooleanStateConfiguration::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case MicrowaveOvenMode::Attributes::ClusterRevision::Id: {
+        case BooleanStateConfiguration::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -12840,80 +14608,90 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case MicrowaveOvenControl::Id: {
+    case ValveConfigurationAndControl::Id: {
         switch (path.mAttributeId)
         {
-        case MicrowaveOvenControl::Attributes::CookTime::Id: {
-            uint32_t value;
+        case ValveConfigurationAndControl::Attributes::OpenDuration::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CookTime", 1, value);
+            return DataModelLogger::LogValue("OpenDuration", 1, value);
         }
-        case MicrowaveOvenControl::Attributes::MaxCookTime::Id: {
-            uint32_t value;
+        case ValveConfigurationAndControl::Attributes::DefaultOpenDuration::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MaxCookTime", 1, value);
+            return DataModelLogger::LogValue("DefaultOpenDuration", 1, value);
         }
-        case MicrowaveOvenControl::Attributes::PowerSetting::Id: {
-            uint8_t value;
+        case ValveConfigurationAndControl::Attributes::AutoCloseTime::Id: {
+            chip::app::DataModel::Nullable<uint64_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PowerSetting", 1, value);
+            return DataModelLogger::LogValue("AutoCloseTime", 1, value);
         }
-        case MicrowaveOvenControl::Attributes::MinPower::Id: {
-            uint8_t value;
+        case ValveConfigurationAndControl::Attributes::RemainingDuration::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MinPower", 1, value);
+            return DataModelLogger::LogValue("RemainingDuration", 1, value);
         }
-        case MicrowaveOvenControl::Attributes::MaxPower::Id: {
-            uint8_t value;
+        case ValveConfigurationAndControl::Attributes::CurrentState::Id: {
+            chip::app::DataModel::Nullable<chip::app::Clusters::ValveConfigurationAndControl::ValveStateEnum> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MaxPower", 1, value);
+            return DataModelLogger::LogValue("CurrentState", 1, value);
         }
-        case MicrowaveOvenControl::Attributes::PowerStep::Id: {
-            uint8_t value;
+        case ValveConfigurationAndControl::Attributes::TargetState::Id: {
+            chip::app::DataModel::Nullable<chip::app::Clusters::ValveConfigurationAndControl::ValveStateEnum> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PowerStep", 1, value);
+            return DataModelLogger::LogValue("TargetState", 1, value);
         }
-        case MicrowaveOvenControl::Attributes::SupportedWatts::Id: {
-            chip::app::DataModel::DecodableList<uint16_t> value;
+        case ValveConfigurationAndControl::Attributes::CurrentLevel::Id: {
+            chip::app::DataModel::Nullable<chip::Percent> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SupportedWatts", 1, value);
+            return DataModelLogger::LogValue("CurrentLevel", 1, value);
         }
-        case MicrowaveOvenControl::Attributes::SelectedWattIndex::Id: {
-            uint8_t value;
+        case ValveConfigurationAndControl::Attributes::TargetLevel::Id: {
+            chip::app::DataModel::Nullable<chip::Percent> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SelectedWattIndex", 1, value);
+            return DataModelLogger::LogValue("TargetLevel", 1, value);
         }
-        case MicrowaveOvenControl::Attributes::WattRating::Id: {
-            uint16_t value;
+        case ValveConfigurationAndControl::Attributes::DefaultOpenLevel::Id: {
+            chip::Percent value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("WattRating", 1, value);
+            return DataModelLogger::LogValue("DefaultOpenLevel", 1, value);
         }
-        case MicrowaveOvenControl::Attributes::GeneratedCommandList::Id: {
+        case ValveConfigurationAndControl::Attributes::ValveFault::Id: {
+            chip::BitMask<chip::app::Clusters::ValveConfigurationAndControl::ValveFaultBitmap> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("ValveFault", 1, value);
+        }
+        case ValveConfigurationAndControl::Attributes::LevelStep::Id: {
+            uint8_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("LevelStep", 1, value);
+        }
+        case ValveConfigurationAndControl::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, MicrowaveOvenControl::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ValveConfigurationAndControl::Id);
         }
-        case MicrowaveOvenControl::Attributes::AcceptedCommandList::Id: {
+        case ValveConfigurationAndControl::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, MicrowaveOvenControl::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ValveConfigurationAndControl::Id);
         }
-        case MicrowaveOvenControl::Attributes::EventList::Id: {
+        case ValveConfigurationAndControl::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case MicrowaveOvenControl::Attributes::AttributeList::Id: {
+        case ValveConfigurationAndControl::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, MicrowaveOvenControl::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ValveConfigurationAndControl::Id);
         }
-        case MicrowaveOvenControl::Attributes::FeatureMap::Id: {
+        case ValveConfigurationAndControl::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case MicrowaveOvenControl::Attributes::ClusterRevision::Id: {
+        case ValveConfigurationAndControl::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -12921,135 +14699,138 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case OperationalState::Id: {
+    case ElectricalPowerMeasurement::Id: {
         switch (path.mAttributeId)
         {
-        case OperationalState::Attributes::PhaseList::Id: {
-            chip::app::DataModel::Nullable<chip::app::DataModel::DecodableList<chip::CharSpan>> value;
+        case ElectricalPowerMeasurement::Attributes::PowerMode::Id: {
+            chip::app::Clusters::ElectricalPowerMeasurement::PowerModeEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PhaseList", 1, value);
+            return DataModelLogger::LogValue("PowerMode", 1, value);
         }
-        case OperationalState::Attributes::CurrentPhase::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case ElectricalPowerMeasurement::Attributes::NumberOfMeasurementTypes::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentPhase", 1, value);
+            return DataModelLogger::LogValue("NumberOfMeasurementTypes", 1, value);
         }
-        case OperationalState::Attributes::CountdownTime::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
+        case ElectricalPowerMeasurement::Attributes::Accuracy::Id: {
+            chip::app::DataModel::DecodableList<
+                chip::app::Clusters::ElectricalPowerMeasurement::Structs::MeasurementAccuracyStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CountdownTime", 1, value);
+            return DataModelLogger::LogValue("Accuracy", 1, value);
         }
-        case OperationalState::Attributes::OperationalStateList::Id: {
+        case ElectricalPowerMeasurement::Attributes::Ranges::Id: {
             chip::app::DataModel::DecodableList<
-                chip::app::Clusters::OperationalState::Structs::OperationalStateStruct::DecodableType>
+                chip::app::Clusters::ElectricalPowerMeasurement::Structs::MeasurementRangeStruct::DecodableType>
                 value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OperationalStateList", 1, value);
+            return DataModelLogger::LogValue("Ranges", 1, value);
         }
-        case OperationalState::Attributes::OperationalState::Id: {
-            chip::app::Clusters::OperationalState::OperationalStateEnum value;
+        case ElectricalPowerMeasurement::Attributes::Voltage::Id: {
+            chip::app::DataModel::Nullable<int64_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OperationalState", 1, value);
+            return DataModelLogger::LogValue("Voltage", 1, value);
         }
-        case OperationalState::Attributes::OperationalError::Id: {
-            chip::app::Clusters::OperationalState::Structs::ErrorStateStruct::DecodableType value;
+        case ElectricalPowerMeasurement::Attributes::ActiveCurrent::Id: {
+            chip::app::DataModel::Nullable<int64_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OperationalError", 1, value);
+            return DataModelLogger::LogValue("ActiveCurrent", 1, value);
         }
-        case OperationalState::Attributes::GeneratedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case ElectricalPowerMeasurement::Attributes::ReactiveCurrent::Id: {
+            chip::app::DataModel::Nullable<int64_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, OperationalState::Id);
+            return DataModelLogger::LogValue("ReactiveCurrent", 1, value);
         }
-        case OperationalState::Attributes::AcceptedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case ElectricalPowerMeasurement::Attributes::ApparentCurrent::Id: {
+            chip::app::DataModel::Nullable<int64_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, OperationalState::Id);
+            return DataModelLogger::LogValue("ApparentCurrent", 1, value);
         }
-        case OperationalState::Attributes::EventList::Id: {
-            chip::app::DataModel::DecodableList<chip::EventId> value;
+        case ElectricalPowerMeasurement::Attributes::ActivePower::Id: {
+            chip::app::DataModel::Nullable<int64_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EventList", 1, value);
+            return DataModelLogger::LogValue("ActivePower", 1, value);
         }
-        case OperationalState::Attributes::AttributeList::Id: {
-            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+        case ElectricalPowerMeasurement::Attributes::ReactivePower::Id: {
+            chip::app::DataModel::Nullable<int64_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, OperationalState::Id);
+            return DataModelLogger::LogValue("ReactivePower", 1, value);
         }
-        case OperationalState::Attributes::FeatureMap::Id: {
-            uint32_t value;
+        case ElectricalPowerMeasurement::Attributes::ApparentPower::Id: {
+            chip::app::DataModel::Nullable<int64_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("FeatureMap", 1, value);
+            return DataModelLogger::LogValue("ApparentPower", 1, value);
         }
-        case OperationalState::Attributes::ClusterRevision::Id: {
-            uint16_t value;
+        case ElectricalPowerMeasurement::Attributes::RMSVoltage::Id: {
+            chip::app::DataModel::Nullable<int64_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ClusterRevision", 1, value);
+            return DataModelLogger::LogValue("RMSVoltage", 1, value);
         }
+        case ElectricalPowerMeasurement::Attributes::RMSCurrent::Id: {
+            chip::app::DataModel::Nullable<int64_t> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("RMSCurrent", 1, value);
         }
-        break;
-    }
-    case RvcOperationalState::Id: {
-        switch (path.mAttributeId)
-        {
-        case RvcOperationalState::Attributes::PhaseList::Id: {
-            chip::app::DataModel::Nullable<chip::app::DataModel::DecodableList<chip::CharSpan>> value;
+        case ElectricalPowerMeasurement::Attributes::RMSPower::Id: {
+            chip::app::DataModel::Nullable<int64_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PhaseList", 1, value);
+            return DataModelLogger::LogValue("RMSPower", 1, value);
         }
-        case RvcOperationalState::Attributes::CurrentPhase::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case ElectricalPowerMeasurement::Attributes::Frequency::Id: {
+            chip::app::DataModel::Nullable<int64_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentPhase", 1, value);
+            return DataModelLogger::LogValue("Frequency", 1, value);
         }
-        case RvcOperationalState::Attributes::CountdownTime::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
+        case ElectricalPowerMeasurement::Attributes::HarmonicCurrents::Id: {
+            chip::app::DataModel::Nullable<chip::app::DataModel::DecodableList<
+                chip::app::Clusters::ElectricalPowerMeasurement::Structs::HarmonicMeasurementStruct::DecodableType>>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CountdownTime", 1, value);
+            return DataModelLogger::LogValue("HarmonicCurrents", 1, value);
         }
-        case RvcOperationalState::Attributes::OperationalStateList::Id: {
-            chip::app::DataModel::DecodableList<
-                chip::app::Clusters::RvcOperationalState::Structs::OperationalStateStruct::DecodableType>
+        case ElectricalPowerMeasurement::Attributes::HarmonicPhases::Id: {
+            chip::app::DataModel::Nullable<chip::app::DataModel::DecodableList<
+                chip::app::Clusters::ElectricalPowerMeasurement::Structs::HarmonicMeasurementStruct::DecodableType>>
                 value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OperationalStateList", 1, value);
+            return DataModelLogger::LogValue("HarmonicPhases", 1, value);
         }
-        case RvcOperationalState::Attributes::OperationalState::Id: {
-            uint8_t value;
+        case ElectricalPowerMeasurement::Attributes::PowerFactor::Id: {
+            chip::app::DataModel::Nullable<int64_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OperationalState", 1, value);
+            return DataModelLogger::LogValue("PowerFactor", 1, value);
         }
-        case RvcOperationalState::Attributes::OperationalError::Id: {
-            chip::app::Clusters::RvcOperationalState::Structs::ErrorStateStruct::DecodableType value;
+        case ElectricalPowerMeasurement::Attributes::NeutralCurrent::Id: {
+            chip::app::DataModel::Nullable<int64_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OperationalError", 1, value);
+            return DataModelLogger::LogValue("NeutralCurrent", 1, value);
         }
-        case RvcOperationalState::Attributes::GeneratedCommandList::Id: {
+        case ElectricalPowerMeasurement::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, RvcOperationalState::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ElectricalPowerMeasurement::Id);
         }
-        case RvcOperationalState::Attributes::AcceptedCommandList::Id: {
+        case ElectricalPowerMeasurement::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, RvcOperationalState::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ElectricalPowerMeasurement::Id);
         }
-        case RvcOperationalState::Attributes::EventList::Id: {
+        case ElectricalPowerMeasurement::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case RvcOperationalState::Attributes::AttributeList::Id: {
+        case ElectricalPowerMeasurement::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, RvcOperationalState::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ElectricalPowerMeasurement::Id);
         }
-        case RvcOperationalState::Attributes::FeatureMap::Id: {
+        case ElectricalPowerMeasurement::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case RvcOperationalState::Attributes::ClusterRevision::Id: {
+        case ElectricalPowerMeasurement::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -13057,51 +14838,75 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case ScenesManagement::Id: {
+    case ElectricalEnergyMeasurement::Id: {
         switch (path.mAttributeId)
         {
-        case ScenesManagement::Attributes::LastConfiguredBy::Id: {
-            chip::app::DataModel::Nullable<chip::NodeId> value;
+        case ElectricalEnergyMeasurement::Attributes::Accuracy::Id: {
+            chip::app::Clusters::ElectricalEnergyMeasurement::Structs::MeasurementAccuracyStruct::DecodableType value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LastConfiguredBy", 1, value);
+            return DataModelLogger::LogValue("Accuracy", 1, value);
         }
-        case ScenesManagement::Attributes::SceneTableSize::Id: {
-            uint16_t value;
+        case ElectricalEnergyMeasurement::Attributes::CumulativeEnergyImported::Id: {
+            chip::app::DataModel::Nullable<
+                chip::app::Clusters::ElectricalEnergyMeasurement::Structs::EnergyMeasurementStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SceneTableSize", 1, value);
+            return DataModelLogger::LogValue("CumulativeEnergyImported", 1, value);
         }
-        case ScenesManagement::Attributes::FabricSceneInfo::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::ScenesManagement::Structs::SceneInfoStruct::DecodableType>
+        case ElectricalEnergyMeasurement::Attributes::CumulativeEnergyExported::Id: {
+            chip::app::DataModel::Nullable<
+                chip::app::Clusters::ElectricalEnergyMeasurement::Structs::EnergyMeasurementStruct::DecodableType>
                 value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("FabricSceneInfo", 1, value);
+            return DataModelLogger::LogValue("CumulativeEnergyExported", 1, value);
         }
-        case ScenesManagement::Attributes::GeneratedCommandList::Id: {
+        case ElectricalEnergyMeasurement::Attributes::PeriodicEnergyImported::Id: {
+            chip::app::DataModel::Nullable<
+                chip::app::Clusters::ElectricalEnergyMeasurement::Structs::EnergyMeasurementStruct::DecodableType>
+                value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("PeriodicEnergyImported", 1, value);
+        }
+        case ElectricalEnergyMeasurement::Attributes::PeriodicEnergyExported::Id: {
+            chip::app::DataModel::Nullable<
+                chip::app::Clusters::ElectricalEnergyMeasurement::Structs::EnergyMeasurementStruct::DecodableType>
+                value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("PeriodicEnergyExported", 1, value);
+        }
+        case ElectricalEnergyMeasurement::Attributes::CumulativeEnergyReset::Id: {
+            chip::app::DataModel::Nullable<
+                chip::app::Clusters::ElectricalEnergyMeasurement::Structs::CumulativeEnergyResetStruct::DecodableType>
+                value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("CumulativeEnergyReset", 1, value);
+        }
+        case ElectricalEnergyMeasurement::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ScenesManagement::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ElectricalEnergyMeasurement::Id);
         }
-        case ScenesManagement::Attributes::AcceptedCommandList::Id: {
+        case ElectricalEnergyMeasurement::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ScenesManagement::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ElectricalEnergyMeasurement::Id);
         }
-        case ScenesManagement::Attributes::EventList::Id: {
+        case ElectricalEnergyMeasurement::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case ScenesManagement::Attributes::AttributeList::Id: {
+        case ElectricalEnergyMeasurement::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ScenesManagement::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ElectricalEnergyMeasurement::Id);
         }
-        case ScenesManagement::Attributes::FeatureMap::Id: {
+        case ElectricalEnergyMeasurement::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case ScenesManagement::Attributes::ClusterRevision::Id: {
+        case ElectricalEnergyMeasurement::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -13109,67 +14914,65 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case HepaFilterMonitoring::Id: {
+    case WaterHeaterManagement::Id: {
         switch (path.mAttributeId)
         {
-        case HepaFilterMonitoring::Attributes::Condition::Id: {
-            chip::Percent value;
+        case WaterHeaterManagement::Attributes::HeaterTypes::Id: {
+            chip::BitMask<chip::app::Clusters::WaterHeaterManagement::WaterHeaterHeatSourceBitmap> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Condition", 1, value);
+            return DataModelLogger::LogValue("HeaterTypes", 1, value);
         }
-        case HepaFilterMonitoring::Attributes::DegradationDirection::Id: {
-            chip::app::Clusters::HepaFilterMonitoring::DegradationDirectionEnum value;
+        case WaterHeaterManagement::Attributes::HeatDemand::Id: {
+            chip::BitMask<chip::app::Clusters::WaterHeaterManagement::WaterHeaterHeatSourceBitmap> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("DegradationDirection", 1, value);
+            return DataModelLogger::LogValue("HeatDemand", 1, value);
         }
-        case HepaFilterMonitoring::Attributes::ChangeIndication::Id: {
-            chip::app::Clusters::HepaFilterMonitoring::ChangeIndicationEnum value;
+        case WaterHeaterManagement::Attributes::TankVolume::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ChangeIndication", 1, value);
+            return DataModelLogger::LogValue("TankVolume", 1, value);
         }
-        case HepaFilterMonitoring::Attributes::InPlaceIndicator::Id: {
-            bool value;
+        case WaterHeaterManagement::Attributes::EstimatedHeatRequired::Id: {
+            int64_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("InPlaceIndicator", 1, value);
+            return DataModelLogger::LogValue("EstimatedHeatRequired", 1, value);
         }
-        case HepaFilterMonitoring::Attributes::LastChangedTime::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
+        case WaterHeaterManagement::Attributes::TankPercentage::Id: {
+            chip::Percent value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LastChangedTime", 1, value);
+            return DataModelLogger::LogValue("TankPercentage", 1, value);
         }
-        case HepaFilterMonitoring::Attributes::ReplacementProductList::Id: {
-            chip::app::DataModel::DecodableList<
-                chip::app::Clusters::HepaFilterMonitoring::Structs::ReplacementProductStruct::DecodableType>
-                value;
+        case WaterHeaterManagement::Attributes::BoostState::Id: {
+            chip::app::Clusters::WaterHeaterManagement::BoostStateEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ReplacementProductList", 1, value);
+            return DataModelLogger::LogValue("BoostState", 1, value);
         }
-        case HepaFilterMonitoring::Attributes::GeneratedCommandList::Id: {
+        case WaterHeaterManagement::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, HepaFilterMonitoring::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, WaterHeaterManagement::Id);
         }
-        case HepaFilterMonitoring::Attributes::AcceptedCommandList::Id: {
+        case WaterHeaterManagement::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, HepaFilterMonitoring::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, WaterHeaterManagement::Id);
         }
-        case HepaFilterMonitoring::Attributes::EventList::Id: {
+        case WaterHeaterManagement::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case HepaFilterMonitoring::Attributes::AttributeList::Id: {
+        case WaterHeaterManagement::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, HepaFilterMonitoring::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, WaterHeaterManagement::Id);
         }
-        case HepaFilterMonitoring::Attributes::FeatureMap::Id: {
+        case WaterHeaterManagement::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case HepaFilterMonitoring::Attributes::ClusterRevision::Id: {
+        case WaterHeaterManagement::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -13177,67 +14980,81 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case ActivatedCarbonFilterMonitoring::Id: {
+    case DemandResponseLoadControl::Id: {
         switch (path.mAttributeId)
         {
-        case ActivatedCarbonFilterMonitoring::Attributes::Condition::Id: {
-            chip::Percent value;
+        case DemandResponseLoadControl::Attributes::LoadControlPrograms::Id: {
+            chip::app::DataModel::DecodableList<
+                chip::app::Clusters::DemandResponseLoadControl::Structs::LoadControlProgramStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Condition", 1, value);
+            return DataModelLogger::LogValue("LoadControlPrograms", 1, value);
         }
-        case ActivatedCarbonFilterMonitoring::Attributes::DegradationDirection::Id: {
-            chip::app::Clusters::ActivatedCarbonFilterMonitoring::DegradationDirectionEnum value;
+        case DemandResponseLoadControl::Attributes::NumberOfLoadControlPrograms::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("DegradationDirection", 1, value);
+            return DataModelLogger::LogValue("NumberOfLoadControlPrograms", 1, value);
         }
-        case ActivatedCarbonFilterMonitoring::Attributes::ChangeIndication::Id: {
-            chip::app::Clusters::ActivatedCarbonFilterMonitoring::ChangeIndicationEnum value;
+        case DemandResponseLoadControl::Attributes::Events::Id: {
+            chip::app::DataModel::DecodableList<
+                chip::app::Clusters::DemandResponseLoadControl::Structs::LoadControlEventStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ChangeIndication", 1, value);
+            return DataModelLogger::LogValue("Events", 1, value);
         }
-        case ActivatedCarbonFilterMonitoring::Attributes::InPlaceIndicator::Id: {
-            bool value;
+        case DemandResponseLoadControl::Attributes::ActiveEvents::Id: {
+            chip::app::DataModel::DecodableList<
+                chip::app::Clusters::DemandResponseLoadControl::Structs::LoadControlEventStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("InPlaceIndicator", 1, value);
+            return DataModelLogger::LogValue("ActiveEvents", 1, value);
         }
-        case ActivatedCarbonFilterMonitoring::Attributes::LastChangedTime::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
+        case DemandResponseLoadControl::Attributes::NumberOfEventsPerProgram::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LastChangedTime", 1, value);
+            return DataModelLogger::LogValue("NumberOfEventsPerProgram", 1, value);
         }
-        case ActivatedCarbonFilterMonitoring::Attributes::ReplacementProductList::Id: {
-            chip::app::DataModel::DecodableList<
-                chip::app::Clusters::ActivatedCarbonFilterMonitoring::Structs::ReplacementProductStruct::DecodableType>
-                value;
+        case DemandResponseLoadControl::Attributes::NumberOfTransitions::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ReplacementProductList", 1, value);
+            return DataModelLogger::LogValue("NumberOfTransitions", 1, value);
         }
-        case ActivatedCarbonFilterMonitoring::Attributes::GeneratedCommandList::Id: {
+        case DemandResponseLoadControl::Attributes::DefaultRandomStart::Id: {
+            uint8_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("DefaultRandomStart", 1, value);
+        }
+        case DemandResponseLoadControl::Attributes::DefaultRandomDuration::Id: {
+            uint8_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("DefaultRandomDuration", 1, value);
+        }
+        case DemandResponseLoadControl::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ActivatedCarbonFilterMonitoring::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, DemandResponseLoadControl::Id);
         }
-        case ActivatedCarbonFilterMonitoring::Attributes::AcceptedCommandList::Id: {
+        case DemandResponseLoadControl::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ActivatedCarbonFilterMonitoring::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, DemandResponseLoadControl::Id);
         }
-        case ActivatedCarbonFilterMonitoring::Attributes::EventList::Id: {
+        case DemandResponseLoadControl::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case ActivatedCarbonFilterMonitoring::Attributes::AttributeList::Id: {
+        case DemandResponseLoadControl::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ActivatedCarbonFilterMonitoring::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, DemandResponseLoadControl::Id);
         }
-        case ActivatedCarbonFilterMonitoring::Attributes::FeatureMap::Id: {
+        case DemandResponseLoadControl::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case ActivatedCarbonFilterMonitoring::Attributes::ClusterRevision::Id: {
+        case DemandResponseLoadControl::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -13245,75 +15062,45 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case BooleanStateConfiguration::Id: {
+    case Messages::Id: {
         switch (path.mAttributeId)
         {
-        case BooleanStateConfiguration::Attributes::CurrentSensitivityLevel::Id: {
-            uint8_t value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentSensitivityLevel", 1, value);
-        }
-        case BooleanStateConfiguration::Attributes::SupportedSensitivityLevels::Id: {
-            uint8_t value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SupportedSensitivityLevels", 1, value);
-        }
-        case BooleanStateConfiguration::Attributes::DefaultSensitivityLevel::Id: {
-            uint8_t value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("DefaultSensitivityLevel", 1, value);
-        }
-        case BooleanStateConfiguration::Attributes::AlarmsActive::Id: {
-            chip::BitMask<chip::app::Clusters::BooleanStateConfiguration::AlarmModeBitmap> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AlarmsActive", 1, value);
-        }
-        case BooleanStateConfiguration::Attributes::AlarmsSuppressed::Id: {
-            chip::BitMask<chip::app::Clusters::BooleanStateConfiguration::AlarmModeBitmap> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AlarmsSuppressed", 1, value);
-        }
-        case BooleanStateConfiguration::Attributes::AlarmsEnabled::Id: {
-            chip::BitMask<chip::app::Clusters::BooleanStateConfiguration::AlarmModeBitmap> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AlarmsEnabled", 1, value);
-        }
-        case BooleanStateConfiguration::Attributes::AlarmsSupported::Id: {
-            chip::BitMask<chip::app::Clusters::BooleanStateConfiguration::AlarmModeBitmap> value;
+        case Messages::Attributes::Messages::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::Messages::Structs::MessageStruct::DecodableType> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AlarmsSupported", 1, value);
+            return DataModelLogger::LogValue("Messages", 1, value);
         }
-        case BooleanStateConfiguration::Attributes::SensorFault::Id: {
-            chip::BitMask<chip::app::Clusters::BooleanStateConfiguration::SensorFaultBitmap> value;
+        case Messages::Attributes::ActiveMessageIDs::Id: {
+            chip::app::DataModel::DecodableList<chip::ByteSpan> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SensorFault", 1, value);
+            return DataModelLogger::LogValue("ActiveMessageIDs", 1, value);
         }
-        case BooleanStateConfiguration::Attributes::GeneratedCommandList::Id: {
+        case Messages::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, BooleanStateConfiguration::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, Messages::Id);
         }
-        case BooleanStateConfiguration::Attributes::AcceptedCommandList::Id: {
+        case Messages::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, BooleanStateConfiguration::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, Messages::Id);
         }
-        case BooleanStateConfiguration::Attributes::EventList::Id: {
+        case Messages::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case BooleanStateConfiguration::Attributes::AttributeList::Id: {
+        case Messages::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, BooleanStateConfiguration::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, Messages::Id);
         }
-        case BooleanStateConfiguration::Attributes::FeatureMap::Id: {
+        case Messages::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case BooleanStateConfiguration::Attributes::ClusterRevision::Id: {
+        case Messages::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -13321,90 +15108,78 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case ValveConfigurationAndControl::Id: {
+    case DeviceEnergyManagement::Id: {
         switch (path.mAttributeId)
         {
-        case ValveConfigurationAndControl::Attributes::OpenDuration::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OpenDuration", 1, value);
-        }
-        case ValveConfigurationAndControl::Attributes::DefaultOpenDuration::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("DefaultOpenDuration", 1, value);
-        }
-        case ValveConfigurationAndControl::Attributes::AutoCloseTime::Id: {
-            chip::app::DataModel::Nullable<uint64_t> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AutoCloseTime", 1, value);
-        }
-        case ValveConfigurationAndControl::Attributes::RemainingDuration::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
+        case DeviceEnergyManagement::Attributes::ESAType::Id: {
+            chip::app::Clusters::DeviceEnergyManagement::ESATypeEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("RemainingDuration", 1, value);
+            return DataModelLogger::LogValue("ESAType", 1, value);
         }
-        case ValveConfigurationAndControl::Attributes::CurrentState::Id: {
-            chip::app::DataModel::Nullable<chip::app::Clusters::ValveConfigurationAndControl::ValveStateEnum> value;
+        case DeviceEnergyManagement::Attributes::ESACanGenerate::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentState", 1, value);
+            return DataModelLogger::LogValue("ESACanGenerate", 1, value);
         }
-        case ValveConfigurationAndControl::Attributes::TargetState::Id: {
-            chip::app::DataModel::Nullable<chip::app::Clusters::ValveConfigurationAndControl::ValveStateEnum> value;
+        case DeviceEnergyManagement::Attributes::ESAState::Id: {
+            chip::app::Clusters::DeviceEnergyManagement::ESAStateEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TargetState", 1, value);
+            return DataModelLogger::LogValue("ESAState", 1, value);
         }
-        case ValveConfigurationAndControl::Attributes::CurrentLevel::Id: {
-            chip::app::DataModel::Nullable<chip::Percent> value;
+        case DeviceEnergyManagement::Attributes::AbsMinPower::Id: {
+            int64_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentLevel", 1, value);
+            return DataModelLogger::LogValue("AbsMinPower", 1, value);
         }
-        case ValveConfigurationAndControl::Attributes::TargetLevel::Id: {
-            chip::app::DataModel::Nullable<chip::Percent> value;
+        case DeviceEnergyManagement::Attributes::AbsMaxPower::Id: {
+            int64_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TargetLevel", 1, value);
+            return DataModelLogger::LogValue("AbsMaxPower", 1, value);
         }
-        case ValveConfigurationAndControl::Attributes::DefaultOpenLevel::Id: {
-            chip::Percent value;
+        case DeviceEnergyManagement::Attributes::PowerAdjustmentCapability::Id: {
+            chip::app::DataModel::Nullable<
+                chip::app::Clusters::DeviceEnergyManagement::Structs::PowerAdjustCapabilityStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("DefaultOpenLevel", 1, value);
+            return DataModelLogger::LogValue("PowerAdjustmentCapability", 1, value);
         }
-        case ValveConfigurationAndControl::Attributes::ValveFault::Id: {
-            chip::BitMask<chip::app::Clusters::ValveConfigurationAndControl::ValveFaultBitmap> value;
+        case DeviceEnergyManagement::Attributes::Forecast::Id: {
+            chip::app::DataModel::Nullable<chip::app::Clusters::DeviceEnergyManagement::Structs::ForecastStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ValveFault", 1, value);
+            return DataModelLogger::LogValue("Forecast", 1, value);
         }
-        case ValveConfigurationAndControl::Attributes::LevelStep::Id: {
-            uint8_t value;
+        case DeviceEnergyManagement::Attributes::OptOutState::Id: {
+            chip::app::Clusters::DeviceEnergyManagement::OptOutStateEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LevelStep", 1, value);
+            return DataModelLogger::LogValue("OptOutState", 1, value);
         }
-        case ValveConfigurationAndControl::Attributes::GeneratedCommandList::Id: {
+        case DeviceEnergyManagement::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ValveConfigurationAndControl::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, DeviceEnergyManagement::Id);
         }
-        case ValveConfigurationAndControl::Attributes::AcceptedCommandList::Id: {
+        case DeviceEnergyManagement::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ValveConfigurationAndControl::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, DeviceEnergyManagement::Id);
         }
-        case ValveConfigurationAndControl::Attributes::EventList::Id: {
+        case DeviceEnergyManagement::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case ValveConfigurationAndControl::Attributes::AttributeList::Id: {
+        case DeviceEnergyManagement::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ValveConfigurationAndControl::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, DeviceEnergyManagement::Id);
         }
-        case ValveConfigurationAndControl::Attributes::FeatureMap::Id: {
+        case DeviceEnergyManagement::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case ValveConfigurationAndControl::Attributes::ClusterRevision::Id: {
+        case DeviceEnergyManagement::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -13412,138 +15187,150 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case ElectricalPowerMeasurement::Id: {
+    case EnergyEvse::Id: {
         switch (path.mAttributeId)
         {
-        case ElectricalPowerMeasurement::Attributes::PowerMode::Id: {
-            chip::app::Clusters::ElectricalPowerMeasurement::PowerModeEnum value;
+        case EnergyEvse::Attributes::State::Id: {
+            chip::app::DataModel::Nullable<chip::app::Clusters::EnergyEvse::StateEnum> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PowerMode", 1, value);
+            return DataModelLogger::LogValue("State", 1, value);
         }
-        case ElectricalPowerMeasurement::Attributes::NumberOfMeasurementTypes::Id: {
-            uint8_t value;
+        case EnergyEvse::Attributes::SupplyState::Id: {
+            chip::app::Clusters::EnergyEvse::SupplyStateEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NumberOfMeasurementTypes", 1, value);
+            return DataModelLogger::LogValue("SupplyState", 1, value);
         }
-        case ElectricalPowerMeasurement::Attributes::Accuracy::Id: {
-            chip::app::DataModel::DecodableList<
-                chip::app::Clusters::ElectricalPowerMeasurement::Structs::MeasurementAccuracyStruct::DecodableType>
-                value;
+        case EnergyEvse::Attributes::FaultState::Id: {
+            chip::app::Clusters::EnergyEvse::FaultStateEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Accuracy", 1, value);
+            return DataModelLogger::LogValue("FaultState", 1, value);
         }
-        case ElectricalPowerMeasurement::Attributes::Ranges::Id: {
-            chip::app::DataModel::DecodableList<
-                chip::app::Clusters::ElectricalPowerMeasurement::Structs::MeasurementRangeStruct::DecodableType>
-                value;
+        case EnergyEvse::Attributes::ChargingEnabledUntil::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Ranges", 1, value);
+            return DataModelLogger::LogValue("ChargingEnabledUntil", 1, value);
         }
-        case ElectricalPowerMeasurement::Attributes::Voltage::Id: {
-            chip::app::DataModel::Nullable<int64_t> value;
+        case EnergyEvse::Attributes::DischargingEnabledUntil::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Voltage", 1, value);
+            return DataModelLogger::LogValue("DischargingEnabledUntil", 1, value);
         }
-        case ElectricalPowerMeasurement::Attributes::ActiveCurrent::Id: {
-            chip::app::DataModel::Nullable<int64_t> value;
+        case EnergyEvse::Attributes::CircuitCapacity::Id: {
+            int64_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ActiveCurrent", 1, value);
+            return DataModelLogger::LogValue("CircuitCapacity", 1, value);
         }
-        case ElectricalPowerMeasurement::Attributes::ReactiveCurrent::Id: {
-            chip::app::DataModel::Nullable<int64_t> value;
+        case EnergyEvse::Attributes::MinimumChargeCurrent::Id: {
+            int64_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ReactiveCurrent", 1, value);
+            return DataModelLogger::LogValue("MinimumChargeCurrent", 1, value);
         }
-        case ElectricalPowerMeasurement::Attributes::ApparentCurrent::Id: {
-            chip::app::DataModel::Nullable<int64_t> value;
+        case EnergyEvse::Attributes::MaximumChargeCurrent::Id: {
+            int64_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ApparentCurrent", 1, value);
+            return DataModelLogger::LogValue("MaximumChargeCurrent", 1, value);
         }
-        case ElectricalPowerMeasurement::Attributes::ActivePower::Id: {
-            chip::app::DataModel::Nullable<int64_t> value;
+        case EnergyEvse::Attributes::MaximumDischargeCurrent::Id: {
+            int64_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ActivePower", 1, value);
+            return DataModelLogger::LogValue("MaximumDischargeCurrent", 1, value);
         }
-        case ElectricalPowerMeasurement::Attributes::ReactivePower::Id: {
-            chip::app::DataModel::Nullable<int64_t> value;
+        case EnergyEvse::Attributes::UserMaximumChargeCurrent::Id: {
+            int64_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ReactivePower", 1, value);
+            return DataModelLogger::LogValue("UserMaximumChargeCurrent", 1, value);
         }
-        case ElectricalPowerMeasurement::Attributes::ApparentPower::Id: {
-            chip::app::DataModel::Nullable<int64_t> value;
+        case EnergyEvse::Attributes::RandomizationDelayWindow::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ApparentPower", 1, value);
+            return DataModelLogger::LogValue("RandomizationDelayWindow", 1, value);
         }
-        case ElectricalPowerMeasurement::Attributes::RMSVoltage::Id: {
-            chip::app::DataModel::Nullable<int64_t> value;
+        case EnergyEvse::Attributes::NextChargeStartTime::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("RMSVoltage", 1, value);
+            return DataModelLogger::LogValue("NextChargeStartTime", 1, value);
         }
-        case ElectricalPowerMeasurement::Attributes::RMSCurrent::Id: {
+        case EnergyEvse::Attributes::NextChargeTargetTime::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("NextChargeTargetTime", 1, value);
+        }
+        case EnergyEvse::Attributes::NextChargeRequiredEnergy::Id: {
             chip::app::DataModel::Nullable<int64_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("RMSCurrent", 1, value);
+            return DataModelLogger::LogValue("NextChargeRequiredEnergy", 1, value);
+        }
+        case EnergyEvse::Attributes::NextChargeTargetSoC::Id: {
+            chip::app::DataModel::Nullable<chip::Percent> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("NextChargeTargetSoC", 1, value);
+        }
+        case EnergyEvse::Attributes::ApproximateEVEfficiency::Id: {
+            chip::app::DataModel::Nullable<uint16_t> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("ApproximateEVEfficiency", 1, value);
+        }
+        case EnergyEvse::Attributes::StateOfCharge::Id: {
+            chip::app::DataModel::Nullable<chip::Percent> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("StateOfCharge", 1, value);
         }
-        case ElectricalPowerMeasurement::Attributes::RMSPower::Id: {
+        case EnergyEvse::Attributes::BatteryCapacity::Id: {
             chip::app::DataModel::Nullable<int64_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("RMSPower", 1, value);
+            return DataModelLogger::LogValue("BatteryCapacity", 1, value);
         }
-        case ElectricalPowerMeasurement::Attributes::Frequency::Id: {
-            chip::app::DataModel::Nullable<int64_t> value;
+        case EnergyEvse::Attributes::VehicleID::Id: {
+            chip::app::DataModel::Nullable<chip::CharSpan> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Frequency", 1, value);
+            return DataModelLogger::LogValue("VehicleID", 1, value);
         }
-        case ElectricalPowerMeasurement::Attributes::HarmonicCurrents::Id: {
-            chip::app::DataModel::Nullable<chip::app::DataModel::DecodableList<
-                chip::app::Clusters::ElectricalPowerMeasurement::Structs::HarmonicMeasurementStruct::DecodableType>>
-                value;
+        case EnergyEvse::Attributes::SessionID::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("HarmonicCurrents", 1, value);
+            return DataModelLogger::LogValue("SessionID", 1, value);
         }
-        case ElectricalPowerMeasurement::Attributes::HarmonicPhases::Id: {
-            chip::app::DataModel::Nullable<chip::app::DataModel::DecodableList<
-                chip::app::Clusters::ElectricalPowerMeasurement::Structs::HarmonicMeasurementStruct::DecodableType>>
-                value;
+        case EnergyEvse::Attributes::SessionDuration::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("HarmonicPhases", 1, value);
+            return DataModelLogger::LogValue("SessionDuration", 1, value);
         }
-        case ElectricalPowerMeasurement::Attributes::PowerFactor::Id: {
+        case EnergyEvse::Attributes::SessionEnergyCharged::Id: {
             chip::app::DataModel::Nullable<int64_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PowerFactor", 1, value);
+            return DataModelLogger::LogValue("SessionEnergyCharged", 1, value);
         }
-        case ElectricalPowerMeasurement::Attributes::NeutralCurrent::Id: {
+        case EnergyEvse::Attributes::SessionEnergyDischarged::Id: {
             chip::app::DataModel::Nullable<int64_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NeutralCurrent", 1, value);
+            return DataModelLogger::LogValue("SessionEnergyDischarged", 1, value);
         }
-        case ElectricalPowerMeasurement::Attributes::GeneratedCommandList::Id: {
+        case EnergyEvse::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ElectricalPowerMeasurement::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, EnergyEvse::Id);
         }
-        case ElectricalPowerMeasurement::Attributes::AcceptedCommandList::Id: {
+        case EnergyEvse::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ElectricalPowerMeasurement::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, EnergyEvse::Id);
         }
-        case ElectricalPowerMeasurement::Attributes::EventList::Id: {
+        case EnergyEvse::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case ElectricalPowerMeasurement::Attributes::AttributeList::Id: {
+        case EnergyEvse::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ElectricalPowerMeasurement::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, EnergyEvse::Id);
         }
-        case ElectricalPowerMeasurement::Attributes::FeatureMap::Id: {
+        case EnergyEvse::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case ElectricalPowerMeasurement::Attributes::ClusterRevision::Id: {
+        case EnergyEvse::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -13551,75 +15338,60 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case ElectricalEnergyMeasurement::Id: {
+    case EnergyPreference::Id: {
         switch (path.mAttributeId)
         {
-        case ElectricalEnergyMeasurement::Attributes::Accuracy::Id: {
-            chip::app::Clusters::ElectricalEnergyMeasurement::Structs::MeasurementAccuracyStruct::DecodableType value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Accuracy", 1, value);
-        }
-        case ElectricalEnergyMeasurement::Attributes::CumulativeEnergyImported::Id: {
-            chip::app::DataModel::Nullable<
-                chip::app::Clusters::ElectricalEnergyMeasurement::Structs::EnergyMeasurementStruct::DecodableType>
-                value;
+        case EnergyPreference::Attributes::EnergyBalances::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::EnergyPreference::Structs::BalanceStruct::DecodableType> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CumulativeEnergyImported", 1, value);
+            return DataModelLogger::LogValue("EnergyBalances", 1, value);
         }
-        case ElectricalEnergyMeasurement::Attributes::CumulativeEnergyExported::Id: {
-            chip::app::DataModel::Nullable<
-                chip::app::Clusters::ElectricalEnergyMeasurement::Structs::EnergyMeasurementStruct::DecodableType>
-                value;
+        case EnergyPreference::Attributes::CurrentEnergyBalance::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CumulativeEnergyExported", 1, value);
+            return DataModelLogger::LogValue("CurrentEnergyBalance", 1, value);
         }
-        case ElectricalEnergyMeasurement::Attributes::PeriodicEnergyImported::Id: {
-            chip::app::DataModel::Nullable<
-                chip::app::Clusters::ElectricalEnergyMeasurement::Structs::EnergyMeasurementStruct::DecodableType>
-                value;
+        case EnergyPreference::Attributes::EnergyPriorities::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::EnergyPreference::EnergyPriorityEnum> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PeriodicEnergyImported", 1, value);
+            return DataModelLogger::LogValue("EnergyPriorities", 1, value);
         }
-        case ElectricalEnergyMeasurement::Attributes::PeriodicEnergyExported::Id: {
-            chip::app::DataModel::Nullable<
-                chip::app::Clusters::ElectricalEnergyMeasurement::Structs::EnergyMeasurementStruct::DecodableType>
-                value;
+        case EnergyPreference::Attributes::LowPowerModeSensitivities::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::EnergyPreference::Structs::BalanceStruct::DecodableType> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PeriodicEnergyExported", 1, value);
+            return DataModelLogger::LogValue("LowPowerModeSensitivities", 1, value);
         }
-        case ElectricalEnergyMeasurement::Attributes::CumulativeEnergyReset::Id: {
-            chip::app::DataModel::Nullable<
-                chip::app::Clusters::ElectricalEnergyMeasurement::Structs::CumulativeEnergyResetStruct::DecodableType>
-                value;
+        case EnergyPreference::Attributes::CurrentLowPowerModeSensitivity::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CumulativeEnergyReset", 1, value);
+            return DataModelLogger::LogValue("CurrentLowPowerModeSensitivity", 1, value);
         }
-        case ElectricalEnergyMeasurement::Attributes::GeneratedCommandList::Id: {
+        case EnergyPreference::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ElectricalEnergyMeasurement::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, EnergyPreference::Id);
         }
-        case ElectricalEnergyMeasurement::Attributes::AcceptedCommandList::Id: {
+        case EnergyPreference::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ElectricalEnergyMeasurement::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, EnergyPreference::Id);
         }
-        case ElectricalEnergyMeasurement::Attributes::EventList::Id: {
+        case EnergyPreference::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case ElectricalEnergyMeasurement::Attributes::AttributeList::Id: {
+        case EnergyPreference::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ElectricalEnergyMeasurement::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, EnergyPreference::Id);
         }
-        case ElectricalEnergyMeasurement::Attributes::FeatureMap::Id: {
+        case EnergyPreference::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case ElectricalEnergyMeasurement::Attributes::ClusterRevision::Id: {
+        case EnergyPreference::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -13627,65 +15399,45 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case WaterHeaterManagement::Id: {
+    case PowerTopology::Id: {
         switch (path.mAttributeId)
         {
-        case WaterHeaterManagement::Attributes::HeaterTypes::Id: {
-            chip::BitMask<chip::app::Clusters::WaterHeaterManagement::WaterHeaterHeatSourceBitmap> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("HeaterTypes", 1, value);
-        }
-        case WaterHeaterManagement::Attributes::HeatDemand::Id: {
-            chip::BitMask<chip::app::Clusters::WaterHeaterManagement::WaterHeaterHeatSourceBitmap> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("HeatDemand", 1, value);
-        }
-        case WaterHeaterManagement::Attributes::TankVolume::Id: {
-            uint16_t value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TankVolume", 1, value);
-        }
-        case WaterHeaterManagement::Attributes::EstimatedHeatRequired::Id: {
-            int64_t value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EstimatedHeatRequired", 1, value);
-        }
-        case WaterHeaterManagement::Attributes::TankPercentage::Id: {
-            chip::Percent value;
+        case PowerTopology::Attributes::AvailableEndpoints::Id: {
+            chip::app::DataModel::DecodableList<chip::EndpointId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TankPercentage", 1, value);
+            return DataModelLogger::LogValue("AvailableEndpoints", 1, value);
         }
-        case WaterHeaterManagement::Attributes::BoostState::Id: {
-            chip::app::Clusters::WaterHeaterManagement::BoostStateEnum value;
+        case PowerTopology::Attributes::ActiveEndpoints::Id: {
+            chip::app::DataModel::DecodableList<chip::EndpointId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BoostState", 1, value);
+            return DataModelLogger::LogValue("ActiveEndpoints", 1, value);
         }
-        case WaterHeaterManagement::Attributes::GeneratedCommandList::Id: {
+        case PowerTopology::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, WaterHeaterManagement::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, PowerTopology::Id);
         }
-        case WaterHeaterManagement::Attributes::AcceptedCommandList::Id: {
+        case PowerTopology::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, WaterHeaterManagement::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, PowerTopology::Id);
         }
-        case WaterHeaterManagement::Attributes::EventList::Id: {
+        case PowerTopology::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case WaterHeaterManagement::Attributes::AttributeList::Id: {
+        case PowerTopology::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, WaterHeaterManagement::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, PowerTopology::Id);
         }
-        case WaterHeaterManagement::Attributes::FeatureMap::Id: {
+        case PowerTopology::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case WaterHeaterManagement::Attributes::ClusterRevision::Id: {
+        case PowerTopology::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -13693,81 +15445,113 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case DemandResponseLoadControl::Id: {
+    case EnergyEvseMode::Id: {
         switch (path.mAttributeId)
         {
-        case DemandResponseLoadControl::Attributes::LoadControlPrograms::Id: {
-            chip::app::DataModel::DecodableList<
-                chip::app::Clusters::DemandResponseLoadControl::Structs::LoadControlProgramStruct::DecodableType>
+        case EnergyEvseMode::Attributes::SupportedModes::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::EnergyEvseMode::Structs::ModeOptionStruct::DecodableType>
                 value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LoadControlPrograms", 1, value);
+            return DataModelLogger::LogValue("SupportedModes", 1, value);
         }
-        case DemandResponseLoadControl::Attributes::NumberOfLoadControlPrograms::Id: {
+        case EnergyEvseMode::Attributes::CurrentMode::Id: {
             uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NumberOfLoadControlPrograms", 1, value);
+            return DataModelLogger::LogValue("CurrentMode", 1, value);
         }
-        case DemandResponseLoadControl::Attributes::Events::Id: {
-            chip::app::DataModel::DecodableList<
-                chip::app::Clusters::DemandResponseLoadControl::Structs::LoadControlEventStruct::DecodableType>
-                value;
+        case EnergyEvseMode::Attributes::StartUpMode::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Events", 1, value);
+            return DataModelLogger::LogValue("StartUpMode", 1, value);
         }
-        case DemandResponseLoadControl::Attributes::ActiveEvents::Id: {
-            chip::app::DataModel::DecodableList<
-                chip::app::Clusters::DemandResponseLoadControl::Structs::LoadControlEventStruct::DecodableType>
-                value;
+        case EnergyEvseMode::Attributes::OnMode::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ActiveEvents", 1, value);
+            return DataModelLogger::LogValue("OnMode", 1, value);
         }
-        case DemandResponseLoadControl::Attributes::NumberOfEventsPerProgram::Id: {
-            uint8_t value;
+        case EnergyEvseMode::Attributes::GeneratedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NumberOfEventsPerProgram", 1, value);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, EnergyEvseMode::Id);
         }
-        case DemandResponseLoadControl::Attributes::NumberOfTransitions::Id: {
-            uint8_t value;
+        case EnergyEvseMode::Attributes::AcceptedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NumberOfTransitions", 1, value);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, EnergyEvseMode::Id);
         }
-        case DemandResponseLoadControl::Attributes::DefaultRandomStart::Id: {
+        case EnergyEvseMode::Attributes::EventList::Id: {
+            chip::app::DataModel::DecodableList<chip::EventId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("EventList", 1, value);
+        }
+        case EnergyEvseMode::Attributes::AttributeList::Id: {
+            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, EnergyEvseMode::Id);
+        }
+        case EnergyEvseMode::Attributes::FeatureMap::Id: {
+            uint32_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("FeatureMap", 1, value);
+        }
+        case EnergyEvseMode::Attributes::ClusterRevision::Id: {
+            uint16_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("ClusterRevision", 1, value);
+        }
+        }
+        break;
+    }
+    case WaterHeaterMode::Id: {
+        switch (path.mAttributeId)
+        {
+        case WaterHeaterMode::Attributes::SupportedModes::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::WaterHeaterMode::Structs::ModeOptionStruct::DecodableType>
+                value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("SupportedModes", 1, value);
+        }
+        case WaterHeaterMode::Attributes::CurrentMode::Id: {
             uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("DefaultRandomStart", 1, value);
+            return DataModelLogger::LogValue("CurrentMode", 1, value);
+        }
+        case WaterHeaterMode::Attributes::StartUpMode::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("StartUpMode", 1, value);
         }
-        case DemandResponseLoadControl::Attributes::DefaultRandomDuration::Id: {
-            uint8_t value;
+        case WaterHeaterMode::Attributes::OnMode::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("DefaultRandomDuration", 1, value);
+            return DataModelLogger::LogValue("OnMode", 1, value);
         }
-        case DemandResponseLoadControl::Attributes::GeneratedCommandList::Id: {
+        case WaterHeaterMode::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, DemandResponseLoadControl::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, WaterHeaterMode::Id);
         }
-        case DemandResponseLoadControl::Attributes::AcceptedCommandList::Id: {
+        case WaterHeaterMode::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, DemandResponseLoadControl::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, WaterHeaterMode::Id);
         }
-        case DemandResponseLoadControl::Attributes::EventList::Id: {
+        case WaterHeaterMode::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case DemandResponseLoadControl::Attributes::AttributeList::Id: {
+        case WaterHeaterMode::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, DemandResponseLoadControl::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, WaterHeaterMode::Id);
         }
-        case DemandResponseLoadControl::Attributes::FeatureMap::Id: {
+        case WaterHeaterMode::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case DemandResponseLoadControl::Attributes::ClusterRevision::Id: {
+        case WaterHeaterMode::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -13775,45 +15559,57 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case Messages::Id: {
+    case DeviceEnergyManagementMode::Id: {
         switch (path.mAttributeId)
         {
-        case Messages::Attributes::Messages::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::Messages::Structs::MessageStruct::DecodableType> value;
+        case DeviceEnergyManagementMode::Attributes::SupportedModes::Id: {
+            chip::app::DataModel::DecodableList<
+                chip::app::Clusters::DeviceEnergyManagementMode::Structs::ModeOptionStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Messages", 1, value);
+            return DataModelLogger::LogValue("SupportedModes", 1, value);
         }
-        case Messages::Attributes::ActiveMessageIDs::Id: {
-            chip::app::DataModel::DecodableList<chip::ByteSpan> value;
+        case DeviceEnergyManagementMode::Attributes::CurrentMode::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ActiveMessageIDs", 1, value);
+            return DataModelLogger::LogValue("CurrentMode", 1, value);
         }
-        case Messages::Attributes::GeneratedCommandList::Id: {
+        case DeviceEnergyManagementMode::Attributes::StartUpMode::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("StartUpMode", 1, value);
+        }
+        case DeviceEnergyManagementMode::Attributes::OnMode::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("OnMode", 1, value);
+        }
+        case DeviceEnergyManagementMode::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, Messages::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, DeviceEnergyManagementMode::Id);
         }
-        case Messages::Attributes::AcceptedCommandList::Id: {
+        case DeviceEnergyManagementMode::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, Messages::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, DeviceEnergyManagementMode::Id);
         }
-        case Messages::Attributes::EventList::Id: {
+        case DeviceEnergyManagementMode::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case Messages::Attributes::AttributeList::Id: {
+        case DeviceEnergyManagementMode::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, Messages::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, DeviceEnergyManagementMode::Id);
         }
-        case Messages::Attributes::FeatureMap::Id: {
+        case DeviceEnergyManagementMode::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case Messages::Attributes::ClusterRevision::Id: {
+        case DeviceEnergyManagementMode::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -13821,290 +15617,260 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case DeviceEnergyManagement::Id: {
+    case DoorLock::Id: {
         switch (path.mAttributeId)
         {
-        case DeviceEnergyManagement::Attributes::ESAType::Id: {
-            chip::app::Clusters::DeviceEnergyManagement::ESATypeEnum value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ESAType", 1, value);
-        }
-        case DeviceEnergyManagement::Attributes::ESACanGenerate::Id: {
-            bool value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ESACanGenerate", 1, value);
-        }
-        case DeviceEnergyManagement::Attributes::ESAState::Id: {
-            chip::app::Clusters::DeviceEnergyManagement::ESAStateEnum value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ESAState", 1, value);
-        }
-        case DeviceEnergyManagement::Attributes::AbsMinPower::Id: {
-            int64_t value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AbsMinPower", 1, value);
-        }
-        case DeviceEnergyManagement::Attributes::AbsMaxPower::Id: {
-            int64_t value;
+        case DoorLock::Attributes::LockState::Id: {
+            chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlLockState> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AbsMaxPower", 1, value);
+            return DataModelLogger::LogValue("LockState", 1, value);
         }
-        case DeviceEnergyManagement::Attributes::PowerAdjustmentCapability::Id: {
-            chip::app::DataModel::Nullable<
-                chip::app::Clusters::DeviceEnergyManagement::Structs::PowerAdjustCapabilityStruct::DecodableType>
-                value;
+        case DoorLock::Attributes::LockType::Id: {
+            chip::app::Clusters::DoorLock::DlLockType value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PowerAdjustmentCapability", 1, value);
+            return DataModelLogger::LogValue("LockType", 1, value);
         }
-        case DeviceEnergyManagement::Attributes::Forecast::Id: {
-            chip::app::DataModel::Nullable<chip::app::Clusters::DeviceEnergyManagement::Structs::ForecastStruct::DecodableType>
-                value;
+        case DoorLock::Attributes::ActuatorEnabled::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Forecast", 1, value);
+            return DataModelLogger::LogValue("ActuatorEnabled", 1, value);
         }
-        case DeviceEnergyManagement::Attributes::OptOutState::Id: {
-            chip::app::Clusters::DeviceEnergyManagement::OptOutStateEnum value;
+        case DoorLock::Attributes::DoorState::Id: {
+            chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DoorStateEnum> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OptOutState", 1, value);
+            return DataModelLogger::LogValue("DoorState", 1, value);
         }
-        case DeviceEnergyManagement::Attributes::GeneratedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case DoorLock::Attributes::DoorOpenEvents::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, DeviceEnergyManagement::Id);
+            return DataModelLogger::LogValue("DoorOpenEvents", 1, value);
         }
-        case DeviceEnergyManagement::Attributes::AcceptedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case DoorLock::Attributes::DoorClosedEvents::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, DeviceEnergyManagement::Id);
+            return DataModelLogger::LogValue("DoorClosedEvents", 1, value);
         }
-        case DeviceEnergyManagement::Attributes::EventList::Id: {
-            chip::app::DataModel::DecodableList<chip::EventId> value;
+        case DoorLock::Attributes::OpenPeriod::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EventList", 1, value);
+            return DataModelLogger::LogValue("OpenPeriod", 1, value);
         }
-        case DeviceEnergyManagement::Attributes::AttributeList::Id: {
-            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+        case DoorLock::Attributes::NumberOfTotalUsersSupported::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, DeviceEnergyManagement::Id);
+            return DataModelLogger::LogValue("NumberOfTotalUsersSupported", 1, value);
         }
-        case DeviceEnergyManagement::Attributes::FeatureMap::Id: {
-            uint32_t value;
+        case DoorLock::Attributes::NumberOfPINUsersSupported::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("FeatureMap", 1, value);
+            return DataModelLogger::LogValue("NumberOfPINUsersSupported", 1, value);
         }
-        case DeviceEnergyManagement::Attributes::ClusterRevision::Id: {
+        case DoorLock::Attributes::NumberOfRFIDUsersSupported::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ClusterRevision", 1, value);
-        }
+            return DataModelLogger::LogValue("NumberOfRFIDUsersSupported", 1, value);
         }
-        break;
-    }
-    case EnergyEvse::Id: {
-        switch (path.mAttributeId)
-        {
-        case EnergyEvse::Attributes::State::Id: {
-            chip::app::DataModel::Nullable<chip::app::Clusters::EnergyEvse::StateEnum> value;
+        case DoorLock::Attributes::NumberOfWeekDaySchedulesSupportedPerUser::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("State", 1, value);
+            return DataModelLogger::LogValue("NumberOfWeekDaySchedulesSupportedPerUser", 1, value);
         }
-        case EnergyEvse::Attributes::SupplyState::Id: {
-            chip::app::Clusters::EnergyEvse::SupplyStateEnum value;
+        case DoorLock::Attributes::NumberOfYearDaySchedulesSupportedPerUser::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SupplyState", 1, value);
+            return DataModelLogger::LogValue("NumberOfYearDaySchedulesSupportedPerUser", 1, value);
         }
-        case EnergyEvse::Attributes::FaultState::Id: {
-            chip::app::Clusters::EnergyEvse::FaultStateEnum value;
+        case DoorLock::Attributes::NumberOfHolidaySchedulesSupported::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("FaultState", 1, value);
+            return DataModelLogger::LogValue("NumberOfHolidaySchedulesSupported", 1, value);
         }
-        case EnergyEvse::Attributes::ChargingEnabledUntil::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
+        case DoorLock::Attributes::MaxPINCodeLength::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ChargingEnabledUntil", 1, value);
+            return DataModelLogger::LogValue("MaxPINCodeLength", 1, value);
         }
-        case EnergyEvse::Attributes::DischargingEnabledUntil::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
+        case DoorLock::Attributes::MinPINCodeLength::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("DischargingEnabledUntil", 1, value);
+            return DataModelLogger::LogValue("MinPINCodeLength", 1, value);
         }
-        case EnergyEvse::Attributes::CircuitCapacity::Id: {
-            int64_t value;
+        case DoorLock::Attributes::MaxRFIDCodeLength::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CircuitCapacity", 1, value);
+            return DataModelLogger::LogValue("MaxRFIDCodeLength", 1, value);
         }
-        case EnergyEvse::Attributes::MinimumChargeCurrent::Id: {
-            int64_t value;
+        case DoorLock::Attributes::MinRFIDCodeLength::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MinimumChargeCurrent", 1, value);
+            return DataModelLogger::LogValue("MinRFIDCodeLength", 1, value);
         }
-        case EnergyEvse::Attributes::MaximumChargeCurrent::Id: {
-            int64_t value;
+        case DoorLock::Attributes::CredentialRulesSupport::Id: {
+            chip::BitMask<chip::app::Clusters::DoorLock::DlCredentialRuleMask> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MaximumChargeCurrent", 1, value);
+            return DataModelLogger::LogValue("CredentialRulesSupport", 1, value);
         }
-        case EnergyEvse::Attributes::MaximumDischargeCurrent::Id: {
-            int64_t value;
+        case DoorLock::Attributes::NumberOfCredentialsSupportedPerUser::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MaximumDischargeCurrent", 1, value);
+            return DataModelLogger::LogValue("NumberOfCredentialsSupportedPerUser", 1, value);
         }
-        case EnergyEvse::Attributes::UserMaximumChargeCurrent::Id: {
-            int64_t value;
+        case DoorLock::Attributes::Language::Id: {
+            chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("UserMaximumChargeCurrent", 1, value);
+            return DataModelLogger::LogValue("Language", 1, value);
         }
-        case EnergyEvse::Attributes::RandomizationDelayWindow::Id: {
-            uint32_t value;
+        case DoorLock::Attributes::LEDSettings::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("RandomizationDelayWindow", 1, value);
+            return DataModelLogger::LogValue("LEDSettings", 1, value);
         }
-        case EnergyEvse::Attributes::NextChargeStartTime::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
+        case DoorLock::Attributes::AutoRelockTime::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NextChargeStartTime", 1, value);
+            return DataModelLogger::LogValue("AutoRelockTime", 1, value);
         }
-        case EnergyEvse::Attributes::NextChargeTargetTime::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
+        case DoorLock::Attributes::SoundVolume::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NextChargeTargetTime", 1, value);
+            return DataModelLogger::LogValue("SoundVolume", 1, value);
         }
-        case EnergyEvse::Attributes::NextChargeRequiredEnergy::Id: {
-            chip::app::DataModel::Nullable<int64_t> value;
+        case DoorLock::Attributes::OperatingMode::Id: {
+            chip::app::Clusters::DoorLock::OperatingModeEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NextChargeRequiredEnergy", 1, value);
+            return DataModelLogger::LogValue("OperatingMode", 1, value);
         }
-        case EnergyEvse::Attributes::NextChargeTargetSoC::Id: {
-            chip::app::DataModel::Nullable<chip::Percent> value;
+        case DoorLock::Attributes::SupportedOperatingModes::Id: {
+            chip::BitMask<chip::app::Clusters::DoorLock::DlSupportedOperatingModes> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NextChargeTargetSoC", 1, value);
+            return DataModelLogger::LogValue("SupportedOperatingModes", 1, value);
         }
-        case EnergyEvse::Attributes::ApproximateEVEfficiency::Id: {
-            chip::app::DataModel::Nullable<uint16_t> value;
+        case DoorLock::Attributes::DefaultConfigurationRegister::Id: {
+            chip::BitMask<chip::app::Clusters::DoorLock::DlDefaultConfigurationRegister> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ApproximateEVEfficiency", 1, value);
+            return DataModelLogger::LogValue("DefaultConfigurationRegister", 1, value);
         }
-        case EnergyEvse::Attributes::StateOfCharge::Id: {
-            chip::app::DataModel::Nullable<chip::Percent> value;
+        case DoorLock::Attributes::EnableLocalProgramming::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("StateOfCharge", 1, value);
+            return DataModelLogger::LogValue("EnableLocalProgramming", 1, value);
         }
-        case EnergyEvse::Attributes::BatteryCapacity::Id: {
-            chip::app::DataModel::Nullable<int64_t> value;
+        case DoorLock::Attributes::EnableOneTouchLocking::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BatteryCapacity", 1, value);
+            return DataModelLogger::LogValue("EnableOneTouchLocking", 1, value);
         }
-        case EnergyEvse::Attributes::VehicleID::Id: {
-            chip::app::DataModel::Nullable<chip::CharSpan> value;
+        case DoorLock::Attributes::EnableInsideStatusLED::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("VehicleID", 1, value);
+            return DataModelLogger::LogValue("EnableInsideStatusLED", 1, value);
         }
-        case EnergyEvse::Attributes::SessionID::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
+        case DoorLock::Attributes::EnablePrivacyModeButton::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SessionID", 1, value);
+            return DataModelLogger::LogValue("EnablePrivacyModeButton", 1, value);
         }
-        case EnergyEvse::Attributes::SessionDuration::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
+        case DoorLock::Attributes::LocalProgrammingFeatures::Id: {
+            chip::BitMask<chip::app::Clusters::DoorLock::DlLocalProgrammingFeatures> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SessionDuration", 1, value);
+            return DataModelLogger::LogValue("LocalProgrammingFeatures", 1, value);
         }
-        case EnergyEvse::Attributes::SessionEnergyCharged::Id: {
-            chip::app::DataModel::Nullable<int64_t> value;
+        case DoorLock::Attributes::WrongCodeEntryLimit::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SessionEnergyCharged", 1, value);
+            return DataModelLogger::LogValue("WrongCodeEntryLimit", 1, value);
         }
-        case EnergyEvse::Attributes::SessionEnergyDischarged::Id: {
-            chip::app::DataModel::Nullable<int64_t> value;
+        case DoorLock::Attributes::UserCodeTemporaryDisableTime::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SessionEnergyDischarged", 1, value);
+            return DataModelLogger::LogValue("UserCodeTemporaryDisableTime", 1, value);
         }
-        case EnergyEvse::Attributes::GeneratedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case DoorLock::Attributes::SendPINOverTheAir::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, EnergyEvse::Id);
+            return DataModelLogger::LogValue("SendPINOverTheAir", 1, value);
         }
-        case EnergyEvse::Attributes::AcceptedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case DoorLock::Attributes::RequirePINforRemoteOperation::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, EnergyEvse::Id);
+            return DataModelLogger::LogValue("RequirePINforRemoteOperation", 1, value);
         }
-        case EnergyEvse::Attributes::EventList::Id: {
-            chip::app::DataModel::DecodableList<chip::EventId> value;
+        case DoorLock::Attributes::ExpiringUserTimeout::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EventList", 1, value);
+            return DataModelLogger::LogValue("ExpiringUserTimeout", 1, value);
         }
-        case EnergyEvse::Attributes::AttributeList::Id: {
-            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+        case DoorLock::Attributes::AliroReaderVerificationKey::Id: {
+            chip::app::DataModel::Nullable<chip::ByteSpan> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, EnergyEvse::Id);
+            return DataModelLogger::LogValue("AliroReaderVerificationKey", 1, value);
         }
-        case EnergyEvse::Attributes::FeatureMap::Id: {
-            uint32_t value;
+        case DoorLock::Attributes::AliroReaderGroupIdentifier::Id: {
+            chip::app::DataModel::Nullable<chip::ByteSpan> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("FeatureMap", 1, value);
+            return DataModelLogger::LogValue("AliroReaderGroupIdentifier", 1, value);
         }
-        case EnergyEvse::Attributes::ClusterRevision::Id: {
-            uint16_t value;
+        case DoorLock::Attributes::AliroReaderGroupSubIdentifier::Id: {
+            chip::ByteSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ClusterRevision", 1, value);
+            return DataModelLogger::LogValue("AliroReaderGroupSubIdentifier", 1, value);
         }
+        case DoorLock::Attributes::AliroExpeditedTransactionSupportedProtocolVersions::Id: {
+            chip::app::DataModel::DecodableList<chip::ByteSpan> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("AliroExpeditedTransactionSupportedProtocolVersions", 1, value);
         }
-        break;
-    }
-    case EnergyPreference::Id: {
-        switch (path.mAttributeId)
-        {
-        case EnergyPreference::Attributes::EnergyBalances::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::EnergyPreference::Structs::BalanceStruct::DecodableType> value;
+        case DoorLock::Attributes::AliroGroupResolvingKey::Id: {
+            chip::app::DataModel::Nullable<chip::ByteSpan> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EnergyBalances", 1, value);
+            return DataModelLogger::LogValue("AliroGroupResolvingKey", 1, value);
         }
-        case EnergyPreference::Attributes::CurrentEnergyBalance::Id: {
-            uint8_t value;
+        case DoorLock::Attributes::AliroSupportedBLEUWBProtocolVersions::Id: {
+            chip::app::DataModel::DecodableList<chip::ByteSpan> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentEnergyBalance", 1, value);
+            return DataModelLogger::LogValue("AliroSupportedBLEUWBProtocolVersions", 1, value);
         }
-        case EnergyPreference::Attributes::EnergyPriorities::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::EnergyPreference::EnergyPriorityEnum> value;
+        case DoorLock::Attributes::AliroBLEAdvertisingVersion::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EnergyPriorities", 1, value);
+            return DataModelLogger::LogValue("AliroBLEAdvertisingVersion", 1, value);
         }
-        case EnergyPreference::Attributes::LowPowerModeSensitivities::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::EnergyPreference::Structs::BalanceStruct::DecodableType> value;
+        case DoorLock::Attributes::NumberOfAliroCredentialIssuerKeysSupported::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LowPowerModeSensitivities", 1, value);
+            return DataModelLogger::LogValue("NumberOfAliroCredentialIssuerKeysSupported", 1, value);
         }
-        case EnergyPreference::Attributes::CurrentLowPowerModeSensitivity::Id: {
-            uint8_t value;
+        case DoorLock::Attributes::NumberOfAliroEndpointKeysSupported::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentLowPowerModeSensitivity", 1, value);
+            return DataModelLogger::LogValue("NumberOfAliroEndpointKeysSupported", 1, value);
         }
-        case EnergyPreference::Attributes::GeneratedCommandList::Id: {
+        case DoorLock::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, EnergyPreference::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, DoorLock::Id);
         }
-        case EnergyPreference::Attributes::AcceptedCommandList::Id: {
+        case DoorLock::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, EnergyPreference::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, DoorLock::Id);
         }
-        case EnergyPreference::Attributes::EventList::Id: {
+        case DoorLock::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case EnergyPreference::Attributes::AttributeList::Id: {
+        case DoorLock::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, EnergyPreference::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, DoorLock::Id);
         }
-        case EnergyPreference::Attributes::FeatureMap::Id: {
+        case DoorLock::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case EnergyPreference::Attributes::ClusterRevision::Id: {
+        case DoorLock::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -14112,159 +15878,145 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case PowerTopology::Id: {
+    case WindowCovering::Id: {
         switch (path.mAttributeId)
         {
-        case PowerTopology::Attributes::AvailableEndpoints::Id: {
-            chip::app::DataModel::DecodableList<chip::EndpointId> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AvailableEndpoints", 1, value);
-        }
-        case PowerTopology::Attributes::ActiveEndpoints::Id: {
-            chip::app::DataModel::DecodableList<chip::EndpointId> value;
+        case WindowCovering::Attributes::Type::Id: {
+            chip::app::Clusters::WindowCovering::Type value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ActiveEndpoints", 1, value);
+            return DataModelLogger::LogValue("Type", 1, value);
         }
-        case PowerTopology::Attributes::GeneratedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case WindowCovering::Attributes::PhysicalClosedLimitLift::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, PowerTopology::Id);
+            return DataModelLogger::LogValue("PhysicalClosedLimitLift", 1, value);
         }
-        case PowerTopology::Attributes::AcceptedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case WindowCovering::Attributes::PhysicalClosedLimitTilt::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, PowerTopology::Id);
+            return DataModelLogger::LogValue("PhysicalClosedLimitTilt", 1, value);
         }
-        case PowerTopology::Attributes::EventList::Id: {
-            chip::app::DataModel::DecodableList<chip::EventId> value;
+        case WindowCovering::Attributes::CurrentPositionLift::Id: {
+            chip::app::DataModel::Nullable<uint16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EventList", 1, value);
+            return DataModelLogger::LogValue("CurrentPositionLift", 1, value);
         }
-        case PowerTopology::Attributes::AttributeList::Id: {
-            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+        case WindowCovering::Attributes::CurrentPositionTilt::Id: {
+            chip::app::DataModel::Nullable<uint16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, PowerTopology::Id);
+            return DataModelLogger::LogValue("CurrentPositionTilt", 1, value);
         }
-        case PowerTopology::Attributes::FeatureMap::Id: {
-            uint32_t value;
+        case WindowCovering::Attributes::NumberOfActuationsLift::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("FeatureMap", 1, value);
+            return DataModelLogger::LogValue("NumberOfActuationsLift", 1, value);
         }
-        case PowerTopology::Attributes::ClusterRevision::Id: {
+        case WindowCovering::Attributes::NumberOfActuationsTilt::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ClusterRevision", 1, value);
-        }
+            return DataModelLogger::LogValue("NumberOfActuationsTilt", 1, value);
         }
-        break;
-    }
-    case EnergyEvseMode::Id: {
-        switch (path.mAttributeId)
-        {
-        case EnergyEvseMode::Attributes::SupportedModes::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::EnergyEvseMode::Structs::ModeOptionStruct::DecodableType>
-                value;
+        case WindowCovering::Attributes::ConfigStatus::Id: {
+            chip::BitMask<chip::app::Clusters::WindowCovering::ConfigStatus> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SupportedModes", 1, value);
+            return DataModelLogger::LogValue("ConfigStatus", 1, value);
         }
-        case EnergyEvseMode::Attributes::CurrentMode::Id: {
-            uint8_t value;
+        case WindowCovering::Attributes::CurrentPositionLiftPercentage::Id: {
+            chip::app::DataModel::Nullable<chip::Percent> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentMode", 1, value);
+            return DataModelLogger::LogValue("CurrentPositionLiftPercentage", 1, value);
         }
-        case EnergyEvseMode::Attributes::StartUpMode::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case WindowCovering::Attributes::CurrentPositionTiltPercentage::Id: {
+            chip::app::DataModel::Nullable<chip::Percent> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("StartUpMode", 1, value);
+            return DataModelLogger::LogValue("CurrentPositionTiltPercentage", 1, value);
         }
-        case EnergyEvseMode::Attributes::OnMode::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case WindowCovering::Attributes::OperationalStatus::Id: {
+            chip::BitMask<chip::app::Clusters::WindowCovering::OperationalStatus> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OnMode", 1, value);
+            return DataModelLogger::LogValue("OperationalStatus", 1, value);
         }
-        case EnergyEvseMode::Attributes::GeneratedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case WindowCovering::Attributes::TargetPositionLiftPercent100ths::Id: {
+            chip::app::DataModel::Nullable<chip::Percent100ths> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, EnergyEvseMode::Id);
+            return DataModelLogger::LogValue("TargetPositionLiftPercent100ths", 1, value);
         }
-        case EnergyEvseMode::Attributes::AcceptedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case WindowCovering::Attributes::TargetPositionTiltPercent100ths::Id: {
+            chip::app::DataModel::Nullable<chip::Percent100ths> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, EnergyEvseMode::Id);
+            return DataModelLogger::LogValue("TargetPositionTiltPercent100ths", 1, value);
         }
-        case EnergyEvseMode::Attributes::EventList::Id: {
-            chip::app::DataModel::DecodableList<chip::EventId> value;
+        case WindowCovering::Attributes::EndProductType::Id: {
+            chip::app::Clusters::WindowCovering::EndProductType value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EventList", 1, value);
+            return DataModelLogger::LogValue("EndProductType", 1, value);
         }
-        case EnergyEvseMode::Attributes::AttributeList::Id: {
-            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+        case WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id: {
+            chip::app::DataModel::Nullable<chip::Percent100ths> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, EnergyEvseMode::Id);
+            return DataModelLogger::LogValue("CurrentPositionLiftPercent100ths", 1, value);
         }
-        case EnergyEvseMode::Attributes::FeatureMap::Id: {
-            uint32_t value;
+        case WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id: {
+            chip::app::DataModel::Nullable<chip::Percent100ths> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("FeatureMap", 1, value);
+            return DataModelLogger::LogValue("CurrentPositionTiltPercent100ths", 1, value);
         }
-        case EnergyEvseMode::Attributes::ClusterRevision::Id: {
+        case WindowCovering::Attributes::InstalledOpenLimitLift::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ClusterRevision", 1, value);
+            return DataModelLogger::LogValue("InstalledOpenLimitLift", 1, value);
         }
+        case WindowCovering::Attributes::InstalledClosedLimitLift::Id: {
+            uint16_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("InstalledClosedLimitLift", 1, value);
         }
-        break;
-    }
-    case WaterHeaterMode::Id: {
-        switch (path.mAttributeId)
-        {
-        case WaterHeaterMode::Attributes::SupportedModes::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::WaterHeaterMode::Structs::ModeOptionStruct::DecodableType>
-                value;
+        case WindowCovering::Attributes::InstalledOpenLimitTilt::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SupportedModes", 1, value);
+            return DataModelLogger::LogValue("InstalledOpenLimitTilt", 1, value);
         }
-        case WaterHeaterMode::Attributes::CurrentMode::Id: {
-            uint8_t value;
+        case WindowCovering::Attributes::InstalledClosedLimitTilt::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentMode", 1, value);
+            return DataModelLogger::LogValue("InstalledClosedLimitTilt", 1, value);
         }
-        case WaterHeaterMode::Attributes::StartUpMode::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case WindowCovering::Attributes::Mode::Id: {
+            chip::BitMask<chip::app::Clusters::WindowCovering::Mode> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("StartUpMode", 1, value);
+            return DataModelLogger::LogValue("Mode", 1, value);
         }
-        case WaterHeaterMode::Attributes::OnMode::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case WindowCovering::Attributes::SafetyStatus::Id: {
+            chip::BitMask<chip::app::Clusters::WindowCovering::SafetyStatus> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OnMode", 1, value);
+            return DataModelLogger::LogValue("SafetyStatus", 1, value);
         }
-        case WaterHeaterMode::Attributes::GeneratedCommandList::Id: {
+        case WindowCovering::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, WaterHeaterMode::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, WindowCovering::Id);
         }
-        case WaterHeaterMode::Attributes::AcceptedCommandList::Id: {
+        case WindowCovering::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, WaterHeaterMode::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, WindowCovering::Id);
         }
-        case WaterHeaterMode::Attributes::EventList::Id: {
+        case WindowCovering::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case WaterHeaterMode::Attributes::AttributeList::Id: {
+        case WindowCovering::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, WaterHeaterMode::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, WindowCovering::Id);
         }
-        case WaterHeaterMode::Attributes::FeatureMap::Id: {
+        case WindowCovering::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case WaterHeaterMode::Attributes::ClusterRevision::Id: {
+        case WindowCovering::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -14272,318 +16024,302 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case DeviceEnergyManagementMode::Id: {
+    case BarrierControl::Id: {
         switch (path.mAttributeId)
         {
-        case DeviceEnergyManagementMode::Attributes::SupportedModes::Id: {
-            chip::app::DataModel::DecodableList<
-                chip::app::Clusters::DeviceEnergyManagementMode::Structs::ModeOptionStruct::DecodableType>
-                value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SupportedModes", 1, value);
-        }
-        case DeviceEnergyManagementMode::Attributes::CurrentMode::Id: {
+        case BarrierControl::Attributes::BarrierMovingState::Id: {
             uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentMode", 1, value);
+            return DataModelLogger::LogValue("barrier moving state", 1, value);
         }
-        case DeviceEnergyManagementMode::Attributes::StartUpMode::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case BarrierControl::Attributes::BarrierSafetyStatus::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("StartUpMode", 1, value);
+            return DataModelLogger::LogValue("barrier safety status", 1, value);
         }
-        case DeviceEnergyManagementMode::Attributes::OnMode::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case BarrierControl::Attributes::BarrierCapabilities::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OnMode", 1, value);
+            return DataModelLogger::LogValue("barrier capabilities", 1, value);
         }
-        case DeviceEnergyManagementMode::Attributes::GeneratedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case BarrierControl::Attributes::BarrierOpenEvents::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, DeviceEnergyManagementMode::Id);
+            return DataModelLogger::LogValue("barrier open events", 1, value);
         }
-        case DeviceEnergyManagementMode::Attributes::AcceptedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case BarrierControl::Attributes::BarrierCloseEvents::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, DeviceEnergyManagementMode::Id);
+            return DataModelLogger::LogValue("barrier close events", 1, value);
         }
-        case DeviceEnergyManagementMode::Attributes::EventList::Id: {
-            chip::app::DataModel::DecodableList<chip::EventId> value;
+        case BarrierControl::Attributes::BarrierCommandOpenEvents::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EventList", 1, value);
+            return DataModelLogger::LogValue("barrier command open events", 1, value);
         }
-        case DeviceEnergyManagementMode::Attributes::AttributeList::Id: {
-            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+        case BarrierControl::Attributes::BarrierCommandCloseEvents::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, DeviceEnergyManagementMode::Id);
+            return DataModelLogger::LogValue("barrier command close events", 1, value);
         }
-        case DeviceEnergyManagementMode::Attributes::FeatureMap::Id: {
-            uint32_t value;
+        case BarrierControl::Attributes::BarrierOpenPeriod::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("FeatureMap", 1, value);
+            return DataModelLogger::LogValue("barrier open period", 1, value);
         }
-        case DeviceEnergyManagementMode::Attributes::ClusterRevision::Id: {
+        case BarrierControl::Attributes::BarrierClosePeriod::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ClusterRevision", 1, value);
-        }
+            return DataModelLogger::LogValue("barrier close period", 1, value);
         }
-        break;
-    }
-    case DoorLock::Id: {
-        switch (path.mAttributeId)
-        {
-        case DoorLock::Attributes::LockState::Id: {
-            chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DlLockState> value;
+        case BarrierControl::Attributes::BarrierPosition::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LockState", 1, value);
+            return DataModelLogger::LogValue("barrier position", 1, value);
         }
-        case DoorLock::Attributes::LockType::Id: {
-            chip::app::Clusters::DoorLock::DlLockType value;
+        case BarrierControl::Attributes::GeneratedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LockType", 1, value);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, BarrierControl::Id);
         }
-        case DoorLock::Attributes::ActuatorEnabled::Id: {
-            bool value;
+        case BarrierControl::Attributes::AcceptedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ActuatorEnabled", 1, value);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, BarrierControl::Id);
         }
-        case DoorLock::Attributes::DoorState::Id: {
-            chip::app::DataModel::Nullable<chip::app::Clusters::DoorLock::DoorStateEnum> value;
+        case BarrierControl::Attributes::EventList::Id: {
+            chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("DoorState", 1, value);
+            return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case DoorLock::Attributes::DoorOpenEvents::Id: {
-            uint32_t value;
+        case BarrierControl::Attributes::AttributeList::Id: {
+            chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("DoorOpenEvents", 1, value);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, BarrierControl::Id);
         }
-        case DoorLock::Attributes::DoorClosedEvents::Id: {
+        case BarrierControl::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("DoorClosedEvents", 1, value);
-        }
-        case DoorLock::Attributes::OpenPeriod::Id: {
-            uint16_t value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OpenPeriod", 1, value);
+            return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case DoorLock::Attributes::NumberOfTotalUsersSupported::Id: {
+        case BarrierControl::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NumberOfTotalUsersSupported", 1, value);
+            return DataModelLogger::LogValue("ClusterRevision", 1, value);
         }
-        case DoorLock::Attributes::NumberOfPINUsersSupported::Id: {
-            uint16_t value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NumberOfPINUsersSupported", 1, value);
         }
-        case DoorLock::Attributes::NumberOfRFIDUsersSupported::Id: {
-            uint16_t value;
+        break;
+    }
+    case ServiceArea::Id: {
+        switch (path.mAttributeId)
+        {
+        case ServiceArea::Attributes::SupportedAreas::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::ServiceArea::Structs::AreaStruct::DecodableType> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NumberOfRFIDUsersSupported", 1, value);
+            return DataModelLogger::LogValue("SupportedAreas", 1, value);
         }
-        case DoorLock::Attributes::NumberOfWeekDaySchedulesSupportedPerUser::Id: {
-            uint8_t value;
+        case ServiceArea::Attributes::SupportedMaps::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::ServiceArea::Structs::MapStruct::DecodableType> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NumberOfWeekDaySchedulesSupportedPerUser", 1, value);
+            return DataModelLogger::LogValue("SupportedMaps", 1, value);
         }
-        case DoorLock::Attributes::NumberOfYearDaySchedulesSupportedPerUser::Id: {
-            uint8_t value;
+        case ServiceArea::Attributes::SelectedAreas::Id: {
+            chip::app::DataModel::DecodableList<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NumberOfYearDaySchedulesSupportedPerUser", 1, value);
+            return DataModelLogger::LogValue("SelectedAreas", 1, value);
         }
-        case DoorLock::Attributes::NumberOfHolidaySchedulesSupported::Id: {
-            uint8_t value;
+        case ServiceArea::Attributes::CurrentArea::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NumberOfHolidaySchedulesSupported", 1, value);
+            return DataModelLogger::LogValue("CurrentArea", 1, value);
         }
-        case DoorLock::Attributes::MaxPINCodeLength::Id: {
-            uint8_t value;
+        case ServiceArea::Attributes::EstimatedEndTime::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MaxPINCodeLength", 1, value);
+            return DataModelLogger::LogValue("EstimatedEndTime", 1, value);
         }
-        case DoorLock::Attributes::MinPINCodeLength::Id: {
-            uint8_t value;
+        case ServiceArea::Attributes::Progress::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::ServiceArea::Structs::ProgressStruct::DecodableType> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MinPINCodeLength", 1, value);
+            return DataModelLogger::LogValue("Progress", 1, value);
         }
-        case DoorLock::Attributes::MaxRFIDCodeLength::Id: {
-            uint8_t value;
+        case ServiceArea::Attributes::GeneratedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MaxRFIDCodeLength", 1, value);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ServiceArea::Id);
         }
-        case DoorLock::Attributes::MinRFIDCodeLength::Id: {
-            uint8_t value;
+        case ServiceArea::Attributes::AcceptedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MinRFIDCodeLength", 1, value);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ServiceArea::Id);
         }
-        case DoorLock::Attributes::CredentialRulesSupport::Id: {
-            chip::BitMask<chip::app::Clusters::DoorLock::DlCredentialRuleMask> value;
+        case ServiceArea::Attributes::EventList::Id: {
+            chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CredentialRulesSupport", 1, value);
+            return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case DoorLock::Attributes::NumberOfCredentialsSupportedPerUser::Id: {
-            uint8_t value;
+        case ServiceArea::Attributes::AttributeList::Id: {
+            chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NumberOfCredentialsSupportedPerUser", 1, value);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ServiceArea::Id);
         }
-        case DoorLock::Attributes::Language::Id: {
-            chip::CharSpan value;
+        case ServiceArea::Attributes::FeatureMap::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Language", 1, value);
+            return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case DoorLock::Attributes::LEDSettings::Id: {
-            uint8_t value;
+        case ServiceArea::Attributes::ClusterRevision::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LEDSettings", 1, value);
+            return DataModelLogger::LogValue("ClusterRevision", 1, value);
         }
-        case DoorLock::Attributes::AutoRelockTime::Id: {
-            uint32_t value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AutoRelockTime", 1, value);
         }
-        case DoorLock::Attributes::SoundVolume::Id: {
-            uint8_t value;
+        break;
+    }
+    case PumpConfigurationAndControl::Id: {
+        switch (path.mAttributeId)
+        {
+        case PumpConfigurationAndControl::Attributes::MaxPressure::Id: {
+            chip::app::DataModel::Nullable<int16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SoundVolume", 1, value);
+            return DataModelLogger::LogValue("MaxPressure", 1, value);
         }
-        case DoorLock::Attributes::OperatingMode::Id: {
-            chip::app::Clusters::DoorLock::OperatingModeEnum value;
+        case PumpConfigurationAndControl::Attributes::MaxSpeed::Id: {
+            chip::app::DataModel::Nullable<uint16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OperatingMode", 1, value);
+            return DataModelLogger::LogValue("MaxSpeed", 1, value);
         }
-        case DoorLock::Attributes::SupportedOperatingModes::Id: {
-            chip::BitMask<chip::app::Clusters::DoorLock::DlSupportedOperatingModes> value;
+        case PumpConfigurationAndControl::Attributes::MaxFlow::Id: {
+            chip::app::DataModel::Nullable<uint16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SupportedOperatingModes", 1, value);
+            return DataModelLogger::LogValue("MaxFlow", 1, value);
         }
-        case DoorLock::Attributes::DefaultConfigurationRegister::Id: {
-            chip::BitMask<chip::app::Clusters::DoorLock::DlDefaultConfigurationRegister> value;
+        case PumpConfigurationAndControl::Attributes::MinConstPressure::Id: {
+            chip::app::DataModel::Nullable<int16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("DefaultConfigurationRegister", 1, value);
+            return DataModelLogger::LogValue("MinConstPressure", 1, value);
         }
-        case DoorLock::Attributes::EnableLocalProgramming::Id: {
-            bool value;
+        case PumpConfigurationAndControl::Attributes::MaxConstPressure::Id: {
+            chip::app::DataModel::Nullable<int16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EnableLocalProgramming", 1, value);
+            return DataModelLogger::LogValue("MaxConstPressure", 1, value);
         }
-        case DoorLock::Attributes::EnableOneTouchLocking::Id: {
-            bool value;
+        case PumpConfigurationAndControl::Attributes::MinCompPressure::Id: {
+            chip::app::DataModel::Nullable<int16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EnableOneTouchLocking", 1, value);
+            return DataModelLogger::LogValue("MinCompPressure", 1, value);
         }
-        case DoorLock::Attributes::EnableInsideStatusLED::Id: {
-            bool value;
+        case PumpConfigurationAndControl::Attributes::MaxCompPressure::Id: {
+            chip::app::DataModel::Nullable<int16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EnableInsideStatusLED", 1, value);
+            return DataModelLogger::LogValue("MaxCompPressure", 1, value);
         }
-        case DoorLock::Attributes::EnablePrivacyModeButton::Id: {
-            bool value;
+        case PumpConfigurationAndControl::Attributes::MinConstSpeed::Id: {
+            chip::app::DataModel::Nullable<uint16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EnablePrivacyModeButton", 1, value);
+            return DataModelLogger::LogValue("MinConstSpeed", 1, value);
         }
-        case DoorLock::Attributes::LocalProgrammingFeatures::Id: {
-            chip::BitMask<chip::app::Clusters::DoorLock::DlLocalProgrammingFeatures> value;
+        case PumpConfigurationAndControl::Attributes::MaxConstSpeed::Id: {
+            chip::app::DataModel::Nullable<uint16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LocalProgrammingFeatures", 1, value);
+            return DataModelLogger::LogValue("MaxConstSpeed", 1, value);
         }
-        case DoorLock::Attributes::WrongCodeEntryLimit::Id: {
-            uint8_t value;
+        case PumpConfigurationAndControl::Attributes::MinConstFlow::Id: {
+            chip::app::DataModel::Nullable<uint16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("WrongCodeEntryLimit", 1, value);
+            return DataModelLogger::LogValue("MinConstFlow", 1, value);
         }
-        case DoorLock::Attributes::UserCodeTemporaryDisableTime::Id: {
-            uint8_t value;
+        case PumpConfigurationAndControl::Attributes::MaxConstFlow::Id: {
+            chip::app::DataModel::Nullable<uint16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("UserCodeTemporaryDisableTime", 1, value);
+            return DataModelLogger::LogValue("MaxConstFlow", 1, value);
         }
-        case DoorLock::Attributes::SendPINOverTheAir::Id: {
-            bool value;
+        case PumpConfigurationAndControl::Attributes::MinConstTemp::Id: {
+            chip::app::DataModel::Nullable<int16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SendPINOverTheAir", 1, value);
+            return DataModelLogger::LogValue("MinConstTemp", 1, value);
         }
-        case DoorLock::Attributes::RequirePINforRemoteOperation::Id: {
-            bool value;
+        case PumpConfigurationAndControl::Attributes::MaxConstTemp::Id: {
+            chip::app::DataModel::Nullable<int16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("RequirePINforRemoteOperation", 1, value);
+            return DataModelLogger::LogValue("MaxConstTemp", 1, value);
         }
-        case DoorLock::Attributes::ExpiringUserTimeout::Id: {
-            uint16_t value;
+        case PumpConfigurationAndControl::Attributes::PumpStatus::Id: {
+            chip::BitMask<chip::app::Clusters::PumpConfigurationAndControl::PumpStatusBitmap> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ExpiringUserTimeout", 1, value);
+            return DataModelLogger::LogValue("PumpStatus", 1, value);
         }
-        case DoorLock::Attributes::AliroReaderVerificationKey::Id: {
-            chip::app::DataModel::Nullable<chip::ByteSpan> value;
+        case PumpConfigurationAndControl::Attributes::EffectiveOperationMode::Id: {
+            chip::app::Clusters::PumpConfigurationAndControl::OperationModeEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AliroReaderVerificationKey", 1, value);
+            return DataModelLogger::LogValue("EffectiveOperationMode", 1, value);
         }
-        case DoorLock::Attributes::AliroReaderGroupIdentifier::Id: {
-            chip::app::DataModel::Nullable<chip::ByteSpan> value;
+        case PumpConfigurationAndControl::Attributes::EffectiveControlMode::Id: {
+            chip::app::Clusters::PumpConfigurationAndControl::ControlModeEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AliroReaderGroupIdentifier", 1, value);
+            return DataModelLogger::LogValue("EffectiveControlMode", 1, value);
         }
-        case DoorLock::Attributes::AliroReaderGroupSubIdentifier::Id: {
-            chip::ByteSpan value;
+        case PumpConfigurationAndControl::Attributes::Capacity::Id: {
+            chip::app::DataModel::Nullable<int16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AliroReaderGroupSubIdentifier", 1, value);
+            return DataModelLogger::LogValue("Capacity", 1, value);
         }
-        case DoorLock::Attributes::AliroExpeditedTransactionSupportedProtocolVersions::Id: {
-            chip::app::DataModel::DecodableList<chip::ByteSpan> value;
+        case PumpConfigurationAndControl::Attributes::Speed::Id: {
+            chip::app::DataModel::Nullable<uint16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AliroExpeditedTransactionSupportedProtocolVersions", 1, value);
+            return DataModelLogger::LogValue("Speed", 1, value);
         }
-        case DoorLock::Attributes::AliroGroupResolvingKey::Id: {
-            chip::app::DataModel::Nullable<chip::ByteSpan> value;
+        case PumpConfigurationAndControl::Attributes::LifetimeRunningHours::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AliroGroupResolvingKey", 1, value);
+            return DataModelLogger::LogValue("LifetimeRunningHours", 1, value);
         }
-        case DoorLock::Attributes::AliroSupportedBLEUWBProtocolVersions::Id: {
-            chip::app::DataModel::DecodableList<chip::ByteSpan> value;
+        case PumpConfigurationAndControl::Attributes::Power::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AliroSupportedBLEUWBProtocolVersions", 1, value);
+            return DataModelLogger::LogValue("Power", 1, value);
         }
-        case DoorLock::Attributes::AliroBLEAdvertisingVersion::Id: {
-            uint8_t value;
+        case PumpConfigurationAndControl::Attributes::LifetimeEnergyConsumed::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AliroBLEAdvertisingVersion", 1, value);
+            return DataModelLogger::LogValue("LifetimeEnergyConsumed", 1, value);
         }
-        case DoorLock::Attributes::NumberOfAliroCredentialIssuerKeysSupported::Id: {
-            uint16_t value;
+        case PumpConfigurationAndControl::Attributes::OperationMode::Id: {
+            chip::app::Clusters::PumpConfigurationAndControl::OperationModeEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NumberOfAliroCredentialIssuerKeysSupported", 1, value);
+            return DataModelLogger::LogValue("OperationMode", 1, value);
         }
-        case DoorLock::Attributes::NumberOfAliroEndpointKeysSupported::Id: {
-            uint16_t value;
+        case PumpConfigurationAndControl::Attributes::ControlMode::Id: {
+            chip::app::Clusters::PumpConfigurationAndControl::ControlModeEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NumberOfAliroEndpointKeysSupported", 1, value);
+            return DataModelLogger::LogValue("ControlMode", 1, value);
         }
-        case DoorLock::Attributes::GeneratedCommandList::Id: {
+        case PumpConfigurationAndControl::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, DoorLock::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, PumpConfigurationAndControl::Id);
         }
-        case DoorLock::Attributes::AcceptedCommandList::Id: {
+        case PumpConfigurationAndControl::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, DoorLock::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, PumpConfigurationAndControl::Id);
         }
-        case DoorLock::Attributes::EventList::Id: {
+        case PumpConfigurationAndControl::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case DoorLock::Attributes::AttributeList::Id: {
+        case PumpConfigurationAndControl::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, DoorLock::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, PumpConfigurationAndControl::Id);
         }
-        case DoorLock::Attributes::FeatureMap::Id: {
+        case PumpConfigurationAndControl::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case DoorLock::Attributes::ClusterRevision::Id: {
+        case PumpConfigurationAndControl::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -14591,448 +16327,431 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case WindowCovering::Id: {
+    case Thermostat::Id: {
         switch (path.mAttributeId)
         {
-        case WindowCovering::Attributes::Type::Id: {
-            chip::app::Clusters::WindowCovering::Type value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Type", 1, value);
-        }
-        case WindowCovering::Attributes::PhysicalClosedLimitLift::Id: {
-            uint16_t value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PhysicalClosedLimitLift", 1, value);
-        }
-        case WindowCovering::Attributes::PhysicalClosedLimitTilt::Id: {
-            uint16_t value;
+        case Thermostat::Attributes::LocalTemperature::Id: {
+            chip::app::DataModel::Nullable<int16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PhysicalClosedLimitTilt", 1, value);
+            return DataModelLogger::LogValue("LocalTemperature", 1, value);
         }
-        case WindowCovering::Attributes::CurrentPositionLift::Id: {
-            chip::app::DataModel::Nullable<uint16_t> value;
+        case Thermostat::Attributes::OutdoorTemperature::Id: {
+            chip::app::DataModel::Nullable<int16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentPositionLift", 1, value);
+            return DataModelLogger::LogValue("OutdoorTemperature", 1, value);
         }
-        case WindowCovering::Attributes::CurrentPositionTilt::Id: {
-            chip::app::DataModel::Nullable<uint16_t> value;
+        case Thermostat::Attributes::Occupancy::Id: {
+            chip::BitMask<chip::app::Clusters::Thermostat::OccupancyBitmap> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentPositionTilt", 1, value);
+            return DataModelLogger::LogValue("Occupancy", 1, value);
         }
-        case WindowCovering::Attributes::NumberOfActuationsLift::Id: {
-            uint16_t value;
+        case Thermostat::Attributes::AbsMinHeatSetpointLimit::Id: {
+            int16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NumberOfActuationsLift", 1, value);
+            return DataModelLogger::LogValue("AbsMinHeatSetpointLimit", 1, value);
         }
-        case WindowCovering::Attributes::NumberOfActuationsTilt::Id: {
-            uint16_t value;
+        case Thermostat::Attributes::AbsMaxHeatSetpointLimit::Id: {
+            int16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NumberOfActuationsTilt", 1, value);
+            return DataModelLogger::LogValue("AbsMaxHeatSetpointLimit", 1, value);
         }
-        case WindowCovering::Attributes::ConfigStatus::Id: {
-            chip::BitMask<chip::app::Clusters::WindowCovering::ConfigStatus> value;
+        case Thermostat::Attributes::AbsMinCoolSetpointLimit::Id: {
+            int16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ConfigStatus", 1, value);
+            return DataModelLogger::LogValue("AbsMinCoolSetpointLimit", 1, value);
         }
-        case WindowCovering::Attributes::CurrentPositionLiftPercentage::Id: {
-            chip::app::DataModel::Nullable<chip::Percent> value;
+        case Thermostat::Attributes::AbsMaxCoolSetpointLimit::Id: {
+            int16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentPositionLiftPercentage", 1, value);
+            return DataModelLogger::LogValue("AbsMaxCoolSetpointLimit", 1, value);
         }
-        case WindowCovering::Attributes::CurrentPositionTiltPercentage::Id: {
-            chip::app::DataModel::Nullable<chip::Percent> value;
+        case Thermostat::Attributes::PICoolingDemand::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentPositionTiltPercentage", 1, value);
+            return DataModelLogger::LogValue("PICoolingDemand", 1, value);
         }
-        case WindowCovering::Attributes::OperationalStatus::Id: {
-            chip::BitMask<chip::app::Clusters::WindowCovering::OperationalStatus> value;
+        case Thermostat::Attributes::PIHeatingDemand::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OperationalStatus", 1, value);
+            return DataModelLogger::LogValue("PIHeatingDemand", 1, value);
         }
-        case WindowCovering::Attributes::TargetPositionLiftPercent100ths::Id: {
-            chip::app::DataModel::Nullable<chip::Percent100ths> value;
+        case Thermostat::Attributes::HVACSystemTypeConfiguration::Id: {
+            chip::BitMask<chip::app::Clusters::Thermostat::HVACSystemTypeBitmap> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TargetPositionLiftPercent100ths", 1, value);
+            return DataModelLogger::LogValue("HVACSystemTypeConfiguration", 1, value);
         }
-        case WindowCovering::Attributes::TargetPositionTiltPercent100ths::Id: {
-            chip::app::DataModel::Nullable<chip::Percent100ths> value;
+        case Thermostat::Attributes::LocalTemperatureCalibration::Id: {
+            int8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TargetPositionTiltPercent100ths", 1, value);
+            return DataModelLogger::LogValue("LocalTemperatureCalibration", 1, value);
         }
-        case WindowCovering::Attributes::EndProductType::Id: {
-            chip::app::Clusters::WindowCovering::EndProductType value;
+        case Thermostat::Attributes::OccupiedCoolingSetpoint::Id: {
+            int16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EndProductType", 1, value);
+            return DataModelLogger::LogValue("OccupiedCoolingSetpoint", 1, value);
         }
-        case WindowCovering::Attributes::CurrentPositionLiftPercent100ths::Id: {
-            chip::app::DataModel::Nullable<chip::Percent100ths> value;
+        case Thermostat::Attributes::OccupiedHeatingSetpoint::Id: {
+            int16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentPositionLiftPercent100ths", 1, value);
+            return DataModelLogger::LogValue("OccupiedHeatingSetpoint", 1, value);
         }
-        case WindowCovering::Attributes::CurrentPositionTiltPercent100ths::Id: {
-            chip::app::DataModel::Nullable<chip::Percent100ths> value;
+        case Thermostat::Attributes::UnoccupiedCoolingSetpoint::Id: {
+            int16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentPositionTiltPercent100ths", 1, value);
+            return DataModelLogger::LogValue("UnoccupiedCoolingSetpoint", 1, value);
         }
-        case WindowCovering::Attributes::InstalledOpenLimitLift::Id: {
-            uint16_t value;
+        case Thermostat::Attributes::UnoccupiedHeatingSetpoint::Id: {
+            int16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("InstalledOpenLimitLift", 1, value);
+            return DataModelLogger::LogValue("UnoccupiedHeatingSetpoint", 1, value);
         }
-        case WindowCovering::Attributes::InstalledClosedLimitLift::Id: {
-            uint16_t value;
+        case Thermostat::Attributes::MinHeatSetpointLimit::Id: {
+            int16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("InstalledClosedLimitLift", 1, value);
+            return DataModelLogger::LogValue("MinHeatSetpointLimit", 1, value);
         }
-        case WindowCovering::Attributes::InstalledOpenLimitTilt::Id: {
-            uint16_t value;
+        case Thermostat::Attributes::MaxHeatSetpointLimit::Id: {
+            int16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("InstalledOpenLimitTilt", 1, value);
+            return DataModelLogger::LogValue("MaxHeatSetpointLimit", 1, value);
         }
-        case WindowCovering::Attributes::InstalledClosedLimitTilt::Id: {
-            uint16_t value;
+        case Thermostat::Attributes::MinCoolSetpointLimit::Id: {
+            int16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("InstalledClosedLimitTilt", 1, value);
+            return DataModelLogger::LogValue("MinCoolSetpointLimit", 1, value);
         }
-        case WindowCovering::Attributes::Mode::Id: {
-            chip::BitMask<chip::app::Clusters::WindowCovering::Mode> value;
+        case Thermostat::Attributes::MaxCoolSetpointLimit::Id: {
+            int16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Mode", 1, value);
+            return DataModelLogger::LogValue("MaxCoolSetpointLimit", 1, value);
         }
-        case WindowCovering::Attributes::SafetyStatus::Id: {
-            chip::BitMask<chip::app::Clusters::WindowCovering::SafetyStatus> value;
+        case Thermostat::Attributes::MinSetpointDeadBand::Id: {
+            int8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SafetyStatus", 1, value);
+            return DataModelLogger::LogValue("MinSetpointDeadBand", 1, value);
         }
-        case WindowCovering::Attributes::GeneratedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case Thermostat::Attributes::RemoteSensing::Id: {
+            chip::BitMask<chip::app::Clusters::Thermostat::RemoteSensingBitmap> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, WindowCovering::Id);
+            return DataModelLogger::LogValue("RemoteSensing", 1, value);
         }
-        case WindowCovering::Attributes::AcceptedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case Thermostat::Attributes::ControlSequenceOfOperation::Id: {
+            chip::app::Clusters::Thermostat::ControlSequenceOfOperationEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, WindowCovering::Id);
+            return DataModelLogger::LogValue("ControlSequenceOfOperation", 1, value);
         }
-        case WindowCovering::Attributes::EventList::Id: {
-            chip::app::DataModel::DecodableList<chip::EventId> value;
+        case Thermostat::Attributes::SystemMode::Id: {
+            chip::app::Clusters::Thermostat::SystemModeEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EventList", 1, value);
+            return DataModelLogger::LogValue("SystemMode", 1, value);
         }
-        case WindowCovering::Attributes::AttributeList::Id: {
-            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+        case Thermostat::Attributes::ThermostatRunningMode::Id: {
+            chip::app::Clusters::Thermostat::ThermostatRunningModeEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, WindowCovering::Id);
+            return DataModelLogger::LogValue("ThermostatRunningMode", 1, value);
         }
-        case WindowCovering::Attributes::FeatureMap::Id: {
-            uint32_t value;
+        case Thermostat::Attributes::StartOfWeek::Id: {
+            chip::app::Clusters::Thermostat::StartOfWeekEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("FeatureMap", 1, value);
+            return DataModelLogger::LogValue("StartOfWeek", 1, value);
         }
-        case WindowCovering::Attributes::ClusterRevision::Id: {
-            uint16_t value;
+        case Thermostat::Attributes::NumberOfWeeklyTransitions::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ClusterRevision", 1, value);
-        }
+            return DataModelLogger::LogValue("NumberOfWeeklyTransitions", 1, value);
         }
-        break;
-    }
-    case BarrierControl::Id: {
-        switch (path.mAttributeId)
-        {
-        case BarrierControl::Attributes::BarrierMovingState::Id: {
+        case Thermostat::Attributes::NumberOfDailyTransitions::Id: {
             uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("barrier moving state", 1, value);
+            return DataModelLogger::LogValue("NumberOfDailyTransitions", 1, value);
         }
-        case BarrierControl::Attributes::BarrierSafetyStatus::Id: {
-            uint16_t value;
+        case Thermostat::Attributes::TemperatureSetpointHold::Id: {
+            chip::app::Clusters::Thermostat::TemperatureSetpointHoldEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("barrier safety status", 1, value);
+            return DataModelLogger::LogValue("TemperatureSetpointHold", 1, value);
         }
-        case BarrierControl::Attributes::BarrierCapabilities::Id: {
-            uint8_t value;
+        case Thermostat::Attributes::TemperatureSetpointHoldDuration::Id: {
+            chip::app::DataModel::Nullable<uint16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("barrier capabilities", 1, value);
+            return DataModelLogger::LogValue("TemperatureSetpointHoldDuration", 1, value);
         }
-        case BarrierControl::Attributes::BarrierOpenEvents::Id: {
-            uint16_t value;
+        case Thermostat::Attributes::ThermostatProgrammingOperationMode::Id: {
+            chip::BitMask<chip::app::Clusters::Thermostat::ProgrammingOperationModeBitmap> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("barrier open events", 1, value);
+            return DataModelLogger::LogValue("ThermostatProgrammingOperationMode", 1, value);
         }
-        case BarrierControl::Attributes::BarrierCloseEvents::Id: {
-            uint16_t value;
+        case Thermostat::Attributes::ThermostatRunningState::Id: {
+            chip::BitMask<chip::app::Clusters::Thermostat::RelayStateBitmap> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("barrier close events", 1, value);
+            return DataModelLogger::LogValue("ThermostatRunningState", 1, value);
         }
-        case BarrierControl::Attributes::BarrierCommandOpenEvents::Id: {
-            uint16_t value;
+        case Thermostat::Attributes::SetpointChangeSource::Id: {
+            chip::app::Clusters::Thermostat::SetpointChangeSourceEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("barrier command open events", 1, value);
+            return DataModelLogger::LogValue("SetpointChangeSource", 1, value);
         }
-        case BarrierControl::Attributes::BarrierCommandCloseEvents::Id: {
-            uint16_t value;
+        case Thermostat::Attributes::SetpointChangeAmount::Id: {
+            chip::app::DataModel::Nullable<int16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("barrier command close events", 1, value);
+            return DataModelLogger::LogValue("SetpointChangeAmount", 1, value);
         }
-        case BarrierControl::Attributes::BarrierOpenPeriod::Id: {
-            uint16_t value;
+        case Thermostat::Attributes::SetpointChangeSourceTimestamp::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("barrier open period", 1, value);
+            return DataModelLogger::LogValue("SetpointChangeSourceTimestamp", 1, value);
         }
-        case BarrierControl::Attributes::BarrierClosePeriod::Id: {
-            uint16_t value;
+        case Thermostat::Attributes::OccupiedSetback::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("barrier close period", 1, value);
+            return DataModelLogger::LogValue("OccupiedSetback", 1, value);
         }
-        case BarrierControl::Attributes::BarrierPosition::Id: {
-            uint8_t value;
+        case Thermostat::Attributes::OccupiedSetbackMin::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("barrier position", 1, value);
+            return DataModelLogger::LogValue("OccupiedSetbackMin", 1, value);
         }
-        case BarrierControl::Attributes::GeneratedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case Thermostat::Attributes::OccupiedSetbackMax::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, BarrierControl::Id);
+            return DataModelLogger::LogValue("OccupiedSetbackMax", 1, value);
         }
-        case BarrierControl::Attributes::AcceptedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case Thermostat::Attributes::UnoccupiedSetback::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, BarrierControl::Id);
+            return DataModelLogger::LogValue("UnoccupiedSetback", 1, value);
         }
-        case BarrierControl::Attributes::EventList::Id: {
-            chip::app::DataModel::DecodableList<chip::EventId> value;
+        case Thermostat::Attributes::UnoccupiedSetbackMin::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EventList", 1, value);
+            return DataModelLogger::LogValue("UnoccupiedSetbackMin", 1, value);
         }
-        case BarrierControl::Attributes::AttributeList::Id: {
-            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+        case Thermostat::Attributes::UnoccupiedSetbackMax::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, BarrierControl::Id);
+            return DataModelLogger::LogValue("UnoccupiedSetbackMax", 1, value);
         }
-        case BarrierControl::Attributes::FeatureMap::Id: {
-            uint32_t value;
+        case Thermostat::Attributes::EmergencyHeatDelta::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("FeatureMap", 1, value);
+            return DataModelLogger::LogValue("EmergencyHeatDelta", 1, value);
         }
-        case BarrierControl::Attributes::ClusterRevision::Id: {
-            uint16_t value;
+        case Thermostat::Attributes::ACType::Id: {
+            chip::app::Clusters::Thermostat::ACTypeEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ClusterRevision", 1, value);
+            return DataModelLogger::LogValue("ACType", 1, value);
         }
+        case Thermostat::Attributes::ACCapacity::Id: {
+            uint16_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("ACCapacity", 1, value);
         }
-        break;
-    }
-    case ServiceArea::Id: {
-        switch (path.mAttributeId)
-        {
-        case ServiceArea::Attributes::SupportedAreas::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::ServiceArea::Structs::AreaStruct::DecodableType> value;
+        case Thermostat::Attributes::ACRefrigerantType::Id: {
+            chip::app::Clusters::Thermostat::ACRefrigerantTypeEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SupportedAreas", 1, value);
+            return DataModelLogger::LogValue("ACRefrigerantType", 1, value);
         }
-        case ServiceArea::Attributes::SupportedMaps::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::ServiceArea::Structs::MapStruct::DecodableType> value;
+        case Thermostat::Attributes::ACCompressorType::Id: {
+            chip::app::Clusters::Thermostat::ACCompressorTypeEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SupportedMaps", 1, value);
+            return DataModelLogger::LogValue("ACCompressorType", 1, value);
         }
-        case ServiceArea::Attributes::SelectedAreas::Id: {
-            chip::app::DataModel::DecodableList<uint32_t> value;
+        case Thermostat::Attributes::ACErrorCode::Id: {
+            chip::BitMask<chip::app::Clusters::Thermostat::ACErrorCodeBitmap> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SelectedAreas", 1, value);
+            return DataModelLogger::LogValue("ACErrorCode", 1, value);
         }
-        case ServiceArea::Attributes::CurrentArea::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
+        case Thermostat::Attributes::ACLouverPosition::Id: {
+            chip::app::Clusters::Thermostat::ACLouverPositionEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentArea", 1, value);
+            return DataModelLogger::LogValue("ACLouverPosition", 1, value);
         }
-        case ServiceArea::Attributes::EstimatedEndTime::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
+        case Thermostat::Attributes::ACCoilTemperature::Id: {
+            chip::app::DataModel::Nullable<int16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EstimatedEndTime", 1, value);
+            return DataModelLogger::LogValue("ACCoilTemperature", 1, value);
         }
-        case ServiceArea::Attributes::Progress::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::ServiceArea::Structs::ProgressStruct::DecodableType> value;
+        case Thermostat::Attributes::ACCapacityformat::Id: {
+            chip::app::Clusters::Thermostat::ACCapacityFormatEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Progress", 1, value);
+            return DataModelLogger::LogValue("ACCapacityformat", 1, value);
         }
-        case ServiceArea::Attributes::GeneratedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case Thermostat::Attributes::PresetTypes::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::Thermostat::Structs::PresetTypeStruct::DecodableType> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ServiceArea::Id);
+            return DataModelLogger::LogValue("PresetTypes", 1, value);
         }
-        case ServiceArea::Attributes::AcceptedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case Thermostat::Attributes::ScheduleTypes::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::Thermostat::Structs::ScheduleTypeStruct::DecodableType> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ServiceArea::Id);
+            return DataModelLogger::LogValue("ScheduleTypes", 1, value);
         }
-        case ServiceArea::Attributes::EventList::Id: {
-            chip::app::DataModel::DecodableList<chip::EventId> value;
+        case Thermostat::Attributes::NumberOfPresets::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EventList", 1, value);
+            return DataModelLogger::LogValue("NumberOfPresets", 1, value);
         }
-        case ServiceArea::Attributes::AttributeList::Id: {
-            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+        case Thermostat::Attributes::NumberOfSchedules::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ServiceArea::Id);
+            return DataModelLogger::LogValue("NumberOfSchedules", 1, value);
         }
-        case ServiceArea::Attributes::FeatureMap::Id: {
-            uint32_t value;
+        case Thermostat::Attributes::NumberOfScheduleTransitions::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("FeatureMap", 1, value);
+            return DataModelLogger::LogValue("NumberOfScheduleTransitions", 1, value);
         }
-        case ServiceArea::Attributes::ClusterRevision::Id: {
-            uint16_t value;
+        case Thermostat::Attributes::NumberOfScheduleTransitionPerDay::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ClusterRevision", 1, value);
+            return DataModelLogger::LogValue("NumberOfScheduleTransitionPerDay", 1, value);
         }
+        case Thermostat::Attributes::ActivePresetHandle::Id: {
+            chip::app::DataModel::Nullable<chip::ByteSpan> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("ActivePresetHandle", 1, value);
         }
-        break;
-    }
-    case PumpConfigurationAndControl::Id: {
-        switch (path.mAttributeId)
-        {
-        case PumpConfigurationAndControl::Attributes::MaxPressure::Id: {
-            chip::app::DataModel::Nullable<int16_t> value;
+        case Thermostat::Attributes::ActiveScheduleHandle::Id: {
+            chip::app::DataModel::Nullable<chip::ByteSpan> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MaxPressure", 1, value);
+            return DataModelLogger::LogValue("ActiveScheduleHandle", 1, value);
         }
-        case PumpConfigurationAndControl::Attributes::MaxSpeed::Id: {
-            chip::app::DataModel::Nullable<uint16_t> value;
+        case Thermostat::Attributes::Presets::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::Thermostat::Structs::PresetStruct::DecodableType> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MaxSpeed", 1, value);
+            return DataModelLogger::LogValue("Presets", 1, value);
         }
-        case PumpConfigurationAndControl::Attributes::MaxFlow::Id: {
-            chip::app::DataModel::Nullable<uint16_t> value;
+        case Thermostat::Attributes::Schedules::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::Thermostat::Structs::ScheduleStruct::DecodableType> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MaxFlow", 1, value);
+            return DataModelLogger::LogValue("Schedules", 1, value);
         }
-        case PumpConfigurationAndControl::Attributes::MinConstPressure::Id: {
-            chip::app::DataModel::Nullable<int16_t> value;
+        case Thermostat::Attributes::SetpointHoldExpiryTimestamp::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MinConstPressure", 1, value);
+            return DataModelLogger::LogValue("SetpointHoldExpiryTimestamp", 1, value);
         }
-        case PumpConfigurationAndControl::Attributes::MaxConstPressure::Id: {
-            chip::app::DataModel::Nullable<int16_t> value;
+        case Thermostat::Attributes::GeneratedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MaxConstPressure", 1, value);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, Thermostat::Id);
         }
-        case PumpConfigurationAndControl::Attributes::MinCompPressure::Id: {
-            chip::app::DataModel::Nullable<int16_t> value;
+        case Thermostat::Attributes::AcceptedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MinCompPressure", 1, value);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, Thermostat::Id);
         }
-        case PumpConfigurationAndControl::Attributes::MaxCompPressure::Id: {
-            chip::app::DataModel::Nullable<int16_t> value;
+        case Thermostat::Attributes::EventList::Id: {
+            chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MaxCompPressure", 1, value);
+            return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case PumpConfigurationAndControl::Attributes::MinConstSpeed::Id: {
-            chip::app::DataModel::Nullable<uint16_t> value;
+        case Thermostat::Attributes::AttributeList::Id: {
+            chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MinConstSpeed", 1, value);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, Thermostat::Id);
         }
-        case PumpConfigurationAndControl::Attributes::MaxConstSpeed::Id: {
-            chip::app::DataModel::Nullable<uint16_t> value;
+        case Thermostat::Attributes::FeatureMap::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MaxConstSpeed", 1, value);
+            return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case PumpConfigurationAndControl::Attributes::MinConstFlow::Id: {
-            chip::app::DataModel::Nullable<uint16_t> value;
+        case Thermostat::Attributes::ClusterRevision::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MinConstFlow", 1, value);
+            return DataModelLogger::LogValue("ClusterRevision", 1, value);
         }
-        case PumpConfigurationAndControl::Attributes::MaxConstFlow::Id: {
-            chip::app::DataModel::Nullable<uint16_t> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MaxConstFlow", 1, value);
         }
-        case PumpConfigurationAndControl::Attributes::MinConstTemp::Id: {
-            chip::app::DataModel::Nullable<int16_t> value;
+        break;
+    }
+    case FanControl::Id: {
+        switch (path.mAttributeId)
+        {
+        case FanControl::Attributes::FanMode::Id: {
+            chip::app::Clusters::FanControl::FanModeEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MinConstTemp", 1, value);
+            return DataModelLogger::LogValue("FanMode", 1, value);
         }
-        case PumpConfigurationAndControl::Attributes::MaxConstTemp::Id: {
-            chip::app::DataModel::Nullable<int16_t> value;
+        case FanControl::Attributes::FanModeSequence::Id: {
+            chip::app::Clusters::FanControl::FanModeSequenceEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MaxConstTemp", 1, value);
+            return DataModelLogger::LogValue("FanModeSequence", 1, value);
         }
-        case PumpConfigurationAndControl::Attributes::PumpStatus::Id: {
-            chip::BitMask<chip::app::Clusters::PumpConfigurationAndControl::PumpStatusBitmap> value;
+        case FanControl::Attributes::PercentSetting::Id: {
+            chip::app::DataModel::Nullable<chip::Percent> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PumpStatus", 1, value);
+            return DataModelLogger::LogValue("PercentSetting", 1, value);
         }
-        case PumpConfigurationAndControl::Attributes::EffectiveOperationMode::Id: {
-            chip::app::Clusters::PumpConfigurationAndControl::OperationModeEnum value;
+        case FanControl::Attributes::PercentCurrent::Id: {
+            chip::Percent value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EffectiveOperationMode", 1, value);
+            return DataModelLogger::LogValue("PercentCurrent", 1, value);
         }
-        case PumpConfigurationAndControl::Attributes::EffectiveControlMode::Id: {
-            chip::app::Clusters::PumpConfigurationAndControl::ControlModeEnum value;
+        case FanControl::Attributes::SpeedMax::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EffectiveControlMode", 1, value);
+            return DataModelLogger::LogValue("SpeedMax", 1, value);
         }
-        case PumpConfigurationAndControl::Attributes::Capacity::Id: {
-            chip::app::DataModel::Nullable<int16_t> value;
+        case FanControl::Attributes::SpeedSetting::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Capacity", 1, value);
+            return DataModelLogger::LogValue("SpeedSetting", 1, value);
         }
-        case PumpConfigurationAndControl::Attributes::Speed::Id: {
-            chip::app::DataModel::Nullable<uint16_t> value;
+        case FanControl::Attributes::SpeedCurrent::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Speed", 1, value);
+            return DataModelLogger::LogValue("SpeedCurrent", 1, value);
         }
-        case PumpConfigurationAndControl::Attributes::LifetimeRunningHours::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
+        case FanControl::Attributes::RockSupport::Id: {
+            chip::BitMask<chip::app::Clusters::FanControl::RockBitmap> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LifetimeRunningHours", 1, value);
+            return DataModelLogger::LogValue("RockSupport", 1, value);
         }
-        case PumpConfigurationAndControl::Attributes::Power::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
+        case FanControl::Attributes::RockSetting::Id: {
+            chip::BitMask<chip::app::Clusters::FanControl::RockBitmap> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Power", 1, value);
+            return DataModelLogger::LogValue("RockSetting", 1, value);
         }
-        case PumpConfigurationAndControl::Attributes::LifetimeEnergyConsumed::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
+        case FanControl::Attributes::WindSupport::Id: {
+            chip::BitMask<chip::app::Clusters::FanControl::WindBitmap> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LifetimeEnergyConsumed", 1, value);
+            return DataModelLogger::LogValue("WindSupport", 1, value);
         }
-        case PumpConfigurationAndControl::Attributes::OperationMode::Id: {
-            chip::app::Clusters::PumpConfigurationAndControl::OperationModeEnum value;
+        case FanControl::Attributes::WindSetting::Id: {
+            chip::BitMask<chip::app::Clusters::FanControl::WindBitmap> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OperationMode", 1, value);
+            return DataModelLogger::LogValue("WindSetting", 1, value);
         }
-        case PumpConfigurationAndControl::Attributes::ControlMode::Id: {
-            chip::app::Clusters::PumpConfigurationAndControl::ControlModeEnum value;
+        case FanControl::Attributes::AirflowDirection::Id: {
+            chip::app::Clusters::FanControl::AirflowDirectionEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ControlMode", 1, value);
+            return DataModelLogger::LogValue("AirflowDirection", 1, value);
         }
-        case PumpConfigurationAndControl::Attributes::GeneratedCommandList::Id: {
+        case FanControl::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, PumpConfigurationAndControl::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, FanControl::Id);
         }
-        case PumpConfigurationAndControl::Attributes::AcceptedCommandList::Id: {
+        case FanControl::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, PumpConfigurationAndControl::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, FanControl::Id);
         }
-        case PumpConfigurationAndControl::Attributes::EventList::Id: {
+        case FanControl::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case PumpConfigurationAndControl::Attributes::AttributeList::Id: {
+        case FanControl::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, PumpConfigurationAndControl::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, FanControl::Id);
         }
-        case PumpConfigurationAndControl::Attributes::FeatureMap::Id: {
+        case FanControl::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case PumpConfigurationAndControl::Attributes::ClusterRevision::Id: {
+        case FanControl::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -15040,335 +16759,347 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case Thermostat::Id: {
+    case ThermostatUserInterfaceConfiguration::Id: {
         switch (path.mAttributeId)
         {
-        case Thermostat::Attributes::LocalTemperature::Id: {
-            chip::app::DataModel::Nullable<int16_t> value;
+        case ThermostatUserInterfaceConfiguration::Attributes::TemperatureDisplayMode::Id: {
+            chip::app::Clusters::ThermostatUserInterfaceConfiguration::TemperatureDisplayModeEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LocalTemperature", 1, value);
+            return DataModelLogger::LogValue("TemperatureDisplayMode", 1, value);
         }
-        case Thermostat::Attributes::OutdoorTemperature::Id: {
-            chip::app::DataModel::Nullable<int16_t> value;
+        case ThermostatUserInterfaceConfiguration::Attributes::KeypadLockout::Id: {
+            chip::app::Clusters::ThermostatUserInterfaceConfiguration::KeypadLockoutEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OutdoorTemperature", 1, value);
+            return DataModelLogger::LogValue("KeypadLockout", 1, value);
         }
-        case Thermostat::Attributes::Occupancy::Id: {
-            chip::BitMask<chip::app::Clusters::Thermostat::OccupancyBitmap> value;
+        case ThermostatUserInterfaceConfiguration::Attributes::ScheduleProgrammingVisibility::Id: {
+            chip::app::Clusters::ThermostatUserInterfaceConfiguration::ScheduleProgrammingVisibilityEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Occupancy", 1, value);
+            return DataModelLogger::LogValue("ScheduleProgrammingVisibility", 1, value);
         }
-        case Thermostat::Attributes::AbsMinHeatSetpointLimit::Id: {
-            int16_t value;
+        case ThermostatUserInterfaceConfiguration::Attributes::GeneratedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AbsMinHeatSetpointLimit", 1, value);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value,
+                                                          ThermostatUserInterfaceConfiguration::Id);
         }
-        case Thermostat::Attributes::AbsMaxHeatSetpointLimit::Id: {
-            int16_t value;
+        case ThermostatUserInterfaceConfiguration::Attributes::AcceptedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AbsMaxHeatSetpointLimit", 1, value);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ThermostatUserInterfaceConfiguration::Id);
         }
-        case Thermostat::Attributes::AbsMinCoolSetpointLimit::Id: {
-            int16_t value;
+        case ThermostatUserInterfaceConfiguration::Attributes::EventList::Id: {
+            chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AbsMinCoolSetpointLimit", 1, value);
+            return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case Thermostat::Attributes::AbsMaxCoolSetpointLimit::Id: {
-            int16_t value;
+        case ThermostatUserInterfaceConfiguration::Attributes::AttributeList::Id: {
+            chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AbsMaxCoolSetpointLimit", 1, value);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ThermostatUserInterfaceConfiguration::Id);
         }
-        case Thermostat::Attributes::PICoolingDemand::Id: {
-            uint8_t value;
+        case ThermostatUserInterfaceConfiguration::Attributes::FeatureMap::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PICoolingDemand", 1, value);
+            return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case Thermostat::Attributes::PIHeatingDemand::Id: {
-            uint8_t value;
+        case ThermostatUserInterfaceConfiguration::Attributes::ClusterRevision::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PIHeatingDemand", 1, value);
+            return DataModelLogger::LogValue("ClusterRevision", 1, value);
         }
-        case Thermostat::Attributes::HVACSystemTypeConfiguration::Id: {
-            chip::BitMask<chip::app::Clusters::Thermostat::HVACSystemTypeBitmap> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("HVACSystemTypeConfiguration", 1, value);
         }
-        case Thermostat::Attributes::LocalTemperatureCalibration::Id: {
-            int8_t value;
+        break;
+    }
+    case ColorControl::Id: {
+        switch (path.mAttributeId)
+        {
+        case ColorControl::Attributes::CurrentHue::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LocalTemperatureCalibration", 1, value);
+            return DataModelLogger::LogValue("CurrentHue", 1, value);
         }
-        case Thermostat::Attributes::OccupiedCoolingSetpoint::Id: {
-            int16_t value;
+        case ColorControl::Attributes::CurrentSaturation::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OccupiedCoolingSetpoint", 1, value);
+            return DataModelLogger::LogValue("CurrentSaturation", 1, value);
         }
-        case Thermostat::Attributes::OccupiedHeatingSetpoint::Id: {
-            int16_t value;
+        case ColorControl::Attributes::RemainingTime::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OccupiedHeatingSetpoint", 1, value);
+            return DataModelLogger::LogValue("RemainingTime", 1, value);
         }
-        case Thermostat::Attributes::UnoccupiedCoolingSetpoint::Id: {
-            int16_t value;
+        case ColorControl::Attributes::CurrentX::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("UnoccupiedCoolingSetpoint", 1, value);
+            return DataModelLogger::LogValue("CurrentX", 1, value);
         }
-        case Thermostat::Attributes::UnoccupiedHeatingSetpoint::Id: {
-            int16_t value;
+        case ColorControl::Attributes::CurrentY::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("UnoccupiedHeatingSetpoint", 1, value);
+            return DataModelLogger::LogValue("CurrentY", 1, value);
         }
-        case Thermostat::Attributes::MinHeatSetpointLimit::Id: {
-            int16_t value;
+        case ColorControl::Attributes::DriftCompensation::Id: {
+            chip::app::Clusters::ColorControl::DriftCompensationEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MinHeatSetpointLimit", 1, value);
+            return DataModelLogger::LogValue("DriftCompensation", 1, value);
         }
-        case Thermostat::Attributes::MaxHeatSetpointLimit::Id: {
-            int16_t value;
+        case ColorControl::Attributes::CompensationText::Id: {
+            chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MaxHeatSetpointLimit", 1, value);
+            return DataModelLogger::LogValue("CompensationText", 1, value);
         }
-        case Thermostat::Attributes::MinCoolSetpointLimit::Id: {
-            int16_t value;
+        case ColorControl::Attributes::ColorTemperatureMireds::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MinCoolSetpointLimit", 1, value);
+            return DataModelLogger::LogValue("ColorTemperatureMireds", 1, value);
         }
-        case Thermostat::Attributes::MaxCoolSetpointLimit::Id: {
-            int16_t value;
+        case ColorControl::Attributes::ColorMode::Id: {
+            chip::app::Clusters::ColorControl::ColorModeEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MaxCoolSetpointLimit", 1, value);
+            return DataModelLogger::LogValue("ColorMode", 1, value);
         }
-        case Thermostat::Attributes::MinSetpointDeadBand::Id: {
-            int8_t value;
+        case ColorControl::Attributes::Options::Id: {
+            chip::BitMask<chip::app::Clusters::ColorControl::OptionsBitmap> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MinSetpointDeadBand", 1, value);
+            return DataModelLogger::LogValue("Options", 1, value);
         }
-        case Thermostat::Attributes::RemoteSensing::Id: {
-            chip::BitMask<chip::app::Clusters::Thermostat::RemoteSensingBitmap> value;
+        case ColorControl::Attributes::NumberOfPrimaries::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("RemoteSensing", 1, value);
+            return DataModelLogger::LogValue("NumberOfPrimaries", 1, value);
         }
-        case Thermostat::Attributes::ControlSequenceOfOperation::Id: {
-            chip::app::Clusters::Thermostat::ControlSequenceOfOperationEnum value;
+        case ColorControl::Attributes::Primary1X::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ControlSequenceOfOperation", 1, value);
+            return DataModelLogger::LogValue("Primary1X", 1, value);
         }
-        case Thermostat::Attributes::SystemMode::Id: {
-            chip::app::Clusters::Thermostat::SystemModeEnum value;
+        case ColorControl::Attributes::Primary1Y::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SystemMode", 1, value);
+            return DataModelLogger::LogValue("Primary1Y", 1, value);
         }
-        case Thermostat::Attributes::ThermostatRunningMode::Id: {
-            chip::app::Clusters::Thermostat::ThermostatRunningModeEnum value;
+        case ColorControl::Attributes::Primary1Intensity::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ThermostatRunningMode", 1, value);
+            return DataModelLogger::LogValue("Primary1Intensity", 1, value);
         }
-        case Thermostat::Attributes::StartOfWeek::Id: {
-            chip::app::Clusters::Thermostat::StartOfWeekEnum value;
+        case ColorControl::Attributes::Primary2X::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("StartOfWeek", 1, value);
+            return DataModelLogger::LogValue("Primary2X", 1, value);
         }
-        case Thermostat::Attributes::NumberOfWeeklyTransitions::Id: {
-            uint8_t value;
+        case ColorControl::Attributes::Primary2Y::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NumberOfWeeklyTransitions", 1, value);
+            return DataModelLogger::LogValue("Primary2Y", 1, value);
         }
-        case Thermostat::Attributes::NumberOfDailyTransitions::Id: {
-            uint8_t value;
+        case ColorControl::Attributes::Primary2Intensity::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NumberOfDailyTransitions", 1, value);
+            return DataModelLogger::LogValue("Primary2Intensity", 1, value);
         }
-        case Thermostat::Attributes::TemperatureSetpointHold::Id: {
-            chip::app::Clusters::Thermostat::TemperatureSetpointHoldEnum value;
+        case ColorControl::Attributes::Primary3X::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TemperatureSetpointHold", 1, value);
+            return DataModelLogger::LogValue("Primary3X", 1, value);
         }
-        case Thermostat::Attributes::TemperatureSetpointHoldDuration::Id: {
-            chip::app::DataModel::Nullable<uint16_t> value;
+        case ColorControl::Attributes::Primary3Y::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TemperatureSetpointHoldDuration", 1, value);
+            return DataModelLogger::LogValue("Primary3Y", 1, value);
         }
-        case Thermostat::Attributes::ThermostatProgrammingOperationMode::Id: {
-            chip::BitMask<chip::app::Clusters::Thermostat::ProgrammingOperationModeBitmap> value;
+        case ColorControl::Attributes::Primary3Intensity::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ThermostatProgrammingOperationMode", 1, value);
+            return DataModelLogger::LogValue("Primary3Intensity", 1, value);
         }
-        case Thermostat::Attributes::ThermostatRunningState::Id: {
-            chip::BitMask<chip::app::Clusters::Thermostat::RelayStateBitmap> value;
+        case ColorControl::Attributes::Primary4X::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ThermostatRunningState", 1, value);
+            return DataModelLogger::LogValue("Primary4X", 1, value);
         }
-        case Thermostat::Attributes::SetpointChangeSource::Id: {
-            chip::app::Clusters::Thermostat::SetpointChangeSourceEnum value;
+        case ColorControl::Attributes::Primary4Y::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SetpointChangeSource", 1, value);
+            return DataModelLogger::LogValue("Primary4Y", 1, value);
         }
-        case Thermostat::Attributes::SetpointChangeAmount::Id: {
-            chip::app::DataModel::Nullable<int16_t> value;
+        case ColorControl::Attributes::Primary4Intensity::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SetpointChangeAmount", 1, value);
+            return DataModelLogger::LogValue("Primary4Intensity", 1, value);
         }
-        case Thermostat::Attributes::SetpointChangeSourceTimestamp::Id: {
-            uint32_t value;
+        case ColorControl::Attributes::Primary5X::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SetpointChangeSourceTimestamp", 1, value);
+            return DataModelLogger::LogValue("Primary5X", 1, value);
         }
-        case Thermostat::Attributes::OccupiedSetback::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case ColorControl::Attributes::Primary5Y::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OccupiedSetback", 1, value);
+            return DataModelLogger::LogValue("Primary5Y", 1, value);
         }
-        case Thermostat::Attributes::OccupiedSetbackMin::Id: {
+        case ColorControl::Attributes::Primary5Intensity::Id: {
             chip::app::DataModel::Nullable<uint8_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OccupiedSetbackMin", 1, value);
+            return DataModelLogger::LogValue("Primary5Intensity", 1, value);
         }
-        case Thermostat::Attributes::OccupiedSetbackMax::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case ColorControl::Attributes::Primary6X::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OccupiedSetbackMax", 1, value);
+            return DataModelLogger::LogValue("Primary6X", 1, value);
         }
-        case Thermostat::Attributes::UnoccupiedSetback::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case ColorControl::Attributes::Primary6Y::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("UnoccupiedSetback", 1, value);
+            return DataModelLogger::LogValue("Primary6Y", 1, value);
         }
-        case Thermostat::Attributes::UnoccupiedSetbackMin::Id: {
+        case ColorControl::Attributes::Primary6Intensity::Id: {
             chip::app::DataModel::Nullable<uint8_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("UnoccupiedSetbackMin", 1, value);
+            return DataModelLogger::LogValue("Primary6Intensity", 1, value);
         }
-        case Thermostat::Attributes::UnoccupiedSetbackMax::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case ColorControl::Attributes::WhitePointX::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("UnoccupiedSetbackMax", 1, value);
+            return DataModelLogger::LogValue("WhitePointX", 1, value);
         }
-        case Thermostat::Attributes::EmergencyHeatDelta::Id: {
-            uint8_t value;
+        case ColorControl::Attributes::WhitePointY::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EmergencyHeatDelta", 1, value);
+            return DataModelLogger::LogValue("WhitePointY", 1, value);
         }
-        case Thermostat::Attributes::ACType::Id: {
-            chip::app::Clusters::Thermostat::ACTypeEnum value;
+        case ColorControl::Attributes::ColorPointRX::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ACType", 1, value);
+            return DataModelLogger::LogValue("ColorPointRX", 1, value);
         }
-        case Thermostat::Attributes::ACCapacity::Id: {
+        case ColorControl::Attributes::ColorPointRY::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ACCapacity", 1, value);
+            return DataModelLogger::LogValue("ColorPointRY", 1, value);
         }
-        case Thermostat::Attributes::ACRefrigerantType::Id: {
-            chip::app::Clusters::Thermostat::ACRefrigerantTypeEnum value;
+        case ColorControl::Attributes::ColorPointRIntensity::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ACRefrigerantType", 1, value);
+            return DataModelLogger::LogValue("ColorPointRIntensity", 1, value);
         }
-        case Thermostat::Attributes::ACCompressorType::Id: {
-            chip::app::Clusters::Thermostat::ACCompressorTypeEnum value;
+        case ColorControl::Attributes::ColorPointGX::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ACCompressorType", 1, value);
+            return DataModelLogger::LogValue("ColorPointGX", 1, value);
         }
-        case Thermostat::Attributes::ACErrorCode::Id: {
-            chip::BitMask<chip::app::Clusters::Thermostat::ACErrorCodeBitmap> value;
+        case ColorControl::Attributes::ColorPointGY::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ACErrorCode", 1, value);
+            return DataModelLogger::LogValue("ColorPointGY", 1, value);
         }
-        case Thermostat::Attributes::ACLouverPosition::Id: {
-            chip::app::Clusters::Thermostat::ACLouverPositionEnum value;
+        case ColorControl::Attributes::ColorPointGIntensity::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ACLouverPosition", 1, value);
+            return DataModelLogger::LogValue("ColorPointGIntensity", 1, value);
         }
-        case Thermostat::Attributes::ACCoilTemperature::Id: {
-            chip::app::DataModel::Nullable<int16_t> value;
+        case ColorControl::Attributes::ColorPointBX::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ACCoilTemperature", 1, value);
+            return DataModelLogger::LogValue("ColorPointBX", 1, value);
         }
-        case Thermostat::Attributes::ACCapacityformat::Id: {
-            chip::app::Clusters::Thermostat::ACCapacityFormatEnum value;
+        case ColorControl::Attributes::ColorPointBY::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ACCapacityformat", 1, value);
+            return DataModelLogger::LogValue("ColorPointBY", 1, value);
         }
-        case Thermostat::Attributes::PresetTypes::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::Thermostat::Structs::PresetTypeStruct::DecodableType> value;
+        case ColorControl::Attributes::ColorPointBIntensity::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PresetTypes", 1, value);
+            return DataModelLogger::LogValue("ColorPointBIntensity", 1, value);
         }
-        case Thermostat::Attributes::ScheduleTypes::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::Thermostat::Structs::ScheduleTypeStruct::DecodableType> value;
+        case ColorControl::Attributes::EnhancedCurrentHue::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ScheduleTypes", 1, value);
+            return DataModelLogger::LogValue("EnhancedCurrentHue", 1, value);
         }
-        case Thermostat::Attributes::NumberOfPresets::Id: {
-            uint8_t value;
+        case ColorControl::Attributes::EnhancedColorMode::Id: {
+            chip::app::Clusters::ColorControl::EnhancedColorModeEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NumberOfPresets", 1, value);
+            return DataModelLogger::LogValue("EnhancedColorMode", 1, value);
         }
-        case Thermostat::Attributes::NumberOfSchedules::Id: {
+        case ColorControl::Attributes::ColorLoopActive::Id: {
             uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NumberOfSchedules", 1, value);
+            return DataModelLogger::LogValue("ColorLoopActive", 1, value);
         }
-        case Thermostat::Attributes::NumberOfScheduleTransitions::Id: {
+        case ColorControl::Attributes::ColorLoopDirection::Id: {
             uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NumberOfScheduleTransitions", 1, value);
+            return DataModelLogger::LogValue("ColorLoopDirection", 1, value);
         }
-        case Thermostat::Attributes::NumberOfScheduleTransitionPerDay::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case ColorControl::Attributes::ColorLoopTime::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NumberOfScheduleTransitionPerDay", 1, value);
+            return DataModelLogger::LogValue("ColorLoopTime", 1, value);
         }
-        case Thermostat::Attributes::ActivePresetHandle::Id: {
-            chip::app::DataModel::Nullable<chip::ByteSpan> value;
+        case ColorControl::Attributes::ColorLoopStartEnhancedHue::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ActivePresetHandle", 1, value);
+            return DataModelLogger::LogValue("ColorLoopStartEnhancedHue", 1, value);
         }
-        case Thermostat::Attributes::ActiveScheduleHandle::Id: {
-            chip::app::DataModel::Nullable<chip::ByteSpan> value;
+        case ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ActiveScheduleHandle", 1, value);
+            return DataModelLogger::LogValue("ColorLoopStoredEnhancedHue", 1, value);
         }
-        case Thermostat::Attributes::Presets::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::Thermostat::Structs::PresetStruct::DecodableType> value;
+        case ColorControl::Attributes::ColorCapabilities::Id: {
+            chip::BitMask<chip::app::Clusters::ColorControl::ColorCapabilitiesBitmap> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Presets", 1, value);
+            return DataModelLogger::LogValue("ColorCapabilities", 1, value);
         }
-        case Thermostat::Attributes::Schedules::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::Thermostat::Structs::ScheduleStruct::DecodableType> value;
+        case ColorControl::Attributes::ColorTempPhysicalMinMireds::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Schedules", 1, value);
+            return DataModelLogger::LogValue("ColorTempPhysicalMinMireds", 1, value);
         }
-        case Thermostat::Attributes::SetpointHoldExpiryTimestamp::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
+        case ColorControl::Attributes::ColorTempPhysicalMaxMireds::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SetpointHoldExpiryTimestamp", 1, value);
+            return DataModelLogger::LogValue("ColorTempPhysicalMaxMireds", 1, value);
         }
-        case Thermostat::Attributes::GeneratedCommandList::Id: {
+        case ColorControl::Attributes::CoupleColorTempToLevelMinMireds::Id: {
+            uint16_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("CoupleColorTempToLevelMinMireds", 1, value);
+        }
+        case ColorControl::Attributes::StartUpColorTemperatureMireds::Id: {
+            chip::app::DataModel::Nullable<uint16_t> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("StartUpColorTemperatureMireds", 1, value);
+        }
+        case ColorControl::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, Thermostat::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ColorControl::Id);
         }
-        case Thermostat::Attributes::AcceptedCommandList::Id: {
+        case ColorControl::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, Thermostat::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ColorControl::Id);
         }
-        case Thermostat::Attributes::EventList::Id: {
+        case ColorControl::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case Thermostat::Attributes::AttributeList::Id: {
+        case ColorControl::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, Thermostat::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ColorControl::Id);
         }
-        case Thermostat::Attributes::FeatureMap::Id: {
+        case ColorControl::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case Thermostat::Attributes::ClusterRevision::Id: {
+        case ColorControl::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -15376,95 +17107,105 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case FanControl::Id: {
+    case BallastConfiguration::Id: {
         switch (path.mAttributeId)
         {
-        case FanControl::Attributes::FanMode::Id: {
-            chip::app::Clusters::FanControl::FanModeEnum value;
+        case BallastConfiguration::Attributes::PhysicalMinLevel::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("FanMode", 1, value);
+            return DataModelLogger::LogValue("PhysicalMinLevel", 1, value);
         }
-        case FanControl::Attributes::FanModeSequence::Id: {
-            chip::app::Clusters::FanControl::FanModeSequenceEnum value;
+        case BallastConfiguration::Attributes::PhysicalMaxLevel::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("FanModeSequence", 1, value);
+            return DataModelLogger::LogValue("PhysicalMaxLevel", 1, value);
         }
-        case FanControl::Attributes::PercentSetting::Id: {
-            chip::app::DataModel::Nullable<chip::Percent> value;
+        case BallastConfiguration::Attributes::BallastStatus::Id: {
+            chip::BitMask<chip::app::Clusters::BallastConfiguration::BallastStatusBitmap> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PercentSetting", 1, value);
+            return DataModelLogger::LogValue("BallastStatus", 1, value);
         }
-        case FanControl::Attributes::PercentCurrent::Id: {
-            chip::Percent value;
+        case BallastConfiguration::Attributes::MinLevel::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PercentCurrent", 1, value);
+            return DataModelLogger::LogValue("MinLevel", 1, value);
         }
-        case FanControl::Attributes::SpeedMax::Id: {
+        case BallastConfiguration::Attributes::MaxLevel::Id: {
             uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SpeedMax", 1, value);
+            return DataModelLogger::LogValue("MaxLevel", 1, value);
         }
-        case FanControl::Attributes::SpeedSetting::Id: {
+        case BallastConfiguration::Attributes::IntrinsicBallastFactor::Id: {
             chip::app::DataModel::Nullable<uint8_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SpeedSetting", 1, value);
+            return DataModelLogger::LogValue("IntrinsicBallastFactor", 1, value);
         }
-        case FanControl::Attributes::SpeedCurrent::Id: {
+        case BallastConfiguration::Attributes::BallastFactorAdjustment::Id: {
+            chip::app::DataModel::Nullable<uint8_t> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("BallastFactorAdjustment", 1, value);
+        }
+        case BallastConfiguration::Attributes::LampQuantity::Id: {
             uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SpeedCurrent", 1, value);
+            return DataModelLogger::LogValue("LampQuantity", 1, value);
         }
-        case FanControl::Attributes::RockSupport::Id: {
-            chip::BitMask<chip::app::Clusters::FanControl::RockBitmap> value;
+        case BallastConfiguration::Attributes::LampType::Id: {
+            chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("RockSupport", 1, value);
+            return DataModelLogger::LogValue("LampType", 1, value);
         }
-        case FanControl::Attributes::RockSetting::Id: {
-            chip::BitMask<chip::app::Clusters::FanControl::RockBitmap> value;
+        case BallastConfiguration::Attributes::LampManufacturer::Id: {
+            chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("RockSetting", 1, value);
+            return DataModelLogger::LogValue("LampManufacturer", 1, value);
         }
-        case FanControl::Attributes::WindSupport::Id: {
-            chip::BitMask<chip::app::Clusters::FanControl::WindBitmap> value;
+        case BallastConfiguration::Attributes::LampRatedHours::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("WindSupport", 1, value);
+            return DataModelLogger::LogValue("LampRatedHours", 1, value);
         }
-        case FanControl::Attributes::WindSetting::Id: {
-            chip::BitMask<chip::app::Clusters::FanControl::WindBitmap> value;
+        case BallastConfiguration::Attributes::LampBurnHours::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("WindSetting", 1, value);
+            return DataModelLogger::LogValue("LampBurnHours", 1, value);
         }
-        case FanControl::Attributes::AirflowDirection::Id: {
-            chip::app::Clusters::FanControl::AirflowDirectionEnum value;
+        case BallastConfiguration::Attributes::LampAlarmMode::Id: {
+            chip::BitMask<chip::app::Clusters::BallastConfiguration::LampAlarmModeBitmap> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AirflowDirection", 1, value);
+            return DataModelLogger::LogValue("LampAlarmMode", 1, value);
         }
-        case FanControl::Attributes::GeneratedCommandList::Id: {
+        case BallastConfiguration::Attributes::LampBurnHoursTripPoint::Id: {
+            chip::app::DataModel::Nullable<uint32_t> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("LampBurnHoursTripPoint", 1, value);
+        }
+        case BallastConfiguration::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, FanControl::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, BallastConfiguration::Id);
         }
-        case FanControl::Attributes::AcceptedCommandList::Id: {
+        case BallastConfiguration::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, FanControl::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, BallastConfiguration::Id);
         }
-        case FanControl::Attributes::EventList::Id: {
+        case BallastConfiguration::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case FanControl::Attributes::AttributeList::Id: {
+        case BallastConfiguration::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, FanControl::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, BallastConfiguration::Id);
         }
-        case FanControl::Attributes::FeatureMap::Id: {
+        case BallastConfiguration::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case FanControl::Attributes::ClusterRevision::Id: {
+        case BallastConfiguration::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -15472,51 +17213,60 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case ThermostatUserInterfaceConfiguration::Id: {
+    case IlluminanceMeasurement::Id: {
         switch (path.mAttributeId)
         {
-        case ThermostatUserInterfaceConfiguration::Attributes::TemperatureDisplayMode::Id: {
-            chip::app::Clusters::ThermostatUserInterfaceConfiguration::TemperatureDisplayModeEnum value;
+        case IlluminanceMeasurement::Attributes::MeasuredValue::Id: {
+            chip::app::DataModel::Nullable<uint16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TemperatureDisplayMode", 1, value);
+            return DataModelLogger::LogValue("MeasuredValue", 1, value);
         }
-        case ThermostatUserInterfaceConfiguration::Attributes::KeypadLockout::Id: {
-            chip::app::Clusters::ThermostatUserInterfaceConfiguration::KeypadLockoutEnum value;
+        case IlluminanceMeasurement::Attributes::MinMeasuredValue::Id: {
+            chip::app::DataModel::Nullable<uint16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("KeypadLockout", 1, value);
+            return DataModelLogger::LogValue("MinMeasuredValue", 1, value);
         }
-        case ThermostatUserInterfaceConfiguration::Attributes::ScheduleProgrammingVisibility::Id: {
-            chip::app::Clusters::ThermostatUserInterfaceConfiguration::ScheduleProgrammingVisibilityEnum value;
+        case IlluminanceMeasurement::Attributes::MaxMeasuredValue::Id: {
+            chip::app::DataModel::Nullable<uint16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ScheduleProgrammingVisibility", 1, value);
+            return DataModelLogger::LogValue("MaxMeasuredValue", 1, value);
         }
-        case ThermostatUserInterfaceConfiguration::Attributes::GeneratedCommandList::Id: {
+        case IlluminanceMeasurement::Attributes::Tolerance::Id: {
+            uint16_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("Tolerance", 1, value);
+        }
+        case IlluminanceMeasurement::Attributes::LightSensorType::Id: {
+            chip::app::DataModel::Nullable<chip::app::Clusters::IlluminanceMeasurement::LightSensorTypeEnum> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("LightSensorType", 1, value);
+        }
+        case IlluminanceMeasurement::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value,
-                                                          ThermostatUserInterfaceConfiguration::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, IlluminanceMeasurement::Id);
         }
-        case ThermostatUserInterfaceConfiguration::Attributes::AcceptedCommandList::Id: {
+        case IlluminanceMeasurement::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ThermostatUserInterfaceConfiguration::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, IlluminanceMeasurement::Id);
         }
-        case ThermostatUserInterfaceConfiguration::Attributes::EventList::Id: {
+        case IlluminanceMeasurement::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case ThermostatUserInterfaceConfiguration::Attributes::AttributeList::Id: {
+        case IlluminanceMeasurement::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ThermostatUserInterfaceConfiguration::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, IlluminanceMeasurement::Id);
         }
-        case ThermostatUserInterfaceConfiguration::Attributes::FeatureMap::Id: {
+        case IlluminanceMeasurement::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case ThermostatUserInterfaceConfiguration::Attributes::ClusterRevision::Id: {
+        case IlluminanceMeasurement::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -15524,295 +17274,354 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case ColorControl::Id: {
+    case TemperatureMeasurement::Id: {
         switch (path.mAttributeId)
         {
-        case ColorControl::Attributes::CurrentHue::Id: {
-            uint8_t value;
+        case TemperatureMeasurement::Attributes::MeasuredValue::Id: {
+            chip::app::DataModel::Nullable<int16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentHue", 1, value);
+            return DataModelLogger::LogValue("MeasuredValue", 1, value);
         }
-        case ColorControl::Attributes::CurrentSaturation::Id: {
-            uint8_t value;
+        case TemperatureMeasurement::Attributes::MinMeasuredValue::Id: {
+            chip::app::DataModel::Nullable<int16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentSaturation", 1, value);
+            return DataModelLogger::LogValue("MinMeasuredValue", 1, value);
         }
-        case ColorControl::Attributes::RemainingTime::Id: {
-            uint16_t value;
+        case TemperatureMeasurement::Attributes::MaxMeasuredValue::Id: {
+            chip::app::DataModel::Nullable<int16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("RemainingTime", 1, value);
+            return DataModelLogger::LogValue("MaxMeasuredValue", 1, value);
         }
-        case ColorControl::Attributes::CurrentX::Id: {
+        case TemperatureMeasurement::Attributes::Tolerance::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentX", 1, value);
+            return DataModelLogger::LogValue("Tolerance", 1, value);
         }
-        case ColorControl::Attributes::CurrentY::Id: {
+        case TemperatureMeasurement::Attributes::GeneratedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, TemperatureMeasurement::Id);
+        }
+        case TemperatureMeasurement::Attributes::AcceptedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, TemperatureMeasurement::Id);
+        }
+        case TemperatureMeasurement::Attributes::EventList::Id: {
+            chip::app::DataModel::DecodableList<chip::EventId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("EventList", 1, value);
+        }
+        case TemperatureMeasurement::Attributes::AttributeList::Id: {
+            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, TemperatureMeasurement::Id);
+        }
+        case TemperatureMeasurement::Attributes::FeatureMap::Id: {
+            uint32_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("FeatureMap", 1, value);
+        }
+        case TemperatureMeasurement::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentY", 1, value);
+            return DataModelLogger::LogValue("ClusterRevision", 1, value);
         }
-        case ColorControl::Attributes::DriftCompensation::Id: {
-            chip::app::Clusters::ColorControl::DriftCompensationEnum value;
+        }
+        break;
+    }
+    case PressureMeasurement::Id: {
+        switch (path.mAttributeId)
+        {
+        case PressureMeasurement::Attributes::MeasuredValue::Id: {
+            chip::app::DataModel::Nullable<int16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("DriftCompensation", 1, value);
+            return DataModelLogger::LogValue("MeasuredValue", 1, value);
         }
-        case ColorControl::Attributes::CompensationText::Id: {
-            chip::CharSpan value;
+        case PressureMeasurement::Attributes::MinMeasuredValue::Id: {
+            chip::app::DataModel::Nullable<int16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CompensationText", 1, value);
+            return DataModelLogger::LogValue("MinMeasuredValue", 1, value);
         }
-        case ColorControl::Attributes::ColorTemperatureMireds::Id: {
+        case PressureMeasurement::Attributes::MaxMeasuredValue::Id: {
+            chip::app::DataModel::Nullable<int16_t> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("MaxMeasuredValue", 1, value);
+        }
+        case PressureMeasurement::Attributes::Tolerance::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ColorTemperatureMireds", 1, value);
+            return DataModelLogger::LogValue("Tolerance", 1, value);
         }
-        case ColorControl::Attributes::ColorMode::Id: {
-            chip::app::Clusters::ColorControl::ColorModeEnum value;
+        case PressureMeasurement::Attributes::ScaledValue::Id: {
+            chip::app::DataModel::Nullable<int16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ColorMode", 1, value);
+            return DataModelLogger::LogValue("ScaledValue", 1, value);
         }
-        case ColorControl::Attributes::Options::Id: {
-            chip::BitMask<chip::app::Clusters::ColorControl::OptionsBitmap> value;
+        case PressureMeasurement::Attributes::MinScaledValue::Id: {
+            chip::app::DataModel::Nullable<int16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Options", 1, value);
+            return DataModelLogger::LogValue("MinScaledValue", 1, value);
         }
-        case ColorControl::Attributes::NumberOfPrimaries::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case PressureMeasurement::Attributes::MaxScaledValue::Id: {
+            chip::app::DataModel::Nullable<int16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("NumberOfPrimaries", 1, value);
+            return DataModelLogger::LogValue("MaxScaledValue", 1, value);
         }
-        case ColorControl::Attributes::Primary1X::Id: {
+        case PressureMeasurement::Attributes::ScaledTolerance::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Primary1X", 1, value);
+            return DataModelLogger::LogValue("ScaledTolerance", 1, value);
         }
-        case ColorControl::Attributes::Primary1Y::Id: {
-            uint16_t value;
+        case PressureMeasurement::Attributes::Scale::Id: {
+            int8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Primary1Y", 1, value);
+            return DataModelLogger::LogValue("Scale", 1, value);
         }
-        case ColorControl::Attributes::Primary1Intensity::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case PressureMeasurement::Attributes::GeneratedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Primary1Intensity", 1, value);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, PressureMeasurement::Id);
         }
-        case ColorControl::Attributes::Primary2X::Id: {
-            uint16_t value;
+        case PressureMeasurement::Attributes::AcceptedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Primary2X", 1, value);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, PressureMeasurement::Id);
         }
-        case ColorControl::Attributes::Primary2Y::Id: {
-            uint16_t value;
+        case PressureMeasurement::Attributes::EventList::Id: {
+            chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Primary2Y", 1, value);
+            return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case ColorControl::Attributes::Primary2Intensity::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case PressureMeasurement::Attributes::AttributeList::Id: {
+            chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Primary2Intensity", 1, value);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, PressureMeasurement::Id);
         }
-        case ColorControl::Attributes::Primary3X::Id: {
-            uint16_t value;
+        case PressureMeasurement::Attributes::FeatureMap::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Primary3X", 1, value);
+            return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case ColorControl::Attributes::Primary3Y::Id: {
+        case PressureMeasurement::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Primary3Y", 1, value);
+            return DataModelLogger::LogValue("ClusterRevision", 1, value);
         }
-        case ColorControl::Attributes::Primary3Intensity::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Primary3Intensity", 1, value);
         }
-        case ColorControl::Attributes::Primary4X::Id: {
-            uint16_t value;
+        break;
+    }
+    case FlowMeasurement::Id: {
+        switch (path.mAttributeId)
+        {
+        case FlowMeasurement::Attributes::MeasuredValue::Id: {
+            chip::app::DataModel::Nullable<uint16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Primary4X", 1, value);
+            return DataModelLogger::LogValue("MeasuredValue", 1, value);
         }
-        case ColorControl::Attributes::Primary4Y::Id: {
-            uint16_t value;
+        case FlowMeasurement::Attributes::MinMeasuredValue::Id: {
+            chip::app::DataModel::Nullable<uint16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Primary4Y", 1, value);
+            return DataModelLogger::LogValue("MinMeasuredValue", 1, value);
         }
-        case ColorControl::Attributes::Primary4Intensity::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case FlowMeasurement::Attributes::MaxMeasuredValue::Id: {
+            chip::app::DataModel::Nullable<uint16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Primary4Intensity", 1, value);
+            return DataModelLogger::LogValue("MaxMeasuredValue", 1, value);
         }
-        case ColorControl::Attributes::Primary5X::Id: {
+        case FlowMeasurement::Attributes::Tolerance::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Primary5X", 1, value);
+            return DataModelLogger::LogValue("Tolerance", 1, value);
         }
-        case ColorControl::Attributes::Primary5Y::Id: {
-            uint16_t value;
+        case FlowMeasurement::Attributes::GeneratedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Primary5Y", 1, value);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, FlowMeasurement::Id);
         }
-        case ColorControl::Attributes::Primary5Intensity::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case FlowMeasurement::Attributes::AcceptedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Primary5Intensity", 1, value);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, FlowMeasurement::Id);
         }
-        case ColorControl::Attributes::Primary6X::Id: {
-            uint16_t value;
+        case FlowMeasurement::Attributes::EventList::Id: {
+            chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Primary6X", 1, value);
+            return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case ColorControl::Attributes::Primary6Y::Id: {
-            uint16_t value;
+        case FlowMeasurement::Attributes::AttributeList::Id: {
+            chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Primary6Y", 1, value);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, FlowMeasurement::Id);
         }
-        case ColorControl::Attributes::Primary6Intensity::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case FlowMeasurement::Attributes::FeatureMap::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Primary6Intensity", 1, value);
+            return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case ColorControl::Attributes::WhitePointX::Id: {
+        case FlowMeasurement::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("WhitePointX", 1, value);
+            return DataModelLogger::LogValue("ClusterRevision", 1, value);
         }
-        case ColorControl::Attributes::WhitePointY::Id: {
-            uint16_t value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("WhitePointY", 1, value);
         }
-        case ColorControl::Attributes::ColorPointRX::Id: {
-            uint16_t value;
+        break;
+    }
+    case RelativeHumidityMeasurement::Id: {
+        switch (path.mAttributeId)
+        {
+        case RelativeHumidityMeasurement::Attributes::MeasuredValue::Id: {
+            chip::app::DataModel::Nullable<uint16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ColorPointRX", 1, value);
+            return DataModelLogger::LogValue("MeasuredValue", 1, value);
         }
-        case ColorControl::Attributes::ColorPointRY::Id: {
-            uint16_t value;
+        case RelativeHumidityMeasurement::Attributes::MinMeasuredValue::Id: {
+            chip::app::DataModel::Nullable<uint16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ColorPointRY", 1, value);
+            return DataModelLogger::LogValue("MinMeasuredValue", 1, value);
         }
-        case ColorControl::Attributes::ColorPointRIntensity::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case RelativeHumidityMeasurement::Attributes::MaxMeasuredValue::Id: {
+            chip::app::DataModel::Nullable<uint16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ColorPointRIntensity", 1, value);
+            return DataModelLogger::LogValue("MaxMeasuredValue", 1, value);
         }
-        case ColorControl::Attributes::ColorPointGX::Id: {
+        case RelativeHumidityMeasurement::Attributes::Tolerance::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ColorPointGX", 1, value);
+            return DataModelLogger::LogValue("Tolerance", 1, value);
         }
-        case ColorControl::Attributes::ColorPointGY::Id: {
-            uint16_t value;
+        case RelativeHumidityMeasurement::Attributes::GeneratedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ColorPointGY", 1, value);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, RelativeHumidityMeasurement::Id);
         }
-        case ColorControl::Attributes::ColorPointGIntensity::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case RelativeHumidityMeasurement::Attributes::AcceptedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ColorPointGIntensity", 1, value);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, RelativeHumidityMeasurement::Id);
         }
-        case ColorControl::Attributes::ColorPointBX::Id: {
-            uint16_t value;
+        case RelativeHumidityMeasurement::Attributes::EventList::Id: {
+            chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ColorPointBX", 1, value);
+            return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case ColorControl::Attributes::ColorPointBY::Id: {
-            uint16_t value;
+        case RelativeHumidityMeasurement::Attributes::AttributeList::Id: {
+            chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ColorPointBY", 1, value);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, RelativeHumidityMeasurement::Id);
         }
-        case ColorControl::Attributes::ColorPointBIntensity::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case RelativeHumidityMeasurement::Attributes::FeatureMap::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ColorPointBIntensity", 1, value);
+            return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case ColorControl::Attributes::EnhancedCurrentHue::Id: {
+        case RelativeHumidityMeasurement::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EnhancedCurrentHue", 1, value);
+            return DataModelLogger::LogValue("ClusterRevision", 1, value);
         }
-        case ColorControl::Attributes::EnhancedColorMode::Id: {
-            chip::app::Clusters::ColorControl::EnhancedColorModeEnum value;
+        }
+        break;
+    }
+    case OccupancySensing::Id: {
+        switch (path.mAttributeId)
+        {
+        case OccupancySensing::Attributes::Occupancy::Id: {
+            chip::BitMask<chip::app::Clusters::OccupancySensing::OccupancyBitmap> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EnhancedColorMode", 1, value);
+            return DataModelLogger::LogValue("Occupancy", 1, value);
         }
-        case ColorControl::Attributes::ColorLoopActive::Id: {
-            uint8_t value;
+        case OccupancySensing::Attributes::OccupancySensorType::Id: {
+            chip::app::Clusters::OccupancySensing::OccupancySensorTypeEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ColorLoopActive", 1, value);
+            return DataModelLogger::LogValue("OccupancySensorType", 1, value);
         }
-        case ColorControl::Attributes::ColorLoopDirection::Id: {
-            uint8_t value;
+        case OccupancySensing::Attributes::OccupancySensorTypeBitmap::Id: {
+            chip::BitMask<chip::app::Clusters::OccupancySensing::OccupancySensorTypeBitmap> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ColorLoopDirection", 1, value);
+            return DataModelLogger::LogValue("OccupancySensorTypeBitmap", 1, value);
         }
-        case ColorControl::Attributes::ColorLoopTime::Id: {
+        case OccupancySensing::Attributes::HoldTime::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ColorLoopTime", 1, value);
+            return DataModelLogger::LogValue("HoldTime", 1, value);
         }
-        case ColorControl::Attributes::ColorLoopStartEnhancedHue::Id: {
+        case OccupancySensing::Attributes::HoldTimeLimits::Id: {
+            chip::app::Clusters::OccupancySensing::Structs::HoldTimeLimitsStruct::DecodableType value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("HoldTimeLimits", 1, value);
+        }
+        case OccupancySensing::Attributes::PIROccupiedToUnoccupiedDelay::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ColorLoopStartEnhancedHue", 1, value);
+            return DataModelLogger::LogValue("PIROccupiedToUnoccupiedDelay", 1, value);
         }
-        case ColorControl::Attributes::ColorLoopStoredEnhancedHue::Id: {
+        case OccupancySensing::Attributes::PIRUnoccupiedToOccupiedDelay::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ColorLoopStoredEnhancedHue", 1, value);
+            return DataModelLogger::LogValue("PIRUnoccupiedToOccupiedDelay", 1, value);
         }
-        case ColorControl::Attributes::ColorCapabilities::Id: {
-            chip::BitMask<chip::app::Clusters::ColorControl::ColorCapabilitiesBitmap> value;
+        case OccupancySensing::Attributes::PIRUnoccupiedToOccupiedThreshold::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ColorCapabilities", 1, value);
+            return DataModelLogger::LogValue("PIRUnoccupiedToOccupiedThreshold", 1, value);
         }
-        case ColorControl::Attributes::ColorTempPhysicalMinMireds::Id: {
+        case OccupancySensing::Attributes::UltrasonicOccupiedToUnoccupiedDelay::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ColorTempPhysicalMinMireds", 1, value);
+            return DataModelLogger::LogValue("UltrasonicOccupiedToUnoccupiedDelay", 1, value);
         }
-        case ColorControl::Attributes::ColorTempPhysicalMaxMireds::Id: {
+        case OccupancySensing::Attributes::UltrasonicUnoccupiedToOccupiedDelay::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ColorTempPhysicalMaxMireds", 1, value);
+            return DataModelLogger::LogValue("UltrasonicUnoccupiedToOccupiedDelay", 1, value);
         }
-        case ColorControl::Attributes::CoupleColorTempToLevelMinMireds::Id: {
+        case OccupancySensing::Attributes::UltrasonicUnoccupiedToOccupiedThreshold::Id: {
+            uint8_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("UltrasonicUnoccupiedToOccupiedThreshold", 1, value);
+        }
+        case OccupancySensing::Attributes::PhysicalContactOccupiedToUnoccupiedDelay::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CoupleColorTempToLevelMinMireds", 1, value);
+            return DataModelLogger::LogValue("PhysicalContactOccupiedToUnoccupiedDelay", 1, value);
         }
-        case ColorControl::Attributes::StartUpColorTemperatureMireds::Id: {
-            chip::app::DataModel::Nullable<uint16_t> value;
+        case OccupancySensing::Attributes::PhysicalContactUnoccupiedToOccupiedDelay::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("StartUpColorTemperatureMireds", 1, value);
+            return DataModelLogger::LogValue("PhysicalContactUnoccupiedToOccupiedDelay", 1, value);
         }
-        case ColorControl::Attributes::GeneratedCommandList::Id: {
+        case OccupancySensing::Attributes::PhysicalContactUnoccupiedToOccupiedThreshold::Id: {
+            uint8_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("PhysicalContactUnoccupiedToOccupiedThreshold", 1, value);
+        }
+        case OccupancySensing::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ColorControl::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, OccupancySensing::Id);
         }
-        case ColorControl::Attributes::AcceptedCommandList::Id: {
+        case OccupancySensing::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ColorControl::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, OccupancySensing::Id);
         }
-        case ColorControl::Attributes::EventList::Id: {
+        case OccupancySensing::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case ColorControl::Attributes::AttributeList::Id: {
+        case OccupancySensing::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ColorControl::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, OccupancySensing::Id);
         }
-        case ColorControl::Attributes::FeatureMap::Id: {
+        case OccupancySensing::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case ColorControl::Attributes::ClusterRevision::Id: {
+        case OccupancySensing::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -15820,105 +17629,92 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case BallastConfiguration::Id: {
+    case CarbonMonoxideConcentrationMeasurement::Id: {
         switch (path.mAttributeId)
         {
-        case BallastConfiguration::Attributes::PhysicalMinLevel::Id: {
-            uint8_t value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PhysicalMinLevel", 1, value);
-        }
-        case BallastConfiguration::Attributes::PhysicalMaxLevel::Id: {
-            uint8_t value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PhysicalMaxLevel", 1, value);
-        }
-        case BallastConfiguration::Attributes::BallastStatus::Id: {
-            chip::BitMask<chip::app::Clusters::BallastConfiguration::BallastStatusBitmap> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BallastStatus", 1, value);
-        }
-        case BallastConfiguration::Attributes::MinLevel::Id: {
-            uint8_t value;
+        case CarbonMonoxideConcentrationMeasurement::Attributes::MeasuredValue::Id: {
+            chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MinLevel", 1, value);
+            return DataModelLogger::LogValue("MeasuredValue", 1, value);
         }
-        case BallastConfiguration::Attributes::MaxLevel::Id: {
-            uint8_t value;
+        case CarbonMonoxideConcentrationMeasurement::Attributes::MinMeasuredValue::Id: {
+            chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MaxLevel", 1, value);
+            return DataModelLogger::LogValue("MinMeasuredValue", 1, value);
         }
-        case BallastConfiguration::Attributes::IntrinsicBallastFactor::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case CarbonMonoxideConcentrationMeasurement::Attributes::MaxMeasuredValue::Id: {
+            chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("IntrinsicBallastFactor", 1, value);
+            return DataModelLogger::LogValue("MaxMeasuredValue", 1, value);
         }
-        case BallastConfiguration::Attributes::BallastFactorAdjustment::Id: {
-            chip::app::DataModel::Nullable<uint8_t> value;
+        case CarbonMonoxideConcentrationMeasurement::Attributes::PeakMeasuredValue::Id: {
+            chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BallastFactorAdjustment", 1, value);
+            return DataModelLogger::LogValue("PeakMeasuredValue", 1, value);
         }
-        case BallastConfiguration::Attributes::LampQuantity::Id: {
-            uint8_t value;
+        case CarbonMonoxideConcentrationMeasurement::Attributes::PeakMeasuredValueWindow::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LampQuantity", 1, value);
+            return DataModelLogger::LogValue("PeakMeasuredValueWindow", 1, value);
         }
-        case BallastConfiguration::Attributes::LampType::Id: {
-            chip::CharSpan value;
+        case CarbonMonoxideConcentrationMeasurement::Attributes::AverageMeasuredValue::Id: {
+            chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LampType", 1, value);
+            return DataModelLogger::LogValue("AverageMeasuredValue", 1, value);
         }
-        case BallastConfiguration::Attributes::LampManufacturer::Id: {
-            chip::CharSpan value;
+        case CarbonMonoxideConcentrationMeasurement::Attributes::AverageMeasuredValueWindow::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LampManufacturer", 1, value);
+            return DataModelLogger::LogValue("AverageMeasuredValueWindow", 1, value);
         }
-        case BallastConfiguration::Attributes::LampRatedHours::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
+        case CarbonMonoxideConcentrationMeasurement::Attributes::Uncertainty::Id: {
+            float value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LampRatedHours", 1, value);
+            return DataModelLogger::LogValue("Uncertainty", 1, value);
         }
-        case BallastConfiguration::Attributes::LampBurnHours::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
+        case CarbonMonoxideConcentrationMeasurement::Attributes::MeasurementUnit::Id: {
+            chip::app::Clusters::CarbonMonoxideConcentrationMeasurement::MeasurementUnitEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LampBurnHours", 1, value);
+            return DataModelLogger::LogValue("MeasurementUnit", 1, value);
         }
-        case BallastConfiguration::Attributes::LampAlarmMode::Id: {
-            chip::BitMask<chip::app::Clusters::BallastConfiguration::LampAlarmModeBitmap> value;
+        case CarbonMonoxideConcentrationMeasurement::Attributes::MeasurementMedium::Id: {
+            chip::app::Clusters::CarbonMonoxideConcentrationMeasurement::MeasurementMediumEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LampAlarmMode", 1, value);
+            return DataModelLogger::LogValue("MeasurementMedium", 1, value);
         }
-        case BallastConfiguration::Attributes::LampBurnHoursTripPoint::Id: {
-            chip::app::DataModel::Nullable<uint32_t> value;
+        case CarbonMonoxideConcentrationMeasurement::Attributes::LevelValue::Id: {
+            chip::app::Clusters::CarbonMonoxideConcentrationMeasurement::LevelValueEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LampBurnHoursTripPoint", 1, value);
+            return DataModelLogger::LogValue("LevelValue", 1, value);
         }
-        case BallastConfiguration::Attributes::GeneratedCommandList::Id: {
+        case CarbonMonoxideConcentrationMeasurement::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, BallastConfiguration::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value,
+                                                          CarbonMonoxideConcentrationMeasurement::Id);
         }
-        case BallastConfiguration::Attributes::AcceptedCommandList::Id: {
+        case CarbonMonoxideConcentrationMeasurement::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, BallastConfiguration::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value,
+                                                         CarbonMonoxideConcentrationMeasurement::Id);
         }
-        case BallastConfiguration::Attributes::EventList::Id: {
+        case CarbonMonoxideConcentrationMeasurement::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case BallastConfiguration::Attributes::AttributeList::Id: {
+        case CarbonMonoxideConcentrationMeasurement::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, BallastConfiguration::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, CarbonMonoxideConcentrationMeasurement::Id);
         }
-        case BallastConfiguration::Attributes::FeatureMap::Id: {
+        case CarbonMonoxideConcentrationMeasurement::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case BallastConfiguration::Attributes::ClusterRevision::Id: {
+        case CarbonMonoxideConcentrationMeasurement::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -15926,60 +17722,92 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case IlluminanceMeasurement::Id: {
+    case CarbonDioxideConcentrationMeasurement::Id: {
         switch (path.mAttributeId)
         {
-        case IlluminanceMeasurement::Attributes::MeasuredValue::Id: {
-            chip::app::DataModel::Nullable<uint16_t> value;
+        case CarbonDioxideConcentrationMeasurement::Attributes::MeasuredValue::Id: {
+            chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("MeasuredValue", 1, value);
         }
-        case IlluminanceMeasurement::Attributes::MinMeasuredValue::Id: {
-            chip::app::DataModel::Nullable<uint16_t> value;
+        case CarbonDioxideConcentrationMeasurement::Attributes::MinMeasuredValue::Id: {
+            chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("MinMeasuredValue", 1, value);
         }
-        case IlluminanceMeasurement::Attributes::MaxMeasuredValue::Id: {
-            chip::app::DataModel::Nullable<uint16_t> value;
+        case CarbonDioxideConcentrationMeasurement::Attributes::MaxMeasuredValue::Id: {
+            chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("MaxMeasuredValue", 1, value);
         }
-        case IlluminanceMeasurement::Attributes::Tolerance::Id: {
-            uint16_t value;
+        case CarbonDioxideConcentrationMeasurement::Attributes::PeakMeasuredValue::Id: {
+            chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Tolerance", 1, value);
+            return DataModelLogger::LogValue("PeakMeasuredValue", 1, value);
         }
-        case IlluminanceMeasurement::Attributes::LightSensorType::Id: {
-            chip::app::DataModel::Nullable<chip::app::Clusters::IlluminanceMeasurement::LightSensorTypeEnum> value;
+        case CarbonDioxideConcentrationMeasurement::Attributes::PeakMeasuredValueWindow::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LightSensorType", 1, value);
+            return DataModelLogger::LogValue("PeakMeasuredValueWindow", 1, value);
         }
-        case IlluminanceMeasurement::Attributes::GeneratedCommandList::Id: {
+        case CarbonDioxideConcentrationMeasurement::Attributes::AverageMeasuredValue::Id: {
+            chip::app::DataModel::Nullable<float> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("AverageMeasuredValue", 1, value);
+        }
+        case CarbonDioxideConcentrationMeasurement::Attributes::AverageMeasuredValueWindow::Id: {
+            uint32_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("AverageMeasuredValueWindow", 1, value);
+        }
+        case CarbonDioxideConcentrationMeasurement::Attributes::Uncertainty::Id: {
+            float value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("Uncertainty", 1, value);
+        }
+        case CarbonDioxideConcentrationMeasurement::Attributes::MeasurementUnit::Id: {
+            chip::app::Clusters::CarbonDioxideConcentrationMeasurement::MeasurementUnitEnum value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("MeasurementUnit", 1, value);
+        }
+        case CarbonDioxideConcentrationMeasurement::Attributes::MeasurementMedium::Id: {
+            chip::app::Clusters::CarbonDioxideConcentrationMeasurement::MeasurementMediumEnum value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("MeasurementMedium", 1, value);
+        }
+        case CarbonDioxideConcentrationMeasurement::Attributes::LevelValue::Id: {
+            chip::app::Clusters::CarbonDioxideConcentrationMeasurement::LevelValueEnum value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("LevelValue", 1, value);
+        }
+        case CarbonDioxideConcentrationMeasurement::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, IlluminanceMeasurement::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value,
+                                                          CarbonDioxideConcentrationMeasurement::Id);
         }
-        case IlluminanceMeasurement::Attributes::AcceptedCommandList::Id: {
+        case CarbonDioxideConcentrationMeasurement::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, IlluminanceMeasurement::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value,
+                                                         CarbonDioxideConcentrationMeasurement::Id);
         }
-        case IlluminanceMeasurement::Attributes::EventList::Id: {
+        case CarbonDioxideConcentrationMeasurement::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case IlluminanceMeasurement::Attributes::AttributeList::Id: {
+        case CarbonDioxideConcentrationMeasurement::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, IlluminanceMeasurement::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, CarbonDioxideConcentrationMeasurement::Id);
         }
-        case IlluminanceMeasurement::Attributes::FeatureMap::Id: {
+        case CarbonDioxideConcentrationMeasurement::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case IlluminanceMeasurement::Attributes::ClusterRevision::Id: {
+        case CarbonDioxideConcentrationMeasurement::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -15987,55 +17815,92 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case TemperatureMeasurement::Id: {
+    case NitrogenDioxideConcentrationMeasurement::Id: {
         switch (path.mAttributeId)
         {
-        case TemperatureMeasurement::Attributes::MeasuredValue::Id: {
-            chip::app::DataModel::Nullable<int16_t> value;
+        case NitrogenDioxideConcentrationMeasurement::Attributes::MeasuredValue::Id: {
+            chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("MeasuredValue", 1, value);
         }
-        case TemperatureMeasurement::Attributes::MinMeasuredValue::Id: {
-            chip::app::DataModel::Nullable<int16_t> value;
+        case NitrogenDioxideConcentrationMeasurement::Attributes::MinMeasuredValue::Id: {
+            chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("MinMeasuredValue", 1, value);
         }
-        case TemperatureMeasurement::Attributes::MaxMeasuredValue::Id: {
-            chip::app::DataModel::Nullable<int16_t> value;
+        case NitrogenDioxideConcentrationMeasurement::Attributes::MaxMeasuredValue::Id: {
+            chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("MaxMeasuredValue", 1, value);
         }
-        case TemperatureMeasurement::Attributes::Tolerance::Id: {
-            uint16_t value;
+        case NitrogenDioxideConcentrationMeasurement::Attributes::PeakMeasuredValue::Id: {
+            chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Tolerance", 1, value);
+            return DataModelLogger::LogValue("PeakMeasuredValue", 1, value);
         }
-        case TemperatureMeasurement::Attributes::GeneratedCommandList::Id: {
+        case NitrogenDioxideConcentrationMeasurement::Attributes::PeakMeasuredValueWindow::Id: {
+            uint32_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("PeakMeasuredValueWindow", 1, value);
+        }
+        case NitrogenDioxideConcentrationMeasurement::Attributes::AverageMeasuredValue::Id: {
+            chip::app::DataModel::Nullable<float> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("AverageMeasuredValue", 1, value);
+        }
+        case NitrogenDioxideConcentrationMeasurement::Attributes::AverageMeasuredValueWindow::Id: {
+            uint32_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("AverageMeasuredValueWindow", 1, value);
+        }
+        case NitrogenDioxideConcentrationMeasurement::Attributes::Uncertainty::Id: {
+            float value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("Uncertainty", 1, value);
+        }
+        case NitrogenDioxideConcentrationMeasurement::Attributes::MeasurementUnit::Id: {
+            chip::app::Clusters::NitrogenDioxideConcentrationMeasurement::MeasurementUnitEnum value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("MeasurementUnit", 1, value);
+        }
+        case NitrogenDioxideConcentrationMeasurement::Attributes::MeasurementMedium::Id: {
+            chip::app::Clusters::NitrogenDioxideConcentrationMeasurement::MeasurementMediumEnum value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("MeasurementMedium", 1, value);
+        }
+        case NitrogenDioxideConcentrationMeasurement::Attributes::LevelValue::Id: {
+            chip::app::Clusters::NitrogenDioxideConcentrationMeasurement::LevelValueEnum value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("LevelValue", 1, value);
+        }
+        case NitrogenDioxideConcentrationMeasurement::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, TemperatureMeasurement::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value,
+                                                          NitrogenDioxideConcentrationMeasurement::Id);
         }
-        case TemperatureMeasurement::Attributes::AcceptedCommandList::Id: {
+        case NitrogenDioxideConcentrationMeasurement::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, TemperatureMeasurement::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value,
+                                                         NitrogenDioxideConcentrationMeasurement::Id);
         }
-        case TemperatureMeasurement::Attributes::EventList::Id: {
+        case NitrogenDioxideConcentrationMeasurement::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case TemperatureMeasurement::Attributes::AttributeList::Id: {
+        case NitrogenDioxideConcentrationMeasurement::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, TemperatureMeasurement::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, NitrogenDioxideConcentrationMeasurement::Id);
         }
-        case TemperatureMeasurement::Attributes::FeatureMap::Id: {
+        case NitrogenDioxideConcentrationMeasurement::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case TemperatureMeasurement::Attributes::ClusterRevision::Id: {
+        case NitrogenDioxideConcentrationMeasurement::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -16043,80 +17908,90 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case PressureMeasurement::Id: {
+    case OzoneConcentrationMeasurement::Id: {
         switch (path.mAttributeId)
         {
-        case PressureMeasurement::Attributes::MeasuredValue::Id: {
-            chip::app::DataModel::Nullable<int16_t> value;
+        case OzoneConcentrationMeasurement::Attributes::MeasuredValue::Id: {
+            chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("MeasuredValue", 1, value);
         }
-        case PressureMeasurement::Attributes::MinMeasuredValue::Id: {
-            chip::app::DataModel::Nullable<int16_t> value;
+        case OzoneConcentrationMeasurement::Attributes::MinMeasuredValue::Id: {
+            chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("MinMeasuredValue", 1, value);
         }
-        case PressureMeasurement::Attributes::MaxMeasuredValue::Id: {
-            chip::app::DataModel::Nullable<int16_t> value;
+        case OzoneConcentrationMeasurement::Attributes::MaxMeasuredValue::Id: {
+            chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("MaxMeasuredValue", 1, value);
         }
-        case PressureMeasurement::Attributes::Tolerance::Id: {
-            uint16_t value;
+        case OzoneConcentrationMeasurement::Attributes::PeakMeasuredValue::Id: {
+            chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Tolerance", 1, value);
+            return DataModelLogger::LogValue("PeakMeasuredValue", 1, value);
         }
-        case PressureMeasurement::Attributes::ScaledValue::Id: {
-            chip::app::DataModel::Nullable<int16_t> value;
+        case OzoneConcentrationMeasurement::Attributes::PeakMeasuredValueWindow::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ScaledValue", 1, value);
+            return DataModelLogger::LogValue("PeakMeasuredValueWindow", 1, value);
         }
-        case PressureMeasurement::Attributes::MinScaledValue::Id: {
-            chip::app::DataModel::Nullable<int16_t> value;
+        case OzoneConcentrationMeasurement::Attributes::AverageMeasuredValue::Id: {
+            chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MinScaledValue", 1, value);
+            return DataModelLogger::LogValue("AverageMeasuredValue", 1, value);
         }
-        case PressureMeasurement::Attributes::MaxScaledValue::Id: {
-            chip::app::DataModel::Nullable<int16_t> value;
+        case OzoneConcentrationMeasurement::Attributes::AverageMeasuredValueWindow::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MaxScaledValue", 1, value);
+            return DataModelLogger::LogValue("AverageMeasuredValueWindow", 1, value);
         }
-        case PressureMeasurement::Attributes::ScaledTolerance::Id: {
-            uint16_t value;
+        case OzoneConcentrationMeasurement::Attributes::Uncertainty::Id: {
+            float value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ScaledTolerance", 1, value);
+            return DataModelLogger::LogValue("Uncertainty", 1, value);
         }
-        case PressureMeasurement::Attributes::Scale::Id: {
-            int8_t value;
+        case OzoneConcentrationMeasurement::Attributes::MeasurementUnit::Id: {
+            chip::app::Clusters::OzoneConcentrationMeasurement::MeasurementUnitEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Scale", 1, value);
+            return DataModelLogger::LogValue("MeasurementUnit", 1, value);
         }
-        case PressureMeasurement::Attributes::GeneratedCommandList::Id: {
+        case OzoneConcentrationMeasurement::Attributes::MeasurementMedium::Id: {
+            chip::app::Clusters::OzoneConcentrationMeasurement::MeasurementMediumEnum value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("MeasurementMedium", 1, value);
+        }
+        case OzoneConcentrationMeasurement::Attributes::LevelValue::Id: {
+            chip::app::Clusters::OzoneConcentrationMeasurement::LevelValueEnum value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("LevelValue", 1, value);
+        }
+        case OzoneConcentrationMeasurement::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, PressureMeasurement::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, OzoneConcentrationMeasurement::Id);
         }
-        case PressureMeasurement::Attributes::AcceptedCommandList::Id: {
+        case OzoneConcentrationMeasurement::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, PressureMeasurement::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, OzoneConcentrationMeasurement::Id);
         }
-        case PressureMeasurement::Attributes::EventList::Id: {
+        case OzoneConcentrationMeasurement::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case PressureMeasurement::Attributes::AttributeList::Id: {
+        case OzoneConcentrationMeasurement::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, PressureMeasurement::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, OzoneConcentrationMeasurement::Id);
         }
-        case PressureMeasurement::Attributes::FeatureMap::Id: {
+        case OzoneConcentrationMeasurement::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case PressureMeasurement::Attributes::ClusterRevision::Id: {
+        case OzoneConcentrationMeasurement::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -16124,111 +17999,90 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case FlowMeasurement::Id: {
+    case Pm25ConcentrationMeasurement::Id: {
         switch (path.mAttributeId)
         {
-        case FlowMeasurement::Attributes::MeasuredValue::Id: {
-            chip::app::DataModel::Nullable<uint16_t> value;
+        case Pm25ConcentrationMeasurement::Attributes::MeasuredValue::Id: {
+            chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("MeasuredValue", 1, value);
         }
-        case FlowMeasurement::Attributes::MinMeasuredValue::Id: {
-            chip::app::DataModel::Nullable<uint16_t> value;
+        case Pm25ConcentrationMeasurement::Attributes::MinMeasuredValue::Id: {
+            chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("MinMeasuredValue", 1, value);
         }
-        case FlowMeasurement::Attributes::MaxMeasuredValue::Id: {
-            chip::app::DataModel::Nullable<uint16_t> value;
+        case Pm25ConcentrationMeasurement::Attributes::MaxMeasuredValue::Id: {
+            chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("MaxMeasuredValue", 1, value);
         }
-        case FlowMeasurement::Attributes::Tolerance::Id: {
-            uint16_t value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Tolerance", 1, value);
-        }
-        case FlowMeasurement::Attributes::GeneratedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, FlowMeasurement::Id);
-        }
-        case FlowMeasurement::Attributes::AcceptedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case Pm25ConcentrationMeasurement::Attributes::PeakMeasuredValue::Id: {
+            chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, FlowMeasurement::Id);
+            return DataModelLogger::LogValue("PeakMeasuredValue", 1, value);
         }
-        case FlowMeasurement::Attributes::EventList::Id: {
-            chip::app::DataModel::DecodableList<chip::EventId> value;
+        case Pm25ConcentrationMeasurement::Attributes::PeakMeasuredValueWindow::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EventList", 1, value);
+            return DataModelLogger::LogValue("PeakMeasuredValueWindow", 1, value);
         }
-        case FlowMeasurement::Attributes::AttributeList::Id: {
-            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+        case Pm25ConcentrationMeasurement::Attributes::AverageMeasuredValue::Id: {
+            chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, FlowMeasurement::Id);
+            return DataModelLogger::LogValue("AverageMeasuredValue", 1, value);
         }
-        case FlowMeasurement::Attributes::FeatureMap::Id: {
+        case Pm25ConcentrationMeasurement::Attributes::AverageMeasuredValueWindow::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("FeatureMap", 1, value);
-        }
-        case FlowMeasurement::Attributes::ClusterRevision::Id: {
-            uint16_t value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ClusterRevision", 1, value);
-        }
+            return DataModelLogger::LogValue("AverageMeasuredValueWindow", 1, value);
         }
-        break;
-    }
-    case RelativeHumidityMeasurement::Id: {
-        switch (path.mAttributeId)
-        {
-        case RelativeHumidityMeasurement::Attributes::MeasuredValue::Id: {
-            chip::app::DataModel::Nullable<uint16_t> value;
+        case Pm25ConcentrationMeasurement::Attributes::Uncertainty::Id: {
+            float value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MeasuredValue", 1, value);
+            return DataModelLogger::LogValue("Uncertainty", 1, value);
         }
-        case RelativeHumidityMeasurement::Attributes::MinMeasuredValue::Id: {
-            chip::app::DataModel::Nullable<uint16_t> value;
+        case Pm25ConcentrationMeasurement::Attributes::MeasurementUnit::Id: {
+            chip::app::Clusters::Pm25ConcentrationMeasurement::MeasurementUnitEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MinMeasuredValue", 1, value);
+            return DataModelLogger::LogValue("MeasurementUnit", 1, value);
         }
-        case RelativeHumidityMeasurement::Attributes::MaxMeasuredValue::Id: {
-            chip::app::DataModel::Nullable<uint16_t> value;
+        case Pm25ConcentrationMeasurement::Attributes::MeasurementMedium::Id: {
+            chip::app::Clusters::Pm25ConcentrationMeasurement::MeasurementMediumEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MaxMeasuredValue", 1, value);
+            return DataModelLogger::LogValue("MeasurementMedium", 1, value);
         }
-        case RelativeHumidityMeasurement::Attributes::Tolerance::Id: {
-            uint16_t value;
+        case Pm25ConcentrationMeasurement::Attributes::LevelValue::Id: {
+            chip::app::Clusters::Pm25ConcentrationMeasurement::LevelValueEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Tolerance", 1, value);
+            return DataModelLogger::LogValue("LevelValue", 1, value);
         }
-        case RelativeHumidityMeasurement::Attributes::GeneratedCommandList::Id: {
+        case Pm25ConcentrationMeasurement::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, RelativeHumidityMeasurement::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, Pm25ConcentrationMeasurement::Id);
         }
-        case RelativeHumidityMeasurement::Attributes::AcceptedCommandList::Id: {
+        case Pm25ConcentrationMeasurement::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, RelativeHumidityMeasurement::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, Pm25ConcentrationMeasurement::Id);
         }
-        case RelativeHumidityMeasurement::Attributes::EventList::Id: {
+        case Pm25ConcentrationMeasurement::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case RelativeHumidityMeasurement::Attributes::AttributeList::Id: {
+        case Pm25ConcentrationMeasurement::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, RelativeHumidityMeasurement::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, Pm25ConcentrationMeasurement::Id);
         }
-        case RelativeHumidityMeasurement::Attributes::FeatureMap::Id: {
+        case Pm25ConcentrationMeasurement::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case RelativeHumidityMeasurement::Attributes::ClusterRevision::Id: {
+        case Pm25ConcentrationMeasurement::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -16236,105 +18090,91 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case OccupancySensing::Id: {
+    case FormaldehydeConcentrationMeasurement::Id: {
         switch (path.mAttributeId)
         {
-        case OccupancySensing::Attributes::Occupancy::Id: {
-            chip::BitMask<chip::app::Clusters::OccupancySensing::OccupancyBitmap> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Occupancy", 1, value);
-        }
-        case OccupancySensing::Attributes::OccupancySensorType::Id: {
-            chip::app::Clusters::OccupancySensing::OccupancySensorTypeEnum value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OccupancySensorType", 1, value);
-        }
-        case OccupancySensing::Attributes::OccupancySensorTypeBitmap::Id: {
-            chip::BitMask<chip::app::Clusters::OccupancySensing::OccupancySensorTypeBitmap> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OccupancySensorTypeBitmap", 1, value);
-        }
-        case OccupancySensing::Attributes::HoldTime::Id: {
-            uint16_t value;
+        case FormaldehydeConcentrationMeasurement::Attributes::MeasuredValue::Id: {
+            chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("HoldTime", 1, value);
+            return DataModelLogger::LogValue("MeasuredValue", 1, value);
         }
-        case OccupancySensing::Attributes::HoldTimeLimits::Id: {
-            chip::app::Clusters::OccupancySensing::Structs::HoldTimeLimitsStruct::DecodableType value;
+        case FormaldehydeConcentrationMeasurement::Attributes::MinMeasuredValue::Id: {
+            chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("HoldTimeLimits", 1, value);
+            return DataModelLogger::LogValue("MinMeasuredValue", 1, value);
         }
-        case OccupancySensing::Attributes::PIROccupiedToUnoccupiedDelay::Id: {
-            uint16_t value;
+        case FormaldehydeConcentrationMeasurement::Attributes::MaxMeasuredValue::Id: {
+            chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PIROccupiedToUnoccupiedDelay", 1, value);
+            return DataModelLogger::LogValue("MaxMeasuredValue", 1, value);
         }
-        case OccupancySensing::Attributes::PIRUnoccupiedToOccupiedDelay::Id: {
-            uint16_t value;
+        case FormaldehydeConcentrationMeasurement::Attributes::PeakMeasuredValue::Id: {
+            chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PIRUnoccupiedToOccupiedDelay", 1, value);
+            return DataModelLogger::LogValue("PeakMeasuredValue", 1, value);
         }
-        case OccupancySensing::Attributes::PIRUnoccupiedToOccupiedThreshold::Id: {
-            uint8_t value;
+        case FormaldehydeConcentrationMeasurement::Attributes::PeakMeasuredValueWindow::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PIRUnoccupiedToOccupiedThreshold", 1, value);
+            return DataModelLogger::LogValue("PeakMeasuredValueWindow", 1, value);
         }
-        case OccupancySensing::Attributes::UltrasonicOccupiedToUnoccupiedDelay::Id: {
-            uint16_t value;
+        case FormaldehydeConcentrationMeasurement::Attributes::AverageMeasuredValue::Id: {
+            chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("UltrasonicOccupiedToUnoccupiedDelay", 1, value);
+            return DataModelLogger::LogValue("AverageMeasuredValue", 1, value);
         }
-        case OccupancySensing::Attributes::UltrasonicUnoccupiedToOccupiedDelay::Id: {
-            uint16_t value;
+        case FormaldehydeConcentrationMeasurement::Attributes::AverageMeasuredValueWindow::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("UltrasonicUnoccupiedToOccupiedDelay", 1, value);
+            return DataModelLogger::LogValue("AverageMeasuredValueWindow", 1, value);
         }
-        case OccupancySensing::Attributes::UltrasonicUnoccupiedToOccupiedThreshold::Id: {
-            uint8_t value;
+        case FormaldehydeConcentrationMeasurement::Attributes::Uncertainty::Id: {
+            float value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("UltrasonicUnoccupiedToOccupiedThreshold", 1, value);
-        }
-        case OccupancySensing::Attributes::PhysicalContactOccupiedToUnoccupiedDelay::Id: {
-            uint16_t value;
+            return DataModelLogger::LogValue("Uncertainty", 1, value);
+        }
+        case FormaldehydeConcentrationMeasurement::Attributes::MeasurementUnit::Id: {
+            chip::app::Clusters::FormaldehydeConcentrationMeasurement::MeasurementUnitEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PhysicalContactOccupiedToUnoccupiedDelay", 1, value);
+            return DataModelLogger::LogValue("MeasurementUnit", 1, value);
         }
-        case OccupancySensing::Attributes::PhysicalContactUnoccupiedToOccupiedDelay::Id: {
-            uint16_t value;
+        case FormaldehydeConcentrationMeasurement::Attributes::MeasurementMedium::Id: {
+            chip::app::Clusters::FormaldehydeConcentrationMeasurement::MeasurementMediumEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PhysicalContactUnoccupiedToOccupiedDelay", 1, value);
+            return DataModelLogger::LogValue("MeasurementMedium", 1, value);
         }
-        case OccupancySensing::Attributes::PhysicalContactUnoccupiedToOccupiedThreshold::Id: {
-            uint8_t value;
+        case FormaldehydeConcentrationMeasurement::Attributes::LevelValue::Id: {
+            chip::app::Clusters::FormaldehydeConcentrationMeasurement::LevelValueEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PhysicalContactUnoccupiedToOccupiedThreshold", 1, value);
+            return DataModelLogger::LogValue("LevelValue", 1, value);
         }
-        case OccupancySensing::Attributes::GeneratedCommandList::Id: {
+        case FormaldehydeConcentrationMeasurement::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, OccupancySensing::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value,
+                                                          FormaldehydeConcentrationMeasurement::Id);
         }
-        case OccupancySensing::Attributes::AcceptedCommandList::Id: {
+        case FormaldehydeConcentrationMeasurement::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, OccupancySensing::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, FormaldehydeConcentrationMeasurement::Id);
         }
-        case OccupancySensing::Attributes::EventList::Id: {
+        case FormaldehydeConcentrationMeasurement::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case OccupancySensing::Attributes::AttributeList::Id: {
+        case FormaldehydeConcentrationMeasurement::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, OccupancySensing::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, FormaldehydeConcentrationMeasurement::Id);
         }
-        case OccupancySensing::Attributes::FeatureMap::Id: {
+        case FormaldehydeConcentrationMeasurement::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case OccupancySensing::Attributes::ClusterRevision::Id: {
+        case FormaldehydeConcentrationMeasurement::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -16342,92 +18182,90 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case CarbonMonoxideConcentrationMeasurement::Id: {
+    case Pm1ConcentrationMeasurement::Id: {
         switch (path.mAttributeId)
         {
-        case CarbonMonoxideConcentrationMeasurement::Attributes::MeasuredValue::Id: {
+        case Pm1ConcentrationMeasurement::Attributes::MeasuredValue::Id: {
             chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("MeasuredValue", 1, value);
         }
-        case CarbonMonoxideConcentrationMeasurement::Attributes::MinMeasuredValue::Id: {
+        case Pm1ConcentrationMeasurement::Attributes::MinMeasuredValue::Id: {
             chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("MinMeasuredValue", 1, value);
         }
-        case CarbonMonoxideConcentrationMeasurement::Attributes::MaxMeasuredValue::Id: {
+        case Pm1ConcentrationMeasurement::Attributes::MaxMeasuredValue::Id: {
             chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("MaxMeasuredValue", 1, value);
         }
-        case CarbonMonoxideConcentrationMeasurement::Attributes::PeakMeasuredValue::Id: {
+        case Pm1ConcentrationMeasurement::Attributes::PeakMeasuredValue::Id: {
             chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("PeakMeasuredValue", 1, value);
         }
-        case CarbonMonoxideConcentrationMeasurement::Attributes::PeakMeasuredValueWindow::Id: {
+        case Pm1ConcentrationMeasurement::Attributes::PeakMeasuredValueWindow::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("PeakMeasuredValueWindow", 1, value);
         }
-        case CarbonMonoxideConcentrationMeasurement::Attributes::AverageMeasuredValue::Id: {
+        case Pm1ConcentrationMeasurement::Attributes::AverageMeasuredValue::Id: {
             chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("AverageMeasuredValue", 1, value);
         }
-        case CarbonMonoxideConcentrationMeasurement::Attributes::AverageMeasuredValueWindow::Id: {
+        case Pm1ConcentrationMeasurement::Attributes::AverageMeasuredValueWindow::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("AverageMeasuredValueWindow", 1, value);
         }
-        case CarbonMonoxideConcentrationMeasurement::Attributes::Uncertainty::Id: {
+        case Pm1ConcentrationMeasurement::Attributes::Uncertainty::Id: {
             float value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("Uncertainty", 1, value);
         }
-        case CarbonMonoxideConcentrationMeasurement::Attributes::MeasurementUnit::Id: {
-            chip::app::Clusters::CarbonMonoxideConcentrationMeasurement::MeasurementUnitEnum value;
+        case Pm1ConcentrationMeasurement::Attributes::MeasurementUnit::Id: {
+            chip::app::Clusters::Pm1ConcentrationMeasurement::MeasurementUnitEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("MeasurementUnit", 1, value);
         }
-        case CarbonMonoxideConcentrationMeasurement::Attributes::MeasurementMedium::Id: {
-            chip::app::Clusters::CarbonMonoxideConcentrationMeasurement::MeasurementMediumEnum value;
+        case Pm1ConcentrationMeasurement::Attributes::MeasurementMedium::Id: {
+            chip::app::Clusters::Pm1ConcentrationMeasurement::MeasurementMediumEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("MeasurementMedium", 1, value);
         }
-        case CarbonMonoxideConcentrationMeasurement::Attributes::LevelValue::Id: {
-            chip::app::Clusters::CarbonMonoxideConcentrationMeasurement::LevelValueEnum value;
+        case Pm1ConcentrationMeasurement::Attributes::LevelValue::Id: {
+            chip::app::Clusters::Pm1ConcentrationMeasurement::LevelValueEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("LevelValue", 1, value);
         }
-        case CarbonMonoxideConcentrationMeasurement::Attributes::GeneratedCommandList::Id: {
+        case Pm1ConcentrationMeasurement::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value,
-                                                          CarbonMonoxideConcentrationMeasurement::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, Pm1ConcentrationMeasurement::Id);
         }
-        case CarbonMonoxideConcentrationMeasurement::Attributes::AcceptedCommandList::Id: {
+        case Pm1ConcentrationMeasurement::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value,
-                                                         CarbonMonoxideConcentrationMeasurement::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, Pm1ConcentrationMeasurement::Id);
         }
-        case CarbonMonoxideConcentrationMeasurement::Attributes::EventList::Id: {
+        case Pm1ConcentrationMeasurement::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case CarbonMonoxideConcentrationMeasurement::Attributes::AttributeList::Id: {
+        case Pm1ConcentrationMeasurement::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, CarbonMonoxideConcentrationMeasurement::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, Pm1ConcentrationMeasurement::Id);
         }
-        case CarbonMonoxideConcentrationMeasurement::Attributes::FeatureMap::Id: {
+        case Pm1ConcentrationMeasurement::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case CarbonMonoxideConcentrationMeasurement::Attributes::ClusterRevision::Id: {
+        case Pm1ConcentrationMeasurement::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -16435,92 +18273,90 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case CarbonDioxideConcentrationMeasurement::Id: {
+    case Pm10ConcentrationMeasurement::Id: {
         switch (path.mAttributeId)
         {
-        case CarbonDioxideConcentrationMeasurement::Attributes::MeasuredValue::Id: {
+        case Pm10ConcentrationMeasurement::Attributes::MeasuredValue::Id: {
             chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("MeasuredValue", 1, value);
         }
-        case CarbonDioxideConcentrationMeasurement::Attributes::MinMeasuredValue::Id: {
+        case Pm10ConcentrationMeasurement::Attributes::MinMeasuredValue::Id: {
             chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("MinMeasuredValue", 1, value);
         }
-        case CarbonDioxideConcentrationMeasurement::Attributes::MaxMeasuredValue::Id: {
+        case Pm10ConcentrationMeasurement::Attributes::MaxMeasuredValue::Id: {
             chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("MaxMeasuredValue", 1, value);
         }
-        case CarbonDioxideConcentrationMeasurement::Attributes::PeakMeasuredValue::Id: {
+        case Pm10ConcentrationMeasurement::Attributes::PeakMeasuredValue::Id: {
             chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("PeakMeasuredValue", 1, value);
         }
-        case CarbonDioxideConcentrationMeasurement::Attributes::PeakMeasuredValueWindow::Id: {
+        case Pm10ConcentrationMeasurement::Attributes::PeakMeasuredValueWindow::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("PeakMeasuredValueWindow", 1, value);
         }
-        case CarbonDioxideConcentrationMeasurement::Attributes::AverageMeasuredValue::Id: {
+        case Pm10ConcentrationMeasurement::Attributes::AverageMeasuredValue::Id: {
             chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("AverageMeasuredValue", 1, value);
         }
-        case CarbonDioxideConcentrationMeasurement::Attributes::AverageMeasuredValueWindow::Id: {
+        case Pm10ConcentrationMeasurement::Attributes::AverageMeasuredValueWindow::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("AverageMeasuredValueWindow", 1, value);
         }
-        case CarbonDioxideConcentrationMeasurement::Attributes::Uncertainty::Id: {
+        case Pm10ConcentrationMeasurement::Attributes::Uncertainty::Id: {
             float value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("Uncertainty", 1, value);
         }
-        case CarbonDioxideConcentrationMeasurement::Attributes::MeasurementUnit::Id: {
-            chip::app::Clusters::CarbonDioxideConcentrationMeasurement::MeasurementUnitEnum value;
+        case Pm10ConcentrationMeasurement::Attributes::MeasurementUnit::Id: {
+            chip::app::Clusters::Pm10ConcentrationMeasurement::MeasurementUnitEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("MeasurementUnit", 1, value);
         }
-        case CarbonDioxideConcentrationMeasurement::Attributes::MeasurementMedium::Id: {
-            chip::app::Clusters::CarbonDioxideConcentrationMeasurement::MeasurementMediumEnum value;
+        case Pm10ConcentrationMeasurement::Attributes::MeasurementMedium::Id: {
+            chip::app::Clusters::Pm10ConcentrationMeasurement::MeasurementMediumEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("MeasurementMedium", 1, value);
         }
-        case CarbonDioxideConcentrationMeasurement::Attributes::LevelValue::Id: {
-            chip::app::Clusters::CarbonDioxideConcentrationMeasurement::LevelValueEnum value;
+        case Pm10ConcentrationMeasurement::Attributes::LevelValue::Id: {
+            chip::app::Clusters::Pm10ConcentrationMeasurement::LevelValueEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("LevelValue", 1, value);
         }
-        case CarbonDioxideConcentrationMeasurement::Attributes::GeneratedCommandList::Id: {
+        case Pm10ConcentrationMeasurement::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value,
-                                                          CarbonDioxideConcentrationMeasurement::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, Pm10ConcentrationMeasurement::Id);
         }
-        case CarbonDioxideConcentrationMeasurement::Attributes::AcceptedCommandList::Id: {
+        case Pm10ConcentrationMeasurement::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value,
-                                                         CarbonDioxideConcentrationMeasurement::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, Pm10ConcentrationMeasurement::Id);
         }
-        case CarbonDioxideConcentrationMeasurement::Attributes::EventList::Id: {
+        case Pm10ConcentrationMeasurement::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case CarbonDioxideConcentrationMeasurement::Attributes::AttributeList::Id: {
+        case Pm10ConcentrationMeasurement::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, CarbonDioxideConcentrationMeasurement::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, Pm10ConcentrationMeasurement::Id);
         }
-        case CarbonDioxideConcentrationMeasurement::Attributes::FeatureMap::Id: {
+        case Pm10ConcentrationMeasurement::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case CarbonDioxideConcentrationMeasurement::Attributes::ClusterRevision::Id: {
+        case Pm10ConcentrationMeasurement::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -16528,92 +18364,93 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case NitrogenDioxideConcentrationMeasurement::Id: {
+    case TotalVolatileOrganicCompoundsConcentrationMeasurement::Id: {
         switch (path.mAttributeId)
         {
-        case NitrogenDioxideConcentrationMeasurement::Attributes::MeasuredValue::Id: {
+        case TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::MeasuredValue::Id: {
             chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("MeasuredValue", 1, value);
         }
-        case NitrogenDioxideConcentrationMeasurement::Attributes::MinMeasuredValue::Id: {
+        case TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::MinMeasuredValue::Id: {
             chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("MinMeasuredValue", 1, value);
         }
-        case NitrogenDioxideConcentrationMeasurement::Attributes::MaxMeasuredValue::Id: {
+        case TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::MaxMeasuredValue::Id: {
             chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("MaxMeasuredValue", 1, value);
         }
-        case NitrogenDioxideConcentrationMeasurement::Attributes::PeakMeasuredValue::Id: {
+        case TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::PeakMeasuredValue::Id: {
             chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("PeakMeasuredValue", 1, value);
         }
-        case NitrogenDioxideConcentrationMeasurement::Attributes::PeakMeasuredValueWindow::Id: {
+        case TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::PeakMeasuredValueWindow::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("PeakMeasuredValueWindow", 1, value);
         }
-        case NitrogenDioxideConcentrationMeasurement::Attributes::AverageMeasuredValue::Id: {
+        case TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::AverageMeasuredValue::Id: {
             chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("AverageMeasuredValue", 1, value);
         }
-        case NitrogenDioxideConcentrationMeasurement::Attributes::AverageMeasuredValueWindow::Id: {
+        case TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::AverageMeasuredValueWindow::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("AverageMeasuredValueWindow", 1, value);
         }
-        case NitrogenDioxideConcentrationMeasurement::Attributes::Uncertainty::Id: {
+        case TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::Uncertainty::Id: {
             float value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("Uncertainty", 1, value);
         }
-        case NitrogenDioxideConcentrationMeasurement::Attributes::MeasurementUnit::Id: {
-            chip::app::Clusters::NitrogenDioxideConcentrationMeasurement::MeasurementUnitEnum value;
+        case TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::MeasurementUnit::Id: {
+            chip::app::Clusters::TotalVolatileOrganicCompoundsConcentrationMeasurement::MeasurementUnitEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("MeasurementUnit", 1, value);
         }
-        case NitrogenDioxideConcentrationMeasurement::Attributes::MeasurementMedium::Id: {
-            chip::app::Clusters::NitrogenDioxideConcentrationMeasurement::MeasurementMediumEnum value;
+        case TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::MeasurementMedium::Id: {
+            chip::app::Clusters::TotalVolatileOrganicCompoundsConcentrationMeasurement::MeasurementMediumEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("MeasurementMedium", 1, value);
         }
-        case NitrogenDioxideConcentrationMeasurement::Attributes::LevelValue::Id: {
-            chip::app::Clusters::NitrogenDioxideConcentrationMeasurement::LevelValueEnum value;
+        case TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::LevelValue::Id: {
+            chip::app::Clusters::TotalVolatileOrganicCompoundsConcentrationMeasurement::LevelValueEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("LevelValue", 1, value);
         }
-        case NitrogenDioxideConcentrationMeasurement::Attributes::GeneratedCommandList::Id: {
+        case TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value,
-                                                          NitrogenDioxideConcentrationMeasurement::Id);
+                                                          TotalVolatileOrganicCompoundsConcentrationMeasurement::Id);
         }
-        case NitrogenDioxideConcentrationMeasurement::Attributes::AcceptedCommandList::Id: {
+        case TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value,
-                                                         NitrogenDioxideConcentrationMeasurement::Id);
+                                                         TotalVolatileOrganicCompoundsConcentrationMeasurement::Id);
         }
-        case NitrogenDioxideConcentrationMeasurement::Attributes::EventList::Id: {
+        case TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case NitrogenDioxideConcentrationMeasurement::Attributes::AttributeList::Id: {
+        case TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, NitrogenDioxideConcentrationMeasurement::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value,
+                                                   TotalVolatileOrganicCompoundsConcentrationMeasurement::Id);
         }
-        case NitrogenDioxideConcentrationMeasurement::Attributes::FeatureMap::Id: {
+        case TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case NitrogenDioxideConcentrationMeasurement::Attributes::ClusterRevision::Id: {
+        case TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -16621,90 +18458,136 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case OzoneConcentrationMeasurement::Id: {
+    case RadonConcentrationMeasurement::Id: {
         switch (path.mAttributeId)
         {
-        case OzoneConcentrationMeasurement::Attributes::MeasuredValue::Id: {
+        case RadonConcentrationMeasurement::Attributes::MeasuredValue::Id: {
             chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("MeasuredValue", 1, value);
         }
-        case OzoneConcentrationMeasurement::Attributes::MinMeasuredValue::Id: {
+        case RadonConcentrationMeasurement::Attributes::MinMeasuredValue::Id: {
             chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("MinMeasuredValue", 1, value);
         }
-        case OzoneConcentrationMeasurement::Attributes::MaxMeasuredValue::Id: {
+        case RadonConcentrationMeasurement::Attributes::MaxMeasuredValue::Id: {
             chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("MaxMeasuredValue", 1, value);
         }
-        case OzoneConcentrationMeasurement::Attributes::PeakMeasuredValue::Id: {
+        case RadonConcentrationMeasurement::Attributes::PeakMeasuredValue::Id: {
             chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("PeakMeasuredValue", 1, value);
         }
-        case OzoneConcentrationMeasurement::Attributes::PeakMeasuredValueWindow::Id: {
+        case RadonConcentrationMeasurement::Attributes::PeakMeasuredValueWindow::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("PeakMeasuredValueWindow", 1, value);
         }
-        case OzoneConcentrationMeasurement::Attributes::AverageMeasuredValue::Id: {
+        case RadonConcentrationMeasurement::Attributes::AverageMeasuredValue::Id: {
             chip::app::DataModel::Nullable<float> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("AverageMeasuredValue", 1, value);
         }
-        case OzoneConcentrationMeasurement::Attributes::AverageMeasuredValueWindow::Id: {
+        case RadonConcentrationMeasurement::Attributes::AverageMeasuredValueWindow::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("AverageMeasuredValueWindow", 1, value);
         }
-        case OzoneConcentrationMeasurement::Attributes::Uncertainty::Id: {
+        case RadonConcentrationMeasurement::Attributes::Uncertainty::Id: {
             float value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("Uncertainty", 1, value);
         }
-        case OzoneConcentrationMeasurement::Attributes::MeasurementUnit::Id: {
-            chip::app::Clusters::OzoneConcentrationMeasurement::MeasurementUnitEnum value;
+        case RadonConcentrationMeasurement::Attributes::MeasurementUnit::Id: {
+            chip::app::Clusters::RadonConcentrationMeasurement::MeasurementUnitEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("MeasurementUnit", 1, value);
         }
-        case OzoneConcentrationMeasurement::Attributes::MeasurementMedium::Id: {
-            chip::app::Clusters::OzoneConcentrationMeasurement::MeasurementMediumEnum value;
+        case RadonConcentrationMeasurement::Attributes::MeasurementMedium::Id: {
+            chip::app::Clusters::RadonConcentrationMeasurement::MeasurementMediumEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("MeasurementMedium", 1, value);
         }
-        case OzoneConcentrationMeasurement::Attributes::LevelValue::Id: {
-            chip::app::Clusters::OzoneConcentrationMeasurement::LevelValueEnum value;
+        case RadonConcentrationMeasurement::Attributes::LevelValue::Id: {
+            chip::app::Clusters::RadonConcentrationMeasurement::LevelValueEnum value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("LevelValue", 1, value);
+        }
+        case RadonConcentrationMeasurement::Attributes::GeneratedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, RadonConcentrationMeasurement::Id);
+        }
+        case RadonConcentrationMeasurement::Attributes::AcceptedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, RadonConcentrationMeasurement::Id);
+        }
+        case RadonConcentrationMeasurement::Attributes::EventList::Id: {
+            chip::app::DataModel::DecodableList<chip::EventId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("EventList", 1, value);
+        }
+        case RadonConcentrationMeasurement::Attributes::AttributeList::Id: {
+            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, RadonConcentrationMeasurement::Id);
+        }
+        case RadonConcentrationMeasurement::Attributes::FeatureMap::Id: {
+            uint32_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("FeatureMap", 1, value);
+        }
+        case RadonConcentrationMeasurement::Attributes::ClusterRevision::Id: {
+            uint16_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("ClusterRevision", 1, value);
+        }
+        }
+        break;
+    }
+    case WiFiNetworkManagement::Id: {
+        switch (path.mAttributeId)
+        {
+        case WiFiNetworkManagement::Attributes::Ssid::Id: {
+            chip::app::DataModel::Nullable<chip::ByteSpan> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("SSID", 1, value);
+        }
+        case WiFiNetworkManagement::Attributes::PassphraseSurrogate::Id: {
+            chip::app::DataModel::Nullable<uint64_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LevelValue", 1, value);
+            return DataModelLogger::LogValue("PassphraseSurrogate", 1, value);
         }
-        case OzoneConcentrationMeasurement::Attributes::GeneratedCommandList::Id: {
+        case WiFiNetworkManagement::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, OzoneConcentrationMeasurement::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, WiFiNetworkManagement::Id);
         }
-        case OzoneConcentrationMeasurement::Attributes::AcceptedCommandList::Id: {
+        case WiFiNetworkManagement::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, OzoneConcentrationMeasurement::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, WiFiNetworkManagement::Id);
         }
-        case OzoneConcentrationMeasurement::Attributes::EventList::Id: {
+        case WiFiNetworkManagement::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case OzoneConcentrationMeasurement::Attributes::AttributeList::Id: {
+        case WiFiNetworkManagement::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, OzoneConcentrationMeasurement::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, WiFiNetworkManagement::Id);
         }
-        case OzoneConcentrationMeasurement::Attributes::FeatureMap::Id: {
+        case WiFiNetworkManagement::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case OzoneConcentrationMeasurement::Attributes::ClusterRevision::Id: {
+        case WiFiNetworkManagement::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -16712,90 +18595,65 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case Pm25ConcentrationMeasurement::Id: {
+    case ThreadBorderRouterManagement::Id: {
         switch (path.mAttributeId)
         {
-        case Pm25ConcentrationMeasurement::Attributes::MeasuredValue::Id: {
-            chip::app::DataModel::Nullable<float> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MeasuredValue", 1, value);
-        }
-        case Pm25ConcentrationMeasurement::Attributes::MinMeasuredValue::Id: {
-            chip::app::DataModel::Nullable<float> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MinMeasuredValue", 1, value);
-        }
-        case Pm25ConcentrationMeasurement::Attributes::MaxMeasuredValue::Id: {
-            chip::app::DataModel::Nullable<float> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MaxMeasuredValue", 1, value);
-        }
-        case Pm25ConcentrationMeasurement::Attributes::PeakMeasuredValue::Id: {
-            chip::app::DataModel::Nullable<float> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PeakMeasuredValue", 1, value);
-        }
-        case Pm25ConcentrationMeasurement::Attributes::PeakMeasuredValueWindow::Id: {
-            uint32_t value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PeakMeasuredValueWindow", 1, value);
-        }
-        case Pm25ConcentrationMeasurement::Attributes::AverageMeasuredValue::Id: {
-            chip::app::DataModel::Nullable<float> value;
+        case ThreadBorderRouterManagement::Attributes::BorderRouterName::Id: {
+            chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AverageMeasuredValue", 1, value);
+            return DataModelLogger::LogValue("BorderRouterName", 1, value);
         }
-        case Pm25ConcentrationMeasurement::Attributes::AverageMeasuredValueWindow::Id: {
-            uint32_t value;
+        case ThreadBorderRouterManagement::Attributes::BorderAgentID::Id: {
+            chip::ByteSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AverageMeasuredValueWindow", 1, value);
+            return DataModelLogger::LogValue("BorderAgentID", 1, value);
         }
-        case Pm25ConcentrationMeasurement::Attributes::Uncertainty::Id: {
-            float value;
+        case ThreadBorderRouterManagement::Attributes::ThreadVersion::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Uncertainty", 1, value);
+            return DataModelLogger::LogValue("ThreadVersion", 1, value);
         }
-        case Pm25ConcentrationMeasurement::Attributes::MeasurementUnit::Id: {
-            chip::app::Clusters::Pm25ConcentrationMeasurement::MeasurementUnitEnum value;
+        case ThreadBorderRouterManagement::Attributes::InterfaceEnabled::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MeasurementUnit", 1, value);
+            return DataModelLogger::LogValue("InterfaceEnabled", 1, value);
         }
-        case Pm25ConcentrationMeasurement::Attributes::MeasurementMedium::Id: {
-            chip::app::Clusters::Pm25ConcentrationMeasurement::MeasurementMediumEnum value;
+        case ThreadBorderRouterManagement::Attributes::ActiveDatasetTimestamp::Id: {
+            chip::app::DataModel::Nullable<uint64_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MeasurementMedium", 1, value);
+            return DataModelLogger::LogValue("ActiveDatasetTimestamp", 1, value);
         }
-        case Pm25ConcentrationMeasurement::Attributes::LevelValue::Id: {
-            chip::app::Clusters::Pm25ConcentrationMeasurement::LevelValueEnum value;
+        case ThreadBorderRouterManagement::Attributes::PendingDatasetTimestamp::Id: {
+            chip::app::DataModel::Nullable<uint64_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LevelValue", 1, value);
+            return DataModelLogger::LogValue("PendingDatasetTimestamp", 1, value);
         }
-        case Pm25ConcentrationMeasurement::Attributes::GeneratedCommandList::Id: {
+        case ThreadBorderRouterManagement::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, Pm25ConcentrationMeasurement::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ThreadBorderRouterManagement::Id);
         }
-        case Pm25ConcentrationMeasurement::Attributes::AcceptedCommandList::Id: {
+        case ThreadBorderRouterManagement::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, Pm25ConcentrationMeasurement::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ThreadBorderRouterManagement::Id);
         }
-        case Pm25ConcentrationMeasurement::Attributes::EventList::Id: {
+        case ThreadBorderRouterManagement::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case Pm25ConcentrationMeasurement::Attributes::AttributeList::Id: {
+        case ThreadBorderRouterManagement::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, Pm25ConcentrationMeasurement::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ThreadBorderRouterManagement::Id);
         }
-        case Pm25ConcentrationMeasurement::Attributes::FeatureMap::Id: {
+        case ThreadBorderRouterManagement::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case Pm25ConcentrationMeasurement::Attributes::ClusterRevision::Id: {
+        case ThreadBorderRouterManagement::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -16803,91 +18661,98 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case FormaldehydeConcentrationMeasurement::Id: {
+    case ThreadNetworkDirectory::Id: {
         switch (path.mAttributeId)
         {
-        case FormaldehydeConcentrationMeasurement::Attributes::MeasuredValue::Id: {
-            chip::app::DataModel::Nullable<float> value;
+        case ThreadNetworkDirectory::Attributes::PreferredExtendedPanID::Id: {
+            chip::app::DataModel::Nullable<chip::ByteSpan> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MeasuredValue", 1, value);
+            return DataModelLogger::LogValue("PreferredExtendedPanID", 1, value);
         }
-        case FormaldehydeConcentrationMeasurement::Attributes::MinMeasuredValue::Id: {
-            chip::app::DataModel::Nullable<float> value;
+        case ThreadNetworkDirectory::Attributes::ThreadNetworks::Id: {
+            chip::app::DataModel::DecodableList<
+                chip::app::Clusters::ThreadNetworkDirectory::Structs::ThreadNetworkStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MinMeasuredValue", 1, value);
+            return DataModelLogger::LogValue("ThreadNetworks", 1, value);
         }
-        case FormaldehydeConcentrationMeasurement::Attributes::MaxMeasuredValue::Id: {
-            chip::app::DataModel::Nullable<float> value;
+        case ThreadNetworkDirectory::Attributes::ThreadNetworkTableSize::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MaxMeasuredValue", 1, value);
+            return DataModelLogger::LogValue("ThreadNetworkTableSize", 1, value);
         }
-        case FormaldehydeConcentrationMeasurement::Attributes::PeakMeasuredValue::Id: {
-            chip::app::DataModel::Nullable<float> value;
+        case ThreadNetworkDirectory::Attributes::GeneratedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PeakMeasuredValue", 1, value);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ThreadNetworkDirectory::Id);
         }
-        case FormaldehydeConcentrationMeasurement::Attributes::PeakMeasuredValueWindow::Id: {
-            uint32_t value;
+        case ThreadNetworkDirectory::Attributes::AcceptedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PeakMeasuredValueWindow", 1, value);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ThreadNetworkDirectory::Id);
         }
-        case FormaldehydeConcentrationMeasurement::Attributes::AverageMeasuredValue::Id: {
-            chip::app::DataModel::Nullable<float> value;
+        case ThreadNetworkDirectory::Attributes::EventList::Id: {
+            chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AverageMeasuredValue", 1, value);
+            return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case FormaldehydeConcentrationMeasurement::Attributes::AverageMeasuredValueWindow::Id: {
-            uint32_t value;
+        case ThreadNetworkDirectory::Attributes::AttributeList::Id: {
+            chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AverageMeasuredValueWindow", 1, value);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ThreadNetworkDirectory::Id);
         }
-        case FormaldehydeConcentrationMeasurement::Attributes::Uncertainty::Id: {
-            float value;
+        case ThreadNetworkDirectory::Attributes::FeatureMap::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Uncertainty", 1, value);
+            return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case FormaldehydeConcentrationMeasurement::Attributes::MeasurementUnit::Id: {
-            chip::app::Clusters::FormaldehydeConcentrationMeasurement::MeasurementUnitEnum value;
+        case ThreadNetworkDirectory::Attributes::ClusterRevision::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MeasurementUnit", 1, value);
+            return DataModelLogger::LogValue("ClusterRevision", 1, value);
         }
-        case FormaldehydeConcentrationMeasurement::Attributes::MeasurementMedium::Id: {
-            chip::app::Clusters::FormaldehydeConcentrationMeasurement::MeasurementMediumEnum value;
+        }
+        break;
+    }
+    case WakeOnLan::Id: {
+        switch (path.mAttributeId)
+        {
+        case WakeOnLan::Attributes::MACAddress::Id: {
+            chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MeasurementMedium", 1, value);
+            return DataModelLogger::LogValue("MACAddress", 1, value);
         }
-        case FormaldehydeConcentrationMeasurement::Attributes::LevelValue::Id: {
-            chip::app::Clusters::FormaldehydeConcentrationMeasurement::LevelValueEnum value;
+        case WakeOnLan::Attributes::LinkLocalAddress::Id: {
+            chip::ByteSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LevelValue", 1, value);
+            return DataModelLogger::LogValue("LinkLocalAddress", 1, value);
         }
-        case FormaldehydeConcentrationMeasurement::Attributes::GeneratedCommandList::Id: {
+        case WakeOnLan::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value,
-                                                          FormaldehydeConcentrationMeasurement::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, WakeOnLan::Id);
         }
-        case FormaldehydeConcentrationMeasurement::Attributes::AcceptedCommandList::Id: {
+        case WakeOnLan::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, FormaldehydeConcentrationMeasurement::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, WakeOnLan::Id);
         }
-        case FormaldehydeConcentrationMeasurement::Attributes::EventList::Id: {
+        case WakeOnLan::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case FormaldehydeConcentrationMeasurement::Attributes::AttributeList::Id: {
+        case WakeOnLan::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, FormaldehydeConcentrationMeasurement::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, WakeOnLan::Id);
         }
-        case FormaldehydeConcentrationMeasurement::Attributes::FeatureMap::Id: {
+        case WakeOnLan::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case FormaldehydeConcentrationMeasurement::Attributes::ClusterRevision::Id: {
+        case WakeOnLan::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -16895,90 +18760,97 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case Pm1ConcentrationMeasurement::Id: {
+    case Channel::Id: {
         switch (path.mAttributeId)
         {
-        case Pm1ConcentrationMeasurement::Attributes::MeasuredValue::Id: {
-            chip::app::DataModel::Nullable<float> value;
+        case Channel::Attributes::ChannelList::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::Channel::Structs::ChannelInfoStruct::DecodableType> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MeasuredValue", 1, value);
+            return DataModelLogger::LogValue("ChannelList", 1, value);
         }
-        case Pm1ConcentrationMeasurement::Attributes::MinMeasuredValue::Id: {
-            chip::app::DataModel::Nullable<float> value;
+        case Channel::Attributes::Lineup::Id: {
+            chip::app::DataModel::Nullable<chip::app::Clusters::Channel::Structs::LineupInfoStruct::DecodableType> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MinMeasuredValue", 1, value);
+            return DataModelLogger::LogValue("Lineup", 1, value);
         }
-        case Pm1ConcentrationMeasurement::Attributes::MaxMeasuredValue::Id: {
-            chip::app::DataModel::Nullable<float> value;
+        case Channel::Attributes::CurrentChannel::Id: {
+            chip::app::DataModel::Nullable<chip::app::Clusters::Channel::Structs::ChannelInfoStruct::DecodableType> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MaxMeasuredValue", 1, value);
+            return DataModelLogger::LogValue("CurrentChannel", 1, value);
         }
-        case Pm1ConcentrationMeasurement::Attributes::PeakMeasuredValue::Id: {
-            chip::app::DataModel::Nullable<float> value;
+        case Channel::Attributes::GeneratedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PeakMeasuredValue", 1, value);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, Channel::Id);
         }
-        case Pm1ConcentrationMeasurement::Attributes::PeakMeasuredValueWindow::Id: {
-            uint32_t value;
+        case Channel::Attributes::AcceptedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PeakMeasuredValueWindow", 1, value);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, Channel::Id);
         }
-        case Pm1ConcentrationMeasurement::Attributes::AverageMeasuredValue::Id: {
-            chip::app::DataModel::Nullable<float> value;
+        case Channel::Attributes::EventList::Id: {
+            chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AverageMeasuredValue", 1, value);
+            return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case Pm1ConcentrationMeasurement::Attributes::AverageMeasuredValueWindow::Id: {
-            uint32_t value;
+        case Channel::Attributes::AttributeList::Id: {
+            chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AverageMeasuredValueWindow", 1, value);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, Channel::Id);
         }
-        case Pm1ConcentrationMeasurement::Attributes::Uncertainty::Id: {
-            float value;
+        case Channel::Attributes::FeatureMap::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Uncertainty", 1, value);
+            return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case Pm1ConcentrationMeasurement::Attributes::MeasurementUnit::Id: {
-            chip::app::Clusters::Pm1ConcentrationMeasurement::MeasurementUnitEnum value;
+        case Channel::Attributes::ClusterRevision::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MeasurementUnit", 1, value);
+            return DataModelLogger::LogValue("ClusterRevision", 1, value);
         }
-        case Pm1ConcentrationMeasurement::Attributes::MeasurementMedium::Id: {
-            chip::app::Clusters::Pm1ConcentrationMeasurement::MeasurementMediumEnum value;
+        }
+        break;
+    }
+    case TargetNavigator::Id: {
+        switch (path.mAttributeId)
+        {
+        case TargetNavigator::Attributes::TargetList::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::TargetNavigator::Structs::TargetInfoStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MeasurementMedium", 1, value);
+            return DataModelLogger::LogValue("TargetList", 1, value);
         }
-        case Pm1ConcentrationMeasurement::Attributes::LevelValue::Id: {
-            chip::app::Clusters::Pm1ConcentrationMeasurement::LevelValueEnum value;
+        case TargetNavigator::Attributes::CurrentTarget::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LevelValue", 1, value);
+            return DataModelLogger::LogValue("CurrentTarget", 1, value);
         }
-        case Pm1ConcentrationMeasurement::Attributes::GeneratedCommandList::Id: {
+        case TargetNavigator::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, Pm1ConcentrationMeasurement::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, TargetNavigator::Id);
         }
-        case Pm1ConcentrationMeasurement::Attributes::AcceptedCommandList::Id: {
+        case TargetNavigator::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, Pm1ConcentrationMeasurement::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, TargetNavigator::Id);
         }
-        case Pm1ConcentrationMeasurement::Attributes::EventList::Id: {
+        case TargetNavigator::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case Pm1ConcentrationMeasurement::Attributes::AttributeList::Id: {
+        case TargetNavigator::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, Pm1ConcentrationMeasurement::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, TargetNavigator::Id);
         }
-        case Pm1ConcentrationMeasurement::Attributes::FeatureMap::Id: {
+        case TargetNavigator::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case Pm1ConcentrationMeasurement::Attributes::ClusterRevision::Id: {
+        case TargetNavigator::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -16986,90 +18858,95 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case Pm10ConcentrationMeasurement::Id: {
+    case MediaPlayback::Id: {
         switch (path.mAttributeId)
         {
-        case Pm10ConcentrationMeasurement::Attributes::MeasuredValue::Id: {
-            chip::app::DataModel::Nullable<float> value;
+        case MediaPlayback::Attributes::CurrentState::Id: {
+            chip::app::Clusters::MediaPlayback::PlaybackStateEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MeasuredValue", 1, value);
+            return DataModelLogger::LogValue("CurrentState", 1, value);
         }
-        case Pm10ConcentrationMeasurement::Attributes::MinMeasuredValue::Id: {
-            chip::app::DataModel::Nullable<float> value;
+        case MediaPlayback::Attributes::StartTime::Id: {
+            chip::app::DataModel::Nullable<uint64_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MinMeasuredValue", 1, value);
+            return DataModelLogger::LogValue("StartTime", 1, value);
         }
-        case Pm10ConcentrationMeasurement::Attributes::MaxMeasuredValue::Id: {
-            chip::app::DataModel::Nullable<float> value;
+        case MediaPlayback::Attributes::Duration::Id: {
+            chip::app::DataModel::Nullable<uint64_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MaxMeasuredValue", 1, value);
+            return DataModelLogger::LogValue("Duration", 1, value);
         }
-        case Pm10ConcentrationMeasurement::Attributes::PeakMeasuredValue::Id: {
-            chip::app::DataModel::Nullable<float> value;
+        case MediaPlayback::Attributes::SampledPosition::Id: {
+            chip::app::DataModel::Nullable<chip::app::Clusters::MediaPlayback::Structs::PlaybackPositionStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PeakMeasuredValue", 1, value);
+            return DataModelLogger::LogValue("SampledPosition", 1, value);
         }
-        case Pm10ConcentrationMeasurement::Attributes::PeakMeasuredValueWindow::Id: {
-            uint32_t value;
+        case MediaPlayback::Attributes::PlaybackSpeed::Id: {
+            float value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PeakMeasuredValueWindow", 1, value);
+            return DataModelLogger::LogValue("PlaybackSpeed", 1, value);
         }
-        case Pm10ConcentrationMeasurement::Attributes::AverageMeasuredValue::Id: {
-            chip::app::DataModel::Nullable<float> value;
+        case MediaPlayback::Attributes::SeekRangeEnd::Id: {
+            chip::app::DataModel::Nullable<uint64_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AverageMeasuredValue", 1, value);
+            return DataModelLogger::LogValue("SeekRangeEnd", 1, value);
         }
-        case Pm10ConcentrationMeasurement::Attributes::AverageMeasuredValueWindow::Id: {
-            uint32_t value;
+        case MediaPlayback::Attributes::SeekRangeStart::Id: {
+            chip::app::DataModel::Nullable<uint64_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AverageMeasuredValueWindow", 1, value);
+            return DataModelLogger::LogValue("SeekRangeStart", 1, value);
         }
-        case Pm10ConcentrationMeasurement::Attributes::Uncertainty::Id: {
-            float value;
+        case MediaPlayback::Attributes::ActiveAudioTrack::Id: {
+            chip::app::DataModel::Nullable<chip::app::Clusters::MediaPlayback::Structs::TrackStruct::DecodableType> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Uncertainty", 1, value);
+            return DataModelLogger::LogValue("ActiveAudioTrack", 1, value);
         }
-        case Pm10ConcentrationMeasurement::Attributes::MeasurementUnit::Id: {
-            chip::app::Clusters::Pm10ConcentrationMeasurement::MeasurementUnitEnum value;
+        case MediaPlayback::Attributes::AvailableAudioTracks::Id: {
+            chip::app::DataModel::Nullable<
+                chip::app::DataModel::DecodableList<chip::app::Clusters::MediaPlayback::Structs::TrackStruct::DecodableType>>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MeasurementUnit", 1, value);
+            return DataModelLogger::LogValue("AvailableAudioTracks", 1, value);
         }
-        case Pm10ConcentrationMeasurement::Attributes::MeasurementMedium::Id: {
-            chip::app::Clusters::Pm10ConcentrationMeasurement::MeasurementMediumEnum value;
+        case MediaPlayback::Attributes::ActiveTextTrack::Id: {
+            chip::app::DataModel::Nullable<chip::app::Clusters::MediaPlayback::Structs::TrackStruct::DecodableType> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MeasurementMedium", 1, value);
+            return DataModelLogger::LogValue("ActiveTextTrack", 1, value);
         }
-        case Pm10ConcentrationMeasurement::Attributes::LevelValue::Id: {
-            chip::app::Clusters::Pm10ConcentrationMeasurement::LevelValueEnum value;
+        case MediaPlayback::Attributes::AvailableTextTracks::Id: {
+            chip::app::DataModel::Nullable<
+                chip::app::DataModel::DecodableList<chip::app::Clusters::MediaPlayback::Structs::TrackStruct::DecodableType>>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LevelValue", 1, value);
+            return DataModelLogger::LogValue("AvailableTextTracks", 1, value);
         }
-        case Pm10ConcentrationMeasurement::Attributes::GeneratedCommandList::Id: {
+        case MediaPlayback::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, Pm10ConcentrationMeasurement::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, MediaPlayback::Id);
         }
-        case Pm10ConcentrationMeasurement::Attributes::AcceptedCommandList::Id: {
+        case MediaPlayback::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, Pm10ConcentrationMeasurement::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, MediaPlayback::Id);
         }
-        case Pm10ConcentrationMeasurement::Attributes::EventList::Id: {
+        case MediaPlayback::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case Pm10ConcentrationMeasurement::Attributes::AttributeList::Id: {
+        case MediaPlayback::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, Pm10ConcentrationMeasurement::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, MediaPlayback::Id);
         }
-        case Pm10ConcentrationMeasurement::Attributes::FeatureMap::Id: {
+        case MediaPlayback::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case Pm10ConcentrationMeasurement::Attributes::ClusterRevision::Id: {
+        case MediaPlayback::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -17077,93 +18954,117 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case TotalVolatileOrganicCompoundsConcentrationMeasurement::Id: {
+    case MediaInput::Id: {
         switch (path.mAttributeId)
         {
-        case TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::MeasuredValue::Id: {
-            chip::app::DataModel::Nullable<float> value;
+        case MediaInput::Attributes::InputList::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::MediaInput::Structs::InputInfoStruct::DecodableType> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MeasuredValue", 1, value);
+            return DataModelLogger::LogValue("InputList", 1, value);
         }
-        case TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::MinMeasuredValue::Id: {
-            chip::app::DataModel::Nullable<float> value;
+        case MediaInput::Attributes::CurrentInput::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MinMeasuredValue", 1, value);
+            return DataModelLogger::LogValue("CurrentInput", 1, value);
         }
-        case TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::MaxMeasuredValue::Id: {
-            chip::app::DataModel::Nullable<float> value;
+        case MediaInput::Attributes::GeneratedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MaxMeasuredValue", 1, value);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, MediaInput::Id);
         }
-        case TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::PeakMeasuredValue::Id: {
-            chip::app::DataModel::Nullable<float> value;
+        case MediaInput::Attributes::AcceptedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PeakMeasuredValue", 1, value);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, MediaInput::Id);
         }
-        case TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::PeakMeasuredValueWindow::Id: {
-            uint32_t value;
+        case MediaInput::Attributes::EventList::Id: {
+            chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PeakMeasuredValueWindow", 1, value);
+            return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::AverageMeasuredValue::Id: {
-            chip::app::DataModel::Nullable<float> value;
+        case MediaInput::Attributes::AttributeList::Id: {
+            chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AverageMeasuredValue", 1, value);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, MediaInput::Id);
         }
-        case TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::AverageMeasuredValueWindow::Id: {
+        case MediaInput::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AverageMeasuredValueWindow", 1, value);
+            return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::Uncertainty::Id: {
-            float value;
+        case MediaInput::Attributes::ClusterRevision::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Uncertainty", 1, value);
+            return DataModelLogger::LogValue("ClusterRevision", 1, value);
         }
-        case TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::MeasurementUnit::Id: {
-            chip::app::Clusters::TotalVolatileOrganicCompoundsConcentrationMeasurement::MeasurementUnitEnum value;
+        }
+        break;
+    }
+    case LowPower::Id: {
+        switch (path.mAttributeId)
+        {
+        case LowPower::Attributes::GeneratedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MeasurementUnit", 1, value);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, LowPower::Id);
         }
-        case TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::MeasurementMedium::Id: {
-            chip::app::Clusters::TotalVolatileOrganicCompoundsConcentrationMeasurement::MeasurementMediumEnum value;
+        case LowPower::Attributes::AcceptedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MeasurementMedium", 1, value);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, LowPower::Id);
         }
-        case TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::LevelValue::Id: {
-            chip::app::Clusters::TotalVolatileOrganicCompoundsConcentrationMeasurement::LevelValueEnum value;
+        case LowPower::Attributes::EventList::Id: {
+            chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LevelValue", 1, value);
+            return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::GeneratedCommandList::Id: {
+        case LowPower::Attributes::AttributeList::Id: {
+            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, LowPower::Id);
+        }
+        case LowPower::Attributes::FeatureMap::Id: {
+            uint32_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("FeatureMap", 1, value);
+        }
+        case LowPower::Attributes::ClusterRevision::Id: {
+            uint16_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("ClusterRevision", 1, value);
+        }
+        }
+        break;
+    }
+    case KeypadInput::Id: {
+        switch (path.mAttributeId)
+        {
+        case KeypadInput::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value,
-                                                          TotalVolatileOrganicCompoundsConcentrationMeasurement::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, KeypadInput::Id);
         }
-        case TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::AcceptedCommandList::Id: {
+        case KeypadInput::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value,
-                                                         TotalVolatileOrganicCompoundsConcentrationMeasurement::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, KeypadInput::Id);
         }
-        case TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::EventList::Id: {
+        case KeypadInput::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::AttributeList::Id: {
+        case KeypadInput::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value,
-                                                   TotalVolatileOrganicCompoundsConcentrationMeasurement::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, KeypadInput::Id);
         }
-        case TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::FeatureMap::Id: {
+        case KeypadInput::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case TotalVolatileOrganicCompoundsConcentrationMeasurement::Attributes::ClusterRevision::Id: {
+        case KeypadInput::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -17171,90 +19072,91 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case RadonConcentrationMeasurement::Id: {
+    case ContentLauncher::Id: {
         switch (path.mAttributeId)
         {
-        case RadonConcentrationMeasurement::Attributes::MeasuredValue::Id: {
-            chip::app::DataModel::Nullable<float> value;
+        case ContentLauncher::Attributes::AcceptHeader::Id: {
+            chip::app::DataModel::DecodableList<chip::CharSpan> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MeasuredValue", 1, value);
+            return DataModelLogger::LogValue("AcceptHeader", 1, value);
         }
-        case RadonConcentrationMeasurement::Attributes::MinMeasuredValue::Id: {
-            chip::app::DataModel::Nullable<float> value;
+        case ContentLauncher::Attributes::SupportedStreamingProtocols::Id: {
+            chip::BitMask<chip::app::Clusters::ContentLauncher::SupportedProtocolsBitmap> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MinMeasuredValue", 1, value);
+            return DataModelLogger::LogValue("SupportedStreamingProtocols", 1, value);
         }
-        case RadonConcentrationMeasurement::Attributes::MaxMeasuredValue::Id: {
-            chip::app::DataModel::Nullable<float> value;
+        case ContentLauncher::Attributes::GeneratedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MaxMeasuredValue", 1, value);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ContentLauncher::Id);
         }
-        case RadonConcentrationMeasurement::Attributes::PeakMeasuredValue::Id: {
-            chip::app::DataModel::Nullable<float> value;
+        case ContentLauncher::Attributes::AcceptedCommandList::Id: {
+            chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PeakMeasuredValue", 1, value);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ContentLauncher::Id);
         }
-        case RadonConcentrationMeasurement::Attributes::PeakMeasuredValueWindow::Id: {
-            uint32_t value;
+        case ContentLauncher::Attributes::EventList::Id: {
+            chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PeakMeasuredValueWindow", 1, value);
+            return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case RadonConcentrationMeasurement::Attributes::AverageMeasuredValue::Id: {
-            chip::app::DataModel::Nullable<float> value;
+        case ContentLauncher::Attributes::AttributeList::Id: {
+            chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AverageMeasuredValue", 1, value);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ContentLauncher::Id);
         }
-        case RadonConcentrationMeasurement::Attributes::AverageMeasuredValueWindow::Id: {
+        case ContentLauncher::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AverageMeasuredValueWindow", 1, value);
+            return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case RadonConcentrationMeasurement::Attributes::Uncertainty::Id: {
-            float value;
+        case ContentLauncher::Attributes::ClusterRevision::Id: {
+            uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Uncertainty", 1, value);
+            return DataModelLogger::LogValue("ClusterRevision", 1, value);
         }
-        case RadonConcentrationMeasurement::Attributes::MeasurementUnit::Id: {
-            chip::app::Clusters::RadonConcentrationMeasurement::MeasurementUnitEnum value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MeasurementUnit", 1, value);
         }
-        case RadonConcentrationMeasurement::Attributes::MeasurementMedium::Id: {
-            chip::app::Clusters::RadonConcentrationMeasurement::MeasurementMediumEnum value;
+        break;
+    }
+    case AudioOutput::Id: {
+        switch (path.mAttributeId)
+        {
+        case AudioOutput::Attributes::OutputList::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::AudioOutput::Structs::OutputInfoStruct::DecodableType> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MeasurementMedium", 1, value);
+            return DataModelLogger::LogValue("OutputList", 1, value);
         }
-        case RadonConcentrationMeasurement::Attributes::LevelValue::Id: {
-            chip::app::Clusters::RadonConcentrationMeasurement::LevelValueEnum value;
+        case AudioOutput::Attributes::CurrentOutput::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LevelValue", 1, value);
+            return DataModelLogger::LogValue("CurrentOutput", 1, value);
         }
-        case RadonConcentrationMeasurement::Attributes::GeneratedCommandList::Id: {
+        case AudioOutput::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, RadonConcentrationMeasurement::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, AudioOutput::Id);
         }
-        case RadonConcentrationMeasurement::Attributes::AcceptedCommandList::Id: {
+        case AudioOutput::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, RadonConcentrationMeasurement::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, AudioOutput::Id);
         }
-        case RadonConcentrationMeasurement::Attributes::EventList::Id: {
+        case AudioOutput::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case RadonConcentrationMeasurement::Attributes::AttributeList::Id: {
+        case AudioOutput::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, RadonConcentrationMeasurement::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, AudioOutput::Id);
         }
-        case RadonConcentrationMeasurement::Attributes::FeatureMap::Id: {
+        case AudioOutput::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case RadonConcentrationMeasurement::Attributes::ClusterRevision::Id: {
+        case AudioOutput::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -17262,45 +19164,46 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case WiFiNetworkManagement::Id: {
+    case ApplicationLauncher::Id: {
         switch (path.mAttributeId)
         {
-        case WiFiNetworkManagement::Attributes::Ssid::Id: {
-            chip::app::DataModel::Nullable<chip::ByteSpan> value;
+        case ApplicationLauncher::Attributes::CatalogList::Id: {
+            chip::app::DataModel::DecodableList<uint16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SSID", 1, value);
+            return DataModelLogger::LogValue("CatalogList", 1, value);
         }
-        case WiFiNetworkManagement::Attributes::PassphraseSurrogate::Id: {
-            chip::app::DataModel::Nullable<uint64_t> value;
+        case ApplicationLauncher::Attributes::CurrentApp::Id: {
+            chip::app::DataModel::Nullable<chip::app::Clusters::ApplicationLauncher::Structs::ApplicationEPStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PassphraseSurrogate", 1, value);
+            return DataModelLogger::LogValue("CurrentApp", 1, value);
         }
-        case WiFiNetworkManagement::Attributes::GeneratedCommandList::Id: {
+        case ApplicationLauncher::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, WiFiNetworkManagement::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ApplicationLauncher::Id);
         }
-        case WiFiNetworkManagement::Attributes::AcceptedCommandList::Id: {
+        case ApplicationLauncher::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, WiFiNetworkManagement::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ApplicationLauncher::Id);
         }
-        case WiFiNetworkManagement::Attributes::EventList::Id: {
+        case ApplicationLauncher::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case WiFiNetworkManagement::Attributes::AttributeList::Id: {
+        case ApplicationLauncher::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, WiFiNetworkManagement::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ApplicationLauncher::Id);
         }
-        case WiFiNetworkManagement::Attributes::FeatureMap::Id: {
+        case ApplicationLauncher::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case WiFiNetworkManagement::Attributes::ClusterRevision::Id: {
+        case ApplicationLauncher::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -17308,65 +19211,75 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case ThreadBorderRouterManagement::Id: {
+    case ApplicationBasic::Id: {
         switch (path.mAttributeId)
         {
-        case ThreadBorderRouterManagement::Attributes::BorderRouterName::Id: {
+        case ApplicationBasic::Attributes::VendorName::Id: {
             chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BorderRouterName", 1, value);
+            return DataModelLogger::LogValue("VendorName", 1, value);
         }
-        case ThreadBorderRouterManagement::Attributes::BorderAgentID::Id: {
-            chip::ByteSpan value;
+        case ApplicationBasic::Attributes::VendorID::Id: {
+            chip::VendorId value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BorderAgentID", 1, value);
+            return DataModelLogger::LogValue("VendorID", 1, value);
         }
-        case ThreadBorderRouterManagement::Attributes::ThreadVersion::Id: {
+        case ApplicationBasic::Attributes::ApplicationName::Id: {
+            chip::CharSpan value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("ApplicationName", 1, value);
+        }
+        case ApplicationBasic::Attributes::ProductID::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ThreadVersion", 1, value);
+            return DataModelLogger::LogValue("ProductID", 1, value);
         }
-        case ThreadBorderRouterManagement::Attributes::InterfaceEnabled::Id: {
-            bool value;
+        case ApplicationBasic::Attributes::Application::Id: {
+            chip::app::Clusters::ApplicationBasic::Structs::ApplicationStruct::DecodableType value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("InterfaceEnabled", 1, value);
+            return DataModelLogger::LogValue("Application", 1, value);
         }
-        case ThreadBorderRouterManagement::Attributes::ActiveDatasetTimestamp::Id: {
-            chip::app::DataModel::Nullable<uint64_t> value;
+        case ApplicationBasic::Attributes::Status::Id: {
+            chip::app::Clusters::ApplicationBasic::ApplicationStatusEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ActiveDatasetTimestamp", 1, value);
+            return DataModelLogger::LogValue("Status", 1, value);
         }
-        case ThreadBorderRouterManagement::Attributes::PendingDatasetTimestamp::Id: {
-            chip::app::DataModel::Nullable<uint64_t> value;
+        case ApplicationBasic::Attributes::ApplicationVersion::Id: {
+            chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PendingDatasetTimestamp", 1, value);
+            return DataModelLogger::LogValue("ApplicationVersion", 1, value);
         }
-        case ThreadBorderRouterManagement::Attributes::GeneratedCommandList::Id: {
+        case ApplicationBasic::Attributes::AllowedVendorList::Id: {
+            chip::app::DataModel::DecodableList<chip::VendorId> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("AllowedVendorList", 1, value);
+        }
+        case ApplicationBasic::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ThreadBorderRouterManagement::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ApplicationBasic::Id);
         }
-        case ThreadBorderRouterManagement::Attributes::AcceptedCommandList::Id: {
+        case ApplicationBasic::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ThreadBorderRouterManagement::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ApplicationBasic::Id);
         }
-        case ThreadBorderRouterManagement::Attributes::EventList::Id: {
+        case ApplicationBasic::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case ThreadBorderRouterManagement::Attributes::AttributeList::Id: {
+        case ApplicationBasic::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ThreadBorderRouterManagement::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ApplicationBasic::Id);
         }
-        case ThreadBorderRouterManagement::Attributes::FeatureMap::Id: {
+        case ApplicationBasic::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case ThreadBorderRouterManagement::Attributes::ClusterRevision::Id: {
+        case ApplicationBasic::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -17374,52 +19287,35 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case ThreadNetworkDirectory::Id: {
+    case AccountLogin::Id: {
         switch (path.mAttributeId)
         {
-        case ThreadNetworkDirectory::Attributes::PreferredExtendedPanID::Id: {
-            chip::app::DataModel::Nullable<chip::ByteSpan> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PreferredExtendedPanID", 1, value);
-        }
-        case ThreadNetworkDirectory::Attributes::ThreadNetworks::Id: {
-            chip::app::DataModel::DecodableList<
-                chip::app::Clusters::ThreadNetworkDirectory::Structs::ThreadNetworkStruct::DecodableType>
-                value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ThreadNetworks", 1, value);
-        }
-        case ThreadNetworkDirectory::Attributes::ThreadNetworkTableSize::Id: {
-            uint8_t value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ThreadNetworkTableSize", 1, value);
-        }
-        case ThreadNetworkDirectory::Attributes::GeneratedCommandList::Id: {
+        case AccountLogin::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ThreadNetworkDirectory::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, AccountLogin::Id);
         }
-        case ThreadNetworkDirectory::Attributes::AcceptedCommandList::Id: {
+        case AccountLogin::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ThreadNetworkDirectory::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, AccountLogin::Id);
         }
-        case ThreadNetworkDirectory::Attributes::EventList::Id: {
+        case AccountLogin::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case ThreadNetworkDirectory::Attributes::AttributeList::Id: {
+        case AccountLogin::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ThreadNetworkDirectory::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, AccountLogin::Id);
         }
-        case ThreadNetworkDirectory::Attributes::FeatureMap::Id: {
+        case AccountLogin::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case ThreadNetworkDirectory::Attributes::ClusterRevision::Id: {
+        case AccountLogin::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -17427,96 +19323,77 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case WakeOnLan::Id: {
+    case ContentControl::Id: {
         switch (path.mAttributeId)
         {
-        case WakeOnLan::Attributes::MACAddress::Id: {
-            chip::CharSpan value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("MACAddress", 1, value);
-        }
-        case WakeOnLan::Attributes::LinkLocalAddress::Id: {
-            chip::ByteSpan value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("LinkLocalAddress", 1, value);
-        }
-        case WakeOnLan::Attributes::GeneratedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, WakeOnLan::Id);
-        }
-        case WakeOnLan::Attributes::AcceptedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, WakeOnLan::Id);
-        }
-        case WakeOnLan::Attributes::EventList::Id: {
-            chip::app::DataModel::DecodableList<chip::EventId> value;
+        case ContentControl::Attributes::Enabled::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EventList", 1, value);
+            return DataModelLogger::LogValue("Enabled", 1, value);
         }
-        case WakeOnLan::Attributes::AttributeList::Id: {
-            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+        case ContentControl::Attributes::OnDemandRatings::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::ContentControl::Structs::RatingNameStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, WakeOnLan::Id);
+            return DataModelLogger::LogValue("OnDemandRatings", 1, value);
         }
-        case WakeOnLan::Attributes::FeatureMap::Id: {
-            uint32_t value;
+        case ContentControl::Attributes::OnDemandRatingThreshold::Id: {
+            chip::CharSpan value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("FeatureMap", 1, value);
+            return DataModelLogger::LogValue("OnDemandRatingThreshold", 1, value);
         }
-        case WakeOnLan::Attributes::ClusterRevision::Id: {
-            uint16_t value;
+        case ContentControl::Attributes::ScheduledContentRatings::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::ContentControl::Structs::RatingNameStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ClusterRevision", 1, value);
+            return DataModelLogger::LogValue("ScheduledContentRatings", 1, value);
         }
+        case ContentControl::Attributes::ScheduledContentRatingThreshold::Id: {
+            chip::CharSpan value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("ScheduledContentRatingThreshold", 1, value);
         }
-        break;
-    }
-    case Channel::Id: {
-        switch (path.mAttributeId)
-        {
-        case Channel::Attributes::ChannelList::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::Channel::Structs::ChannelInfoStruct::DecodableType> value;
+        case ContentControl::Attributes::ScreenDailyTime::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ChannelList", 1, value);
+            return DataModelLogger::LogValue("ScreenDailyTime", 1, value);
         }
-        case Channel::Attributes::Lineup::Id: {
-            chip::app::DataModel::Nullable<chip::app::Clusters::Channel::Structs::LineupInfoStruct::DecodableType> value;
+        case ContentControl::Attributes::RemainingScreenTime::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Lineup", 1, value);
+            return DataModelLogger::LogValue("RemainingScreenTime", 1, value);
         }
-        case Channel::Attributes::CurrentChannel::Id: {
-            chip::app::DataModel::Nullable<chip::app::Clusters::Channel::Structs::ChannelInfoStruct::DecodableType> value;
+        case ContentControl::Attributes::BlockUnrated::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentChannel", 1, value);
+            return DataModelLogger::LogValue("BlockUnrated", 1, value);
         }
-        case Channel::Attributes::GeneratedCommandList::Id: {
+        case ContentControl::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, Channel::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ContentControl::Id);
         }
-        case Channel::Attributes::AcceptedCommandList::Id: {
+        case ContentControl::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, Channel::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ContentControl::Id);
         }
-        case Channel::Attributes::EventList::Id: {
+        case ContentControl::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case Channel::Attributes::AttributeList::Id: {
+        case ContentControl::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, Channel::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ContentControl::Id);
         }
-        case Channel::Attributes::FeatureMap::Id: {
+        case ContentControl::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case Channel::Attributes::ClusterRevision::Id: {
+        case ContentControl::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -17524,46 +19401,35 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case TargetNavigator::Id: {
+    case ContentAppObserver::Id: {
         switch (path.mAttributeId)
         {
-        case TargetNavigator::Attributes::TargetList::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::TargetNavigator::Structs::TargetInfoStruct::DecodableType>
-                value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("TargetList", 1, value);
-        }
-        case TargetNavigator::Attributes::CurrentTarget::Id: {
-            uint8_t value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentTarget", 1, value);
-        }
-        case TargetNavigator::Attributes::GeneratedCommandList::Id: {
+        case ContentAppObserver::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, TargetNavigator::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ContentAppObserver::Id);
         }
-        case TargetNavigator::Attributes::AcceptedCommandList::Id: {
+        case ContentAppObserver::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, TargetNavigator::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ContentAppObserver::Id);
         }
-        case TargetNavigator::Attributes::EventList::Id: {
+        case ContentAppObserver::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case TargetNavigator::Attributes::AttributeList::Id: {
+        case ContentAppObserver::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, TargetNavigator::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ContentAppObserver::Id);
         }
-        case TargetNavigator::Attributes::FeatureMap::Id: {
+        case ContentAppObserver::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case TargetNavigator::Attributes::ClusterRevision::Id: {
+        case ContentAppObserver::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -17571,305 +19437,304 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case MediaPlayback::Id: {
+    case CameraAvStreamManagement::Id: {
         switch (path.mAttributeId)
         {
-        case MediaPlayback::Attributes::CurrentState::Id: {
-            chip::app::Clusters::MediaPlayback::PlaybackStateEnum value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentState", 1, value);
-        }
-        case MediaPlayback::Attributes::StartTime::Id: {
-            chip::app::DataModel::Nullable<uint64_t> value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("StartTime", 1, value);
-        }
-        case MediaPlayback::Attributes::Duration::Id: {
-            chip::app::DataModel::Nullable<uint64_t> value;
+        case CameraAvStreamManagement::Attributes::MaxConcurrentVideoEncoders::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Duration", 1, value);
+            return DataModelLogger::LogValue("MaxConcurrentVideoEncoders", 1, value);
         }
-        case MediaPlayback::Attributes::SampledPosition::Id: {
-            chip::app::DataModel::Nullable<chip::app::Clusters::MediaPlayback::Structs::PlaybackPositionStruct::DecodableType>
-                value;
+        case CameraAvStreamManagement::Attributes::MaxEncodedPixelRate::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SampledPosition", 1, value);
+            return DataModelLogger::LogValue("MaxEncodedPixelRate", 1, value);
         }
-        case MediaPlayback::Attributes::PlaybackSpeed::Id: {
-            float value;
+        case CameraAvStreamManagement::Attributes::VideoSensorParams::Id: {
+            chip::app::Clusters::CameraAvStreamManagement::Structs::VideoSensorParamsStruct::DecodableType value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("PlaybackSpeed", 1, value);
+            return DataModelLogger::LogValue("VideoSensorParams", 1, value);
         }
-        case MediaPlayback::Attributes::SeekRangeEnd::Id: {
-            chip::app::DataModel::Nullable<uint64_t> value;
+        case CameraAvStreamManagement::Attributes::NightVisionCapable::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SeekRangeEnd", 1, value);
+            return DataModelLogger::LogValue("NightVisionCapable", 1, value);
         }
-        case MediaPlayback::Attributes::SeekRangeStart::Id: {
-            chip::app::DataModel::Nullable<uint64_t> value;
+        case CameraAvStreamManagement::Attributes::MinViewPortWidth::Id: {
+            chip::app::Clusters::CameraAvStreamManagement::Structs::DimensionStruct::DecodableType value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SeekRangeStart", 1, value);
+            return DataModelLogger::LogValue("MinViewPortWidth", 1, value);
         }
-        case MediaPlayback::Attributes::ActiveAudioTrack::Id: {
-            chip::app::DataModel::Nullable<chip::app::Clusters::MediaPlayback::Structs::TrackStruct::DecodableType> value;
+        case CameraAvStreamManagement::Attributes::MinViewPortHeight::Id: {
+            chip::app::Clusters::CameraAvStreamManagement::Structs::DimensionStruct::DecodableType value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ActiveAudioTrack", 1, value);
+            return DataModelLogger::LogValue("MinViewPortHeight", 1, value);
         }
-        case MediaPlayback::Attributes::AvailableAudioTracks::Id: {
-            chip::app::DataModel::Nullable<
-                chip::app::DataModel::DecodableList<chip::app::Clusters::MediaPlayback::Structs::TrackStruct::DecodableType>>
+        case CameraAvStreamManagement::Attributes::RateDistortionTradeOffPoints::Id: {
+            chip::app::DataModel::DecodableList<
+                chip::app::Clusters::CameraAvStreamManagement::Structs::RateDistortionTradeOffPointsStruct::DecodableType>
                 value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AvailableAudioTracks", 1, value);
+            return DataModelLogger::LogValue("RateDistortionTradeOffPoints", 1, value);
         }
-        case MediaPlayback::Attributes::ActiveTextTrack::Id: {
-            chip::app::DataModel::Nullable<chip::app::Clusters::MediaPlayback::Structs::TrackStruct::DecodableType> value;
+        case CameraAvStreamManagement::Attributes::MaxPreRollBufferSize::Id: {
+            uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ActiveTextTrack", 1, value);
+            return DataModelLogger::LogValue("MaxPreRollBufferSize", 1, value);
         }
-        case MediaPlayback::Attributes::AvailableTextTracks::Id: {
-            chip::app::DataModel::Nullable<
-                chip::app::DataModel::DecodableList<chip::app::Clusters::MediaPlayback::Structs::TrackStruct::DecodableType>>
-                value;
+        case CameraAvStreamManagement::Attributes::MicrophoneCapabilities::Id: {
+            chip::app::Clusters::CameraAvStreamManagement::Structs::AudioCapabilitiesStruct::DecodableType value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AvailableTextTracks", 1, value);
+            return DataModelLogger::LogValue("MicrophoneCapabilities", 1, value);
         }
-        case MediaPlayback::Attributes::GeneratedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case CameraAvStreamManagement::Attributes::SpeakerCapabilities::Id: {
+            chip::app::Clusters::CameraAvStreamManagement::Structs::AudioCapabilitiesStruct::DecodableType value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, MediaPlayback::Id);
+            return DataModelLogger::LogValue("SpeakerCapabilities", 1, value);
         }
-        case MediaPlayback::Attributes::AcceptedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case CameraAvStreamManagement::Attributes::TwoWayTalkSupport::Id: {
+            chip::app::Clusters::CameraAvStreamManagement::TwowayTalkSupportTypeEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, MediaPlayback::Id);
+            return DataModelLogger::LogValue("TwoWayTalkSupport", 1, value);
         }
-        case MediaPlayback::Attributes::EventList::Id: {
-            chip::app::DataModel::DecodableList<chip::EventId> value;
+        case CameraAvStreamManagement::Attributes::SupportedSnapshotParams::Id: {
+            chip::app::DataModel::DecodableList<
+                chip::app::Clusters::CameraAvStreamManagement::Structs::SnapshotParamsStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EventList", 1, value);
+            return DataModelLogger::LogValue("SupportedSnapshotParams", 1, value);
         }
-        case MediaPlayback::Attributes::AttributeList::Id: {
-            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+        case CameraAvStreamManagement::Attributes::HDRCapable::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, MediaPlayback::Id);
+            return DataModelLogger::LogValue("HDRCapable", 1, value);
         }
-        case MediaPlayback::Attributes::FeatureMap::Id: {
+        case CameraAvStreamManagement::Attributes::MaxNetworkBandwidth::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("FeatureMap", 1, value);
+            return DataModelLogger::LogValue("MaxNetworkBandwidth", 1, value);
         }
-        case MediaPlayback::Attributes::ClusterRevision::Id: {
+        case CameraAvStreamManagement::Attributes::CurrentFrameRate::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ClusterRevision", 1, value);
+            return DataModelLogger::LogValue("CurrentFrameRate", 1, value);
         }
+        case CameraAvStreamManagement::Attributes::HDRMode::Id: {
+            bool value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("HDRMode", 1, value);
         }
-        break;
-    }
-    case MediaInput::Id: {
-        switch (path.mAttributeId)
-        {
-        case MediaInput::Attributes::InputList::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::MediaInput::Structs::InputInfoStruct::DecodableType> value;
+        case CameraAvStreamManagement::Attributes::CurrentVideoCodecs::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::CameraAvStreamManagement::VideoCodecEnum> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("InputList", 1, value);
+            return DataModelLogger::LogValue("CurrentVideoCodecs", 1, value);
         }
-        case MediaInput::Attributes::CurrentInput::Id: {
-            uint8_t value;
+        case CameraAvStreamManagement::Attributes::CurrentSnapshotConfig::Id: {
+            chip::app::Clusters::CameraAvStreamManagement::Structs::SnapshotParamsStruct::DecodableType value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentInput", 1, value);
+            return DataModelLogger::LogValue("CurrentSnapshotConfig", 1, value);
         }
-        case MediaInput::Attributes::GeneratedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case CameraAvStreamManagement::Attributes::FabricsUsingCamera::Id: {
+            chip::app::DataModel::DecodableList<chip::FabricIndex> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, MediaInput::Id);
+            return DataModelLogger::LogValue("FabricsUsingCamera", 1, value);
         }
-        case MediaInput::Attributes::AcceptedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case CameraAvStreamManagement::Attributes::AllocatedVideoStreams::Id: {
+            chip::app::DataModel::DecodableList<
+                chip::app::Clusters::CameraAvStreamManagement::Structs::VideoStreamStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, MediaInput::Id);
+            return DataModelLogger::LogValue("AllocatedVideoStreams", 1, value);
         }
-        case MediaInput::Attributes::EventList::Id: {
-            chip::app::DataModel::DecodableList<chip::EventId> value;
+        case CameraAvStreamManagement::Attributes::AllocatedAudioStreams::Id: {
+            chip::app::DataModel::DecodableList<
+                chip::app::Clusters::CameraAvStreamManagement::Structs::AudioStreamStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EventList", 1, value);
+            return DataModelLogger::LogValue("AllocatedAudioStreams", 1, value);
         }
-        case MediaInput::Attributes::AttributeList::Id: {
-            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+        case CameraAvStreamManagement::Attributes::AllocatedSnapshotStreams::Id: {
+            chip::app::DataModel::DecodableList<
+                chip::app::Clusters::CameraAvStreamManagement::Structs::SnapshotStreamStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, MediaInput::Id);
+            return DataModelLogger::LogValue("AllocatedSnapshotStreams", 1, value);
         }
-        case MediaInput::Attributes::FeatureMap::Id: {
-            uint32_t value;
+        case CameraAvStreamManagement::Attributes::RankedVideoStreamPrioritiesList::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::CameraAvStreamManagement::StreamTypeEnum> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("FeatureMap", 1, value);
+            return DataModelLogger::LogValue("RankedVideoStreamPrioritiesList", 1, value);
         }
-        case MediaInput::Attributes::ClusterRevision::Id: {
-            uint16_t value;
+        case CameraAvStreamManagement::Attributes::SoftRecordingPrivacyModeSetting::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ClusterRevision", 1, value);
+            return DataModelLogger::LogValue("SoftRecordingPrivacyModeSetting", 1, value);
         }
+        case CameraAvStreamManagement::Attributes::SoftLivestreamPrivacyModeSetting::Id: {
+            bool value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("SoftLivestreamPrivacyModeSetting", 1, value);
         }
-        break;
-    }
-    case LowPower::Id: {
-        switch (path.mAttributeId)
-        {
-        case LowPower::Attributes::GeneratedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case CameraAvStreamManagement::Attributes::HardPrivacyMode::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, LowPower::Id);
+            return DataModelLogger::LogValue("HardPrivacyMode", 1, value);
         }
-        case LowPower::Attributes::AcceptedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case CameraAvStreamManagement::Attributes::NightVision::Id: {
+            chip::app::Clusters::CameraAvStreamManagement::TriStateAuto value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, LowPower::Id);
+            return DataModelLogger::LogValue("NightVision", 1, value);
         }
-        case LowPower::Attributes::EventList::Id: {
-            chip::app::DataModel::DecodableList<chip::EventId> value;
+        case CameraAvStreamManagement::Attributes::NightVisionIllum::Id: {
+            chip::app::Clusters::CameraAvStreamManagement::TriStateAuto value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EventList", 1, value);
+            return DataModelLogger::LogValue("NightVisionIllum", 1, value);
         }
-        case LowPower::Attributes::AttributeList::Id: {
-            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+        case CameraAvStreamManagement::Attributes::Awb::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, LowPower::Id);
+            return DataModelLogger::LogValue("AWB", 1, value);
         }
-        case LowPower::Attributes::FeatureMap::Id: {
-            uint32_t value;
+        case CameraAvStreamManagement::Attributes::ShutterSpeed::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("FeatureMap", 1, value);
+            return DataModelLogger::LogValue("ShutterSpeed", 1, value);
         }
-        case LowPower::Attributes::ClusterRevision::Id: {
-            uint16_t value;
+        case CameraAvStreamManagement::Attributes::Iso::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ClusterRevision", 1, value);
+            return DataModelLogger::LogValue("ISO", 1, value);
         }
+        case CameraAvStreamManagement::Attributes::Viewport::Id: {
+            chip::app::Clusters::CameraAvStreamManagement::Structs::ViewportStruct::DecodableType value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("Viewport", 1, value);
         }
-        break;
-    }
-    case KeypadInput::Id: {
-        switch (path.mAttributeId)
-        {
-        case KeypadInput::Attributes::GeneratedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case CameraAvStreamManagement::Attributes::SpkrOnOff::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, KeypadInput::Id);
+            return DataModelLogger::LogValue("SpkrOnOff", 1, value);
         }
-        case KeypadInput::Attributes::AcceptedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case CameraAvStreamManagement::Attributes::SpkrVolumeLevel::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, KeypadInput::Id);
+            return DataModelLogger::LogValue("SpkrVolumeLevel", 1, value);
         }
-        case KeypadInput::Attributes::EventList::Id: {
-            chip::app::DataModel::DecodableList<chip::EventId> value;
+        case CameraAvStreamManagement::Attributes::SpkrMaxLevel::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EventList", 1, value);
+            return DataModelLogger::LogValue("SpkrMaxLevel", 1, value);
         }
-        case KeypadInput::Attributes::AttributeList::Id: {
-            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+        case CameraAvStreamManagement::Attributes::SpkrMinLevel::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, KeypadInput::Id);
+            return DataModelLogger::LogValue("SpkrMinLevel", 1, value);
         }
-        case KeypadInput::Attributes::FeatureMap::Id: {
-            uint32_t value;
+        case CameraAvStreamManagement::Attributes::MicOnOff::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("FeatureMap", 1, value);
+            return DataModelLogger::LogValue("MicOnOff", 1, value);
         }
-        case KeypadInput::Attributes::ClusterRevision::Id: {
-            uint16_t value;
+        case CameraAvStreamManagement::Attributes::MicCurrentLevel::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ClusterRevision", 1, value);
+            return DataModelLogger::LogValue("MicCurrentLevel", 1, value);
         }
+        case CameraAvStreamManagement::Attributes::MicMaxLevel::Id: {
+            uint8_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("MicMaxLevel", 1, value);
         }
-        break;
-    }
-    case ContentLauncher::Id: {
-        switch (path.mAttributeId)
-        {
-        case ContentLauncher::Attributes::AcceptHeader::Id: {
-            chip::app::DataModel::DecodableList<chip::CharSpan> value;
+        case CameraAvStreamManagement::Attributes::MicMinLevel::Id: {
+            uint8_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AcceptHeader", 1, value);
+            return DataModelLogger::LogValue("MicMinLevel", 1, value);
         }
-        case ContentLauncher::Attributes::SupportedStreamingProtocols::Id: {
-            chip::BitMask<chip::app::Clusters::ContentLauncher::SupportedProtocolsBitmap> value;
+        case CameraAvStreamManagement::Attributes::MicAGC::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("SupportedStreamingProtocols", 1, value);
+            return DataModelLogger::LogValue("MicAGC", 1, value);
         }
-        case ContentLauncher::Attributes::GeneratedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case CameraAvStreamManagement::Attributes::ImageRotation::Id: {
+            uint16_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("ImageRotation", 1, value);
+        }
+        case CameraAvStreamManagement::Attributes::ImageFlipHorizontal::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ContentLauncher::Id);
+            return DataModelLogger::LogValue("ImageFlipHorizontal", 1, value);
         }
-        case ContentLauncher::Attributes::AcceptedCommandList::Id: {
-            chip::app::DataModel::DecodableList<chip::CommandId> value;
+        case CameraAvStreamManagement::Attributes::ImageFlipVertical::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ContentLauncher::Id);
+            return DataModelLogger::LogValue("ImageFlipVertical", 1, value);
         }
-        case ContentLauncher::Attributes::EventList::Id: {
-            chip::app::DataModel::DecodableList<chip::EventId> value;
+        case CameraAvStreamManagement::Attributes::LocalVideoRecordingEnabled::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("EventList", 1, value);
+            return DataModelLogger::LogValue("LocalVideoRecordingEnabled", 1, value);
         }
-        case ContentLauncher::Attributes::AttributeList::Id: {
-            chip::app::DataModel::DecodableList<chip::AttributeId> value;
+        case CameraAvStreamManagement::Attributes::LocalSnapshotRecordingEnabled::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ContentLauncher::Id);
+            return DataModelLogger::LogValue("LocalSnapshotRecordingEnabled", 1, value);
         }
-        case ContentLauncher::Attributes::FeatureMap::Id: {
-            uint32_t value;
+        case CameraAvStreamManagement::Attributes::StatusLight::Id: {
+            bool value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("FeatureMap", 1, value);
+            return DataModelLogger::LogValue("StatusLight", 1, value);
         }
-        case ContentLauncher::Attributes::ClusterRevision::Id: {
-            uint16_t value;
+        case CameraAvStreamManagement::Attributes::StatusLightBrightness::Id: {
+            chip::app::Clusters::Globals::ThreeLevelAutoEnum value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ClusterRevision", 1, value);
+            return DataModelLogger::LogValue("StatusLightBrightness", 1, value);
         }
+        case CameraAvStreamManagement::Attributes::DepthSensorStatus::Id: {
+            chip::app::Clusters::CameraAvStreamManagement::TriStateAuto value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("DepthSensorStatus", 1, value);
         }
-        break;
-    }
-    case AudioOutput::Id: {
-        switch (path.mAttributeId)
-        {
-        case AudioOutput::Attributes::OutputList::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::AudioOutput::Structs::OutputInfoStruct::DecodableType> value;
+        case CameraAvStreamManagement::Attributes::WatermarkEnabled::Id: {
+            chip::app::DataModel::DecodableList<
+                chip::app::Clusters::CameraAvStreamManagement::Structs::PerStreamStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OutputList", 1, value);
+            return DataModelLogger::LogValue("WatermarkEnabled", 1, value);
         }
-        case AudioOutput::Attributes::CurrentOutput::Id: {
-            uint8_t value;
+        case CameraAvStreamManagement::Attributes::OSDEnabled::Id: {
+            chip::app::DataModel::DecodableList<
+                chip::app::Clusters::CameraAvStreamManagement::Structs::PerStreamStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentOutput", 1, value);
+            return DataModelLogger::LogValue("OSDEnabled", 1, value);
         }
-        case AudioOutput::Attributes::GeneratedCommandList::Id: {
+        case CameraAvStreamManagement::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, AudioOutput::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, CameraAvStreamManagement::Id);
         }
-        case AudioOutput::Attributes::AcceptedCommandList::Id: {
+        case CameraAvStreamManagement::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, AudioOutput::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, CameraAvStreamManagement::Id);
         }
-        case AudioOutput::Attributes::EventList::Id: {
+        case CameraAvStreamManagement::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case AudioOutput::Attributes::AttributeList::Id: {
+        case CameraAvStreamManagement::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, AudioOutput::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, CameraAvStreamManagement::Id);
         }
-        case AudioOutput::Attributes::FeatureMap::Id: {
+        case CameraAvStreamManagement::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case AudioOutput::Attributes::ClusterRevision::Id: {
+        case CameraAvStreamManagement::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -17877,46 +19742,65 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case ApplicationLauncher::Id: {
+    case CameraAvSettingsUserLevelManagement::Id: {
         switch (path.mAttributeId)
         {
-        case ApplicationLauncher::Attributes::CatalogList::Id: {
-            chip::app::DataModel::DecodableList<uint16_t> value;
+        case CameraAvSettingsUserLevelManagement::Attributes::Mptz::Id: {
+            chip::app::Clusters::CameraAvSettingsUserLevelManagement::Structs::MPTZStruct::DecodableType value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CatalogList", 1, value);
+            return DataModelLogger::LogValue("Mptz", 1, value);
         }
-        case ApplicationLauncher::Attributes::CurrentApp::Id: {
-            chip::app::DataModel::Nullable<chip::app::Clusters::ApplicationLauncher::Structs::ApplicationEPStruct::DecodableType>
+        case CameraAvSettingsUserLevelManagement::Attributes::MaxPresets::Id: {
+            uint8_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("MaxPresets", 1, value);
+        }
+        case CameraAvSettingsUserLevelManagement::Attributes::PresetMptzTable::Id: {
+            chip::app::DataModel::DecodableList<
+                chip::app::Clusters::CameraAvSettingsUserLevelManagement::Structs::MPTZStruct::DecodableType>
                 value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("CurrentApp", 1, value);
+            return DataModelLogger::LogValue("PresetMptzTable", 1, value);
         }
-        case ApplicationLauncher::Attributes::GeneratedCommandList::Id: {
+        case CameraAvSettingsUserLevelManagement::Attributes::MptzRelativeMove::Id: {
+            bool value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("MptzRelativeMove", 1, value);
+        }
+        case CameraAvSettingsUserLevelManagement::Attributes::DptzRelativeMove::Id: {
+            chip::app::DataModel::DecodableList<
+                chip::app::Clusters::CameraAvSettingsUserLevelManagement::Structs::PerStreamStruct::DecodableType>
+                value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("DptzRelativeMove", 1, value);
+        }
+        case CameraAvSettingsUserLevelManagement::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ApplicationLauncher::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value,
+                                                          CameraAvSettingsUserLevelManagement::Id);
         }
-        case ApplicationLauncher::Attributes::AcceptedCommandList::Id: {
+        case CameraAvSettingsUserLevelManagement::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ApplicationLauncher::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, CameraAvSettingsUserLevelManagement::Id);
         }
-        case ApplicationLauncher::Attributes::EventList::Id: {
+        case CameraAvSettingsUserLevelManagement::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case ApplicationLauncher::Attributes::AttributeList::Id: {
+        case CameraAvSettingsUserLevelManagement::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ApplicationLauncher::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, CameraAvSettingsUserLevelManagement::Id);
         }
-        case ApplicationLauncher::Attributes::FeatureMap::Id: {
+        case CameraAvSettingsUserLevelManagement::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case ApplicationLauncher::Attributes::ClusterRevision::Id: {
+        case CameraAvSettingsUserLevelManagement::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -17924,75 +19808,42 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case ApplicationBasic::Id: {
+    case WebRTCTransportProvider::Id: {
         switch (path.mAttributeId)
         {
-        case ApplicationBasic::Attributes::VendorName::Id: {
-            chip::CharSpan value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("VendorName", 1, value);
-        }
-        case ApplicationBasic::Attributes::VendorID::Id: {
-            chip::VendorId value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("VendorID", 1, value);
-        }
-        case ApplicationBasic::Attributes::ApplicationName::Id: {
-            chip::CharSpan value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ApplicationName", 1, value);
-        }
-        case ApplicationBasic::Attributes::ProductID::Id: {
-            uint16_t value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ProductID", 1, value);
-        }
-        case ApplicationBasic::Attributes::Application::Id: {
-            chip::app::Clusters::ApplicationBasic::Structs::ApplicationStruct::DecodableType value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Application", 1, value);
-        }
-        case ApplicationBasic::Attributes::Status::Id: {
-            chip::app::Clusters::ApplicationBasic::ApplicationStatusEnum value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Status", 1, value);
-        }
-        case ApplicationBasic::Attributes::ApplicationVersion::Id: {
-            chip::CharSpan value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ApplicationVersion", 1, value);
-        }
-        case ApplicationBasic::Attributes::AllowedVendorList::Id: {
-            chip::app::DataModel::DecodableList<chip::VendorId> value;
+        case WebRTCTransportProvider::Attributes::CurrentSessions::Id: {
+            chip::app::DataModel::DecodableList<
+                chip::app::Clusters::WebRTCTransportProvider::Structs::WebRTCSessionStruct::DecodableType>
+                value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("AllowedVendorList", 1, value);
+            return DataModelLogger::LogValue("CurrentSessions", 1, value);
         }
-        case ApplicationBasic::Attributes::GeneratedCommandList::Id: {
+        case WebRTCTransportProvider::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ApplicationBasic::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, WebRTCTransportProvider::Id);
         }
-        case ApplicationBasic::Attributes::AcceptedCommandList::Id: {
+        case WebRTCTransportProvider::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ApplicationBasic::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, WebRTCTransportProvider::Id);
         }
-        case ApplicationBasic::Attributes::EventList::Id: {
+        case WebRTCTransportProvider::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case ApplicationBasic::Attributes::AttributeList::Id: {
+        case WebRTCTransportProvider::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ApplicationBasic::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, WebRTCTransportProvider::Id);
         }
-        case ApplicationBasic::Attributes::FeatureMap::Id: {
+        case WebRTCTransportProvider::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case ApplicationBasic::Attributes::ClusterRevision::Id: {
+        case WebRTCTransportProvider::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -18000,35 +19851,42 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case AccountLogin::Id: {
+    case WebRTCTransportRequestor::Id: {
         switch (path.mAttributeId)
         {
-        case AccountLogin::Attributes::GeneratedCommandList::Id: {
+        case WebRTCTransportRequestor::Attributes::CurrentSessions::Id: {
+            chip::app::DataModel::DecodableList<
+                chip::app::Clusters::WebRTCTransportRequestor::Structs::WebRTCSessionStruct::DecodableType>
+                value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("CurrentSessions", 1, value);
+        }
+        case WebRTCTransportRequestor::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, AccountLogin::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, WebRTCTransportRequestor::Id);
         }
-        case AccountLogin::Attributes::AcceptedCommandList::Id: {
+        case WebRTCTransportRequestor::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, AccountLogin::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, WebRTCTransportRequestor::Id);
         }
-        case AccountLogin::Attributes::EventList::Id: {
+        case WebRTCTransportRequestor::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case AccountLogin::Attributes::AttributeList::Id: {
+        case WebRTCTransportRequestor::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, AccountLogin::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, WebRTCTransportRequestor::Id);
         }
-        case AccountLogin::Attributes::FeatureMap::Id: {
+        case WebRTCTransportRequestor::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case AccountLogin::Attributes::ClusterRevision::Id: {
+        case WebRTCTransportRequestor::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -18036,77 +19894,50 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case ContentControl::Id: {
+    case PushAvStreamTransport::Id: {
         switch (path.mAttributeId)
         {
-        case ContentControl::Attributes::Enabled::Id: {
-            bool value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("Enabled", 1, value);
-        }
-        case ContentControl::Attributes::OnDemandRatings::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::ContentControl::Structs::RatingNameStruct::DecodableType>
-                value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OnDemandRatings", 1, value);
-        }
-        case ContentControl::Attributes::OnDemandRatingThreshold::Id: {
-            chip::CharSpan value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("OnDemandRatingThreshold", 1, value);
-        }
-        case ContentControl::Attributes::ScheduledContentRatings::Id: {
-            chip::app::DataModel::DecodableList<chip::app::Clusters::ContentControl::Structs::RatingNameStruct::DecodableType>
-                value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ScheduledContentRatings", 1, value);
-        }
-        case ContentControl::Attributes::ScheduledContentRatingThreshold::Id: {
-            chip::CharSpan value;
-            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ScheduledContentRatingThreshold", 1, value);
-        }
-        case ContentControl::Attributes::ScreenDailyTime::Id: {
-            uint32_t value;
+        case PushAvStreamTransport::Attributes::SupportedContainerFormats::Id: {
+            chip::BitMask<chip::app::Clusters::PushAvStreamTransport::PushAVStreamTransportSupportedContainerFormatsBitmap> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("ScreenDailyTime", 1, value);
+            return DataModelLogger::LogValue("SupportedContainerFormats", 1, value);
         }
-        case ContentControl::Attributes::RemainingScreenTime::Id: {
-            uint32_t value;
+        case PushAvStreamTransport::Attributes::SupportedIngestMethods::Id: {
+            chip::BitMask<chip::app::Clusters::PushAvStreamTransport::PushAVStreamTransportSupportedIngestMethodsBitmap> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("RemainingScreenTime", 1, value);
+            return DataModelLogger::LogValue("SupportedIngestMethods", 1, value);
         }
-        case ContentControl::Attributes::BlockUnrated::Id: {
-            bool value;
+        case PushAvStreamTransport::Attributes::CurrentConnections::Id: {
+            chip::app::DataModel::DecodableList<uint16_t> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogValue("BlockUnrated", 1, value);
+            return DataModelLogger::LogValue("CurrentConnections", 1, value);
         }
-        case ContentControl::Attributes::GeneratedCommandList::Id: {
+        case PushAvStreamTransport::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ContentControl::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, PushAvStreamTransport::Id);
         }
-        case ContentControl::Attributes::AcceptedCommandList::Id: {
+        case PushAvStreamTransport::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ContentControl::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, PushAvStreamTransport::Id);
         }
-        case ContentControl::Attributes::EventList::Id: {
+        case PushAvStreamTransport::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case ContentControl::Attributes::AttributeList::Id: {
+        case PushAvStreamTransport::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ContentControl::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, PushAvStreamTransport::Id);
         }
-        case ContentControl::Attributes::FeatureMap::Id: {
+        case PushAvStreamTransport::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case ContentControl::Attributes::ClusterRevision::Id: {
+        case PushAvStreamTransport::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -18114,35 +19945,50 @@ CHIP_ERROR DataModelLogger::LogAttribute(const chip::app::ConcreteDataAttributeP
         }
         break;
     }
-    case ContentAppObserver::Id: {
+    case Chime::Id: {
         switch (path.mAttributeId)
         {
-        case ContentAppObserver::Attributes::GeneratedCommandList::Id: {
+        case Chime::Attributes::InstalledChimeSounds::Id: {
+            chip::app::DataModel::DecodableList<chip::app::Clusters::Chime::Structs::ChimeSoundStruct::DecodableType> value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("InstalledChimeSounds", 1, value);
+        }
+        case Chime::Attributes::ActiveChimeSoundId::Id: {
+            uint8_t value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("ActiveChimeSoundId", 1, value);
+        }
+        case Chime::Attributes::Enabled::Id: {
+            bool value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("Enabled", 1, value);
+        }
+        case Chime::Attributes::GeneratedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, ContentAppObserver::Id);
+            return DataModelLogger::LogGeneratedCommandId("GeneratedCommandList", 1, value, Chime::Id);
         }
-        case ContentAppObserver::Attributes::AcceptedCommandList::Id: {
+        case Chime::Attributes::AcceptedCommandList::Id: {
             chip::app::DataModel::DecodableList<chip::CommandId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, ContentAppObserver::Id);
+            return DataModelLogger::LogAcceptedCommandId("AcceptedCommandList", 1, value, Chime::Id);
         }
-        case ContentAppObserver::Attributes::EventList::Id: {
+        case Chime::Attributes::EventList::Id: {
             chip::app::DataModel::DecodableList<chip::EventId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("EventList", 1, value);
         }
-        case ContentAppObserver::Attributes::AttributeList::Id: {
+        case Chime::Attributes::AttributeList::Id: {
             chip::app::DataModel::DecodableList<chip::AttributeId> value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
-            return DataModelLogger::LogAttributeId("AttributeList", 1, value, ContentAppObserver::Id);
+            return DataModelLogger::LogAttributeId("AttributeList", 1, value, Chime::Id);
         }
-        case ContentAppObserver::Attributes::FeatureMap::Id: {
+        case Chime::Attributes::FeatureMap::Id: {
             uint32_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("FeatureMap", 1, value);
         }
-        case ContentAppObserver::Attributes::ClusterRevision::Id: {
+        case Chime::Attributes::ClusterRevision::Id: {
             uint16_t value;
             ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
             return DataModelLogger::LogValue("ClusterRevision", 1, value);
@@ -20082,6 +21928,64 @@ CHIP_ERROR DataModelLogger::LogCommand(const chip::app::ConcreteCommandPath & pa
         }
         break;
     }
+    case CameraAvStreamManagement::Id: {
+        switch (path.mCommandId)
+        {
+        case CameraAvStreamManagement::Commands::AudioStreamAllocateResponse::Id: {
+            CameraAvStreamManagement::Commands::AudioStreamAllocateResponse::DecodableType value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("AudioStreamAllocateResponse", 1, value);
+        }
+        case CameraAvStreamManagement::Commands::VideoStreamAllocateResponse::Id: {
+            CameraAvStreamManagement::Commands::VideoStreamAllocateResponse::DecodableType value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("VideoStreamAllocateResponse", 1, value);
+        }
+        case CameraAvStreamManagement::Commands::SnapshotStreamAllocateResponse::Id: {
+            CameraAvStreamManagement::Commands::SnapshotStreamAllocateResponse::DecodableType value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("SnapshotStreamAllocateResponse", 1, value);
+        }
+        case CameraAvStreamManagement::Commands::CaptureSnapshotResponse::Id: {
+            CameraAvStreamManagement::Commands::CaptureSnapshotResponse::DecodableType value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("CaptureSnapshotResponse", 1, value);
+        }
+        }
+        break;
+    }
+    case WebRTCTransportProvider::Id: {
+        switch (path.mCommandId)
+        {
+        case WebRTCTransportProvider::Commands::WebRTCSolicitOfferResponse::Id: {
+            WebRTCTransportProvider::Commands::WebRTCSolicitOfferResponse::DecodableType value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("WebRTCSolicitOfferResponse", 1, value);
+        }
+        case WebRTCTransportProvider::Commands::WebRTCProvideOfferResponse::Id: {
+            WebRTCTransportProvider::Commands::WebRTCProvideOfferResponse::DecodableType value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("WebRTCProvideOfferResponse", 1, value);
+        }
+        }
+        break;
+    }
+    case PushAvStreamTransport::Id: {
+        switch (path.mCommandId)
+        {
+        case PushAvStreamTransport::Commands::AllocatePushTransportResponse::Id: {
+            PushAvStreamTransport::Commands::AllocatePushTransportResponse::DecodableType value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("AllocatePushTransportResponse", 1, value);
+        }
+        case PushAvStreamTransport::Commands::FindStreamConfigurationResponse::Id: {
+            PushAvStreamTransport::Commands::FindStreamConfigurationResponse::DecodableType value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("FindStreamConfigurationResponse", 1, value);
+        }
+        }
+        break;
+    }
     case CommissionerControl::Id: {
         switch (path.mCommandId)
         {
@@ -21011,6 +22915,43 @@ CHIP_ERROR DataModelLogger::LogEvent(const chip::app::EventHeader & header, chip
         }
         break;
     }
+    case CameraAvStreamManagement::Id: {
+        switch (header.mPath.mEventId)
+        {
+        case CameraAvStreamManagement::Events::VideoStreamChanged::Id: {
+            chip::app::Clusters::CameraAvStreamManagement::Events::VideoStreamChanged::DecodableType value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("VideoStreamChanged", 1, value);
+        }
+        case CameraAvStreamManagement::Events::AudioStreamChanged::Id: {
+            chip::app::Clusters::CameraAvStreamManagement::Events::AudioStreamChanged::DecodableType value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("AudioStreamChanged", 1, value);
+        }
+        case CameraAvStreamManagement::Events::SnapshotStreamChanged::Id: {
+            chip::app::Clusters::CameraAvStreamManagement::Events::SnapshotStreamChanged::DecodableType value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("SnapshotStreamChanged", 1, value);
+        }
+        }
+        break;
+    }
+    case PushAvStreamTransport::Id: {
+        switch (header.mPath.mEventId)
+        {
+        case PushAvStreamTransport::Events::PushTransportBegin::Id: {
+            chip::app::Clusters::PushAvStreamTransport::Events::PushTransportBegin::DecodableType value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("PushTransportBegin", 1, value);
+        }
+        case PushAvStreamTransport::Events::PushTransportEnd::Id: {
+            chip::app::Clusters::PushAvStreamTransport::Events::PushTransportEnd::DecodableType value;
+            ReturnErrorOnFailure(chip::app::DataModel::Decode(*data, value));
+            return DataModelLogger::LogValue("PushTransportEnd", 1, value);
+        }
+        }
+        break;
+    }
     case CommissionerControl::Id: {
         switch (header.mPath.mEventId)
         {
diff --git a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.h b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.h
index ce1aa0b46f01da..4c209914ed3b25 100644
--- a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.h
+++ b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.h
@@ -50,12 +50,24 @@ static CHIP_ERROR LogValue(const char * label, size_t indent,
 static CHIP_ERROR LogValue(const char * label, size_t indent,
                            const chip::app::Clusters::detail::Structs::ErrorStateStruct::DecodableType & value);
 
+static CHIP_ERROR LogValue(const char * label, size_t indent,
+                           const chip::app::Clusters::detail::Structs::ICEServerStruct::DecodableType & value);
+
 static CHIP_ERROR LogValue(const char * label, size_t indent,
                            const chip::app::Clusters::detail::Structs::LabelStruct::DecodableType & value);
 
 static CHIP_ERROR LogValue(const char * label, size_t indent,
                            const chip::app::Clusters::detail::Structs::OperationalStateStruct::DecodableType & value);
 
+static CHIP_ERROR LogValue(const char * label, size_t indent,
+                           const chip::app::Clusters::detail::Structs::PerStreamStruct::DecodableType & value);
+
+static CHIP_ERROR LogValue(const char * label, size_t indent,
+                           const chip::app::Clusters::detail::Structs::ViewportStruct::DecodableType & value);
+
+static CHIP_ERROR LogValue(const char * label, size_t indent,
+                           const chip::app::Clusters::detail::Structs::WebRTCSessionStruct::DecodableType & value);
+
 static CHIP_ERROR LogValue(const char * label, size_t indent,
                            const chip::app::Clusters::Descriptor::Structs::SemanticTagStruct::DecodableType & value);
 
@@ -404,6 +416,69 @@ static CHIP_ERROR LogValue(const char * label, size_t indent,
 static CHIP_ERROR LogValue(const char * label, size_t indent,
                            const chip::app::Clusters::ContentControl::Structs::RatingNameStruct::DecodableType & value);
 
+static CHIP_ERROR
+LogValue(const char * label, size_t indent,
+         const chip::app::Clusters::CameraAvStreamManagement::Structs::AudioCapabilitiesStruct::DecodableType & value);
+
+static CHIP_ERROR LogValue(const char * label, size_t indent,
+                           const chip::app::Clusters::CameraAvStreamManagement::Structs::AudioStreamStruct::DecodableType & value);
+
+static CHIP_ERROR
+LogValue(const char * label, size_t indent,
+         const chip::app::Clusters::CameraAvStreamManagement::Structs::RateDistortionTradeOffPointsStruct::DecodableType & value);
+
+static CHIP_ERROR
+LogValue(const char * label, size_t indent,
+         const chip::app::Clusters::CameraAvStreamManagement::Structs::SnapshotParamsStruct::DecodableType & value);
+
+static CHIP_ERROR
+LogValue(const char * label, size_t indent,
+         const chip::app::Clusters::CameraAvStreamManagement::Structs::SnapshotStreamStruct::DecodableType & value);
+
+static CHIP_ERROR
+LogValue(const char * label, size_t indent,
+         const chip::app::Clusters::CameraAvStreamManagement::Structs::VideoSensorParamsStruct::DecodableType & value);
+
+static CHIP_ERROR LogValue(const char * label, size_t indent,
+                           const chip::app::Clusters::CameraAvStreamManagement::Structs::VideoStreamStruct::DecodableType & value);
+
+static CHIP_ERROR
+LogValue(const char * label, size_t indent,
+         const chip::app::Clusters::CameraAvSettingsUserLevelManagement::Structs::MPTZStruct::DecodableType & value);
+
+static CHIP_ERROR LogValue(
+    const char * label, size_t indent,
+    const chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportMotionTriggerTimeControlStruct::DecodableType &
+        value);
+
+static CHIP_ERROR LogValue(
+    const char * label, size_t indent,
+    const chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportMetadataOptionsStruct::DecodableType & value);
+
+static CHIP_ERROR LogValue(
+    const char * label, size_t indent,
+    const chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportTriggerOptionsStruct::DecodableType & value);
+
+static CHIP_ERROR
+LogValue(const char * label, size_t indent,
+         const chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportCMAFContainerOptionsStruct::DecodableType &
+             value);
+
+static CHIP_ERROR LogValue(
+    const char * label, size_t indent,
+    const chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportContainerOptionsStruct::DecodableType & value);
+
+static CHIP_ERROR
+LogValue(const char * label, size_t indent,
+         const chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportOptionsStruct::DecodableType & value);
+
+static CHIP_ERROR
+LogValue(const char * label, size_t indent,
+         const chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamConfigurationStruct::DecodableType & value);
+
+static CHIP_ERROR LogValue(const char * label, size_t indent,
+                           const chip::app::Clusters::Chime::Structs::ChimeSoundStruct::DecodableType & value);
+
 static CHIP_ERROR LogValue(const char * label, size_t indent,
                            const chip::app::Clusters::EcosystemInformation::Structs::EcosystemDeviceStruct::DecodableType & value);
 
@@ -672,6 +747,17 @@ static CHIP_ERROR LogValue(const char * label, size_t indent,
                            const chip::app::Clusters::AccountLogin::Events::LoggedOut::DecodableType & value);
 static CHIP_ERROR LogValue(const char * label, size_t indent,
                            const chip::app::Clusters::ContentControl::Events::RemainingScreenTimeExpired::DecodableType & value);
+static CHIP_ERROR LogValue(const char * label, size_t indent,
+                           const chip::app::Clusters::CameraAvStreamManagement::Events::VideoStreamChanged::DecodableType & value);
+static CHIP_ERROR LogValue(const char * label, size_t indent,
+                           const chip::app::Clusters::CameraAvStreamManagement::Events::AudioStreamChanged::DecodableType & value);
+static CHIP_ERROR
+LogValue(const char * label, size_t indent,
+         const chip::app::Clusters::CameraAvStreamManagement::Events::SnapshotStreamChanged::DecodableType & value);
+static CHIP_ERROR LogValue(const char * label, size_t indent,
+                           const chip::app::Clusters::PushAvStreamTransport::Events::PushTransportBegin::DecodableType & value);
+static CHIP_ERROR LogValue(const char * label, size_t indent,
+                           const chip::app::Clusters::PushAvStreamTransport::Events::PushTransportEnd::DecodableType & value);
 static CHIP_ERROR
 LogValue(const char * label, size_t indent,
          const chip::app::Clusters::CommissionerControl::Events::CommissioningRequestResult::DecodableType & value);
@@ -845,6 +931,30 @@ static CHIP_ERROR
 LogValue(const char * label, size_t indent,
          const chip::app::Clusters::ContentAppObserver::Commands::ContentAppMessageResponse::DecodableType & value);
 static CHIP_ERROR
+LogValue(const char * label, size_t indent,
+         const chip::app::Clusters::CameraAvStreamManagement::Commands::AudioStreamAllocateResponse::DecodableType & value);
+static CHIP_ERROR
+LogValue(const char * label, size_t indent,
+         const chip::app::Clusters::CameraAvStreamManagement::Commands::VideoStreamAllocateResponse::DecodableType & value);
+static CHIP_ERROR
+LogValue(const char * label, size_t indent,
+         const chip::app::Clusters::CameraAvStreamManagement::Commands::SnapshotStreamAllocateResponse::DecodableType & value);
+static CHIP_ERROR
+LogValue(const char * label, size_t indent,
+         const chip::app::Clusters::CameraAvStreamManagement::Commands::CaptureSnapshotResponse::DecodableType & value);
+static CHIP_ERROR
+LogValue(const char * label, size_t indent,
+         const chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCSolicitOfferResponse::DecodableType & value);
+static CHIP_ERROR
+LogValue(const char * label, size_t indent,
+         const chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCProvideOfferResponse::DecodableType & value);
+static CHIP_ERROR
+LogValue(const char * label, size_t indent,
+         const chip::app::Clusters::PushAvStreamTransport::Commands::AllocatePushTransportResponse::DecodableType & value);
+static CHIP_ERROR
+LogValue(const char * label, size_t indent,
+         const chip::app::Clusters::PushAvStreamTransport::Commands::FindStreamConfigurationResponse::DecodableType & value);
+static CHIP_ERROR
 LogValue(const char * label, size_t indent,
          const chip::app::Clusters::CommissionerControl::Commands::ReverseOpenCommissioningWindow::DecodableType & value);
 static CHIP_ERROR
diff --git a/zzz_generated/chip-tool/zap-generated/cluster/logging/EntryToText.cpp b/zzz_generated/chip-tool/zap-generated/cluster/logging/EntryToText.cpp
index 07bac4319c7c61..e6b905dba40ac3 100644
--- a/zzz_generated/chip-tool/zap-generated/cluster/logging/EntryToText.cpp
+++ b/zzz_generated/chip-tool/zap-generated/cluster/logging/EntryToText.cpp
@@ -265,6 +265,18 @@ char const * ClusterIdToText(chip::ClusterId id)
         return "ContentControl";
     case chip::app::Clusters::ContentAppObserver::Id:
         return "ContentAppObserver";
+    case chip::app::Clusters::CameraAvStreamManagement::Id:
+        return "CameraAvStreamManagement";
+    case chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id:
+        return "CameraAvSettingsUserLevelManagement";
+    case chip::app::Clusters::WebRTCTransportProvider::Id:
+        return "WebRTCTransportProvider";
+    case chip::app::Clusters::WebRTCTransportRequestor::Id:
+        return "WebRTCTransportRequestor";
+    case chip::app::Clusters::PushAvStreamTransport::Id:
+        return "PushAvStreamTransport";
+    case chip::app::Clusters::Chime::Id:
+        return "Chime";
     case chip::app::Clusters::EcosystemInformation::Id:
         return "EcosystemInformation";
     case chip::app::Clusters::CommissionerControl::Id:
@@ -4482,6 +4494,248 @@ char const * AttributeIdToText(chip::ClusterId cluster, chip::AttributeId id)
             return "Unknown";
         }
     }
+    case chip::app::Clusters::CameraAvStreamManagement::Id: {
+        switch (id)
+        {
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::MaxConcurrentVideoEncoders::Id:
+            return "MaxConcurrentVideoEncoders";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::MaxEncodedPixelRate::Id:
+            return "MaxEncodedPixelRate";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::VideoSensorParams::Id:
+            return "VideoSensorParams";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::NightVisionCapable::Id:
+            return "NightVisionCapable";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::MinViewPortWidth::Id:
+            return "MinViewPortWidth";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::MinViewPortHeight::Id:
+            return "MinViewPortHeight";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::RateDistortionTradeOffPoints::Id:
+            return "RateDistortionTradeOffPoints";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::MaxPreRollBufferSize::Id:
+            return "MaxPreRollBufferSize";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::MicrophoneCapabilities::Id:
+            return "MicrophoneCapabilities";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::SpeakerCapabilities::Id:
+            return "SpeakerCapabilities";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::TwoWayTalkSupport::Id:
+            return "TwoWayTalkSupport";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::SupportedSnapshotParams::Id:
+            return "SupportedSnapshotParams";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::HDRCapable::Id:
+            return "HDRCapable";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::MaxNetworkBandwidth::Id:
+            return "MaxNetworkBandwidth";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::CurrentFrameRate::Id:
+            return "CurrentFrameRate";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::HDRMode::Id:
+            return "HDRMode";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::CurrentVideoCodecs::Id:
+            return "CurrentVideoCodecs";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::CurrentSnapshotConfig::Id:
+            return "CurrentSnapshotConfig";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::FabricsUsingCamera::Id:
+            return "FabricsUsingCamera";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::AllocatedVideoStreams::Id:
+            return "AllocatedVideoStreams";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::AllocatedAudioStreams::Id:
+            return "AllocatedAudioStreams";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::AllocatedSnapshotStreams::Id:
+            return "AllocatedSnapshotStreams";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::RankedVideoStreamPrioritiesList::Id:
+            return "RankedVideoStreamPrioritiesList";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::SoftRecordingPrivacyModeSetting::Id:
+            return "SoftRecordingPrivacyModeSetting";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::SoftLivestreamPrivacyModeSetting::Id:
+            return "SoftLivestreamPrivacyModeSetting";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::HardPrivacyMode::Id:
+            return "HardPrivacyMode";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::NightVision::Id:
+            return "NightVision";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::NightVisionIllum::Id:
+            return "NightVisionIllum";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::Awb::Id:
+            return "Awb";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::ShutterSpeed::Id:
+            return "ShutterSpeed";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::Iso::Id:
+            return "Iso";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::Viewport::Id:
+            return "Viewport";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::SpkrOnOff::Id:
+            return "SpkrOnOff";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::SpkrVolumeLevel::Id:
+            return "SpkrVolumeLevel";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::SpkrMaxLevel::Id:
+            return "SpkrMaxLevel";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::SpkrMinLevel::Id:
+            return "SpkrMinLevel";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::MicOnOff::Id:
+            return "MicOnOff";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::MicCurrentLevel::Id:
+            return "MicCurrentLevel";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::MicMaxLevel::Id:
+            return "MicMaxLevel";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::MicMinLevel::Id:
+            return "MicMinLevel";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::MicAGC::Id:
+            return "MicAGC";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::ImageRotation::Id:
+            return "ImageRotation";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::ImageFlipHorizontal::Id:
+            return "ImageFlipHorizontal";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::ImageFlipVertical::Id:
+            return "ImageFlipVertical";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::LocalVideoRecordingEnabled::Id:
+            return "LocalVideoRecordingEnabled";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::LocalSnapshotRecordingEnabled::Id:
+            return "LocalSnapshotRecordingEnabled";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::StatusLight::Id:
+            return "StatusLight";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::StatusLightBrightness::Id:
+            return "StatusLightBrightness";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::DepthSensorStatus::Id:
+            return "DepthSensorStatus";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::WatermarkEnabled::Id:
+            return "WatermarkEnabled";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::OSDEnabled::Id:
+            return "OSDEnabled";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::GeneratedCommandList::Id:
+            return "GeneratedCommandList";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::AcceptedCommandList::Id:
+            return "AcceptedCommandList";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::EventList::Id:
+            return "EventList";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::AttributeList::Id:
+            return "AttributeList";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::FeatureMap::Id:
+            return "FeatureMap";
+        case chip::app::Clusters::CameraAvStreamManagement::Attributes::ClusterRevision::Id:
+            return "ClusterRevision";
+        default:
+            return "Unknown";
+        }
+    }
+    case chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id: {
+        switch (id)
+        {
+        case chip::app::Clusters::CameraAvSettingsUserLevelManagement::Attributes::Mptz::Id:
+            return "Mptz";
+        case chip::app::Clusters::CameraAvSettingsUserLevelManagement::Attributes::MaxPresets::Id:
+            return "MaxPresets";
+        case chip::app::Clusters::CameraAvSettingsUserLevelManagement::Attributes::PresetMptzTable::Id:
+            return "PresetMptzTable";
+        case chip::app::Clusters::CameraAvSettingsUserLevelManagement::Attributes::MptzRelativeMove::Id:
+            return "MptzRelativeMove";
+        case chip::app::Clusters::CameraAvSettingsUserLevelManagement::Attributes::DptzRelativeMove::Id:
+            return "DptzRelativeMove";
+        case chip::app::Clusters::CameraAvSettingsUserLevelManagement::Attributes::GeneratedCommandList::Id:
+            return "GeneratedCommandList";
+        case chip::app::Clusters::CameraAvSettingsUserLevelManagement::Attributes::AcceptedCommandList::Id:
+            return "AcceptedCommandList";
+        case chip::app::Clusters::CameraAvSettingsUserLevelManagement::Attributes::EventList::Id:
+            return "EventList";
+        case chip::app::Clusters::CameraAvSettingsUserLevelManagement::Attributes::AttributeList::Id:
+            return "AttributeList";
+        case chip::app::Clusters::CameraAvSettingsUserLevelManagement::Attributes::FeatureMap::Id:
+            return "FeatureMap";
+        case chip::app::Clusters::CameraAvSettingsUserLevelManagement::Attributes::ClusterRevision::Id:
+            return "ClusterRevision";
+        default:
+            return "Unknown";
+        }
+    }
+    case chip::app::Clusters::WebRTCTransportProvider::Id: {
+        switch (id)
+        {
+        case chip::app::Clusters::WebRTCTransportProvider::Attributes::CurrentSessions::Id:
+            return "CurrentSessions";
+        case chip::app::Clusters::WebRTCTransportProvider::Attributes::GeneratedCommandList::Id:
+            return "GeneratedCommandList";
+        case chip::app::Clusters::WebRTCTransportProvider::Attributes::AcceptedCommandList::Id:
+            return "AcceptedCommandList";
+        case chip::app::Clusters::WebRTCTransportProvider::Attributes::EventList::Id:
+            return "EventList";
+        case chip::app::Clusters::WebRTCTransportProvider::Attributes::AttributeList::Id:
+            return "AttributeList";
+        case chip::app::Clusters::WebRTCTransportProvider::Attributes::FeatureMap::Id:
+            return "FeatureMap";
+        case chip::app::Clusters::WebRTCTransportProvider::Attributes::ClusterRevision::Id:
+            return "ClusterRevision";
+        default:
+            return "Unknown";
+        }
+    }
+    case chip::app::Clusters::WebRTCTransportRequestor::Id: {
+        switch (id)
+        {
+        case chip::app::Clusters::WebRTCTransportRequestor::Attributes::CurrentSessions::Id:
+            return "CurrentSessions";
+        case chip::app::Clusters::WebRTCTransportRequestor::Attributes::GeneratedCommandList::Id:
+            return "GeneratedCommandList";
+        case chip::app::Clusters::WebRTCTransportRequestor::Attributes::AcceptedCommandList::Id:
+            return "AcceptedCommandList";
+        case chip::app::Clusters::WebRTCTransportRequestor::Attributes::EventList::Id:
+            return "EventList";
+        case chip::app::Clusters::WebRTCTransportRequestor::Attributes::AttributeList::Id:
+            return "AttributeList";
+        case chip::app::Clusters::WebRTCTransportRequestor::Attributes::FeatureMap::Id:
+            return "FeatureMap";
+        case chip::app::Clusters::WebRTCTransportRequestor::Attributes::ClusterRevision::Id:
+            return "ClusterRevision";
+        default:
+            return "Unknown";
+        }
+    }
+    case chip::app::Clusters::PushAvStreamTransport::Id: {
+        switch (id)
+        {
+        case chip::app::Clusters::PushAvStreamTransport::Attributes::SupportedContainerFormats::Id:
+            return "SupportedContainerFormats";
+        case chip::app::Clusters::PushAvStreamTransport::Attributes::SupportedIngestMethods::Id:
+            return "SupportedIngestMethods";
+        case chip::app::Clusters::PushAvStreamTransport::Attributes::CurrentConnections::Id:
+            return "CurrentConnections";
+        case chip::app::Clusters::PushAvStreamTransport::Attributes::GeneratedCommandList::Id:
+            return "GeneratedCommandList";
+        case chip::app::Clusters::PushAvStreamTransport::Attributes::AcceptedCommandList::Id:
+            return "AcceptedCommandList";
+        case chip::app::Clusters::PushAvStreamTransport::Attributes::EventList::Id:
+            return "EventList";
+        case chip::app::Clusters::PushAvStreamTransport::Attributes::AttributeList::Id:
+            return "AttributeList";
+        case chip::app::Clusters::PushAvStreamTransport::Attributes::FeatureMap::Id:
+            return "FeatureMap";
+        case chip::app::Clusters::PushAvStreamTransport::Attributes::ClusterRevision::Id:
+            return "ClusterRevision";
+        default:
+            return "Unknown";
+        }
+    }
+    case chip::app::Clusters::Chime::Id: {
+        switch (id)
+        {
+        case chip::app::Clusters::Chime::Attributes::InstalledChimeSounds::Id:
+            return "InstalledChimeSounds";
+        case chip::app::Clusters::Chime::Attributes::ActiveChimeSoundId::Id:
+            return "ActiveChimeSoundId";
+        case chip::app::Clusters::Chime::Attributes::Enabled::Id:
+            return "Enabled";
+        case chip::app::Clusters::Chime::Attributes::GeneratedCommandList::Id:
+            return "GeneratedCommandList";
+        case chip::app::Clusters::Chime::Attributes::AcceptedCommandList::Id:
+            return "AcceptedCommandList";
+        case chip::app::Clusters::Chime::Attributes::EventList::Id:
+            return "EventList";
+        case chip::app::Clusters::Chime::Attributes::AttributeList::Id:
+            return "AttributeList";
+        case chip::app::Clusters::Chime::Attributes::FeatureMap::Id:
+            return "FeatureMap";
+        case chip::app::Clusters::Chime::Attributes::ClusterRevision::Id:
+            return "ClusterRevision";
+        default:
+            return "Unknown";
+        }
+    }
     case chip::app::Clusters::EcosystemInformation::Id: {
         switch (id)
         {
@@ -6094,6 +6348,116 @@ char const * AcceptedCommandIdToText(chip::ClusterId cluster, chip::CommandId id
             return "Unknown";
         }
     }
+    case chip::app::Clusters::CameraAvStreamManagement::Id: {
+        switch (id)
+        {
+        case chip::app::Clusters::CameraAvStreamManagement::Commands::AudioStreamAllocate::Id:
+            return "AudioStreamAllocate";
+        case chip::app::Clusters::CameraAvStreamManagement::Commands::AudioStreamDeallocate::Id:
+            return "AudioStreamDeallocate";
+        case chip::app::Clusters::CameraAvStreamManagement::Commands::VideoStreamAllocate::Id:
+            return "VideoStreamAllocate";
+        case chip::app::Clusters::CameraAvStreamManagement::Commands::VideoStreamModify::Id:
+            return "VideoStreamModify";
+        case chip::app::Clusters::CameraAvStreamManagement::Commands::VideoStreamDeallocate::Id:
+            return "VideoStreamDeallocate";
+        case chip::app::Clusters::CameraAvStreamManagement::Commands::SnapshotStreamAllocate::Id:
+            return "SnapshotStreamAllocate";
+        case chip::app::Clusters::CameraAvStreamManagement::Commands::SnapshotStreamDeallocate::Id:
+            return "SnapshotStreamDeallocate";
+        case chip::app::Clusters::CameraAvStreamManagement::Commands::SetStreamPriority::Id:
+            return "SetStreamPriority";
+        case chip::app::Clusters::CameraAvStreamManagement::Commands::CaptureSnapshot::Id:
+            return "CaptureSnapshot";
+        case chip::app::Clusters::CameraAvStreamManagement::Commands::SetViewport::Id:
+            return "SetViewport";
+        case chip::app::Clusters::CameraAvStreamManagement::Commands::SetImageRotation::Id:
+            return "SetImageRotation";
+        case chip::app::Clusters::CameraAvStreamManagement::Commands::SetImageFlipHorizontal::Id:
+            return "SetImageFlipHorizontal";
+        case chip::app::Clusters::CameraAvStreamManagement::Commands::SetImageFlipVertical::Id:
+            return "SetImageFlipVertical";
+        default:
+            return "Unknown";
+        }
+    }
+    case chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id: {
+        switch (id)
+        {
+        case chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::MptzSet::Id:
+            return "MptzSet";
+        case chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::MptzRelativeMove::Id:
+            return "MptzRelativeMove";
+        case chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::SetAsPreset::Id:
+            return "SetAsPreset";
+        case chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::DptzSetViewport::Id:
+            return "DptzSetViewport";
+        case chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::DptzRelativeMove::Id:
+            return "DptzRelativeMove";
+        default:
+            return "Unknown";
+        }
+    }
+    case chip::app::Clusters::WebRTCTransportProvider::Id: {
+        switch (id)
+        {
+        case chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCSolicitOffer::Id:
+            return "WebRTCSolicitOffer";
+        case chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCProvideOffer::Id:
+            return "WebRTCProvideOffer";
+        case chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCProvideAnswer::Id:
+            return "WebRTCProvideAnswer";
+        case chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCProvideICECandidate::Id:
+            return "WebRTCProvideICECandidate";
+        case chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCEndSession::Id:
+            return "WebRTCEndSession";
+        default:
+            return "Unknown";
+        }
+    }
+    case chip::app::Clusters::WebRTCTransportRequestor::Id: {
+        switch (id)
+        {
+        case chip::app::Clusters::WebRTCTransportRequestor::Commands::WebRTCOffer::Id:
+            return "WebRTCOffer";
+        case chip::app::Clusters::WebRTCTransportRequestor::Commands::WebRTCAnswer::Id:
+            return "WebRTCAnswer";
+        case chip::app::Clusters::WebRTCTransportRequestor::Commands::WebRTCICECandidate::Id:
+            return "WebRTCICECandidate";
+        case chip::app::Clusters::WebRTCTransportRequestor::Commands::WebRTCEnd::Id:
+            return "WebRTCEnd";
+        default:
+            return "Unknown";
+        }
+    }
+    case chip::app::Clusters::PushAvStreamTransport::Id: {
+        switch (id)
+        {
+        case chip::app::Clusters::PushAvStreamTransport::Commands::AllocatePushTransport::Id:
+            return "AllocatePushTransport";
+        case chip::app::Clusters::PushAvStreamTransport::Commands::DeallocatePushTransport::Id:
+            return "DeallocatePushTransport";
+        case chip::app::Clusters::PushAvStreamTransport::Commands::ModifyPushTransport::Id:
+            return "ModifyPushTransport";
+        case chip::app::Clusters::PushAvStreamTransport::Commands::SetTransportStatus::Id:
+            return "SetTransportStatus";
+        case chip::app::Clusters::PushAvStreamTransport::Commands::ManuallyTriggerTransport::Id:
+            return "ManuallyTriggerTransport";
+        case chip::app::Clusters::PushAvStreamTransport::Commands::FindStreamConfiguration::Id:
+            return "FindStreamConfiguration";
+        default:
+            return "Unknown";
+        }
+    }
+    case chip::app::Clusters::Chime::Id: {
+        switch (id)
+        {
+        case chip::app::Clusters::Chime::Commands::PlayChimeSound::Id:
+            return "PlayChimeSound";
+        default:
+            return "Unknown";
+        }
+    }
     case chip::app::Clusters::CommissionerControl::Id: {
         switch (id)
         {
@@ -6628,6 +6992,43 @@ char const * GeneratedCommandIdToText(chip::ClusterId cluster, chip::CommandId i
             return "Unknown";
         }
     }
+    case chip::app::Clusters::CameraAvStreamManagement::Id: {
+        switch (id)
+        {
+        case chip::app::Clusters::CameraAvStreamManagement::Commands::AudioStreamAllocateResponse::Id:
+            return "AudioStreamAllocateResponse";
+        case chip::app::Clusters::CameraAvStreamManagement::Commands::VideoStreamAllocateResponse::Id:
+            return "VideoStreamAllocateResponse";
+        case chip::app::Clusters::CameraAvStreamManagement::Commands::SnapshotStreamAllocateResponse::Id:
+            return "SnapshotStreamAllocateResponse";
+        case chip::app::Clusters::CameraAvStreamManagement::Commands::CaptureSnapshotResponse::Id:
+            return "CaptureSnapshotResponse";
+        default:
+            return "Unknown";
+        }
+    }
+    case chip::app::Clusters::WebRTCTransportProvider::Id: {
+        switch (id)
+        {
+        case chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCSolicitOfferResponse::Id:
+            return "WebRTCSolicitOfferResponse";
+        case chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCProvideOfferResponse::Id:
+            return "WebRTCProvideOfferResponse";
+        default:
+            return "Unknown";
+        }
+    }
+    case chip::app::Clusters::PushAvStreamTransport::Id: {
+        switch (id)
+        {
+        case chip::app::Clusters::PushAvStreamTransport::Commands::AllocatePushTransportResponse::Id:
+            return "AllocatePushTransportResponse";
+        case chip::app::Clusters::PushAvStreamTransport::Commands::FindStreamConfigurationResponse::Id:
+            return "FindStreamConfigurationResponse";
+        default:
+            return "Unknown";
+        }
+    }
     case chip::app::Clusters::CommissionerControl::Id: {
         switch (id)
         {
diff --git a/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h b/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h
index 0f3dc4f7991331..3d693259459feb 100644
--- a/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h
+++ b/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h
@@ -157,6 +157,12 @@
 | AccountLogin                                                        | 0x050E |
 | ContentControl                                                      | 0x050F |
 | ContentAppObserver                                                  | 0x0510 |
+| CameraAvStreamManagement                                            | 0x0551 |
+| CameraAvSettingsUserLevelManagement                                 | 0x0552 |
+| WebRTCTransportProvider                                             | 0x0553 |
+| WebRTCTransportRequestor                                            | 0x0554 |
+| PushAvStreamTransport                                               | 0x0555 |
+| Chime                                                               | 0x0556 |
 | EcosystemInformation                                                | 0x0750 |
 | CommissionerControl                                                 | 0x0751 |
 | ElectricalMeasurement                                               | 0x0B04 |
@@ -163937,6 +163943,12503 @@ class SubscribeAttributeContentAppObserverClusterRevision : public SubscribeAttr
     }
 };
 
+#endif // MTR_ENABLE_PROVISIONAL
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+/*----------------------------------------------------------------------------*\
+| Cluster CameraAvStreamManagement                                    | 0x0551 |
+|------------------------------------------------------------------------------|
+| Commands:                                                           |        |
+| * AudioStreamAllocate                                               |   0x00 |
+| * AudioStreamDeallocate                                             |   0x02 |
+| * VideoStreamAllocate                                               |   0x03 |
+| * VideoStreamModify                                                 |   0x05 |
+| * VideoStreamDeallocate                                             |   0x06 |
+| * SnapshotStreamAllocate                                            |   0x07 |
+| * SnapshotStreamDeallocate                                          |   0x09 |
+| * SetStreamPriority                                                 |   0x0A |
+| * CaptureSnapshot                                                   |   0x0B |
+| * SetViewport                                                       |   0x0D |
+| * SetImageRotation                                                  |   0x0E |
+| * SetImageFlipHorizontal                                            |   0x0F |
+| * SetImageFlipVertical                                              |   0x10 |
+|------------------------------------------------------------------------------|
+| Attributes:                                                         |        |
+| * MaxConcurrentVideoEncoders                                        | 0x0000 |
+| * MaxEncodedPixelRate                                               | 0x0001 |
+| * VideoSensorParams                                                 | 0x0002 |
+| * NightVisionCapable                                                | 0x0003 |
+| * MinViewPortWidth                                                  | 0x0004 |
+| * MinViewPortHeight                                                 | 0x0005 |
+| * RateDistortionTradeOffPoints                                      | 0x0006 |
+| * MaxPreRollBufferSize                                              | 0x0007 |
+| * MicrophoneCapabilities                                            | 0x0008 |
+| * SpeakerCapabilities                                               | 0x0009 |
+| * TwoWayTalkSupport                                                 | 0x000A |
+| * SupportedSnapshotParams                                           | 0x000B |
+| * HDRCapable                                                        | 0x000C |
+| * MaxNetworkBandwidth                                               | 0x000D |
+| * CurrentFrameRate                                                  | 0x000E |
+| * HDRMode                                                           | 0x000F |
+| * CurrentVideoCodecs                                                | 0x0010 |
+| * CurrentSnapshotConfig                                             | 0x0011 |
+| * FabricsUsingCamera                                                | 0x0012 |
+| * AllocatedVideoStreams                                             | 0x0013 |
+| * AllocatedAudioStreams                                             | 0x0014 |
+| * AllocatedSnapshotStreams                                          | 0x0015 |
+| * RankedVideoStreamPrioritiesList                                   | 0x0016 |
+| * SoftRecordingPrivacyModeSetting                                   | 0x0017 |
+| * SoftLivestreamPrivacyModeSetting                                  | 0x0018 |
+| * HardPrivacyMode                                                   | 0x0019 |
+| * NightVision                                                       | 0x001A |
+| * NightVisionIllum                                                  | 0x001B |
+| * Awb                                                               | 0x001C |
+| * ShutterSpeed                                                      | 0x001D |
+| * Iso                                                               | 0x001E |
+| * Viewport                                                          | 0x001F |
+| * SpkrOnOff                                                         | 0x0020 |
+| * SpkrVolumeLevel                                                   | 0x0021 |
+| * SpkrMaxLevel                                                      | 0x0022 |
+| * SpkrMinLevel                                                      | 0x0023 |
+| * MicOnOff                                                          | 0x0024 |
+| * MicCurrentLevel                                                   | 0x0025 |
+| * MicMaxLevel                                                       | 0x0026 |
+| * MicMinLevel                                                       | 0x0027 |
+| * MicAGC                                                            | 0x0028 |
+| * ImageRotation                                                     | 0x0029 |
+| * ImageFlipHorizontal                                               | 0x002A |
+| * ImageFlipVertical                                                 | 0x002B |
+| * LocalVideoRecordingEnabled                                        | 0x002C |
+| * LocalSnapshotRecordingEnabled                                     | 0x002D |
+| * StatusLight                                                       | 0x002E |
+| * StatusLightBrightness                                             | 0x002F |
+| * DepthSensorStatus                                                 | 0x0030 |
+| * WatermarkEnabled                                                  | 0x0031 |
+| * OSDEnabled                                                        | 0x0032 |
+| * GeneratedCommandList                                              | 0xFFF8 |
+| * AcceptedCommandList                                               | 0xFFF9 |
+| * EventList                                                         | 0xFFFA |
+| * AttributeList                                                     | 0xFFFB |
+| * FeatureMap                                                        | 0xFFFC |
+| * ClusterRevision                                                   | 0xFFFD |
+|------------------------------------------------------------------------------|
+| Events:                                                             |        |
+| * VideoStreamChanged                                                | 0x0000 |
+| * AudioStreamChanged                                                | 0x0001 |
+| * SnapshotStreamChanged                                             | 0x0002 |
+\*----------------------------------------------------------------------------*/
+
+#if MTR_ENABLE_PROVISIONAL
+/*
+ * Command AudioStreamAllocate
+ */
+class CameraAvStreamManagementAudioStreamAllocate : public ClusterCommand {
+public:
+    CameraAvStreamManagementAudioStreamAllocate()
+        : ClusterCommand("audio-stream-allocate")
+    {
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("StreamType", 0, UINT8_MAX, &mRequest.streamType);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("AudioCodec", 0, UINT8_MAX, &mRequest.audioCodec);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("ChannelCount", 0, UINT8_MAX, &mRequest.channelCount);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("SampleRate", 0, UINT32_MAX, &mRequest.sampleRate);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("BitRate", 0, UINT32_MAX, &mRequest.bitRate);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("BitDepth", 0, UINT8_MAX, &mRequest.bitDepth);
+#endif // MTR_ENABLE_PROVISIONAL
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::AudioStreamAllocate::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, commandId, endpointId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRCameraAVStreamManagementClusterAudioStreamAllocateParams alloc] init];
+        params.timedInvokeTimeoutMs = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+#if MTR_ENABLE_PROVISIONAL
+        params.streamType = [NSNumber numberWithUnsignedChar:chip::to_underlying(mRequest.streamType)];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.audioCodec = [NSNumber numberWithUnsignedChar:chip::to_underlying(mRequest.audioCodec)];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.channelCount = [NSNumber numberWithUnsignedChar:mRequest.channelCount];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.sampleRate = [NSNumber numberWithUnsignedInt:mRequest.sampleRate];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.bitRate = [NSNumber numberWithUnsignedInt:mRequest.bitRate];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.bitDepth = [NSNumber numberWithUnsignedChar:mRequest.bitDepth];
+#endif // MTR_ENABLE_PROVISIONAL
+        uint16_t repeatCount = mRepeatCount.ValueOr(1);
+        uint16_t __block responsesNeeded = repeatCount;
+        while (repeatCount--) {
+            [cluster audioStreamAllocateWithParams:params completion:
+                                                              ^(MTRCameraAVStreamManagementClusterAudioStreamAllocateResponseParams * _Nullable values, NSError * _Nullable error) {
+                                                                  NSLog(@"Values: %@", values);
+                                                                  if (error == nil) {
+                                                                      constexpr chip::CommandId responseId = chip::app::Clusters::CameraAvStreamManagement::Commands::AudioStreamAllocateResponse::Id;
+                                                                      RemoteDataModelLogger::LogCommandAsJSON(@(endpointId), @(clusterId), @(responseId), values);
+                                                                  }
+                                                                  responsesNeeded--;
+                                                                  if (error != nil) {
+                                                                      mError = error;
+                                                                      LogNSError("Error", error);
+                                                                      constexpr chip::CommandId responseId = chip::app::Clusters::CameraAvStreamManagement::Commands::AudioStreamAllocateResponse::Id;
+                                                                      RemoteDataModelLogger::LogCommandErrorAsJSON(@(endpointId), @(clusterId), @(responseId), error);
+                                                                  }
+                                                                  if (responsesNeeded == 0) {
+                                                                      SetCommandExitStatus(mError);
+                                                                  }
+                                                              }];
+        }
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    chip::app::Clusters::CameraAvStreamManagement::Commands::AudioStreamAllocate::Type mRequest;
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+/*
+ * Command AudioStreamDeallocate
+ */
+class CameraAvStreamManagementAudioStreamDeallocate : public ClusterCommand {
+public:
+    CameraAvStreamManagementAudioStreamDeallocate()
+        : ClusterCommand("audio-stream-deallocate")
+    {
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("AudioStreamID", 0, UINT16_MAX, &mRequest.audioStreamID);
+#endif // MTR_ENABLE_PROVISIONAL
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::AudioStreamDeallocate::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, commandId, endpointId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRCameraAVStreamManagementClusterAudioStreamDeallocateParams alloc] init];
+        params.timedInvokeTimeoutMs = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+#if MTR_ENABLE_PROVISIONAL
+        params.audioStreamID = [NSNumber numberWithUnsignedShort:mRequest.audioStreamID];
+#endif // MTR_ENABLE_PROVISIONAL
+        uint16_t repeatCount = mRepeatCount.ValueOr(1);
+        uint16_t __block responsesNeeded = repeatCount;
+        while (repeatCount--) {
+            [cluster audioStreamDeallocateWithParams:params completion:
+                                                                ^(NSError * _Nullable error) {
+                                                                    responsesNeeded--;
+                                                                    if (error != nil) {
+                                                                        mError = error;
+                                                                        LogNSError("Error", error);
+                                                                        RemoteDataModelLogger::LogCommandErrorAsJSON(@(endpointId), @(clusterId), @(commandId), error);
+                                                                    }
+                                                                    if (responsesNeeded == 0) {
+                                                                        SetCommandExitStatus(mError);
+                                                                    }
+                                                                }];
+        }
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    chip::app::Clusters::CameraAvStreamManagement::Commands::AudioStreamDeallocate::Type mRequest;
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+/*
+ * Command VideoStreamAllocate
+ */
+class CameraAvStreamManagementVideoStreamAllocate : public ClusterCommand {
+public:
+    CameraAvStreamManagementVideoStreamAllocate()
+        : ClusterCommand("video-stream-allocate")
+        , mComplex_MinResolution(&mRequest.minResolution)
+        , mComplex_MaxResolution(&mRequest.maxResolution)
+    {
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("StreamType", 0, UINT8_MAX, &mRequest.streamType);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("VideoCodec", 0, UINT8_MAX, &mRequest.videoCodec);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("MinFrameRate", 0, UINT16_MAX, &mRequest.minFrameRate);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("MaxFrameRate", 0, UINT16_MAX, &mRequest.maxFrameRate);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("MinResolution", &mComplex_MinResolution);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("MaxResolution", &mComplex_MaxResolution);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("MinBitRate", 0, UINT32_MAX, &mRequest.minBitRate);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("MaxBitRate", 0, UINT32_MAX, &mRequest.maxBitRate);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("MinFragmentLen", 0, UINT16_MAX, &mRequest.minFragmentLen);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("MaxFragmentLen", 0, UINT16_MAX, &mRequest.maxFragmentLen);
+#endif // MTR_ENABLE_PROVISIONAL
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::VideoStreamAllocate::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, commandId, endpointId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRCameraAVStreamManagementClusterVideoStreamAllocateParams alloc] init];
+        params.timedInvokeTimeoutMs = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+#if MTR_ENABLE_PROVISIONAL
+        params.streamType = [NSNumber numberWithUnsignedChar:chip::to_underlying(mRequest.streamType)];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.videoCodec = [NSNumber numberWithUnsignedChar:chip::to_underlying(mRequest.videoCodec)];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.minFrameRate = [NSNumber numberWithUnsignedShort:mRequest.minFrameRate];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.maxFrameRate = [NSNumber numberWithUnsignedShort:mRequest.maxFrameRate];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.minResolution = [MTRCameraAVStreamManagementClusterDimensionStruct new];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.maxResolution = [MTRCameraAVStreamManagementClusterDimensionStruct new];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.minBitRate = [NSNumber numberWithUnsignedInt:mRequest.minBitRate];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.maxBitRate = [NSNumber numberWithUnsignedInt:mRequest.maxBitRate];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.minFragmentLen = [NSNumber numberWithUnsignedShort:mRequest.minFragmentLen];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.maxFragmentLen = [NSNumber numberWithUnsignedShort:mRequest.maxFragmentLen];
+#endif // MTR_ENABLE_PROVISIONAL
+        uint16_t repeatCount = mRepeatCount.ValueOr(1);
+        uint16_t __block responsesNeeded = repeatCount;
+        while (repeatCount--) {
+            [cluster videoStreamAllocateWithParams:params completion:
+                                                              ^(MTRCameraAVStreamManagementClusterVideoStreamAllocateResponseParams * _Nullable values, NSError * _Nullable error) {
+                                                                  NSLog(@"Values: %@", values);
+                                                                  if (error == nil) {
+                                                                      constexpr chip::CommandId responseId = chip::app::Clusters::CameraAvStreamManagement::Commands::VideoStreamAllocateResponse::Id;
+                                                                      RemoteDataModelLogger::LogCommandAsJSON(@(endpointId), @(clusterId), @(responseId), values);
+                                                                  }
+                                                                  responsesNeeded--;
+                                                                  if (error != nil) {
+                                                                      mError = error;
+                                                                      LogNSError("Error", error);
+                                                                      constexpr chip::CommandId responseId = chip::app::Clusters::CameraAvStreamManagement::Commands::VideoStreamAllocateResponse::Id;
+                                                                      RemoteDataModelLogger::LogCommandErrorAsJSON(@(endpointId), @(clusterId), @(responseId), error);
+                                                                  }
+                                                                  if (responsesNeeded == 0) {
+                                                                      SetCommandExitStatus(mError);
+                                                                  }
+                                                              }];
+        }
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    chip::app::Clusters::CameraAvStreamManagement::Commands::VideoStreamAllocate::Type mRequest;
+    TypedComplexArgument<chip::app::Clusters::CameraAvStreamManagement::Structs::DimensionStruct::Type> mComplex_MinResolution;
+    TypedComplexArgument<chip::app::Clusters::CameraAvStreamManagement::Structs::DimensionStruct::Type> mComplex_MaxResolution;
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+/*
+ * Command VideoStreamModify
+ */
+class CameraAvStreamManagementVideoStreamModify : public ClusterCommand {
+public:
+    CameraAvStreamManagementVideoStreamModify()
+        : ClusterCommand("video-stream-modify")
+        , mComplex_Resolution(&mRequest.resolution)
+    {
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("VideoStreamID", 0, UINT16_MAX, &mRequest.videoStreamID);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("Resolution", &mComplex_Resolution);
+#endif // MTR_ENABLE_PROVISIONAL
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::VideoStreamModify::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, commandId, endpointId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRCameraAVStreamManagementClusterVideoStreamModifyParams alloc] init];
+        params.timedInvokeTimeoutMs = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+#if MTR_ENABLE_PROVISIONAL
+        params.videoStreamID = [NSNumber numberWithUnsignedShort:mRequest.videoStreamID];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.resolution = [MTRCameraAVStreamManagementClusterDimensionStruct new];
+#endif // MTR_ENABLE_PROVISIONAL
+        uint16_t repeatCount = mRepeatCount.ValueOr(1);
+        uint16_t __block responsesNeeded = repeatCount;
+        while (repeatCount--) {
+            [cluster videoStreamModifyWithParams:params completion:
+                                                            ^(NSError * _Nullable error) {
+                                                                responsesNeeded--;
+                                                                if (error != nil) {
+                                                                    mError = error;
+                                                                    LogNSError("Error", error);
+                                                                    RemoteDataModelLogger::LogCommandErrorAsJSON(@(endpointId), @(clusterId), @(commandId), error);
+                                                                }
+                                                                if (responsesNeeded == 0) {
+                                                                    SetCommandExitStatus(mError);
+                                                                }
+                                                            }];
+        }
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    chip::app::Clusters::CameraAvStreamManagement::Commands::VideoStreamModify::Type mRequest;
+    TypedComplexArgument<chip::app::Clusters::CameraAvStreamManagement::Structs::DimensionStruct::Type> mComplex_Resolution;
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+/*
+ * Command VideoStreamDeallocate
+ */
+class CameraAvStreamManagementVideoStreamDeallocate : public ClusterCommand {
+public:
+    CameraAvStreamManagementVideoStreamDeallocate()
+        : ClusterCommand("video-stream-deallocate")
+    {
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("VideoStreamID", 0, UINT16_MAX, &mRequest.videoStreamID);
+#endif // MTR_ENABLE_PROVISIONAL
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::VideoStreamDeallocate::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, commandId, endpointId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRCameraAVStreamManagementClusterVideoStreamDeallocateParams alloc] init];
+        params.timedInvokeTimeoutMs = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+#if MTR_ENABLE_PROVISIONAL
+        params.videoStreamID = [NSNumber numberWithUnsignedShort:mRequest.videoStreamID];
+#endif // MTR_ENABLE_PROVISIONAL
+        uint16_t repeatCount = mRepeatCount.ValueOr(1);
+        uint16_t __block responsesNeeded = repeatCount;
+        while (repeatCount--) {
+            [cluster videoStreamDeallocateWithParams:params completion:
+                                                                ^(NSError * _Nullable error) {
+                                                                    responsesNeeded--;
+                                                                    if (error != nil) {
+                                                                        mError = error;
+                                                                        LogNSError("Error", error);
+                                                                        RemoteDataModelLogger::LogCommandErrorAsJSON(@(endpointId), @(clusterId), @(commandId), error);
+                                                                    }
+                                                                    if (responsesNeeded == 0) {
+                                                                        SetCommandExitStatus(mError);
+                                                                    }
+                                                                }];
+        }
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    chip::app::Clusters::CameraAvStreamManagement::Commands::VideoStreamDeallocate::Type mRequest;
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+/*
+ * Command SnapshotStreamAllocate
+ */
+class CameraAvStreamManagementSnapshotStreamAllocate : public ClusterCommand {
+public:
+    CameraAvStreamManagementSnapshotStreamAllocate()
+        : ClusterCommand("snapshot-stream-allocate")
+        , mComplex_MinResolution(&mRequest.minResolution)
+        , mComplex_MaxResolution(&mRequest.maxResolution)
+    {
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("ImageCodec", 0, UINT8_MAX, &mRequest.imageCodec);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("FrameRate", 0, UINT16_MAX, &mRequest.frameRate);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("BitRate", 0, UINT32_MAX, &mRequest.bitRate);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("MinResolution", &mComplex_MinResolution);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("MaxResolution", &mComplex_MaxResolution);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("Quality", 0, UINT8_MAX, &mRequest.quality);
+#endif // MTR_ENABLE_PROVISIONAL
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::SnapshotStreamAllocate::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, commandId, endpointId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRCameraAVStreamManagementClusterSnapshotStreamAllocateParams alloc] init];
+        params.timedInvokeTimeoutMs = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+#if MTR_ENABLE_PROVISIONAL
+        params.imageCodec = [NSNumber numberWithUnsignedChar:chip::to_underlying(mRequest.imageCodec)];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.frameRate = [NSNumber numberWithUnsignedShort:mRequest.frameRate];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.bitRate = [NSNumber numberWithUnsignedInt:mRequest.bitRate];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.minResolution = [MTRCameraAVStreamManagementClusterDimensionStruct new];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.maxResolution = [MTRCameraAVStreamManagementClusterDimensionStruct new];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.quality = [NSNumber numberWithUnsignedChar:mRequest.quality];
+#endif // MTR_ENABLE_PROVISIONAL
+        uint16_t repeatCount = mRepeatCount.ValueOr(1);
+        uint16_t __block responsesNeeded = repeatCount;
+        while (repeatCount--) {
+            [cluster snapshotStreamAllocateWithParams:params completion:
+                                                                 ^(MTRCameraAVStreamManagementClusterSnapshotStreamAllocateResponseParams * _Nullable values, NSError * _Nullable error) {
+                                                                     NSLog(@"Values: %@", values);
+                                                                     if (error == nil) {
+                                                                         constexpr chip::CommandId responseId = chip::app::Clusters::CameraAvStreamManagement::Commands::SnapshotStreamAllocateResponse::Id;
+                                                                         RemoteDataModelLogger::LogCommandAsJSON(@(endpointId), @(clusterId), @(responseId), values);
+                                                                     }
+                                                                     responsesNeeded--;
+                                                                     if (error != nil) {
+                                                                         mError = error;
+                                                                         LogNSError("Error", error);
+                                                                         constexpr chip::CommandId responseId = chip::app::Clusters::CameraAvStreamManagement::Commands::SnapshotStreamAllocateResponse::Id;
+                                                                         RemoteDataModelLogger::LogCommandErrorAsJSON(@(endpointId), @(clusterId), @(responseId), error);
+                                                                     }
+                                                                     if (responsesNeeded == 0) {
+                                                                         SetCommandExitStatus(mError);
+                                                                     }
+                                                                 }];
+        }
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    chip::app::Clusters::CameraAvStreamManagement::Commands::SnapshotStreamAllocate::Type mRequest;
+    TypedComplexArgument<chip::app::Clusters::CameraAvStreamManagement::Structs::DimensionStruct::Type> mComplex_MinResolution;
+    TypedComplexArgument<chip::app::Clusters::CameraAvStreamManagement::Structs::DimensionStruct::Type> mComplex_MaxResolution;
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+/*
+ * Command SnapshotStreamDeallocate
+ */
+class CameraAvStreamManagementSnapshotStreamDeallocate : public ClusterCommand {
+public:
+    CameraAvStreamManagementSnapshotStreamDeallocate()
+        : ClusterCommand("snapshot-stream-deallocate")
+    {
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("SnapshotStreamID", 0, UINT16_MAX, &mRequest.snapshotStreamID);
+#endif // MTR_ENABLE_PROVISIONAL
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::SnapshotStreamDeallocate::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, commandId, endpointId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRCameraAVStreamManagementClusterSnapshotStreamDeallocateParams alloc] init];
+        params.timedInvokeTimeoutMs = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+#if MTR_ENABLE_PROVISIONAL
+        params.snapshotStreamID = [NSNumber numberWithUnsignedShort:mRequest.snapshotStreamID];
+#endif // MTR_ENABLE_PROVISIONAL
+        uint16_t repeatCount = mRepeatCount.ValueOr(1);
+        uint16_t __block responsesNeeded = repeatCount;
+        while (repeatCount--) {
+            [cluster snapshotStreamDeallocateWithParams:params completion:
+                                                                   ^(NSError * _Nullable error) {
+                                                                       responsesNeeded--;
+                                                                       if (error != nil) {
+                                                                           mError = error;
+                                                                           LogNSError("Error", error);
+                                                                           RemoteDataModelLogger::LogCommandErrorAsJSON(@(endpointId), @(clusterId), @(commandId), error);
+                                                                       }
+                                                                       if (responsesNeeded == 0) {
+                                                                           SetCommandExitStatus(mError);
+                                                                       }
+                                                                   }];
+        }
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    chip::app::Clusters::CameraAvStreamManagement::Commands::SnapshotStreamDeallocate::Type mRequest;
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+/*
+ * Command SetStreamPriority
+ */
+class CameraAvStreamManagementSetStreamPriority : public ClusterCommand {
+public:
+    CameraAvStreamManagementSetStreamPriority()
+        : ClusterCommand("set-stream-priority")
+    {
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::SetStreamPriority::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, commandId, endpointId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRCameraAVStreamManagementClusterSetStreamPriorityParams alloc] init];
+        params.timedInvokeTimeoutMs = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+        uint16_t repeatCount = mRepeatCount.ValueOr(1);
+        uint16_t __block responsesNeeded = repeatCount;
+        while (repeatCount--) {
+            [cluster setStreamPriorityWithParams:params completion:
+                                                            ^(NSError * _Nullable error) {
+                                                                responsesNeeded--;
+                                                                if (error != nil) {
+                                                                    mError = error;
+                                                                    LogNSError("Error", error);
+                                                                    RemoteDataModelLogger::LogCommandErrorAsJSON(@(endpointId), @(clusterId), @(commandId), error);
+                                                                }
+                                                                if (responsesNeeded == 0) {
+                                                                    SetCommandExitStatus(mError);
+                                                                }
+                                                            }];
+        }
+        return CHIP_NO_ERROR;
+    }
+
+private:
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+/*
+ * Command CaptureSnapshot
+ */
+class CameraAvStreamManagementCaptureSnapshot : public ClusterCommand {
+public:
+    CameraAvStreamManagementCaptureSnapshot()
+        : ClusterCommand("capture-snapshot")
+        , mComplex_RequestedResolution(&mRequest.requestedResolution)
+    {
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("SnapshotStreamID", 0, UINT16_MAX, &mRequest.snapshotStreamID);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("RequestedResolution", &mComplex_RequestedResolution);
+#endif // MTR_ENABLE_PROVISIONAL
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::CaptureSnapshot::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, commandId, endpointId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRCameraAVStreamManagementClusterCaptureSnapshotParams alloc] init];
+        params.timedInvokeTimeoutMs = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+#if MTR_ENABLE_PROVISIONAL
+        params.snapshotStreamID = [NSNumber numberWithUnsignedShort:mRequest.snapshotStreamID];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.requestedResolution = [MTRCameraAVStreamManagementClusterDimensionStruct new];
+#endif // MTR_ENABLE_PROVISIONAL
+        uint16_t repeatCount = mRepeatCount.ValueOr(1);
+        uint16_t __block responsesNeeded = repeatCount;
+        while (repeatCount--) {
+            [cluster captureSnapshotWithParams:params completion:
+                                                          ^(NSError * _Nullable error) {
+                                                              responsesNeeded--;
+                                                              if (error != nil) {
+                                                                  mError = error;
+                                                                  LogNSError("Error", error);
+                                                                  RemoteDataModelLogger::LogCommandErrorAsJSON(@(endpointId), @(clusterId), @(commandId), error);
+                                                              }
+                                                              if (responsesNeeded == 0) {
+                                                                  SetCommandExitStatus(mError);
+                                                              }
+                                                          }];
+        }
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    chip::app::Clusters::CameraAvStreamManagement::Commands::CaptureSnapshot::Type mRequest;
+    TypedComplexArgument<chip::app::Clusters::CameraAvStreamManagement::Structs::DimensionStruct::Type> mComplex_RequestedResolution;
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+/*
+ * Command SetViewport
+ */
+class CameraAvStreamManagementSetViewport : public ClusterCommand {
+public:
+    CameraAvStreamManagementSetViewport()
+        : ClusterCommand("set-viewport")
+        , mComplex_Viewport(&mRequest.viewport)
+    {
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("Viewport", &mComplex_Viewport);
+#endif // MTR_ENABLE_PROVISIONAL
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::SetViewport::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, commandId, endpointId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRCameraAVStreamManagementClusterSetViewportParams alloc] init];
+        params.timedInvokeTimeoutMs = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+#if MTR_ENABLE_PROVISIONAL
+        params.viewport = [MTRCameraAVStreamManagementClusterViewportStruct new];
+        params.viewport.x1 = [NSNumber numberWithUnsignedShort:mRequest.viewport.x1];
+        params.viewport.y1 = [NSNumber numberWithUnsignedShort:mRequest.viewport.y1];
+        params.viewport.x2 = [NSNumber numberWithUnsignedShort:mRequest.viewport.x2];
+        params.viewport.y2 = [NSNumber numberWithUnsignedShort:mRequest.viewport.y2];
+#endif // MTR_ENABLE_PROVISIONAL
+        uint16_t repeatCount = mRepeatCount.ValueOr(1);
+        uint16_t __block responsesNeeded = repeatCount;
+        while (repeatCount--) {
+            [cluster setViewportWithParams:params completion:
+                                                      ^(NSError * _Nullable error) {
+                                                          responsesNeeded--;
+                                                          if (error != nil) {
+                                                              mError = error;
+                                                              LogNSError("Error", error);
+                                                              RemoteDataModelLogger::LogCommandErrorAsJSON(@(endpointId), @(clusterId), @(commandId), error);
+                                                          }
+                                                          if (responsesNeeded == 0) {
+                                                              SetCommandExitStatus(mError);
+                                                          }
+                                                      }];
+        }
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    chip::app::Clusters::CameraAvStreamManagement::Commands::SetViewport::Type mRequest;
+    TypedComplexArgument<chip::app::Clusters::CameraAvStreamManagement::Structs::ViewportStruct::Type> mComplex_Viewport;
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+/*
+ * Command SetImageRotation
+ */
+class CameraAvStreamManagementSetImageRotation : public ClusterCommand {
+public:
+    CameraAvStreamManagementSetImageRotation()
+        : ClusterCommand("set-image-rotation")
+    {
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("Angle", 0, UINT16_MAX, &mRequest.angle);
+#endif // MTR_ENABLE_PROVISIONAL
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::SetImageRotation::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, commandId, endpointId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRCameraAVStreamManagementClusterSetImageRotationParams alloc] init];
+        params.timedInvokeTimeoutMs = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+#if MTR_ENABLE_PROVISIONAL
+        params.angle = [NSNumber numberWithUnsignedShort:mRequest.angle];
+#endif // MTR_ENABLE_PROVISIONAL
+        uint16_t repeatCount = mRepeatCount.ValueOr(1);
+        uint16_t __block responsesNeeded = repeatCount;
+        while (repeatCount--) {
+            [cluster setImageRotationWithParams:params completion:
+                                                           ^(NSError * _Nullable error) {
+                                                               responsesNeeded--;
+                                                               if (error != nil) {
+                                                                   mError = error;
+                                                                   LogNSError("Error", error);
+                                                                   RemoteDataModelLogger::LogCommandErrorAsJSON(@(endpointId), @(clusterId), @(commandId), error);
+                                                               }
+                                                               if (responsesNeeded == 0) {
+                                                                   SetCommandExitStatus(mError);
+                                                               }
+                                                           }];
+        }
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    chip::app::Clusters::CameraAvStreamManagement::Commands::SetImageRotation::Type mRequest;
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+/*
+ * Command SetImageFlipHorizontal
+ */
+class CameraAvStreamManagementSetImageFlipHorizontal : public ClusterCommand {
+public:
+    CameraAvStreamManagementSetImageFlipHorizontal()
+        : ClusterCommand("set-image-flip-horizontal")
+    {
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("OnOff", 0, 1, &mRequest.onOff);
+#endif // MTR_ENABLE_PROVISIONAL
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::SetImageFlipHorizontal::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, commandId, endpointId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRCameraAVStreamManagementClusterSetImageFlipHorizontalParams alloc] init];
+        params.timedInvokeTimeoutMs = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+#if MTR_ENABLE_PROVISIONAL
+        params.onOff = [NSNumber numberWithBool:mRequest.onOff];
+#endif // MTR_ENABLE_PROVISIONAL
+        uint16_t repeatCount = mRepeatCount.ValueOr(1);
+        uint16_t __block responsesNeeded = repeatCount;
+        while (repeatCount--) {
+            [cluster setImageFlipHorizontalWithParams:params completion:
+                                                                 ^(NSError * _Nullable error) {
+                                                                     responsesNeeded--;
+                                                                     if (error != nil) {
+                                                                         mError = error;
+                                                                         LogNSError("Error", error);
+                                                                         RemoteDataModelLogger::LogCommandErrorAsJSON(@(endpointId), @(clusterId), @(commandId), error);
+                                                                     }
+                                                                     if (responsesNeeded == 0) {
+                                                                         SetCommandExitStatus(mError);
+                                                                     }
+                                                                 }];
+        }
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    chip::app::Clusters::CameraAvStreamManagement::Commands::SetImageFlipHorizontal::Type mRequest;
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+/*
+ * Command SetImageFlipVertical
+ */
+class CameraAvStreamManagementSetImageFlipVertical : public ClusterCommand {
+public:
+    CameraAvStreamManagementSetImageFlipVertical()
+        : ClusterCommand("set-image-flip-vertical")
+    {
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("OnOff", 0, 1, &mRequest.onOff);
+#endif // MTR_ENABLE_PROVISIONAL
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvStreamManagement::Commands::SetImageFlipVertical::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, commandId, endpointId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRCameraAVStreamManagementClusterSetImageFlipVerticalParams alloc] init];
+        params.timedInvokeTimeoutMs = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+#if MTR_ENABLE_PROVISIONAL
+        params.onOff = [NSNumber numberWithBool:mRequest.onOff];
+#endif // MTR_ENABLE_PROVISIONAL
+        uint16_t repeatCount = mRepeatCount.ValueOr(1);
+        uint16_t __block responsesNeeded = repeatCount;
+        while (repeatCount--) {
+            [cluster setImageFlipVerticalWithParams:params completion:
+                                                               ^(NSError * _Nullable error) {
+                                                                   responsesNeeded--;
+                                                                   if (error != nil) {
+                                                                       mError = error;
+                                                                       LogNSError("Error", error);
+                                                                       RemoteDataModelLogger::LogCommandErrorAsJSON(@(endpointId), @(clusterId), @(commandId), error);
+                                                                   }
+                                                                   if (responsesNeeded == 0) {
+                                                                       SetCommandExitStatus(mError);
+                                                                   }
+                                                               }];
+        }
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    chip::app::Clusters::CameraAvStreamManagement::Commands::SetImageFlipVertical::Type mRequest;
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute MaxConcurrentVideoEncoders
+ */
+class ReadCameraAvStreamManagementMaxConcurrentVideoEncoders : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementMaxConcurrentVideoEncoders()
+        : ReadAttribute("max-concurrent-video-encoders")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementMaxConcurrentVideoEncoders()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::MaxConcurrentVideoEncoders::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeMaxConcurrentVideoEncodersWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.MaxConcurrentVideoEncoders response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement MaxConcurrentVideoEncoders read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvStreamManagementMaxConcurrentVideoEncoders : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementMaxConcurrentVideoEncoders()
+        : SubscribeAttribute("max-concurrent-video-encoders")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementMaxConcurrentVideoEncoders()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::MaxConcurrentVideoEncoders::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeMaxConcurrentVideoEncodersWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.MaxConcurrentVideoEncoders response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute MaxEncodedPixelRate
+ */
+class ReadCameraAvStreamManagementMaxEncodedPixelRate : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementMaxEncodedPixelRate()
+        : ReadAttribute("max-encoded-pixel-rate")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementMaxEncodedPixelRate()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::MaxEncodedPixelRate::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeMaxEncodedPixelRateWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.MaxEncodedPixelRate response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement MaxEncodedPixelRate read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvStreamManagementMaxEncodedPixelRate : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementMaxEncodedPixelRate()
+        : SubscribeAttribute("max-encoded-pixel-rate")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementMaxEncodedPixelRate()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::MaxEncodedPixelRate::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeMaxEncodedPixelRateWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.MaxEncodedPixelRate response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute VideoSensorParams
+ */
+class ReadCameraAvStreamManagementVideoSensorParams : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementVideoSensorParams()
+        : ReadAttribute("video-sensor-params")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementVideoSensorParams()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::VideoSensorParams::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeVideoSensorParamsWithCompletion:^(MTRCameraAVStreamManagementClusterVideoSensorParamsStruct * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.VideoSensorParams response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement VideoSensorParams read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvStreamManagementVideoSensorParams : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementVideoSensorParams()
+        : SubscribeAttribute("video-sensor-params")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementVideoSensorParams()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::VideoSensorParams::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeVideoSensorParamsWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(MTRCameraAVStreamManagementClusterVideoSensorParamsStruct * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.VideoSensorParams response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute NightVisionCapable
+ */
+class ReadCameraAvStreamManagementNightVisionCapable : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementNightVisionCapable()
+        : ReadAttribute("night-vision-capable")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementNightVisionCapable()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::NightVisionCapable::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeNightVisionCapableWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.NightVisionCapable response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement NightVisionCapable read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvStreamManagementNightVisionCapable : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementNightVisionCapable()
+        : SubscribeAttribute("night-vision-capable")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementNightVisionCapable()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::NightVisionCapable::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeNightVisionCapableWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.NightVisionCapable response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute MinViewPortWidth
+ */
+class ReadCameraAvStreamManagementMinViewPortWidth : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementMinViewPortWidth()
+        : ReadAttribute("min-view-port-width")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementMinViewPortWidth()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::MinViewPortWidth::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeMinViewPortWidthWithCompletion:^(MTRCameraAVStreamManagementClusterDimensionStruct * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.MinViewPortWidth response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement MinViewPortWidth read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvStreamManagementMinViewPortWidth : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementMinViewPortWidth()
+        : SubscribeAttribute("min-view-port-width")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementMinViewPortWidth()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::MinViewPortWidth::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeMinViewPortWidthWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(MTRCameraAVStreamManagementClusterDimensionStruct * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.MinViewPortWidth response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute MinViewPortHeight
+ */
+class ReadCameraAvStreamManagementMinViewPortHeight : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementMinViewPortHeight()
+        : ReadAttribute("min-view-port-height")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementMinViewPortHeight()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::MinViewPortHeight::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeMinViewPortHeightWithCompletion:^(MTRCameraAVStreamManagementClusterDimensionStruct * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.MinViewPortHeight response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement MinViewPortHeight read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvStreamManagementMinViewPortHeight : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementMinViewPortHeight()
+        : SubscribeAttribute("min-view-port-height")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementMinViewPortHeight()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::MinViewPortHeight::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeMinViewPortHeightWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(MTRCameraAVStreamManagementClusterDimensionStruct * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.MinViewPortHeight response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute RateDistortionTradeOffPoints
+ */
+class ReadCameraAvStreamManagementRateDistortionTradeOffPoints : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementRateDistortionTradeOffPoints()
+        : ReadAttribute("rate-distortion-trade-off-points")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementRateDistortionTradeOffPoints()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::RateDistortionTradeOffPoints::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeRateDistortionTradeOffPointsWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.RateDistortionTradeOffPoints response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement RateDistortionTradeOffPoints read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvStreamManagementRateDistortionTradeOffPoints : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementRateDistortionTradeOffPoints()
+        : SubscribeAttribute("rate-distortion-trade-off-points")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementRateDistortionTradeOffPoints()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::RateDistortionTradeOffPoints::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeRateDistortionTradeOffPointsWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.RateDistortionTradeOffPoints response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute MaxPreRollBufferSize
+ */
+class ReadCameraAvStreamManagementMaxPreRollBufferSize : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementMaxPreRollBufferSize()
+        : ReadAttribute("max-pre-roll-buffer-size")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementMaxPreRollBufferSize()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::MaxPreRollBufferSize::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeMaxPreRollBufferSizeWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.MaxPreRollBufferSize response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement MaxPreRollBufferSize read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvStreamManagementMaxPreRollBufferSize : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementMaxPreRollBufferSize()
+        : SubscribeAttribute("max-pre-roll-buffer-size")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementMaxPreRollBufferSize()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::MaxPreRollBufferSize::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeMaxPreRollBufferSizeWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.MaxPreRollBufferSize response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute MicrophoneCapabilities
+ */
+class ReadCameraAvStreamManagementMicrophoneCapabilities : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementMicrophoneCapabilities()
+        : ReadAttribute("microphone-capabilities")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementMicrophoneCapabilities()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::MicrophoneCapabilities::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeMicrophoneCapabilitiesWithCompletion:^(MTRCameraAVStreamManagementClusterAudioCapabilitiesStruct * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.MicrophoneCapabilities response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement MicrophoneCapabilities read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvStreamManagementMicrophoneCapabilities : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementMicrophoneCapabilities()
+        : SubscribeAttribute("microphone-capabilities")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementMicrophoneCapabilities()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::MicrophoneCapabilities::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeMicrophoneCapabilitiesWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(MTRCameraAVStreamManagementClusterAudioCapabilitiesStruct * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.MicrophoneCapabilities response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute SpeakerCapabilities
+ */
+class ReadCameraAvStreamManagementSpeakerCapabilities : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementSpeakerCapabilities()
+        : ReadAttribute("speaker-capabilities")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementSpeakerCapabilities()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::SpeakerCapabilities::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeSpeakerCapabilitiesWithCompletion:^(MTRCameraAVStreamManagementClusterAudioCapabilitiesStruct * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.SpeakerCapabilities response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement SpeakerCapabilities read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvStreamManagementSpeakerCapabilities : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementSpeakerCapabilities()
+        : SubscribeAttribute("speaker-capabilities")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementSpeakerCapabilities()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::SpeakerCapabilities::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeSpeakerCapabilitiesWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(MTRCameraAVStreamManagementClusterAudioCapabilitiesStruct * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.SpeakerCapabilities response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute TwoWayTalkSupport
+ */
+class ReadCameraAvStreamManagementTwoWayTalkSupport : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementTwoWayTalkSupport()
+        : ReadAttribute("two-way-talk-support")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementTwoWayTalkSupport()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::TwoWayTalkSupport::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeTwoWayTalkSupportWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.TwoWayTalkSupport response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement TwoWayTalkSupport read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvStreamManagementTwoWayTalkSupport : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementTwoWayTalkSupport()
+        : SubscribeAttribute("two-way-talk-support")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementTwoWayTalkSupport()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::TwoWayTalkSupport::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeTwoWayTalkSupportWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.TwoWayTalkSupport response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute SupportedSnapshotParams
+ */
+class ReadCameraAvStreamManagementSupportedSnapshotParams : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementSupportedSnapshotParams()
+        : ReadAttribute("supported-snapshot-params")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementSupportedSnapshotParams()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::SupportedSnapshotParams::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeSupportedSnapshotParamsWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.SupportedSnapshotParams response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement SupportedSnapshotParams read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvStreamManagementSupportedSnapshotParams : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementSupportedSnapshotParams()
+        : SubscribeAttribute("supported-snapshot-params")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementSupportedSnapshotParams()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::SupportedSnapshotParams::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeSupportedSnapshotParamsWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.SupportedSnapshotParams response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute HDRCapable
+ */
+class ReadCameraAvStreamManagementHDRCapable : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementHDRCapable()
+        : ReadAttribute("hdrcapable")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementHDRCapable()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::HDRCapable::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeHDRCapableWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.HDRCapable response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement HDRCapable read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvStreamManagementHDRCapable : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementHDRCapable()
+        : SubscribeAttribute("hdrcapable")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementHDRCapable()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::HDRCapable::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeHDRCapableWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.HDRCapable response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute MaxNetworkBandwidth
+ */
+class ReadCameraAvStreamManagementMaxNetworkBandwidth : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementMaxNetworkBandwidth()
+        : ReadAttribute("max-network-bandwidth")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementMaxNetworkBandwidth()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::MaxNetworkBandwidth::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeMaxNetworkBandwidthWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.MaxNetworkBandwidth response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement MaxNetworkBandwidth read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvStreamManagementMaxNetworkBandwidth : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementMaxNetworkBandwidth()
+        : SubscribeAttribute("max-network-bandwidth")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementMaxNetworkBandwidth()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::MaxNetworkBandwidth::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeMaxNetworkBandwidthWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.MaxNetworkBandwidth response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute CurrentFrameRate
+ */
+class ReadCameraAvStreamManagementCurrentFrameRate : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementCurrentFrameRate()
+        : ReadAttribute("current-frame-rate")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementCurrentFrameRate()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::CurrentFrameRate::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeCurrentFrameRateWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.CurrentFrameRate response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement CurrentFrameRate read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvStreamManagementCurrentFrameRate : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementCurrentFrameRate()
+        : SubscribeAttribute("current-frame-rate")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementCurrentFrameRate()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::CurrentFrameRate::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeCurrentFrameRateWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.CurrentFrameRate response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute HDRMode
+ */
+class ReadCameraAvStreamManagementHDRMode : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementHDRMode()
+        : ReadAttribute("hdrmode")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementHDRMode()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::HDRMode::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeHDRModeWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.HDRMode response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement HDRMode read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class WriteCameraAvStreamManagementHDRMode : public WriteAttribute {
+public:
+    WriteCameraAvStreamManagementHDRMode()
+        : WriteAttribute("hdrmode")
+    {
+        AddArgument("attr-name", "hdrmode");
+        AddArgument("attr-value", 0, 1, &mValue);
+        WriteAttribute::AddArguments();
+    }
+
+    ~WriteCameraAvStreamManagementHDRMode()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::HDRMode::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") WriteAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRWriteParams alloc] init];
+        params.timedWriteTimeout = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+        params.dataVersion = mDataVersion.HasValue() ? [NSNumber numberWithUnsignedInt:mDataVersion.Value()] : nil;
+        NSNumber * _Nonnull value = [NSNumber numberWithBool:mValue];
+
+        [cluster writeAttributeHDRModeWithValue:value params:params completion:^(NSError * _Nullable error) {
+            if (error != nil) {
+                LogNSError("CameraAVStreamManagement HDRMode write Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    bool mValue;
+};
+
+class SubscribeAttributeCameraAvStreamManagementHDRMode : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementHDRMode()
+        : SubscribeAttribute("hdrmode")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementHDRMode()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::HDRMode::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeHDRModeWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.HDRMode response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute CurrentVideoCodecs
+ */
+class ReadCameraAvStreamManagementCurrentVideoCodecs : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementCurrentVideoCodecs()
+        : ReadAttribute("current-video-codecs")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementCurrentVideoCodecs()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::CurrentVideoCodecs::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeCurrentVideoCodecsWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.CurrentVideoCodecs response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement CurrentVideoCodecs read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvStreamManagementCurrentVideoCodecs : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementCurrentVideoCodecs()
+        : SubscribeAttribute("current-video-codecs")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementCurrentVideoCodecs()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::CurrentVideoCodecs::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeCurrentVideoCodecsWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.CurrentVideoCodecs response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute CurrentSnapshotConfig
+ */
+class ReadCameraAvStreamManagementCurrentSnapshotConfig : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementCurrentSnapshotConfig()
+        : ReadAttribute("current-snapshot-config")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementCurrentSnapshotConfig()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::CurrentSnapshotConfig::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeCurrentSnapshotConfigWithCompletion:^(MTRCameraAVStreamManagementClusterSnapshotParamsStruct * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.CurrentSnapshotConfig response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement CurrentSnapshotConfig read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvStreamManagementCurrentSnapshotConfig : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementCurrentSnapshotConfig()
+        : SubscribeAttribute("current-snapshot-config")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementCurrentSnapshotConfig()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::CurrentSnapshotConfig::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeCurrentSnapshotConfigWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(MTRCameraAVStreamManagementClusterSnapshotParamsStruct * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.CurrentSnapshotConfig response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute FabricsUsingCamera
+ */
+class ReadCameraAvStreamManagementFabricsUsingCamera : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementFabricsUsingCamera()
+        : ReadAttribute("fabrics-using-camera")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementFabricsUsingCamera()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::FabricsUsingCamera::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeFabricsUsingCameraWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.FabricsUsingCamera response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement FabricsUsingCamera read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvStreamManagementFabricsUsingCamera : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementFabricsUsingCamera()
+        : SubscribeAttribute("fabrics-using-camera")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementFabricsUsingCamera()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::FabricsUsingCamera::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeFabricsUsingCameraWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.FabricsUsingCamera response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute AllocatedVideoStreams
+ */
+class ReadCameraAvStreamManagementAllocatedVideoStreams : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementAllocatedVideoStreams()
+        : ReadAttribute("allocated-video-streams")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementAllocatedVideoStreams()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::AllocatedVideoStreams::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeAllocatedVideoStreamsWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.AllocatedVideoStreams response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement AllocatedVideoStreams read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvStreamManagementAllocatedVideoStreams : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementAllocatedVideoStreams()
+        : SubscribeAttribute("allocated-video-streams")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementAllocatedVideoStreams()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::AllocatedVideoStreams::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeAllocatedVideoStreamsWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.AllocatedVideoStreams response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute AllocatedAudioStreams
+ */
+class ReadCameraAvStreamManagementAllocatedAudioStreams : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementAllocatedAudioStreams()
+        : ReadAttribute("allocated-audio-streams")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementAllocatedAudioStreams()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::AllocatedAudioStreams::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeAllocatedAudioStreamsWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.AllocatedAudioStreams response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement AllocatedAudioStreams read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvStreamManagementAllocatedAudioStreams : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementAllocatedAudioStreams()
+        : SubscribeAttribute("allocated-audio-streams")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementAllocatedAudioStreams()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::AllocatedAudioStreams::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeAllocatedAudioStreamsWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.AllocatedAudioStreams response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute AllocatedSnapshotStreams
+ */
+class ReadCameraAvStreamManagementAllocatedSnapshotStreams : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementAllocatedSnapshotStreams()
+        : ReadAttribute("allocated-snapshot-streams")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementAllocatedSnapshotStreams()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::AllocatedSnapshotStreams::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeAllocatedSnapshotStreamsWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.AllocatedSnapshotStreams response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement AllocatedSnapshotStreams read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvStreamManagementAllocatedSnapshotStreams : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementAllocatedSnapshotStreams()
+        : SubscribeAttribute("allocated-snapshot-streams")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementAllocatedSnapshotStreams()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::AllocatedSnapshotStreams::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeAllocatedSnapshotStreamsWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.AllocatedSnapshotStreams response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute RankedVideoStreamPrioritiesList
+ */
+class ReadCameraAvStreamManagementRankedVideoStreamPrioritiesList : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementRankedVideoStreamPrioritiesList()
+        : ReadAttribute("ranked-video-stream-priorities-list")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementRankedVideoStreamPrioritiesList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::RankedVideoStreamPrioritiesList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeRankedVideoStreamPrioritiesListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.RankedVideoStreamPrioritiesList response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement RankedVideoStreamPrioritiesList read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class WriteCameraAvStreamManagementRankedVideoStreamPrioritiesList : public WriteAttribute {
+public:
+    WriteCameraAvStreamManagementRankedVideoStreamPrioritiesList()
+        : WriteAttribute("ranked-video-stream-priorities-list")
+        , mComplex(&mValue)
+    {
+        AddArgument("attr-name", "ranked-video-stream-priorities-list");
+        AddArgument("attr-value", &mComplex);
+        WriteAttribute::AddArguments();
+    }
+
+    ~WriteCameraAvStreamManagementRankedVideoStreamPrioritiesList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::RankedVideoStreamPrioritiesList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") WriteAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRWriteParams alloc] init];
+        params.timedWriteTimeout = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+        params.dataVersion = mDataVersion.HasValue() ? [NSNumber numberWithUnsignedInt:mDataVersion.Value()] : nil;
+        NSArray * _Nonnull value;
+        { // Scope for our temporary variables
+            auto * array_0 = [NSMutableArray new];
+            for (auto & entry_0 : mValue) {
+                NSNumber * newElement_0;
+                newElement_0 = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0)];
+                [array_0 addObject:newElement_0];
+            }
+            value = array_0;
+        }
+
+        [cluster writeAttributeRankedVideoStreamPrioritiesListWithValue:value params:params completion:^(NSError * _Nullable error) {
+            if (error != nil) {
+                LogNSError("CameraAVStreamManagement RankedVideoStreamPrioritiesList write Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    chip::app::DataModel::List<const chip::app::Clusters::CameraAvStreamManagement::StreamTypeEnum> mValue;
+    TypedComplexArgument<chip::app::DataModel::List<const chip::app::Clusters::CameraAvStreamManagement::StreamTypeEnum>> mComplex;
+};
+
+class SubscribeAttributeCameraAvStreamManagementRankedVideoStreamPrioritiesList : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementRankedVideoStreamPrioritiesList()
+        : SubscribeAttribute("ranked-video-stream-priorities-list")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementRankedVideoStreamPrioritiesList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::RankedVideoStreamPrioritiesList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeRankedVideoStreamPrioritiesListWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.RankedVideoStreamPrioritiesList response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute SoftRecordingPrivacyModeSetting
+ */
+class ReadCameraAvStreamManagementSoftRecordingPrivacyModeSetting : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementSoftRecordingPrivacyModeSetting()
+        : ReadAttribute("soft-recording-privacy-mode-setting")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementSoftRecordingPrivacyModeSetting()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::SoftRecordingPrivacyModeSetting::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeSoftRecordingPrivacyModeSettingWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.SoftRecordingPrivacyModeSetting response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement SoftRecordingPrivacyModeSetting read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class WriteCameraAvStreamManagementSoftRecordingPrivacyModeSetting : public WriteAttribute {
+public:
+    WriteCameraAvStreamManagementSoftRecordingPrivacyModeSetting()
+        : WriteAttribute("soft-recording-privacy-mode-setting")
+    {
+        AddArgument("attr-name", "soft-recording-privacy-mode-setting");
+        AddArgument("attr-value", 0, 1, &mValue);
+        WriteAttribute::AddArguments();
+    }
+
+    ~WriteCameraAvStreamManagementSoftRecordingPrivacyModeSetting()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::SoftRecordingPrivacyModeSetting::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") WriteAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRWriteParams alloc] init];
+        params.timedWriteTimeout = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+        params.dataVersion = mDataVersion.HasValue() ? [NSNumber numberWithUnsignedInt:mDataVersion.Value()] : nil;
+        NSNumber * _Nonnull value = [NSNumber numberWithBool:mValue];
+
+        [cluster writeAttributeSoftRecordingPrivacyModeSettingWithValue:value params:params completion:^(NSError * _Nullable error) {
+            if (error != nil) {
+                LogNSError("CameraAVStreamManagement SoftRecordingPrivacyModeSetting write Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    bool mValue;
+};
+
+class SubscribeAttributeCameraAvStreamManagementSoftRecordingPrivacyModeSetting : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementSoftRecordingPrivacyModeSetting()
+        : SubscribeAttribute("soft-recording-privacy-mode-setting")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementSoftRecordingPrivacyModeSetting()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::SoftRecordingPrivacyModeSetting::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeSoftRecordingPrivacyModeSettingWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.SoftRecordingPrivacyModeSetting response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute SoftLivestreamPrivacyModeSetting
+ */
+class ReadCameraAvStreamManagementSoftLivestreamPrivacyModeSetting : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementSoftLivestreamPrivacyModeSetting()
+        : ReadAttribute("soft-livestream-privacy-mode-setting")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementSoftLivestreamPrivacyModeSetting()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::SoftLivestreamPrivacyModeSetting::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeSoftLivestreamPrivacyModeSettingWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.SoftLivestreamPrivacyModeSetting response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement SoftLivestreamPrivacyModeSetting read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class WriteCameraAvStreamManagementSoftLivestreamPrivacyModeSetting : public WriteAttribute {
+public:
+    WriteCameraAvStreamManagementSoftLivestreamPrivacyModeSetting()
+        : WriteAttribute("soft-livestream-privacy-mode-setting")
+    {
+        AddArgument("attr-name", "soft-livestream-privacy-mode-setting");
+        AddArgument("attr-value", 0, 1, &mValue);
+        WriteAttribute::AddArguments();
+    }
+
+    ~WriteCameraAvStreamManagementSoftLivestreamPrivacyModeSetting()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::SoftLivestreamPrivacyModeSetting::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") WriteAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRWriteParams alloc] init];
+        params.timedWriteTimeout = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+        params.dataVersion = mDataVersion.HasValue() ? [NSNumber numberWithUnsignedInt:mDataVersion.Value()] : nil;
+        NSNumber * _Nonnull value = [NSNumber numberWithBool:mValue];
+
+        [cluster writeAttributeSoftLivestreamPrivacyModeSettingWithValue:value params:params completion:^(NSError * _Nullable error) {
+            if (error != nil) {
+                LogNSError("CameraAVStreamManagement SoftLivestreamPrivacyModeSetting write Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    bool mValue;
+};
+
+class SubscribeAttributeCameraAvStreamManagementSoftLivestreamPrivacyModeSetting : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementSoftLivestreamPrivacyModeSetting()
+        : SubscribeAttribute("soft-livestream-privacy-mode-setting")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementSoftLivestreamPrivacyModeSetting()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::SoftLivestreamPrivacyModeSetting::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeSoftLivestreamPrivacyModeSettingWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.SoftLivestreamPrivacyModeSetting response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute HardPrivacyMode
+ */
+class ReadCameraAvStreamManagementHardPrivacyMode : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementHardPrivacyMode()
+        : ReadAttribute("hard-privacy-mode")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementHardPrivacyMode()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::HardPrivacyMode::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeHardPrivacyModeWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.HardPrivacyMode response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement HardPrivacyMode read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvStreamManagementHardPrivacyMode : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementHardPrivacyMode()
+        : SubscribeAttribute("hard-privacy-mode")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementHardPrivacyMode()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::HardPrivacyMode::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeHardPrivacyModeWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.HardPrivacyMode response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute NightVision
+ */
+class ReadCameraAvStreamManagementNightVision : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementNightVision()
+        : ReadAttribute("night-vision")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementNightVision()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::NightVision::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeNightVisionWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.NightVision response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement NightVision read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class WriteCameraAvStreamManagementNightVision : public WriteAttribute {
+public:
+    WriteCameraAvStreamManagementNightVision()
+        : WriteAttribute("night-vision")
+    {
+        AddArgument("attr-name", "night-vision");
+        AddArgument("attr-value", 0, UINT8_MAX, &mValue);
+        WriteAttribute::AddArguments();
+    }
+
+    ~WriteCameraAvStreamManagementNightVision()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::NightVision::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") WriteAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRWriteParams alloc] init];
+        params.timedWriteTimeout = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+        params.dataVersion = mDataVersion.HasValue() ? [NSNumber numberWithUnsignedInt:mDataVersion.Value()] : nil;
+        NSNumber * _Nonnull value = [NSNumber numberWithUnsignedChar:mValue];
+
+        [cluster writeAttributeNightVisionWithValue:value params:params completion:^(NSError * _Nullable error) {
+            if (error != nil) {
+                LogNSError("CameraAVStreamManagement NightVision write Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    uint8_t mValue;
+};
+
+class SubscribeAttributeCameraAvStreamManagementNightVision : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementNightVision()
+        : SubscribeAttribute("night-vision")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementNightVision()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::NightVision::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeNightVisionWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.NightVision response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute NightVisionIllum
+ */
+class ReadCameraAvStreamManagementNightVisionIllum : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementNightVisionIllum()
+        : ReadAttribute("night-vision-illum")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementNightVisionIllum()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::NightVisionIllum::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeNightVisionIllumWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.NightVisionIllum response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement NightVisionIllum read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class WriteCameraAvStreamManagementNightVisionIllum : public WriteAttribute {
+public:
+    WriteCameraAvStreamManagementNightVisionIllum()
+        : WriteAttribute("night-vision-illum")
+    {
+        AddArgument("attr-name", "night-vision-illum");
+        AddArgument("attr-value", 0, UINT8_MAX, &mValue);
+        WriteAttribute::AddArguments();
+    }
+
+    ~WriteCameraAvStreamManagementNightVisionIllum()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::NightVisionIllum::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") WriteAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRWriteParams alloc] init];
+        params.timedWriteTimeout = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+        params.dataVersion = mDataVersion.HasValue() ? [NSNumber numberWithUnsignedInt:mDataVersion.Value()] : nil;
+        NSNumber * _Nonnull value = [NSNumber numberWithUnsignedChar:mValue];
+
+        [cluster writeAttributeNightVisionIllumWithValue:value params:params completion:^(NSError * _Nullable error) {
+            if (error != nil) {
+                LogNSError("CameraAVStreamManagement NightVisionIllum write Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    uint8_t mValue;
+};
+
+class SubscribeAttributeCameraAvStreamManagementNightVisionIllum : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementNightVisionIllum()
+        : SubscribeAttribute("night-vision-illum")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementNightVisionIllum()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::NightVisionIllum::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeNightVisionIllumWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.NightVisionIllum response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute Awb
+ */
+class ReadCameraAvStreamManagementAwb : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementAwb()
+        : ReadAttribute("awb")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementAwb()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::Awb::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeAWBWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.AWB response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement AWB read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class WriteCameraAvStreamManagementAwb : public WriteAttribute {
+public:
+    WriteCameraAvStreamManagementAwb()
+        : WriteAttribute("awb")
+    {
+        AddArgument("attr-name", "awb");
+        AddArgument("attr-value", 0, 1, &mValue);
+        WriteAttribute::AddArguments();
+    }
+
+    ~WriteCameraAvStreamManagementAwb()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::Awb::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") WriteAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRWriteParams alloc] init];
+        params.timedWriteTimeout = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+        params.dataVersion = mDataVersion.HasValue() ? [NSNumber numberWithUnsignedInt:mDataVersion.Value()] : nil;
+        NSNumber * _Nonnull value = [NSNumber numberWithBool:mValue];
+
+        [cluster writeAttributeAWBWithValue:value params:params completion:^(NSError * _Nullable error) {
+            if (error != nil) {
+                LogNSError("CameraAVStreamManagement AWB write Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    bool mValue;
+};
+
+class SubscribeAttributeCameraAvStreamManagementAwb : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementAwb()
+        : SubscribeAttribute("awb")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementAwb()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::Awb::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeAWBWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.AWB response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute ShutterSpeed
+ */
+class ReadCameraAvStreamManagementShutterSpeed : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementShutterSpeed()
+        : ReadAttribute("shutter-speed")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementShutterSpeed()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::ShutterSpeed::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeShutterSpeedWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.ShutterSpeed response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement ShutterSpeed read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class WriteCameraAvStreamManagementShutterSpeed : public WriteAttribute {
+public:
+    WriteCameraAvStreamManagementShutterSpeed()
+        : WriteAttribute("shutter-speed")
+    {
+        AddArgument("attr-name", "shutter-speed");
+        AddArgument("attr-value", 0, 1, &mValue);
+        WriteAttribute::AddArguments();
+    }
+
+    ~WriteCameraAvStreamManagementShutterSpeed()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::ShutterSpeed::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") WriteAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRWriteParams alloc] init];
+        params.timedWriteTimeout = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+        params.dataVersion = mDataVersion.HasValue() ? [NSNumber numberWithUnsignedInt:mDataVersion.Value()] : nil;
+        NSNumber * _Nonnull value = [NSNumber numberWithBool:mValue];
+
+        [cluster writeAttributeShutterSpeedWithValue:value params:params completion:^(NSError * _Nullable error) {
+            if (error != nil) {
+                LogNSError("CameraAVStreamManagement ShutterSpeed write Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    bool mValue;
+};
+
+class SubscribeAttributeCameraAvStreamManagementShutterSpeed : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementShutterSpeed()
+        : SubscribeAttribute("shutter-speed")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementShutterSpeed()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::ShutterSpeed::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeShutterSpeedWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.ShutterSpeed response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute Iso
+ */
+class ReadCameraAvStreamManagementIso : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementIso()
+        : ReadAttribute("iso")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementIso()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::Iso::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeISOWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.ISO response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement ISO read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class WriteCameraAvStreamManagementIso : public WriteAttribute {
+public:
+    WriteCameraAvStreamManagementIso()
+        : WriteAttribute("iso")
+    {
+        AddArgument("attr-name", "iso");
+        AddArgument("attr-value", 0, 1, &mValue);
+        WriteAttribute::AddArguments();
+    }
+
+    ~WriteCameraAvStreamManagementIso()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::Iso::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") WriteAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRWriteParams alloc] init];
+        params.timedWriteTimeout = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+        params.dataVersion = mDataVersion.HasValue() ? [NSNumber numberWithUnsignedInt:mDataVersion.Value()] : nil;
+        NSNumber * _Nonnull value = [NSNumber numberWithBool:mValue];
+
+        [cluster writeAttributeISOWithValue:value params:params completion:^(NSError * _Nullable error) {
+            if (error != nil) {
+                LogNSError("CameraAVStreamManagement ISO write Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    bool mValue;
+};
+
+class SubscribeAttributeCameraAvStreamManagementIso : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementIso()
+        : SubscribeAttribute("iso")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementIso()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::Iso::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeISOWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.ISO response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute Viewport
+ */
+class ReadCameraAvStreamManagementViewport : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementViewport()
+        : ReadAttribute("viewport")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementViewport()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::Viewport::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeViewportWithCompletion:^(MTRCameraAVStreamManagementClusterViewportStruct * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.Viewport response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement Viewport read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvStreamManagementViewport : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementViewport()
+        : SubscribeAttribute("viewport")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementViewport()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::Viewport::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeViewportWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(MTRCameraAVStreamManagementClusterViewportStruct * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.Viewport response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute SpkrOnOff
+ */
+class ReadCameraAvStreamManagementSpkrOnOff : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementSpkrOnOff()
+        : ReadAttribute("spkr-on-off")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementSpkrOnOff()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::SpkrOnOff::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeSpkrOnOffWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.SpkrOnOff response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement SpkrOnOff read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class WriteCameraAvStreamManagementSpkrOnOff : public WriteAttribute {
+public:
+    WriteCameraAvStreamManagementSpkrOnOff()
+        : WriteAttribute("spkr-on-off")
+    {
+        AddArgument("attr-name", "spkr-on-off");
+        AddArgument("attr-value", 0, 1, &mValue);
+        WriteAttribute::AddArguments();
+    }
+
+    ~WriteCameraAvStreamManagementSpkrOnOff()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::SpkrOnOff::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") WriteAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRWriteParams alloc] init];
+        params.timedWriteTimeout = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+        params.dataVersion = mDataVersion.HasValue() ? [NSNumber numberWithUnsignedInt:mDataVersion.Value()] : nil;
+        NSNumber * _Nonnull value = [NSNumber numberWithBool:mValue];
+
+        [cluster writeAttributeSpkrOnOffWithValue:value params:params completion:^(NSError * _Nullable error) {
+            if (error != nil) {
+                LogNSError("CameraAVStreamManagement SpkrOnOff write Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    bool mValue;
+};
+
+class SubscribeAttributeCameraAvStreamManagementSpkrOnOff : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementSpkrOnOff()
+        : SubscribeAttribute("spkr-on-off")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementSpkrOnOff()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::SpkrOnOff::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeSpkrOnOffWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.SpkrOnOff response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute SpkrVolumeLevel
+ */
+class ReadCameraAvStreamManagementSpkrVolumeLevel : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementSpkrVolumeLevel()
+        : ReadAttribute("spkr-volume-level")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementSpkrVolumeLevel()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::SpkrVolumeLevel::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeSpkrVolumeLevelWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.SpkrVolumeLevel response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement SpkrVolumeLevel read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class WriteCameraAvStreamManagementSpkrVolumeLevel : public WriteAttribute {
+public:
+    WriteCameraAvStreamManagementSpkrVolumeLevel()
+        : WriteAttribute("spkr-volume-level")
+    {
+        AddArgument("attr-name", "spkr-volume-level");
+        AddArgument("attr-value", 0, UINT8_MAX, &mValue);
+        WriteAttribute::AddArguments();
+    }
+
+    ~WriteCameraAvStreamManagementSpkrVolumeLevel()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::SpkrVolumeLevel::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") WriteAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRWriteParams alloc] init];
+        params.timedWriteTimeout = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+        params.dataVersion = mDataVersion.HasValue() ? [NSNumber numberWithUnsignedInt:mDataVersion.Value()] : nil;
+        NSNumber * _Nonnull value = [NSNumber numberWithUnsignedChar:mValue];
+
+        [cluster writeAttributeSpkrVolumeLevelWithValue:value params:params completion:^(NSError * _Nullable error) {
+            if (error != nil) {
+                LogNSError("CameraAVStreamManagement SpkrVolumeLevel write Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    uint8_t mValue;
+};
+
+class SubscribeAttributeCameraAvStreamManagementSpkrVolumeLevel : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementSpkrVolumeLevel()
+        : SubscribeAttribute("spkr-volume-level")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementSpkrVolumeLevel()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::SpkrVolumeLevel::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeSpkrVolumeLevelWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.SpkrVolumeLevel response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute SpkrMaxLevel
+ */
+class ReadCameraAvStreamManagementSpkrMaxLevel : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementSpkrMaxLevel()
+        : ReadAttribute("spkr-max-level")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementSpkrMaxLevel()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::SpkrMaxLevel::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeSpkrMaxLevelWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.SpkrMaxLevel response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement SpkrMaxLevel read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class WriteCameraAvStreamManagementSpkrMaxLevel : public WriteAttribute {
+public:
+    WriteCameraAvStreamManagementSpkrMaxLevel()
+        : WriteAttribute("spkr-max-level")
+    {
+        AddArgument("attr-name", "spkr-max-level");
+        AddArgument("attr-value", 0, UINT8_MAX, &mValue);
+        WriteAttribute::AddArguments();
+    }
+
+    ~WriteCameraAvStreamManagementSpkrMaxLevel()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::SpkrMaxLevel::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") WriteAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRWriteParams alloc] init];
+        params.timedWriteTimeout = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+        params.dataVersion = mDataVersion.HasValue() ? [NSNumber numberWithUnsignedInt:mDataVersion.Value()] : nil;
+        NSNumber * _Nonnull value = [NSNumber numberWithUnsignedChar:mValue];
+
+        [cluster writeAttributeSpkrMaxLevelWithValue:value params:params completion:^(NSError * _Nullable error) {
+            if (error != nil) {
+                LogNSError("CameraAVStreamManagement SpkrMaxLevel write Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    uint8_t mValue;
+};
+
+class SubscribeAttributeCameraAvStreamManagementSpkrMaxLevel : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementSpkrMaxLevel()
+        : SubscribeAttribute("spkr-max-level")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementSpkrMaxLevel()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::SpkrMaxLevel::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeSpkrMaxLevelWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.SpkrMaxLevel response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute SpkrMinLevel
+ */
+class ReadCameraAvStreamManagementSpkrMinLevel : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementSpkrMinLevel()
+        : ReadAttribute("spkr-min-level")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementSpkrMinLevel()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::SpkrMinLevel::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeSpkrMinLevelWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.SpkrMinLevel response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement SpkrMinLevel read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class WriteCameraAvStreamManagementSpkrMinLevel : public WriteAttribute {
+public:
+    WriteCameraAvStreamManagementSpkrMinLevel()
+        : WriteAttribute("spkr-min-level")
+    {
+        AddArgument("attr-name", "spkr-min-level");
+        AddArgument("attr-value", 0, UINT8_MAX, &mValue);
+        WriteAttribute::AddArguments();
+    }
+
+    ~WriteCameraAvStreamManagementSpkrMinLevel()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::SpkrMinLevel::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") WriteAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRWriteParams alloc] init];
+        params.timedWriteTimeout = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+        params.dataVersion = mDataVersion.HasValue() ? [NSNumber numberWithUnsignedInt:mDataVersion.Value()] : nil;
+        NSNumber * _Nonnull value = [NSNumber numberWithUnsignedChar:mValue];
+
+        [cluster writeAttributeSpkrMinLevelWithValue:value params:params completion:^(NSError * _Nullable error) {
+            if (error != nil) {
+                LogNSError("CameraAVStreamManagement SpkrMinLevel write Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    uint8_t mValue;
+};
+
+class SubscribeAttributeCameraAvStreamManagementSpkrMinLevel : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementSpkrMinLevel()
+        : SubscribeAttribute("spkr-min-level")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementSpkrMinLevel()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::SpkrMinLevel::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeSpkrMinLevelWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.SpkrMinLevel response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute MicOnOff
+ */
+class ReadCameraAvStreamManagementMicOnOff : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementMicOnOff()
+        : ReadAttribute("mic-on-off")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementMicOnOff()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::MicOnOff::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeMicOnOffWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.MicOnOff response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement MicOnOff read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class WriteCameraAvStreamManagementMicOnOff : public WriteAttribute {
+public:
+    WriteCameraAvStreamManagementMicOnOff()
+        : WriteAttribute("mic-on-off")
+    {
+        AddArgument("attr-name", "mic-on-off");
+        AddArgument("attr-value", 0, 1, &mValue);
+        WriteAttribute::AddArguments();
+    }
+
+    ~WriteCameraAvStreamManagementMicOnOff()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::MicOnOff::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") WriteAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRWriteParams alloc] init];
+        params.timedWriteTimeout = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+        params.dataVersion = mDataVersion.HasValue() ? [NSNumber numberWithUnsignedInt:mDataVersion.Value()] : nil;
+        NSNumber * _Nonnull value = [NSNumber numberWithBool:mValue];
+
+        [cluster writeAttributeMicOnOffWithValue:value params:params completion:^(NSError * _Nullable error) {
+            if (error != nil) {
+                LogNSError("CameraAVStreamManagement MicOnOff write Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    bool mValue;
+};
+
+class SubscribeAttributeCameraAvStreamManagementMicOnOff : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementMicOnOff()
+        : SubscribeAttribute("mic-on-off")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementMicOnOff()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::MicOnOff::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeMicOnOffWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.MicOnOff response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute MicCurrentLevel
+ */
+class ReadCameraAvStreamManagementMicCurrentLevel : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementMicCurrentLevel()
+        : ReadAttribute("mic-current-level")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementMicCurrentLevel()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::MicCurrentLevel::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeMicCurrentLevelWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.MicCurrentLevel response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement MicCurrentLevel read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class WriteCameraAvStreamManagementMicCurrentLevel : public WriteAttribute {
+public:
+    WriteCameraAvStreamManagementMicCurrentLevel()
+        : WriteAttribute("mic-current-level")
+    {
+        AddArgument("attr-name", "mic-current-level");
+        AddArgument("attr-value", 0, UINT8_MAX, &mValue);
+        WriteAttribute::AddArguments();
+    }
+
+    ~WriteCameraAvStreamManagementMicCurrentLevel()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::MicCurrentLevel::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") WriteAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRWriteParams alloc] init];
+        params.timedWriteTimeout = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+        params.dataVersion = mDataVersion.HasValue() ? [NSNumber numberWithUnsignedInt:mDataVersion.Value()] : nil;
+        NSNumber * _Nonnull value = [NSNumber numberWithUnsignedChar:mValue];
+
+        [cluster writeAttributeMicCurrentLevelWithValue:value params:params completion:^(NSError * _Nullable error) {
+            if (error != nil) {
+                LogNSError("CameraAVStreamManagement MicCurrentLevel write Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    uint8_t mValue;
+};
+
+class SubscribeAttributeCameraAvStreamManagementMicCurrentLevel : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementMicCurrentLevel()
+        : SubscribeAttribute("mic-current-level")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementMicCurrentLevel()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::MicCurrentLevel::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeMicCurrentLevelWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.MicCurrentLevel response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute MicMaxLevel
+ */
+class ReadCameraAvStreamManagementMicMaxLevel : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementMicMaxLevel()
+        : ReadAttribute("mic-max-level")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementMicMaxLevel()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::MicMaxLevel::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeMicMaxLevelWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.MicMaxLevel response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement MicMaxLevel read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class WriteCameraAvStreamManagementMicMaxLevel : public WriteAttribute {
+public:
+    WriteCameraAvStreamManagementMicMaxLevel()
+        : WriteAttribute("mic-max-level")
+    {
+        AddArgument("attr-name", "mic-max-level");
+        AddArgument("attr-value", 0, UINT8_MAX, &mValue);
+        WriteAttribute::AddArguments();
+    }
+
+    ~WriteCameraAvStreamManagementMicMaxLevel()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::MicMaxLevel::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") WriteAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRWriteParams alloc] init];
+        params.timedWriteTimeout = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+        params.dataVersion = mDataVersion.HasValue() ? [NSNumber numberWithUnsignedInt:mDataVersion.Value()] : nil;
+        NSNumber * _Nonnull value = [NSNumber numberWithUnsignedChar:mValue];
+
+        [cluster writeAttributeMicMaxLevelWithValue:value params:params completion:^(NSError * _Nullable error) {
+            if (error != nil) {
+                LogNSError("CameraAVStreamManagement MicMaxLevel write Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    uint8_t mValue;
+};
+
+class SubscribeAttributeCameraAvStreamManagementMicMaxLevel : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementMicMaxLevel()
+        : SubscribeAttribute("mic-max-level")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementMicMaxLevel()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::MicMaxLevel::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeMicMaxLevelWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.MicMaxLevel response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute MicMinLevel
+ */
+class ReadCameraAvStreamManagementMicMinLevel : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementMicMinLevel()
+        : ReadAttribute("mic-min-level")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementMicMinLevel()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::MicMinLevel::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeMicMinLevelWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.MicMinLevel response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement MicMinLevel read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class WriteCameraAvStreamManagementMicMinLevel : public WriteAttribute {
+public:
+    WriteCameraAvStreamManagementMicMinLevel()
+        : WriteAttribute("mic-min-level")
+    {
+        AddArgument("attr-name", "mic-min-level");
+        AddArgument("attr-value", 0, UINT8_MAX, &mValue);
+        WriteAttribute::AddArguments();
+    }
+
+    ~WriteCameraAvStreamManagementMicMinLevel()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::MicMinLevel::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") WriteAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRWriteParams alloc] init];
+        params.timedWriteTimeout = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+        params.dataVersion = mDataVersion.HasValue() ? [NSNumber numberWithUnsignedInt:mDataVersion.Value()] : nil;
+        NSNumber * _Nonnull value = [NSNumber numberWithUnsignedChar:mValue];
+
+        [cluster writeAttributeMicMinLevelWithValue:value params:params completion:^(NSError * _Nullable error) {
+            if (error != nil) {
+                LogNSError("CameraAVStreamManagement MicMinLevel write Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    uint8_t mValue;
+};
+
+class SubscribeAttributeCameraAvStreamManagementMicMinLevel : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementMicMinLevel()
+        : SubscribeAttribute("mic-min-level")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementMicMinLevel()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::MicMinLevel::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeMicMinLevelWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.MicMinLevel response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute MicAGC
+ */
+class ReadCameraAvStreamManagementMicAGC : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementMicAGC()
+        : ReadAttribute("mic-agc")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementMicAGC()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::MicAGC::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeMicAGCWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.MicAGC response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement MicAGC read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class WriteCameraAvStreamManagementMicAGC : public WriteAttribute {
+public:
+    WriteCameraAvStreamManagementMicAGC()
+        : WriteAttribute("mic-agc")
+    {
+        AddArgument("attr-name", "mic-agc");
+        AddArgument("attr-value", 0, 1, &mValue);
+        WriteAttribute::AddArguments();
+    }
+
+    ~WriteCameraAvStreamManagementMicAGC()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::MicAGC::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") WriteAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRWriteParams alloc] init];
+        params.timedWriteTimeout = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+        params.dataVersion = mDataVersion.HasValue() ? [NSNumber numberWithUnsignedInt:mDataVersion.Value()] : nil;
+        NSNumber * _Nonnull value = [NSNumber numberWithBool:mValue];
+
+        [cluster writeAttributeMicAGCWithValue:value params:params completion:^(NSError * _Nullable error) {
+            if (error != nil) {
+                LogNSError("CameraAVStreamManagement MicAGC write Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    bool mValue;
+};
+
+class SubscribeAttributeCameraAvStreamManagementMicAGC : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementMicAGC()
+        : SubscribeAttribute("mic-agc")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementMicAGC()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::MicAGC::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeMicAGCWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.MicAGC response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute ImageRotation
+ */
+class ReadCameraAvStreamManagementImageRotation : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementImageRotation()
+        : ReadAttribute("image-rotation")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementImageRotation()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::ImageRotation::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeImageRotationWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.ImageRotation response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement ImageRotation read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvStreamManagementImageRotation : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementImageRotation()
+        : SubscribeAttribute("image-rotation")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementImageRotation()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::ImageRotation::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeImageRotationWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.ImageRotation response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute ImageFlipHorizontal
+ */
+class ReadCameraAvStreamManagementImageFlipHorizontal : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementImageFlipHorizontal()
+        : ReadAttribute("image-flip-horizontal")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementImageFlipHorizontal()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::ImageFlipHorizontal::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeImageFlipHorizontalWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.ImageFlipHorizontal response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement ImageFlipHorizontal read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvStreamManagementImageFlipHorizontal : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementImageFlipHorizontal()
+        : SubscribeAttribute("image-flip-horizontal")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementImageFlipHorizontal()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::ImageFlipHorizontal::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeImageFlipHorizontalWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.ImageFlipHorizontal response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute ImageFlipVertical
+ */
+class ReadCameraAvStreamManagementImageFlipVertical : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementImageFlipVertical()
+        : ReadAttribute("image-flip-vertical")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementImageFlipVertical()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::ImageFlipVertical::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeImageFlipVerticalWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.ImageFlipVertical response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement ImageFlipVertical read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvStreamManagementImageFlipVertical : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementImageFlipVertical()
+        : SubscribeAttribute("image-flip-vertical")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementImageFlipVertical()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::ImageFlipVertical::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeImageFlipVerticalWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.ImageFlipVertical response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute LocalVideoRecordingEnabled
+ */
+class ReadCameraAvStreamManagementLocalVideoRecordingEnabled : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementLocalVideoRecordingEnabled()
+        : ReadAttribute("local-video-recording-enabled")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementLocalVideoRecordingEnabled()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::LocalVideoRecordingEnabled::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeLocalVideoRecordingEnabledWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.LocalVideoRecordingEnabled response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement LocalVideoRecordingEnabled read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class WriteCameraAvStreamManagementLocalVideoRecordingEnabled : public WriteAttribute {
+public:
+    WriteCameraAvStreamManagementLocalVideoRecordingEnabled()
+        : WriteAttribute("local-video-recording-enabled")
+    {
+        AddArgument("attr-name", "local-video-recording-enabled");
+        AddArgument("attr-value", 0, 1, &mValue);
+        WriteAttribute::AddArguments();
+    }
+
+    ~WriteCameraAvStreamManagementLocalVideoRecordingEnabled()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::LocalVideoRecordingEnabled::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") WriteAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRWriteParams alloc] init];
+        params.timedWriteTimeout = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+        params.dataVersion = mDataVersion.HasValue() ? [NSNumber numberWithUnsignedInt:mDataVersion.Value()] : nil;
+        NSNumber * _Nonnull value = [NSNumber numberWithBool:mValue];
+
+        [cluster writeAttributeLocalVideoRecordingEnabledWithValue:value params:params completion:^(NSError * _Nullable error) {
+            if (error != nil) {
+                LogNSError("CameraAVStreamManagement LocalVideoRecordingEnabled write Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    bool mValue;
+};
+
+class SubscribeAttributeCameraAvStreamManagementLocalVideoRecordingEnabled : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementLocalVideoRecordingEnabled()
+        : SubscribeAttribute("local-video-recording-enabled")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementLocalVideoRecordingEnabled()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::LocalVideoRecordingEnabled::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeLocalVideoRecordingEnabledWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.LocalVideoRecordingEnabled response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute LocalSnapshotRecordingEnabled
+ */
+class ReadCameraAvStreamManagementLocalSnapshotRecordingEnabled : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementLocalSnapshotRecordingEnabled()
+        : ReadAttribute("local-snapshot-recording-enabled")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementLocalSnapshotRecordingEnabled()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::LocalSnapshotRecordingEnabled::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeLocalSnapshotRecordingEnabledWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.LocalSnapshotRecordingEnabled response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement LocalSnapshotRecordingEnabled read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class WriteCameraAvStreamManagementLocalSnapshotRecordingEnabled : public WriteAttribute {
+public:
+    WriteCameraAvStreamManagementLocalSnapshotRecordingEnabled()
+        : WriteAttribute("local-snapshot-recording-enabled")
+    {
+        AddArgument("attr-name", "local-snapshot-recording-enabled");
+        AddArgument("attr-value", 0, 1, &mValue);
+        WriteAttribute::AddArguments();
+    }
+
+    ~WriteCameraAvStreamManagementLocalSnapshotRecordingEnabled()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::LocalSnapshotRecordingEnabled::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") WriteAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRWriteParams alloc] init];
+        params.timedWriteTimeout = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+        params.dataVersion = mDataVersion.HasValue() ? [NSNumber numberWithUnsignedInt:mDataVersion.Value()] : nil;
+        NSNumber * _Nonnull value = [NSNumber numberWithBool:mValue];
+
+        [cluster writeAttributeLocalSnapshotRecordingEnabledWithValue:value params:params completion:^(NSError * _Nullable error) {
+            if (error != nil) {
+                LogNSError("CameraAVStreamManagement LocalSnapshotRecordingEnabled write Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    bool mValue;
+};
+
+class SubscribeAttributeCameraAvStreamManagementLocalSnapshotRecordingEnabled : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementLocalSnapshotRecordingEnabled()
+        : SubscribeAttribute("local-snapshot-recording-enabled")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementLocalSnapshotRecordingEnabled()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::LocalSnapshotRecordingEnabled::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeLocalSnapshotRecordingEnabledWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.LocalSnapshotRecordingEnabled response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute StatusLight
+ */
+class ReadCameraAvStreamManagementStatusLight : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementStatusLight()
+        : ReadAttribute("status-light")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementStatusLight()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::StatusLight::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeStatusLightWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.StatusLight response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement StatusLight read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class WriteCameraAvStreamManagementStatusLight : public WriteAttribute {
+public:
+    WriteCameraAvStreamManagementStatusLight()
+        : WriteAttribute("status-light")
+    {
+        AddArgument("attr-name", "status-light");
+        AddArgument("attr-value", 0, 1, &mValue);
+        WriteAttribute::AddArguments();
+    }
+
+    ~WriteCameraAvStreamManagementStatusLight()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::StatusLight::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") WriteAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRWriteParams alloc] init];
+        params.timedWriteTimeout = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+        params.dataVersion = mDataVersion.HasValue() ? [NSNumber numberWithUnsignedInt:mDataVersion.Value()] : nil;
+        NSNumber * _Nonnull value = [NSNumber numberWithBool:mValue];
+
+        [cluster writeAttributeStatusLightWithValue:value params:params completion:^(NSError * _Nullable error) {
+            if (error != nil) {
+                LogNSError("CameraAVStreamManagement StatusLight write Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    bool mValue;
+};
+
+class SubscribeAttributeCameraAvStreamManagementStatusLight : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementStatusLight()
+        : SubscribeAttribute("status-light")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementStatusLight()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::StatusLight::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeStatusLightWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.StatusLight response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute StatusLightBrightness
+ */
+class ReadCameraAvStreamManagementStatusLightBrightness : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementStatusLightBrightness()
+        : ReadAttribute("status-light-brightness")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementStatusLightBrightness()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::StatusLightBrightness::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeStatusLightBrightnessWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.StatusLightBrightness response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement StatusLightBrightness read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class WriteCameraAvStreamManagementStatusLightBrightness : public WriteAttribute {
+public:
+    WriteCameraAvStreamManagementStatusLightBrightness()
+        : WriteAttribute("status-light-brightness")
+    {
+        AddArgument("attr-name", "status-light-brightness");
+        AddArgument("attr-value", 0, UINT8_MAX, &mValue);
+        WriteAttribute::AddArguments();
+    }
+
+    ~WriteCameraAvStreamManagementStatusLightBrightness()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::StatusLightBrightness::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") WriteAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRWriteParams alloc] init];
+        params.timedWriteTimeout = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+        params.dataVersion = mDataVersion.HasValue() ? [NSNumber numberWithUnsignedInt:mDataVersion.Value()] : nil;
+        NSNumber * _Nonnull value = [NSNumber numberWithUnsignedChar:mValue];
+
+        [cluster writeAttributeStatusLightBrightnessWithValue:value params:params completion:^(NSError * _Nullable error) {
+            if (error != nil) {
+                LogNSError("CameraAVStreamManagement StatusLightBrightness write Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    uint8_t mValue;
+};
+
+class SubscribeAttributeCameraAvStreamManagementStatusLightBrightness : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementStatusLightBrightness()
+        : SubscribeAttribute("status-light-brightness")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementStatusLightBrightness()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::StatusLightBrightness::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeStatusLightBrightnessWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.StatusLightBrightness response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute DepthSensorStatus
+ */
+class ReadCameraAvStreamManagementDepthSensorStatus : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementDepthSensorStatus()
+        : ReadAttribute("depth-sensor-status")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementDepthSensorStatus()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::DepthSensorStatus::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeDepthSensorStatusWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.DepthSensorStatus response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement DepthSensorStatus read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class WriteCameraAvStreamManagementDepthSensorStatus : public WriteAttribute {
+public:
+    WriteCameraAvStreamManagementDepthSensorStatus()
+        : WriteAttribute("depth-sensor-status")
+    {
+        AddArgument("attr-name", "depth-sensor-status");
+        AddArgument("attr-value", 0, UINT8_MAX, &mValue);
+        WriteAttribute::AddArguments();
+    }
+
+    ~WriteCameraAvStreamManagementDepthSensorStatus()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::DepthSensorStatus::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") WriteAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRWriteParams alloc] init];
+        params.timedWriteTimeout = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+        params.dataVersion = mDataVersion.HasValue() ? [NSNumber numberWithUnsignedInt:mDataVersion.Value()] : nil;
+        NSNumber * _Nonnull value = [NSNumber numberWithUnsignedChar:mValue];
+
+        [cluster writeAttributeDepthSensorStatusWithValue:value params:params completion:^(NSError * _Nullable error) {
+            if (error != nil) {
+                LogNSError("CameraAVStreamManagement DepthSensorStatus write Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    uint8_t mValue;
+};
+
+class SubscribeAttributeCameraAvStreamManagementDepthSensorStatus : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementDepthSensorStatus()
+        : SubscribeAttribute("depth-sensor-status")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementDepthSensorStatus()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::DepthSensorStatus::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeDepthSensorStatusWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.DepthSensorStatus response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute WatermarkEnabled
+ */
+class ReadCameraAvStreamManagementWatermarkEnabled : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementWatermarkEnabled()
+        : ReadAttribute("watermark-enabled")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementWatermarkEnabled()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::WatermarkEnabled::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeWatermarkEnabledWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.WatermarkEnabled response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement WatermarkEnabled read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class WriteCameraAvStreamManagementWatermarkEnabled : public WriteAttribute {
+public:
+    WriteCameraAvStreamManagementWatermarkEnabled()
+        : WriteAttribute("watermark-enabled")
+        , mComplex(&mValue)
+    {
+        AddArgument("attr-name", "watermark-enabled");
+        AddArgument("attr-value", &mComplex);
+        WriteAttribute::AddArguments();
+    }
+
+    ~WriteCameraAvStreamManagementWatermarkEnabled()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::WatermarkEnabled::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") WriteAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRWriteParams alloc] init];
+        params.timedWriteTimeout = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+        params.dataVersion = mDataVersion.HasValue() ? [NSNumber numberWithUnsignedInt:mDataVersion.Value()] : nil;
+        NSArray * _Nonnull value;
+        { // Scope for our temporary variables
+            auto * array_0 = [NSMutableArray new];
+            for (auto & entry_0 : mValue) {
+                MTRCameraAVStreamManagementClusterPerStreamStruct * newElement_0;
+                newElement_0 = [MTRCameraAVStreamManagementClusterPerStreamStruct new];
+                newElement_0.streamID = [NSNumber numberWithUnsignedShort:entry_0.streamID];
+                newElement_0.onOff = [NSNumber numberWithBool:entry_0.onOff];
+                [array_0 addObject:newElement_0];
+            }
+            value = array_0;
+        }
+
+        [cluster writeAttributeWatermarkEnabledWithValue:value params:params completion:^(NSError * _Nullable error) {
+            if (error != nil) {
+                LogNSError("CameraAVStreamManagement WatermarkEnabled write Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    chip::app::DataModel::List<const chip::app::Clusters::CameraAvStreamManagement::Structs::PerStreamStruct::Type> mValue;
+    TypedComplexArgument<chip::app::DataModel::List<const chip::app::Clusters::CameraAvStreamManagement::Structs::PerStreamStruct::Type>> mComplex;
+};
+
+class SubscribeAttributeCameraAvStreamManagementWatermarkEnabled : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementWatermarkEnabled()
+        : SubscribeAttribute("watermark-enabled")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementWatermarkEnabled()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::WatermarkEnabled::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeWatermarkEnabledWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.WatermarkEnabled response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute OSDEnabled
+ */
+class ReadCameraAvStreamManagementOSDEnabled : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementOSDEnabled()
+        : ReadAttribute("osdenabled")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementOSDEnabled()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::OSDEnabled::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeOSDEnabledWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.OSDEnabled response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement OSDEnabled read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class WriteCameraAvStreamManagementOSDEnabled : public WriteAttribute {
+public:
+    WriteCameraAvStreamManagementOSDEnabled()
+        : WriteAttribute("osdenabled")
+        , mComplex(&mValue)
+    {
+        AddArgument("attr-name", "osdenabled");
+        AddArgument("attr-value", &mComplex);
+        WriteAttribute::AddArguments();
+    }
+
+    ~WriteCameraAvStreamManagementOSDEnabled()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::OSDEnabled::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") WriteAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRWriteParams alloc] init];
+        params.timedWriteTimeout = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+        params.dataVersion = mDataVersion.HasValue() ? [NSNumber numberWithUnsignedInt:mDataVersion.Value()] : nil;
+        NSArray * _Nonnull value;
+        { // Scope for our temporary variables
+            auto * array_0 = [NSMutableArray new];
+            for (auto & entry_0 : mValue) {
+                MTRCameraAVStreamManagementClusterPerStreamStruct * newElement_0;
+                newElement_0 = [MTRCameraAVStreamManagementClusterPerStreamStruct new];
+                newElement_0.streamID = [NSNumber numberWithUnsignedShort:entry_0.streamID];
+                newElement_0.onOff = [NSNumber numberWithBool:entry_0.onOff];
+                [array_0 addObject:newElement_0];
+            }
+            value = array_0;
+        }
+
+        [cluster writeAttributeOSDEnabledWithValue:value params:params completion:^(NSError * _Nullable error) {
+            if (error != nil) {
+                LogNSError("CameraAVStreamManagement OSDEnabled write Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    chip::app::DataModel::List<const chip::app::Clusters::CameraAvStreamManagement::Structs::PerStreamStruct::Type> mValue;
+    TypedComplexArgument<chip::app::DataModel::List<const chip::app::Clusters::CameraAvStreamManagement::Structs::PerStreamStruct::Type>> mComplex;
+};
+
+class SubscribeAttributeCameraAvStreamManagementOSDEnabled : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementOSDEnabled()
+        : SubscribeAttribute("osdenabled")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementOSDEnabled()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::OSDEnabled::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeOSDEnabledWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.OSDEnabled response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute GeneratedCommandList
+ */
+class ReadCameraAvStreamManagementGeneratedCommandList : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementGeneratedCommandList()
+        : ReadAttribute("generated-command-list")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementGeneratedCommandList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::GeneratedCommandList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeGeneratedCommandListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.GeneratedCommandList response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement GeneratedCommandList read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvStreamManagementGeneratedCommandList : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementGeneratedCommandList()
+        : SubscribeAttribute("generated-command-list")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementGeneratedCommandList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::GeneratedCommandList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeGeneratedCommandListWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.GeneratedCommandList response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute AcceptedCommandList
+ */
+class ReadCameraAvStreamManagementAcceptedCommandList : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementAcceptedCommandList()
+        : ReadAttribute("accepted-command-list")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementAcceptedCommandList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::AcceptedCommandList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeAcceptedCommandListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.AcceptedCommandList response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement AcceptedCommandList read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvStreamManagementAcceptedCommandList : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementAcceptedCommandList()
+        : SubscribeAttribute("accepted-command-list")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementAcceptedCommandList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::AcceptedCommandList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeAcceptedCommandListWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.AcceptedCommandList response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute EventList
+ */
+class ReadCameraAvStreamManagementEventList : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementEventList()
+        : ReadAttribute("event-list")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementEventList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::EventList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeEventListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.EventList response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement EventList read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvStreamManagementEventList : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementEventList()
+        : SubscribeAttribute("event-list")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementEventList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::EventList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeEventListWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.EventList response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute AttributeList
+ */
+class ReadCameraAvStreamManagementAttributeList : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementAttributeList()
+        : ReadAttribute("attribute-list")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementAttributeList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::AttributeList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.AttributeList response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement AttributeList read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvStreamManagementAttributeList : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementAttributeList()
+        : SubscribeAttribute("attribute-list")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementAttributeList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::AttributeList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeAttributeListWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.AttributeList response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute FeatureMap
+ */
+class ReadCameraAvStreamManagementFeatureMap : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementFeatureMap()
+        : ReadAttribute("feature-map")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementFeatureMap()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::FeatureMap::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeFeatureMapWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.FeatureMap response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement FeatureMap read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvStreamManagementFeatureMap : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementFeatureMap()
+        : SubscribeAttribute("feature-map")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementFeatureMap()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::FeatureMap::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeFeatureMapWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.FeatureMap response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute ClusterRevision
+ */
+class ReadCameraAvStreamManagementClusterRevision : public ReadAttribute {
+public:
+    ReadCameraAvStreamManagementClusterRevision()
+        : ReadAttribute("cluster-revision")
+    {
+    }
+
+    ~ReadCameraAvStreamManagementClusterRevision()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::ClusterRevision::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeClusterRevisionWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVStreamManagement.ClusterRevision response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVStreamManagement ClusterRevision read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvStreamManagementClusterRevision : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvStreamManagementClusterRevision()
+        : SubscribeAttribute("cluster-revision")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvStreamManagementClusterRevision()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvStreamManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvStreamManagement::Attributes::ClusterRevision::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVStreamManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeClusterRevisionWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVStreamManagement.ClusterRevision response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+/*----------------------------------------------------------------------------*\
+| Cluster CameraAvSettingsUserLevelManagement                         | 0x0552 |
+|------------------------------------------------------------------------------|
+| Commands:                                                           |        |
+| * MptzSet                                                           |   0x00 |
+| * MptzRelativeMove                                                  |   0x01 |
+| * SetAsPreset                                                       |   0x02 |
+| * DptzSetViewport                                                   |   0x03 |
+| * DptzRelativeMove                                                  |   0x04 |
+|------------------------------------------------------------------------------|
+| Attributes:                                                         |        |
+| * Mptz                                                              | 0x0000 |
+| * MaxPresets                                                        | 0x0001 |
+| * PresetMptzTable                                                   | 0x0002 |
+| * MptzRelativeMove                                                  | 0x0003 |
+| * DptzRelativeMove                                                  | 0x0004 |
+| * GeneratedCommandList                                              | 0xFFF8 |
+| * AcceptedCommandList                                               | 0xFFF9 |
+| * EventList                                                         | 0xFFFA |
+| * AttributeList                                                     | 0xFFFB |
+| * FeatureMap                                                        | 0xFFFC |
+| * ClusterRevision                                                   | 0xFFFD |
+|------------------------------------------------------------------------------|
+| Events:                                                             |        |
+\*----------------------------------------------------------------------------*/
+
+#if MTR_ENABLE_PROVISIONAL
+/*
+ * Command MptzSet
+ */
+class CameraAvSettingsUserLevelManagementMptzSet : public ClusterCommand {
+public:
+    CameraAvSettingsUserLevelManagementMptzSet()
+        : ClusterCommand("mptz-set")
+        , mComplex_NewPTZ(&mRequest.newPTZ)
+    {
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("NewPTZ", &mComplex_NewPTZ);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("PresetID", 0, UINT8_MAX, &mRequest.presetID);
+#endif // MTR_ENABLE_PROVISIONAL
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::MptzSet::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, commandId, endpointId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVSettingsUserLevelManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRCameraAVSettingsUserLevelManagementClusterMptzSetParams alloc] init];
+        params.timedInvokeTimeoutMs = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+#if MTR_ENABLE_PROVISIONAL
+        if (mRequest.newPTZ.HasValue()) {
+            params.newPTZ = [MTRCameraAVSettingsUserLevelManagementClusterMPTZStruct new];
+            if (mRequest.newPTZ.Value().MPan.HasValue()) {
+                if (mRequest.newPTZ.Value().MPan.Value().IsNull()) {
+                    params.newPTZ.mPan = nil;
+                } else {
+                    params.newPTZ.mPan = [NSNumber numberWithShort:mRequest.newPTZ.Value().MPan.Value().Value()];
+                }
+            } else {
+                params.newPTZ.mPan = nil;
+            }
+            if (mRequest.newPTZ.Value().MTilt.HasValue()) {
+                if (mRequest.newPTZ.Value().MTilt.Value().IsNull()) {
+                    params.newPTZ.mTilt = nil;
+                } else {
+                    params.newPTZ.mTilt = [NSNumber numberWithChar:mRequest.newPTZ.Value().MTilt.Value().Value()];
+                }
+            } else {
+                params.newPTZ.mTilt = nil;
+            }
+            if (mRequest.newPTZ.Value().MZoom.HasValue()) {
+                if (mRequest.newPTZ.Value().MZoom.Value().IsNull()) {
+                    params.newPTZ.mZoom = nil;
+                } else {
+                    params.newPTZ.mZoom = [NSNumber numberWithUnsignedShort:mRequest.newPTZ.Value().MZoom.Value().Value()];
+                }
+            } else {
+                params.newPTZ.mZoom = nil;
+            }
+        } else {
+            params.newPTZ = nil;
+        }
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        if (mRequest.presetID.HasValue()) {
+            params.presetID = [NSNumber numberWithUnsignedChar:mRequest.presetID.Value()];
+        } else {
+            params.presetID = nil;
+        }
+#endif // MTR_ENABLE_PROVISIONAL
+        uint16_t repeatCount = mRepeatCount.ValueOr(1);
+        uint16_t __block responsesNeeded = repeatCount;
+        while (repeatCount--) {
+            [cluster mptzSetWithParams:params completion:
+                                                  ^(NSError * _Nullable error) {
+                                                      responsesNeeded--;
+                                                      if (error != nil) {
+                                                          mError = error;
+                                                          LogNSError("Error", error);
+                                                          RemoteDataModelLogger::LogCommandErrorAsJSON(@(endpointId), @(clusterId), @(commandId), error);
+                                                      }
+                                                      if (responsesNeeded == 0) {
+                                                          SetCommandExitStatus(mError);
+                                                      }
+                                                  }];
+        }
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::MptzSet::Type mRequest;
+    TypedComplexArgument<chip::Optional<chip::app::Clusters::CameraAvSettingsUserLevelManagement::Structs::MPTZStruct::Type>> mComplex_NewPTZ;
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+/*
+ * Command MptzRelativeMove
+ */
+class CameraAvSettingsUserLevelManagementMptzRelativeMove : public ClusterCommand {
+public:
+    CameraAvSettingsUserLevelManagementMptzRelativeMove()
+        : ClusterCommand("mptz-relative-move")
+    {
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("Pan", INT16_MIN, INT16_MAX, &mRequest.pan);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("Tilt", INT16_MIN, INT16_MAX, &mRequest.tilt);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("Zoom", INT16_MIN, INT16_MAX, &mRequest.zoom);
+#endif // MTR_ENABLE_PROVISIONAL
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::MptzRelativeMove::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, commandId, endpointId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVSettingsUserLevelManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRCameraAVSettingsUserLevelManagementClusterMptzRelativeMoveParams alloc] init];
+        params.timedInvokeTimeoutMs = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+#if MTR_ENABLE_PROVISIONAL
+        params.pan = [NSNumber numberWithShort:mRequest.pan];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.tilt = [NSNumber numberWithShort:mRequest.tilt];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.zoom = [NSNumber numberWithShort:mRequest.zoom];
+#endif // MTR_ENABLE_PROVISIONAL
+        uint16_t repeatCount = mRepeatCount.ValueOr(1);
+        uint16_t __block responsesNeeded = repeatCount;
+        while (repeatCount--) {
+            [cluster mptzRelativeMoveWithParams:params completion:
+                                                           ^(NSError * _Nullable error) {
+                                                               responsesNeeded--;
+                                                               if (error != nil) {
+                                                                   mError = error;
+                                                                   LogNSError("Error", error);
+                                                                   RemoteDataModelLogger::LogCommandErrorAsJSON(@(endpointId), @(clusterId), @(commandId), error);
+                                                               }
+                                                               if (responsesNeeded == 0) {
+                                                                   SetCommandExitStatus(mError);
+                                                               }
+                                                           }];
+        }
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::MptzRelativeMove::Type mRequest;
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+/*
+ * Command SetAsPreset
+ */
+class CameraAvSettingsUserLevelManagementSetAsPreset : public ClusterCommand {
+public:
+    CameraAvSettingsUserLevelManagementSetAsPreset()
+        : ClusterCommand("set-as-preset")
+    {
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::SetAsPreset::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, commandId, endpointId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVSettingsUserLevelManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRCameraAVSettingsUserLevelManagementClusterSetAsPresetParams alloc] init];
+        params.timedInvokeTimeoutMs = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+        uint16_t repeatCount = mRepeatCount.ValueOr(1);
+        uint16_t __block responsesNeeded = repeatCount;
+        while (repeatCount--) {
+            [cluster setAsPresetWithParams:params completion:
+                                                      ^(NSError * _Nullable error) {
+                                                          responsesNeeded--;
+                                                          if (error != nil) {
+                                                              mError = error;
+                                                              LogNSError("Error", error);
+                                                              RemoteDataModelLogger::LogCommandErrorAsJSON(@(endpointId), @(clusterId), @(commandId), error);
+                                                          }
+                                                          if (responsesNeeded == 0) {
+                                                              SetCommandExitStatus(mError);
+                                                          }
+                                                      }];
+        }
+        return CHIP_NO_ERROR;
+    }
+
+private:
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+/*
+ * Command DptzSetViewport
+ */
+class CameraAvSettingsUserLevelManagementDptzSetViewport : public ClusterCommand {
+public:
+    CameraAvSettingsUserLevelManagementDptzSetViewport()
+        : ClusterCommand("dptz-set-viewport")
+        , mComplex_Viewport(&mRequest.viewport)
+    {
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("VideoStreamID", 0, UINT16_MAX, &mRequest.videoStreamID);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("Viewport", &mComplex_Viewport);
+#endif // MTR_ENABLE_PROVISIONAL
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::DptzSetViewport::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, commandId, endpointId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVSettingsUserLevelManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRCameraAVSettingsUserLevelManagementClusterDptzSetViewportParams alloc] init];
+        params.timedInvokeTimeoutMs = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+#if MTR_ENABLE_PROVISIONAL
+        params.videoStreamID = [NSNumber numberWithUnsignedShort:mRequest.videoStreamID];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.viewport = [MTRCameraAVSettingsUserLevelManagementClusterViewportStruct new];
+        params.viewport.x1 = [NSNumber numberWithUnsignedShort:mRequest.viewport.x1];
+        params.viewport.y1 = [NSNumber numberWithUnsignedShort:mRequest.viewport.y1];
+        params.viewport.x2 = [NSNumber numberWithUnsignedShort:mRequest.viewport.x2];
+        params.viewport.y2 = [NSNumber numberWithUnsignedShort:mRequest.viewport.y2];
+#endif // MTR_ENABLE_PROVISIONAL
+        uint16_t repeatCount = mRepeatCount.ValueOr(1);
+        uint16_t __block responsesNeeded = repeatCount;
+        while (repeatCount--) {
+            [cluster dptzSetViewportWithParams:params completion:
+                                                          ^(NSError * _Nullable error) {
+                                                              responsesNeeded--;
+                                                              if (error != nil) {
+                                                                  mError = error;
+                                                                  LogNSError("Error", error);
+                                                                  RemoteDataModelLogger::LogCommandErrorAsJSON(@(endpointId), @(clusterId), @(commandId), error);
+                                                              }
+                                                              if (responsesNeeded == 0) {
+                                                                  SetCommandExitStatus(mError);
+                                                              }
+                                                          }];
+        }
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::DptzSetViewport::Type mRequest;
+    TypedComplexArgument<chip::app::Clusters::CameraAvSettingsUserLevelManagement::Structs::ViewportStruct::Type> mComplex_Viewport;
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+/*
+ * Command DptzRelativeMove
+ */
+class CameraAvSettingsUserLevelManagementDptzRelativeMove : public ClusterCommand {
+public:
+    CameraAvSettingsUserLevelManagementDptzRelativeMove()
+        : ClusterCommand("dptz-relative-move")
+    {
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("VideoStreamID", 0, UINT16_MAX, &mRequest.videoStreamID);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("Pan", INT16_MIN, INT16_MAX, &mRequest.pan);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("Tilt", INT16_MIN, INT16_MAX, &mRequest.tilt);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("Zoom", INT8_MIN, INT8_MAX, &mRequest.zoom);
+#endif // MTR_ENABLE_PROVISIONAL
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::DptzRelativeMove::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, commandId, endpointId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVSettingsUserLevelManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRCameraAVSettingsUserLevelManagementClusterDptzRelativeMoveParams alloc] init];
+        params.timedInvokeTimeoutMs = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+#if MTR_ENABLE_PROVISIONAL
+        params.videoStreamID = [NSNumber numberWithUnsignedShort:mRequest.videoStreamID];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.pan = [NSNumber numberWithShort:mRequest.pan];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.tilt = [NSNumber numberWithShort:mRequest.tilt];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.zoom = [NSNumber numberWithChar:mRequest.zoom];
+#endif // MTR_ENABLE_PROVISIONAL
+        uint16_t repeatCount = mRepeatCount.ValueOr(1);
+        uint16_t __block responsesNeeded = repeatCount;
+        while (repeatCount--) {
+            [cluster dptzRelativeMoveWithParams:params completion:
+                                                           ^(NSError * _Nullable error) {
+                                                               responsesNeeded--;
+                                                               if (error != nil) {
+                                                                   mError = error;
+                                                                   LogNSError("Error", error);
+                                                                   RemoteDataModelLogger::LogCommandErrorAsJSON(@(endpointId), @(clusterId), @(commandId), error);
+                                                               }
+                                                               if (responsesNeeded == 0) {
+                                                                   SetCommandExitStatus(mError);
+                                                               }
+                                                           }];
+        }
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    chip::app::Clusters::CameraAvSettingsUserLevelManagement::Commands::DptzRelativeMove::Type mRequest;
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute Mptz
+ */
+class ReadCameraAvSettingsUserLevelManagementMptz : public ReadAttribute {
+public:
+    ReadCameraAvSettingsUserLevelManagementMptz()
+        : ReadAttribute("mptz")
+    {
+    }
+
+    ~ReadCameraAvSettingsUserLevelManagementMptz()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Attributes::Mptz::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVSettingsUserLevelManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeMptzWithCompletion:^(MTRCameraAVSettingsUserLevelManagementClusterMPTZStruct * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVSettingsUserLevelManagement.Mptz response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVSettingsUserLevelManagement Mptz read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvSettingsUserLevelManagementMptz : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvSettingsUserLevelManagementMptz()
+        : SubscribeAttribute("mptz")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvSettingsUserLevelManagementMptz()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Attributes::Mptz::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVSettingsUserLevelManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeMptzWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(MTRCameraAVSettingsUserLevelManagementClusterMPTZStruct * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVSettingsUserLevelManagement.Mptz response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute MaxPresets
+ */
+class ReadCameraAvSettingsUserLevelManagementMaxPresets : public ReadAttribute {
+public:
+    ReadCameraAvSettingsUserLevelManagementMaxPresets()
+        : ReadAttribute("max-presets")
+    {
+    }
+
+    ~ReadCameraAvSettingsUserLevelManagementMaxPresets()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Attributes::MaxPresets::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVSettingsUserLevelManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeMaxPresetsWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVSettingsUserLevelManagement.MaxPresets response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVSettingsUserLevelManagement MaxPresets read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvSettingsUserLevelManagementMaxPresets : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvSettingsUserLevelManagementMaxPresets()
+        : SubscribeAttribute("max-presets")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvSettingsUserLevelManagementMaxPresets()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Attributes::MaxPresets::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVSettingsUserLevelManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeMaxPresetsWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVSettingsUserLevelManagement.MaxPresets response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute PresetMptzTable
+ */
+class ReadCameraAvSettingsUserLevelManagementPresetMptzTable : public ReadAttribute {
+public:
+    ReadCameraAvSettingsUserLevelManagementPresetMptzTable()
+        : ReadAttribute("preset-mptz-table")
+    {
+    }
+
+    ~ReadCameraAvSettingsUserLevelManagementPresetMptzTable()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Attributes::PresetMptzTable::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVSettingsUserLevelManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributePresetMptzTableWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVSettingsUserLevelManagement.PresetMptzTable response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVSettingsUserLevelManagement PresetMptzTable read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvSettingsUserLevelManagementPresetMptzTable : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvSettingsUserLevelManagementPresetMptzTable()
+        : SubscribeAttribute("preset-mptz-table")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvSettingsUserLevelManagementPresetMptzTable()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Attributes::PresetMptzTable::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVSettingsUserLevelManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributePresetMptzTableWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVSettingsUserLevelManagement.PresetMptzTable response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute MptzRelativeMove
+ */
+class ReadCameraAvSettingsUserLevelManagementMptzRelativeMove : public ReadAttribute {
+public:
+    ReadCameraAvSettingsUserLevelManagementMptzRelativeMove()
+        : ReadAttribute("mptz-relative-move")
+    {
+    }
+
+    ~ReadCameraAvSettingsUserLevelManagementMptzRelativeMove()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Attributes::MptzRelativeMove::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVSettingsUserLevelManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeMptzRelativeMoveWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVSettingsUserLevelManagement.MptzRelativeMove response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVSettingsUserLevelManagement MptzRelativeMove read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvSettingsUserLevelManagementMptzRelativeMove : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvSettingsUserLevelManagementMptzRelativeMove()
+        : SubscribeAttribute("mptz-relative-move")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvSettingsUserLevelManagementMptzRelativeMove()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Attributes::MptzRelativeMove::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVSettingsUserLevelManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeMptzRelativeMoveWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVSettingsUserLevelManagement.MptzRelativeMove response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute DptzRelativeMove
+ */
+class ReadCameraAvSettingsUserLevelManagementDptzRelativeMove : public ReadAttribute {
+public:
+    ReadCameraAvSettingsUserLevelManagementDptzRelativeMove()
+        : ReadAttribute("dptz-relative-move")
+    {
+    }
+
+    ~ReadCameraAvSettingsUserLevelManagementDptzRelativeMove()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Attributes::DptzRelativeMove::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVSettingsUserLevelManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeDptzRelativeMoveWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVSettingsUserLevelManagement.DptzRelativeMove response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVSettingsUserLevelManagement DptzRelativeMove read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvSettingsUserLevelManagementDptzRelativeMove : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvSettingsUserLevelManagementDptzRelativeMove()
+        : SubscribeAttribute("dptz-relative-move")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvSettingsUserLevelManagementDptzRelativeMove()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Attributes::DptzRelativeMove::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVSettingsUserLevelManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeDptzRelativeMoveWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVSettingsUserLevelManagement.DptzRelativeMove response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute GeneratedCommandList
+ */
+class ReadCameraAvSettingsUserLevelManagementGeneratedCommandList : public ReadAttribute {
+public:
+    ReadCameraAvSettingsUserLevelManagementGeneratedCommandList()
+        : ReadAttribute("generated-command-list")
+    {
+    }
+
+    ~ReadCameraAvSettingsUserLevelManagementGeneratedCommandList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Attributes::GeneratedCommandList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVSettingsUserLevelManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeGeneratedCommandListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVSettingsUserLevelManagement.GeneratedCommandList response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVSettingsUserLevelManagement GeneratedCommandList read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvSettingsUserLevelManagementGeneratedCommandList : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvSettingsUserLevelManagementGeneratedCommandList()
+        : SubscribeAttribute("generated-command-list")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvSettingsUserLevelManagementGeneratedCommandList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Attributes::GeneratedCommandList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVSettingsUserLevelManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeGeneratedCommandListWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVSettingsUserLevelManagement.GeneratedCommandList response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute AcceptedCommandList
+ */
+class ReadCameraAvSettingsUserLevelManagementAcceptedCommandList : public ReadAttribute {
+public:
+    ReadCameraAvSettingsUserLevelManagementAcceptedCommandList()
+        : ReadAttribute("accepted-command-list")
+    {
+    }
+
+    ~ReadCameraAvSettingsUserLevelManagementAcceptedCommandList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Attributes::AcceptedCommandList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVSettingsUserLevelManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeAcceptedCommandListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVSettingsUserLevelManagement.AcceptedCommandList response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVSettingsUserLevelManagement AcceptedCommandList read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvSettingsUserLevelManagementAcceptedCommandList : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvSettingsUserLevelManagementAcceptedCommandList()
+        : SubscribeAttribute("accepted-command-list")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvSettingsUserLevelManagementAcceptedCommandList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Attributes::AcceptedCommandList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVSettingsUserLevelManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeAcceptedCommandListWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVSettingsUserLevelManagement.AcceptedCommandList response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute EventList
+ */
+class ReadCameraAvSettingsUserLevelManagementEventList : public ReadAttribute {
+public:
+    ReadCameraAvSettingsUserLevelManagementEventList()
+        : ReadAttribute("event-list")
+    {
+    }
+
+    ~ReadCameraAvSettingsUserLevelManagementEventList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Attributes::EventList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVSettingsUserLevelManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeEventListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVSettingsUserLevelManagement.EventList response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVSettingsUserLevelManagement EventList read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvSettingsUserLevelManagementEventList : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvSettingsUserLevelManagementEventList()
+        : SubscribeAttribute("event-list")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvSettingsUserLevelManagementEventList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Attributes::EventList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVSettingsUserLevelManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeEventListWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVSettingsUserLevelManagement.EventList response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute AttributeList
+ */
+class ReadCameraAvSettingsUserLevelManagementAttributeList : public ReadAttribute {
+public:
+    ReadCameraAvSettingsUserLevelManagementAttributeList()
+        : ReadAttribute("attribute-list")
+    {
+    }
+
+    ~ReadCameraAvSettingsUserLevelManagementAttributeList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Attributes::AttributeList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVSettingsUserLevelManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVSettingsUserLevelManagement.AttributeList response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVSettingsUserLevelManagement AttributeList read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvSettingsUserLevelManagementAttributeList : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvSettingsUserLevelManagementAttributeList()
+        : SubscribeAttribute("attribute-list")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvSettingsUserLevelManagementAttributeList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Attributes::AttributeList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVSettingsUserLevelManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeAttributeListWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVSettingsUserLevelManagement.AttributeList response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute FeatureMap
+ */
+class ReadCameraAvSettingsUserLevelManagementFeatureMap : public ReadAttribute {
+public:
+    ReadCameraAvSettingsUserLevelManagementFeatureMap()
+        : ReadAttribute("feature-map")
+    {
+    }
+
+    ~ReadCameraAvSettingsUserLevelManagementFeatureMap()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Attributes::FeatureMap::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVSettingsUserLevelManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeFeatureMapWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVSettingsUserLevelManagement.FeatureMap response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVSettingsUserLevelManagement FeatureMap read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvSettingsUserLevelManagementFeatureMap : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvSettingsUserLevelManagementFeatureMap()
+        : SubscribeAttribute("feature-map")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvSettingsUserLevelManagementFeatureMap()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Attributes::FeatureMap::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVSettingsUserLevelManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeFeatureMapWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVSettingsUserLevelManagement.FeatureMap response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute ClusterRevision
+ */
+class ReadCameraAvSettingsUserLevelManagementClusterRevision : public ReadAttribute {
+public:
+    ReadCameraAvSettingsUserLevelManagementClusterRevision()
+        : ReadAttribute("cluster-revision")
+    {
+    }
+
+    ~ReadCameraAvSettingsUserLevelManagementClusterRevision()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Attributes::ClusterRevision::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVSettingsUserLevelManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeClusterRevisionWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"CameraAVSettingsUserLevelManagement.ClusterRevision response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("CameraAVSettingsUserLevelManagement ClusterRevision read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeCameraAvSettingsUserLevelManagementClusterRevision : public SubscribeAttribute {
+public:
+    SubscribeAttributeCameraAvSettingsUserLevelManagementClusterRevision()
+        : SubscribeAttribute("cluster-revision")
+    {
+    }
+
+    ~SubscribeAttributeCameraAvSettingsUserLevelManagementClusterRevision()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::CameraAvSettingsUserLevelManagement::Attributes::ClusterRevision::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterCameraAVSettingsUserLevelManagement alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeClusterRevisionWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"CameraAVSettingsUserLevelManagement.ClusterRevision response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+/*----------------------------------------------------------------------------*\
+| Cluster WebRTCTransportProvider                                     | 0x0553 |
+|------------------------------------------------------------------------------|
+| Commands:                                                           |        |
+| * WebRTCSolicitOffer                                                |   0x01 |
+| * WebRTCProvideOffer                                                |   0x03 |
+| * WebRTCProvideAnswer                                               |   0x05 |
+| * WebRTCProvideICECandidate                                         |   0x06 |
+| * WebRTCEndSession                                                  |   0x07 |
+|------------------------------------------------------------------------------|
+| Attributes:                                                         |        |
+| * CurrentSessions                                                   | 0x0000 |
+| * GeneratedCommandList                                              | 0xFFF8 |
+| * AcceptedCommandList                                               | 0xFFF9 |
+| * EventList                                                         | 0xFFFA |
+| * AttributeList                                                     | 0xFFFB |
+| * FeatureMap                                                        | 0xFFFC |
+| * ClusterRevision                                                   | 0xFFFD |
+|------------------------------------------------------------------------------|
+| Events:                                                             |        |
+\*----------------------------------------------------------------------------*/
+
+#if MTR_ENABLE_PROVISIONAL
+/*
+ * Command WebRTCSolicitOffer
+ */
+class WebRTCTransportProviderWebRTCSolicitOffer : public ClusterCommand {
+public:
+    WebRTCTransportProviderWebRTCSolicitOffer()
+        : ClusterCommand("web-rtcsolicit-offer")
+        , mComplex_ICEServers(&mRequest.ICEServers)
+    {
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("StreamType", 0, UINT8_MAX, &mRequest.streamType);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("VideoStreamID", 0, UINT16_MAX, &mRequest.videoStreamID);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("AudioStreamID", 0, UINT16_MAX, &mRequest.audioStreamID);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("ICEServers", &mComplex_ICEServers);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("ICETransportPolicy", &mRequest.ICETransportPolicy);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("MetadataOptions", 0, UINT8_MAX, &mRequest.metadataOptions);
+#endif // MTR_ENABLE_PROVISIONAL
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportProvider::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCSolicitOffer::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, commandId, endpointId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportProvider alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRWebRTCTransportProviderClusterWebRTCSolicitOfferParams alloc] init];
+        params.timedInvokeTimeoutMs = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+#if MTR_ENABLE_PROVISIONAL
+        params.streamType = [NSNumber numberWithUnsignedChar:chip::to_underlying(mRequest.streamType)];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        if (mRequest.videoStreamID.HasValue()) {
+            if (mRequest.videoStreamID.Value().IsNull()) {
+                params.videoStreamID = nil;
+            } else {
+                params.videoStreamID = [NSNumber numberWithUnsignedShort:mRequest.videoStreamID.Value().Value()];
+            }
+        } else {
+            params.videoStreamID = nil;
+        }
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        if (mRequest.audioStreamID.HasValue()) {
+            if (mRequest.audioStreamID.Value().IsNull()) {
+                params.audioStreamID = nil;
+            } else {
+                params.audioStreamID = [NSNumber numberWithUnsignedShort:mRequest.audioStreamID.Value().Value()];
+            }
+        } else {
+            params.audioStreamID = nil;
+        }
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        if (mRequest.ICEServers.HasValue()) {
+            { // Scope for our temporary variables
+                auto * array_1 = [NSMutableArray new];
+                for (auto & entry_1 : mRequest.ICEServers.Value()) {
+                    MTRWebRTCTransportProviderClusterICEServerStruct * newElement_1;
+                    newElement_1 = [MTRWebRTCTransportProviderClusterICEServerStruct new];
+                    { // Scope for our temporary variables
+                        auto * array_3 = [NSMutableArray new];
+                        for (auto & entry_3 : entry_1.urls) {
+                            NSString * newElement_3;
+                            newElement_3 = [[NSString alloc] initWithBytes:entry_3.data() length:entry_3.size() encoding:NSUTF8StringEncoding];
+                            [array_3 addObject:newElement_3];
+                        }
+                        newElement_1.urls = array_3;
+                    }
+                    if (entry_1.username.HasValue()) {
+                        newElement_1.username = [[NSString alloc] initWithBytes:entry_1.username.Value().data() length:entry_1.username.Value().size() encoding:NSUTF8StringEncoding];
+                    } else {
+                        newElement_1.username = nil;
+                    }
+                    if (entry_1.credential.HasValue()) {
+                        newElement_1.credential = [[NSString alloc] initWithBytes:entry_1.credential.Value().data() length:entry_1.credential.Value().size() encoding:NSUTF8StringEncoding];
+                    } else {
+                        newElement_1.credential = nil;
+                    }
+                    if (entry_1.caid.HasValue()) {
+                        newElement_1.caid = [NSNumber numberWithUnsignedShort:entry_1.caid.Value()];
+                    } else {
+                        newElement_1.caid = nil;
+                    }
+                    [array_1 addObject:newElement_1];
+                }
+                params.iceServers = array_1;
+            }
+        } else {
+            params.iceServers = nil;
+        }
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        if (mRequest.ICETransportPolicy.HasValue()) {
+            params.iceTransportPolicy = [[NSString alloc] initWithBytes:mRequest.ICETransportPolicy.Value().data() length:mRequest.ICETransportPolicy.Value().size() encoding:NSUTF8StringEncoding];
+        } else {
+            params.iceTransportPolicy = nil;
+        }
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        if (mRequest.metadataOptions.HasValue()) {
+            params.metadataOptions = [NSNumber numberWithUnsignedChar:mRequest.metadataOptions.Value().Raw()];
+        } else {
+            params.metadataOptions = nil;
+        }
+#endif // MTR_ENABLE_PROVISIONAL
+        uint16_t repeatCount = mRepeatCount.ValueOr(1);
+        uint16_t __block responsesNeeded = repeatCount;
+        while (repeatCount--) {
+            [cluster webRTCSolicitOfferWithParams:params completion:
+                                                             ^(MTRWebRTCTransportProviderClusterWebRTCSolicitOfferResponseParams * _Nullable values, NSError * _Nullable error) {
+                                                                 NSLog(@"Values: %@", values);
+                                                                 if (error == nil) {
+                                                                     constexpr chip::CommandId responseId = chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCSolicitOfferResponse::Id;
+                                                                     RemoteDataModelLogger::LogCommandAsJSON(@(endpointId), @(clusterId), @(responseId), values);
+                                                                 }
+                                                                 responsesNeeded--;
+                                                                 if (error != nil) {
+                                                                     mError = error;
+                                                                     LogNSError("Error", error);
+                                                                     constexpr chip::CommandId responseId = chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCSolicitOfferResponse::Id;
+                                                                     RemoteDataModelLogger::LogCommandErrorAsJSON(@(endpointId), @(clusterId), @(responseId), error);
+                                                                 }
+                                                                 if (responsesNeeded == 0) {
+                                                                     SetCommandExitStatus(mError);
+                                                                 }
+                                                             }];
+        }
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCSolicitOffer::Type mRequest;
+    TypedComplexArgument<chip::Optional<chip::app::DataModel::List<const chip::app::Clusters::WebRTCTransportProvider::Structs::ICEServerStruct::Type>>> mComplex_ICEServers;
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+/*
+ * Command WebRTCProvideOffer
+ */
+class WebRTCTransportProviderWebRTCProvideOffer : public ClusterCommand {
+public:
+    WebRTCTransportProviderWebRTCProvideOffer()
+        : ClusterCommand("web-rtcprovide-offer")
+        , mComplex_ICEServers(&mRequest.ICEServers)
+    {
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("WebRTCSessionID", 0, UINT16_MAX, &mRequest.webRTCSessionID);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("Sdp", &mRequest.sdp);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("StreamType", 0, UINT8_MAX, &mRequest.streamType);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("VideoStreamID", 0, UINT16_MAX, &mRequest.videoStreamID);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("AudioStreamID", 0, UINT16_MAX, &mRequest.audioStreamID);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("ICEServers", &mComplex_ICEServers);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("ICETransportPolicy", &mRequest.ICETransportPolicy);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("MetadataOptions", 0, UINT8_MAX, &mRequest.metadataOptions);
+#endif // MTR_ENABLE_PROVISIONAL
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportProvider::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCProvideOffer::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, commandId, endpointId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportProvider alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRWebRTCTransportProviderClusterWebRTCProvideOfferParams alloc] init];
+        params.timedInvokeTimeoutMs = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+#if MTR_ENABLE_PROVISIONAL
+        if (mRequest.webRTCSessionID.IsNull()) {
+            params.webRTCSessionID = nil;
+        } else {
+            params.webRTCSessionID = [NSNumber numberWithUnsignedShort:mRequest.webRTCSessionID.Value()];
+        }
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.sdp = [[NSString alloc] initWithBytes:mRequest.sdp.data() length:mRequest.sdp.size() encoding:NSUTF8StringEncoding];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.streamType = [NSNumber numberWithUnsignedChar:chip::to_underlying(mRequest.streamType)];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        if (mRequest.videoStreamID.HasValue()) {
+            if (mRequest.videoStreamID.Value().IsNull()) {
+                params.videoStreamID = nil;
+            } else {
+                params.videoStreamID = [NSNumber numberWithUnsignedShort:mRequest.videoStreamID.Value().Value()];
+            }
+        } else {
+            params.videoStreamID = nil;
+        }
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        if (mRequest.audioStreamID.HasValue()) {
+            if (mRequest.audioStreamID.Value().IsNull()) {
+                params.audioStreamID = nil;
+            } else {
+                params.audioStreamID = [NSNumber numberWithUnsignedShort:mRequest.audioStreamID.Value().Value()];
+            }
+        } else {
+            params.audioStreamID = nil;
+        }
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        if (mRequest.ICEServers.HasValue()) {
+            { // Scope for our temporary variables
+                auto * array_1 = [NSMutableArray new];
+                for (auto & entry_1 : mRequest.ICEServers.Value()) {
+                    MTRWebRTCTransportProviderClusterICEServerStruct * newElement_1;
+                    newElement_1 = [MTRWebRTCTransportProviderClusterICEServerStruct new];
+                    { // Scope for our temporary variables
+                        auto * array_3 = [NSMutableArray new];
+                        for (auto & entry_3 : entry_1.urls) {
+                            NSString * newElement_3;
+                            newElement_3 = [[NSString alloc] initWithBytes:entry_3.data() length:entry_3.size() encoding:NSUTF8StringEncoding];
+                            [array_3 addObject:newElement_3];
+                        }
+                        newElement_1.urls = array_3;
+                    }
+                    if (entry_1.username.HasValue()) {
+                        newElement_1.username = [[NSString alloc] initWithBytes:entry_1.username.Value().data() length:entry_1.username.Value().size() encoding:NSUTF8StringEncoding];
+                    } else {
+                        newElement_1.username = nil;
+                    }
+                    if (entry_1.credential.HasValue()) {
+                        newElement_1.credential = [[NSString alloc] initWithBytes:entry_1.credential.Value().data() length:entry_1.credential.Value().size() encoding:NSUTF8StringEncoding];
+                    } else {
+                        newElement_1.credential = nil;
+                    }
+                    if (entry_1.caid.HasValue()) {
+                        newElement_1.caid = [NSNumber numberWithUnsignedShort:entry_1.caid.Value()];
+                    } else {
+                        newElement_1.caid = nil;
+                    }
+                    [array_1 addObject:newElement_1];
+                }
+                params.iceServers = array_1;
+            }
+        } else {
+            params.iceServers = nil;
+        }
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        if (mRequest.ICETransportPolicy.HasValue()) {
+            params.iceTransportPolicy = [[NSString alloc] initWithBytes:mRequest.ICETransportPolicy.Value().data() length:mRequest.ICETransportPolicy.Value().size() encoding:NSUTF8StringEncoding];
+        } else {
+            params.iceTransportPolicy = nil;
+        }
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        if (mRequest.metadataOptions.HasValue()) {
+            params.metadataOptions = [NSNumber numberWithUnsignedChar:mRequest.metadataOptions.Value().Raw()];
+        } else {
+            params.metadataOptions = nil;
+        }
+#endif // MTR_ENABLE_PROVISIONAL
+        uint16_t repeatCount = mRepeatCount.ValueOr(1);
+        uint16_t __block responsesNeeded = repeatCount;
+        while (repeatCount--) {
+            [cluster webRTCProvideOfferWithParams:params completion:
+                                                             ^(MTRWebRTCTransportProviderClusterWebRTCProvideOfferResponseParams * _Nullable values, NSError * _Nullable error) {
+                                                                 NSLog(@"Values: %@", values);
+                                                                 if (error == nil) {
+                                                                     constexpr chip::CommandId responseId = chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCProvideOfferResponse::Id;
+                                                                     RemoteDataModelLogger::LogCommandAsJSON(@(endpointId), @(clusterId), @(responseId), values);
+                                                                 }
+                                                                 responsesNeeded--;
+                                                                 if (error != nil) {
+                                                                     mError = error;
+                                                                     LogNSError("Error", error);
+                                                                     constexpr chip::CommandId responseId = chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCProvideOfferResponse::Id;
+                                                                     RemoteDataModelLogger::LogCommandErrorAsJSON(@(endpointId), @(clusterId), @(responseId), error);
+                                                                 }
+                                                                 if (responsesNeeded == 0) {
+                                                                     SetCommandExitStatus(mError);
+                                                                 }
+                                                             }];
+        }
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCProvideOffer::Type mRequest;
+    TypedComplexArgument<chip::Optional<chip::app::DataModel::List<const chip::app::Clusters::WebRTCTransportProvider::Structs::ICEServerStruct::Type>>> mComplex_ICEServers;
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+/*
+ * Command WebRTCProvideAnswer
+ */
+class WebRTCTransportProviderWebRTCProvideAnswer : public ClusterCommand {
+public:
+    WebRTCTransportProviderWebRTCProvideAnswer()
+        : ClusterCommand("web-rtcprovide-answer")
+    {
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("WebRTCSessionID", 0, UINT16_MAX, &mRequest.webRTCSessionID);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("Sdp", &mRequest.sdp);
+#endif // MTR_ENABLE_PROVISIONAL
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportProvider::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCProvideAnswer::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, commandId, endpointId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportProvider alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRWebRTCTransportProviderClusterWebRTCProvideAnswerParams alloc] init];
+        params.timedInvokeTimeoutMs = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+#if MTR_ENABLE_PROVISIONAL
+        params.webRTCSessionID = [NSNumber numberWithUnsignedShort:mRequest.webRTCSessionID];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.sdp = [[NSString alloc] initWithBytes:mRequest.sdp.data() length:mRequest.sdp.size() encoding:NSUTF8StringEncoding];
+#endif // MTR_ENABLE_PROVISIONAL
+        uint16_t repeatCount = mRepeatCount.ValueOr(1);
+        uint16_t __block responsesNeeded = repeatCount;
+        while (repeatCount--) {
+            [cluster webRTCProvideAnswerWithParams:params completion:
+                                                              ^(NSError * _Nullable error) {
+                                                                  responsesNeeded--;
+                                                                  if (error != nil) {
+                                                                      mError = error;
+                                                                      LogNSError("Error", error);
+                                                                      RemoteDataModelLogger::LogCommandErrorAsJSON(@(endpointId), @(clusterId), @(commandId), error);
+                                                                  }
+                                                                  if (responsesNeeded == 0) {
+                                                                      SetCommandExitStatus(mError);
+                                                                  }
+                                                              }];
+        }
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCProvideAnswer::Type mRequest;
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+/*
+ * Command WebRTCProvideICECandidate
+ */
+class WebRTCTransportProviderWebRTCProvideICECandidate : public ClusterCommand {
+public:
+    WebRTCTransportProviderWebRTCProvideICECandidate()
+        : ClusterCommand("web-rtcprovide-icecandidate")
+    {
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("WebRTCSessionID", 0, UINT16_MAX, &mRequest.webRTCSessionID);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("ICECandidate", &mRequest.ICECandidate);
+#endif // MTR_ENABLE_PROVISIONAL
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportProvider::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCProvideICECandidate::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, commandId, endpointId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportProvider alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRWebRTCTransportProviderClusterWebRTCProvideICECandidateParams alloc] init];
+        params.timedInvokeTimeoutMs = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+#if MTR_ENABLE_PROVISIONAL
+        params.webRTCSessionID = [NSNumber numberWithUnsignedShort:mRequest.webRTCSessionID];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.iceCandidate = [[NSString alloc] initWithBytes:mRequest.ICECandidate.data() length:mRequest.ICECandidate.size() encoding:NSUTF8StringEncoding];
+#endif // MTR_ENABLE_PROVISIONAL
+        uint16_t repeatCount = mRepeatCount.ValueOr(1);
+        uint16_t __block responsesNeeded = repeatCount;
+        while (repeatCount--) {
+            [cluster webRTCProvideICECandidateWithParams:params completion:
+                                                                    ^(NSError * _Nullable error) {
+                                                                        responsesNeeded--;
+                                                                        if (error != nil) {
+                                                                            mError = error;
+                                                                            LogNSError("Error", error);
+                                                                            RemoteDataModelLogger::LogCommandErrorAsJSON(@(endpointId), @(clusterId), @(commandId), error);
+                                                                        }
+                                                                        if (responsesNeeded == 0) {
+                                                                            SetCommandExitStatus(mError);
+                                                                        }
+                                                                    }];
+        }
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCProvideICECandidate::Type mRequest;
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+/*
+ * Command WebRTCEndSession
+ */
+class WebRTCTransportProviderWebRTCEndSession : public ClusterCommand {
+public:
+    WebRTCTransportProviderWebRTCEndSession()
+        : ClusterCommand("web-rtcend-session")
+    {
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("WebRTCSessionID", 0, UINT16_MAX, &mRequest.webRTCSessionID);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("Reason", 0, UINT8_MAX, &mRequest.reason);
+#endif // MTR_ENABLE_PROVISIONAL
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportProvider::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCEndSession::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, commandId, endpointId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportProvider alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRWebRTCTransportProviderClusterWebRTCEndSessionParams alloc] init];
+        params.timedInvokeTimeoutMs = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+#if MTR_ENABLE_PROVISIONAL
+        params.webRTCSessionID = [NSNumber numberWithUnsignedShort:mRequest.webRTCSessionID];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.reason = [NSNumber numberWithUnsignedChar:chip::to_underlying(mRequest.reason)];
+#endif // MTR_ENABLE_PROVISIONAL
+        uint16_t repeatCount = mRepeatCount.ValueOr(1);
+        uint16_t __block responsesNeeded = repeatCount;
+        while (repeatCount--) {
+            [cluster webRTCEndSessionWithParams:params completion:
+                                                           ^(NSError * _Nullable error) {
+                                                               responsesNeeded--;
+                                                               if (error != nil) {
+                                                                   mError = error;
+                                                                   LogNSError("Error", error);
+                                                                   RemoteDataModelLogger::LogCommandErrorAsJSON(@(endpointId), @(clusterId), @(commandId), error);
+                                                               }
+                                                               if (responsesNeeded == 0) {
+                                                                   SetCommandExitStatus(mError);
+                                                               }
+                                                           }];
+        }
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    chip::app::Clusters::WebRTCTransportProvider::Commands::WebRTCEndSession::Type mRequest;
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute CurrentSessions
+ */
+class ReadWebRTCTransportProviderCurrentSessions : public ReadAttribute {
+public:
+    ReadWebRTCTransportProviderCurrentSessions()
+        : ReadAttribute("current-sessions")
+    {
+    }
+
+    ~ReadWebRTCTransportProviderCurrentSessions()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportProvider::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::WebRTCTransportProvider::Attributes::CurrentSessions::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportProvider alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeCurrentSessionsWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"WebRTCTransportProvider.CurrentSessions response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("WebRTCTransportProvider CurrentSessions read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeWebRTCTransportProviderCurrentSessions : public SubscribeAttribute {
+public:
+    SubscribeAttributeWebRTCTransportProviderCurrentSessions()
+        : SubscribeAttribute("current-sessions")
+    {
+    }
+
+    ~SubscribeAttributeWebRTCTransportProviderCurrentSessions()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportProvider::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::WebRTCTransportProvider::Attributes::CurrentSessions::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportProvider alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeCurrentSessionsWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"WebRTCTransportProvider.CurrentSessions response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute GeneratedCommandList
+ */
+class ReadWebRTCTransportProviderGeneratedCommandList : public ReadAttribute {
+public:
+    ReadWebRTCTransportProviderGeneratedCommandList()
+        : ReadAttribute("generated-command-list")
+    {
+    }
+
+    ~ReadWebRTCTransportProviderGeneratedCommandList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportProvider::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::WebRTCTransportProvider::Attributes::GeneratedCommandList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportProvider alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeGeneratedCommandListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"WebRTCTransportProvider.GeneratedCommandList response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("WebRTCTransportProvider GeneratedCommandList read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeWebRTCTransportProviderGeneratedCommandList : public SubscribeAttribute {
+public:
+    SubscribeAttributeWebRTCTransportProviderGeneratedCommandList()
+        : SubscribeAttribute("generated-command-list")
+    {
+    }
+
+    ~SubscribeAttributeWebRTCTransportProviderGeneratedCommandList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportProvider::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::WebRTCTransportProvider::Attributes::GeneratedCommandList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportProvider alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeGeneratedCommandListWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"WebRTCTransportProvider.GeneratedCommandList response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute AcceptedCommandList
+ */
+class ReadWebRTCTransportProviderAcceptedCommandList : public ReadAttribute {
+public:
+    ReadWebRTCTransportProviderAcceptedCommandList()
+        : ReadAttribute("accepted-command-list")
+    {
+    }
+
+    ~ReadWebRTCTransportProviderAcceptedCommandList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportProvider::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::WebRTCTransportProvider::Attributes::AcceptedCommandList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportProvider alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeAcceptedCommandListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"WebRTCTransportProvider.AcceptedCommandList response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("WebRTCTransportProvider AcceptedCommandList read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeWebRTCTransportProviderAcceptedCommandList : public SubscribeAttribute {
+public:
+    SubscribeAttributeWebRTCTransportProviderAcceptedCommandList()
+        : SubscribeAttribute("accepted-command-list")
+    {
+    }
+
+    ~SubscribeAttributeWebRTCTransportProviderAcceptedCommandList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportProvider::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::WebRTCTransportProvider::Attributes::AcceptedCommandList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportProvider alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeAcceptedCommandListWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"WebRTCTransportProvider.AcceptedCommandList response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute EventList
+ */
+class ReadWebRTCTransportProviderEventList : public ReadAttribute {
+public:
+    ReadWebRTCTransportProviderEventList()
+        : ReadAttribute("event-list")
+    {
+    }
+
+    ~ReadWebRTCTransportProviderEventList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportProvider::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::WebRTCTransportProvider::Attributes::EventList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportProvider alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeEventListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"WebRTCTransportProvider.EventList response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("WebRTCTransportProvider EventList read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeWebRTCTransportProviderEventList : public SubscribeAttribute {
+public:
+    SubscribeAttributeWebRTCTransportProviderEventList()
+        : SubscribeAttribute("event-list")
+    {
+    }
+
+    ~SubscribeAttributeWebRTCTransportProviderEventList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportProvider::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::WebRTCTransportProvider::Attributes::EventList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportProvider alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeEventListWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"WebRTCTransportProvider.EventList response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute AttributeList
+ */
+class ReadWebRTCTransportProviderAttributeList : public ReadAttribute {
+public:
+    ReadWebRTCTransportProviderAttributeList()
+        : ReadAttribute("attribute-list")
+    {
+    }
+
+    ~ReadWebRTCTransportProviderAttributeList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportProvider::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::WebRTCTransportProvider::Attributes::AttributeList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportProvider alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"WebRTCTransportProvider.AttributeList response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("WebRTCTransportProvider AttributeList read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeWebRTCTransportProviderAttributeList : public SubscribeAttribute {
+public:
+    SubscribeAttributeWebRTCTransportProviderAttributeList()
+        : SubscribeAttribute("attribute-list")
+    {
+    }
+
+    ~SubscribeAttributeWebRTCTransportProviderAttributeList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportProvider::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::WebRTCTransportProvider::Attributes::AttributeList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportProvider alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeAttributeListWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"WebRTCTransportProvider.AttributeList response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute FeatureMap
+ */
+class ReadWebRTCTransportProviderFeatureMap : public ReadAttribute {
+public:
+    ReadWebRTCTransportProviderFeatureMap()
+        : ReadAttribute("feature-map")
+    {
+    }
+
+    ~ReadWebRTCTransportProviderFeatureMap()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportProvider::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::WebRTCTransportProvider::Attributes::FeatureMap::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportProvider alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeFeatureMapWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"WebRTCTransportProvider.FeatureMap response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("WebRTCTransportProvider FeatureMap read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeWebRTCTransportProviderFeatureMap : public SubscribeAttribute {
+public:
+    SubscribeAttributeWebRTCTransportProviderFeatureMap()
+        : SubscribeAttribute("feature-map")
+    {
+    }
+
+    ~SubscribeAttributeWebRTCTransportProviderFeatureMap()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportProvider::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::WebRTCTransportProvider::Attributes::FeatureMap::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportProvider alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeFeatureMapWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"WebRTCTransportProvider.FeatureMap response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute ClusterRevision
+ */
+class ReadWebRTCTransportProviderClusterRevision : public ReadAttribute {
+public:
+    ReadWebRTCTransportProviderClusterRevision()
+        : ReadAttribute("cluster-revision")
+    {
+    }
+
+    ~ReadWebRTCTransportProviderClusterRevision()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportProvider::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::WebRTCTransportProvider::Attributes::ClusterRevision::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportProvider alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeClusterRevisionWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"WebRTCTransportProvider.ClusterRevision response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("WebRTCTransportProvider ClusterRevision read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeWebRTCTransportProviderClusterRevision : public SubscribeAttribute {
+public:
+    SubscribeAttributeWebRTCTransportProviderClusterRevision()
+        : SubscribeAttribute("cluster-revision")
+    {
+    }
+
+    ~SubscribeAttributeWebRTCTransportProviderClusterRevision()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportProvider::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::WebRTCTransportProvider::Attributes::ClusterRevision::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportProvider alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeClusterRevisionWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"WebRTCTransportProvider.ClusterRevision response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+/*----------------------------------------------------------------------------*\
+| Cluster WebRTCTransportRequestor                                    | 0x0554 |
+|------------------------------------------------------------------------------|
+| Commands:                                                           |        |
+| * WebRTCOffer                                                       |   0x01 |
+| * WebRTCAnswer                                                      |   0x02 |
+| * WebRTCICECandidate                                                |   0x03 |
+| * WebRTCEnd                                                         |   0x04 |
+|------------------------------------------------------------------------------|
+| Attributes:                                                         |        |
+| * CurrentSessions                                                   | 0x0000 |
+| * GeneratedCommandList                                              | 0xFFF8 |
+| * AcceptedCommandList                                               | 0xFFF9 |
+| * EventList                                                         | 0xFFFA |
+| * AttributeList                                                     | 0xFFFB |
+| * FeatureMap                                                        | 0xFFFC |
+| * ClusterRevision                                                   | 0xFFFD |
+|------------------------------------------------------------------------------|
+| Events:                                                             |        |
+\*----------------------------------------------------------------------------*/
+
+#if MTR_ENABLE_PROVISIONAL
+/*
+ * Command WebRTCOffer
+ */
+class WebRTCTransportRequestorWebRTCOffer : public ClusterCommand {
+public:
+    WebRTCTransportRequestorWebRTCOffer()
+        : ClusterCommand("web-rtcoffer")
+        , mComplex_ICEServers(&mRequest.ICEServers)
+    {
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("WebRTCSessionID", 0, UINT16_MAX, &mRequest.webRTCSessionID);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("Sdp", &mRequest.sdp);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("ICEServers", &mComplex_ICEServers);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("ICETransportPolicy", &mRequest.ICETransportPolicy);
+#endif // MTR_ENABLE_PROVISIONAL
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportRequestor::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::WebRTCTransportRequestor::Commands::WebRTCOffer::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, commandId, endpointId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportRequestor alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRWebRTCTransportRequestorClusterWebRTCOfferParams alloc] init];
+        params.timedInvokeTimeoutMs = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+#if MTR_ENABLE_PROVISIONAL
+        params.webRTCSessionID = [NSNumber numberWithUnsignedShort:mRequest.webRTCSessionID];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.sdp = [[NSString alloc] initWithBytes:mRequest.sdp.data() length:mRequest.sdp.size() encoding:NSUTF8StringEncoding];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        if (mRequest.ICEServers.HasValue()) {
+            { // Scope for our temporary variables
+                auto * array_1 = [NSMutableArray new];
+                for (auto & entry_1 : mRequest.ICEServers.Value()) {
+                    MTRWebRTCTransportRequestorClusterICEServerStruct * newElement_1;
+                    newElement_1 = [MTRWebRTCTransportRequestorClusterICEServerStruct new];
+                    { // Scope for our temporary variables
+                        auto * array_3 = [NSMutableArray new];
+                        for (auto & entry_3 : entry_1.urls) {
+                            NSString * newElement_3;
+                            newElement_3 = [[NSString alloc] initWithBytes:entry_3.data() length:entry_3.size() encoding:NSUTF8StringEncoding];
+                            [array_3 addObject:newElement_3];
+                        }
+                        newElement_1.urls = array_3;
+                    }
+                    if (entry_1.username.HasValue()) {
+                        newElement_1.username = [[NSString alloc] initWithBytes:entry_1.username.Value().data() length:entry_1.username.Value().size() encoding:NSUTF8StringEncoding];
+                    } else {
+                        newElement_1.username = nil;
+                    }
+                    if (entry_1.credential.HasValue()) {
+                        newElement_1.credential = [[NSString alloc] initWithBytes:entry_1.credential.Value().data() length:entry_1.credential.Value().size() encoding:NSUTF8StringEncoding];
+                    } else {
+                        newElement_1.credential = nil;
+                    }
+                    if (entry_1.caid.HasValue()) {
+                        newElement_1.caid = [NSNumber numberWithUnsignedShort:entry_1.caid.Value()];
+                    } else {
+                        newElement_1.caid = nil;
+                    }
+                    [array_1 addObject:newElement_1];
+                }
+                params.iceServers = array_1;
+            }
+        } else {
+            params.iceServers = nil;
+        }
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        if (mRequest.ICETransportPolicy.HasValue()) {
+            params.iceTransportPolicy = [[NSString alloc] initWithBytes:mRequest.ICETransportPolicy.Value().data() length:mRequest.ICETransportPolicy.Value().size() encoding:NSUTF8StringEncoding];
+        } else {
+            params.iceTransportPolicy = nil;
+        }
+#endif // MTR_ENABLE_PROVISIONAL
+        uint16_t repeatCount = mRepeatCount.ValueOr(1);
+        uint16_t __block responsesNeeded = repeatCount;
+        while (repeatCount--) {
+            [cluster webRTCOfferWithParams:params completion:
+                                                      ^(NSError * _Nullable error) {
+                                                          responsesNeeded--;
+                                                          if (error != nil) {
+                                                              mError = error;
+                                                              LogNSError("Error", error);
+                                                              RemoteDataModelLogger::LogCommandErrorAsJSON(@(endpointId), @(clusterId), @(commandId), error);
+                                                          }
+                                                          if (responsesNeeded == 0) {
+                                                              SetCommandExitStatus(mError);
+                                                          }
+                                                      }];
+        }
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    chip::app::Clusters::WebRTCTransportRequestor::Commands::WebRTCOffer::Type mRequest;
+    TypedComplexArgument<chip::Optional<chip::app::DataModel::List<const chip::app::Clusters::WebRTCTransportRequestor::Structs::ICEServerStruct::Type>>> mComplex_ICEServers;
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+/*
+ * Command WebRTCAnswer
+ */
+class WebRTCTransportRequestorWebRTCAnswer : public ClusterCommand {
+public:
+    WebRTCTransportRequestorWebRTCAnswer()
+        : ClusterCommand("web-rtcanswer")
+    {
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("WebRTCSessionID", 0, UINT16_MAX, &mRequest.webRTCSessionID);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("Sdp", &mRequest.sdp);
+#endif // MTR_ENABLE_PROVISIONAL
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportRequestor::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::WebRTCTransportRequestor::Commands::WebRTCAnswer::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, commandId, endpointId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportRequestor alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRWebRTCTransportRequestorClusterWebRTCAnswerParams alloc] init];
+        params.timedInvokeTimeoutMs = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+#if MTR_ENABLE_PROVISIONAL
+        params.webRTCSessionID = [NSNumber numberWithUnsignedShort:mRequest.webRTCSessionID];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.sdp = [[NSString alloc] initWithBytes:mRequest.sdp.data() length:mRequest.sdp.size() encoding:NSUTF8StringEncoding];
+#endif // MTR_ENABLE_PROVISIONAL
+        uint16_t repeatCount = mRepeatCount.ValueOr(1);
+        uint16_t __block responsesNeeded = repeatCount;
+        while (repeatCount--) {
+            [cluster webRTCAnswerWithParams:params completion:
+                                                       ^(NSError * _Nullable error) {
+                                                           responsesNeeded--;
+                                                           if (error != nil) {
+                                                               mError = error;
+                                                               LogNSError("Error", error);
+                                                               RemoteDataModelLogger::LogCommandErrorAsJSON(@(endpointId), @(clusterId), @(commandId), error);
+                                                           }
+                                                           if (responsesNeeded == 0) {
+                                                               SetCommandExitStatus(mError);
+                                                           }
+                                                       }];
+        }
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    chip::app::Clusters::WebRTCTransportRequestor::Commands::WebRTCAnswer::Type mRequest;
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+/*
+ * Command WebRTCICECandidate
+ */
+class WebRTCTransportRequestorWebRTCICECandidate : public ClusterCommand {
+public:
+    WebRTCTransportRequestorWebRTCICECandidate()
+        : ClusterCommand("web-rtcicecandidate")
+    {
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("WebRTCSessionID", 0, UINT16_MAX, &mRequest.webRTCSessionID);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("ICECandidate", &mRequest.ICECandidate);
+#endif // MTR_ENABLE_PROVISIONAL
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportRequestor::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::WebRTCTransportRequestor::Commands::WebRTCICECandidate::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, commandId, endpointId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportRequestor alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRWebRTCTransportRequestorClusterWebRTCICECandidateParams alloc] init];
+        params.timedInvokeTimeoutMs = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+#if MTR_ENABLE_PROVISIONAL
+        params.webRTCSessionID = [NSNumber numberWithUnsignedShort:mRequest.webRTCSessionID];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.iceCandidate = [[NSString alloc] initWithBytes:mRequest.ICECandidate.data() length:mRequest.ICECandidate.size() encoding:NSUTF8StringEncoding];
+#endif // MTR_ENABLE_PROVISIONAL
+        uint16_t repeatCount = mRepeatCount.ValueOr(1);
+        uint16_t __block responsesNeeded = repeatCount;
+        while (repeatCount--) {
+            [cluster webRTCICECandidateWithParams:params completion:
+                                                             ^(NSError * _Nullable error) {
+                                                                 responsesNeeded--;
+                                                                 if (error != nil) {
+                                                                     mError = error;
+                                                                     LogNSError("Error", error);
+                                                                     RemoteDataModelLogger::LogCommandErrorAsJSON(@(endpointId), @(clusterId), @(commandId), error);
+                                                                 }
+                                                                 if (responsesNeeded == 0) {
+                                                                     SetCommandExitStatus(mError);
+                                                                 }
+                                                             }];
+        }
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    chip::app::Clusters::WebRTCTransportRequestor::Commands::WebRTCICECandidate::Type mRequest;
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+/*
+ * Command WebRTCEnd
+ */
+class WebRTCTransportRequestorWebRTCEnd : public ClusterCommand {
+public:
+    WebRTCTransportRequestorWebRTCEnd()
+        : ClusterCommand("web-rtcend")
+    {
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("WebRTCSessionID", 0, UINT16_MAX, &mRequest.webRTCSessionID);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("Reason", 0, UINT8_MAX, &mRequest.reason);
+#endif // MTR_ENABLE_PROVISIONAL
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportRequestor::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::WebRTCTransportRequestor::Commands::WebRTCEnd::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, commandId, endpointId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportRequestor alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRWebRTCTransportRequestorClusterWebRTCEndParams alloc] init];
+        params.timedInvokeTimeoutMs = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+#if MTR_ENABLE_PROVISIONAL
+        params.webRTCSessionID = [NSNumber numberWithUnsignedShort:mRequest.webRTCSessionID];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.reason = [NSNumber numberWithUnsignedChar:chip::to_underlying(mRequest.reason)];
+#endif // MTR_ENABLE_PROVISIONAL
+        uint16_t repeatCount = mRepeatCount.ValueOr(1);
+        uint16_t __block responsesNeeded = repeatCount;
+        while (repeatCount--) {
+            [cluster webRTCEndWithParams:params completion:
+                                                    ^(NSError * _Nullable error) {
+                                                        responsesNeeded--;
+                                                        if (error != nil) {
+                                                            mError = error;
+                                                            LogNSError("Error", error);
+                                                            RemoteDataModelLogger::LogCommandErrorAsJSON(@(endpointId), @(clusterId), @(commandId), error);
+                                                        }
+                                                        if (responsesNeeded == 0) {
+                                                            SetCommandExitStatus(mError);
+                                                        }
+                                                    }];
+        }
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    chip::app::Clusters::WebRTCTransportRequestor::Commands::WebRTCEnd::Type mRequest;
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute CurrentSessions
+ */
+class ReadWebRTCTransportRequestorCurrentSessions : public ReadAttribute {
+public:
+    ReadWebRTCTransportRequestorCurrentSessions()
+        : ReadAttribute("current-sessions")
+    {
+    }
+
+    ~ReadWebRTCTransportRequestorCurrentSessions()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportRequestor::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::WebRTCTransportRequestor::Attributes::CurrentSessions::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportRequestor alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeCurrentSessionsWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"WebRTCTransportRequestor.CurrentSessions response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("WebRTCTransportRequestor CurrentSessions read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeWebRTCTransportRequestorCurrentSessions : public SubscribeAttribute {
+public:
+    SubscribeAttributeWebRTCTransportRequestorCurrentSessions()
+        : SubscribeAttribute("current-sessions")
+    {
+    }
+
+    ~SubscribeAttributeWebRTCTransportRequestorCurrentSessions()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportRequestor::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::WebRTCTransportRequestor::Attributes::CurrentSessions::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportRequestor alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeCurrentSessionsWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"WebRTCTransportRequestor.CurrentSessions response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute GeneratedCommandList
+ */
+class ReadWebRTCTransportRequestorGeneratedCommandList : public ReadAttribute {
+public:
+    ReadWebRTCTransportRequestorGeneratedCommandList()
+        : ReadAttribute("generated-command-list")
+    {
+    }
+
+    ~ReadWebRTCTransportRequestorGeneratedCommandList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportRequestor::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::WebRTCTransportRequestor::Attributes::GeneratedCommandList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportRequestor alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeGeneratedCommandListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"WebRTCTransportRequestor.GeneratedCommandList response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("WebRTCTransportRequestor GeneratedCommandList read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeWebRTCTransportRequestorGeneratedCommandList : public SubscribeAttribute {
+public:
+    SubscribeAttributeWebRTCTransportRequestorGeneratedCommandList()
+        : SubscribeAttribute("generated-command-list")
+    {
+    }
+
+    ~SubscribeAttributeWebRTCTransportRequestorGeneratedCommandList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportRequestor::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::WebRTCTransportRequestor::Attributes::GeneratedCommandList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportRequestor alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeGeneratedCommandListWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"WebRTCTransportRequestor.GeneratedCommandList response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute AcceptedCommandList
+ */
+class ReadWebRTCTransportRequestorAcceptedCommandList : public ReadAttribute {
+public:
+    ReadWebRTCTransportRequestorAcceptedCommandList()
+        : ReadAttribute("accepted-command-list")
+    {
+    }
+
+    ~ReadWebRTCTransportRequestorAcceptedCommandList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportRequestor::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::WebRTCTransportRequestor::Attributes::AcceptedCommandList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportRequestor alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeAcceptedCommandListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"WebRTCTransportRequestor.AcceptedCommandList response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("WebRTCTransportRequestor AcceptedCommandList read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeWebRTCTransportRequestorAcceptedCommandList : public SubscribeAttribute {
+public:
+    SubscribeAttributeWebRTCTransportRequestorAcceptedCommandList()
+        : SubscribeAttribute("accepted-command-list")
+    {
+    }
+
+    ~SubscribeAttributeWebRTCTransportRequestorAcceptedCommandList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportRequestor::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::WebRTCTransportRequestor::Attributes::AcceptedCommandList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportRequestor alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeAcceptedCommandListWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"WebRTCTransportRequestor.AcceptedCommandList response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute EventList
+ */
+class ReadWebRTCTransportRequestorEventList : public ReadAttribute {
+public:
+    ReadWebRTCTransportRequestorEventList()
+        : ReadAttribute("event-list")
+    {
+    }
+
+    ~ReadWebRTCTransportRequestorEventList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportRequestor::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::WebRTCTransportRequestor::Attributes::EventList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportRequestor alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeEventListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"WebRTCTransportRequestor.EventList response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("WebRTCTransportRequestor EventList read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeWebRTCTransportRequestorEventList : public SubscribeAttribute {
+public:
+    SubscribeAttributeWebRTCTransportRequestorEventList()
+        : SubscribeAttribute("event-list")
+    {
+    }
+
+    ~SubscribeAttributeWebRTCTransportRequestorEventList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportRequestor::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::WebRTCTransportRequestor::Attributes::EventList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportRequestor alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeEventListWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"WebRTCTransportRequestor.EventList response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute AttributeList
+ */
+class ReadWebRTCTransportRequestorAttributeList : public ReadAttribute {
+public:
+    ReadWebRTCTransportRequestorAttributeList()
+        : ReadAttribute("attribute-list")
+    {
+    }
+
+    ~ReadWebRTCTransportRequestorAttributeList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportRequestor::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::WebRTCTransportRequestor::Attributes::AttributeList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportRequestor alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"WebRTCTransportRequestor.AttributeList response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("WebRTCTransportRequestor AttributeList read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeWebRTCTransportRequestorAttributeList : public SubscribeAttribute {
+public:
+    SubscribeAttributeWebRTCTransportRequestorAttributeList()
+        : SubscribeAttribute("attribute-list")
+    {
+    }
+
+    ~SubscribeAttributeWebRTCTransportRequestorAttributeList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportRequestor::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::WebRTCTransportRequestor::Attributes::AttributeList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportRequestor alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeAttributeListWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"WebRTCTransportRequestor.AttributeList response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute FeatureMap
+ */
+class ReadWebRTCTransportRequestorFeatureMap : public ReadAttribute {
+public:
+    ReadWebRTCTransportRequestorFeatureMap()
+        : ReadAttribute("feature-map")
+    {
+    }
+
+    ~ReadWebRTCTransportRequestorFeatureMap()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportRequestor::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::WebRTCTransportRequestor::Attributes::FeatureMap::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportRequestor alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeFeatureMapWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"WebRTCTransportRequestor.FeatureMap response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("WebRTCTransportRequestor FeatureMap read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeWebRTCTransportRequestorFeatureMap : public SubscribeAttribute {
+public:
+    SubscribeAttributeWebRTCTransportRequestorFeatureMap()
+        : SubscribeAttribute("feature-map")
+    {
+    }
+
+    ~SubscribeAttributeWebRTCTransportRequestorFeatureMap()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportRequestor::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::WebRTCTransportRequestor::Attributes::FeatureMap::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportRequestor alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeFeatureMapWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"WebRTCTransportRequestor.FeatureMap response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute ClusterRevision
+ */
+class ReadWebRTCTransportRequestorClusterRevision : public ReadAttribute {
+public:
+    ReadWebRTCTransportRequestorClusterRevision()
+        : ReadAttribute("cluster-revision")
+    {
+    }
+
+    ~ReadWebRTCTransportRequestorClusterRevision()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportRequestor::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::WebRTCTransportRequestor::Attributes::ClusterRevision::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportRequestor alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeClusterRevisionWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"WebRTCTransportRequestor.ClusterRevision response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("WebRTCTransportRequestor ClusterRevision read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeWebRTCTransportRequestorClusterRevision : public SubscribeAttribute {
+public:
+    SubscribeAttributeWebRTCTransportRequestorClusterRevision()
+        : SubscribeAttribute("cluster-revision")
+    {
+    }
+
+    ~SubscribeAttributeWebRTCTransportRequestorClusterRevision()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::WebRTCTransportRequestor::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::WebRTCTransportRequestor::Attributes::ClusterRevision::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterWebRTCTransportRequestor alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeClusterRevisionWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"WebRTCTransportRequestor.ClusterRevision response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+/*----------------------------------------------------------------------------*\
+| Cluster PushAvStreamTransport                                       | 0x0555 |
+|------------------------------------------------------------------------------|
+| Commands:                                                           |        |
+| * AllocatePushTransport                                             |   0x00 |
+| * DeallocatePushTransport                                           |   0x02 |
+| * ModifyPushTransport                                               |   0x03 |
+| * SetTransportStatus                                                |   0x04 |
+| * ManuallyTriggerTransport                                          |   0x05 |
+| * FindStreamConfiguration                                           |   0x06 |
+|------------------------------------------------------------------------------|
+| Attributes:                                                         |        |
+| * SupportedContainerFormats                                         | 0x0000 |
+| * SupportedIngestMethods                                            | 0x0001 |
+| * CurrentConnections                                                | 0x0002 |
+| * GeneratedCommandList                                              | 0xFFF8 |
+| * AcceptedCommandList                                               | 0xFFF9 |
+| * EventList                                                         | 0xFFFA |
+| * AttributeList                                                     | 0xFFFB |
+| * FeatureMap                                                        | 0xFFFC |
+| * ClusterRevision                                                   | 0xFFFD |
+|------------------------------------------------------------------------------|
+| Events:                                                             |        |
+| * PushTransportBegin                                                | 0x0000 |
+| * PushTransportEnd                                                  | 0x0001 |
+\*----------------------------------------------------------------------------*/
+
+#if MTR_ENABLE_PROVISIONAL
+/*
+ * Command AllocatePushTransport
+ */
+class PushAvStreamTransportAllocatePushTransport : public ClusterCommand {
+public:
+    PushAvStreamTransportAllocatePushTransport()
+        : ClusterCommand("allocate-push-transport")
+        , mComplex_StreamTransportOptions(&mRequest.streamTransportOptions)
+    {
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("StreamTransportOptions", &mComplex_StreamTransportOptions);
+#endif // MTR_ENABLE_PROVISIONAL
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::PushAvStreamTransport::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::PushAvStreamTransport::Commands::AllocatePushTransport::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, commandId, endpointId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterPushAVStreamTransport alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRPushAVStreamTransportClusterAllocatePushTransportParams alloc] init];
+        params.timedInvokeTimeoutMs = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+#if MTR_ENABLE_PROVISIONAL
+        params.streamTransportOptions = [MTRPushAVStreamTransportClusterPushAVStreamTransportOptionsStruct new];
+        params.streamTransportOptions.streamType = [NSNumber numberWithUnsignedChar:chip::to_underlying(mRequest.streamTransportOptions.streamType)];
+        if (mRequest.streamTransportOptions.videoStreamID.HasValue()) {
+            if (mRequest.streamTransportOptions.videoStreamID.Value().IsNull()) {
+                params.streamTransportOptions.videoStreamID = nil;
+            } else {
+                params.streamTransportOptions.videoStreamID = [NSNumber numberWithUnsignedShort:mRequest.streamTransportOptions.videoStreamID.Value().Value()];
+            }
+        } else {
+            params.streamTransportOptions.videoStreamID = nil;
+        }
+        if (mRequest.streamTransportOptions.audioStreamID.HasValue()) {
+            if (mRequest.streamTransportOptions.audioStreamID.Value().IsNull()) {
+                params.streamTransportOptions.audioStreamID = nil;
+            } else {
+                params.streamTransportOptions.audioStreamID = [NSNumber numberWithUnsignedShort:mRequest.streamTransportOptions.audioStreamID.Value().Value()];
+            }
+        } else {
+            params.streamTransportOptions.audioStreamID = nil;
+        }
+        params.streamTransportOptions.tlsEndpointID = [NSNumber numberWithUnsignedShort:mRequest.streamTransportOptions.TLSEndpointID];
+        params.streamTransportOptions.url = [[NSString alloc] initWithBytes:mRequest.streamTransportOptions.url.data() length:mRequest.streamTransportOptions.url.size() encoding:NSUTF8StringEncoding];
+        params.streamTransportOptions.triggerOptions = [MTRPushAVStreamTransportClusterPushAVStreamTransportTriggerOptionsStruct new];
+        params.streamTransportOptions.triggerOptions.triggerType = [NSNumber numberWithUnsignedChar:chip::to_underlying(mRequest.streamTransportOptions.triggerOptions.triggerType)];
+        if (mRequest.streamTransportOptions.triggerOptions.motionZones.HasValue()) {
+            if (mRequest.streamTransportOptions.triggerOptions.motionZones.Value().IsNull()) {
+                params.streamTransportOptions.triggerOptions.motionZones = nil;
+            } else {
+                { // Scope for our temporary variables
+                    auto * array_4 = [NSMutableArray new];
+                    for (auto & entry_4 : mRequest.streamTransportOptions.triggerOptions.motionZones.Value().Value()) {
+                        NSNumber * newElement_4;
+                        newElement_4 = [NSNumber numberWithUnsignedShort:entry_4];
+                        [array_4 addObject:newElement_4];
+                    }
+                    params.streamTransportOptions.triggerOptions.motionZones = array_4;
+                }
+            }
+        } else {
+            params.streamTransportOptions.triggerOptions.motionZones = nil;
+        }
+        if (mRequest.streamTransportOptions.triggerOptions.motionSensitivity.HasValue()) {
+            if (mRequest.streamTransportOptions.triggerOptions.motionSensitivity.Value().IsNull()) {
+                params.streamTransportOptions.triggerOptions.motionSensitivity = nil;
+            } else {
+                params.streamTransportOptions.triggerOptions.motionSensitivity = [NSNumber numberWithUnsignedChar:mRequest.streamTransportOptions.triggerOptions.motionSensitivity.Value().Value()];
+            }
+        } else {
+            params.streamTransportOptions.triggerOptions.motionSensitivity = nil;
+        }
+        if (mRequest.streamTransportOptions.triggerOptions.motionTimeControl.HasValue()) {
+            if (mRequest.streamTransportOptions.triggerOptions.motionTimeControl.Value().IsNull()) {
+                params.streamTransportOptions.triggerOptions.motionTimeControl = nil;
+            } else {
+                params.streamTransportOptions.triggerOptions.motionTimeControl = [MTRPushAVStreamTransportClusterPushAVStreamTransportMotionTriggerTimeControlStruct new];
+                params.streamTransportOptions.triggerOptions.motionTimeControl.initialDuration = [NSNumber numberWithUnsignedShort:mRequest.streamTransportOptions.triggerOptions.motionTimeControl.Value().Value().initialDuration];
+                params.streamTransportOptions.triggerOptions.motionTimeControl.augmentationDuration = [NSNumber numberWithUnsignedShort:mRequest.streamTransportOptions.triggerOptions.motionTimeControl.Value().Value().augmentationDuration];
+                params.streamTransportOptions.triggerOptions.motionTimeControl.maxDuration = [NSNumber numberWithUnsignedInt:mRequest.streamTransportOptions.triggerOptions.motionTimeControl.Value().Value().maxDuration];
+                params.streamTransportOptions.triggerOptions.motionTimeControl.blindDuration = [NSNumber numberWithUnsignedShort:mRequest.streamTransportOptions.triggerOptions.motionTimeControl.Value().Value().blindDuration];
+            }
+        } else {
+            params.streamTransportOptions.triggerOptions.motionTimeControl = nil;
+        }
+        if (mRequest.streamTransportOptions.triggerOptions.activationReason.HasValue()) {
+            if (mRequest.streamTransportOptions.triggerOptions.activationReason.Value().IsNull()) {
+                params.streamTransportOptions.triggerOptions.activationReason = nil;
+            } else {
+                params.streamTransportOptions.triggerOptions.activationReason = [NSNumber numberWithUnsignedChar:chip::to_underlying(mRequest.streamTransportOptions.triggerOptions.activationReason.Value().Value())];
+            }
+        } else {
+            params.streamTransportOptions.triggerOptions.activationReason = nil;
+        }
+        params.streamTransportOptions.containerFormat = [NSNumber numberWithUnsignedChar:chip::to_underlying(mRequest.streamTransportOptions.containerFormat)];
+        params.streamTransportOptions.ingestMethod = [NSNumber numberWithUnsignedChar:chip::to_underlying(mRequest.streamTransportOptions.ingestMethod)];
+        params.streamTransportOptions.containerOptions = [MTRPushAVStreamTransportClusterPushAVStreamTransportContainerOptionsStruct new];
+        params.streamTransportOptions.containerOptions.containerType = [NSNumber numberWithUnsignedChar:chip::to_underlying(mRequest.streamTransportOptions.containerOptions.containerType)];
+        if (mRequest.streamTransportOptions.containerOptions.CMAFContainerOptions.HasValue()) {
+            if (mRequest.streamTransportOptions.containerOptions.CMAFContainerOptions.Value().IsNull()) {
+                params.streamTransportOptions.containerOptions.cmafContainerOptions = nil;
+            } else {
+                params.streamTransportOptions.containerOptions.cmafContainerOptions = [MTRPushAVStreamTransportClusterPushAVStreamTransportCMAFContainerOptionsStruct new];
+                params.streamTransportOptions.containerOptions.cmafContainerOptions.chunkDuration = [NSNumber numberWithUnsignedShort:mRequest.streamTransportOptions.containerOptions.CMAFContainerOptions.Value().Value().chunkDuration];
+                if (mRequest.streamTransportOptions.containerOptions.CMAFContainerOptions.Value().Value().CENCKey.HasValue()) {
+                    if (mRequest.streamTransportOptions.containerOptions.CMAFContainerOptions.Value().Value().CENCKey.Value().IsNull()) {
+                        params.streamTransportOptions.containerOptions.cmafContainerOptions.cencKey = nil;
+                    } else {
+                        params.streamTransportOptions.containerOptions.cmafContainerOptions.cencKey = [NSData dataWithBytes:mRequest.streamTransportOptions.containerOptions.CMAFContainerOptions.Value().Value().CENCKey.Value().Value().data() length:mRequest.streamTransportOptions.containerOptions.CMAFContainerOptions.Value().Value().CENCKey.Value().Value().size()];
+                    }
+                } else {
+                    params.streamTransportOptions.containerOptions.cmafContainerOptions.cencKey = nil;
+                }
+            }
+        } else {
+            params.streamTransportOptions.containerOptions.cmafContainerOptions = nil;
+        }
+        if (mRequest.streamTransportOptions.metadataOptions.HasValue()) {
+            if (mRequest.streamTransportOptions.metadataOptions.Value().IsNull()) {
+                params.streamTransportOptions.metadataOptions = nil;
+            } else {
+                params.streamTransportOptions.metadataOptions = [MTRPushAVStreamTransportClusterPushAVStreamTransportMetadataOptionsStruct new];
+                params.streamTransportOptions.metadataOptions.multiplexing = [NSNumber numberWithUnsignedChar:chip::to_underlying(mRequest.streamTransportOptions.metadataOptions.Value().Value().multiplexing)];
+                params.streamTransportOptions.metadataOptions.includeMotionZones = [NSNumber numberWithBool:mRequest.streamTransportOptions.metadataOptions.Value().Value().includeMotionZones];
+                params.streamTransportOptions.metadataOptions.enableMetadataPrivacySensitive = [NSNumber numberWithBool:mRequest.streamTransportOptions.metadataOptions.Value().Value().enableMetadataPrivacySensitive];
+            }
+        } else {
+            params.streamTransportOptions.metadataOptions = nil;
+        }
+        if (mRequest.streamTransportOptions.expiryTime.HasValue()) {
+            if (mRequest.streamTransportOptions.expiryTime.Value().IsNull()) {
+                params.streamTransportOptions.expiryTime = nil;
+            } else {
+                params.streamTransportOptions.expiryTime = [NSNumber numberWithUnsignedInt:mRequest.streamTransportOptions.expiryTime.Value().Value()];
+            }
+        } else {
+            params.streamTransportOptions.expiryTime = nil;
+        }
+#endif // MTR_ENABLE_PROVISIONAL
+        uint16_t repeatCount = mRepeatCount.ValueOr(1);
+        uint16_t __block responsesNeeded = repeatCount;
+        while (repeatCount--) {
+            [cluster allocatePushTransportWithParams:params completion:
+                                                                ^(MTRPushAVStreamTransportClusterAllocatePushTransportResponseParams * _Nullable values, NSError * _Nullable error) {
+                                                                    NSLog(@"Values: %@", values);
+                                                                    if (error == nil) {
+                                                                        constexpr chip::CommandId responseId = chip::app::Clusters::PushAvStreamTransport::Commands::AllocatePushTransportResponse::Id;
+                                                                        RemoteDataModelLogger::LogCommandAsJSON(@(endpointId), @(clusterId), @(responseId), values);
+                                                                    }
+                                                                    responsesNeeded--;
+                                                                    if (error != nil) {
+                                                                        mError = error;
+                                                                        LogNSError("Error", error);
+                                                                        constexpr chip::CommandId responseId = chip::app::Clusters::PushAvStreamTransport::Commands::AllocatePushTransportResponse::Id;
+                                                                        RemoteDataModelLogger::LogCommandErrorAsJSON(@(endpointId), @(clusterId), @(responseId), error);
+                                                                    }
+                                                                    if (responsesNeeded == 0) {
+                                                                        SetCommandExitStatus(mError);
+                                                                    }
+                                                                }];
+        }
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    chip::app::Clusters::PushAvStreamTransport::Commands::AllocatePushTransport::Type mRequest;
+    TypedComplexArgument<chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportOptionsStruct::Type> mComplex_StreamTransportOptions;
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+/*
+ * Command DeallocatePushTransport
+ */
+class PushAvStreamTransportDeallocatePushTransport : public ClusterCommand {
+public:
+    PushAvStreamTransportDeallocatePushTransport()
+        : ClusterCommand("deallocate-push-transport")
+    {
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("ConnectionID", 0, UINT16_MAX, &mRequest.connectionID);
+#endif // MTR_ENABLE_PROVISIONAL
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::PushAvStreamTransport::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::PushAvStreamTransport::Commands::DeallocatePushTransport::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, commandId, endpointId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterPushAVStreamTransport alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRPushAVStreamTransportClusterDeallocatePushTransportParams alloc] init];
+        params.timedInvokeTimeoutMs = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+#if MTR_ENABLE_PROVISIONAL
+        params.connectionID = [NSNumber numberWithUnsignedShort:mRequest.connectionID];
+#endif // MTR_ENABLE_PROVISIONAL
+        uint16_t repeatCount = mRepeatCount.ValueOr(1);
+        uint16_t __block responsesNeeded = repeatCount;
+        while (repeatCount--) {
+            [cluster deallocatePushTransportWithParams:params completion:
+                                                                  ^(NSError * _Nullable error) {
+                                                                      responsesNeeded--;
+                                                                      if (error != nil) {
+                                                                          mError = error;
+                                                                          LogNSError("Error", error);
+                                                                          RemoteDataModelLogger::LogCommandErrorAsJSON(@(endpointId), @(clusterId), @(commandId), error);
+                                                                      }
+                                                                      if (responsesNeeded == 0) {
+                                                                          SetCommandExitStatus(mError);
+                                                                      }
+                                                                  }];
+        }
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    chip::app::Clusters::PushAvStreamTransport::Commands::DeallocatePushTransport::Type mRequest;
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+/*
+ * Command ModifyPushTransport
+ */
+class PushAvStreamTransportModifyPushTransport : public ClusterCommand {
+public:
+    PushAvStreamTransportModifyPushTransport()
+        : ClusterCommand("modify-push-transport")
+        , mComplex_StreamTransportOptions(&mRequest.streamTransportOptions)
+    {
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("ConnectionID", 0, UINT16_MAX, &mRequest.connectionID);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("StreamTransportOptions", &mComplex_StreamTransportOptions);
+#endif // MTR_ENABLE_PROVISIONAL
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::PushAvStreamTransport::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::PushAvStreamTransport::Commands::ModifyPushTransport::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, commandId, endpointId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterPushAVStreamTransport alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRPushAVStreamTransportClusterModifyPushTransportParams alloc] init];
+        params.timedInvokeTimeoutMs = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+#if MTR_ENABLE_PROVISIONAL
+        params.connectionID = [NSNumber numberWithUnsignedShort:mRequest.connectionID];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.streamTransportOptions = [MTRPushAVStreamTransportClusterPushAVStreamTransportOptionsStruct new];
+        params.streamTransportOptions.streamType = [NSNumber numberWithUnsignedChar:chip::to_underlying(mRequest.streamTransportOptions.streamType)];
+        if (mRequest.streamTransportOptions.videoStreamID.HasValue()) {
+            if (mRequest.streamTransportOptions.videoStreamID.Value().IsNull()) {
+                params.streamTransportOptions.videoStreamID = nil;
+            } else {
+                params.streamTransportOptions.videoStreamID = [NSNumber numberWithUnsignedShort:mRequest.streamTransportOptions.videoStreamID.Value().Value()];
+            }
+        } else {
+            params.streamTransportOptions.videoStreamID = nil;
+        }
+        if (mRequest.streamTransportOptions.audioStreamID.HasValue()) {
+            if (mRequest.streamTransportOptions.audioStreamID.Value().IsNull()) {
+                params.streamTransportOptions.audioStreamID = nil;
+            } else {
+                params.streamTransportOptions.audioStreamID = [NSNumber numberWithUnsignedShort:mRequest.streamTransportOptions.audioStreamID.Value().Value()];
+            }
+        } else {
+            params.streamTransportOptions.audioStreamID = nil;
+        }
+        params.streamTransportOptions.tlsEndpointID = [NSNumber numberWithUnsignedShort:mRequest.streamTransportOptions.TLSEndpointID];
+        params.streamTransportOptions.url = [[NSString alloc] initWithBytes:mRequest.streamTransportOptions.url.data() length:mRequest.streamTransportOptions.url.size() encoding:NSUTF8StringEncoding];
+        params.streamTransportOptions.triggerOptions = [MTRPushAVStreamTransportClusterPushAVStreamTransportTriggerOptionsStruct new];
+        params.streamTransportOptions.triggerOptions.triggerType = [NSNumber numberWithUnsignedChar:chip::to_underlying(mRequest.streamTransportOptions.triggerOptions.triggerType)];
+        if (mRequest.streamTransportOptions.triggerOptions.motionZones.HasValue()) {
+            if (mRequest.streamTransportOptions.triggerOptions.motionZones.Value().IsNull()) {
+                params.streamTransportOptions.triggerOptions.motionZones = nil;
+            } else {
+                { // Scope for our temporary variables
+                    auto * array_4 = [NSMutableArray new];
+                    for (auto & entry_4 : mRequest.streamTransportOptions.triggerOptions.motionZones.Value().Value()) {
+                        NSNumber * newElement_4;
+                        newElement_4 = [NSNumber numberWithUnsignedShort:entry_4];
+                        [array_4 addObject:newElement_4];
+                    }
+                    params.streamTransportOptions.triggerOptions.motionZones = array_4;
+                }
+            }
+        } else {
+            params.streamTransportOptions.triggerOptions.motionZones = nil;
+        }
+        if (mRequest.streamTransportOptions.triggerOptions.motionSensitivity.HasValue()) {
+            if (mRequest.streamTransportOptions.triggerOptions.motionSensitivity.Value().IsNull()) {
+                params.streamTransportOptions.triggerOptions.motionSensitivity = nil;
+            } else {
+                params.streamTransportOptions.triggerOptions.motionSensitivity = [NSNumber numberWithUnsignedChar:mRequest.streamTransportOptions.triggerOptions.motionSensitivity.Value().Value()];
+            }
+        } else {
+            params.streamTransportOptions.triggerOptions.motionSensitivity = nil;
+        }
+        if (mRequest.streamTransportOptions.triggerOptions.motionTimeControl.HasValue()) {
+            if (mRequest.streamTransportOptions.triggerOptions.motionTimeControl.Value().IsNull()) {
+                params.streamTransportOptions.triggerOptions.motionTimeControl = nil;
+            } else {
+                params.streamTransportOptions.triggerOptions.motionTimeControl = [MTRPushAVStreamTransportClusterPushAVStreamTransportMotionTriggerTimeControlStruct new];
+                params.streamTransportOptions.triggerOptions.motionTimeControl.initialDuration = [NSNumber numberWithUnsignedShort:mRequest.streamTransportOptions.triggerOptions.motionTimeControl.Value().Value().initialDuration];
+                params.streamTransportOptions.triggerOptions.motionTimeControl.augmentationDuration = [NSNumber numberWithUnsignedShort:mRequest.streamTransportOptions.triggerOptions.motionTimeControl.Value().Value().augmentationDuration];
+                params.streamTransportOptions.triggerOptions.motionTimeControl.maxDuration = [NSNumber numberWithUnsignedInt:mRequest.streamTransportOptions.triggerOptions.motionTimeControl.Value().Value().maxDuration];
+                params.streamTransportOptions.triggerOptions.motionTimeControl.blindDuration = [NSNumber numberWithUnsignedShort:mRequest.streamTransportOptions.triggerOptions.motionTimeControl.Value().Value().blindDuration];
+            }
+        } else {
+            params.streamTransportOptions.triggerOptions.motionTimeControl = nil;
+        }
+        if (mRequest.streamTransportOptions.triggerOptions.activationReason.HasValue()) {
+            if (mRequest.streamTransportOptions.triggerOptions.activationReason.Value().IsNull()) {
+                params.streamTransportOptions.triggerOptions.activationReason = nil;
+            } else {
+                params.streamTransportOptions.triggerOptions.activationReason = [NSNumber numberWithUnsignedChar:chip::to_underlying(mRequest.streamTransportOptions.triggerOptions.activationReason.Value().Value())];
+            }
+        } else {
+            params.streamTransportOptions.triggerOptions.activationReason = nil;
+        }
+        params.streamTransportOptions.containerFormat = [NSNumber numberWithUnsignedChar:chip::to_underlying(mRequest.streamTransportOptions.containerFormat)];
+        params.streamTransportOptions.ingestMethod = [NSNumber numberWithUnsignedChar:chip::to_underlying(mRequest.streamTransportOptions.ingestMethod)];
+        params.streamTransportOptions.containerOptions = [MTRPushAVStreamTransportClusterPushAVStreamTransportContainerOptionsStruct new];
+        params.streamTransportOptions.containerOptions.containerType = [NSNumber numberWithUnsignedChar:chip::to_underlying(mRequest.streamTransportOptions.containerOptions.containerType)];
+        if (mRequest.streamTransportOptions.containerOptions.CMAFContainerOptions.HasValue()) {
+            if (mRequest.streamTransportOptions.containerOptions.CMAFContainerOptions.Value().IsNull()) {
+                params.streamTransportOptions.containerOptions.cmafContainerOptions = nil;
+            } else {
+                params.streamTransportOptions.containerOptions.cmafContainerOptions = [MTRPushAVStreamTransportClusterPushAVStreamTransportCMAFContainerOptionsStruct new];
+                params.streamTransportOptions.containerOptions.cmafContainerOptions.chunkDuration = [NSNumber numberWithUnsignedShort:mRequest.streamTransportOptions.containerOptions.CMAFContainerOptions.Value().Value().chunkDuration];
+                if (mRequest.streamTransportOptions.containerOptions.CMAFContainerOptions.Value().Value().CENCKey.HasValue()) {
+                    if (mRequest.streamTransportOptions.containerOptions.CMAFContainerOptions.Value().Value().CENCKey.Value().IsNull()) {
+                        params.streamTransportOptions.containerOptions.cmafContainerOptions.cencKey = nil;
+                    } else {
+                        params.streamTransportOptions.containerOptions.cmafContainerOptions.cencKey = [NSData dataWithBytes:mRequest.streamTransportOptions.containerOptions.CMAFContainerOptions.Value().Value().CENCKey.Value().Value().data() length:mRequest.streamTransportOptions.containerOptions.CMAFContainerOptions.Value().Value().CENCKey.Value().Value().size()];
+                    }
+                } else {
+                    params.streamTransportOptions.containerOptions.cmafContainerOptions.cencKey = nil;
+                }
+            }
+        } else {
+            params.streamTransportOptions.containerOptions.cmafContainerOptions = nil;
+        }
+        if (mRequest.streamTransportOptions.metadataOptions.HasValue()) {
+            if (mRequest.streamTransportOptions.metadataOptions.Value().IsNull()) {
+                params.streamTransportOptions.metadataOptions = nil;
+            } else {
+                params.streamTransportOptions.metadataOptions = [MTRPushAVStreamTransportClusterPushAVStreamTransportMetadataOptionsStruct new];
+                params.streamTransportOptions.metadataOptions.multiplexing = [NSNumber numberWithUnsignedChar:chip::to_underlying(mRequest.streamTransportOptions.metadataOptions.Value().Value().multiplexing)];
+                params.streamTransportOptions.metadataOptions.includeMotionZones = [NSNumber numberWithBool:mRequest.streamTransportOptions.metadataOptions.Value().Value().includeMotionZones];
+                params.streamTransportOptions.metadataOptions.enableMetadataPrivacySensitive = [NSNumber numberWithBool:mRequest.streamTransportOptions.metadataOptions.Value().Value().enableMetadataPrivacySensitive];
+            }
+        } else {
+            params.streamTransportOptions.metadataOptions = nil;
+        }
+        if (mRequest.streamTransportOptions.expiryTime.HasValue()) {
+            if (mRequest.streamTransportOptions.expiryTime.Value().IsNull()) {
+                params.streamTransportOptions.expiryTime = nil;
+            } else {
+                params.streamTransportOptions.expiryTime = [NSNumber numberWithUnsignedInt:mRequest.streamTransportOptions.expiryTime.Value().Value()];
+            }
+        } else {
+            params.streamTransportOptions.expiryTime = nil;
+        }
+#endif // MTR_ENABLE_PROVISIONAL
+        uint16_t repeatCount = mRepeatCount.ValueOr(1);
+        uint16_t __block responsesNeeded = repeatCount;
+        while (repeatCount--) {
+            [cluster modifyPushTransportWithParams:params completion:
+                                                              ^(NSError * _Nullable error) {
+                                                                  responsesNeeded--;
+                                                                  if (error != nil) {
+                                                                      mError = error;
+                                                                      LogNSError("Error", error);
+                                                                      RemoteDataModelLogger::LogCommandErrorAsJSON(@(endpointId), @(clusterId), @(commandId), error);
+                                                                  }
+                                                                  if (responsesNeeded == 0) {
+                                                                      SetCommandExitStatus(mError);
+                                                                  }
+                                                              }];
+        }
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    chip::app::Clusters::PushAvStreamTransport::Commands::ModifyPushTransport::Type mRequest;
+    TypedComplexArgument<chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportOptionsStruct::Type> mComplex_StreamTransportOptions;
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+/*
+ * Command SetTransportStatus
+ */
+class PushAvStreamTransportSetTransportStatus : public ClusterCommand {
+public:
+    PushAvStreamTransportSetTransportStatus()
+        : ClusterCommand("set-transport-status")
+    {
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("ConnectionID", 0, UINT16_MAX, &mRequest.connectionID);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("StreamTransportStatus", 0, UINT8_MAX, &mRequest.streamTransportStatus);
+#endif // MTR_ENABLE_PROVISIONAL
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::PushAvStreamTransport::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::PushAvStreamTransport::Commands::SetTransportStatus::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, commandId, endpointId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterPushAVStreamTransport alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRPushAVStreamTransportClusterSetTransportStatusParams alloc] init];
+        params.timedInvokeTimeoutMs = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+#if MTR_ENABLE_PROVISIONAL
+        if (mRequest.connectionID.IsNull()) {
+            params.connectionID = nil;
+        } else {
+            params.connectionID = [NSNumber numberWithUnsignedShort:mRequest.connectionID.Value()];
+        }
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        params.streamTransportStatus = [NSNumber numberWithUnsignedChar:chip::to_underlying(mRequest.streamTransportStatus)];
+#endif // MTR_ENABLE_PROVISIONAL
+        uint16_t repeatCount = mRepeatCount.ValueOr(1);
+        uint16_t __block responsesNeeded = repeatCount;
+        while (repeatCount--) {
+            [cluster setTransportStatusWithParams:params completion:
+                                                             ^(NSError * _Nullable error) {
+                                                                 responsesNeeded--;
+                                                                 if (error != nil) {
+                                                                     mError = error;
+                                                                     LogNSError("Error", error);
+                                                                     RemoteDataModelLogger::LogCommandErrorAsJSON(@(endpointId), @(clusterId), @(commandId), error);
+                                                                 }
+                                                                 if (responsesNeeded == 0) {
+                                                                     SetCommandExitStatus(mError);
+                                                                 }
+                                                             }];
+        }
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    chip::app::Clusters::PushAvStreamTransport::Commands::SetTransportStatus::Type mRequest;
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+/*
+ * Command ManuallyTriggerTransport
+ */
+class PushAvStreamTransportManuallyTriggerTransport : public ClusterCommand {
+public:
+    PushAvStreamTransportManuallyTriggerTransport()
+        : ClusterCommand("manually-trigger-transport")
+        , mComplex_TimeControl(&mRequest.timeControl)
+    {
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("ConnectionID", 0, UINT16_MAX, &mRequest.connectionID);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("ActivationReason", 0, UINT8_MAX, &mRequest.activationReason);
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("TimeControl", &mComplex_TimeControl);
+#endif // MTR_ENABLE_PROVISIONAL
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::PushAvStreamTransport::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::PushAvStreamTransport::Commands::ManuallyTriggerTransport::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, commandId, endpointId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterPushAVStreamTransport alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRPushAVStreamTransportClusterManuallyTriggerTransportParams alloc] init];
+        params.timedInvokeTimeoutMs = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+#if MTR_ENABLE_PROVISIONAL
+        params.connectionID = [NSNumber numberWithUnsignedShort:mRequest.connectionID];
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        if (mRequest.activationReason.IsNull()) {
+            params.activationReason = nil;
+        } else {
+            params.activationReason = [NSNumber numberWithUnsignedChar:chip::to_underlying(mRequest.activationReason.Value())];
+        }
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        if (mRequest.timeControl.HasValue()) {
+            if (mRequest.timeControl.Value().IsNull()) {
+                params.timeControl = nil;
+            } else {
+                params.timeControl = [MTRPushAVStreamTransportClusterPushAVStreamTransportMotionTriggerTimeControlStruct new];
+                params.timeControl.initialDuration = [NSNumber numberWithUnsignedShort:mRequest.timeControl.Value().Value().initialDuration];
+                params.timeControl.augmentationDuration = [NSNumber numberWithUnsignedShort:mRequest.timeControl.Value().Value().augmentationDuration];
+                params.timeControl.maxDuration = [NSNumber numberWithUnsignedInt:mRequest.timeControl.Value().Value().maxDuration];
+                params.timeControl.blindDuration = [NSNumber numberWithUnsignedShort:mRequest.timeControl.Value().Value().blindDuration];
+            }
+        } else {
+            params.timeControl = nil;
+        }
+#endif // MTR_ENABLE_PROVISIONAL
+        uint16_t repeatCount = mRepeatCount.ValueOr(1);
+        uint16_t __block responsesNeeded = repeatCount;
+        while (repeatCount--) {
+            [cluster manuallyTriggerTransportWithParams:params completion:
+                                                                   ^(NSError * _Nullable error) {
+                                                                       responsesNeeded--;
+                                                                       if (error != nil) {
+                                                                           mError = error;
+                                                                           LogNSError("Error", error);
+                                                                           RemoteDataModelLogger::LogCommandErrorAsJSON(@(endpointId), @(clusterId), @(commandId), error);
+                                                                       }
+                                                                       if (responsesNeeded == 0) {
+                                                                           SetCommandExitStatus(mError);
+                                                                       }
+                                                                   }];
+        }
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    chip::app::Clusters::PushAvStreamTransport::Commands::ManuallyTriggerTransport::Type mRequest;
+    TypedComplexArgument<chip::Optional<chip::app::DataModel::Nullable<chip::app::Clusters::PushAvStreamTransport::Structs::PushAVStreamTransportMotionTriggerTimeControlStruct::Type>>> mComplex_TimeControl;
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+/*
+ * Command FindStreamConfiguration
+ */
+class PushAvStreamTransportFindStreamConfiguration : public ClusterCommand {
+public:
+    PushAvStreamTransportFindStreamConfiguration()
+        : ClusterCommand("find-stream-configuration")
+    {
+#if MTR_ENABLE_PROVISIONAL
+        AddArgument("ConnectionID", 0, UINT16_MAX, &mRequest.connectionID);
+#endif // MTR_ENABLE_PROVISIONAL
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::PushAvStreamTransport::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::PushAvStreamTransport::Commands::FindStreamConfiguration::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, commandId, endpointId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterPushAVStreamTransport alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRPushAVStreamTransportClusterFindStreamConfigurationParams alloc] init];
+        params.timedInvokeTimeoutMs = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+#if MTR_ENABLE_PROVISIONAL
+        if (mRequest.connectionID.HasValue()) {
+            if (mRequest.connectionID.Value().IsNull()) {
+                params.connectionID = nil;
+            } else {
+                params.connectionID = [NSNumber numberWithUnsignedShort:mRequest.connectionID.Value().Value()];
+            }
+        } else {
+            params.connectionID = nil;
+        }
+#endif // MTR_ENABLE_PROVISIONAL
+        uint16_t repeatCount = mRepeatCount.ValueOr(1);
+        uint16_t __block responsesNeeded = repeatCount;
+        while (repeatCount--) {
+            [cluster findStreamConfigurationWithParams:params completion:
+                                                                  ^(MTRPushAVStreamTransportClusterFindStreamConfigurationResponseParams * _Nullable values, NSError * _Nullable error) {
+                                                                      NSLog(@"Values: %@", values);
+                                                                      if (error == nil) {
+                                                                          constexpr chip::CommandId responseId = chip::app::Clusters::PushAvStreamTransport::Commands::FindStreamConfigurationResponse::Id;
+                                                                          RemoteDataModelLogger::LogCommandAsJSON(@(endpointId), @(clusterId), @(responseId), values);
+                                                                      }
+                                                                      responsesNeeded--;
+                                                                      if (error != nil) {
+                                                                          mError = error;
+                                                                          LogNSError("Error", error);
+                                                                          constexpr chip::CommandId responseId = chip::app::Clusters::PushAvStreamTransport::Commands::FindStreamConfigurationResponse::Id;
+                                                                          RemoteDataModelLogger::LogCommandErrorAsJSON(@(endpointId), @(clusterId), @(responseId), error);
+                                                                      }
+                                                                      if (responsesNeeded == 0) {
+                                                                          SetCommandExitStatus(mError);
+                                                                      }
+                                                                  }];
+        }
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    chip::app::Clusters::PushAvStreamTransport::Commands::FindStreamConfiguration::Type mRequest;
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute SupportedContainerFormats
+ */
+class ReadPushAvStreamTransportSupportedContainerFormats : public ReadAttribute {
+public:
+    ReadPushAvStreamTransportSupportedContainerFormats()
+        : ReadAttribute("supported-container-formats")
+    {
+    }
+
+    ~ReadPushAvStreamTransportSupportedContainerFormats()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::PushAvStreamTransport::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::PushAvStreamTransport::Attributes::SupportedContainerFormats::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterPushAVStreamTransport alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeSupportedContainerFormatsWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"PushAVStreamTransport.SupportedContainerFormats response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("PushAVStreamTransport SupportedContainerFormats read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributePushAvStreamTransportSupportedContainerFormats : public SubscribeAttribute {
+public:
+    SubscribeAttributePushAvStreamTransportSupportedContainerFormats()
+        : SubscribeAttribute("supported-container-formats")
+    {
+    }
+
+    ~SubscribeAttributePushAvStreamTransportSupportedContainerFormats()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::PushAvStreamTransport::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::PushAvStreamTransport::Attributes::SupportedContainerFormats::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterPushAVStreamTransport alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeSupportedContainerFormatsWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"PushAVStreamTransport.SupportedContainerFormats response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute SupportedIngestMethods
+ */
+class ReadPushAvStreamTransportSupportedIngestMethods : public ReadAttribute {
+public:
+    ReadPushAvStreamTransportSupportedIngestMethods()
+        : ReadAttribute("supported-ingest-methods")
+    {
+    }
+
+    ~ReadPushAvStreamTransportSupportedIngestMethods()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::PushAvStreamTransport::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::PushAvStreamTransport::Attributes::SupportedIngestMethods::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterPushAVStreamTransport alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeSupportedIngestMethodsWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"PushAVStreamTransport.SupportedIngestMethods response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("PushAVStreamTransport SupportedIngestMethods read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributePushAvStreamTransportSupportedIngestMethods : public SubscribeAttribute {
+public:
+    SubscribeAttributePushAvStreamTransportSupportedIngestMethods()
+        : SubscribeAttribute("supported-ingest-methods")
+    {
+    }
+
+    ~SubscribeAttributePushAvStreamTransportSupportedIngestMethods()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::PushAvStreamTransport::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::PushAvStreamTransport::Attributes::SupportedIngestMethods::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterPushAVStreamTransport alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeSupportedIngestMethodsWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"PushAVStreamTransport.SupportedIngestMethods response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute CurrentConnections
+ */
+class ReadPushAvStreamTransportCurrentConnections : public ReadAttribute {
+public:
+    ReadPushAvStreamTransportCurrentConnections()
+        : ReadAttribute("current-connections")
+    {
+    }
+
+    ~ReadPushAvStreamTransportCurrentConnections()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::PushAvStreamTransport::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::PushAvStreamTransport::Attributes::CurrentConnections::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterPushAVStreamTransport alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeCurrentConnectionsWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"PushAVStreamTransport.CurrentConnections response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("PushAVStreamTransport CurrentConnections read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributePushAvStreamTransportCurrentConnections : public SubscribeAttribute {
+public:
+    SubscribeAttributePushAvStreamTransportCurrentConnections()
+        : SubscribeAttribute("current-connections")
+    {
+    }
+
+    ~SubscribeAttributePushAvStreamTransportCurrentConnections()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::PushAvStreamTransport::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::PushAvStreamTransport::Attributes::CurrentConnections::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterPushAVStreamTransport alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeCurrentConnectionsWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"PushAVStreamTransport.CurrentConnections response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute GeneratedCommandList
+ */
+class ReadPushAvStreamTransportGeneratedCommandList : public ReadAttribute {
+public:
+    ReadPushAvStreamTransportGeneratedCommandList()
+        : ReadAttribute("generated-command-list")
+    {
+    }
+
+    ~ReadPushAvStreamTransportGeneratedCommandList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::PushAvStreamTransport::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::PushAvStreamTransport::Attributes::GeneratedCommandList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterPushAVStreamTransport alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeGeneratedCommandListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"PushAVStreamTransport.GeneratedCommandList response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("PushAVStreamTransport GeneratedCommandList read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributePushAvStreamTransportGeneratedCommandList : public SubscribeAttribute {
+public:
+    SubscribeAttributePushAvStreamTransportGeneratedCommandList()
+        : SubscribeAttribute("generated-command-list")
+    {
+    }
+
+    ~SubscribeAttributePushAvStreamTransportGeneratedCommandList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::PushAvStreamTransport::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::PushAvStreamTransport::Attributes::GeneratedCommandList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterPushAVStreamTransport alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeGeneratedCommandListWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"PushAVStreamTransport.GeneratedCommandList response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute AcceptedCommandList
+ */
+class ReadPushAvStreamTransportAcceptedCommandList : public ReadAttribute {
+public:
+    ReadPushAvStreamTransportAcceptedCommandList()
+        : ReadAttribute("accepted-command-list")
+    {
+    }
+
+    ~ReadPushAvStreamTransportAcceptedCommandList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::PushAvStreamTransport::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::PushAvStreamTransport::Attributes::AcceptedCommandList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterPushAVStreamTransport alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeAcceptedCommandListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"PushAVStreamTransport.AcceptedCommandList response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("PushAVStreamTransport AcceptedCommandList read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributePushAvStreamTransportAcceptedCommandList : public SubscribeAttribute {
+public:
+    SubscribeAttributePushAvStreamTransportAcceptedCommandList()
+        : SubscribeAttribute("accepted-command-list")
+    {
+    }
+
+    ~SubscribeAttributePushAvStreamTransportAcceptedCommandList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::PushAvStreamTransport::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::PushAvStreamTransport::Attributes::AcceptedCommandList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterPushAVStreamTransport alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeAcceptedCommandListWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"PushAVStreamTransport.AcceptedCommandList response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute EventList
+ */
+class ReadPushAvStreamTransportEventList : public ReadAttribute {
+public:
+    ReadPushAvStreamTransportEventList()
+        : ReadAttribute("event-list")
+    {
+    }
+
+    ~ReadPushAvStreamTransportEventList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::PushAvStreamTransport::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::PushAvStreamTransport::Attributes::EventList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterPushAVStreamTransport alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeEventListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"PushAVStreamTransport.EventList response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("PushAVStreamTransport EventList read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributePushAvStreamTransportEventList : public SubscribeAttribute {
+public:
+    SubscribeAttributePushAvStreamTransportEventList()
+        : SubscribeAttribute("event-list")
+    {
+    }
+
+    ~SubscribeAttributePushAvStreamTransportEventList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::PushAvStreamTransport::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::PushAvStreamTransport::Attributes::EventList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterPushAVStreamTransport alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeEventListWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"PushAVStreamTransport.EventList response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute AttributeList
+ */
+class ReadPushAvStreamTransportAttributeList : public ReadAttribute {
+public:
+    ReadPushAvStreamTransportAttributeList()
+        : ReadAttribute("attribute-list")
+    {
+    }
+
+    ~ReadPushAvStreamTransportAttributeList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::PushAvStreamTransport::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::PushAvStreamTransport::Attributes::AttributeList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterPushAVStreamTransport alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"PushAVStreamTransport.AttributeList response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("PushAVStreamTransport AttributeList read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributePushAvStreamTransportAttributeList : public SubscribeAttribute {
+public:
+    SubscribeAttributePushAvStreamTransportAttributeList()
+        : SubscribeAttribute("attribute-list")
+    {
+    }
+
+    ~SubscribeAttributePushAvStreamTransportAttributeList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::PushAvStreamTransport::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::PushAvStreamTransport::Attributes::AttributeList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterPushAVStreamTransport alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeAttributeListWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"PushAVStreamTransport.AttributeList response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute FeatureMap
+ */
+class ReadPushAvStreamTransportFeatureMap : public ReadAttribute {
+public:
+    ReadPushAvStreamTransportFeatureMap()
+        : ReadAttribute("feature-map")
+    {
+    }
+
+    ~ReadPushAvStreamTransportFeatureMap()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::PushAvStreamTransport::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::PushAvStreamTransport::Attributes::FeatureMap::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterPushAVStreamTransport alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeFeatureMapWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"PushAVStreamTransport.FeatureMap response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("PushAVStreamTransport FeatureMap read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributePushAvStreamTransportFeatureMap : public SubscribeAttribute {
+public:
+    SubscribeAttributePushAvStreamTransportFeatureMap()
+        : SubscribeAttribute("feature-map")
+    {
+    }
+
+    ~SubscribeAttributePushAvStreamTransportFeatureMap()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::PushAvStreamTransport::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::PushAvStreamTransport::Attributes::FeatureMap::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterPushAVStreamTransport alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeFeatureMapWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"PushAVStreamTransport.FeatureMap response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute ClusterRevision
+ */
+class ReadPushAvStreamTransportClusterRevision : public ReadAttribute {
+public:
+    ReadPushAvStreamTransportClusterRevision()
+        : ReadAttribute("cluster-revision")
+    {
+    }
+
+    ~ReadPushAvStreamTransportClusterRevision()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::PushAvStreamTransport::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::PushAvStreamTransport::Attributes::ClusterRevision::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterPushAVStreamTransport alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeClusterRevisionWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"PushAVStreamTransport.ClusterRevision response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("PushAVStreamTransport ClusterRevision read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributePushAvStreamTransportClusterRevision : public SubscribeAttribute {
+public:
+    SubscribeAttributePushAvStreamTransportClusterRevision()
+        : SubscribeAttribute("cluster-revision")
+    {
+    }
+
+    ~SubscribeAttributePushAvStreamTransportClusterRevision()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::PushAvStreamTransport::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::PushAvStreamTransport::Attributes::ClusterRevision::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterPushAVStreamTransport alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeClusterRevisionWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"PushAVStreamTransport.ClusterRevision response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+/*----------------------------------------------------------------------------*\
+| Cluster Chime                                                       | 0x0556 |
+|------------------------------------------------------------------------------|
+| Commands:                                                           |        |
+| * PlayChimeSound                                                    |   0x00 |
+|------------------------------------------------------------------------------|
+| Attributes:                                                         |        |
+| * InstalledChimeSounds                                              | 0x0000 |
+| * ActiveChimeSoundId                                                | 0x0001 |
+| * Enabled                                                           | 0x0002 |
+| * GeneratedCommandList                                              | 0xFFF8 |
+| * AcceptedCommandList                                               | 0xFFF9 |
+| * EventList                                                         | 0xFFFA |
+| * AttributeList                                                     | 0xFFFB |
+| * FeatureMap                                                        | 0xFFFC |
+| * ClusterRevision                                                   | 0xFFFD |
+|------------------------------------------------------------------------------|
+| Events:                                                             |        |
+\*----------------------------------------------------------------------------*/
+
+#if MTR_ENABLE_PROVISIONAL
+/*
+ * Command PlayChimeSound
+ */
+class ChimePlayChimeSound : public ClusterCommand {
+public:
+    ChimePlayChimeSound()
+        : ClusterCommand("play-chime-sound")
+    {
+        ClusterCommand::AddArguments();
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::Chime::Id;
+        constexpr chip::CommandId commandId = chip::app::Clusters::Chime::Commands::PlayChimeSound::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") command (0x%08" PRIX32 ") on endpoint %u", clusterId, commandId, endpointId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterChime alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRChimeClusterPlayChimeSoundParams alloc] init];
+        params.timedInvokeTimeoutMs = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+        uint16_t repeatCount = mRepeatCount.ValueOr(1);
+        uint16_t __block responsesNeeded = repeatCount;
+        while (repeatCount--) {
+            [cluster playChimeSoundWithParams:params completion:
+                                                         ^(NSError * _Nullable error) {
+                                                             responsesNeeded--;
+                                                             if (error != nil) {
+                                                                 mError = error;
+                                                                 LogNSError("Error", error);
+                                                                 RemoteDataModelLogger::LogCommandErrorAsJSON(@(endpointId), @(clusterId), @(commandId), error);
+                                                             }
+                                                             if (responsesNeeded == 0) {
+                                                                 SetCommandExitStatus(mError);
+                                                             }
+                                                         }];
+        }
+        return CHIP_NO_ERROR;
+    }
+
+private:
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute InstalledChimeSounds
+ */
+class ReadChimeInstalledChimeSounds : public ReadAttribute {
+public:
+    ReadChimeInstalledChimeSounds()
+        : ReadAttribute("installed-chime-sounds")
+    {
+    }
+
+    ~ReadChimeInstalledChimeSounds()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::Chime::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::Chime::Attributes::InstalledChimeSounds::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterChime alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeInstalledChimeSoundsWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"Chime.InstalledChimeSounds response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("Chime InstalledChimeSounds read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeChimeInstalledChimeSounds : public SubscribeAttribute {
+public:
+    SubscribeAttributeChimeInstalledChimeSounds()
+        : SubscribeAttribute("installed-chime-sounds")
+    {
+    }
+
+    ~SubscribeAttributeChimeInstalledChimeSounds()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::Chime::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::Chime::Attributes::InstalledChimeSounds::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterChime alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeInstalledChimeSoundsWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"Chime.InstalledChimeSounds response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute ActiveChimeSoundId
+ */
+class ReadChimeActiveChimeSoundId : public ReadAttribute {
+public:
+    ReadChimeActiveChimeSoundId()
+        : ReadAttribute("active-chime-sound-id")
+    {
+    }
+
+    ~ReadChimeActiveChimeSoundId()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::Chime::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::Chime::Attributes::ActiveChimeSoundId::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterChime alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeActiveChimeSoundIdWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"Chime.ActiveChimeSoundId response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("Chime ActiveChimeSoundId read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class WriteChimeActiveChimeSoundId : public WriteAttribute {
+public:
+    WriteChimeActiveChimeSoundId()
+        : WriteAttribute("active-chime-sound-id")
+    {
+        AddArgument("attr-name", "active-chime-sound-id");
+        AddArgument("attr-value", 0, UINT8_MAX, &mValue);
+        WriteAttribute::AddArguments();
+    }
+
+    ~WriteChimeActiveChimeSoundId()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::Chime::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::Chime::Attributes::ActiveChimeSoundId::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") WriteAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterChime alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRWriteParams alloc] init];
+        params.timedWriteTimeout = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+        params.dataVersion = mDataVersion.HasValue() ? [NSNumber numberWithUnsignedInt:mDataVersion.Value()] : nil;
+        NSNumber * _Nonnull value = [NSNumber numberWithUnsignedChar:mValue];
+
+        [cluster writeAttributeActiveChimeSoundIdWithValue:value params:params completion:^(NSError * _Nullable error) {
+            if (error != nil) {
+                LogNSError("Chime ActiveChimeSoundId write Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    uint8_t mValue;
+};
+
+class SubscribeAttributeChimeActiveChimeSoundId : public SubscribeAttribute {
+public:
+    SubscribeAttributeChimeActiveChimeSoundId()
+        : SubscribeAttribute("active-chime-sound-id")
+    {
+    }
+
+    ~SubscribeAttributeChimeActiveChimeSoundId()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::Chime::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::Chime::Attributes::ActiveChimeSoundId::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterChime alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeActiveChimeSoundIdWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"Chime.ActiveChimeSoundId response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute Enabled
+ */
+class ReadChimeEnabled : public ReadAttribute {
+public:
+    ReadChimeEnabled()
+        : ReadAttribute("enabled")
+    {
+    }
+
+    ~ReadChimeEnabled()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::Chime::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::Chime::Attributes::Enabled::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterChime alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeEnabledWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"Chime.Enabled response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("Chime Enabled read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class WriteChimeEnabled : public WriteAttribute {
+public:
+    WriteChimeEnabled()
+        : WriteAttribute("enabled")
+    {
+        AddArgument("attr-name", "enabled");
+        AddArgument("attr-value", 0, 1, &mValue);
+        WriteAttribute::AddArguments();
+    }
+
+    ~WriteChimeEnabled()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::Chime::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::Chime::Attributes::Enabled::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") WriteAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterChime alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRWriteParams alloc] init];
+        params.timedWriteTimeout = mTimedInteractionTimeoutMs.HasValue() ? [NSNumber numberWithUnsignedShort:mTimedInteractionTimeoutMs.Value()] : nil;
+        params.dataVersion = mDataVersion.HasValue() ? [NSNumber numberWithUnsignedInt:mDataVersion.Value()] : nil;
+        NSNumber * _Nonnull value = [NSNumber numberWithBool:mValue];
+
+        [cluster writeAttributeEnabledWithValue:value params:params completion:^(NSError * _Nullable error) {
+            if (error != nil) {
+                LogNSError("Chime Enabled write Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+
+private:
+    bool mValue;
+};
+
+class SubscribeAttributeChimeEnabled : public SubscribeAttribute {
+public:
+    SubscribeAttributeChimeEnabled()
+        : SubscribeAttribute("enabled")
+    {
+    }
+
+    ~SubscribeAttributeChimeEnabled()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::Chime::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::Chime::Attributes::Enabled::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterChime alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeEnabledWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"Chime.Enabled response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute GeneratedCommandList
+ */
+class ReadChimeGeneratedCommandList : public ReadAttribute {
+public:
+    ReadChimeGeneratedCommandList()
+        : ReadAttribute("generated-command-list")
+    {
+    }
+
+    ~ReadChimeGeneratedCommandList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::Chime::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::Chime::Attributes::GeneratedCommandList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterChime alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeGeneratedCommandListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"Chime.GeneratedCommandList response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("Chime GeneratedCommandList read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeChimeGeneratedCommandList : public SubscribeAttribute {
+public:
+    SubscribeAttributeChimeGeneratedCommandList()
+        : SubscribeAttribute("generated-command-list")
+    {
+    }
+
+    ~SubscribeAttributeChimeGeneratedCommandList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::Chime::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::Chime::Attributes::GeneratedCommandList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterChime alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeGeneratedCommandListWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"Chime.GeneratedCommandList response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute AcceptedCommandList
+ */
+class ReadChimeAcceptedCommandList : public ReadAttribute {
+public:
+    ReadChimeAcceptedCommandList()
+        : ReadAttribute("accepted-command-list")
+    {
+    }
+
+    ~ReadChimeAcceptedCommandList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::Chime::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::Chime::Attributes::AcceptedCommandList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterChime alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeAcceptedCommandListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"Chime.AcceptedCommandList response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("Chime AcceptedCommandList read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeChimeAcceptedCommandList : public SubscribeAttribute {
+public:
+    SubscribeAttributeChimeAcceptedCommandList()
+        : SubscribeAttribute("accepted-command-list")
+    {
+    }
+
+    ~SubscribeAttributeChimeAcceptedCommandList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::Chime::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::Chime::Attributes::AcceptedCommandList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterChime alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeAcceptedCommandListWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"Chime.AcceptedCommandList response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute EventList
+ */
+class ReadChimeEventList : public ReadAttribute {
+public:
+    ReadChimeEventList()
+        : ReadAttribute("event-list")
+    {
+    }
+
+    ~ReadChimeEventList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::Chime::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::Chime::Attributes::EventList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterChime alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeEventListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"Chime.EventList response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("Chime EventList read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeChimeEventList : public SubscribeAttribute {
+public:
+    SubscribeAttributeChimeEventList()
+        : SubscribeAttribute("event-list")
+    {
+    }
+
+    ~SubscribeAttributeChimeEventList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::Chime::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::Chime::Attributes::EventList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterChime alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeEventListWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"Chime.EventList response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute AttributeList
+ */
+class ReadChimeAttributeList : public ReadAttribute {
+public:
+    ReadChimeAttributeList()
+        : ReadAttribute("attribute-list")
+    {
+    }
+
+    ~ReadChimeAttributeList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::Chime::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::Chime::Attributes::AttributeList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterChime alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"Chime.AttributeList response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("Chime AttributeList read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeChimeAttributeList : public SubscribeAttribute {
+public:
+    SubscribeAttributeChimeAttributeList()
+        : SubscribeAttribute("attribute-list")
+    {
+    }
+
+    ~SubscribeAttributeChimeAttributeList()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::Chime::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::Chime::Attributes::AttributeList::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterChime alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeAttributeListWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSArray * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"Chime.AttributeList response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute FeatureMap
+ */
+class ReadChimeFeatureMap : public ReadAttribute {
+public:
+    ReadChimeFeatureMap()
+        : ReadAttribute("feature-map")
+    {
+    }
+
+    ~ReadChimeFeatureMap()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::Chime::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::Chime::Attributes::FeatureMap::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterChime alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeFeatureMapWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"Chime.FeatureMap response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("Chime FeatureMap read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeChimeFeatureMap : public SubscribeAttribute {
+public:
+    SubscribeAttributeChimeFeatureMap()
+        : SubscribeAttribute("feature-map")
+    {
+    }
+
+    ~SubscribeAttributeChimeFeatureMap()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::Chime::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::Chime::Attributes::FeatureMap::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterChime alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeFeatureMapWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"Chime.FeatureMap response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+
+/*
+ * Attribute ClusterRevision
+ */
+class ReadChimeClusterRevision : public ReadAttribute {
+public:
+    ReadChimeClusterRevision()
+        : ReadAttribute("cluster-revision")
+    {
+    }
+
+    ~ReadChimeClusterRevision()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::Chime::Id;
+        constexpr chip::AttributeId attributeId = chip::app::Clusters::Chime::Attributes::ClusterRevision::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReadAttribute (0x%08" PRIX32 ") on endpoint %u", endpointId, clusterId, attributeId);
+
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterChime alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        [cluster readAttributeClusterRevisionWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+            NSLog(@"Chime.ClusterRevision response %@", [value description]);
+            if (error == nil) {
+                RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+            } else {
+                LogNSError("Chime ClusterRevision read Error", error);
+                RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+            }
+            SetCommandExitStatus(error);
+        }];
+        return CHIP_NO_ERROR;
+    }
+};
+
+class SubscribeAttributeChimeClusterRevision : public SubscribeAttribute {
+public:
+    SubscribeAttributeChimeClusterRevision()
+        : SubscribeAttribute("cluster-revision")
+    {
+    }
+
+    ~SubscribeAttributeChimeClusterRevision()
+    {
+    }
+
+    CHIP_ERROR SendCommand(MTRBaseDevice * device, chip::EndpointId endpointId) override
+    {
+        constexpr chip::ClusterId clusterId = chip::app::Clusters::Chime::Id;
+        constexpr chip::CommandId attributeId = chip::app::Clusters::Chime::Attributes::ClusterRevision::Id;
+
+        ChipLogProgress(chipTool, "Sending cluster (0x%08" PRIX32 ") ReportAttribute (0x%08" PRIX32 ") on endpoint %u", clusterId, attributeId, endpointId);
+        dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL);
+        __auto_type * cluster = [[MTRBaseClusterChime alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue];
+        __auto_type * params = [[MTRSubscribeParams alloc] initWithMinInterval:@(mMinInterval) maxInterval:@(mMaxInterval)];
+        if (mKeepSubscriptions.HasValue()) {
+            params.replaceExistingSubscriptions = !mKeepSubscriptions.Value();
+        }
+        if (mFabricFiltered.HasValue()) {
+            params.filterByFabric = mFabricFiltered.Value();
+        }
+        if (mAutoResubscribe.HasValue()) {
+            params.resubscribeAutomatically = mAutoResubscribe.Value();
+        }
+        [cluster subscribeAttributeClusterRevisionWithParams:params
+            subscriptionEstablished:^() { mSubscriptionEstablished = YES; }
+            reportHandler:^(NSNumber * _Nullable value, NSError * _Nullable error) {
+                NSLog(@"Chime.ClusterRevision response %@", [value description]);
+                if (error == nil) {
+                    RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);
+                } else {
+                    RemoteDataModelLogger::LogAttributeErrorAsJSON(@(endpointId), @(clusterId), @(attributeId), error);
+                }
+                SetCommandExitStatus(error);
+            }];
+
+        return CHIP_NO_ERROR;
+    }
+};
+
 #endif // MTR_ENABLE_PROVISIONAL
 #endif // MTR_ENABLE_PROVISIONAL
 #if MTR_ENABLE_PROVISIONAL
@@ -198632,6 +211135,641 @@ void registerClusterContentAppObserver(Commands & commands)
     commands.RegisterCluster(clusterName, clusterCommands);
 #endif // MTR_ENABLE_PROVISIONAL
 }
+void registerClusterCameraAvStreamManagement(Commands & commands)
+{
+#if MTR_ENABLE_PROVISIONAL
+    using namespace chip::app::Clusters::CameraAvStreamManagement;
+
+    const char * clusterName = "CameraAvStreamManagement";
+
+    commands_list clusterCommands = {
+        make_unique<ClusterCommand>(Id), //
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<CameraAvStreamManagementAudioStreamAllocate>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<CameraAvStreamManagementAudioStreamDeallocate>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<CameraAvStreamManagementVideoStreamAllocate>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<CameraAvStreamManagementVideoStreamModify>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<CameraAvStreamManagementVideoStreamDeallocate>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<CameraAvStreamManagementSnapshotStreamAllocate>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<CameraAvStreamManagementSnapshotStreamDeallocate>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<CameraAvStreamManagementSetStreamPriority>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<CameraAvStreamManagementCaptureSnapshot>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<CameraAvStreamManagementSetViewport>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<CameraAvStreamManagementSetImageRotation>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<CameraAvStreamManagementSetImageFlipHorizontal>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<CameraAvStreamManagementSetImageFlipVertical>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+        make_unique<ReadAttribute>(Id), //
+        make_unique<WriteAttribute>(Id), //
+        make_unique<SubscribeAttribute>(Id), //
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementMaxConcurrentVideoEncoders>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementMaxConcurrentVideoEncoders>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementMaxEncodedPixelRate>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementMaxEncodedPixelRate>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementVideoSensorParams>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementVideoSensorParams>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementNightVisionCapable>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementNightVisionCapable>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementMinViewPortWidth>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementMinViewPortWidth>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementMinViewPortHeight>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementMinViewPortHeight>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementRateDistortionTradeOffPoints>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementRateDistortionTradeOffPoints>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementMaxPreRollBufferSize>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementMaxPreRollBufferSize>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementMicrophoneCapabilities>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementMicrophoneCapabilities>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementSpeakerCapabilities>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementSpeakerCapabilities>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementTwoWayTalkSupport>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementTwoWayTalkSupport>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementSupportedSnapshotParams>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementSupportedSnapshotParams>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementHDRCapable>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementHDRCapable>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementMaxNetworkBandwidth>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementMaxNetworkBandwidth>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementCurrentFrameRate>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementCurrentFrameRate>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementHDRMode>(), //
+        make_unique<WriteCameraAvStreamManagementHDRMode>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementHDRMode>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementCurrentVideoCodecs>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementCurrentVideoCodecs>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementCurrentSnapshotConfig>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementCurrentSnapshotConfig>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementFabricsUsingCamera>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementFabricsUsingCamera>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementAllocatedVideoStreams>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementAllocatedVideoStreams>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementAllocatedAudioStreams>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementAllocatedAudioStreams>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementAllocatedSnapshotStreams>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementAllocatedSnapshotStreams>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementRankedVideoStreamPrioritiesList>(), //
+        make_unique<WriteCameraAvStreamManagementRankedVideoStreamPrioritiesList>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementRankedVideoStreamPrioritiesList>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementSoftRecordingPrivacyModeSetting>(), //
+        make_unique<WriteCameraAvStreamManagementSoftRecordingPrivacyModeSetting>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementSoftRecordingPrivacyModeSetting>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementSoftLivestreamPrivacyModeSetting>(), //
+        make_unique<WriteCameraAvStreamManagementSoftLivestreamPrivacyModeSetting>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementSoftLivestreamPrivacyModeSetting>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementHardPrivacyMode>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementHardPrivacyMode>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementNightVision>(), //
+        make_unique<WriteCameraAvStreamManagementNightVision>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementNightVision>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementNightVisionIllum>(), //
+        make_unique<WriteCameraAvStreamManagementNightVisionIllum>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementNightVisionIllum>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementAwb>(), //
+        make_unique<WriteCameraAvStreamManagementAwb>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementAwb>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementShutterSpeed>(), //
+        make_unique<WriteCameraAvStreamManagementShutterSpeed>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementShutterSpeed>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementIso>(), //
+        make_unique<WriteCameraAvStreamManagementIso>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementIso>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementViewport>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementViewport>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementSpkrOnOff>(), //
+        make_unique<WriteCameraAvStreamManagementSpkrOnOff>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementSpkrOnOff>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementSpkrVolumeLevel>(), //
+        make_unique<WriteCameraAvStreamManagementSpkrVolumeLevel>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementSpkrVolumeLevel>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementSpkrMaxLevel>(), //
+        make_unique<WriteCameraAvStreamManagementSpkrMaxLevel>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementSpkrMaxLevel>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementSpkrMinLevel>(), //
+        make_unique<WriteCameraAvStreamManagementSpkrMinLevel>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementSpkrMinLevel>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementMicOnOff>(), //
+        make_unique<WriteCameraAvStreamManagementMicOnOff>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementMicOnOff>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementMicCurrentLevel>(), //
+        make_unique<WriteCameraAvStreamManagementMicCurrentLevel>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementMicCurrentLevel>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementMicMaxLevel>(), //
+        make_unique<WriteCameraAvStreamManagementMicMaxLevel>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementMicMaxLevel>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementMicMinLevel>(), //
+        make_unique<WriteCameraAvStreamManagementMicMinLevel>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementMicMinLevel>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementMicAGC>(), //
+        make_unique<WriteCameraAvStreamManagementMicAGC>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementMicAGC>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementImageRotation>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementImageRotation>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementImageFlipHorizontal>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementImageFlipHorizontal>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementImageFlipVertical>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementImageFlipVertical>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementLocalVideoRecordingEnabled>(), //
+        make_unique<WriteCameraAvStreamManagementLocalVideoRecordingEnabled>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementLocalVideoRecordingEnabled>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementLocalSnapshotRecordingEnabled>(), //
+        make_unique<WriteCameraAvStreamManagementLocalSnapshotRecordingEnabled>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementLocalSnapshotRecordingEnabled>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementStatusLight>(), //
+        make_unique<WriteCameraAvStreamManagementStatusLight>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementStatusLight>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementStatusLightBrightness>(), //
+        make_unique<WriteCameraAvStreamManagementStatusLightBrightness>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementStatusLightBrightness>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementDepthSensorStatus>(), //
+        make_unique<WriteCameraAvStreamManagementDepthSensorStatus>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementDepthSensorStatus>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementWatermarkEnabled>(), //
+        make_unique<WriteCameraAvStreamManagementWatermarkEnabled>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementWatermarkEnabled>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementOSDEnabled>(), //
+        make_unique<WriteCameraAvStreamManagementOSDEnabled>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementOSDEnabled>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementGeneratedCommandList>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementGeneratedCommandList>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementAcceptedCommandList>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementAcceptedCommandList>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementEventList>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementEventList>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementAttributeList>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementAttributeList>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementFeatureMap>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementFeatureMap>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvStreamManagementClusterRevision>(), //
+        make_unique<SubscribeAttributeCameraAvStreamManagementClusterRevision>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+        make_unique<ReadEvent>(Id), //
+        make_unique<SubscribeEvent>(Id), //
+    };
+
+    commands.RegisterCluster(clusterName, clusterCommands);
+#endif // MTR_ENABLE_PROVISIONAL
+}
+void registerClusterCameraAvSettingsUserLevelManagement(Commands & commands)
+{
+#if MTR_ENABLE_PROVISIONAL
+    using namespace chip::app::Clusters::CameraAvSettingsUserLevelManagement;
+
+    const char * clusterName = "CameraAvSettingsUserLevelManagement";
+
+    commands_list clusterCommands = {
+        make_unique<ClusterCommand>(Id), //
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<CameraAvSettingsUserLevelManagementMptzSet>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<CameraAvSettingsUserLevelManagementMptzRelativeMove>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<CameraAvSettingsUserLevelManagementSetAsPreset>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<CameraAvSettingsUserLevelManagementDptzSetViewport>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<CameraAvSettingsUserLevelManagementDptzRelativeMove>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+        make_unique<ReadAttribute>(Id), //
+        make_unique<WriteAttribute>(Id), //
+        make_unique<SubscribeAttribute>(Id), //
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvSettingsUserLevelManagementMptz>(), //
+        make_unique<SubscribeAttributeCameraAvSettingsUserLevelManagementMptz>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvSettingsUserLevelManagementMaxPresets>(), //
+        make_unique<SubscribeAttributeCameraAvSettingsUserLevelManagementMaxPresets>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvSettingsUserLevelManagementPresetMptzTable>(), //
+        make_unique<SubscribeAttributeCameraAvSettingsUserLevelManagementPresetMptzTable>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvSettingsUserLevelManagementMptzRelativeMove>(), //
+        make_unique<SubscribeAttributeCameraAvSettingsUserLevelManagementMptzRelativeMove>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvSettingsUserLevelManagementDptzRelativeMove>(), //
+        make_unique<SubscribeAttributeCameraAvSettingsUserLevelManagementDptzRelativeMove>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvSettingsUserLevelManagementGeneratedCommandList>(), //
+        make_unique<SubscribeAttributeCameraAvSettingsUserLevelManagementGeneratedCommandList>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvSettingsUserLevelManagementAcceptedCommandList>(), //
+        make_unique<SubscribeAttributeCameraAvSettingsUserLevelManagementAcceptedCommandList>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvSettingsUserLevelManagementEventList>(), //
+        make_unique<SubscribeAttributeCameraAvSettingsUserLevelManagementEventList>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvSettingsUserLevelManagementAttributeList>(), //
+        make_unique<SubscribeAttributeCameraAvSettingsUserLevelManagementAttributeList>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvSettingsUserLevelManagementFeatureMap>(), //
+        make_unique<SubscribeAttributeCameraAvSettingsUserLevelManagementFeatureMap>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadCameraAvSettingsUserLevelManagementClusterRevision>(), //
+        make_unique<SubscribeAttributeCameraAvSettingsUserLevelManagementClusterRevision>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+    };
+
+    commands.RegisterCluster(clusterName, clusterCommands);
+#endif // MTR_ENABLE_PROVISIONAL
+}
+void registerClusterWebRTCTransportProvider(Commands & commands)
+{
+#if MTR_ENABLE_PROVISIONAL
+    using namespace chip::app::Clusters::WebRTCTransportProvider;
+
+    const char * clusterName = "WebRTCTransportProvider";
+
+    commands_list clusterCommands = {
+        make_unique<ClusterCommand>(Id), //
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<WebRTCTransportProviderWebRTCSolicitOffer>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<WebRTCTransportProviderWebRTCProvideOffer>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<WebRTCTransportProviderWebRTCProvideAnswer>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<WebRTCTransportProviderWebRTCProvideICECandidate>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<WebRTCTransportProviderWebRTCEndSession>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+        make_unique<ReadAttribute>(Id), //
+        make_unique<WriteAttribute>(Id), //
+        make_unique<SubscribeAttribute>(Id), //
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadWebRTCTransportProviderCurrentSessions>(), //
+        make_unique<SubscribeAttributeWebRTCTransportProviderCurrentSessions>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadWebRTCTransportProviderGeneratedCommandList>(), //
+        make_unique<SubscribeAttributeWebRTCTransportProviderGeneratedCommandList>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadWebRTCTransportProviderAcceptedCommandList>(), //
+        make_unique<SubscribeAttributeWebRTCTransportProviderAcceptedCommandList>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadWebRTCTransportProviderEventList>(), //
+        make_unique<SubscribeAttributeWebRTCTransportProviderEventList>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadWebRTCTransportProviderAttributeList>(), //
+        make_unique<SubscribeAttributeWebRTCTransportProviderAttributeList>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadWebRTCTransportProviderFeatureMap>(), //
+        make_unique<SubscribeAttributeWebRTCTransportProviderFeatureMap>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadWebRTCTransportProviderClusterRevision>(), //
+        make_unique<SubscribeAttributeWebRTCTransportProviderClusterRevision>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+    };
+
+    commands.RegisterCluster(clusterName, clusterCommands);
+#endif // MTR_ENABLE_PROVISIONAL
+}
+void registerClusterWebRTCTransportRequestor(Commands & commands)
+{
+#if MTR_ENABLE_PROVISIONAL
+    using namespace chip::app::Clusters::WebRTCTransportRequestor;
+
+    const char * clusterName = "WebRTCTransportRequestor";
+
+    commands_list clusterCommands = {
+        make_unique<ClusterCommand>(Id), //
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<WebRTCTransportRequestorWebRTCOffer>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<WebRTCTransportRequestorWebRTCAnswer>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<WebRTCTransportRequestorWebRTCICECandidate>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<WebRTCTransportRequestorWebRTCEnd>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+        make_unique<ReadAttribute>(Id), //
+        make_unique<WriteAttribute>(Id), //
+        make_unique<SubscribeAttribute>(Id), //
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadWebRTCTransportRequestorCurrentSessions>(), //
+        make_unique<SubscribeAttributeWebRTCTransportRequestorCurrentSessions>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadWebRTCTransportRequestorGeneratedCommandList>(), //
+        make_unique<SubscribeAttributeWebRTCTransportRequestorGeneratedCommandList>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadWebRTCTransportRequestorAcceptedCommandList>(), //
+        make_unique<SubscribeAttributeWebRTCTransportRequestorAcceptedCommandList>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadWebRTCTransportRequestorEventList>(), //
+        make_unique<SubscribeAttributeWebRTCTransportRequestorEventList>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadWebRTCTransportRequestorAttributeList>(), //
+        make_unique<SubscribeAttributeWebRTCTransportRequestorAttributeList>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadWebRTCTransportRequestorFeatureMap>(), //
+        make_unique<SubscribeAttributeWebRTCTransportRequestorFeatureMap>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadWebRTCTransportRequestorClusterRevision>(), //
+        make_unique<SubscribeAttributeWebRTCTransportRequestorClusterRevision>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+    };
+
+    commands.RegisterCluster(clusterName, clusterCommands);
+#endif // MTR_ENABLE_PROVISIONAL
+}
+void registerClusterPushAvStreamTransport(Commands & commands)
+{
+#if MTR_ENABLE_PROVISIONAL
+    using namespace chip::app::Clusters::PushAvStreamTransport;
+
+    const char * clusterName = "PushAvStreamTransport";
+
+    commands_list clusterCommands = {
+        make_unique<ClusterCommand>(Id), //
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<PushAvStreamTransportAllocatePushTransport>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<PushAvStreamTransportDeallocatePushTransport>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<PushAvStreamTransportModifyPushTransport>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<PushAvStreamTransportSetTransportStatus>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<PushAvStreamTransportManuallyTriggerTransport>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<PushAvStreamTransportFindStreamConfiguration>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+        make_unique<ReadAttribute>(Id), //
+        make_unique<WriteAttribute>(Id), //
+        make_unique<SubscribeAttribute>(Id), //
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadPushAvStreamTransportSupportedContainerFormats>(), //
+        make_unique<SubscribeAttributePushAvStreamTransportSupportedContainerFormats>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadPushAvStreamTransportSupportedIngestMethods>(), //
+        make_unique<SubscribeAttributePushAvStreamTransportSupportedIngestMethods>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadPushAvStreamTransportCurrentConnections>(), //
+        make_unique<SubscribeAttributePushAvStreamTransportCurrentConnections>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadPushAvStreamTransportGeneratedCommandList>(), //
+        make_unique<SubscribeAttributePushAvStreamTransportGeneratedCommandList>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadPushAvStreamTransportAcceptedCommandList>(), //
+        make_unique<SubscribeAttributePushAvStreamTransportAcceptedCommandList>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadPushAvStreamTransportEventList>(), //
+        make_unique<SubscribeAttributePushAvStreamTransportEventList>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadPushAvStreamTransportAttributeList>(), //
+        make_unique<SubscribeAttributePushAvStreamTransportAttributeList>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadPushAvStreamTransportFeatureMap>(), //
+        make_unique<SubscribeAttributePushAvStreamTransportFeatureMap>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadPushAvStreamTransportClusterRevision>(), //
+        make_unique<SubscribeAttributePushAvStreamTransportClusterRevision>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+        make_unique<ReadEvent>(Id), //
+        make_unique<SubscribeEvent>(Id), //
+    };
+
+    commands.RegisterCluster(clusterName, clusterCommands);
+#endif // MTR_ENABLE_PROVISIONAL
+}
+void registerClusterChime(Commands & commands)
+{
+#if MTR_ENABLE_PROVISIONAL
+    using namespace chip::app::Clusters::Chime;
+
+    const char * clusterName = "Chime";
+
+    commands_list clusterCommands = {
+        make_unique<ClusterCommand>(Id), //
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ChimePlayChimeSound>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+        make_unique<ReadAttribute>(Id), //
+        make_unique<WriteAttribute>(Id), //
+        make_unique<SubscribeAttribute>(Id), //
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadChimeInstalledChimeSounds>(), //
+        make_unique<SubscribeAttributeChimeInstalledChimeSounds>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadChimeActiveChimeSoundId>(), //
+        make_unique<WriteChimeActiveChimeSoundId>(), //
+        make_unique<SubscribeAttributeChimeActiveChimeSoundId>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadChimeEnabled>(), //
+        make_unique<WriteChimeEnabled>(), //
+        make_unique<SubscribeAttributeChimeEnabled>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadChimeGeneratedCommandList>(), //
+        make_unique<SubscribeAttributeChimeGeneratedCommandList>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadChimeAcceptedCommandList>(), //
+        make_unique<SubscribeAttributeChimeAcceptedCommandList>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadChimeEventList>(), //
+        make_unique<SubscribeAttributeChimeEventList>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadChimeAttributeList>(), //
+        make_unique<SubscribeAttributeChimeAttributeList>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadChimeFeatureMap>(), //
+        make_unique<SubscribeAttributeChimeFeatureMap>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+#if MTR_ENABLE_PROVISIONAL
+        make_unique<ReadChimeClusterRevision>(), //
+        make_unique<SubscribeAttributeChimeClusterRevision>(), //
+#endif // MTR_ENABLE_PROVISIONAL
+    };
+
+    commands.RegisterCluster(clusterName, clusterCommands);
+#endif // MTR_ENABLE_PROVISIONAL
+}
 void registerClusterEcosystemInformation(Commands & commands)
 {
 #if MTR_ENABLE_PROVISIONAL
@@ -199570,6 +212708,12 @@ void registerClusters(Commands & commands)
     registerClusterAccountLogin(commands);
     registerClusterContentControl(commands);
     registerClusterContentAppObserver(commands);
+    registerClusterCameraAvStreamManagement(commands);
+    registerClusterCameraAvSettingsUserLevelManagement(commands);
+    registerClusterWebRTCTransportProvider(commands);
+    registerClusterWebRTCTransportRequestor(commands);
+    registerClusterPushAvStreamTransport(commands);
+    registerClusterChime(commands);
     registerClusterEcosystemInformation(commands);
     registerClusterCommissionerControl(commands);
     registerClusterElectricalMeasurement(commands);