Test added sep19 (#22766)

* Added Updated Scripts

* Added Auto generated scripts

* Restyled by whitespace

* Restyled by clang-format

* Restyled by prettier-json

* Added updated scripts

* Added Auto generated files

* Restyled by clang-format

* Modified automation scripts
TC-APPLAUNCHER-3.9
TC-CC-3.1
TC-CC-3.2
TC-CC-3.3
TC-CC-4.1
TC-CC-4.2
TC-CC-4.3
TC-CC-4.4
TC-CC-5.1
TC-CC-5.3
TC-CC-6.1
TC-CC-6.2
TC-CC-7.1
TC-CC-7.3
TC-CC-7.4
TC-CC-8.1
TC-DGTHREAD-1.1
Manual scripts update:
TC-DGSW-2.2
TC-DGTHREAD-3.1

* Added auto generated files

* Restyled by whitespace

Co-authored-by: Restyled.io <commits@restyled.io>
Co-authored-by: manjunath-grl <manjunath.grl@outlook.com>
Co-authored-by: Andrei Litvin <andy314@gmail.com>
diff --git a/src/app/tests/suites/certification/Test_TC_ACL_2_4.yaml b/src/app/tests/suites/certification/Test_TC_ACL_2_4.yaml
index 417801e..1d7aad8 100644
--- a/src/app/tests/suites/certification/Test_TC_ACL_2_4.yaml
+++ b/src/app/tests/suites/certification/Test_TC_ACL_2_4.yaml
@@ -24,6 +24,19 @@
     endpoint: 0
 
 tests:
+    - label: "Pre-conditions"
+      verification: |
+          1.N1 is the node ID of TH1
+
+          2 .CAT1 is a valid CAT with arbitrary ID and arbitrary version
+
+          3.CAT2 is a valid CAT with arbitrary ID and arbitrary version
+
+          4.CAT3 is a valid CAT with arbitrary ID and arbitrary version
+
+          5.CAT4 is a valid CAT with arbitrary ID and arbitrary version
+      disabled: true
+
     - label: "TH1 commissions DUT using admin node ID N1"
       verification: |
           DUT
diff --git a/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_9.yaml b/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_9.yaml
index ce55285..74ba8f3 100644
--- a/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_9.yaml
+++ b/src/app/tests/suites/certification/Test_TC_APPLAUNCHER_3_9.yaml
@@ -49,10 +49,24 @@
                         applicationId: applicationId,
                     }
 
+    #Expected status attribute response ACTIVE_HIDDEN or STOPPED 'OR' condition is not supported in YAML
     - label: "Reads the Status attribute"
-      cluster: "Application Basic"
-      endpoint: 3
-      command: "readAttribute"
-      attribute: "Status"
-      response:
-          value: 0
+      verification: |
+          The TH commands for this test step can be invoked using chip-tool (when DUT is a commissionee) or tv-casting-app (when DUT is a commissioner):
+          ./chip-tool applicationbasic read status 1 3
+          ./chip-tool applicationbasic read status 1 3
+
+          On TH verify that the Status attribute  value as 0
+          [1658209002.942766][2442:2447] CHIP:DMG: }
+          [1658209002.942976][2442:2447] CHIP:TOO: Endpoint: 3 Cluster: 0x0000_050D Attribute 0x0000_0005 DataVersion: 3850684771
+          [1658209002.943067][2442:2447] CHIP:TOO:   Status: 0
+          [1658209002.943177][2442:2447] CHIP:EM: Sending Standalone Ack for MessageCounter:54939405 on exchange 63408i"
+      cluster: "LogCommands"
+      command: "UserPrompt"
+      PICS: PICS_USER_PROMPT
+      arguments:
+          values:
+              - name: "message"
+                value: "Enter 'y' after success"
+              - name: "expectedValue"
+                value: "y"
diff --git a/src/app/tests/suites/certification/Test_TC_CC_2_2.yaml b/src/app/tests/suites/certification/Test_TC_CC_2_2.yaml
index f39cdea..17ba93d 100644
--- a/src/app/tests/suites/certification/Test_TC_CC_2_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CC_2_2.yaml
@@ -275,7 +275,7 @@
           "DUT reads from the TH the (0x0007) ColorTemperatureMireds attribute"
       PICS: CC.C.A0007
       verification: |
-          ./chip-tool colorcontrol read color-temperature 1 1
+          ./chip-tool colorcontrol read color-temperature-mireds 1 1
 
           Verify response contains an uint16 in  TH(all-clusters-app)  Logs:
 
diff --git a/src/app/tests/suites/certification/Test_TC_CC_3_1.yaml b/src/app/tests/suites/certification/Test_TC_CC_3_1.yaml
index 4fd29a2..d4b0ace 100644
--- a/src/app/tests/suites/certification/Test_TC_CC_3_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CC_3_1.yaml
@@ -152,7 +152,9 @@
       command: "readAttribute"
       attribute: "CurrentHue"
       response:
-          value: 120
+          constraints:
+              minValue: 102
+              maxValue: 138
 
     - label:
           "TH sends MoveToHue command to DUT with Hue=60, Direction=0x00
@@ -272,7 +274,9 @@
       command: "readAttribute"
       attribute: "CurrentHue"
       response:
-          value: 135
+          constraints:
+              minValue: 115
+              maxValue: 155
 
     - label:
           "TH sends MoveToHue command to DUT with Hue=60, Direction=0x00
@@ -382,7 +386,9 @@
       command: "readAttribute"
       attribute: "CurrentHue"
       response:
-          value: 120
+          constraints:
+              minValue: 102
+              maxValue: 138
 
     - label:
           "TH sends MoveToHue command to DUT with Hue=120, Direction=0x00
@@ -476,8 +482,8 @@
       attribute: "CurrentHue"
       response:
           constraints:
-              minValue: 48
-              maxValue: 72
+              minValue: 51
+              maxValue: 69
 
     - label: "Wait 5s"
       cluster: "DelayCommands"
@@ -492,7 +498,9 @@
       command: "readAttribute"
       attribute: "CurrentHue"
       response:
-          value: 60
+          constraints:
+              minValue: 51
+              maxValue: 69
 
     - label: "TH reads ColorMode attribute from DUT"
       PICS: CC.S.F00 && CC.S.A0008
diff --git a/src/app/tests/suites/certification/Test_TC_CC_3_2.yaml b/src/app/tests/suites/certification/Test_TC_CC_3_2.yaml
index c9fb35f..f9770b2 100644
--- a/src/app/tests/suites/certification/Test_TC_CC_3_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CC_3_2.yaml
@@ -148,7 +148,6 @@
       command: "readAttribute"
       attribute: "CurrentHue"
       response:
-          saveAs: CurrentHueValueStep2f
           constraints:
               minValue: 80
               maxValue: 110
@@ -166,7 +165,9 @@
       command: "readAttribute"
       attribute: "CurrentHue"
       response:
-          value: CurrentHueValueStep2f
+          constraints:
+              minValue: 80
+              maxValue: 110
 
     - label:
           "TH sends MoveToHue command to DUT with Hue=60, Direction=0x00
@@ -224,8 +225,8 @@
       attribute: "CurrentHue"
       response:
           constraints:
-              minValue: 0
-              maxValue: 20
+              minValue: 8
+              maxValue: 12
 
     - label: "Wait 10s"
       cluster: "DelayCommands"
@@ -273,7 +274,6 @@
       command: "readAttribute"
       attribute: "CurrentHue"
       response:
-          saveAs: CurrentHueValueStep3f
           constraints:
               minValue: 140
               maxValue: 190
@@ -291,7 +291,9 @@
       command: "readAttribute"
       attribute: "CurrentHue"
       response:
-          value: CurrentHueValueStep3f
+          constraints:
+              minValue: 140
+              maxValue: 190
 
     - label: "TH reads ColorMode attribute from DUT"
       PICS: CC.S.F00 && CC.S.A0008
diff --git a/src/app/tests/suites/certification/Test_TC_CC_3_3.yaml b/src/app/tests/suites/certification/Test_TC_CC_3_3.yaml
index a629f3c..a406e6f 100644
--- a/src/app/tests/suites/certification/Test_TC_CC_3_3.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CC_3_3.yaml
@@ -118,8 +118,8 @@
       attribute: "CurrentHue"
       response:
           constraints:
-              minValue: 0
-              maxValue: 10
+              minValue: 4
+              maxValue: 6
 
     - label: "Wait 5s"
       cluster: "DelayCommands"
@@ -134,7 +134,9 @@
       command: "readAttribute"
       attribute: "CurrentHue"
       response:
-          value: 5
+          constraints:
+              minValue: 4
+              maxValue: 6
 
     - label:
           "TH sends MoveToHue command to DUT with Hue=50, Direction=0x00
@@ -227,7 +229,9 @@
       command: "readAttribute"
       attribute: "CurrentHue"
       response:
-          value: 245
+          constraints:
+              minValue: 208
+              maxValue: 255
 
     - label: "TH reads ColorMode attribute from DUT"
       PICS: CC.S.F00 && CC.S.A0008
diff --git a/src/app/tests/suites/certification/Test_TC_CC_4_1.yaml b/src/app/tests/suites/certification/Test_TC_CC_4_1.yaml
index a1b9b84..3bd4fbd 100644
--- a/src/app/tests/suites/certification/Test_TC_CC_4_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CC_4_1.yaml
@@ -150,7 +150,9 @@
       command: "readAttribute"
       attribute: "CurrentSaturation"
       response:
-          value: 120
+          constraints:
+              minValue: 102
+              maxValue: 138
 
     - label: "TH reads ColorMode attribute from DUT"
       PICS: CC.S.F00 && CC.S.A0008
diff --git a/src/app/tests/suites/certification/Test_TC_CC_4_2.yaml b/src/app/tests/suites/certification/Test_TC_CC_4_2.yaml
index 3046f0c..3cf08ba 100644
--- a/src/app/tests/suites/certification/Test_TC_CC_4_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CC_4_2.yaml
@@ -114,7 +114,7 @@
       attribute: "CurrentSaturation"
       response:
           constraints:
-              minValue: 212
+              minValue: 216
               maxValue: 254
 
     - label: "Wait 5s"
@@ -130,7 +130,9 @@
       command: "readAttribute"
       attribute: "CurrentSaturation"
       response:
-          value: 254
+          constraints:
+              minValue: 216
+              maxValue: 254
 
     - label:
           "TH sends MoveToSaturation command to DUT with Saturation=120 and
@@ -203,8 +205,8 @@
       attribute: "CurrentSaturation"
       response:
           constraints:
-              minValue: 5
-              maxValue: 35
+              minValue: 17
+              maxValue: 23
 
     - label: "Wait 10s"
       cluster: "DelayCommands"
@@ -301,7 +303,6 @@
       command: "readAttribute"
       attribute: "CurrentSaturation"
       response:
-          saveAs: CurrentSaturationValueStep4e
           constraints:
               minValue: 170
               maxValue: 230
@@ -319,7 +320,9 @@
       command: "readAttribute"
       attribute: "CurrentSaturation"
       response:
-          value: CurrentSaturationValueStep4e
+          constraints:
+              minValue: 170
+              maxValue: 230
 
     - label: "TH reads ColorMode attribute from DUT"
       PICS: CC.S.F00 && CC.S.A0008
diff --git a/src/app/tests/suites/certification/Test_TC_CC_4_3.yaml b/src/app/tests/suites/certification/Test_TC_CC_4_3.yaml
index 3d9c2a1..19de6cf 100644
--- a/src/app/tests/suites/certification/Test_TC_CC_4_3.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CC_4_3.yaml
@@ -132,7 +132,9 @@
       command: "readAttribute"
       attribute: "CurrentSaturation"
       response:
-          value: 240
+          constraints:
+              minValue: 204
+              maxValue: 254
 
     - label:
           "TH sends StepSaturation command to DUT with StepMode=0x01 (up),
@@ -165,7 +167,9 @@
       command: "readAttribute"
       attribute: "CurrentSaturation"
       response:
-          value: 254
+          constraints:
+              minValue: 216
+              maxValue: 254
 
     - label:
           "TH sends MoveToSaturation command to DUT with Saturation=50 and
@@ -240,8 +244,8 @@
       attribute: "CurrentSaturation"
       response:
           constraints:
-              minValue: 5
-              maxValue: 15
+              minValue: 8
+              maxValue: 12
 
     - label: "Wait 5s"
       cluster: "DelayCommands"
@@ -256,7 +260,9 @@
       command: "readAttribute"
       attribute: "CurrentSaturation"
       response:
-          value: 10
+          constraints:
+              minValue: 8
+              maxValue: 12
 
     - label:
           "TH sends StepSaturation command to DUT with StepMode=0x03 (down),
diff --git a/src/app/tests/suites/certification/Test_TC_CC_4_4.yaml b/src/app/tests/suites/certification/Test_TC_CC_4_4.yaml
index 2dea359..914fa9b 100644
--- a/src/app/tests/suites/certification/Test_TC_CC_4_4.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CC_4_4.yaml
@@ -75,14 +75,18 @@
       command: "readAttribute"
       attribute: "CurrentHue"
       response:
-          value: 200
+          constraints:
+              minValue: 170
+              maxValue: 230
 
     - label: "TH reads CurrentSaturation attribute from DUT"
       PICS: CC.S.F00 && CC.S.A0001
       command: "readAttribute"
       attribute: "CurrentSaturation"
       response:
-          value: 50
+          constraints:
+              minValue: 42
+              maxValue: 58
 
     - label:
           "TH sends MoveToHueAndSaturation command to DUT with Hue=160,
@@ -168,14 +172,18 @@
       command: "readAttribute"
       attribute: "CurrentHue"
       response:
-          value: 160
+          constraints:
+              minValue: 135
+              maxValue: 185
 
     - label: "TH reads CurrentSaturation attribute from DUT"
       PICS: CC.S.F00 && CC.S.A0001
       command: "readAttribute"
       attribute: "CurrentSaturation"
       response:
-          value: 80
+          constraints:
+              minValue: 68
+              maxValue: 92
 
     - label: "TH reads ColorMode attribute from DUT"
       PICS: CC.S.F00 && CC.S.A0008
diff --git a/src/app/tests/suites/certification/Test_TC_CC_5_1.yaml b/src/app/tests/suites/certification/Test_TC_CC_5_1.yaml
index 5b2104a..6eedce3 100644
--- a/src/app/tests/suites/certification/Test_TC_CC_5_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CC_5_1.yaml
@@ -74,14 +74,18 @@
       command: "readAttribute"
       attribute: "CurrentX"
       response:
-          value: 32768
+          constraints:
+              minValue: 27853
+              maxValue: 37683
 
     - label: "TH reads CurrentY attribute from DUT"
       PICS: CC.S.F03 && CC.S.A0004
       command: "readAttribute"
       attribute: "CurrentY"
       response:
-          value: 19660
+          constraints:
+              minValue: 16711
+              maxValue: 22609
 
     - label:
           "TH sends MoveToColor command to DUT, with ColorX = 13107/0x3333
@@ -166,14 +170,18 @@
       command: "readAttribute"
       attribute: "CurrentX"
       response:
-          value: 13107
+          constraints:
+              minValue: 11141
+              maxValue: 15073
 
     - label: "TH reads CurrentY attribute from DUT"
       PICS: CC.S.F03 && CC.S.A0004 && CC.S.C07.Rsp
       command: "readAttribute"
       attribute: "CurrentY"
       response:
-          value: 13107
+          constraints:
+              minValue: 11141
+              maxValue: 15073
 
     - label: "TH writes 0 to the Options attribute"
       PICS: CC.S.A000f
@@ -226,14 +234,18 @@
       command: "readAttribute"
       attribute: "CurrentX"
       response:
-          value: 32768
+          constraints:
+              minValue: 27853
+              maxValue: 37683
 
     - label: "TH reads CurrentY attribute from DUT"
       PICS: CC.S.F03 && CC.S.A0004 && CC.S.C07.Rsp
       command: "readAttribute"
       attribute: "CurrentY"
       response:
-          value: 19660
+          constraints:
+              minValue: 16711
+              maxValue: 22609
 
     - label: "TH sends Off command to DUT"
       PICS: OO.S.C00.Rsp
@@ -351,14 +363,18 @@
       command: "readAttribute"
       attribute: "CurrentX"
       response:
-          value: 26214
+          constraints:
+              minValue: 22282
+              maxValue: 30146
 
     - label: "TH reads CurrentY attribute from DUT"
       PICS: CC.S.F03 && CC.S.A0004 && CC.S.C07.Rsp
       command: "readAttribute"
       attribute: "CurrentY"
       response:
-          value: 32768
+          constraints:
+              minValue: 27853
+              maxValue: 37683
 
     - label: "TH writes 1 to the Options attribute"
       PICS: CC.S.A000f
@@ -410,14 +426,18 @@
       command: "readAttribute"
       attribute: "CurrentX"
       response:
-          value: 32768
+          constraints:
+              minValue: 27853
+              maxValue: 37683
 
     - label: "TH reads CurrentY attribute from DUT"
       PICS: CC.S.F03 && CC.S.A0004 && CC.S.C07.Rsp
       command: "readAttribute"
       attribute: "CurrentY"
       response:
-          value: 19660
+          constraints:
+              minValue: 16711
+              maxValue: 22609
 
     - label: "TH sends Off command to DUT"
       PICS: OO.S.C00.Rsp
@@ -455,14 +475,18 @@
       command: "readAttribute"
       attribute: "CurrentX"
       response:
-          value: 13107
+          constraints:
+              minValue: 11141
+              maxValue: 15073
 
     - label: "TH reads CurrentY attribute from DUT"
       PICS: CC.S.F03 && CC.S.A0004 && CC.S.C07.Rsp
       command: "readAttribute"
       attribute: "CurrentY"
       response:
-          value: 13107
+          constraints:
+              minValue: 11141
+              maxValue: 15073
 
     - label:
           "TH sends MoveToColor command to DUT, with ColorX = 13107/0x3333
@@ -535,14 +559,18 @@
       command: "readAttribute"
       attribute: "CurrentX"
       response:
-          value: 26214
+          constraints:
+              minValue: 22282
+              maxValue: 30146
 
     - label: "TH reads CurrentY attribute from DUT"
       PICS: CC.S.F03 && CC.S.A0004 && CC.S.C07.Rsp
       command: "readAttribute"
       attribute: "CurrentY"
       response:
-          value: 32768
+          constraints:
+              minValue: 27853
+              maxValue: 37683
 
     - label: "TH reads ColorMode attribute from DUT"
       PICS: CC.S.F03 && CC.S.A0008
diff --git a/src/app/tests/suites/certification/Test_TC_CC_5_3.yaml b/src/app/tests/suites/certification/Test_TC_CC_5_3.yaml
index 2d7666a..24689e3 100644
--- a/src/app/tests/suites/certification/Test_TC_CC_5_3.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CC_5_3.yaml
@@ -152,14 +152,18 @@
       PICS: CC.S.F03 && CC.S.A0003 && CC.S.C08.Rsp
       attribute: "CurrentX"
       response:
-          value: 13000
+          constraints:
+              minValue: 11050
+              maxValue: 14950
 
     - label: "TH reads CurrentY attribute from DUT"
       command: "readAttribute"
       PICS: CC.S.F03 && CC.S.A0004 && CC.S.C08.Rsp
       attribute: "CurrentY"
       response:
-          value: 14000
+          constraints:
+              minValue: 11900
+              maxValue: 16100
 
     - label: "TH reads ColorMode attribute from DUT"
       PICS: CC.S.F03 && CC.S.A0008
diff --git a/src/app/tests/suites/certification/Test_TC_CC_6_1.yaml b/src/app/tests/suites/certification/Test_TC_CC_6_1.yaml
index 4867351..88cc331 100644
--- a/src/app/tests/suites/certification/Test_TC_CC_6_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CC_6_1.yaml
@@ -181,7 +181,9 @@
       command: "readAttribute"
       attribute: "ColorTemperatureMireds"
       response:
-          value: 250
+          constraints:
+              minValue: 212
+              maxValue: 288
 
     - label: "TH reads ColorMode attribute from DUT"
       PICS: CC.S.F04 && CC.S.A0008
diff --git a/src/app/tests/suites/certification/Test_TC_CC_6_2.yaml b/src/app/tests/suites/certification/Test_TC_CC_6_2.yaml
index 47494e6..eb83f80 100644
--- a/src/app/tests/suites/certification/Test_TC_CC_6_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CC_6_2.yaml
@@ -312,7 +312,6 @@
       command: "readAttribute"
       attribute: "ColorTemperatureMireds"
       response:
-          saveAs: ColorTemperatureMiredsStep4c
           constraints:
               minValue: ColorTempPhysicalMinMiredsValue
               maxValue: ColorTempPhysicalMaxMiredsValue
@@ -330,7 +329,9 @@
       command: "readAttribute"
       attribute: "ColorTemperatureMireds"
       response:
-          value: ColorTemperatureMiredsStep4c
+          constraints:
+              minValue: ColorTempPhysicalMinMiredsValue
+              maxValue: ColorTempPhysicalMaxMiredsValue
 
     - label: "TH reads ColorMode attribute from DUT"
       PICS: CC.S.F04 && CC.S.A0008
diff --git a/src/app/tests/suites/certification/Test_TC_CC_6_4.yaml b/src/app/tests/suites/certification/Test_TC_CC_6_4.yaml
index b305380..beeb124 100644
--- a/src/app/tests/suites/certification/Test_TC_CC_6_4.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CC_6_4.yaml
@@ -149,7 +149,7 @@
           multiple times)"
       PICS: CC.C.C0a.Tx && CC.C.A0007
       verification: |
-          ./chip-tool colorcontrol read color-temperature 1 1
+          ./chip-tool colorcontrol read color-temperature-mireds 1 1
 
 
           Verify response contains an ColorTemperatureMireds in  TH(all-clusters-app)  Logs:
@@ -231,7 +231,7 @@
           multiple times)"
       PICS: CC.C.C4b.Tx && CC.C.A0007
       verification: |
-          ./chip-tool colorcontrol read color-temperature 1 1
+          ./chip-tool colorcontrol read color-temperature-mireds 1 1
 
 
 
@@ -315,7 +315,7 @@
           multiple times)"
       PICS: CC.C.C4c.Tx & CC.C.A0007
       verification: |
-          ./chip-tool colorcontrol read color-temperature 1 1
+          ./chip-tool colorcontrol read color-temperature-mireds 1 1
           Verify response contains an ColorTemperatureMireds in  TH(all-clusters-app)  Logs:
           [1659955633.975562][2718:2718] CHIP:DMG: ReadRequestMessage =
           [1659955633.975617][2718:2718] CHIP:DMG: {
@@ -390,7 +390,7 @@
           multiple times)"
       PICS: CC.C.C47.Tx && CC.C.A0007
       verification: |
-          ./chip-tool colorcontrol read color-temperature 1 1
+          ./chip-tool colorcontrol read color-temperature-mireds 1 1
 
           Verify response contains an ColorTemperatureMireds in  TH(all-clusters-app)  Logs:
           [1659955633.975562][2718:2718] CHIP:DMG: ReadRequestMessage =
diff --git a/src/app/tests/suites/certification/Test_TC_CC_7_1.yaml b/src/app/tests/suites/certification/Test_TC_CC_7_1.yaml
index cd1d77f..5be25ac 100644
--- a/src/app/tests/suites/certification/Test_TC_CC_7_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CC_7_1.yaml
@@ -152,7 +152,9 @@
       command: "readAttribute"
       attribute: "EnhancedCurrentHue"
       response:
-          value: 12000
+          constraints:
+              minValue: 10200
+              maxValue: 13800
 
     - label:
           "TH sends EnhancedMoveToHue command to DUT with EnhancedHue=6000,
@@ -262,7 +264,9 @@
       command: "readAttribute"
       attribute: "EnhancedCurrentHue"
       response:
-          value: 54000
+          constraints:
+              minValue: 50700
+              maxValue: 62100
 
     - label:
           "TH sends EnhancedMoveToHue command to DUT with EnhancedHue=6000,
@@ -372,7 +376,9 @@
       command: "readAttribute"
       attribute: "EnhancedCurrentHue"
       response:
-          value: 12000
+          constraints:
+              minValue: 10200
+              maxValue: 13800
 
     - label:
           "TH sends EnhancedMoveToHue command to DUT with EnhancedHue=12000,
@@ -482,7 +488,9 @@
       command: "readAttribute"
       attribute: "EnhancedCurrentHue"
       response:
-          value: 6000
+          constraints:
+              minValue: 5100
+              maxValue: 6900
 
     - label: "TH reads ColorMode attribute from DUT"
       PICS: CC.S.F01 && CC.S.A0008
diff --git a/src/app/tests/suites/certification/Test_TC_CC_7_3.yaml b/src/app/tests/suites/certification/Test_TC_CC_7_3.yaml
index ea5d91a..067ccc5 100644
--- a/src/app/tests/suites/certification/Test_TC_CC_7_3.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CC_7_3.yaml
@@ -151,7 +151,9 @@
       PICS: CC.S.F01 && CC.S.A4000 && CC.S.C41.Rsp
       attribute: "EnhancedCurrentHue"
       response:
-          value: 12000
+          constraints:
+              minValue: 10200
+              maxValue: 13800
 
     - label:
           "TH sends EnhancedMoveToHue command to DUT with EnhancedHue=12000,
@@ -261,7 +263,9 @@
       PICS: CC.S.F01 && CC.S.A4000 && CC.S.C41.Rsp
       attribute: "EnhancedCurrentHue"
       response:
-          value: 6000
+          constraints:
+              minValue: 5100
+              maxValue: 6900
 
     - label: "TH reads ColorMode attribute from DUT"
       PICS: CC.S.F01 && CC.S.A0008
diff --git a/src/app/tests/suites/certification/Test_TC_CC_7_4.yaml b/src/app/tests/suites/certification/Test_TC_CC_7_4.yaml
index 8a0496c..8d1f0a7 100644
--- a/src/app/tests/suites/certification/Test_TC_CC_7_4.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CC_7_4.yaml
@@ -76,14 +76,18 @@
       command: "readAttribute"
       attribute: "EnhancedCurrentHue"
       response:
-          value: 20000
+          constraints:
+              minValue: 17000
+              maxValue: 23000
 
     - label: "TH reads CurrentSaturation attribute from DUT"
       PICS: CC.S.F01 && CC.S.A0001
       command: "readAttribute"
       attribute: "CurrentSaturation"
       response:
-          value: 50
+          constraints:
+              minValue: 42
+              maxValue: 58
 
     - label:
           "TH sends EnhancedMoveToHueAndSaturation command to DUT with
diff --git a/src/app/tests/suites/certification/Test_TC_CC_8_1.yaml b/src/app/tests/suites/certification/Test_TC_CC_8_1.yaml
index e46ff7b..0b01f73 100644
--- a/src/app/tests/suites/certification/Test_TC_CC_8_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CC_8_1.yaml
@@ -192,7 +192,6 @@
       command: "readAttribute"
       attribute: "CurrentSaturation"
       response:
-          saveAs: CurrentSaturationValue
           constraints:
               minValue: 170
               maxValue: 230
@@ -210,7 +209,9 @@
       command: "readAttribute"
       attribute: "CurrentSaturation"
       response:
-          value: CurrentSaturationValue
+          constraints:
+              minValue: 170
+              maxValue: 230
 
     - label: "TH reads ColorTempPhysicalMinMireds attribute from DUT"
       PICS: CC.S.A400b
@@ -307,7 +308,6 @@
       command: "readAttribute"
       attribute: "ColorTemperatureMireds"
       response:
-          saveAs: ColorTemperatureMiredsStep4f
           constraints:
               minValue: ColorTempPhysicalMinMireds
               maxValue: ColorTempPhysicalMaxMireds
@@ -325,7 +325,9 @@
       command: "readAttribute"
       attribute: "ColorTemperatureMireds"
       response:
-          value: ColorTemperatureMiredsStep4f
+          constraints:
+              minValue: ColorTempPhysicalMinMireds
+              maxValue: ColorTempPhysicalMaxMireds
 
     - label:
           "TH sends EnhancedMoveToHue command to DUT with EnhancedHue=20000,
@@ -392,7 +394,6 @@
       PICS: CC.S.A4000 && CC.S.C47.Rsp
       attribute: "EnhancedCurrentHue"
       response:
-          saveAs: EnhancedCurrentHueValue
           constraints:
               minValue: 21250
               maxValue: 28750
@@ -410,7 +411,9 @@
       PICS: CC.S.A4000 && CC.S.C47.Rsp
       attribute: "EnhancedCurrentHue"
       response:
-          value: EnhancedCurrentHueValue
+          constraints:
+              minValue: 21250
+              maxValue: 28750
 
     - label: "Turn Off light that we turned on"
       PICS: OO.S.C00.Rsp
diff --git a/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_1_11.yaml b/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_1_11.yaml
index 01db6b7..5de7f13 100644
--- a/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_1_11.yaml
+++ b/src/app/tests/suites/certification/Test_TC_CONTENTLAUNCHER_1_11.yaml
@@ -101,7 +101,7 @@
     - label:
           "Read the optional command(LaunchContent) in AcceptedCommandList
           attribute"
-      PICS: CONTENTLAUNCHER.C.C0000
+      PICS: CONTENTLAUNCHER.C.C00.Tx
       command: "readAttribute"
       attribute: "AcceptedCommandList"
       response:
@@ -111,7 +111,7 @@
 
     - label:
           "Read the optional command(LaunchURL) in AcceptedCommandList attribute"
-      PICS: CONTENTLAUNCHER.C.C0001
+      PICS: CONTENTLAUNCHER.C.C01.Tx
       command: "readAttribute"
       attribute: "AcceptedCommandList"
       response:
diff --git a/src/app/tests/suites/certification/Test_TC_DGETH_2_1.yaml b/src/app/tests/suites/certification/Test_TC_DGETH_2_1.yaml
index e452da3..5f4791b 100644
--- a/src/app/tests/suites/certification/Test_TC_DGETH_2_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DGETH_2_1.yaml
@@ -64,7 +64,8 @@
           received on ethernet network interface"
       verification: |
           ./chip-tool ethernetnetworkdiagnostics read packet-rx-count 1 0
-          Verify the value of PacketRxCount is in range uint64
+
+          Verify the value of PacketRxCount is in range uint64 in TH(chip-tool) log
 
           CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0037 Attribute 0x0000_0002 DataVersion: 3872576452
           [1649663623.009973][8103:8108] CHIP:TOO:   PacketRxCount: 3322
@@ -91,7 +92,8 @@
           received on ethernet network interface"
       verification: |
           ./chip-tool ethernetnetworkdiagnostics read packet-tx-count 1 0
-          Verify the value of PacketTxCount is in range uint64
+
+          Verify the value of PacketTxCount is in range uint64 in TH(chip-tool) Log
 
           CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0037 Attribute 0x0000_0003 DataVersion: 3872576452
           [1649663793.192934][8117:8122] CHIP:TOO:   PacketTxCount: 3220
@@ -117,8 +119,9 @@
           "Read TxErrCount value from DUT and verify value indicates the number
           of failed packet transmission on ethernet network interface"
       verification: |
-          ./chip-tool ethernetnetworkdiagnostics read tx-err-count 1 1
-          Verify the value of TxErrCount is in range uint64
+          ./chip-tool ethernetnetworkdiagnostics read tx-err-count 1 0
+
+          Verify the value of TxErrCount is in range uint64 in TH(chip-tool) Log
 
           CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0037 Attribute 0x0000_0004 DataVersion: 3872576452
           [1649663843.295395][8123:8128] CHIP:TOO:   TxErrCount: 0
@@ -145,8 +148,9 @@
           number of collision occurred while transmitting packets on ethernet
           network interface"
       verification: |
-          ./chip-tool ethernetnetworkdiagnostics read collision-count 1 1
-          Verify the value of  CollisionCount is in range uint64
+          ./chip-tool ethernetnetworkdiagnostics read collision-count 1 0
+
+          Verify the value of  CollisionCount is in range uint64 in TH(chip-tool) Log
 
           CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0037 Attribute 0x0000_0005 DataVersion: 3872576452
           [1649663870.221742][8133:8138] CHIP:TOO:   CollisionCount: 0
@@ -173,9 +177,11 @@
           number of packets dropped due to lack of buffer memory on ethernet
           network interface"
       verification: |
-          ./chip-tool ethernetnetworkdiagnostics read overrun-count 1 1
+          ./chip-tool ethernetnetworkdiagnostics read overrun-count 1 0
 
-           CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0037 Attribute 0x0000_0006 DataVersion: 3872576452
+          Verify that the attribute data value is present. If the value is 0, no packet loss was recorded or it was just reset from a node reboot in TH(chip-tool) Log
+
+          CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0037 Attribute 0x0000_0006 DataVersion: 3872576452
           [1649663948.738274][8142:8147] CHIP:TOO:   OverrunCount: 0
       cluster: "LogCommands"
       command: "UserPrompt"
@@ -200,8 +206,9 @@
           presence of carrier detect control signal on ethernet network
           interface"
       verification: |
-          ./chip-tool ethernetnetworkdiagnostics read carrier-detect 1 1
-          Verify the value of CarrierDetect is either bool or null
+          ./chip-tool ethernetnetworkdiagnostics read carrier-detect 1 0
+
+          Verify the value of CarrierDetect is either bool or null in TH(chip-tool) Log:
 
           CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0037 Attribute 0x0000_0007 DataVersion: 3872576452
           [1649663972.829304][8149:8154] CHIP:TOO:   CarrierDetect: null
@@ -227,8 +234,10 @@
           "Read TimeSinceReset value from DUT and verify the value indicates the
           duration of time, in minutes"
       verification: |
-          ./chip-tool ethernetnetworkdiagnostics read  time-since-reset 1 1
-          Verify the value of TimeSinceReset is in range uint64
+          ./chip-tool ethernetnetworkdiagnostics read  time-since-reset 1 0
+
+          Verify the value of TimeSinceReset is in range uint64 in TH(chip-tool) log:
+
 
           CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0037 Attribute 0x0000_0008 DataVersion: 3872576452
           [1649664046.010810][8158:8163] CHIP:TOO:   TimeSinceReset: 5219
diff --git a/src/app/tests/suites/certification/Test_TC_DGSW_2_1.yaml b/src/app/tests/suites/certification/Test_TC_DGSW_2_1.yaml
index 19aedf7..733aa65 100644
--- a/src/app/tests/suites/certification/Test_TC_DGSW_2_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DGSW_2_1.yaml
@@ -11,6 +11,7 @@
 # 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.
+# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default
 
 name: 43.2.1. [TC-DGSW-2.1] Attributes with server as DUT
 
@@ -20,49 +21,83 @@
 
 config:
     nodeId: 0x12344321
-    cluster: "Software Diagnostics"
+    cluster: "Basic"
     endpoint: 0
 
 tests:
-    - label: "Wait for the commissioned device to be retrieved"
-      cluster: "DelayCommands"
-      command: "WaitForCommissionee"
-      arguments:
-          values:
-              - name: "nodeId"
-                value: nodeId
+    - label: "Commission DUT to TH"
+      verification: |
 
-    #issue 873
-    - label:
-          "Reads a list of ThreadMetrics struct non-global attribute from DUT."
-      command: "readAttribute"
-      attribute: "ThreadMetrics"
+      disabled: true
+
+    - label: "TH reads a list of ThreadMetrics struct attribute from DUT."
       PICS: DGSW.S.A0000
-      response:
-          constraints:
-              type: list
+      verification: |
+          ./chip-tool softwarediagnostics read thread-metrics 1 0
 
-    - label: "Reads CurrentHeapFree non-global attribute value from DUT"
-      command: "readAttribute"
-      attribute: "CurrentHeapFree"
+          Verify the thread-metrics attribute has entries with ThreadMetrics Struct.
+          Verify in TH(chip-tool) Log
+
+          [1654697032.107109][7037:7042] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0034 Attribute 0x0000_0000 DataVersion: 1044289564
+          [1654697032.107255][7037:7042] CHIP:TOO:   ThreadMetrics: 6 entries
+          [1654697032.107333][7037:7042] CHIP:TOO:     [1]: {
+          [1654697032.107376][7037:7042] CHIP:TOO:       Id: 8972
+          [1654697032.107413][7037:7042] CHIP:TOO:       Name: 8972
+          [1654697032.107449][7037:7042] CHIP:TOO:      }
+          [1654697032.107492][7037:7042] CHIP:TOO:     [2]: {
+          [1654697032.107526][7037:7042] CHIP:TOO:       Id: 8971
+          [1654697032.107559][7037:7042] CHIP:TOO:       Name: 8971
+          [1654697032.107591][7037:7042] CHIP:TOO:      }
+          [1654697032.107632][7037:7042] CHIP:TOO:     [3]: {
+          [1654697032.107667][7037:7042] CHIP:TOO:       Id: 8970
+          [1654697032.107700][7037:7042] CHIP:TOO:       Name: 8970
+          [1654697032.107733][7037:7042] CHIP:TOO:      }
+          [1654697032.107774][7037:7042] CHIP:TOO:     [4]: {
+          [1654697032.107808][7037:7042] CHIP:TOO:       Id: 8969
+          [1654697032.107842][7037:7042] CHIP:TOO:       Name: 8969
+          [1654697032.107875][7037:7042] CHIP:TOO:      }
+          [1654697032.107915][7037:7042] CHIP:TOO:     [5]: {
+          [1654697032.107950][7037:7042] CHIP:TOO:       Id: 8968
+          [1654697032.107982][7037:7042] CHIP:TOO:       Name: 8968
+          [1654697032.108015][7037:7042] CHIP:TOO:      }
+          [1654697032.108056][7037:7042] CHIP:TOO:     [6]: {
+          [1654697032.108090][7037:7042] CHIP:TOO:       Id: 8967
+          [1654697032.108122][7037:7042] CHIP:TOO:       Name: 8967
+          [1654697032.108154][7037:7042] CHIP:TOO:      }
+      disabled: true
+
+    - label: "TH reads an attribute value from DUT."
       PICS: DGSW.S.A0001
-      response:
-          constraints:
-              type: int64u
+      verification: |
+          ./chip-tool softwarediagnostics read current-heap-free 1 0
 
-    - label: "Reads CurrentHeapUsed non-global attribute value from DUT"
-      command: "readAttribute"
-      attribute: "CurrentHeapUsed"
+          Verify the value of CurrentHeapFree is in range uint64
+          Verify in TH(chip-tool) Log
+
+          CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0034 Attribute 0x0000_0001 DataVersion: 3412237516
+          [1649662648.863327][8004:8009] CHIP:TOO:   CurrentHeapFree: 590864
+      disabled: true
+
+    - label: "TH reads an attribute value from DUT."
       PICS: DGSW.S.A0002
-      response:
-          constraints:
-              type: int64u
+      verification: |
+          ./chip-tool  softwarediagnostics  read current-heap-used 1 0
 
-    - label:
-          "Reads CurrentHeapHighWaterMark non-global attribute value from DUT"
-      command: "readAttribute"
-      attribute: "CurrentHeapHighWatermark"
+          Verify the value of CurrentHeapUsed is in range uint64
+          Verify in TH(chip-tool) Log
+
+          CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0034 Attribute 0x0000_0002 DataVersion: 3412237516
+          [1649662811.289909][8018:8023] CHIP:TOO:   CurrentHeapUsed: 1098368
+      disabled: true
+
+    - label: "TH reads an attribute value from DUT."
       PICS: DGSW.S.A0003
-      response:
-          constraints:
-              type: int64u
+      verification: |
+          ./chip-tool softwarediagnostics read current-heap-high-watermark 1 0
+
+          Verify the value of CurrentHeapHighWatermark is in range uint64
+          Verify in TH(chip-tool) Log
+
+          CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0034 Attribute 0x0000_0003 DataVersion: 3412237516
+          [1649662865.831203][8025:8030] CHIP:TOO:   CurrentHeapHighWatermark: 1099312
+      disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_DGSW_2_2.yaml b/src/app/tests/suites/certification/Test_TC_DGSW_2_2.yaml
index 65c69c5..d3b65e4 100644
--- a/src/app/tests/suites/certification/Test_TC_DGSW_2_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DGSW_2_2.yaml
@@ -13,7 +13,7 @@
 # limitations under the License.
 # Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default
 
-name: 43.2.2. [TC-DGSW-2.2] Event functionality with server as DUT
+name: 3.2.2. [TC-DGSW-2.2] Event Functionality [{DUT_Sever}]
 
 PICS:
     - DGSW.S.E
@@ -21,21 +21,19 @@
 
 config:
     nodeId: 0x12344321
-    cluster: "Software Diagnostics"
+    cluster: "Basic"
     endpoint: 0
 
 tests:
-    - label: "Wait for the commissioned device to be retrieved"
-      cluster: "DelayCommands"
-      command: "WaitForCommissionee"
-      arguments:
-          values:
-              - name: "nodeId"
-                value: nodeId
+    - label: "Commission DUT to TH"
+      verification: |
+
+      disabled: true
 
     - label:
-          "Reads a list of SoftwareFault struct from DUT and data type in each
-          field of the struct must match the value listed in spec"
+          "DUT sends an event report to TH. TH reads a list of SoftwareFault
+          struct from DUT."
+      PICS: DGSW.S.E00
       verification: |
           Provision DUT and TH.
 
@@ -64,12 +62,4 @@
           [1655375196.292341][35133:35138] CHIP:TOO:       FaultRecording: 546875204A756E2031362031303A32363A313420323032320A
           [1655375196.292391][35133:35138] CHIP:TOO:      }
           [1655375196.292438][35133:35138] CHIP:TOO:    }
-      cluster: "LogCommands"
-      command: "UserPrompt"
-      PICS: PICS_USER_PROMPT && DGSW.S.E00
-      arguments:
-          values:
-              - name: "message"
-                value: "Please enter '0' for success"
-              - name: "expectedValue"
-                value: 0
+      disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_DGSW_2_3.yaml b/src/app/tests/suites/certification/Test_TC_DGSW_2_3.yaml
index 752cdf7..00e8b1a 100644
--- a/src/app/tests/suites/certification/Test_TC_DGSW_2_3.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DGSW_2_3.yaml
@@ -11,6 +11,7 @@
 # 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.
+# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default
 
 name: 43.2.3. [TC-DGSW-2.3] Command received functionality with server as DUT
 
@@ -20,44 +21,115 @@
 
 config:
     nodeId: 0x12344321
-    cluster: "Software Diagnostics"
+    cluster: "Basic"
     endpoint: 0
 
 tests:
-    - label: "Wait for the commissioned device to be retrieved"
-      cluster: "DelayCommands"
-      command: "WaitForCommissionee"
-      arguments:
-          values:
-              - name: "nodeId"
-                value: nodeId
+    - label: "Commission DUT to TH"
+      verification: |
 
-    - label: "Sends ResetWatermarks to DUT"
-      command: "ResetWatermarks"
+      disabled: true
+
+    - label: "TH sends ResetWatermarks to DUT."
       PICS: DGSW.S.C00.Rsp
+      verification: |
+          ./chip-tool softwarediagnostics  reset-watermarks 1 0
 
-    - label: "Reads a list of ThreadMetrics struct attribute from DUT."
-      command: "readAttribute"
-      attribute: "ThreadMetrics"
-      PICS: DGSW.S.A0000 && DGSW.S.C00.Rsp
-      response:
-          constraints:
-              type: list
+          Verify the success response in TH(chip-tool) Log
 
-    #issue #830
-    - label: "Reads CurrentHeapUsed attribute value from DUT"
-      command: "readAttribute"
-      attribute: "CurrentHeapUsed"
-      PICS: DGSW.S.A0002 && DGSW.S.C00.Rsp
-      response:
-          constraints:
-              type: int64u
+          [1657022305.316864][7266:7271] CHIP:DMG: InvokeResponseMessage =
+          [1657022305.316900][7266:7271] CHIP:DMG: {
+          [1657022305.316935][7266:7271] CHIP:DMG:         suppressResponse = false,
+          [1657022305.316972][7266:7271] CHIP:DMG:         InvokeResponseIBs =
+          [1657022305.317018][7266:7271] CHIP:DMG:         [
+          [1657022305.317055][7266:7271] CHIP:DMG:                 InvokeResponseIB =
+          [1657022305.317109][7266:7271] CHIP:DMG:                 {
+          [1657022305.317151][7266:7271] CHIP:DMG:                         CommandStatusIB =
+          [1657022305.317200][7266:7271] CHIP:DMG:                         {
+          [1657022305.317244][7266:7271] CHIP:DMG:                                 CommandPathIB =
+          [1657022305.317294][7266:7271] CHIP:DMG:                                 {
+          [1657022305.317344][7266:7271] CHIP:DMG:                                         EndpointId = 0x0,
+          [1657022305.317397][7266:7271] CHIP:DMG:                                         ClusterId = 0x34,
+          [1657022305.317447][7266:7271] CHIP:DMG:                                         CommandId = 0x0,
+          [1657022305.317496][7266:7271] CHIP:DMG:                                 },
+          [1657022305.317551][7266:7271] CHIP:DMG:
+          [1657022305.317596][7266:7271] CHIP:DMG:                                 StatusIB =
+          [1657022305.317645][7266:7271] CHIP:DMG:                                 {
+          [1657022305.317694][7266:7271] CHIP:DMG:                                         status = 0x00 (SUCCESS),
+          [1657022305.317743][7266:7271] CHIP:DMG:                                 },
+          [1657022305.317797][7266:7271] CHIP:DMG:
+          [1657022305.317928][7266:7271] CHIP:DMG:                         },
+          [1657022305.317980][7266:7271] CHIP:DMG:
+          [1657022305.318021][7266:7271] CHIP:DMG:                 },
+          [1657022305.318067][7266:7271] CHIP:DMG:
+          [1657022305.318103][7266:7271] CHIP:DMG:         ],
+          [1657022305.318146][7266:7271] CHIP:DMG:
+          [1657022305.318182][7266:7271] CHIP:DMG:         InteractionModelRevision = 1
+          [1657022305.318217][7266:7271] CHIP:DMG: },
+          [1657022305.318300][7266:7271] CHIP:DMG: Received Command Response Status for Endpoint=0 Cluster=0x0000_0034 Command=0x0000_0000 Status=0x0
+          [1657022305.318359][7266:7271] CHIP:DMG: ICR moving to [AwaitingDe]
+      disabled: true
 
-    #issue #830
-    - label: "Reads CurrentHeapHighWaterMark attribute value from DUT"
-      command: "readAttribute"
-      attribute: "CurrentHeapHighWatermark"
-      PICS: DGSW.S.A0003 && DGSW.S.C00.Rsp
-      response:
-          constraints:
-              type: int64u
+    - label: "TH reads a list of ThreadMetrics struct attributes from DUT."
+      PICS: DGSW.S.A0000
+      verification: |
+          ./chip-tool softwarediagnostics read thread-metrics 1 0
+
+          Verify the thread-metrics attribute has entries with ThreadMetrics Struct in TH(chip-tool) Log
+
+
+          [1654697032.107109][7037:7042] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0034 Attribute 0x0000_0000 DataVersion: 1044289564
+          [1654697032.107255][7037:7042] CHIP:TOO:   ThreadMetrics: 6 entries
+          [1654697032.107333][7037:7042] CHIP:TOO:     [1]: {
+          [1654697032.107376][7037:7042] CHIP:TOO:       Id: 8972
+          [1654697032.107413][7037:7042] CHIP:TOO:       Name: 8972
+          [1654697032.107449][7037:7042] CHIP:TOO:      }
+          [1654697032.107492][7037:7042] CHIP:TOO:     [2]: {
+          [1654697032.107526][7037:7042] CHIP:TOO:       Id: 8971
+          [1654697032.107559][7037:7042] CHIP:TOO:       Name: 8971
+          [1654697032.107591][7037:7042] CHIP:TOO:      }
+          [1654697032.107632][7037:7042] CHIP:TOO:     [3]: {
+          [1654697032.107667][7037:7042] CHIP:TOO:       Id: 8970
+          [1654697032.107700][7037:7042] CHIP:TOO:       Name: 8970
+          [1654697032.107733][7037:7042] CHIP:TOO:      }
+          [1654697032.107774][7037:7042] CHIP:TOO:     [4]: {
+          [1654697032.107808][7037:7042] CHIP:TOO:       Id: 8969
+          [1654697032.107842][7037:7042] CHIP:TOO:       Name: 8969
+          [1654697032.107875][7037:7042] CHIP:TOO:      }
+          [1654697032.107915][7037:7042] CHIP:TOO:     [5]: {
+          [1654697032.107950][7037:7042] CHIP:TOO:       Id: 8968
+          [1654697032.107982][7037:7042] CHIP:TOO:       Name: 8968
+          [1654697032.108015][7037:7042] CHIP:TOO:      }
+          [1654697032.108056][7037:7042] CHIP:TOO:     [6]: {
+          [1654697032.108090][7037:7042] CHIP:TOO:       Id: 8967
+          [1654697032.108122][7037:7042] CHIP:TOO:       Name: 8967
+          [1654697032.108154][7037:7042] CHIP:TOO:      }
+      disabled: true
+
+    - label: "TH reads CurrentHeapHighWatermark attribute from DUT."
+      PICS: DGSW.S.A0003
+      verification: |
+          ./chip-tool  softwarediagnostics  read current-heap-used 1 0
+
+          [1663066847.710531][4064:4069] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0034 Attribute 0x0000_0002 DataVersion: 2808275719
+          [1663066847.714122][4064:4069] CHIP:TOO:   CurrentHeapUsed: 1389168
+
+
+          ./chip-tool softwarediagnostics read current-heap-high-watermark 1 0
+
+          Verify the value of CurrentHeapHighWatermark is in range uint64  and the CurrentHeapUsed is less than or equal to the CurrentHeapHighWatermark in TH(chip-tool) Log
+
+          [1663066925.496916][4072:4077] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0034 Attribute 0x0000_0003 DataVersion: 2808275719
+          [1663066925.496999][4072:4077] CHIP:TOO:   CurrentHeapHighWatermark: 1389328
+      disabled: true
+
+    - label: "TH reads a CurrentHeapUsed attribute value from DUT."
+      PICS: DGSW.S.A0002
+      verification: |
+          ./chip-tool  softwarediagnostics  read current-heap-used 1 0
+
+          Verify the value of CurrentHeapUsed is in range uint64 in TH(chip-tool) Log
+
+          [1663066954.656376][4079:4084] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0034 Attribute 0x0000_0002 DataVersion: 2808275719
+          [1663066954.656505][4079:4084] CHIP:TOO:   CurrentHeapUsed: 1389360
+      disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_DGTHREAD_1_1.yaml b/src/app/tests/suites/certification/Test_TC_DGTHREAD_1_1.yaml
index ba6f97a..8f86d07 100644
--- a/src/app/tests/suites/certification/Test_TC_DGTHREAD_1_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DGTHREAD_1_1.yaml
@@ -138,7 +138,404 @@
               type: list
               contains: [6]
 
-    - label: "Read the optional attribute(ActiveTimestamp) in AttributeList"
+    - label: "TH reads optional attribute (DetachedRoleCount) in AttributeList"
+      PICS: DGTHREAD.S.A000e
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [14]
+
+    - label: "TH reads optional attribute (ChildRoleCount) AttributeList"
+      PICS: DGTHREAD.S.A001f
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [15]
+
+    - label: "TH reads optional attribute (RouterRoleCount) in AttributeList"
+      PICS: DGTHREAD.S.A0010
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [16]
+
+    - label: "TH reads optional attribute (LeaderRoleCount) in AttributeList"
+      PICS: DGTHREAD.S.A0011
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [17]
+
+    - label: "TH reads optional attribute (AttachAttemptCount) in AttributeList"
+      PICS: DGTHREAD.S.A0012
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [18]
+
+    - label:
+          "TH reads optional attribute (PartitionIdChangeCount) in AttributeList"
+      PICS: DGTHREAD.S.A0013
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [19]
+
+    - label:
+          "TH reads optional attribute (BetterPartitionAttachAttemptCount) in
+          AttributeList"
+      PICS: DGTHREAD.S.A0014
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [20]
+
+    - label: "TH reads optional attribute (ParentChangeCount) in AttributeList"
+      PICS: DGTHREAD.S.A0015
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [21]
+
+    - label: "TH reads optional attribute (TxTotalCount) in AttributeList"
+      PICS: DGTHREAD.S.A0016
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [22]
+
+    - label: "TH reads optional attribute (TxUnicastCount) in AttributeList"
+      PICS: DGTHREAD.S.A0017
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [23]
+
+    - label: "TH reads optional attribute (TxBroadcastCount) in AttributeList"
+      PICS: DGTHREAD.S.A0018
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [24]
+
+    - label:
+          "TH reads optional attribute (TxAckRequestedCount) in AttributeList"
+      PICS: DGTHREAD.S.A0019
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [25]
+
+    - label: "TH reads optional attribute (TxAckedCount) in AttributeList"
+      PICS: DGTHREAD.S.A001a
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [26]
+
+    - label:
+          "TH reads optional attribute (TxNoAckRequestedCount) in AttributeList"
+      PICS: DGTHREAD.S.A001b
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [27]
+
+    - label: "TH reads optional attributes (TxDataCount) in AttributeList"
+      PICS: DGTHREAD.S.A001c
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [28]
+
+    - label: "TH reads optional attribute (TxDataPollCount) in AttributeList"
+      PICS: DGTHREAD.S.A001d
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [29]
+
+    - label: "TH reads optional attribute (TxBeaconCount) in AttributeList"
+      PICS: DGTHREAD.S.A001e
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [30]
+
+    - label:
+          "TH reads optional attribute (TxBeaconRequestCount) in AttributeList"
+      PICS: DGTHREAD.S.A001f
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [31]
+
+    - label: "TH reads optional attribute (TxOtherCount) in AttributeList"
+      PICS: DGTHREAD.S.A0020
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [32]
+
+    - label: "TH reads optional attribute (TxRetryCount) in AttributeList"
+      PICS: DGTHREAD.S.A0021
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [33]
+
+    - label:
+          "TH reads optional attribute (TxDirectMaxRetryExpiryCount) in
+          AttributeList"
+      PICS: DGTHREAD.S.A0022
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [34]
+
+    - label:
+          "TH reads optional attribute (TxIndirectMaxRetryExpiryCount) in
+          AttributeList"
+      PICS: DGTHREAD.S.A0023
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [35]
+
+    - label: "TH reads optional attribute (TxErrCcaCount) in AttributeList"
+      PICS: DGTHREAD.S.A0024
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [36]
+
+    - label: "TH reads optional attribute (TxErrAbortCount) in AttributeList"
+      PICS: DGTHREAD.S.A0025
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [37]
+
+    - label:
+          "TH reads optional attribute (TxErrBusyChannelCount) in AttributeList"
+      PICS: DGTHREAD.S.A0026
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [38]
+
+    - label: "TH reads optional attribute (RxTotalCount) in AttributeList"
+      PICS: DGTHREAD.S.A0027
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [39]
+
+    - label: "TH reads optional attribute (RxUnicastCount) in AttributeList"
+      PICS: DGTHREAD.S.A0028
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [40]
+
+    - label: "TH reads optional attribute (RxBroadcastCount) in AttributeList"
+      PICS: DGTHREAD.S.A0029
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [41]
+
+    - label: "TH reads optional attribute (RxDataCount) in AttributeList"
+      PICS: DGTHREAD.S.A002a
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [42]
+
+    - label: "TH reads optional attribute (RxDataPollCount) in AttributeList"
+      PICS: DGTHREAD.S.A002b
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [43]
+
+    - label: "TH reads optional attribute (RxBeaconCount) in AttributeList"
+      PICS: DGTHREAD.S.A002c
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [44]
+
+    - label:
+          "TH reads optional attribute (RxBeaconRequestCount) in AttributeList"
+      PICS: DGTHREAD.S.A002d
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [45]
+
+    - label: "TH reads optional attribute (RxOtherCount) in AttributeList"
+      PICS: DGTHREAD.S.A002e
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [46]
+
+    - label:
+          "TH reads optional attribute (RxAddressFilteredCount) in AttributeList"
+      PICS: DGTHREAD.S.A002f
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [47]
+
+    - label:
+          "TH reads optional attribute (RxDestAddrFilteredCount) in
+          AttributeList"
+      PICS: DGTHREAD.S.A0030
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [48]
+
+    - label: "TH reads optional attribute (RxDuplicatedCount) in AttributeList"
+      PICS: DGTHREAD.S.A0031
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [49]
+
+    - label: "TH reads optional attribute (RxErrNoFrameCount) in AttributeList"
+      PICS: DGTHREAD.S.A0032
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [50]
+
+    - label:
+          "TH reads optional attribute (RxErrUnknownNeighborCount) in
+          AttributeList"
+      PICS: DGTHREAD.S.A0033
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [51]
+
+    - label:
+          "TH reads optional attribute (RxErrInvalidScrAddrCount) in
+          AttributeList"
+      PICS: DGTHREAD.S.A0034
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [52]
+
+    - label: "TH reads optional attribute (RxErrSecCount) in AttributeList"
+      PICS: DGTHREAD.S.A0035
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [53]
+
+    - label: "TH reads optional attribute (RxErrFcsCount) in AttributeList"
+      PICS: DGTHREAD.S.A0036
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [54]
+
+    - label: "TH reads optional attribute (RxErrOtherCount) in AttributeList"
+      PICS: DGTHREAD.S.A0037
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [55]
+
+    - label: "Read the optional attribute (ActiveTimestamp) in AttributeList"
       PICS: DGTHREAD.S.A0039
       command: "readAttribute"
       attribute: "AttributeList"
@@ -147,7 +544,7 @@
               type: list
               contains: [56]
 
-    - label: "Read the optional attribute(PendingTimestamp) in AttributeList"
+    - label: "Read the optional attribute (PendingTimestamp) in AttributeList"
       PICS: DGTHREAD.S.A003A
       command: "readAttribute"
       attribute: "AttributeList"
@@ -156,7 +553,7 @@
               type: list
               contains: [57]
 
-    - label: "Read the optional attribute(Delay) in AttributeList"
+    - label: "Read the optional attribute (Delay) in AttributeList"
       PICS: DGTHREAD.S.A003B
       command: "readAttribute"
       attribute: "AttributeList"
diff --git a/src/app/tests/suites/certification/Test_TC_DGTHREAD_2_2.yaml b/src/app/tests/suites/certification/Test_TC_DGTHREAD_2_2.yaml
index 22017c2..962a4b2 100644
--- a/src/app/tests/suites/certification/Test_TC_DGTHREAD_2_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DGTHREAD_2_2.yaml
@@ -122,7 +122,7 @@
               maxValue: 0xFFFFFFFF
 
     - label: "TH reads TxBeaconRequestCount attribute value from DUT"
-      PICS: DGTHREAD.S.A002f
+      PICS: DGTHREAD.S.A001f
       command: "readAttribute"
       attribute: "TxBeaconRequestCount"
       response:
diff --git a/src/app/tests/suites/certification/Test_TC_DGTHREAD_2_3.yaml b/src/app/tests/suites/certification/Test_TC_DGTHREAD_2_3.yaml
index 4611a6b..848905e 100644
--- a/src/app/tests/suites/certification/Test_TC_DGTHREAD_2_3.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DGTHREAD_2_3.yaml
@@ -166,13 +166,14 @@
           "TH reads RxErrInvalidScrAddrCount attribute value from DUT and verify
           data type"
       verification: |
-          ./chip-tool threadnetworkdiagnostics read rx-err-invalid-src-addr-count 476 0
+          ./chip-tool threadnetworkdiagnostics read rx-err-invalid-src-addr-count 54 0
+          Verify "RxErrInvalidSrcAddrCount response" on the TH(Chip-tool) Log:
 
-           [1649826953.827775][3727:3732] CHIP:DMG:        SuppressResponse = true,
-           [1649826953.827837][3727:3732] CHIP:DMG:        InteractionModelRevision = 1
-           [1649826953.827894][3727:3732] CHIP:DMG: }
-           [1649826953.828197][3727:3732] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0035 Attribute 0x0000_0034 DataVersion: 2758196590
-           [1649826953.828346][3727:3732] CHIP:TOO:   RxErrInvalidSrcAddrCount: 0
+          [1649826953.827775][3727:3732] CHIP:DMG:        SuppressResponse = true,
+          [1649826953.827837][3727:3732] CHIP:DMG:        InteractionModelRevision = 1
+          [1649826953.827894][3727:3732] CHIP:DMG: }
+          [1649826953.828197][3727:3732] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_0035 Attribute 0x0000_0034 DataVersion: 2758196590
+          [1649826953.828346][3727:3732] CHIP:TOO:   RxErrInvalidSrcAddrCount: 0
       cluster: "LogCommands"
       command: "UserPrompt"
       PICS: PICS_USER_PROMPT && DGTHREAD.S.A0034
diff --git a/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_1.yaml b/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_1.yaml
index 6fc9398..3ac2871 100644
--- a/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DGTHREAD_3_1.yaml
@@ -509,7 +509,7 @@
       verification: |
           ./chip-tool threadnetworkdiagnostics read channel-page0mask 54 0
 
-          Verify "ChannelMask response" on the TH(All-cluster-app) Log:
+          Verify ""channel-page0mask"" on the TH(All-cluster-app) Log:
 
           I: 2464057 [IN]Sending unauthenticated msg 0x2000489c with MessageCounter:53367840 to 0x0000000000000000c
           I: 2464071 [EM]Received message of type 0x2 with protocolId (0, 1) and MessageCounter:147354356 on exchar
diff --git a/src/app/tests/suites/certification/Test_TC_DRLK_1_1.yaml b/src/app/tests/suites/certification/Test_TC_DRLK_1_1.yaml
index 95cb2e2..f511e3e 100644
--- a/src/app/tests/suites/certification/Test_TC_DRLK_1_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DRLK_1_1.yaml
@@ -151,6 +151,16 @@
               contains: [0, 1, 2, 37, 38, 65528, 65529, 65531, 65532, 65533]
 
     - label:
+          "TH reads Feature dependent(DRLK.S.F05) attributes in AttributeList"
+      PICS: DRLK.S.F05
+      command: "readAttribute"
+      attribute: "AttributeList"
+      response:
+          constraints:
+              type: list
+              contains: [3]
+
+    - label:
           "TH reads Feature dependent(DRLK.S.F08) attributes in AttributeList"
       PICS: DRLK.S.F08
       command: "readAttribute"
@@ -430,7 +440,7 @@
       response:
           constraints:
               type: list
-              contains: [28, 35]
+              contains: [28, 35, 37]
     #Commenting out the step EventList attribute which is out of scope for matter V1.0
     #- label:
     #      "Read EventList attribute from the DUT and Verify that the DUT
diff --git a/src/app/tests/suites/certification/Test_TC_DRLK_2_7.yaml b/src/app/tests/suites/certification/Test_TC_DRLK_2_7.yaml
index 4f962e0..8272508 100644
--- a/src/app/tests/suites/certification/Test_TC_DRLK_2_7.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DRLK_2_7.yaml
@@ -164,15 +164,15 @@
       arguments:
           values:
               - name: "YearDayIndex"
-                value: 2
+                value: 0
               - name: "userIndex"
-                value: 21
+                value: 15
       response:
           values:
               - name: "YearDayIndex"
-                value: 2
+                value: 0
               - name: "userIndex"
-                value: 21
+                value: 15
               - name: "status"
                 value: 0x85
               - name: "LocalStartTime"
diff --git a/src/app/tests/suites/certification/Test_TC_DRLK_2_9.yaml b/src/app/tests/suites/certification/Test_TC_DRLK_2_9.yaml
index 7a26ee1..9a39dfa 100644
--- a/src/app/tests/suites/certification/Test_TC_DRLK_2_9.yaml
+++ b/src/app/tests/suites/certification/Test_TC_DRLK_2_9.yaml
@@ -197,45 +197,15 @@
               - name: "nextCredentialIndex"
                 value: 3
 
-    #Issue 19990 expected response OCCUPIED, but CHIP Tool Verification Steps shows status: 2 fix script once the issue is fixed.
-    - label: "TH sends Set Credential Command to DUT"
-      PICS: DRLK.S.F08 && DRLK.S.C22.Rsp && DRLK.S.C23.Tx
-      command: "SetCredential"
-      timedInteractionTimeoutMs: 10000
-      arguments:
-          values:
-              - name: "operationType"
-                value: 0
-              - name: "credential"
-                value: { CredentialType: 1, CredentialIndex: 1 }
-              - name: "credentialData"
-                value: "123456"
-              - name: "userIndex"
-                value: 1
-              - name: "userStatus"
-                value: null
-              - name: "userType"
-                value: null
-      response:
-          values:
-              - name: "status"
-                value: 0x02
-              - name: "userIndex"
-                value: null
-              - name: "nextCredentialIndex"
-                value: 2
-
-    #Issue 19990 expected response OCCUPIED, but CHIP Tool Verification Steps shows status: 2 fix script once the issue is fixed.
     - label:
           "TH sends Set Credential Command to DUT and Verify that the DUT sends
-          Set Credential Response command with response as OCCUPIED if the
-          CredentialIndex is repeated"
+          Set Credential Response command with status as DUPLICATE or OCCUPIED"
       verification: |
           ./chip-tool doorlock set-credential 0 '{ "credentialType" : 1, "credentialIndex" : 1 }' 123456 1 null null  1 1 --timedInteractionTimeoutMs 1000
 
           Verify "DUT sends Set Credential Response command with response as DUPLICATE or OCCUPIED" on the TH(Chip-tool) Log:
 
-          [1656506733.767451][27276:27281] CHIP:DMG: Received Command Response Data, Endpoint=1 Cluster=0x0000_0101 Command=0x0000_0023
+          [[1656506733.767451][27276:27281] CHIP:DMG: Received Command Response Data, Endpoint=1 Cluster=0x0000_0101 Command=0x0000_0023
           [1656506733.767542][27276:27281] CHIP:TOO: Endpoint: 1 Cluster: 0x0000_0101 Command 0x0000_0023
           [1656506733.767663][27276:27281] CHIP:TOO:   SetCredentialResponse: {
           [1656506733.767731][27276:27281] CHIP:TOO:     status: 2
@@ -252,41 +222,12 @@
               - name: "expectedValue"
                 value: "y"
 
-    #Issue 19990 expected response OCCUPIED, but CHIP Tool Verification Steps shows status: 2 fix script once the issue is fixed.
-    - label: "TH sends Set Credential Command to DUT"
-      PICS: DRLK.S.F08 && DRLK.S.C22.Rsp && DRLK.S.C23.Tx
-      command: "SetCredential"
-      timedInteractionTimeoutMs: 10000
-      arguments:
-          values:
-              - name: "operationType"
-                value: 0
-              - name: "credential"
-                value: { CredentialType: 1, CredentialIndex: 1 }
-              - name: "credentialData"
-                value: "123456"
-              - name: "userIndex"
-                value: 1
-              - name: "userStatus"
-                value: null
-              - name: "userType"
-                value: null
-      response:
-          values:
-              - name: "status"
-                value: 0x02
-              - name: "userIndex"
-                value: null
-              - name: "nextCredentialIndex"
-                value: 2
-
-    #Issue 19990 expected response OCCUPIED, but CHIP Tool Verification Steps shows status: 2 fix script once the issue is fixed.
     - label:
           "TH sends Set Credential Command to DUT and Verify that the DUT sends
           Set Credential Response command with response as OCCUPIED if the
           CredentialIndex is repeated"
       verification: |
-          ./chip-tool doorlock set-credential 0 '{ "credentialType" : 1, "credentialIndex" : 1 }' 123457 1 null null 1 1 --timedInteractionTimeoutMs 1000
+          ./chip-tool doorlock set-credential 0 '{ "credentialType" : 1, "credentialIndex" : 1 }' 12345 1 null null 1 1 --timedInteractionTimeoutMs 1000
 
           Verify "DUT sends Set Credential Response command with response as DUPLICATE or OCCUPIED" on the TH(Chip-tool) Log:
 
@@ -308,34 +249,6 @@
                 value: "y"
 
     #Issue 19990 expected response OCCUPIED, but CHIP Tool Verification Steps shows status: 2 fix script once the issue is fixed.
-    - label: "TH sends Set Credential Command to DUT"
-      PICS: DRLK.S.F08 && DRLK.S.C22.Rsp && DRLK.S.C23.Tx
-      command: "SetCredential"
-      timedInteractionTimeoutMs: 10000
-      arguments:
-          values:
-              - name: "operationType"
-                value: 2
-              - name: "credential"
-                value: { CredentialType: 1, CredentialIndex: 3 }
-              - name: "credentialData"
-                value: "123456"
-              - name: "userIndex"
-                value: 1
-              - name: "userStatus"
-                value: null
-              - name: "userType"
-                value: null
-      response:
-          values:
-              - name: "status"
-                value: 0x02
-              - name: "userIndex"
-                value: null
-              - name: "nextCredentialIndex"
-                value: 4
-
-    #Issue 19990 expected response OCCUPIED, but CHIP Tool Verification Steps shows status: 2 fix script once the issue is fixed.
     - label:
           "TH sends Set Credential Command to DUT and Verify that the DUT sends
           Set Credential Response command with response as OCCUPIED if the
@@ -343,7 +256,7 @@
       verification: |
           Mark as not applicable and proceed to next step
 
-          ./chip-tool doorlock set-credential 2 '{ "credentialType" : 1, "credentialIndex" : 3 }' 123456 1 null null 1 1 --timedInteractionTimeoutMs 1000
+          ./chip-tool doorlock set-credential 2 '{ "credentialType" : 1, "credentialIndex" : 3 }' 1234567 1 null null 1 1 --timedInteractionTimeoutMs 1000
 
           Verify "DUT sends Set Credential Response command with response as OCCUPIED" on the TH(Chip-tool) Log:
 
diff --git a/src/app/tests/suites/certification/Test_TC_G_2_2.yaml b/src/app/tests/suites/certification/Test_TC_G_2_2.yaml
index 6e5e1bf..60870da 100644
--- a/src/app/tests/suites/certification/Test_TC_G_2_2.yaml
+++ b/src/app/tests/suites/certification/Test_TC_G_2_2.yaml
@@ -53,60 +53,109 @@
           [1658316948.574597][4039:4044] CHIP:DMG:                                   status = 0x00 (SUCCESS),
           [1658316948.574632][4039:4044] CHIP:DMG:                                },
 
-          Before adding the Groups (0x0001,0x0002,0x0003) execute this command
+          Before adding the Groups (0x0001,0x0002) execute this command
 
-          ./chip-tool groupkeymanagement write group-key-map "[{"groupId": 1, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":2, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 3, "groupKeySetID": 1,"fabricIndex": 1} ]" 1 0
+          ./chip-tool groupkeymanagement write group-key-map "[{"groupId": 1, "groupKeySetID": 1, "fabricIndex": 1},{"groupId":2, "groupKeySetID": 1, "fabricIndex": 1} ]" 1 0
 
           Verify the "status is success" on the TH(Chip-tool)  Log:
 
-          [1662654848.010405][228914:228919] CHIP:DMG:                 AttributeStatusIB =
-          [1662654848.010410][228914:228919] CHIP:DMG:                 {
-          [1662654848.010416][228914:228919] CHIP:DMG:                         AttributePathIB =
-          [1662654848.010421][228914:228919] CHIP:DMG:                         {
-          [1662654848.010427][228914:228919] CHIP:DMG:                                 Endpoint = 0x0,
-          [1662654848.010433][228914:228919] CHIP:DMG:                                 Cluster = 0x3f,
-          [1662654848.010439][228914:228919] CHIP:DMG:                                 Attribute = 0x0000_0000,
-          [1662654848.010444][228914:228919] CHIP:DMG:                                 ListIndex = Null,
-          [1662654848.010450][228914:228919] CHIP:DMG:                         }
-          [1662654848.010458][228914:228919] CHIP:DMG:
-          [1662654848.010464][228914:228919] CHIP:DMG:                         StatusIB =
-          [1662654848.010469][228914:228919] CHIP:DMG:                         {
-          [1662654848.010475][228914:228919] CHIP:DMG:                                 status = 0x00 (SUCCESS),
-          [1662654848.010480][228914:228919] CHIP:DMG:                         },
-          [1662654848.010485][228914:228919] CHIP:DMG:
-          [1662654848.010490][228914:228919] CHIP:DMG:                 },
-          [1662654848.010501][228914:228919] CHIP:DMG:
-          [1662654848.010505][228914:228919] CHIP:DMG:                 AttributeStatusIB =
-          [1662654848.010510][228914:228919] CHIP:DMG:                 {
-          [1662654848.010514][228914:228919] CHIP:DMG:                         AttributePathIB =
-          [1662654848.010519][228914:228919] CHIP:DMG:                         {
-          [1662654848.010523][228914:228919] CHIP:DMG:                                 Endpoint = 0x0,
-          [1662654848.010527][228914:228919] CHIP:DMG:                                 Cluster = 0x3f,
-          [1662654848.010531][228914:228919] CHIP:DMG:                                 Attribute = 0x0000_0000,
-          [1662654848.010535][228914:228919] CHIP:DMG:                                 ListIndex = Null,
-          [1662654848.010538][228914:228919] CHIP:DMG:                         }
-          [1662654848.010543][228914:228919] CHIP:DMG:
-          [1662654848.010547][228914:228919] CHIP:DMG:                         StatusIB =
-          [1662654848.010550][228914:228919] CHIP:DMG:                         {
-          [1662654848.010554][228914:228919] CHIP:DMG:                                 status = 0x00 (SUCCESS),
-          [1662654848.010557][228914:228919] CHIP:DMG:                         },
-          [1662654848.010561][228914:228919] CHIP:DMG:
-          [1662654848.010565][228914:228919] CHIP:DMG:                 },
-          [1662654848.010571][228914:228919] CHIP:DMG:
-          [1662654848.010574][228914:228919] CHIP:DMG:                 AttributeStatusIB =
-          [1662654848.010578][228914:228919] CHIP:DMG:                 {
-          [1662654848.010581][228914:228919] CHIP:DMG:                         AttributePathIB =
-          [1662654848.010585][228914:228919] CHIP:DMG:                         {
-          [1662654848.010589][228914:228919] CHIP:DMG:                                 Endpoint = 0x0,
-          [1662654848.010593][228914:228919] CHIP:DMG:                                 Cluster = 0x3f,
-          [1662654848.010597][228914:228919] CHIP:DMG:                                 Attribute = 0x0000_0000,
-          [1662654848.010601][228914:228919] CHIP:DMG:                                 ListIndex = Null,
-          [1662654848.010605][228914:228919] CHIP:DMG:                         }
-          [1662654848.010610][228914:228919] CHIP:DMG:
-          [1662654848.010614][228914:228919] CHIP:DMG:                         StatusIB =
-          [1662654848.010618][228914:228919] CHIP:DMG:                         {
-          [1662654848.010621][228914:228919] CHIP:DMG:                                 status = 0x00 (SUCCESS),
-          [1662654848.010625][228914:228919] CHIP:DMG:                         },
+          [1663071507.364542][23693:23698] CHIP:DMG: WriteClient moving to [ResponseRe]
+          [1663071507.364603][23693:23698] CHIP:DMG: WriteResponseMessage =
+          [1663071507.364635][23693:23698] CHIP:DMG: {
+          [1663071507.364661][23693:23698] CHIP:DMG:         AttributeStatusIBs =
+          [1663071507.364699][23693:23698] CHIP:DMG:         [
+          [1663071507.364728][23693:23698] CHIP:DMG:                 AttributeStatusIB =
+          [1663071507.364768][23693:23698] CHIP:DMG:                 {
+          [1663071507.364799][23693:23698] CHIP:DMG:                         AttributePathIB =
+          [1663071507.364838][23693:23698] CHIP:DMG:                         {
+          [1663071507.364876][23693:23698] CHIP:DMG:                                 Endpoint = 0x0,
+          [1663071507.364921][23693:23698] CHIP:DMG:                                 Cluster = 0x3f,
+          [1663071507.364961][23693:23698] CHIP:DMG:                                 Attribute = 0x0000_0000,
+          [1663071507.365002][23693:23698] CHIP:DMG:                         }
+          [1663071507.365044][23693:23698] CHIP:DMG:
+          [1663071507.365079][23693:23698] CHIP:DMG:                         StatusIB =
+          [1663071507.365121][23693:23698] CHIP:DMG:                         {
+          [1663071507.365164][23693:23698] CHIP:DMG:                                 status = 0x00 (SUCCESS),
+          [1663071507.365201][23693:23698] CHIP:DMG:                         },
+          [1663071507.365243][23693:23698] CHIP:DMG:
+          [1663071507.365275][23693:23698] CHIP:DMG:                 },
+          [1663071507.365320][23693:23698] CHIP:DMG:
+          [1663071507.365351][23693:23698] CHIP:DMG:                 AttributeStatusIB =
+          [1663071507.365385][23693:23698] CHIP:DMG:                 {
+          [1663071507.365417][23693:23698] CHIP:DMG:                         AttributePathIB =
+          [1663071507.365453][23693:23698] CHIP:DMG:                         {
+          [1663071507.365489][23693:23698] CHIP:DMG:                                 Endpoint = 0x0,
+          [1663071507.365532][23693:23698] CHIP:DMG:                                 Cluster = 0x3f,
+          [1663071507.365574][23693:23698] CHIP:DMG:                                 Attribute = 0x0000_0000,
+          [1663071507.365612][23693:23698] CHIP:DMG:                                 ListIndex = Null,
+          [1663071507.365652][23693:23698] CHIP:DMG:                         }
+          [1663071507.365696][23693:23698] CHIP:DMG:
+          [1663071507.365735][23693:23698] CHIP:DMG:                         StatusIB =
+          [1663071507.365773][23693:23698] CHIP:DMG:                         {
+          [1663071507.365810][23693:23698] CHIP:DMG:                                 status = 0x00 (SUCCESS),
+          [1663071507.365846][23693:23698] CHIP:DMG:                         },
+          [1663071507.365883][23693:23698] CHIP:DMG:
+          [1663071507.365915][23693:23698] CHIP:DMG:                 },
+          [1663071507.365958][23693:23698] CHIP:DMG:
+          [1663071507.365987][23693:23698] CHIP:DMG:                 AttributeStatusIB =
+          [1663071507.366017][23693:23698] CHIP:DMG:                 {
+          [1663071507.366047][23693:23698] CHIP:DMG:                         AttributePathIB =
+          [1663071507.366082][23693:23698] CHIP:DMG:                         {
+          [1663071507.366121][23693:23698] CHIP:DMG:                                 Endpoint = 0x0,
+          [1663071507.366164][23693:23698] CHIP:DMG:                                 Cluster = 0x3f,
+          [1663071507.366204][23693:23698] CHIP:DMG:                                 Attribute = 0x0000_0000,
+          [1663071507.366243][23693:23698] CHIP:DMG:                                 ListIndex = Null,
+          [1663071507.366280][23693:23698] CHIP:DMG:                         }
+          [1663071507.366319][23693:23698] CHIP:DMG:
+          [1663071507.366355][23693:23698] CHIP:DMG:                         StatusIB =
+          [1663071507.366390][23693:23698] CHIP:DMG:                         {
+          [1663071507.366428][23693:23698] CHIP:DMG:                                 status = 0x00 (SUCCESS),
+          [1663071507.366466][23693:23698] CHIP:DMG:                         },
+
+
+          Before adding the Groups (0x0003) execute this command
+
+          ./chip-tool groupkeymanagement write group-key-map "[{"groupId": 3, "groupKeySetID": 1, "fabricIndex": 1}]" 1 0
+
+
+          Verify the "status is success" on the TH(Chip-tool)  Log:
+
+          [1663071565.926340][23704:23709] CHIP:DMG: WriteClient moving to [ResponseRe]
+          [1663071565.926399][23704:23709] CHIP:DMG: WriteResponseMessage =
+          [1663071565.926427][23704:23709] CHIP:DMG: {
+          [1663071565.926464][23704:23709] CHIP:DMG:         AttributeStatusIBs =
+          [1663071565.926498][23704:23709] CHIP:DMG:         [
+          [1663071565.926535][23704:23709] CHIP:DMG:                 AttributeStatusIB =
+          [1663071565.926568][23704:23709] CHIP:DMG:                 {
+          [1663071565.926609][23704:23709] CHIP:DMG:                         AttributePathIB =
+          [1663071565.926689][23704:23709] CHIP:DMG:                         {
+          [1663071565.926730][23704:23709] CHIP:DMG:                                 Endpoint = 0x0,
+          [1663071565.926775][23704:23709] CHIP:DMG:                                 Cluster = 0x3f,
+          [1663071565.926814][23704:23709] CHIP:DMG:                                 Attribute = 0x0000_0000,
+          [1663071565.926909][23704:23709] CHIP:DMG:                         }
+          [1663071565.926961][23704:23709] CHIP:DMG:
+          [1663071565.926993][23704:23709] CHIP:DMG:                         StatusIB =
+          [1663071565.927037][23704:23709] CHIP:DMG:                         {
+          [1663071565.927074][23704:23709] CHIP:DMG:                                 status = 0x00 (SUCCESS),
+          [1663071565.927116][23704:23709] CHIP:DMG:                         },
+          [1663071565.927153][23704:23709] CHIP:DMG:
+          [1663071565.927191][23704:23709] CHIP:DMG:                 },
+          [1663071565.927230][23704:23709] CHIP:DMG:
+          [1663071565.927265][23704:23709] CHIP:DMG:                 AttributeStatusIB =
+          [1663071565.927295][23704:23709] CHIP:DMG:                 {
+          [1663071565.927332][23704:23709] CHIP:DMG:                         AttributePathIB =
+          [1663071565.927365][23704:23709] CHIP:DMG:                         {
+          [1663071565.927406][23704:23709] CHIP:DMG:                                 Endpoint = 0x0,
+          [1663071565.927442][23704:23709] CHIP:DMG:                                 Cluster = 0x3f,
+          [1663071565.927487][23704:23709] CHIP:DMG:                                 Attribute = 0x0000_0000,
+          [1663071565.927524][23704:23709] CHIP:DMG:                                 ListIndex = Null,
+          [1663071565.927570][23704:23709] CHIP:DMG:                         }
+          [1663071565.927607][23704:23709] CHIP:DMG:
+          [1663071565.927651][23704:23709] CHIP:DMG:                         StatusIB =
+          [1663071565.927686][23704:23709] CHIP:DMG:                         {
+          [1663071565.927728][23704:23709] CHIP:DMG:                                 status = 0x00 (SUCCESS),
+          [1663071565.927760][23704:23709] CHIP:DMG:                         },
+
 
 
           After executing all commands related to the above three groups, execute the below command before adding the Group 0x0004 to check the Resource_Exhausted Condition
diff --git a/src/app/tests/suites/certification/Test_TC_G_2_3.yaml b/src/app/tests/suites/certification/Test_TC_G_2_3.yaml
index c0befbc..f25cd52 100644
--- a/src/app/tests/suites/certification/Test_TC_G_2_3.yaml
+++ b/src/app/tests/suites/certification/Test_TC_G_2_3.yaml
@@ -99,61 +99,108 @@
           [1662655615.539910][229172:229177] CHIP:DMG:                         },
 
 
-          Before adding the Groups (0x0006,0x0007,0x0008) execute this command
+          Before adding the Groups (0x0006,0x0007) execute this command
 
-          ./chip-tool groupkeymanagement write group-key-map "[{"groupId":6, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 7, "groupKeySetID": 1,"fabricIndex": 1},{"groupId":8, "groupKeySetID": 1, "fabricIndex": 1} ]" 1 0
+          ./chip-tool groupkeymanagement write group-key-map "[{"groupId":6, "groupKeySetID": 1, "fabricIndex": 1},{"groupId": 7, "groupKeySetID": 1,"fabricIndex": 1}]" 1 0
 
 
           Verify the "status is success" on the TH(Chip-tool)  Log:
 
-          [1662655813.516351][229227:229232] CHIP:DMG:                 AttributeStatusIB =
-          [1662655813.516355][229227:229232] CHIP:DMG:                 {
-          [1662655813.516358][229227:229232] CHIP:DMG:                         AttributePathIB =
-          [1662655813.516362][229227:229232] CHIP:DMG:                         {
-          [1662655813.516366][229227:229232] CHIP:DMG:                                 Endpoint = 0x0,
-          [1662655813.516371][229227:229232] CHIP:DMG:                                 Cluster = 0x3f,
-          [1662655813.516375][229227:229232] CHIP:DMG:                                 Attribute = 0x0000_0000,
-          [1662655813.516378][229227:229232] CHIP:DMG:                                 ListIndex = Null,
-          [1662655813.516382][229227:229232] CHIP:DMG:                         }
-          [1662655813.516386][229227:229232] CHIP:DMG:
-          [1662655813.516390][229227:229232] CHIP:DMG:                         StatusIB =
-          [1662655813.516394][229227:229232] CHIP:DMG:                         {
-          [1662655813.516401][229227:229232] CHIP:DMG:                                 status = 0x00 (SUCCESS),
-          [1662655813.516407][229227:229232] CHIP:DMG:                         },
-          [1662655813.516413][229227:229232] CHIP:DMG:
-          [1662655813.516417][229227:229232] CHIP:DMG:                 },
-          [1662655813.516423][229227:229232] CHIP:DMG:
-          [1662655813.516426][229227:229232] CHIP:DMG:                 AttributeStatusIB =
-          [1662655813.516431][229227:229232] CHIP:DMG:                 {
-          [1662655813.516436][229227:229232] CHIP:DMG:                         AttributePathIB =
-          [1662655813.516441][229227:229232] CHIP:DMG:                         {
-          [1662655813.516446][229227:229232] CHIP:DMG:                                 Endpoint = 0x0,
-          [1662655813.516452][229227:229232] CHIP:DMG:                                 Cluster = 0x3f,
-          [1662655813.516459][229227:229232] CHIP:DMG:                                 Attribute = 0x0000_0000,
-          [1662655813.516464][229227:229232] CHIP:DMG:                                 ListIndex = Null,
-          [1662655813.516468][229227:229232] CHIP:DMG:                         }
-          [1662655813.516474][229227:229232] CHIP:DMG:
-          [1662655813.516477][229227:229232] CHIP:DMG:                         StatusIB =
-          [1662655813.516482][229227:229232] CHIP:DMG:                         {
-          [1662655813.516487][229227:229232] CHIP:DMG:                                 status = 0x00 (SUCCESS),
-          [1662655813.516491][229227:229232] CHIP:DMG:                         },
-          [1662655813.516497][229227:229232] CHIP:DMG:
-          [1662655813.516500][229227:229232] CHIP:DMG:                 },
-          [1662655813.516509][229227:229232] CHIP:DMG:
-          [1662655813.516514][229227:229232] CHIP:DMG:                 AttributeStatusIB =
-          [1662655813.516519][229227:229232] CHIP:DMG:                 {
-          [1662655813.516523][229227:229232] CHIP:DMG:                         AttributePathIB =
-          [1662655813.516528][229227:229232] CHIP:DMG:                         {
-          [1662655813.516532][229227:229232] CHIP:DMG:                                 Endpoint = 0x0,
-          [1662655813.516537][229227:229232] CHIP:DMG:                                 Cluster = 0x3f,
-          [1662655813.516543][229227:229232] CHIP:DMG:                                 Attribute = 0x0000_0000,
-          [1662655813.516548][229227:229232] CHIP:DMG:                                 ListIndex = Null,
-          [1662655813.516553][229227:229232] CHIP:DMG:                         }
-          [1662655813.516561][229227:229232] CHIP:DMG:
-          [1662655813.516566][229227:229232] CHIP:DMG:                         StatusIB =
-          [1662655813.516572][229227:229232] CHIP:DMG:                         {
-          [1662655813.516577][229227:229232] CHIP:DMG:                                 status = 0x00 (SUCCESS),
-          [1662655813.516582][229227:229232] CHIP:DMG:                         },
+          [1663071815.843582][23720:23725] CHIP:DMG: WriteClient moving to [ResponseRe]
+          [1663071815.843667][23720:23725] CHIP:DMG: WriteResponseMessage =
+          [1663071815.843695][23720:23725] CHIP:DMG: {
+          [1663071815.843718][23720:23725] CHIP:DMG:         AttributeStatusIBs =
+          [1663071815.843750][23720:23725] CHIP:DMG:         [
+          [1663071815.843775][23720:23725] CHIP:DMG:                 AttributeStatusIB =
+          [1663071815.843809][23720:23725] CHIP:DMG:                 {
+          [1663071815.843838][23720:23725] CHIP:DMG:                         AttributePathIB =
+          [1663071815.843874][23720:23725] CHIP:DMG:                         {
+          [1663071815.843909][23720:23725] CHIP:DMG:                                 Endpoint = 0x0,
+          [1663071815.843947][23720:23725] CHIP:DMG:                                 Cluster = 0x3f,
+          [1663071815.843985][23720:23725] CHIP:DMG:                                 Attribute = 0x0000_0000,
+          [1663071815.844018][23720:23725] CHIP:DMG:                         }
+          [1663071815.844058][23720:23725] CHIP:DMG:
+          [1663071815.844089][23720:23725] CHIP:DMG:                         StatusIB =
+          [1663071815.844125][23720:23725] CHIP:DMG:                         {
+          [1663071815.844159][23720:23725] CHIP:DMG:                                 status = 0x00 (SUCCESS),
+          [1663071815.844192][23720:23725] CHIP:DMG:                         },
+          [1663071815.844227][23720:23725] CHIP:DMG:
+          [1663071815.844257][23720:23725] CHIP:DMG:                 },
+          [1663071815.844295][23720:23725] CHIP:DMG:
+          [1663071815.844322][23720:23725] CHIP:DMG:                 AttributeStatusIB =
+          [1663071815.844352][23720:23725] CHIP:DMG:                 {
+          [1663071815.844380][23720:23725] CHIP:DMG:                         AttributePathIB =
+          [1663071815.844412][23720:23725] CHIP:DMG:                         {
+          [1663071815.844445][23720:23725] CHIP:DMG:                                 Endpoint = 0x0,
+          [1663071815.844482][23720:23725] CHIP:DMG:                                 Cluster = 0x3f,
+          [1663071815.844518][23720:23725] CHIP:DMG:                                 Attribute = 0x0000_0000,
+          [1663071815.844555][23720:23725] CHIP:DMG:                                 ListIndex = Null,
+          [1663071815.844587][23720:23725] CHIP:DMG:                         }
+          [1663071815.844623][23720:23725] CHIP:DMG:
+          [1663071815.844657][23720:23725] CHIP:DMG:                         StatusIB =
+          [1663071815.844691][23720:23725] CHIP:DMG:                         {
+          [1663071815.844724][23720:23725] CHIP:DMG:                                 status = 0x00 (SUCCESS),
+          [1663071815.844760][23720:23725] CHIP:DMG:                         },
+          [1663071815.844793][23720:23725] CHIP:DMG:
+          [1663071815.844824][23720:23725] CHIP:DMG:                 },
+          [1663071815.844866][23720:23725] CHIP:DMG:
+          [1663071815.844893][23720:23725] CHIP:DMG:                 AttributeStatusIB =
+          [1663071815.844922][23720:23725] CHIP:DMG:                 {
+          [1663071815.844952][23720:23725] CHIP:DMG:                         AttributePathIB =
+          [1663071815.844986][23720:23725] CHIP:DMG:                         {
+          [1663071815.845021][23720:23725] CHIP:DMG:                                 Endpoint = 0x0,
+          [1663071815.845058][23720:23725] CHIP:DMG:                                 Cluster = 0x3f,
+          [1663071815.845097][23720:23725] CHIP:DMG:                                 Attribute = 0x0000_0000,
+          [1663071815.845131][23720:23725] CHIP:DMG:                                 ListIndex = Null,
+          [1663071815.845165][23720:23725] CHIP:DMG:                         }
+          [1663071815.845202][23720:23725] CHIP:DMG:
+          [1663071815.845236][23720:23725] CHIP:DMG:                         StatusIB =
+          [1663071815.845269][23720:23725] CHIP:DMG:                         {
+          [1663071815.845304][23720:23725] CHIP:DMG:                                 status = 0x00 (SUCCESS),
+          [1663071815.845337][23720:23725] CHIP:DMG:                         },
+
+
+          Before adding the Groups (0x0008) execute this command
+
+          ./chip-tool groupkeymanagement write group-key-map "[{"groupId": 8, "groupKeySetID": 1, "fabricIndex": 1}]" 1 0
+
+          Verify the "status is success" on the TH(Chip-tool)  Log:
+
+          [1663071878.472457][23730:23735] CHIP:DMG: WriteClient moving to [ResponseRe]
+          [1663071878.472525][23730:23735] CHIP:DMG: WriteResponseMessage =
+          [1663071878.472560][23730:23735] CHIP:DMG: {
+          [1663071878.472607][23730:23735] CHIP:DMG:         AttributeStatusIBs =
+          [1663071878.472649][23730:23735] CHIP:DMG:         [
+          [1663071878.472702][23730:23735] CHIP:DMG:                 AttributeStatusIB =
+          [1663071878.472743][23730:23735] CHIP:DMG:                 {
+          [1663071878.472779][23730:23735] CHIP:DMG:                         AttributePathIB =
+          [1663071878.472838][23730:23735] CHIP:DMG:                         {
+          [1663071878.472893][23730:23735] CHIP:DMG:                                 Endpoint = 0x0,
+          [1663071878.472939][23730:23735] CHIP:DMG:                                 Cluster = 0x3f,
+          [1663071878.473002][23730:23735] CHIP:DMG:                                 Attribute = 0x0000_0000,
+          [1663071878.473044][23730:23735] CHIP:DMG:                         }
+          [1663071878.473104][23730:23735] CHIP:DMG:
+          [1663071878.473154][23730:23735] CHIP:DMG:                         StatusIB =
+          [1663071878.473200][23730:23735] CHIP:DMG:                         {
+          [1663071878.473257][23730:23735] CHIP:DMG:                                 status = 0x00 (SUCCESS),
+          [1663071878.473297][23730:23735] CHIP:DMG:                         },
+          [1663071878.473349][23730:23735] CHIP:DMG:
+          [1663071878.473384][23730:23735] CHIP:DMG:                 },
+          [1663071878.473442][23730:23735] CHIP:DMG:
+          [1663071878.473476][23730:23735] CHIP:DMG:                 AttributeStatusIB =
+          [1663071878.473524][23730:23735] CHIP:DMG:                 {
+          [1663071878.473559][23730:23735] CHIP:DMG:                         AttributePathIB =
+          [1663071878.473613][23730:23735] CHIP:DMG:                         {
+          [1663071878.473656][23730:23735] CHIP:DMG:                                 Endpoint = 0x0,
+          [1663071878.473714][23730:23735] CHIP:DMG:                                 Cluster = 0x3f,
+          [1663071878.473759][23730:23735] CHIP:DMG:                                 Attribute = 0x0000_0000,
+          [1663071878.473814][23730:23735] CHIP:DMG:                                 ListIndex = Null,
+          [1663071878.473855][23730:23735] CHIP:DMG:                         }
+          [1663071878.473913][23730:23735] CHIP:DMG:
+          [1663071878.473953][23730:23735] CHIP:DMG:                         StatusIB =
+          [1663071878.474006][23730:23735] CHIP:DMG:                         {
+          [1663071878.474048][23730:23735] CHIP:DMG:                                 status = 0x00 (SUCCESS),
+          [1663071878.474104][23730:23735] CHIP:DMG:                         },
 
 
           Before adding the Group0x0009 execute this command which is used to check the Resource_Exhausted Condition
@@ -170,21 +217,6 @@
           [1658319969.849739][4777:4782] CHIP:DMG:                        {
           [1658319969.849774][4777:4782] CHIP:DMG:                                status = 0x00 (SUCCESS),
           [1658319969.849814][4777:4782] CHIP:DMG:                        },
-
-          Before adding the Group0x0002 execute this command
-
-          ./chip-tool groupkeymanagement write group-key-map "[{"groupId": 2, "groupKeySetID": 1, "fabricIndex": 1}]" 1 0
-
-          Verify the status is success on the TH Log:
-
-          [1658323452.116449][4965:4970] CHIP:DMG:                        StatusIB =
-          [1658323452.116487][4965:4970] CHIP:DMG:                        {
-          [1658323452.116524][4965:4970] CHIP:DMG:                                status = 0x00 (SUCCESS),
-          [1658323452.116563][4965:4970] CHIP:DMG:                        },
-          [1658323452.115827][4965:4970] CHIP:DMG:                        StatusIB =
-          [1658323452.115863][4965:4970] CHIP:DMG:                        {
-          [1658323452.115899][4965:4970] CHIP:DMG:                                status = 0x00 (SUCCESS),
-          [1658323452.115935][4965:4970] CHIP:DMG:                        },
       disabled: true
 
     - label: "DUT supports Identify cluster"
diff --git a/src/app/tests/suites/certification/Test_TC_LUNIT_1_1.yaml b/src/app/tests/suites/certification/Test_TC_LUNIT_1_1.yaml
index 13ceed6..ee79e7e 100644
--- a/src/app/tests/suites/certification/Test_TC_LUNIT_1_1.yaml
+++ b/src/app/tests/suites/certification/Test_TC_LUNIT_1_1.yaml
@@ -46,19 +46,19 @@
           [1659785279.519548][4122:4122] CHIP:IM: Received Read request
           [1659785279.519625][4122:4122] CHIP:DMG: ReadRequestMessage =
           [1659785279.519652][4122:4122] CHIP:DMG: {
-          [1659785279.519679][4122:4122] CHIP:DMG: 	AttributePathIBs =
-          [1659785279.519705][4122:4122] CHIP:DMG: 	[
-          [1659785279.519729][4122:4122] CHIP:DMG: 		AttributePathIB =
-          [1659785279.519759][4122:4122] CHIP:DMG: 		{
-          [1659785279.519790][4122:4122] CHIP:DMG: 			Endpoint = 0x0,
-          [1659785279.519822][4122:4122] CHIP:DMG: 			Cluster = 0x2d,
-          [1659785279.519853][4122:4122] CHIP:DMG: 			Attribute = 0x0000_FFFD,
-          [1659785279.519877][4122:4122] CHIP:DMG: 		}
+          [1659785279.519679][4122:4122] CHIP:DMG:         AttributePathIBs =
+          [1659785279.519705][4122:4122] CHIP:DMG:         [
+          [1659785279.519729][4122:4122] CHIP:DMG:                 AttributePathIB =
+          [1659785279.519759][4122:4122] CHIP:DMG:                 {
+          [1659785279.519790][4122:4122] CHIP:DMG:                         Endpoint = 0x0,
+          [1659785279.519822][4122:4122] CHIP:DMG:                         Cluster = 0x2d,
+          [1659785279.519853][4122:4122] CHIP:DMG:                         Attribute = 0x0000_FFFD,
+          [1659785279.519877][4122:4122] CHIP:DMG:                 }
           [1659785279.519904][4122:4122] CHIP:DMG:
-          [1659785279.519932][4122:4122] CHIP:DMG: 	],
+          [1659785279.519932][4122:4122] CHIP:DMG:         ],
           [1659785279.519960][4122:4122] CHIP:DMG:
-          [1659785279.519986][4122:4122] CHIP:DMG: 	isFabricFiltered = true,
-          [1659785279.520011][4122:4122] CHIP:DMG: 	InteractionModelRevision = 1
+          [1659785279.519986][4122:4122] CHIP:DMG:         isFabricFiltered = true,
+          [1659785279.520011][4122:4122] CHIP:DMG:         InteractionModelRevision = 1
           [1659785279.520034][4122:4122] CHIP:DMG: },
           [1659785279.520108][4122:4122] CHIP:DMG: IM RH moving to [GeneratingReports]
           [1659785279.520189][4122:4122] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
@@ -102,14 +102,29 @@
           ./chip-tool unitlocalization read attribute-list 1 0
 
           Verify DUT receives attribute-list attribute response on the TH(all-clusters-app) Log:
-          [1652335691.917681][3124:3129] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_002D Attribute 0x0000_FFFB DataVersion: 3157629909
-          [1652335691.917762][3124:3129] CHIP:TOO:   AttributeList: 6 entries
-          [1652335691.917802][3124:3129] CHIP:TOO:     [1]: 0
-          [1652335691.917834][3124:3129] CHIP:TOO:     [2]: 65528
-          [1652335691.917865][3124:3129] CHIP:TOO:     [3]: 65529
-          [1652335691.917895][3124:3129] CHIP:TOO:     [4]: 65531
-          [1652335691.917924][3124:3129] CHIP:TOO:     [5]: 65532
-          [1652335691.917957][3124:3129] CHIP:TOO:     [6]: 65533
+          [1661843250.245339][2719:2719] CHIP:IM: Received Read request
+          [1661843176.295960][2719:2719] CHIP:DMG: ReadRequestMessage =
+          [1661843176.295989][2719:2719] CHIP:DMG: {
+          [1661843176.296011][2719:2719] CHIP:DMG:         AttributePathIBs =
+          [1661843176.296036][2719:2719] CHIP:DMG:         [
+          [1661843176.296059][2719:2719] CHIP:DMG:                 AttributePathIB =
+          [1661843176.296089][2719:2719] CHIP:DMG:                 {
+          [1661843176.296118][2719:2719] CHIP:DMG:                         Endpoint = 0x0,
+          [1661843176.296153][2719:2719] CHIP:DMG:                         Cluster = 0x2d,
+          [1661843176.296186][2719:2719] CHIP:DMG:                         Attribute = 0x0000_FFFB,
+          [1661843176.296218][2719:2719] CHIP:DMG:                 }
+          [1661843176.296247][2719:2719] CHIP:DMG:
+          [1661843176.296273][2719:2719] CHIP:DMG:         ],
+          [1661843176.296300][2719:2719] CHIP:DMG:
+          [1661843176.296325][2719:2719] CHIP:DMG:         isFabricFiltered = true,
+          [1661843176.296349][2719:2719] CHIP:DMG:         InteractionModelRevision = 1
+          [1661843176.296371][2719:2719] CHIP:DMG: },
+          [1661843176.296442][2719:2719] CHIP:DMG: IM RH moving to [GeneratingReports]
+          [1661843176.296539][2719:2719] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+          [1661843176.296567][2719:2719] CHIP:DMG: <RE:Run> Cluster 2d, Attribute fffb is dirty
+          [1661843176.296588][2719:2719] CHIP:DMG: Reading attribute: Cluster=0x0000_002D Endpoint=0 AttributeId=0x0000_FFFB (expanded=0)
+          [1661843176.296613][2719:2719] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_002D e=0 p=v
+          [1661843176.296646][2719:2719] CHIP:DMG: AccessControl: allowed
       disabled: true
 
     - label: "{DUTread} (0xFFFA) EventList attribute"
@@ -126,24 +141,29 @@
           ./chip-tool unitlocalization read accepted-command-list 1 0
           Verify DUT receives AcceptedCommandList attribute response on the TH(all-clusters-app) Log:
           [1659785385.381041][4122:4122] CHIP:EM: Handling via exchange: 60781r, Delegate: 0xaaaaeaa68fa0
-          [1659785385.381113][4122:4122] CHIP:IM: Received Read request
-          [1659785385.381253][4122:4122] CHIP:DMG: ReadRequestMessage =
-          [1659785385.381309][4122:4122] CHIP:DMG: {
-          [1659785385.381354][4122:4122] CHIP:DMG: 	AttributePathIBs =
-          [1659785385.381415][4122:4122] CHIP:DMG: 	[
-          [1659785385.381466][4122:4122] CHIP:DMG: 		AttributePathIB =
-          [1659785385.381523][4122:4122] CHIP:DMG: 		{
-          [1659785385.381583][4122:4122] CHIP:DMG: 			Endpoint = 0x0,
-          [1659785385.381650][4122:4122] CHIP:DMG: 			Cluster = 0x2d,
-          [1659785385.381717][4122:4122] CHIP:DMG: 			Attribute = 0x0000_FFFB,
-          [1659785385.381780][4122:4122] CHIP:DMG: 		}
-          [1659785385.381842][4122:4122] CHIP:DMG:
-          [1659785385.381900][4122:4122] CHIP:DMG: 	],
-          [1659785385.381959][4122:4122] CHIP:DMG:
-          [1659785385.382019][4122:4122] CHIP:DMG: 	isFabricFiltered = true,
-          [1659785385.382072][4122:4122] CHIP:DMG: 	InteractionModelRevision = 1
-          [1659785385.382121][4122:4122] CHIP:DMG: },
-          [1659785385.382261][4122:4122] CHIP:DMG: IM RH moving to [GeneratingReports]
+          [1661843250.245339][2719:2719] CHIP:IM: Received Read request
+          [1661843250.245414][2719:2719] CHIP:DMG: ReadRequestMessage =
+          [1661843250.245438][2719:2719] CHIP:DMG: {
+          [1661843250.245455][2719:2719] CHIP:DMG:         AttributePathIBs =
+          [1661843250.245478][2719:2719] CHIP:DMG:         [
+          [1661843250.245499][2719:2719] CHIP:DMG:                 AttributePathIB =
+          [1661843250.245531][2719:2719] CHIP:DMG:                 {
+          [1661843250.245557][2719:2719] CHIP:DMG:                         Endpoint = 0x0,
+          [1661843250.245585][2719:2719] CHIP:DMG:                         Cluster = 0x2d,
+          [1661843250.245611][2719:2719] CHIP:DMG:                         Attribute = 0x0000_FFF9,
+          [1661843250.245669][2719:2719] CHIP:DMG:                 }
+          [1661843250.245696][2719:2719] CHIP:DMG:
+          [1661843250.245718][2719:2719] CHIP:DMG:         ],
+          [1661843250.245741][2719:2719] CHIP:DMG:
+          [1661843250.245763][2719:2719] CHIP:DMG:         isFabricFiltered = true,
+          [1661843250.245784][2719:2719] CHIP:DMG:         InteractionModelRevision = 1
+          [1661843250.245802][2719:2719] CHIP:DMG: },
+          [1661843250.245867][2719:2719] CHIP:DMG: IM RH moving to [GeneratingReports]
+          [1661843250.245953][2719:2719] CHIP:DMG: Building Reports for ReadHandler with LastReportGeneration = 0 DirtyGeneration = 0
+          [1661843250.245979][2719:2719] CHIP:DMG: <RE:Run> Cluster 2d, Attribute fff9 is dirty
+          [1661843250.245997][2719:2719] CHIP:DMG: Reading attribute: Cluster=0x0000_002D Endpoint=0 AttributeId=0x0000_FFF9 (expanded=0)
+          [1661843250.246019][2719:2719] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_002D e=0 p=v
+          [1661843250.246050][2719:2719] CHIP:DMG: AccessControl: allowed
       disabled: true
 
     - label: "{DUTread} (0xFFF8) GeneratedCommandList attribute"
@@ -156,19 +176,19 @@
           [1659785447.481659][4122:4122] CHIP:IM: Received Read request
           [1659785447.481736][4122:4122] CHIP:DMG: ReadRequestMessage =
           [1659785447.481763][4122:4122] CHIP:DMG: {
-          [1659785447.481785][4122:4122] CHIP:DMG: 	AttributePathIBs =
-          [1659785447.481813][4122:4122] CHIP:DMG: 	[
-          [1659785447.481837][4122:4122] CHIP:DMG: 		AttributePathIB =
-          [1659785447.481864][4122:4122] CHIP:DMG: 		{
-          [1659785447.481892][4122:4122] CHIP:DMG: 			Endpoint = 0x0,
-          [1659785447.481923][4122:4122] CHIP:DMG: 			Cluster = 0x2d,
-          [1659785447.481958][4122:4122] CHIP:DMG: 			Attribute = 0x0000_FFF8,
-          [1659785447.481985][4122:4122] CHIP:DMG: 		}
+          [1659785447.481785][4122:4122] CHIP:DMG:         AttributePathIBs =
+          [1659785447.481813][4122:4122] CHIP:DMG:         [
+          [1659785447.481837][4122:4122] CHIP:DMG:                 AttributePathIB =
+          [1659785447.481864][4122:4122] CHIP:DMG:                 {
+          [1659785447.481892][4122:4122] CHIP:DMG:                         Endpoint = 0x0,
+          [1659785447.481923][4122:4122] CHIP:DMG:                         Cluster = 0x2d,
+          [1659785447.481958][4122:4122] CHIP:DMG:                         Attribute = 0x0000_FFF8,
+          [1659785447.481985][4122:4122] CHIP:DMG:                 }
           [1659785447.482014][4122:4122] CHIP:DMG:
-          [1659785447.482039][4122:4122] CHIP:DMG: 	],
+          [1659785447.482039][4122:4122] CHIP:DMG:         ],
           [1659785447.482067][4122:4122] CHIP:DMG:
-          [1659785447.482093][4122:4122] CHIP:DMG: 	isFabricFiltered = true,
-          [1659785447.482118][4122:4122] CHIP:DMG: 	InteractionModelRevision = 1
+          [1659785447.482093][4122:4122] CHIP:DMG:         isFabricFiltered = true,
+          [1659785447.482118][4122:4122] CHIP:DMG:         InteractionModelRevision = 1
           [1659785447.482142][4122:4122] CHIP:DMG: },
           [1659785447.482215][4122:4122] CHIP:DMG: IM RH moving to [GeneratingReports]
       disabled: true
diff --git a/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_3_13.yaml b/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_3_13.yaml
index fb381ed..236ad41 100644
--- a/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_3_13.yaml
+++ b/src/app/tests/suites/certification/Test_TC_MEDIAINPUT_3_13.yaml
@@ -36,10 +36,7 @@
     #This step implicitly validating the attribute(InputList)constraints, as long as the payload is being parsed successfully
     - label:
           "TH reads the InputList attribute from the DUT to show list of Inputs
-          available and Verify list of available inputs supported by the device
-          is provided, where each entry in the list contains an index(type:uint
-          8), InputType (InputType Enums), Name (type: Strings), and
-          Description(Type:String)"
+          available"
       PICS: MEDIAINPUT.S.A0000
       command: "readAttribute"
       attribute: "InputList"
diff --git a/src/app/tests/suites/certification/Test_TC_OPCREDS_3_3.yaml b/src/app/tests/suites/certification/Test_TC_OPCREDS_3_3.yaml
index 64592f1..fe5d51a 100644
--- a/src/app/tests/suites/certification/Test_TC_OPCREDS_3_3.yaml
+++ b/src/app/tests/suites/certification/Test_TC_OPCREDS_3_3.yaml
@@ -24,6 +24,11 @@
     endpoint: 0
 
 tests:
+    - label: "Note"
+      verification: |
+          Chip-tool command used below are an example to verify the  DUT as client test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
+      disabled: true
+
     - label:
           "Factory Reset DUT (to ensure NOC list is empty at the beginning of
           the following steps)"
diff --git a/src/app/tests/suites/ciTests.json b/src/app/tests/suites/ciTests.json
index b6162be..17bfa98 100644
--- a/src/app/tests/suites/ciTests.json
+++ b/src/app/tests/suites/ciTests.json
@@ -226,12 +226,7 @@
         "TestCommissioningWindow"
     ],
     "MultiAdmin": ["TestMultiAdmin"],
-    "SoftwareDiagnostics": [
-        "Test_TC_DGSW_1_1",
-        "Test_TC_DGSW_2_1",
-        "Test_TC_DGSW_2_2",
-        "Test_TC_DGSW_2_3"
-    ],
+    "SoftwareDiagnostics": ["Test_TC_DGSW_1_1"],
     "Subscriptions": ["TestSubscribe_OnOff"],
     "DoorLock": [
         "DL_UsersAndCredentials",
diff --git a/src/app/tests/suites/manualTests.json b/src/app/tests/suites/manualTests.json
index 24c6eb0..fb755f1 100644
--- a/src/app/tests/suites/manualTests.json
+++ b/src/app/tests/suites/manualTests.json
@@ -238,7 +238,13 @@
         "Test_TC_SC_5_3",
         "Test_TC_SC_6_1"
     ],
-    "SoftwareDiagnostics": ["Test_TC_DGSW_3_1", "Test_TC_DGSW_3_2"],
+    "SoftwareDiagnostics": [
+        "Test_TC_DGSW_2_1",
+        "Test_TC_DGSW_2_2",
+        "Test_TC_DGSW_2_3",
+        "Test_TC_DGSW_3_1",
+        "Test_TC_DGSW_3_2"
+    ],
     "WiFiNetworkDiagnostics": [
         "Test_TC_DGWIFI_2_2",
         "Test_TC_DGWIFI_3_1",
diff --git a/zzz_generated/chip-tool/zap-generated/test/Commands.h b/zzz_generated/chip-tool/zap-generated/test/Commands.h
index 0102b13..2ea5356 100644
--- a/zzz_generated/chip-tool/zap-generated/test/Commands.h
+++ b/zzz_generated/chip-tool/zap-generated/test/Commands.h
@@ -234,9 +234,6 @@
         printf("TestCommissioningWindow\n");
         printf("TestMultiAdmin\n");
         printf("Test_TC_DGSW_1_1\n");
-        printf("Test_TC_DGSW_2_1\n");
-        printf("Test_TC_DGSW_2_2\n");
-        printf("Test_TC_DGSW_2_3\n");
         printf("TestSubscribe_OnOff\n");
         printf("DL_UsersAndCredentials\n");
         printf("DL_LockUnlock\n");
@@ -485,6 +482,9 @@
         printf("Test_TC_SC_5_2\n");
         printf("Test_TC_SC_5_3\n");
         printf("Test_TC_SC_6_1\n");
+        printf("Test_TC_DGSW_2_1\n");
+        printf("Test_TC_DGSW_2_2\n");
+        printf("Test_TC_DGSW_2_3\n");
         printf("Test_TC_DGSW_3_1\n");
         printf("Test_TC_DGSW_3_2\n");
         printf("Test_TC_DGWIFI_2_2\n");
@@ -4504,9 +4504,6 @@
     chip::Optional<chip::EndpointId> mEndpoint;
     chip::Optional<uint16_t> mTimeout;
 
-    uint8_t CurrentHueValueStep2f;
-    uint8_t CurrentHueValueStep3f;
-
     chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; }
 
     //
@@ -4579,7 +4576,6 @@
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
                 VerifyOrReturn(CheckConstraintMinValue("value", value, 80U));
                 VerifyOrReturn(CheckConstraintMaxValue("value", value, 110U));
-                CurrentHueValueStep2f = value;
             }
             break;
         case 13:
@@ -4591,7 +4587,8 @@
             {
                 uint8_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("currentHue", value, CurrentHueValueStep2f));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 80U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 110U));
             }
             break;
         case 15:
@@ -4613,8 +4610,8 @@
             {
                 uint8_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckConstraintMinValue("value", value, 0U));
-                VerifyOrReturn(CheckConstraintMaxValue("value", value, 20U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 8U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 12U));
             }
             break;
         case 20:
@@ -4644,7 +4641,6 @@
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
                 VerifyOrReturn(CheckConstraintMinValue("value", value, 140U));
                 VerifyOrReturn(CheckConstraintMaxValue("value", value, 190U));
-                CurrentHueValueStep3f = value;
             }
             break;
         case 25:
@@ -4656,7 +4652,8 @@
             {
                 uint8_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("currentHue", value, CurrentHueValueStep3f));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 140U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 190U));
             }
             break;
         case 27:
@@ -5047,8 +5044,8 @@
             {
                 uint8_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckConstraintMinValue("value", value, 0U));
-                VerifyOrReturn(CheckConstraintMaxValue("value", value, 10U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 4U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 6U));
             }
             break;
         case 10:
@@ -5060,7 +5057,8 @@
             {
                 uint8_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("currentHue", value, 5U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 4U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 6U));
             }
             break;
         case 12:
@@ -5108,7 +5106,8 @@
             {
                 uint8_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("currentHue", value, 245U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 208U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 255U));
             }
             break;
         case 21:
@@ -5475,7 +5474,8 @@
             {
                 uint8_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("currentSaturation", value, 120U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 102U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 138U));
             }
             break;
         case 14:
@@ -5691,8 +5691,6 @@
     chip::Optional<chip::EndpointId> mEndpoint;
     chip::Optional<uint16_t> mTimeout;
 
-    uint8_t CurrentSaturationValueStep4e;
-
     chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; }
 
     //
@@ -5747,7 +5745,7 @@
             {
                 uint8_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckConstraintMinValue("value", value, 212U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 216U));
                 VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U));
             }
             break;
@@ -5760,7 +5758,8 @@
             {
                 uint8_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("currentSaturation", value, 254U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 216U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U));
             }
             break;
         case 12:
@@ -5795,8 +5794,8 @@
             {
                 uint8_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckConstraintMinValue("value", value, 5U));
-                VerifyOrReturn(CheckConstraintMaxValue("value", value, 35U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 17U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 23U));
             }
             break;
         case 19:
@@ -5845,7 +5844,6 @@
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
                 VerifyOrReturn(CheckConstraintMinValue("value", value, 170U));
                 VerifyOrReturn(CheckConstraintMaxValue("value", value, 230U));
-                CurrentSaturationValueStep4e = value;
             }
             break;
         case 28:
@@ -5857,7 +5855,8 @@
             {
                 uint8_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("currentSaturation", value, CurrentSaturationValueStep4e));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 170U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 230U));
             }
             break;
         case 30:
@@ -6282,7 +6281,8 @@
             {
                 uint8_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("currentSaturation", value, 240U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 204U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U));
             }
             break;
         case 12:
@@ -6297,7 +6297,8 @@
             {
                 uint8_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("currentSaturation", value, 254U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 216U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 254U));
             }
             break;
         case 15:
@@ -6332,8 +6333,8 @@
             {
                 uint8_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckConstraintMinValue("value", value, 5U));
-                VerifyOrReturn(CheckConstraintMaxValue("value", value, 15U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 8U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 12U));
             }
             break;
         case 22:
@@ -6345,7 +6346,8 @@
             {
                 uint8_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("currentSaturation", value, 10U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 8U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 12U));
             }
             break;
         case 24:
@@ -6731,7 +6733,8 @@
             {
                 uint8_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("currentHue", value, 200U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 170U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 230U));
             }
             break;
         case 6:
@@ -6739,7 +6742,8 @@
             {
                 uint8_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("currentSaturation", value, 50U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 42U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 58U));
             }
             break;
         case 7:
@@ -6799,7 +6803,8 @@
             {
                 uint8_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("currentHue", value, 160U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 135U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 185U));
             }
             break;
         case 16:
@@ -6807,7 +6812,8 @@
             {
                 uint8_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("currentSaturation", value, 80U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 68U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 92U));
             }
             break;
         case 17:
@@ -7077,7 +7083,8 @@
             {
                 uint16_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("currentX", value, 32768U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 27853U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 37683U));
             }
             break;
         case 6:
@@ -7085,7 +7092,8 @@
             {
                 uint16_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("currentY", value, 19660U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 16711U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 22609U));
             }
             break;
         case 7:
@@ -7144,7 +7152,8 @@
             {
                 uint16_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("currentX", value, 13107U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 11141U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 15073U));
             }
             break;
         case 16:
@@ -7152,7 +7161,8 @@
             {
                 uint16_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("currentY", value, 13107U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 11141U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 15073U));
             }
             break;
         case 17:
@@ -7181,7 +7191,8 @@
             {
                 uint16_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("currentX", value, 32768U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 27853U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 37683U));
             }
             break;
         case 23:
@@ -7189,7 +7200,8 @@
             {
                 uint16_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("currentY", value, 19660U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 16711U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 22609U));
             }
             break;
         case 24:
@@ -7253,7 +7265,8 @@
             {
                 uint16_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("currentX", value, 26214U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 22282U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 30146U));
             }
             break;
         case 36:
@@ -7261,7 +7274,8 @@
             {
                 uint16_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("currentY", value, 32768U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 27853U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 37683U));
             }
             break;
         case 37:
@@ -7290,7 +7304,8 @@
             {
                 uint16_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("currentX", value, 32768U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 27853U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 37683U));
             }
             break;
         case 43:
@@ -7298,7 +7313,8 @@
             {
                 uint16_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("currentY", value, 19660U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 16711U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 22609U));
             }
             break;
         case 44:
@@ -7316,7 +7332,8 @@
             {
                 uint16_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("currentX", value, 13107U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 11141U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 15073U));
             }
             break;
         case 48:
@@ -7324,7 +7341,8 @@
             {
                 uint16_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("currentY", value, 13107U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 11141U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 15073U));
             }
             break;
         case 49:
@@ -7362,7 +7380,8 @@
             {
                 uint16_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("currentX", value, 26214U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 22282U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 30146U));
             }
             break;
         case 56:
@@ -7370,7 +7389,8 @@
             {
                 uint16_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("currentY", value, 32768U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 27853U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 37683U));
             }
             break;
         case 57:
@@ -8390,7 +8410,8 @@
             {
                 uint16_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("currentX", value, 13000U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 11050U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 14950U));
             }
             break;
         case 14:
@@ -8398,7 +8419,8 @@
             {
                 uint16_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("currentY", value, 14000U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 11900U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 16100U));
             }
             break;
         case 15:
@@ -8736,7 +8758,8 @@
             {
                 uint16_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("colorTemperatureMireds", value, 250U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 212U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 288U));
             }
             break;
         case 17:
@@ -8975,7 +8998,6 @@
 
     uint16_t ColorTempPhysicalMinMiredsValue;
     uint16_t ColorTempPhysicalMaxMiredsValue;
-    uint16_t ColorTemperatureMiredsStep4c;
 
     chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; }
 
@@ -9141,7 +9163,6 @@
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
                 VerifyOrReturn(CheckConstraintMinValue("value", value, ColorTempPhysicalMinMiredsValue));
                 VerifyOrReturn(CheckConstraintMaxValue("value", value, ColorTempPhysicalMaxMiredsValue));
-                ColorTemperatureMiredsStep4c = value;
             }
             break;
         case 26:
@@ -9153,7 +9174,8 @@
             {
                 uint16_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("colorTemperatureMireds", value, ColorTemperatureMiredsStep4c));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, ColorTempPhysicalMinMiredsValue));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, ColorTempPhysicalMaxMiredsValue));
             }
             break;
         case 28:
@@ -10499,7 +10521,8 @@
             {
                 uint16_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("enhancedCurrentHue", value, 12000U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 10200U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 13800U));
             }
             break;
         case 14:
@@ -10560,7 +10583,8 @@
             {
                 uint16_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("enhancedCurrentHue", value, 6000U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 5100U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 6900U));
             }
             break;
         case 25:
@@ -10908,7 +10932,8 @@
             {
                 uint16_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("enhancedCurrentHue", value, 20000U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 17000U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 23000U));
             }
             break;
         case 6:
@@ -10916,7 +10941,8 @@
             {
                 uint8_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("currentSaturation", value, 50U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 42U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 58U));
             }
             break;
         case 7:
@@ -11224,11 +11250,8 @@
     chip::Optional<chip::EndpointId> mEndpoint;
     chip::Optional<uint16_t> mTimeout;
 
-    uint8_t CurrentSaturationValue;
     uint16_t ColorTempPhysicalMinMireds;
     uint16_t ColorTempPhysicalMaxMireds;
-    uint16_t ColorTemperatureMiredsStep4f;
-    uint16_t EnhancedCurrentHueValue;
 
     chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; }
 
@@ -11315,7 +11338,6 @@
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
                 VerifyOrReturn(CheckConstraintMinValue("value", value, 170U));
                 VerifyOrReturn(CheckConstraintMaxValue("value", value, 230U));
-                CurrentSaturationValue = value;
             }
             break;
         case 17:
@@ -11327,7 +11349,8 @@
             {
                 uint8_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("currentSaturation", value, CurrentSaturationValue));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 170U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 230U));
             }
             break;
         case 19:
@@ -11376,7 +11399,6 @@
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
                 VerifyOrReturn(CheckConstraintMinValue("value", value, ColorTempPhysicalMinMireds));
                 VerifyOrReturn(CheckConstraintMaxValue("value", value, ColorTempPhysicalMaxMireds));
-                ColorTemperatureMiredsStep4f = value;
             }
             break;
         case 27:
@@ -11388,7 +11410,8 @@
             {
                 uint16_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("colorTemperatureMireds", value, ColorTemperatureMiredsStep4f));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, ColorTempPhysicalMinMireds));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, ColorTempPhysicalMaxMireds));
             }
             break;
         case 29:
@@ -11415,7 +11438,6 @@
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
                 VerifyOrReturn(CheckConstraintMinValue("value", value, 21250U));
                 VerifyOrReturn(CheckConstraintMaxValue("value", value, 28750U));
-                EnhancedCurrentHueValue = value;
             }
             break;
         case 35:
@@ -11427,7 +11449,8 @@
             {
                 uint16_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("enhancedCurrentHue", value, EnhancedCurrentHueValue));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 21250U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 28750U));
             }
             break;
         case 37:
@@ -23345,13 +23368,13 @@
         }
         case 8: {
             LogStep(8, "Read the optional command(LaunchContent) in AcceptedCommandList attribute");
-            VerifyOrDo(!ShouldSkip("CONTENTLAUNCHER.C.C0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            VerifyOrDo(!ShouldSkip("CONTENTLAUNCHER.C.C00.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id,
                                  ContentLauncher::Attributes::AcceptedCommandList::Id, true, chip::NullOptional);
         }
         case 9: {
             LogStep(9, "Read the optional command(LaunchURL) in AcceptedCommandList attribute");
-            VerifyOrDo(!ShouldSkip("CONTENTLAUNCHER.C.C0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            VerifyOrDo(!ShouldSkip("CONTENTLAUNCHER.C.C01.Tx"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             return ReadAttribute(kIdentityAlpha, GetEndpoint(1), ContentLauncher::Id,
                                  ContentLauncher::Attributes::AcceptedCommandList::Id, true, chip::NullOptional);
         }
@@ -24386,11 +24409,7 @@
             break;
         case 2:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            {
-                chip::app::Clusters::ApplicationBasic::ApplicationStatusEnum value;
-                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("status", value, 0U));
-            }
+            shouldContinue = true;
             break;
         default:
             LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT));
@@ -24431,8 +24450,13 @@
         }
         case 2: {
             LogStep(2, "Reads the Status attribute");
-            return ReadAttribute(kIdentityAlpha, GetEndpoint(3), ApplicationBasic::Id, ApplicationBasic::Attributes::Status::Id,
-                                 true, chip::NullOptional);
+            VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            ListFreer listFreer;
+            chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
+            value.message = chip::Span<const char>("Enter 'y' after successgarbage: not in length on purpose", 23);
+            value.expectedValue.Emplace();
+            value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
+            return UserPrompt(kIdentityAlpha, value);
         }
         }
         return CHIP_NO_ERROR;
@@ -24823,10 +24847,7 @@
             return WaitForCommissionee(kIdentityAlpha, value);
         }
         case 1: {
-            LogStep(1,
-                    "TH reads the InputList attribute from the DUT to show list of Inputs available and Verify list of available "
-                    "inputs supported by the device is provided, where each entry in the list contains an index(type:uint 8), "
-                    "InputType (InputType Enums), Name (type: Strings), and Description(Type:String)");
+            LogStep(1, "TH reads the InputList attribute from the DUT to show list of Inputs available");
             VerifyOrDo(!ShouldSkip("MEDIAINPUT.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             return ReadAttribute(kIdentityAlpha, GetEndpoint(1), MediaInput::Id, MediaInput::Attributes::InputList::Id, true,
                                  chip::NullOptional);
@@ -36711,7 +36732,7 @@
 {
 public:
     Test_TC_DGTHREAD_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) :
-        TestCommand("Test_TC_DGTHREAD_1_1", 14, credsIssuerConfig)
+        TestCommand("Test_TC_DGTHREAD_1_1", 56, credsIssuerConfig)
     {
         AddArgument("nodeId", 0, UINT64_MAX, &mNodeId);
         AddArgument("cluster", &mCluster);
@@ -36847,7 +36868,7 @@
                 chip::app::DataModel::DecodableList<chip::AttributeId> value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
                 VerifyOrReturn(CheckConstraintType("value", "list", "list"));
-                VerifyOrReturn(CheckConstraintContains("value", value, 56UL));
+                VerifyOrReturn(CheckConstraintContains("value", value, 14UL));
             }
             break;
         case 10:
@@ -36856,7 +36877,7 @@
                 chip::app::DataModel::DecodableList<chip::AttributeId> value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
                 VerifyOrReturn(CheckConstraintType("value", "list", "list"));
-                VerifyOrReturn(CheckConstraintContains("value", value, 57UL));
+                VerifyOrReturn(CheckConstraintContains("value", value, 15UL));
             }
             break;
         case 11:
@@ -36865,19 +36886,397 @@
                 chip::app::DataModel::DecodableList<chip::AttributeId> value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
                 VerifyOrReturn(CheckConstraintType("value", "list", "list"));
-                VerifyOrReturn(CheckConstraintContains("value", value, 58UL));
+                VerifyOrReturn(CheckConstraintContains("value", value, 16UL));
             }
             break;
         case 12:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 17UL));
+            }
+            break;
+        case 13:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 18UL));
+            }
+            break;
+        case 14:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 19UL));
+            }
+            break;
+        case 15:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 20UL));
+            }
+            break;
+        case 16:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 21UL));
+            }
+            break;
+        case 17:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 22UL));
+            }
+            break;
+        case 18:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 23UL));
+            }
+            break;
+        case 19:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 24UL));
+            }
+            break;
+        case 20:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 25UL));
+            }
+            break;
+        case 21:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 26UL));
+            }
+            break;
+        case 22:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 27UL));
+            }
+            break;
+        case 23:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 28UL));
+            }
+            break;
+        case 24:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 29UL));
+            }
+            break;
+        case 25:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 30UL));
+            }
+            break;
+        case 26:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 31UL));
+            }
+            break;
+        case 27:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 32UL));
+            }
+            break;
+        case 28:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 33UL));
+            }
+            break;
+        case 29:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 34UL));
+            }
+            break;
+        case 30:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 35UL));
+            }
+            break;
+        case 31:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 36UL));
+            }
+            break;
+        case 32:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 37UL));
+            }
+            break;
+        case 33:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 38UL));
+            }
+            break;
+        case 34:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 39UL));
+            }
+            break;
+        case 35:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 40UL));
+            }
+            break;
+        case 36:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 41UL));
+            }
+            break;
+        case 37:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 42UL));
+            }
+            break;
+        case 38:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 43UL));
+            }
+            break;
+        case 39:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 44UL));
+            }
+            break;
+        case 40:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 45UL));
+            }
+            break;
+        case 41:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 46UL));
+            }
+            break;
+        case 42:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 47UL));
+            }
+            break;
+        case 43:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 48UL));
+            }
+            break;
+        case 44:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 49UL));
+            }
+            break;
+        case 45:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 50UL));
+            }
+            break;
+        case 46:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 51UL));
+            }
+            break;
+        case 47:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 52UL));
+            }
+            break;
+        case 48:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 53UL));
+            }
+            break;
+        case 49:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 54UL));
+            }
+            break;
+        case 50:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 55UL));
+            }
+            break;
+        case 51:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 56UL));
+            }
+            break;
+        case 52:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 57UL));
+            }
+            break;
+        case 53:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 58UL));
+            }
+            break;
+        case 54:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
                 chip::app::DataModel::DecodableList<chip::CommandId> value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
                 VerifyOrReturn(CheckConstraintType("value", "list", "list"));
                 VerifyOrReturn(CheckConstraintContains("value", value, 0UL));
             }
             break;
-        case 13:
+        case 55:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
                 chip::app::DataModel::DecodableList<chip::CommandId> value;
@@ -36959,30 +37358,282 @@
                                  ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
         }
         case 9: {
-            LogStep(9, "Read the optional attribute(ActiveTimestamp) in AttributeList");
-            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0039"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            LogStep(9, "TH reads optional attribute (DetachedRoleCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A000e"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
                                  ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
         }
         case 10: {
-            LogStep(10, "Read the optional attribute(PendingTimestamp) in AttributeList");
-            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A003A"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            LogStep(10, "TH reads optional attribute (ChildRoleCount) AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A001f"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
                                  ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
         }
         case 11: {
-            LogStep(11, "Read the optional attribute(Delay) in AttributeList");
-            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A003B"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            LogStep(11, "TH reads optional attribute (RouterRoleCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0010"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
                                  ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
         }
         case 12: {
-            LogStep(12, "TH reads AcceptedCommandList from DUT");
+            LogStep(12, "TH reads optional attribute (LeaderRoleCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0011"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 13: {
+            LogStep(13, "TH reads optional attribute (AttachAttemptCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0012"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 14: {
+            LogStep(14, "TH reads optional attribute (PartitionIdChangeCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0013"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 15: {
+            LogStep(15, "TH reads optional attribute (BetterPartitionAttachAttemptCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0014"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 16: {
+            LogStep(16, "TH reads optional attribute (ParentChangeCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0015"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 17: {
+            LogStep(17, "TH reads optional attribute (TxTotalCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0016"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 18: {
+            LogStep(18, "TH reads optional attribute (TxUnicastCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0017"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 19: {
+            LogStep(19, "TH reads optional attribute (TxBroadcastCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0018"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 20: {
+            LogStep(20, "TH reads optional attribute (TxAckRequestedCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0019"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 21: {
+            LogStep(21, "TH reads optional attribute (TxAckedCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A001a"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 22: {
+            LogStep(22, "TH reads optional attribute (TxNoAckRequestedCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A001b"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 23: {
+            LogStep(23, "TH reads optional attributes (TxDataCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A001c"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 24: {
+            LogStep(24, "TH reads optional attribute (TxDataPollCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A001d"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 25: {
+            LogStep(25, "TH reads optional attribute (TxBeaconCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A001e"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 26: {
+            LogStep(26, "TH reads optional attribute (TxBeaconRequestCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A001f"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 27: {
+            LogStep(27, "TH reads optional attribute (TxOtherCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0020"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 28: {
+            LogStep(28, "TH reads optional attribute (TxRetryCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0021"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 29: {
+            LogStep(29, "TH reads optional attribute (TxDirectMaxRetryExpiryCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0022"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 30: {
+            LogStep(30, "TH reads optional attribute (TxIndirectMaxRetryExpiryCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0023"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 31: {
+            LogStep(31, "TH reads optional attribute (TxErrCcaCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0024"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 32: {
+            LogStep(32, "TH reads optional attribute (TxErrAbortCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0025"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 33: {
+            LogStep(33, "TH reads optional attribute (TxErrBusyChannelCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0026"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 34: {
+            LogStep(34, "TH reads optional attribute (RxTotalCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0027"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 35: {
+            LogStep(35, "TH reads optional attribute (RxUnicastCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0028"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 36: {
+            LogStep(36, "TH reads optional attribute (RxBroadcastCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0029"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 37: {
+            LogStep(37, "TH reads optional attribute (RxDataCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A002a"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 38: {
+            LogStep(38, "TH reads optional attribute (RxDataPollCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A002b"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 39: {
+            LogStep(39, "TH reads optional attribute (RxBeaconCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A002c"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 40: {
+            LogStep(40, "TH reads optional attribute (RxBeaconRequestCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A002d"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 41: {
+            LogStep(41, "TH reads optional attribute (RxOtherCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A002e"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 42: {
+            LogStep(42, "TH reads optional attribute (RxAddressFilteredCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A002f"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 43: {
+            LogStep(43, "TH reads optional attribute (RxDestAddrFilteredCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0030"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 44: {
+            LogStep(44, "TH reads optional attribute (RxDuplicatedCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0031"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 45: {
+            LogStep(45, "TH reads optional attribute (RxErrNoFrameCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0032"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 46: {
+            LogStep(46, "TH reads optional attribute (RxErrUnknownNeighborCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0033"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 47: {
+            LogStep(47, "TH reads optional attribute (RxErrInvalidScrAddrCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0034"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 48: {
+            LogStep(48, "TH reads optional attribute (RxErrSecCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0035"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 49: {
+            LogStep(49, "TH reads optional attribute (RxErrFcsCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0036"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 50: {
+            LogStep(50, "TH reads optional attribute (RxErrOtherCount) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0037"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 51: {
+            LogStep(51, "Read the optional attribute (ActiveTimestamp) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A0039"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 52: {
+            LogStep(52, "Read the optional attribute (PendingTimestamp) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A003A"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 53: {
+            LogStep(53, "Read the optional attribute (Delay) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A003B"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
+                                 ThreadNetworkDiagnostics::Attributes::AttributeList::Id, true, chip::NullOptional);
+        }
+        case 54: {
+            LogStep(54, "TH reads AcceptedCommandList from DUT");
             return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
                                  ThreadNetworkDiagnostics::Attributes::AcceptedCommandList::Id, true, chip::NullOptional);
         }
-        case 13: {
-            LogStep(13, "TH reads GeneratedCommandList from DUT");
+        case 55: {
+            LogStep(55, "TH reads GeneratedCommandList from DUT");
             return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
                                  ThreadNetworkDiagnostics::Attributes::GeneratedCommandList::Id, true, chip::NullOptional);
         }
@@ -37857,7 +38508,7 @@
         }
         case 10: {
             LogStep(10, "TH reads TxBeaconRequestCount attribute value from DUT");
-            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A002f"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            VerifyOrDo(!ShouldSkip("DGTHREAD.S.A001f"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             return ReadAttribute(kIdentityAlpha, GetEndpoint(0), ThreadNetworkDiagnostics::Id,
                                  ThreadNetworkDiagnostics::Attributes::TxBeaconRequestCount::Id, true, chip::NullOptional);
         }
@@ -62312,336 +62963,6 @@
     }
 };
 
-class Test_TC_DGSW_2_1Suite : public TestCommand
-{
-public:
-    Test_TC_DGSW_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGSW_2_1", 5, credsIssuerConfig)
-    {
-        AddArgument("nodeId", 0, UINT64_MAX, &mNodeId);
-        AddArgument("cluster", &mCluster);
-        AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint);
-        AddArgument("timeout", 0, UINT16_MAX, &mTimeout);
-    }
-
-    ~Test_TC_DGSW_2_1Suite() {}
-
-    chip::System::Clock::Timeout GetWaitDuration() const override
-    {
-        return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds));
-    }
-
-private:
-    chip::Optional<chip::NodeId> mNodeId;
-    chip::Optional<chip::CharSpan> mCluster;
-    chip::Optional<chip::EndpointId> mEndpoint;
-    chip::Optional<uint16_t> mTimeout;
-
-    chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; }
-
-    //
-    // Tests methods
-    //
-
-    void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override
-    {
-        bool shouldContinue = false;
-
-        switch (mTestIndex - 1)
-        {
-        case 0:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            shouldContinue = true;
-            break;
-        case 1:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            {
-                chip::app::DataModel::DecodableList<chip::app::Clusters::SoftwareDiagnostics::Structs::ThreadMetrics::DecodableType>
-                    value;
-                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
-            }
-            break;
-        case 2:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            {
-                uint64_t value;
-                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckConstraintType("value", "int64u", "int64u"));
-            }
-            break;
-        case 3:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            {
-                uint64_t value;
-                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckConstraintType("value", "int64u", "int64u"));
-            }
-            break;
-        case 4:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            {
-                uint64_t value;
-                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckConstraintType("value", "int64u", "int64u"));
-            }
-            break;
-        default:
-            LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT));
-        }
-
-        if (shouldContinue)
-        {
-            ContinueOnChipMainThread(CHIP_NO_ERROR);
-        }
-    }
-
-    CHIP_ERROR DoTestStep(uint16_t testIndex) override
-    {
-        using namespace chip::app::Clusters;
-        switch (testIndex)
-        {
-        case 0: {
-            LogStep(0, "Wait for the commissioned device to be retrieved");
-            ListFreer listFreer;
-            chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value;
-            value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL;
-            return WaitForCommissionee(kIdentityAlpha, value);
-        }
-        case 1: {
-            LogStep(1, "Reads a list of ThreadMetrics struct non-global attribute from DUT.");
-            VerifyOrDo(!ShouldSkip("DGSW.S.A0000"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), SoftwareDiagnostics::Id,
-                                 SoftwareDiagnostics::Attributes::ThreadMetrics::Id, true, chip::NullOptional);
-        }
-        case 2: {
-            LogStep(2, "Reads CurrentHeapFree non-global attribute value from DUT");
-            VerifyOrDo(!ShouldSkip("DGSW.S.A0001"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), SoftwareDiagnostics::Id,
-                                 SoftwareDiagnostics::Attributes::CurrentHeapFree::Id, true, chip::NullOptional);
-        }
-        case 3: {
-            LogStep(3, "Reads CurrentHeapUsed non-global attribute value from DUT");
-            VerifyOrDo(!ShouldSkip("DGSW.S.A0002"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), SoftwareDiagnostics::Id,
-                                 SoftwareDiagnostics::Attributes::CurrentHeapUsed::Id, true, chip::NullOptional);
-        }
-        case 4: {
-            LogStep(4, "Reads CurrentHeapHighWaterMark non-global attribute value from DUT");
-            VerifyOrDo(!ShouldSkip("DGSW.S.A0003"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), SoftwareDiagnostics::Id,
-                                 SoftwareDiagnostics::Attributes::CurrentHeapHighWatermark::Id, true, chip::NullOptional);
-        }
-        }
-        return CHIP_NO_ERROR;
-    }
-};
-
-class Test_TC_DGSW_2_2Suite : public TestCommand
-{
-public:
-    Test_TC_DGSW_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGSW_2_2", 2, credsIssuerConfig)
-    {
-        AddArgument("nodeId", 0, UINT64_MAX, &mNodeId);
-        AddArgument("cluster", &mCluster);
-        AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint);
-        AddArgument("timeout", 0, UINT16_MAX, &mTimeout);
-    }
-
-    ~Test_TC_DGSW_2_2Suite() {}
-
-    chip::System::Clock::Timeout GetWaitDuration() const override
-    {
-        return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds));
-    }
-
-private:
-    chip::Optional<chip::NodeId> mNodeId;
-    chip::Optional<chip::CharSpan> mCluster;
-    chip::Optional<chip::EndpointId> mEndpoint;
-    chip::Optional<uint16_t> mTimeout;
-
-    chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; }
-
-    //
-    // Tests methods
-    //
-
-    void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override
-    {
-        bool shouldContinue = false;
-
-        switch (mTestIndex - 1)
-        {
-        case 0:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            shouldContinue = true;
-            break;
-        case 1:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            shouldContinue = true;
-            break;
-        default:
-            LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT));
-        }
-
-        if (shouldContinue)
-        {
-            ContinueOnChipMainThread(CHIP_NO_ERROR);
-        }
-    }
-
-    CHIP_ERROR DoTestStep(uint16_t testIndex) override
-    {
-        using namespace chip::app::Clusters;
-        switch (testIndex)
-        {
-        case 0: {
-            LogStep(0, "Wait for the commissioned device to be retrieved");
-            ListFreer listFreer;
-            chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value;
-            value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL;
-            return WaitForCommissionee(kIdentityAlpha, value);
-        }
-        case 1: {
-            LogStep(1,
-                    "Reads a list of SoftwareFault struct from DUT and data type in each field of the struct must match the value "
-                    "listed in spec");
-            VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && DGSW.S.E00"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-            value.message = chip::Span<const char>("Please enter '0' for successgarbage: not in length on purpose", 28);
-            value.expectedValue.Emplace();
-            value.expectedValue.Value() = chip::Span<const char>("0garbage: not in length on purpose", 1);
-            return UserPrompt(kIdentityAlpha, value);
-        }
-        }
-        return CHIP_NO_ERROR;
-    }
-};
-
-class Test_TC_DGSW_2_3Suite : public TestCommand
-{
-public:
-    Test_TC_DGSW_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGSW_2_3", 5, credsIssuerConfig)
-    {
-        AddArgument("nodeId", 0, UINT64_MAX, &mNodeId);
-        AddArgument("cluster", &mCluster);
-        AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint);
-        AddArgument("timeout", 0, UINT16_MAX, &mTimeout);
-    }
-
-    ~Test_TC_DGSW_2_3Suite() {}
-
-    chip::System::Clock::Timeout GetWaitDuration() const override
-    {
-        return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds));
-    }
-
-private:
-    chip::Optional<chip::NodeId> mNodeId;
-    chip::Optional<chip::CharSpan> mCluster;
-    chip::Optional<chip::EndpointId> mEndpoint;
-    chip::Optional<uint16_t> mTimeout;
-
-    chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; }
-
-    //
-    // Tests methods
-    //
-
-    void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override
-    {
-        bool shouldContinue = false;
-
-        switch (mTestIndex - 1)
-        {
-        case 0:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            shouldContinue = true;
-            break;
-        case 1:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 2:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            {
-                chip::app::DataModel::DecodableList<chip::app::Clusters::SoftwareDiagnostics::Structs::ThreadMetrics::DecodableType>
-                    value;
-                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
-            }
-            break;
-        case 3:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            {
-                uint64_t value;
-                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckConstraintType("value", "int64u", "int64u"));
-            }
-            break;
-        case 4:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            {
-                uint64_t value;
-                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckConstraintType("value", "int64u", "int64u"));
-            }
-            break;
-        default:
-            LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT));
-        }
-
-        if (shouldContinue)
-        {
-            ContinueOnChipMainThread(CHIP_NO_ERROR);
-        }
-    }
-
-    CHIP_ERROR DoTestStep(uint16_t testIndex) override
-    {
-        using namespace chip::app::Clusters;
-        switch (testIndex)
-        {
-        case 0: {
-            LogStep(0, "Wait for the commissioned device to be retrieved");
-            ListFreer listFreer;
-            chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value;
-            value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL;
-            return WaitForCommissionee(kIdentityAlpha, value);
-        }
-        case 1: {
-            LogStep(1, "Sends ResetWatermarks to DUT");
-            VerifyOrDo(!ShouldSkip("DGSW.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::SoftwareDiagnostics::Commands::ResetWatermarks::Type value;
-            return SendCommand(kIdentityAlpha, GetEndpoint(0), SoftwareDiagnostics::Id,
-                               SoftwareDiagnostics::Commands::ResetWatermarks::Id, value, chip::NullOptional
-
-            );
-        }
-        case 2: {
-            LogStep(2, "Reads a list of ThreadMetrics struct attribute from DUT.");
-            VerifyOrDo(!ShouldSkip("DGSW.S.A0000 && DGSW.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), SoftwareDiagnostics::Id,
-                                 SoftwareDiagnostics::Attributes::ThreadMetrics::Id, true, chip::NullOptional);
-        }
-        case 3: {
-            LogStep(3, "Reads CurrentHeapUsed attribute value from DUT");
-            VerifyOrDo(!ShouldSkip("DGSW.S.A0002 && DGSW.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), SoftwareDiagnostics::Id,
-                                 SoftwareDiagnostics::Attributes::CurrentHeapUsed::Id, true, chip::NullOptional);
-        }
-        case 4: {
-            LogStep(4, "Reads CurrentHeapHighWaterMark attribute value from DUT");
-            VerifyOrDo(!ShouldSkip("DGSW.S.A0003 && DGSW.S.C00.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            return ReadAttribute(kIdentityAlpha, GetEndpoint(0), SoftwareDiagnostics::Id,
-                                 SoftwareDiagnostics::Attributes::CurrentHeapHighWatermark::Id, true, chip::NullOptional);
-        }
-        }
-        return CHIP_NO_ERROR;
-    }
-};
-
 class TestSubscribe_OnOffSuite : public TestCommand
 {
 public:
@@ -69236,7 +69557,7 @@
 class Test_TC_DRLK_1_1Suite : public TestCommand
 {
 public:
-    Test_TC_DRLK_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DRLK_1_1", 42, credsIssuerConfig)
+    Test_TC_DRLK_1_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DRLK_1_1", 43, credsIssuerConfig)
     {
         AddArgument("nodeId", 0, UINT64_MAX, &mNodeId);
         AddArgument("cluster", &mCluster);
@@ -69405,12 +69726,21 @@
                 chip::app::DataModel::DecodableList<chip::AttributeId> value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
                 VerifyOrReturn(CheckConstraintType("value", "list", "list"));
+                VerifyOrReturn(CheckConstraintContains("value", value, 3UL));
+            }
+            break;
+        case 15:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::DataModel::DecodableList<chip::AttributeId> value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckConstraintType("value", "list", "list"));
                 VerifyOrReturn(CheckConstraintContains("value", value, 17UL));
                 VerifyOrReturn(CheckConstraintContains("value", value, 27UL));
                 VerifyOrReturn(CheckConstraintContains("value", value, 28UL));
             }
             break;
-        case 15:
+        case 16:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
                 chip::app::DataModel::DecodableList<chip::AttributeId> value;
@@ -69421,7 +69751,7 @@
                 VerifyOrReturn(CheckConstraintContains("value", value, 24UL));
             }
             break;
-        case 16:
+        case 17:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
                 chip::app::DataModel::DecodableList<chip::AttributeId> value;
@@ -69432,7 +69762,7 @@
                 VerifyOrReturn(CheckConstraintContains("value", value, 26UL));
             }
             break;
-        case 17:
+        case 18:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
                 chip::app::DataModel::DecodableList<chip::AttributeId> value;
@@ -69441,7 +69771,7 @@
                 VerifyOrReturn(CheckConstraintContains("value", value, 20UL));
             }
             break;
-        case 18:
+        case 19:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
                 chip::app::DataModel::DecodableList<chip::AttributeId> value;
@@ -69450,7 +69780,7 @@
                 VerifyOrReturn(CheckConstraintContains("value", value, 21UL));
             }
             break;
-        case 19:
+        case 20:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
                 chip::app::DataModel::DecodableList<chip::AttributeId> value;
@@ -69459,7 +69789,7 @@
                 VerifyOrReturn(CheckConstraintContains("value", value, 22UL));
             }
             break;
-        case 20:
+        case 21:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
                 chip::app::DataModel::DecodableList<chip::AttributeId> value;
@@ -69469,7 +69799,7 @@
                 VerifyOrReturn(CheckConstraintContains("value", value, 49UL));
             }
             break;
-        case 21:
+        case 22:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
                 chip::app::DataModel::DecodableList<chip::AttributeId> value;
@@ -69478,7 +69808,7 @@
                 VerifyOrReturn(CheckConstraintContains("value", value, 51UL));
             }
             break;
-        case 22:
+        case 23:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
                 chip::app::DataModel::DecodableList<chip::AttributeId> value;
@@ -69487,7 +69817,7 @@
                 VerifyOrReturn(CheckConstraintContains("value", value, 33UL));
             }
             break;
-        case 23:
+        case 24:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
                 chip::app::DataModel::DecodableList<chip::AttributeId> value;
@@ -69496,7 +69826,7 @@
                 VerifyOrReturn(CheckConstraintContains("value", value, 34UL));
             }
             break;
-        case 24:
+        case 25:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
                 chip::app::DataModel::DecodableList<chip::AttributeId> value;
@@ -69505,7 +69835,7 @@
                 VerifyOrReturn(CheckConstraintContains("value", value, 35UL));
             }
             break;
-        case 25:
+        case 26:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
                 chip::app::DataModel::DecodableList<chip::AttributeId> value;
@@ -69514,7 +69844,7 @@
                 VerifyOrReturn(CheckConstraintContains("value", value, 36UL));
             }
             break;
-        case 26:
+        case 27:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
                 chip::app::DataModel::DecodableList<chip::AttributeId> value;
@@ -69523,7 +69853,7 @@
                 VerifyOrReturn(CheckConstraintContains("value", value, 39UL));
             }
             break;
-        case 27:
+        case 28:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
                 chip::app::DataModel::DecodableList<chip::AttributeId> value;
@@ -69532,7 +69862,7 @@
                 VerifyOrReturn(CheckConstraintContains("value", value, 40UL));
             }
             break;
-        case 28:
+        case 29:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
                 chip::app::DataModel::DecodableList<chip::AttributeId> value;
@@ -69541,7 +69871,7 @@
                 VerifyOrReturn(CheckConstraintContains("value", value, 41UL));
             }
             break;
-        case 29:
+        case 30:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
                 chip::app::DataModel::DecodableList<chip::AttributeId> value;
@@ -69550,7 +69880,7 @@
                 VerifyOrReturn(CheckConstraintContains("value", value, 42UL));
             }
             break;
-        case 30:
+        case 31:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
                 chip::app::DataModel::DecodableList<chip::AttributeId> value;
@@ -69559,7 +69889,7 @@
                 VerifyOrReturn(CheckConstraintContains("value", value, 43UL));
             }
             break;
-        case 31:
+        case 32:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
                 chip::app::DataModel::DecodableList<chip::AttributeId> value;
@@ -69568,7 +69898,7 @@
                 VerifyOrReturn(CheckConstraintContains("value", value, 44UL));
             }
             break;
-        case 32:
+        case 33:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
                 chip::app::DataModel::DecodableList<chip::CommandId> value;
@@ -69578,7 +69908,7 @@
                 VerifyOrReturn(CheckConstraintContains("value", value, 1UL));
             }
             break;
-        case 33:
+        case 34:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
                 chip::app::DataModel::DecodableList<chip::CommandId> value;
@@ -69589,7 +69919,7 @@
                 VerifyOrReturn(CheckConstraintContains("value", value, 13UL));
             }
             break;
-        case 34:
+        case 35:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
                 chip::app::DataModel::DecodableList<chip::CommandId> value;
@@ -69600,7 +69930,7 @@
                 VerifyOrReturn(CheckConstraintContains("value", value, 16UL));
             }
             break;
-        case 35:
+        case 36:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
                 chip::app::DataModel::DecodableList<chip::CommandId> value;
@@ -69611,7 +69941,7 @@
                 VerifyOrReturn(CheckConstraintContains("value", value, 19UL));
             }
             break;
-        case 36:
+        case 37:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
                 chip::app::DataModel::DecodableList<chip::CommandId> value;
@@ -69625,7 +69955,7 @@
                 VerifyOrReturn(CheckConstraintContains("value", value, 38UL));
             }
             break;
-        case 37:
+        case 38:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
                 chip::app::DataModel::DecodableList<chip::CommandId> value;
@@ -69634,7 +69964,7 @@
                 VerifyOrReturn(CheckConstraintContains("value", value, 3UL));
             }
             break;
-        case 38:
+        case 39:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
                 chip::app::DataModel::DecodableList<chip::CommandId> value;
@@ -69643,7 +69973,7 @@
                 VerifyOrReturn(CheckConstraintContains("value", value, 12UL));
             }
             break;
-        case 39:
+        case 40:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
                 chip::app::DataModel::DecodableList<chip::CommandId> value;
@@ -69652,7 +69982,7 @@
                 VerifyOrReturn(CheckConstraintContains("value", value, 15UL));
             }
             break;
-        case 40:
+        case 41:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
                 chip::app::DataModel::DecodableList<chip::CommandId> value;
@@ -69661,7 +69991,7 @@
                 VerifyOrReturn(CheckConstraintContains("value", value, 18UL));
             }
             break;
-        case 41:
+        case 42:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
                 chip::app::DataModel::DecodableList<chip::CommandId> value;
@@ -69669,6 +69999,7 @@
                 VerifyOrReturn(CheckConstraintType("value", "list", "list"));
                 VerifyOrReturn(CheckConstraintContains("value", value, 28UL));
                 VerifyOrReturn(CheckConstraintContains("value", value, 35UL));
+                VerifyOrReturn(CheckConstraintContains("value", value, 37UL));
             }
             break;
         default:
@@ -69772,168 +70103,174 @@
                                  chip::NullOptional);
         }
         case 14: {
-            LogStep(14, "TH reads Feature dependent(DRLK.S.F08) attributes in AttributeList");
-            VerifyOrDo(!ShouldSkip("DRLK.S.F08"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            LogStep(14, "TH reads Feature dependent(DRLK.S.F05) attributes in AttributeList");
+            VerifyOrDo(!ShouldSkip("DRLK.S.F05"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true,
                                  chip::NullOptional);
         }
         case 15: {
-            LogStep(15, "TH reads Feature dependent(DRLK.S.F00) attributes in AttributeList");
-            VerifyOrDo(!ShouldSkip("DRLK.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            LogStep(15, "TH reads Feature dependent(DRLK.S.F08) attributes in AttributeList");
+            VerifyOrDo(!ShouldSkip("DRLK.S.F08"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true,
                                  chip::NullOptional);
         }
         case 16: {
-            LogStep(16, "TH reads Feature dependent(DRLK.S.F01) attributes in AttributeList");
-            VerifyOrDo(!ShouldSkip("DRLK.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            LogStep(16, "TH reads Feature dependent(DRLK.S.F00) attributes in AttributeList");
+            VerifyOrDo(!ShouldSkip("DRLK.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true,
                                  chip::NullOptional);
         }
         case 17: {
-            LogStep(17, "TH reads Feature dependent(DRLK.S.F04) attribute in AttributeList");
-            VerifyOrDo(!ShouldSkip("DRLK.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            LogStep(17, "TH reads Feature dependent(DRLK.S.F01) attributes in AttributeList");
+            VerifyOrDo(!ShouldSkip("DRLK.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true,
                                  chip::NullOptional);
         }
         case 18: {
-            LogStep(18, "TH reads Feature dependent(DRLK.S.F0a) attribute in AttributeList");
-            VerifyOrDo(!ShouldSkip("DRLK.S.F0a"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            LogStep(18, "TH reads Feature dependent(DRLK.S.F04) attribute in AttributeList");
+            VerifyOrDo(!ShouldSkip("DRLK.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true,
                                  chip::NullOptional);
         }
         case 19: {
-            LogStep(19, "TH reads Feature dependent(DRLK.S.F0b) attribute in AttributeList");
-            VerifyOrDo(!ShouldSkip("DRLK.S.F0b"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            LogStep(19, "TH reads Feature dependent(DRLK.S.F0a) attribute in AttributeList");
+            VerifyOrDo(!ShouldSkip("DRLK.S.F0a"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true,
                                  chip::NullOptional);
         }
         case 20: {
-            LogStep(20, "TH reads Feature dependent(DRLK.S.F00 or DRLK.S.F01) attributes in AttributeList");
-            VerifyOrDo(!ShouldSkip("DRLK.S.F00 || DRLK.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            LogStep(20, "TH reads Feature dependent(DRLK.S.F0b) attribute in AttributeList");
+            VerifyOrDo(!ShouldSkip("DRLK.S.F0b"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true,
                                  chip::NullOptional);
         }
         case 21: {
-            LogStep(21, "TH reads Feature dependent(DRLK.S.F07 or DRLK.S.F00) attribute in AttributeList");
-            VerifyOrDo(!ShouldSkip("DRLK.S.F07 || DRLK.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            LogStep(21, "TH reads Feature dependent(DRLK.S.F00 or DRLK.S.F01) attributes in AttributeList");
+            VerifyOrDo(!ShouldSkip("DRLK.S.F00 || DRLK.S.F01"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true,
                                  chip::NullOptional);
         }
         case 22: {
-            LogStep(22, "TH reads optional attribute(Language) in AttributeList");
-            VerifyOrDo(!ShouldSkip("DRLK.S.A0021"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            LogStep(22, "TH reads Feature dependent(DRLK.S.F07 or DRLK.S.F00) attribute in AttributeList");
+            VerifyOrDo(!ShouldSkip("DRLK.S.F07 || DRLK.S.F00"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true,
                                  chip::NullOptional);
         }
         case 23: {
-            LogStep(23, "TH reads optional attribute(LEDSettings) in AttributeList");
-            VerifyOrDo(!ShouldSkip("DRLK.S.A0022"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            LogStep(23, "TH reads optional attribute(Language) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DRLK.S.A0021"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true,
                                  chip::NullOptional);
         }
         case 24: {
-            LogStep(24, "TH reads optional attribute(AutoRelockTime) in AttributeList");
-            VerifyOrDo(!ShouldSkip("DRLK.S.A0023"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            LogStep(24, "TH reads optional attribute(LEDSettings) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DRLK.S.A0022"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true,
                                  chip::NullOptional);
         }
         case 25: {
-            LogStep(25, "TH reads optional attribute(SoundVolume) in AttributeList");
-            VerifyOrDo(!ShouldSkip("DRLK.S.A0024"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            LogStep(25, "TH reads optional attribute(AutoRelockTime) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DRLK.S.A0023"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true,
                                  chip::NullOptional);
         }
         case 26: {
-            LogStep(26, "TH reads optional attribute(DefaultConfigurationRegister) in AttributeList");
-            VerifyOrDo(!ShouldSkip("DRLK.S.A0027"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            LogStep(26, "TH reads optional attribute(SoundVolume) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DRLK.S.A0024"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true,
                                  chip::NullOptional);
         }
         case 27: {
-            LogStep(27, "TH reads optional attribute(EnableLocalProgramming) in AttributeList");
-            VerifyOrDo(!ShouldSkip("DRLK.S.A0028"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            LogStep(27, "TH reads optional attribute(DefaultConfigurationRegister) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DRLK.S.A0027"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true,
                                  chip::NullOptional);
         }
         case 28: {
-            LogStep(28, "TH reads optional attribute(EnableOneTouchLocking) in AttributeList");
-            VerifyOrDo(!ShouldSkip("DRLK.S.A0029"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            LogStep(28, "TH reads optional attribute(EnableLocalProgramming) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DRLK.S.A0028"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true,
                                  chip::NullOptional);
         }
         case 29: {
-            LogStep(29, "TH reads optional attribute(EnableInsideStatusLED) in AttributeList");
-            VerifyOrDo(!ShouldSkip("DRLK.S.A002a"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            LogStep(29, "TH reads optional attribute(EnableOneTouchLocking) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DRLK.S.A0029"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true,
                                  chip::NullOptional);
         }
         case 30: {
-            LogStep(30, "TH reads optional attribute(EnablePrivacyModeButton) in AttributeList");
-            VerifyOrDo(!ShouldSkip("DRLK.S.A002b"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            LogStep(30, "TH reads optional attribute(EnableInsideStatusLED) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DRLK.S.A002a"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true,
                                  chip::NullOptional);
         }
         case 31: {
-            LogStep(31, "TH reads optional attribute(LocalProgrammingFeatures) in AttributeList");
-            VerifyOrDo(!ShouldSkip("DRLK.S.A002c"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            LogStep(31, "TH reads optional attribute(EnablePrivacyModeButton) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DRLK.S.A002b"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true,
                                  chip::NullOptional);
         }
         case 32: {
-            LogStep(32, "TH reads AcceptedCommandList from DUT");
-            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AcceptedCommandList::Id, true,
+            LogStep(32, "TH reads optional attribute(LocalProgrammingFeatures) in AttributeList");
+            VerifyOrDo(!ShouldSkip("DRLK.S.A002c"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AttributeList::Id, true,
                                  chip::NullOptional);
         }
         case 33: {
-            LogStep(33, "TH reads Feature dependent commands(DRLK.S.F04) in AcceptedCommandList");
-            VerifyOrDo(!ShouldSkip("DRLK.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            LogStep(33, "TH reads AcceptedCommandList from DUT");
             return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AcceptedCommandList::Id, true,
                                  chip::NullOptional);
         }
         case 34: {
-            LogStep(34, "TH reads Feature dependent commands(DRLK.S.F0a) in AcceptedCommandList");
-            VerifyOrDo(!ShouldSkip("DRLK.S.F0a"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            LogStep(34, "TH reads Feature dependent commands(DRLK.S.F04) in AcceptedCommandList");
+            VerifyOrDo(!ShouldSkip("DRLK.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AcceptedCommandList::Id, true,
                                  chip::NullOptional);
         }
         case 35: {
-            LogStep(35, "TH reads Feature dependent commands(DRLK.S.F0b) in AcceptedCommandList");
-            VerifyOrDo(!ShouldSkip("DRLK.S.F0b"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            LogStep(35, "TH reads Feature dependent commands(DRLK.S.F0a) in AcceptedCommandList");
+            VerifyOrDo(!ShouldSkip("DRLK.S.F0a"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AcceptedCommandList::Id, true,
                                  chip::NullOptional);
         }
         case 36: {
-            LogStep(36, "TH reads Feature dependent commands(DRLK.S.F08) in AcceptedCommandList");
-            VerifyOrDo(!ShouldSkip("DRLK.S.F08"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            LogStep(36, "TH reads Feature dependent commands(DRLK.S.F0b) in AcceptedCommandList");
+            VerifyOrDo(!ShouldSkip("DRLK.S.F0b"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AcceptedCommandList::Id, true,
                                  chip::NullOptional);
         }
         case 37: {
-            LogStep(37, "TH reads optional commands(DRLK.S.C03.Rsp) in AcceptedCommandList");
-            VerifyOrDo(!ShouldSkip("DRLK.S.C03.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            LogStep(37, "TH reads Feature dependent commands(DRLK.S.F08) in AcceptedCommandList");
+            VerifyOrDo(!ShouldSkip("DRLK.S.F08"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AcceptedCommandList::Id, true,
                                  chip::NullOptional);
         }
         case 38: {
-            LogStep(38, "TH reads Feature dependent command(DRLK.S.F04) in GeneratedCommandList");
+            LogStep(38, "TH reads optional commands(DRLK.S.C03.Rsp) in AcceptedCommandList");
+            VerifyOrDo(!ShouldSkip("DRLK.S.C03.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
+            return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::AcceptedCommandList::Id, true,
+                                 chip::NullOptional);
+        }
+        case 39: {
+            LogStep(39, "TH reads Feature dependent command(DRLK.S.F04) in GeneratedCommandList");
             VerifyOrDo(!ShouldSkip("DRLK.S.F04"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::GeneratedCommandList::Id, true,
                                  chip::NullOptional);
         }
-        case 39: {
-            LogStep(39, "TH reads Feature dependent command(DRLK.S.F0a) in GeneratedCommandList");
+        case 40: {
+            LogStep(40, "TH reads Feature dependent command(DRLK.S.F0a) in GeneratedCommandList");
             VerifyOrDo(!ShouldSkip("DRLK.S.F0a"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::GeneratedCommandList::Id, true,
                                  chip::NullOptional);
         }
-        case 40: {
-            LogStep(40, "TH reads Feature dependent command(DRLK.S.F0b) in GeneratedCommandList");
+        case 41: {
+            LogStep(41, "TH reads Feature dependent command(DRLK.S.F0b) in GeneratedCommandList");
             VerifyOrDo(!ShouldSkip("DRLK.S.F0b"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::GeneratedCommandList::Id, true,
                                  chip::NullOptional);
         }
-        case 41: {
-            LogStep(41, "TH reads Feature dependent command(DRLK.S.F08) in GeneratedCommandList");
+        case 42: {
+            LogStep(42, "TH reads Feature dependent command(DRLK.S.F08) in GeneratedCommandList");
             VerifyOrDo(!ShouldSkip("DRLK.S.F08"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             return ReadAttribute(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Attributes::GeneratedCommandList::Id, true,
                                  chip::NullOptional);
@@ -71776,8 +72113,8 @@
             {
                 chip::app::Clusters::DoorLock::Commands::GetYearDayScheduleResponse::DecodableType value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("yearDayIndex", value.yearDayIndex, 2U));
-                VerifyOrReturn(CheckValue("userIndex", value.userIndex, 21U));
+                VerifyOrReturn(CheckValue("yearDayIndex", value.yearDayIndex, 0U));
+                VerifyOrReturn(CheckValue("userIndex", value.userIndex, 15U));
                 VerifyOrReturn(CheckValue("status", value.status, 133U));
                 VerifyOrReturn(CheckConstraintHasValue("value.localStartTime", value.localStartTime, false));
                 VerifyOrReturn(CheckConstraintHasValue("value.localEndTime", value.localEndTime, false));
@@ -71955,8 +72292,8 @@
                        return ContinueOnChipMainThread(CHIP_NO_ERROR));
             ListFreer listFreer;
             chip::app::Clusters::DoorLock::Commands::GetYearDaySchedule::Type value;
-            value.yearDayIndex = 2U;
-            value.userIndex    = 21U;
+            value.yearDayIndex = 0U;
+            value.userIndex    = 15U;
             return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::GetYearDaySchedule::Id, value,
                                chip::NullOptional
 
@@ -72090,7 +72427,7 @@
 class Test_TC_DRLK_2_9Suite : public TestCommand
 {
 public:
-    Test_TC_DRLK_2_9Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DRLK_2_9", 24, credsIssuerConfig)
+    Test_TC_DRLK_2_9Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DRLK_2_9", 21, credsIssuerConfig)
     {
         AddArgument("nodeId", 0, UINT64_MAX, &mNodeId);
         AddArgument("cluster", &mCluster);
@@ -72216,14 +72553,7 @@
             break;
         case 8:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            {
-                chip::app::Clusters::DoorLock::Commands::SetCredentialResponse::DecodableType value;
-                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("status", value.status, 2U));
-                VerifyOrReturn(CheckValueNull("userIndex", value.userIndex));
-                VerifyOrReturn(CheckValueNonNull("nextCredentialIndex", value.nextCredentialIndex));
-                VerifyOrReturn(CheckValue("nextCredentialIndex.Value()", value.nextCredentialIndex.Value(), 2U));
-            }
+            shouldContinue = true;
             break;
         case 9:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
@@ -72231,40 +72561,14 @@
             break;
         case 10:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            {
-                chip::app::Clusters::DoorLock::Commands::SetCredentialResponse::DecodableType value;
-                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("status", value.status, 2U));
-                VerifyOrReturn(CheckValueNull("userIndex", value.userIndex));
-                VerifyOrReturn(CheckValueNonNull("nextCredentialIndex", value.nextCredentialIndex));
-                VerifyOrReturn(CheckValue("nextCredentialIndex.Value()", value.nextCredentialIndex.Value(), 2U));
-            }
+            shouldContinue = true;
             break;
         case 11:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            shouldContinue = true;
             break;
         case 12:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
-                chip::app::Clusters::DoorLock::Commands::SetCredentialResponse::DecodableType value;
-                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("status", value.status, 2U));
-                VerifyOrReturn(CheckValueNull("userIndex", value.userIndex));
-                VerifyOrReturn(CheckValueNonNull("nextCredentialIndex", value.nextCredentialIndex));
-                VerifyOrReturn(CheckValue("nextCredentialIndex.Value()", value.nextCredentialIndex.Value(), 4U));
-            }
-            break;
-        case 13:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            shouldContinue = true;
-            break;
-        case 14:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 15:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            {
                 chip::app::Clusters::DoorLock::Commands::GetCredentialStatusResponse::DecodableType value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
                 VerifyOrReturn(CheckValue("credentialExists", value.credentialExists, false));
@@ -72274,10 +72578,10 @@
                 VerifyOrReturn(CheckValueNull("nextCredentialIndex", value.nextCredentialIndex));
             }
             break;
-        case 16:
+        case 13:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             break;
-        case 17:
+        case 14:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             {
                 chip::app::Clusters::DoorLock::Commands::SetCredentialResponse::DecodableType value;
@@ -72288,41 +72592,41 @@
                 VerifyOrReturn(CheckValue("nextCredentialIndex.Value()", value.nextCredentialIndex.Value(), 2U));
             }
             break;
-        case 18:
+        case 15:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             break;
+        case 16:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::Clusters::DoorLock::Commands::GetCredentialStatusResponse::DecodableType value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckValue("credentialExists", value.credentialExists, false));
+                VerifyOrReturn(CheckValueNull("userIndex", value.userIndex));
+                VerifyOrReturn(CheckValueNull("creatorFabricIndex", value.creatorFabricIndex));
+                VerifyOrReturn(CheckValueNull("lastModifiedFabricIndex", value.lastModifiedFabricIndex));
+                VerifyOrReturn(CheckValueNull("nextCredentialIndex", value.nextCredentialIndex));
+            }
+            break;
+        case 17:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            {
+                chip::app::Clusters::DoorLock::Commands::GetCredentialStatusResponse::DecodableType value;
+                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
+                VerifyOrReturn(CheckValue("credentialExists", value.credentialExists, false));
+                VerifyOrReturn(CheckValueNull("userIndex", value.userIndex));
+                VerifyOrReturn(CheckValueNull("creatorFabricIndex", value.creatorFabricIndex));
+                VerifyOrReturn(CheckValueNull("lastModifiedFabricIndex", value.lastModifiedFabricIndex));
+                VerifyOrReturn(CheckValueNull("nextCredentialIndex", value.nextCredentialIndex));
+            }
+            break;
+        case 18:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_INVALID_COMMAND));
+            break;
         case 19:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            {
-                chip::app::Clusters::DoorLock::Commands::GetCredentialStatusResponse::DecodableType value;
-                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("credentialExists", value.credentialExists, false));
-                VerifyOrReturn(CheckValueNull("userIndex", value.userIndex));
-                VerifyOrReturn(CheckValueNull("creatorFabricIndex", value.creatorFabricIndex));
-                VerifyOrReturn(CheckValueNull("lastModifiedFabricIndex", value.lastModifiedFabricIndex));
-                VerifyOrReturn(CheckValueNull("nextCredentialIndex", value.nextCredentialIndex));
-            }
             break;
         case 20:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            {
-                chip::app::Clusters::DoorLock::Commands::GetCredentialStatusResponse::DecodableType value;
-                VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("credentialExists", value.credentialExists, false));
-                VerifyOrReturn(CheckValueNull("userIndex", value.userIndex));
-                VerifyOrReturn(CheckValueNull("creatorFabricIndex", value.creatorFabricIndex));
-                VerifyOrReturn(CheckValueNull("lastModifiedFabricIndex", value.lastModifiedFabricIndex));
-                VerifyOrReturn(CheckValueNull("nextCredentialIndex", value.nextCredentialIndex));
-            }
-            break;
-        case 21:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_INVALID_COMMAND));
-            break;
-        case 22:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 23:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             break;
         default:
             LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT));
@@ -72462,25 +72766,17 @@
             );
         }
         case 8: {
-            LogStep(8, "TH sends Set Credential Command to DUT");
-            VerifyOrDo(!ShouldSkip("DRLK.S.F08 && DRLK.S.C22.Rsp && DRLK.S.C23.Tx"),
+            LogStep(8,
+                    "TH sends Set Credential Command to DUT and Verify that the DUT sends Set Credential Response command with "
+                    "status as DUPLICATE or OCCUPIED");
+            VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && DRLK.S.F08 && DRLK.S.C22.Rsp && DRLK.S.C23.Tx"),
                        return ContinueOnChipMainThread(CHIP_NO_ERROR));
             ListFreer listFreer;
-            chip::app::Clusters::DoorLock::Commands::SetCredential::Type value;
-            value.operationType = static_cast<chip::app::Clusters::DoorLock::DlDataOperationType>(0);
-
-            value.credential.credentialType  = static_cast<chip::app::Clusters::DoorLock::DlCredentialType>(1);
-            value.credential.credentialIndex = 1U;
-
-            value.credentialData = chip::ByteSpan(chip::Uint8::from_const_char("123456garbage: not in length on purpose"), 6);
-            value.userIndex.SetNonNull();
-            value.userIndex.Value() = 1U;
-            value.userStatus.SetNull();
-            value.userType.SetNull();
-            return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value,
-                               chip::Optional<uint16_t>(10000), chip::NullOptional
-
-            );
+            chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
+            value.message = chip::Span<const char>("Please enter 'y' for successgarbage: not in length on purpose", 28);
+            value.expectedValue.Emplace();
+            value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
+            return UserPrompt(kIdentityAlpha, value);
         }
         case 9: {
             LogStep(9,
@@ -72496,75 +72792,20 @@
             return UserPrompt(kIdentityAlpha, value);
         }
         case 10: {
-            LogStep(10, "TH sends Set Credential Command to DUT");
-            VerifyOrDo(!ShouldSkip("DRLK.S.F08 && DRLK.S.C22.Rsp && DRLK.S.C23.Tx"),
+            LogStep(10,
+                    "TH sends Set Credential Command to DUT and Verify that the DUT sends Set Credential Response command with "
+                    "response as OCCUPIED if the CredentialIndex is repeated");
+            VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && DRLK.S.F08 && DRLK.S.C22.Rsp && DRLK.S.C23.Tx"),
                        return ContinueOnChipMainThread(CHIP_NO_ERROR));
             ListFreer listFreer;
-            chip::app::Clusters::DoorLock::Commands::SetCredential::Type value;
-            value.operationType = static_cast<chip::app::Clusters::DoorLock::DlDataOperationType>(0);
-
-            value.credential.credentialType  = static_cast<chip::app::Clusters::DoorLock::DlCredentialType>(1);
-            value.credential.credentialIndex = 1U;
-
-            value.credentialData = chip::ByteSpan(chip::Uint8::from_const_char("123456garbage: not in length on purpose"), 6);
-            value.userIndex.SetNonNull();
-            value.userIndex.Value() = 1U;
-            value.userStatus.SetNull();
-            value.userType.SetNull();
-            return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value,
-                               chip::Optional<uint16_t>(10000), chip::NullOptional
-
-            );
+            chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
+            value.message = chip::Span<const char>("Please enter 'y' for successgarbage: not in length on purpose", 28);
+            value.expectedValue.Emplace();
+            value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
+            return UserPrompt(kIdentityAlpha, value);
         }
         case 11: {
-            LogStep(11,
-                    "TH sends Set Credential Command to DUT and Verify that the DUT sends Set Credential Response command with "
-                    "response as OCCUPIED if the CredentialIndex is repeated");
-            VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && DRLK.S.F08 && DRLK.S.C22.Rsp && DRLK.S.C23.Tx"),
-                       return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-            value.message = chip::Span<const char>("Please enter 'y' for successgarbage: not in length on purpose", 28);
-            value.expectedValue.Emplace();
-            value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-            return UserPrompt(kIdentityAlpha, value);
-        }
-        case 12: {
-            LogStep(12, "TH sends Set Credential Command to DUT");
-            VerifyOrDo(!ShouldSkip("DRLK.S.F08 && DRLK.S.C22.Rsp && DRLK.S.C23.Tx"),
-                       return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::DoorLock::Commands::SetCredential::Type value;
-            value.operationType = static_cast<chip::app::Clusters::DoorLock::DlDataOperationType>(2);
-
-            value.credential.credentialType  = static_cast<chip::app::Clusters::DoorLock::DlCredentialType>(1);
-            value.credential.credentialIndex = 3U;
-
-            value.credentialData = chip::ByteSpan(chip::Uint8::from_const_char("123456garbage: not in length on purpose"), 6);
-            value.userIndex.SetNonNull();
-            value.userIndex.Value() = 1U;
-            value.userStatus.SetNull();
-            value.userType.SetNull();
-            return SendCommand(kIdentityAlpha, GetEndpoint(1), DoorLock::Id, DoorLock::Commands::SetCredential::Id, value,
-                               chip::Optional<uint16_t>(10000), chip::NullOptional
-
-            );
-        }
-        case 13: {
-            LogStep(13,
-                    "TH sends Set Credential Command to DUT and Verify that the DUT sends Set Credential Response command with "
-                    "response as OCCUPIED if the CredentialIndex is repeated");
-            VerifyOrDo(!ShouldSkip("PICS_USER_PROMPT && DRLK.S.F08 && DRLK.S.C22.Rsp && DRLK.S.C23.Tx"),
-                       return ContinueOnChipMainThread(CHIP_NO_ERROR));
-            ListFreer listFreer;
-            chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-            value.message = chip::Span<const char>("Please enter 'y' for successgarbage: not in length on purpose", 28);
-            value.expectedValue.Emplace();
-            value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-            return UserPrompt(kIdentityAlpha, value);
-        }
-        case 14: {
-            LogStep(14, "TH sends Clear Credential Command to DUT");
+            LogStep(11, "TH sends Clear Credential Command to DUT");
             VerifyOrDo(!ShouldSkip("DRLK.S.F08 && DRLK.S.C26.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             ListFreer listFreer;
             chip::app::Clusters::DoorLock::Commands::ClearCredential::Type value;
@@ -72578,8 +72819,8 @@
 
             );
         }
-        case 15: {
-            LogStep(15, "TH sends Get Credential Status Command to DUT");
+        case 12: {
+            LogStep(12, "TH sends Get Credential Status Command to DUT");
             VerifyOrDo(!ShouldSkip("DRLK.S.F08 && DRLK.S.C24.Rsp && DRLK.S.C25.Tx"),
                        return ContinueOnChipMainThread(CHIP_NO_ERROR));
             ListFreer listFreer;
@@ -72593,8 +72834,8 @@
 
             );
         }
-        case 16: {
-            LogStep(16, "TH sends Set User Command to DUT");
+        case 13: {
+            LogStep(13, "TH sends Set User Command to DUT");
             VerifyOrDo(!ShouldSkip("DRLK.S.F08 && DRLK.S.C1a.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             ListFreer listFreer;
             chip::app::Clusters::DoorLock::Commands::SetUser::Type value;
@@ -72615,8 +72856,8 @@
 
             );
         }
-        case 17: {
-            LogStep(17, "TH sends Set Credential Command to DUT");
+        case 14: {
+            LogStep(14, "TH sends Set Credential Command to DUT");
             VerifyOrDo(!ShouldSkip("DRLK.S.F08 && DRLK.S.C22.Rsp && DRLK.S.C23.Tx"),
                        return ContinueOnChipMainThread(CHIP_NO_ERROR));
             ListFreer listFreer;
@@ -72636,8 +72877,8 @@
 
             );
         }
-        case 18: {
-            LogStep(18, "TH sends Clear Credential Command to DUT");
+        case 15: {
+            LogStep(15, "TH sends Clear Credential Command to DUT");
             VerifyOrDo(!ShouldSkip("DRLK.S.F08 && DRLK.S.C26.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             ListFreer listFreer;
             chip::app::Clusters::DoorLock::Commands::ClearCredential::Type value;
@@ -72651,8 +72892,8 @@
 
             );
         }
-        case 19: {
-            LogStep(19, "TH sends Get Credential Status Command");
+        case 16: {
+            LogStep(16, "TH sends Get Credential Status Command");
             VerifyOrDo(!ShouldSkip("DRLK.S.F08 && DRLK.S.C24.Rsp && DRLK.S.C25.Tx"),
                        return ContinueOnChipMainThread(CHIP_NO_ERROR));
             ListFreer listFreer;
@@ -72666,8 +72907,8 @@
 
             );
         }
-        case 20: {
-            LogStep(20, "TH sends Get Credential Status Command");
+        case 17: {
+            LogStep(17, "TH sends Get Credential Status Command");
             VerifyOrDo(!ShouldSkip("DRLK.S.F08 && DRLK.S.C24.Rsp && DRLK.S.C25.Tx"),
                        return ContinueOnChipMainThread(CHIP_NO_ERROR));
             ListFreer listFreer;
@@ -72681,8 +72922,8 @@
 
             );
         }
-        case 21: {
-            LogStep(21, "TH sends Clear Credential Command to DUT");
+        case 18: {
+            LogStep(18, "TH sends Clear Credential Command to DUT");
             VerifyOrDo(!ShouldSkip("DRLK.S.F08 && DRLK.S.C26.Rsp"), return ContinueOnChipMainThread(CHIP_NO_ERROR));
             ListFreer listFreer;
             chip::app::Clusters::DoorLock::Commands::ClearCredential::Type value;
@@ -72696,8 +72937,8 @@
 
             );
         }
-        case 22: {
-            LogStep(22, "Cleanup the first created user");
+        case 19: {
+            LogStep(19, "Cleanup the first created user");
             ListFreer listFreer;
             chip::app::Clusters::DoorLock::Commands::ClearUser::Type value;
             value.userIndex = 1U;
@@ -72706,8 +72947,8 @@
 
             );
         }
-        case 23: {
-            LogStep(23, "Cleanup the second created user");
+        case 20: {
+            LogStep(20, "Cleanup the second created user");
             ListFreer listFreer;
             chip::app::Clusters::DoorLock::Commands::ClearUser::Type value;
             value.userIndex = 2U;
@@ -91718,6 +91959,174 @@
     }
 };
 
+class Test_TC_DGSW_2_1Suite : public TestCommand
+{
+public:
+    Test_TC_DGSW_2_1Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGSW_2_1", 0, credsIssuerConfig)
+    {
+        AddArgument("nodeId", 0, UINT64_MAX, &mNodeId);
+        AddArgument("cluster", &mCluster);
+        AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint);
+        AddArgument("timeout", 0, UINT16_MAX, &mTimeout);
+    }
+
+    ~Test_TC_DGSW_2_1Suite() {}
+
+    chip::System::Clock::Timeout GetWaitDuration() const override
+    {
+        return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds));
+    }
+
+private:
+    chip::Optional<chip::NodeId> mNodeId;
+    chip::Optional<chip::CharSpan> mCluster;
+    chip::Optional<chip::EndpointId> mEndpoint;
+    chip::Optional<uint16_t> mTimeout;
+
+    chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; }
+
+    //
+    // Tests methods
+    //
+
+    void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override
+    {
+        bool shouldContinue = false;
+
+        switch (mTestIndex - 1)
+        {
+        default:
+            LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT));
+        }
+
+        if (shouldContinue)
+        {
+            ContinueOnChipMainThread(CHIP_NO_ERROR);
+        }
+    }
+
+    CHIP_ERROR DoTestStep(uint16_t testIndex) override
+    {
+        using namespace chip::app::Clusters;
+        switch (testIndex)
+        {
+        }
+        return CHIP_NO_ERROR;
+    }
+};
+
+class Test_TC_DGSW_2_2Suite : public TestCommand
+{
+public:
+    Test_TC_DGSW_2_2Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGSW_2_2", 0, credsIssuerConfig)
+    {
+        AddArgument("nodeId", 0, UINT64_MAX, &mNodeId);
+        AddArgument("cluster", &mCluster);
+        AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint);
+        AddArgument("timeout", 0, UINT16_MAX, &mTimeout);
+    }
+
+    ~Test_TC_DGSW_2_2Suite() {}
+
+    chip::System::Clock::Timeout GetWaitDuration() const override
+    {
+        return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds));
+    }
+
+private:
+    chip::Optional<chip::NodeId> mNodeId;
+    chip::Optional<chip::CharSpan> mCluster;
+    chip::Optional<chip::EndpointId> mEndpoint;
+    chip::Optional<uint16_t> mTimeout;
+
+    chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; }
+
+    //
+    // Tests methods
+    //
+
+    void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override
+    {
+        bool shouldContinue = false;
+
+        switch (mTestIndex - 1)
+        {
+        default:
+            LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT));
+        }
+
+        if (shouldContinue)
+        {
+            ContinueOnChipMainThread(CHIP_NO_ERROR);
+        }
+    }
+
+    CHIP_ERROR DoTestStep(uint16_t testIndex) override
+    {
+        using namespace chip::app::Clusters;
+        switch (testIndex)
+        {
+        }
+        return CHIP_NO_ERROR;
+    }
+};
+
+class Test_TC_DGSW_2_3Suite : public TestCommand
+{
+public:
+    Test_TC_DGSW_2_3Suite(CredentialIssuerCommands * credsIssuerConfig) : TestCommand("Test_TC_DGSW_2_3", 0, credsIssuerConfig)
+    {
+        AddArgument("nodeId", 0, UINT64_MAX, &mNodeId);
+        AddArgument("cluster", &mCluster);
+        AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint);
+        AddArgument("timeout", 0, UINT16_MAX, &mTimeout);
+    }
+
+    ~Test_TC_DGSW_2_3Suite() {}
+
+    chip::System::Clock::Timeout GetWaitDuration() const override
+    {
+        return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds));
+    }
+
+private:
+    chip::Optional<chip::NodeId> mNodeId;
+    chip::Optional<chip::CharSpan> mCluster;
+    chip::Optional<chip::EndpointId> mEndpoint;
+    chip::Optional<uint16_t> mTimeout;
+
+    chip::EndpointId GetEndpoint(chip::EndpointId endpoint) { return mEndpoint.HasValue() ? mEndpoint.Value() : endpoint; }
+
+    //
+    // Tests methods
+    //
+
+    void OnResponse(const chip::app::StatusIB & status, chip::TLV::TLVReader * data) override
+    {
+        bool shouldContinue = false;
+
+        switch (mTestIndex - 1)
+        {
+        default:
+            LogErrorOnFailure(ContinueOnChipMainThread(CHIP_ERROR_INVALID_ARGUMENT));
+        }
+
+        if (shouldContinue)
+        {
+            ContinueOnChipMainThread(CHIP_NO_ERROR);
+        }
+    }
+
+    CHIP_ERROR DoTestStep(uint16_t testIndex) override
+    {
+        using namespace chip::app::Clusters;
+        switch (testIndex)
+        {
+        }
+        return CHIP_NO_ERROR;
+    }
+};
+
 class Test_TC_DGSW_3_1Suite : public TestCommand
 {
 public:
@@ -93378,7 +93787,8 @@
             {
                 uint8_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("currentHue", value, 120U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 102U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 138U));
             }
             break;
         case 14:
@@ -93434,7 +93844,8 @@
             {
                 uint8_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("currentHue", value, 135U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 115U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 155U));
             }
             break;
         case 25:
@@ -93495,7 +93906,8 @@
             {
                 uint8_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("currentHue", value, 120U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 102U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 138U));
             }
             break;
         case 36:
@@ -93543,8 +93955,8 @@
             {
                 uint8_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckConstraintMinValue("value", value, 48U));
-                VerifyOrReturn(CheckConstraintMaxValue("value", value, 72U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 51U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 69U));
             }
             break;
         case 45:
@@ -93556,7 +93968,8 @@
             {
                 uint8_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("currentHue", value, 60U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 51U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 69U));
             }
             break;
         case 47:
@@ -94135,7 +94548,8 @@
             {
                 uint16_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("enhancedCurrentHue", value, 12000U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 10200U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 13800U));
             }
             break;
         case 14:
@@ -94196,7 +94610,8 @@
             {
                 uint16_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("enhancedCurrentHue", value, 54000U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 50700U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 62100U));
             }
             break;
         case 25:
@@ -94257,7 +94672,8 @@
             {
                 uint16_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("enhancedCurrentHue", value, 12000U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 10200U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 13800U));
             }
             break;
         case 36:
@@ -94318,7 +94734,8 @@
             {
                 uint16_t value;
                 VerifyOrReturn(CheckDecodeValue(chip::app::DataModel::Decode(*data, value)));
-                VerifyOrReturn(CheckValue("enhancedCurrentHue", value, 6000U));
+                VerifyOrReturn(CheckConstraintMinValue("value", value, 5100U));
+                VerifyOrReturn(CheckConstraintMaxValue("value", value, 6900U));
             }
             break;
         case 47:
@@ -103040,9 +103457,6 @@
         make_unique<TestCommissioningWindowSuite>(credsIssuerConfig),
         make_unique<TestMultiAdminSuite>(credsIssuerConfig),
         make_unique<Test_TC_DGSW_1_1Suite>(credsIssuerConfig),
-        make_unique<Test_TC_DGSW_2_1Suite>(credsIssuerConfig),
-        make_unique<Test_TC_DGSW_2_2Suite>(credsIssuerConfig),
-        make_unique<Test_TC_DGSW_2_3Suite>(credsIssuerConfig),
         make_unique<TestSubscribe_OnOffSuite>(credsIssuerConfig),
         make_unique<DL_UsersAndCredentialsSuite>(credsIssuerConfig),
         make_unique<DL_LockUnlockSuite>(credsIssuerConfig),
@@ -103280,6 +103694,9 @@
         make_unique<Test_TC_SC_5_2Suite>(credsIssuerConfig),
         make_unique<Test_TC_SC_5_3Suite>(credsIssuerConfig),
         make_unique<Test_TC_SC_6_1Suite>(credsIssuerConfig),
+        make_unique<Test_TC_DGSW_2_1Suite>(credsIssuerConfig),
+        make_unique<Test_TC_DGSW_2_2Suite>(credsIssuerConfig),
+        make_unique<Test_TC_DGSW_2_3Suite>(credsIssuerConfig),
         make_unique<Test_TC_DGSW_3_1Suite>(credsIssuerConfig),
         make_unique<Test_TC_DGSW_3_2Suite>(credsIssuerConfig),
         make_unique<Test_TC_DGWIFI_2_2Suite>(credsIssuerConfig),
diff --git a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h
index da69453..6821b5a 100644
--- a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h
+++ b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h
@@ -217,9 +217,6 @@
         printf("TestCommissioningWindow\n");
         printf("TestMultiAdmin\n");
         printf("Test_TC_DGSW_1_1\n");
-        printf("Test_TC_DGSW_2_1\n");
-        printf("Test_TC_DGSW_2_2\n");
-        printf("Test_TC_DGSW_2_3\n");
         printf("TestSubscribe_OnOff\n");
         printf("DL_UsersAndCredentials\n");
         printf("DL_LockUnlock\n");
@@ -7456,7 +7453,6 @@
 
         return CHIP_NO_ERROR;
     }
-    NSNumber * _Nonnull CurrentHueValueStep2f;
 
     CHIP_ERROR TestThReadsCurrentHueAttributeFromDut_12()
     {
@@ -7472,9 +7468,6 @@
 
             VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentHue", [value unsignedCharValue], 80U));
             VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentHue", [value unsignedCharValue], 110U));
-            {
-                CurrentHueValueStep2f = value;
-            }
 
             NextTest();
         }];
@@ -7502,10 +7495,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("CurrentHue", actualValue, CurrentHueValueStep2f));
-            }
+            VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentHue", [value unsignedCharValue], 80U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentHue", [value unsignedCharValue], 110U));
 
             NextTest();
         }];
@@ -7592,8 +7583,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentHue", [value unsignedCharValue], 0U));
-            VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentHue", [value unsignedCharValue], 20U));
+            VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentHue", [value unsignedCharValue], 8U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentHue", [value unsignedCharValue], 12U));
 
             NextTest();
         }];
@@ -7661,7 +7652,6 @@
 
         return CHIP_NO_ERROR;
     }
-    NSNumber * _Nonnull CurrentHueValueStep3f;
 
     CHIP_ERROR TestThReadsCurrentHueAttributeFromDut_24()
     {
@@ -7677,9 +7667,6 @@
 
             VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentHue", [value unsignedCharValue], 140U));
             VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentHue", [value unsignedCharValue], 190U));
-            {
-                CurrentHueValueStep3f = value;
-            }
 
             NextTest();
         }];
@@ -7707,10 +7694,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("CurrentHue", actualValue, CurrentHueValueStep3f));
-            }
+            VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentHue", [value unsignedCharValue], 140U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentHue", [value unsignedCharValue], 190U));
 
             NextTest();
         }];
@@ -8286,8 +8271,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentHue", [value unsignedCharValue], 0U));
-            VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentHue", [value unsignedCharValue], 10U));
+            VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentHue", [value unsignedCharValue], 4U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentHue", [value unsignedCharValue], 6U));
 
             NextTest();
         }];
@@ -8315,10 +8300,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("CurrentHue", actualValue, 5U));
-            }
+            VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentHue", [value unsignedCharValue], 4U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentHue", [value unsignedCharValue], 6U));
 
             NextTest();
         }];
@@ -8466,10 +8449,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("CurrentHue", actualValue, 245U));
-            }
+            VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentHue", [value unsignedCharValue], 208U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentHue", [value unsignedCharValue], 255U));
 
             NextTest();
         }];
@@ -9033,10 +9014,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("CurrentSaturation", actualValue, 120U));
-            }
+            VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentSaturation", [value unsignedCharValue], 102U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentSaturation", [value unsignedCharValue], 138U));
 
             NextTest();
         }];
@@ -9700,7 +9679,7 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentSaturation", [value unsignedCharValue], 212U));
+            VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentSaturation", [value unsignedCharValue], 216U));
             VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentSaturation", [value unsignedCharValue], 254U));
 
             NextTest();
@@ -9729,10 +9708,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("CurrentSaturation", actualValue, 254U));
-            }
+            VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentSaturation", [value unsignedCharValue], 216U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentSaturation", [value unsignedCharValue], 254U));
 
             NextTest();
         }];
@@ -9849,8 +9826,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentSaturation", [value unsignedCharValue], 5U));
-            VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentSaturation", [value unsignedCharValue], 35U));
+            VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentSaturation", [value unsignedCharValue], 17U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentSaturation", [value unsignedCharValue], 23U));
 
             NextTest();
         }];
@@ -10002,7 +9979,6 @@
 
         return CHIP_NO_ERROR;
     }
-    NSNumber * _Nonnull CurrentSaturationValueStep4e;
 
     CHIP_ERROR TestThReadsCurrentSaturationAttributeFromDut_27()
     {
@@ -10018,9 +9994,6 @@
 
             VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentSaturation", [value unsignedCharValue], 170U));
             VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentSaturation", [value unsignedCharValue], 230U));
-            {
-                CurrentSaturationValueStep4e = value;
-            }
 
             NextTest();
         }];
@@ -10048,10 +10021,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("CurrentSaturation", actualValue, CurrentSaturationValueStep4e));
-            }
+            VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentSaturation", [value unsignedCharValue], 170U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentSaturation", [value unsignedCharValue], 230U));
 
             NextTest();
         }];
@@ -10717,10 +10688,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("CurrentSaturation", actualValue, 240U));
-            }
+            VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentSaturation", [value unsignedCharValue], 204U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentSaturation", [value unsignedCharValue], 254U));
 
             NextTest();
         }];
@@ -10775,10 +10744,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("CurrentSaturation", actualValue, 254U));
-            }
+            VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentSaturation", [value unsignedCharValue], 216U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentSaturation", [value unsignedCharValue], 254U));
 
             NextTest();
         }];
@@ -10896,8 +10863,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentSaturation", [value unsignedCharValue], 5U));
-            VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentSaturation", [value unsignedCharValue], 15U));
+            VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentSaturation", [value unsignedCharValue], 8U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentSaturation", [value unsignedCharValue], 12U));
 
             NextTest();
         }];
@@ -10925,10 +10892,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("CurrentSaturation", actualValue, 10U));
-            }
+            VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentSaturation", [value unsignedCharValue], 8U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentSaturation", [value unsignedCharValue], 12U));
 
             NextTest();
         }];
@@ -11466,10 +11431,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("CurrentHue", actualValue, 200U));
-            }
+            VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentHue", [value unsignedCharValue], 170U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentHue", [value unsignedCharValue], 230U));
 
             NextTest();
         }];
@@ -11489,10 +11452,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("CurrentSaturation", actualValue, 50U));
-            }
+            VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentSaturation", [value unsignedCharValue], 42U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentSaturation", [value unsignedCharValue], 58U));
 
             NextTest();
         }];
@@ -11648,10 +11609,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("CurrentHue", actualValue, 160U));
-            }
+            VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentHue", [value unsignedCharValue], 135U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentHue", [value unsignedCharValue], 185U));
 
             NextTest();
         }];
@@ -11671,10 +11630,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("CurrentSaturation", actualValue, 80U));
-            }
+            VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentSaturation", [value unsignedCharValue], 68U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentSaturation", [value unsignedCharValue], 92U));
 
             NextTest();
         }];
@@ -12556,10 +12513,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("CurrentX", actualValue, 32768U));
-            }
+            VerifyOrReturn(CheckConstraintMinValue<uint16_t>("currentX", [value unsignedShortValue], 27853U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint16_t>("currentX", [value unsignedShortValue], 37683U));
 
             NextTest();
         }];
@@ -12579,10 +12534,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("CurrentY", actualValue, 19660U));
-            }
+            VerifyOrReturn(CheckConstraintMinValue<uint16_t>("currentY", [value unsignedShortValue], 16711U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint16_t>("currentY", [value unsignedShortValue], 22609U));
 
             NextTest();
         }];
@@ -12737,10 +12690,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("CurrentX", actualValue, 13107U));
-            }
+            VerifyOrReturn(CheckConstraintMinValue<uint16_t>("currentX", [value unsignedShortValue], 11141U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint16_t>("currentX", [value unsignedShortValue], 15073U));
 
             NextTest();
         }];
@@ -12760,10 +12711,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("CurrentY", actualValue, 13107U));
-            }
+            VerifyOrReturn(CheckConstraintMinValue<uint16_t>("currentY", [value unsignedShortValue], 11141U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint16_t>("currentY", [value unsignedShortValue], 15073U));
 
             NextTest();
         }];
@@ -12880,10 +12829,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("CurrentX", actualValue, 32768U));
-            }
+            VerifyOrReturn(CheckConstraintMinValue<uint16_t>("currentX", [value unsignedShortValue], 27853U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint16_t>("currentX", [value unsignedShortValue], 37683U));
 
             NextTest();
         }];
@@ -12903,10 +12850,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("CurrentY", actualValue, 19660U));
-            }
+            VerifyOrReturn(CheckConstraintMinValue<uint16_t>("currentY", [value unsignedShortValue], 16711U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint16_t>("currentY", [value unsignedShortValue], 22609U));
 
             NextTest();
         }];
@@ -13141,10 +13086,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("CurrentX", actualValue, 26214U));
-            }
+            VerifyOrReturn(CheckConstraintMinValue<uint16_t>("currentX", [value unsignedShortValue], 22282U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint16_t>("currentX", [value unsignedShortValue], 30146U));
 
             NextTest();
         }];
@@ -13164,10 +13107,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("CurrentY", actualValue, 32768U));
-            }
+            VerifyOrReturn(CheckConstraintMinValue<uint16_t>("currentY", [value unsignedShortValue], 27853U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint16_t>("currentY", [value unsignedShortValue], 37683U));
 
             NextTest();
         }];
@@ -13284,10 +13225,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("CurrentX", actualValue, 32768U));
-            }
+            VerifyOrReturn(CheckConstraintMinValue<uint16_t>("currentX", [value unsignedShortValue], 27853U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint16_t>("currentX", [value unsignedShortValue], 37683U));
 
             NextTest();
         }];
@@ -13307,10 +13246,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("CurrentY", actualValue, 19660U));
-            }
+            VerifyOrReturn(CheckConstraintMinValue<uint16_t>("currentY", [value unsignedShortValue], 16711U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint16_t>("currentY", [value unsignedShortValue], 22609U));
 
             NextTest();
         }];
@@ -13383,10 +13320,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("CurrentX", actualValue, 13107U));
-            }
+            VerifyOrReturn(CheckConstraintMinValue<uint16_t>("currentX", [value unsignedShortValue], 11141U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint16_t>("currentX", [value unsignedShortValue], 15073U));
 
             NextTest();
         }];
@@ -13406,10 +13341,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("CurrentY", actualValue, 13107U));
-            }
+            VerifyOrReturn(CheckConstraintMinValue<uint16_t>("currentY", [value unsignedShortValue], 11141U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint16_t>("currentY", [value unsignedShortValue], 15073U));
 
             NextTest();
         }];
@@ -13545,10 +13478,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("CurrentX", actualValue, 26214U));
-            }
+            VerifyOrReturn(CheckConstraintMinValue<uint16_t>("currentX", [value unsignedShortValue], 22282U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint16_t>("currentX", [value unsignedShortValue], 30146U));
 
             NextTest();
         }];
@@ -13568,10 +13499,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("CurrentY", actualValue, 32768U));
-            }
+            VerifyOrReturn(CheckConstraintMinValue<uint16_t>("currentY", [value unsignedShortValue], 27853U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint16_t>("currentY", [value unsignedShortValue], 37683U));
 
             NextTest();
         }];
@@ -14838,10 +14767,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("CurrentX", actualValue, 13000U));
-            }
+            VerifyOrReturn(CheckConstraintMinValue<uint16_t>("currentX", [value unsignedShortValue], 11050U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint16_t>("currentX", [value unsignedShortValue], 14950U));
 
             NextTest();
         }];
@@ -14861,10 +14788,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("CurrentY", actualValue, 14000U));
-            }
+            VerifyOrReturn(CheckConstraintMinValue<uint16_t>("currentY", [value unsignedShortValue], 11900U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint16_t>("currentY", [value unsignedShortValue], 16100U));
 
             NextTest();
         }];
@@ -15536,10 +15461,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("ColorTemperatureMireds", actualValue, 250U));
-            }
+            VerifyOrReturn(CheckConstraintMinValue<uint16_t>("colorTemperatureMireds", [value unsignedShortValue], 212U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint16_t>("colorTemperatureMireds", [value unsignedShortValue], 288U));
 
             NextTest();
         }];
@@ -16210,10 +16133,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("EnhancedCurrentHue", actualValue, 12000U));
-            }
+            VerifyOrReturn(CheckConstraintMinValue<uint16_t>("enhancedCurrentHue", [value unsignedShortValue], 10200U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint16_t>("enhancedCurrentHue", [value unsignedShortValue], 13800U));
 
             NextTest();
         }];
@@ -16391,10 +16312,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("EnhancedCurrentHue", actualValue, 6000U));
-            }
+            VerifyOrReturn(CheckConstraintMinValue<uint16_t>("enhancedCurrentHue", [value unsignedShortValue], 5100U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint16_t>("enhancedCurrentHue", [value unsignedShortValue], 6900U));
 
             NextTest();
         }];
@@ -16877,10 +16796,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("EnhancedCurrentHue", actualValue, 20000U));
-            }
+            VerifyOrReturn(CheckConstraintMinValue<uint16_t>("enhancedCurrentHue", [value unsignedShortValue], 17000U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint16_t>("enhancedCurrentHue", [value unsignedShortValue], 23000U));
 
             NextTest();
         }];
@@ -16900,10 +16817,8 @@
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
-            {
-                id actualValue = value;
-                VerifyOrReturn(CheckValue("CurrentSaturation", actualValue, 50U));
-            }
+            VerifyOrReturn(CheckConstraintMinValue<uint8_t>("currentSaturation", [value unsignedCharValue], 42U));
+            VerifyOrReturn(CheckConstraintMaxValue<uint8_t>("currentSaturation", [value unsignedCharValue], 58U));
 
             NextTest();
         }];
@@ -35963,7 +35878,7 @@
         case 8:
             ChipLogProgress(
                 chipTool, " ***** Test Step 8 : Read the optional command(LaunchContent) in AcceptedCommandList attribute\n");
-            if (ShouldSkip("CONTENTLAUNCHER.C.C0000")) {
+            if (ShouldSkip("CONTENTLAUNCHER.C.C00.Tx")) {
                 NextTest();
                 return;
             }
@@ -35972,7 +35887,7 @@
         case 9:
             ChipLogProgress(
                 chipTool, " ***** Test Step 9 : Read the optional command(LaunchURL) in AcceptedCommandList attribute\n");
-            if (ShouldSkip("CONTENTLAUNCHER.C.C0001")) {
+            if (ShouldSkip("CONTENTLAUNCHER.C.C01.Tx")) {
                 NextTest();
                 return;
             }
@@ -37974,15 +37889,13 @@
             err = TestWaitForTheCommissionedDeviceToBeRetrieved_0();
             break;
         case 1:
-            ChipLogProgress(chipTool,
-                " ***** Test Step 1 : TH reads the InputList attribute from the DUT to show list of Inputs available and Verify "
-                "list of available inputs supported by the device is provided, where each entry in the list contains an "
-                "index(type:uint 8), InputType (InputType Enums), Name (type: Strings), and Description(Type:String)\n");
+            ChipLogProgress(
+                chipTool, " ***** Test Step 1 : TH reads the InputList attribute from the DUT to show list of Inputs available\n");
             if (ShouldSkip("MEDIAINPUT.S.A0000")) {
                 NextTest();
                 return;
             }
-            err = TestThReadsTheInputListAttributeFromTheDutToShowListOfInputsAvailableAndVerifyListOfAvailableInputsSupportedByTheDeviceIsProvidedWhereEachEntryInTheListContainsAnIndextypeuint8InputTypeInputTypeEnumsNameTypeStringsAndDescriptionTypeString_1();
+            err = TestThReadsTheInputListAttributeFromTheDutToShowListOfInputsAvailable_1();
             break;
         case 2:
             ChipLogProgress(chipTool, " ***** Test Step 2 : Rename Input Command\n");
@@ -38052,8 +37965,7 @@
         return WaitForCommissionee("alpha", value);
     }
 
-    CHIP_ERROR
-    TestThReadsTheInputListAttributeFromTheDutToShowListOfInputsAvailableAndVerifyListOfAvailableInputsSupportedByTheDeviceIsProvidedWhereEachEntryInTheListContainsAnIndextypeuint8InputTypeInputTypeEnumsNameTypeStringsAndDescriptionTypeString_1()
+    CHIP_ERROR TestThReadsTheInputListAttributeFromTheDutToShowListOfInputsAvailable_1()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -38061,10 +37973,7 @@
         VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
 
         [cluster readAttributeInputListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
-            NSLog(@"TH reads the InputList attribute from the DUT to show list of Inputs available and Verify list of available "
-                  @"inputs supported by the device is provided, where each entry in the list contains an index(type:uint 8), "
-                  @"InputType (InputType Enums), Name (type: Strings), and Description(Type:String) Error: %@",
-                err);
+            NSLog(@"TH reads the InputList attribute from the DUT to show list of Inputs available Error: %@", err);
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
@@ -61176,36 +61085,384 @@
             err = TestThReadsFeatureDependentAttributeDGTHREADSF01ERRCNTInAttributeList_8();
             break;
         case 9:
-            ChipLogProgress(chipTool, " ***** Test Step 9 : Read the optional attribute(ActiveTimestamp) in AttributeList\n");
+            ChipLogProgress(chipTool, " ***** Test Step 9 : TH reads optional attribute (DetachedRoleCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A000e")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeDetachedRoleCountInAttributeList_9();
+            break;
+        case 10:
+            ChipLogProgress(chipTool, " ***** Test Step 10 : TH reads optional attribute (ChildRoleCount) AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A001f")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeChildRoleCountAttributeList_10();
+            break;
+        case 11:
+            ChipLogProgress(chipTool, " ***** Test Step 11 : TH reads optional attribute (RouterRoleCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A0010")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeRouterRoleCountInAttributeList_11();
+            break;
+        case 12:
+            ChipLogProgress(chipTool, " ***** Test Step 12 : TH reads optional attribute (LeaderRoleCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A0011")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeLeaderRoleCountInAttributeList_12();
+            break;
+        case 13:
+            ChipLogProgress(chipTool, " ***** Test Step 13 : TH reads optional attribute (AttachAttemptCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A0012")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeAttachAttemptCountInAttributeList_13();
+            break;
+        case 14:
+            ChipLogProgress(
+                chipTool, " ***** Test Step 14 : TH reads optional attribute (PartitionIdChangeCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A0013")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributePartitionIdChangeCountInAttributeList_14();
+            break;
+        case 15:
+            ChipLogProgress(chipTool,
+                " ***** Test Step 15 : TH reads optional attribute (BetterPartitionAttachAttemptCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A0014")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeBetterPartitionAttachAttemptCountInAttributeList_15();
+            break;
+        case 16:
+            ChipLogProgress(chipTool, " ***** Test Step 16 : TH reads optional attribute (ParentChangeCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A0015")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeParentChangeCountInAttributeList_16();
+            break;
+        case 17:
+            ChipLogProgress(chipTool, " ***** Test Step 17 : TH reads optional attribute (TxTotalCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A0016")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeTxTotalCountInAttributeList_17();
+            break;
+        case 18:
+            ChipLogProgress(chipTool, " ***** Test Step 18 : TH reads optional attribute (TxUnicastCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A0017")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeTxUnicastCountInAttributeList_18();
+            break;
+        case 19:
+            ChipLogProgress(chipTool, " ***** Test Step 19 : TH reads optional attribute (TxBroadcastCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A0018")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeTxBroadcastCountInAttributeList_19();
+            break;
+        case 20:
+            ChipLogProgress(chipTool, " ***** Test Step 20 : TH reads optional attribute (TxAckRequestedCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A0019")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeTxAckRequestedCountInAttributeList_20();
+            break;
+        case 21:
+            ChipLogProgress(chipTool, " ***** Test Step 21 : TH reads optional attribute (TxAckedCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A001a")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeTxAckedCountInAttributeList_21();
+            break;
+        case 22:
+            ChipLogProgress(
+                chipTool, " ***** Test Step 22 : TH reads optional attribute (TxNoAckRequestedCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A001b")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeTxNoAckRequestedCountInAttributeList_22();
+            break;
+        case 23:
+            ChipLogProgress(chipTool, " ***** Test Step 23 : TH reads optional attributes (TxDataCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A001c")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributesTxDataCountInAttributeList_23();
+            break;
+        case 24:
+            ChipLogProgress(chipTool, " ***** Test Step 24 : TH reads optional attribute (TxDataPollCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A001d")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeTxDataPollCountInAttributeList_24();
+            break;
+        case 25:
+            ChipLogProgress(chipTool, " ***** Test Step 25 : TH reads optional attribute (TxBeaconCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A001e")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeTxBeaconCountInAttributeList_25();
+            break;
+        case 26:
+            ChipLogProgress(
+                chipTool, " ***** Test Step 26 : TH reads optional attribute (TxBeaconRequestCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A001f")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeTxBeaconRequestCountInAttributeList_26();
+            break;
+        case 27:
+            ChipLogProgress(chipTool, " ***** Test Step 27 : TH reads optional attribute (TxOtherCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A0020")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeTxOtherCountInAttributeList_27();
+            break;
+        case 28:
+            ChipLogProgress(chipTool, " ***** Test Step 28 : TH reads optional attribute (TxRetryCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A0021")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeTxRetryCountInAttributeList_28();
+            break;
+        case 29:
+            ChipLogProgress(
+                chipTool, " ***** Test Step 29 : TH reads optional attribute (TxDirectMaxRetryExpiryCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A0022")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeTxDirectMaxRetryExpiryCountInAttributeList_29();
+            break;
+        case 30:
+            ChipLogProgress(
+                chipTool, " ***** Test Step 30 : TH reads optional attribute (TxIndirectMaxRetryExpiryCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A0023")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeTxIndirectMaxRetryExpiryCountInAttributeList_30();
+            break;
+        case 31:
+            ChipLogProgress(chipTool, " ***** Test Step 31 : TH reads optional attribute (TxErrCcaCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A0024")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeTxErrCcaCountInAttributeList_31();
+            break;
+        case 32:
+            ChipLogProgress(chipTool, " ***** Test Step 32 : TH reads optional attribute (TxErrAbortCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A0025")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeTxErrAbortCountInAttributeList_32();
+            break;
+        case 33:
+            ChipLogProgress(
+                chipTool, " ***** Test Step 33 : TH reads optional attribute (TxErrBusyChannelCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A0026")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeTxErrBusyChannelCountInAttributeList_33();
+            break;
+        case 34:
+            ChipLogProgress(chipTool, " ***** Test Step 34 : TH reads optional attribute (RxTotalCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A0027")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeRxTotalCountInAttributeList_34();
+            break;
+        case 35:
+            ChipLogProgress(chipTool, " ***** Test Step 35 : TH reads optional attribute (RxUnicastCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A0028")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeRxUnicastCountInAttributeList_35();
+            break;
+        case 36:
+            ChipLogProgress(chipTool, " ***** Test Step 36 : TH reads optional attribute (RxBroadcastCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A0029")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeRxBroadcastCountInAttributeList_36();
+            break;
+        case 37:
+            ChipLogProgress(chipTool, " ***** Test Step 37 : TH reads optional attribute (RxDataCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A002a")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeRxDataCountInAttributeList_37();
+            break;
+        case 38:
+            ChipLogProgress(chipTool, " ***** Test Step 38 : TH reads optional attribute (RxDataPollCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A002b")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeRxDataPollCountInAttributeList_38();
+            break;
+        case 39:
+            ChipLogProgress(chipTool, " ***** Test Step 39 : TH reads optional attribute (RxBeaconCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A002c")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeRxBeaconCountInAttributeList_39();
+            break;
+        case 40:
+            ChipLogProgress(
+                chipTool, " ***** Test Step 40 : TH reads optional attribute (RxBeaconRequestCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A002d")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeRxBeaconRequestCountInAttributeList_40();
+            break;
+        case 41:
+            ChipLogProgress(chipTool, " ***** Test Step 41 : TH reads optional attribute (RxOtherCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A002e")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeRxOtherCountInAttributeList_41();
+            break;
+        case 42:
+            ChipLogProgress(
+                chipTool, " ***** Test Step 42 : TH reads optional attribute (RxAddressFilteredCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A002f")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeRxAddressFilteredCountInAttributeList_42();
+            break;
+        case 43:
+            ChipLogProgress(
+                chipTool, " ***** Test Step 43 : TH reads optional attribute (RxDestAddrFilteredCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A0030")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeRxDestAddrFilteredCountInAttributeList_43();
+            break;
+        case 44:
+            ChipLogProgress(chipTool, " ***** Test Step 44 : TH reads optional attribute (RxDuplicatedCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A0031")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeRxDuplicatedCountInAttributeList_44();
+            break;
+        case 45:
+            ChipLogProgress(chipTool, " ***** Test Step 45 : TH reads optional attribute (RxErrNoFrameCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A0032")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeRxErrNoFrameCountInAttributeList_45();
+            break;
+        case 46:
+            ChipLogProgress(
+                chipTool, " ***** Test Step 46 : TH reads optional attribute (RxErrUnknownNeighborCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A0033")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeRxErrUnknownNeighborCountInAttributeList_46();
+            break;
+        case 47:
+            ChipLogProgress(
+                chipTool, " ***** Test Step 47 : TH reads optional attribute (RxErrInvalidScrAddrCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A0034")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeRxErrInvalidScrAddrCountInAttributeList_47();
+            break;
+        case 48:
+            ChipLogProgress(chipTool, " ***** Test Step 48 : TH reads optional attribute (RxErrSecCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A0035")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeRxErrSecCountInAttributeList_48();
+            break;
+        case 49:
+            ChipLogProgress(chipTool, " ***** Test Step 49 : TH reads optional attribute (RxErrFcsCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A0036")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeRxErrFcsCountInAttributeList_49();
+            break;
+        case 50:
+            ChipLogProgress(chipTool, " ***** Test Step 50 : TH reads optional attribute (RxErrOtherCount) in AttributeList\n");
+            if (ShouldSkip("DGTHREAD.S.A0037")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsOptionalAttributeRxErrOtherCountInAttributeList_50();
+            break;
+        case 51:
+            ChipLogProgress(chipTool, " ***** Test Step 51 : Read the optional attribute (ActiveTimestamp) in AttributeList\n");
             if (ShouldSkip("DGTHREAD.S.A0039")) {
                 NextTest();
                 return;
             }
-            err = TestReadTheOptionalAttributeActiveTimestampInAttributeList_9();
+            err = TestReadTheOptionalAttributeActiveTimestampInAttributeList_51();
             break;
-        case 10:
-            ChipLogProgress(chipTool, " ***** Test Step 10 : Read the optional attribute(PendingTimestamp) in AttributeList\n");
+        case 52:
+            ChipLogProgress(chipTool, " ***** Test Step 52 : Read the optional attribute (PendingTimestamp) in AttributeList\n");
             if (ShouldSkip("DGTHREAD.S.A003A")) {
                 NextTest();
                 return;
             }
-            err = TestReadTheOptionalAttributePendingTimestampInAttributeList_10();
+            err = TestReadTheOptionalAttributePendingTimestampInAttributeList_52();
             break;
-        case 11:
-            ChipLogProgress(chipTool, " ***** Test Step 11 : Read the optional attribute(Delay) in AttributeList\n");
+        case 53:
+            ChipLogProgress(chipTool, " ***** Test Step 53 : Read the optional attribute (Delay) in AttributeList\n");
             if (ShouldSkip("DGTHREAD.S.A003B")) {
                 NextTest();
                 return;
             }
-            err = TestReadTheOptionalAttributeDelayInAttributeList_11();
+            err = TestReadTheOptionalAttributeDelayInAttributeList_53();
             break;
-        case 12:
-            ChipLogProgress(chipTool, " ***** Test Step 12 : TH reads AcceptedCommandList from DUT\n");
-            err = TestThReadsAcceptedCommandListFromDut_12();
+        case 54:
+            ChipLogProgress(chipTool, " ***** Test Step 54 : TH reads AcceptedCommandList from DUT\n");
+            err = TestThReadsAcceptedCommandListFromDut_54();
             break;
-        case 13:
-            ChipLogProgress(chipTool, " ***** Test Step 13 : TH reads GeneratedCommandList from DUT\n");
-            err = TestThReadsGeneratedCommandListFromDut_13();
+        case 55:
+            ChipLogProgress(chipTool, " ***** Test Step 55 : TH reads GeneratedCommandList from DUT\n");
+            err = TestThReadsGeneratedCommandListFromDut_55();
             break;
         }
 
@@ -61260,6 +61517,132 @@
         case 13:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             break;
+        case 14:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 15:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 16:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 17:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 18:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 19:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 20:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 21:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 22:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 23:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 24:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 25:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 26:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 27:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 28:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 29:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 30:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 31:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 32:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 33:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 34:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 35:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 36:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 37:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 38:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 39:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 40:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 41:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 42:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 43:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 44:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 45:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 46:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 47:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 48:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 49:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 50:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 51:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 52:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 53:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 54:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
+        case 55:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
         }
 
         // Go on to the next test.
@@ -61273,7 +61656,7 @@
 
 private:
     std::atomic_uint16_t mTestIndex;
-    const uint16_t mTestCount = 14;
+    const uint16_t mTestCount = 56;
 
     chip::Optional<chip::NodeId> mNodeId;
     chip::Optional<chip::CharSpan> mCluster;
@@ -61491,7 +61874,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestReadTheOptionalAttributeActiveTimestampInAttributeList_9()
+    CHIP_ERROR TestThReadsOptionalAttributeDetachedRoleCountInAttributeList_9()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -61501,7 +61884,973 @@
         VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
 
         [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
-            NSLog(@"Read the optional attribute(ActiveTimestamp) in AttributeList Error: %@", err);
+            NSLog(@"TH reads optional attribute (DetachedRoleCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 14UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeChildRoleCountAttributeList_10()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (ChildRoleCount) AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 15UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeRouterRoleCountInAttributeList_11()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (RouterRoleCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 16UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeLeaderRoleCountInAttributeList_12()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (LeaderRoleCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 17UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeAttachAttemptCountInAttributeList_13()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (AttachAttemptCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 18UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributePartitionIdChangeCountInAttributeList_14()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (PartitionIdChangeCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 19UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeBetterPartitionAttachAttemptCountInAttributeList_15()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (BetterPartitionAttachAttemptCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 20UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeParentChangeCountInAttributeList_16()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (ParentChangeCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 21UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeTxTotalCountInAttributeList_17()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (TxTotalCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 22UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeTxUnicastCountInAttributeList_18()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (TxUnicastCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 23UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeTxBroadcastCountInAttributeList_19()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (TxBroadcastCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 24UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeTxAckRequestedCountInAttributeList_20()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (TxAckRequestedCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 25UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeTxAckedCountInAttributeList_21()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (TxAckedCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 26UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeTxNoAckRequestedCountInAttributeList_22()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (TxNoAckRequestedCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 27UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributesTxDataCountInAttributeList_23()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attributes (TxDataCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 28UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeTxDataPollCountInAttributeList_24()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (TxDataPollCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 29UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeTxBeaconCountInAttributeList_25()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (TxBeaconCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 30UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeTxBeaconRequestCountInAttributeList_26()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (TxBeaconRequestCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 31UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeTxOtherCountInAttributeList_27()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (TxOtherCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 32UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeTxRetryCountInAttributeList_28()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (TxRetryCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 33UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeTxDirectMaxRetryExpiryCountInAttributeList_29()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (TxDirectMaxRetryExpiryCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 34UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeTxIndirectMaxRetryExpiryCountInAttributeList_30()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (TxIndirectMaxRetryExpiryCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 35UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeTxErrCcaCountInAttributeList_31()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (TxErrCcaCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 36UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeTxErrAbortCountInAttributeList_32()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (TxErrAbortCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 37UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeTxErrBusyChannelCountInAttributeList_33()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (TxErrBusyChannelCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 38UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeRxTotalCountInAttributeList_34()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (RxTotalCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 39UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeRxUnicastCountInAttributeList_35()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (RxUnicastCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 40UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeRxBroadcastCountInAttributeList_36()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (RxBroadcastCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 41UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeRxDataCountInAttributeList_37()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (RxDataCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 42UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeRxDataPollCountInAttributeList_38()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (RxDataPollCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 43UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeRxBeaconCountInAttributeList_39()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (RxBeaconCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 44UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeRxBeaconRequestCountInAttributeList_40()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (RxBeaconRequestCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 45UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeRxOtherCountInAttributeList_41()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (RxOtherCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 46UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeRxAddressFilteredCountInAttributeList_42()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (RxAddressFilteredCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 47UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeRxDestAddrFilteredCountInAttributeList_43()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (RxDestAddrFilteredCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 48UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeRxDuplicatedCountInAttributeList_44()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (RxDuplicatedCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 49UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeRxErrNoFrameCountInAttributeList_45()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (RxErrNoFrameCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 50UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeRxErrUnknownNeighborCountInAttributeList_46()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (RxErrUnknownNeighborCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 51UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeRxErrInvalidScrAddrCountInAttributeList_47()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (RxErrInvalidScrAddrCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 52UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeRxErrSecCountInAttributeList_48()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (RxErrSecCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 53UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeRxErrFcsCountInAttributeList_49()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (RxErrFcsCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 54UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsOptionalAttributeRxErrOtherCountInAttributeList_50()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads optional attribute (RxErrOtherCount) in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 55UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestReadTheOptionalAttributeActiveTimestampInAttributeList_51()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterThreadNetworkDiagnostics alloc] initWithDevice:device
+                                                                                      endpoint:@(0)
+                                                                                         queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"Read the optional attribute (ActiveTimestamp) in AttributeList Error: %@", err);
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
@@ -61514,7 +62863,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestReadTheOptionalAttributePendingTimestampInAttributeList_10()
+    CHIP_ERROR TestReadTheOptionalAttributePendingTimestampInAttributeList_52()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -61524,7 +62873,7 @@
         VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
 
         [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
-            NSLog(@"Read the optional attribute(PendingTimestamp) in AttributeList Error: %@", err);
+            NSLog(@"Read the optional attribute (PendingTimestamp) in AttributeList Error: %@", err);
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
@@ -61537,7 +62886,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestReadTheOptionalAttributeDelayInAttributeList_11()
+    CHIP_ERROR TestReadTheOptionalAttributeDelayInAttributeList_53()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -61547,7 +62896,7 @@
         VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
 
         [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
-            NSLog(@"Read the optional attribute(Delay) in AttributeList Error: %@", err);
+            NSLog(@"Read the optional attribute (Delay) in AttributeList Error: %@", err);
 
             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
 
@@ -61560,7 +62909,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThReadsAcceptedCommandListFromDut_12()
+    CHIP_ERROR TestThReadsAcceptedCommandListFromDut_54()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -61583,7 +62932,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThReadsGeneratedCommandListFromDut_13()
+    CHIP_ERROR TestThReadsGeneratedCommandListFromDut_55()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -105714,539 +107063,6 @@
     }
 };
 
-class Test_TC_DGSW_2_1 : public TestCommandBridge {
-public:
-    // NOLINTBEGIN(clang-analyzer-nullability.NullPassedToNonnull): Test constructor nullability not enforced
-    Test_TC_DGSW_2_1()
-        : TestCommandBridge("Test_TC_DGSW_2_1")
-        , mTestIndex(0)
-    {
-        AddArgument("nodeId", 0, UINT64_MAX, &mNodeId);
-        AddArgument("cluster", &mCluster);
-        AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint);
-        AddArgument("timeout", 0, UINT16_MAX, &mTimeout);
-    }
-    // NOLINTEND(clang-analyzer-nullability.NullPassedToNonnull)
-
-    ~Test_TC_DGSW_2_1() {}
-
-    /////////// TestCommand Interface /////////
-    void NextTest() override
-    {
-        CHIP_ERROR err = CHIP_NO_ERROR;
-
-        if (0 == mTestIndex) {
-            ChipLogProgress(chipTool, " **** Test Start: Test_TC_DGSW_2_1\n");
-        }
-
-        if (mTestCount == mTestIndex) {
-            ChipLogProgress(chipTool, " **** Test Complete: Test_TC_DGSW_2_1\n");
-            SetCommandExitStatus(CHIP_NO_ERROR);
-            return;
-        }
-
-        Wait();
-
-        // Ensure we increment mTestIndex before we start running the relevant
-        // command.  That way if we lose the timeslice after we send the message
-        // but before our function call returns, we won't end up with an
-        // incorrect mTestIndex value observed when we get the response.
-        switch (mTestIndex++) {
-        case 0:
-            ChipLogProgress(chipTool, " ***** Test Step 0 : Wait for the commissioned device to be retrieved\n");
-            err = TestWaitForTheCommissionedDeviceToBeRetrieved_0();
-            break;
-        case 1:
-            ChipLogProgress(chipTool, " ***** Test Step 1 : Reads a list of ThreadMetrics struct non-global attribute from DUT.\n");
-            if (ShouldSkip("DGSW.S.A0000")) {
-                NextTest();
-                return;
-            }
-            err = TestReadsAListOfThreadMetricsStructNonGlobalAttributeFromDut_1();
-            break;
-        case 2:
-            ChipLogProgress(chipTool, " ***** Test Step 2 : Reads CurrentHeapFree non-global attribute value from DUT\n");
-            if (ShouldSkip("DGSW.S.A0001")) {
-                NextTest();
-                return;
-            }
-            err = TestReadsCurrentHeapFreeNonGlobalAttributeValueFromDut_2();
-            break;
-        case 3:
-            ChipLogProgress(chipTool, " ***** Test Step 3 : Reads CurrentHeapUsed non-global attribute value from DUT\n");
-            if (ShouldSkip("DGSW.S.A0002")) {
-                NextTest();
-                return;
-            }
-            err = TestReadsCurrentHeapUsedNonGlobalAttributeValueFromDut_3();
-            break;
-        case 4:
-            ChipLogProgress(chipTool, " ***** Test Step 4 : Reads CurrentHeapHighWaterMark non-global attribute value from DUT\n");
-            if (ShouldSkip("DGSW.S.A0003")) {
-                NextTest();
-                return;
-            }
-            err = TestReadsCurrentHeapHighWaterMarkNonGlobalAttributeValueFromDut_4();
-            break;
-        }
-
-        if (CHIP_NO_ERROR != err) {
-            ChipLogError(chipTool, " ***** Test Failure: %s\n", chip::ErrorStr(err));
-            SetCommandExitStatus(err);
-        }
-    }
-
-    void OnStatusUpdate(const chip::app::StatusIB & status) override
-    {
-        switch (mTestIndex - 1) {
-        case 0:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 1:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 2:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 3:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 4:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        }
-
-        // Go on to the next test.
-        ContinueOnChipMainThread(CHIP_NO_ERROR);
-    }
-
-    chip::System::Clock::Timeout GetWaitDuration() const override
-    {
-        return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds));
-    }
-
-private:
-    std::atomic_uint16_t mTestIndex;
-    const uint16_t mTestCount = 5;
-
-    chip::Optional<chip::NodeId> mNodeId;
-    chip::Optional<chip::CharSpan> mCluster;
-    chip::Optional<chip::EndpointId> mEndpoint;
-    chip::Optional<uint16_t> mTimeout;
-
-    CHIP_ERROR TestWaitForTheCommissionedDeviceToBeRetrieved_0()
-    {
-
-        chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value;
-        value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL;
-        return WaitForCommissionee("alpha", value);
-    }
-
-    CHIP_ERROR TestReadsAListOfThreadMetricsStructNonGlobalAttributeFromDut_1()
-    {
-
-        MTRBaseDevice * device = GetDevice("alpha");
-        __auto_type * cluster = [[MTRBaseClusterSoftwareDiagnostics alloc] initWithDevice:device
-                                                                                 endpoint:@(0)
-                                                                                    queue:mCallbackQueue];
-        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
-
-        [cluster readAttributeThreadMetricsWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
-            NSLog(@"Reads a list of ThreadMetrics struct non-global attribute from DUT. Error: %@", err);
-
-            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
-
-            VerifyOrReturn(CheckConstraintType("threadMetrics", "list", "list"));
-            NextTest();
-        }];
-
-        return CHIP_NO_ERROR;
-    }
-
-    CHIP_ERROR TestReadsCurrentHeapFreeNonGlobalAttributeValueFromDut_2()
-    {
-
-        MTRBaseDevice * device = GetDevice("alpha");
-        __auto_type * cluster = [[MTRBaseClusterSoftwareDiagnostics alloc] initWithDevice:device
-                                                                                 endpoint:@(0)
-                                                                                    queue:mCallbackQueue];
-        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
-
-        [cluster readAttributeCurrentHeapFreeWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) {
-            NSLog(@"Reads CurrentHeapFree non-global attribute value from DUT Error: %@", err);
-
-            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
-
-            VerifyOrReturn(CheckConstraintType("currentHeapFree", "int64u", "int64u"));
-            NextTest();
-        }];
-
-        return CHIP_NO_ERROR;
-    }
-
-    CHIP_ERROR TestReadsCurrentHeapUsedNonGlobalAttributeValueFromDut_3()
-    {
-
-        MTRBaseDevice * device = GetDevice("alpha");
-        __auto_type * cluster = [[MTRBaseClusterSoftwareDiagnostics alloc] initWithDevice:device
-                                                                                 endpoint:@(0)
-                                                                                    queue:mCallbackQueue];
-        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
-
-        [cluster readAttributeCurrentHeapUsedWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) {
-            NSLog(@"Reads CurrentHeapUsed non-global attribute value from DUT Error: %@", err);
-
-            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
-
-            VerifyOrReturn(CheckConstraintType("currentHeapUsed", "int64u", "int64u"));
-            NextTest();
-        }];
-
-        return CHIP_NO_ERROR;
-    }
-
-    CHIP_ERROR TestReadsCurrentHeapHighWaterMarkNonGlobalAttributeValueFromDut_4()
-    {
-
-        MTRBaseDevice * device = GetDevice("alpha");
-        __auto_type * cluster = [[MTRBaseClusterSoftwareDiagnostics alloc] initWithDevice:device
-                                                                                 endpoint:@(0)
-                                                                                    queue:mCallbackQueue];
-        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
-
-        [cluster readAttributeCurrentHeapHighWatermarkWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) {
-            NSLog(@"Reads CurrentHeapHighWaterMark non-global attribute value from DUT Error: %@", err);
-
-            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
-
-            VerifyOrReturn(CheckConstraintType("currentHeapHighWatermark", "int64u", "int64u"));
-            NextTest();
-        }];
-
-        return CHIP_NO_ERROR;
-    }
-};
-
-class Test_TC_DGSW_2_2 : public TestCommandBridge {
-public:
-    // NOLINTBEGIN(clang-analyzer-nullability.NullPassedToNonnull): Test constructor nullability not enforced
-    Test_TC_DGSW_2_2()
-        : TestCommandBridge("Test_TC_DGSW_2_2")
-        , mTestIndex(0)
-    {
-        AddArgument("nodeId", 0, UINT64_MAX, &mNodeId);
-        AddArgument("cluster", &mCluster);
-        AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint);
-        AddArgument("timeout", 0, UINT16_MAX, &mTimeout);
-    }
-    // NOLINTEND(clang-analyzer-nullability.NullPassedToNonnull)
-
-    ~Test_TC_DGSW_2_2() {}
-
-    /////////// TestCommand Interface /////////
-    void NextTest() override
-    {
-        CHIP_ERROR err = CHIP_NO_ERROR;
-
-        if (0 == mTestIndex) {
-            ChipLogProgress(chipTool, " **** Test Start: Test_TC_DGSW_2_2\n");
-        }
-
-        if (mTestCount == mTestIndex) {
-            ChipLogProgress(chipTool, " **** Test Complete: Test_TC_DGSW_2_2\n");
-            SetCommandExitStatus(CHIP_NO_ERROR);
-            return;
-        }
-
-        Wait();
-
-        // Ensure we increment mTestIndex before we start running the relevant
-        // command.  That way if we lose the timeslice after we send the message
-        // but before our function call returns, we won't end up with an
-        // incorrect mTestIndex value observed when we get the response.
-        switch (mTestIndex++) {
-        case 0:
-            ChipLogProgress(chipTool, " ***** Test Step 0 : Wait for the commissioned device to be retrieved\n");
-            err = TestWaitForTheCommissionedDeviceToBeRetrieved_0();
-            break;
-        case 1:
-            ChipLogProgress(chipTool,
-                " ***** Test Step 1 : Reads a list of SoftwareFault struct from DUT and data type in each field of the struct must "
-                "match the value listed in spec\n");
-            if (ShouldSkip("PICS_USER_PROMPT && DGSW.S.E00")) {
-                NextTest();
-                return;
-            }
-            err = TestReadsAListOfSoftwareFaultStructFromDutAndDataTypeInEachFieldOfTheStructMustMatchTheValueListedInSpec_1();
-            break;
-        }
-
-        if (CHIP_NO_ERROR != err) {
-            ChipLogError(chipTool, " ***** Test Failure: %s\n", chip::ErrorStr(err));
-            SetCommandExitStatus(err);
-        }
-    }
-
-    void OnStatusUpdate(const chip::app::StatusIB & status) override
-    {
-        switch (mTestIndex - 1) {
-        case 0:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 1:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        }
-
-        // Go on to the next test.
-        ContinueOnChipMainThread(CHIP_NO_ERROR);
-    }
-
-    chip::System::Clock::Timeout GetWaitDuration() const override
-    {
-        return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds));
-    }
-
-private:
-    std::atomic_uint16_t mTestIndex;
-    const uint16_t mTestCount = 2;
-
-    chip::Optional<chip::NodeId> mNodeId;
-    chip::Optional<chip::CharSpan> mCluster;
-    chip::Optional<chip::EndpointId> mEndpoint;
-    chip::Optional<uint16_t> mTimeout;
-
-    CHIP_ERROR TestWaitForTheCommissionedDeviceToBeRetrieved_0()
-    {
-
-        chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value;
-        value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL;
-        return WaitForCommissionee("alpha", value);
-    }
-
-    CHIP_ERROR TestReadsAListOfSoftwareFaultStructFromDutAndDataTypeInEachFieldOfTheStructMustMatchTheValueListedInSpec_1()
-    {
-
-        chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-        value.message = chip::Span<const char>("Please enter '0' for successgarbage: not in length on purpose", 28);
-        value.expectedValue.Emplace();
-        value.expectedValue.Value() = chip::Span<const char>("0garbage: not in length on purpose", 1);
-        return UserPrompt("alpha", value);
-    }
-};
-
-class Test_TC_DGSW_2_3 : public TestCommandBridge {
-public:
-    // NOLINTBEGIN(clang-analyzer-nullability.NullPassedToNonnull): Test constructor nullability not enforced
-    Test_TC_DGSW_2_3()
-        : TestCommandBridge("Test_TC_DGSW_2_3")
-        , mTestIndex(0)
-    {
-        AddArgument("nodeId", 0, UINT64_MAX, &mNodeId);
-        AddArgument("cluster", &mCluster);
-        AddArgument("endpoint", 0, UINT16_MAX, &mEndpoint);
-        AddArgument("timeout", 0, UINT16_MAX, &mTimeout);
-    }
-    // NOLINTEND(clang-analyzer-nullability.NullPassedToNonnull)
-
-    ~Test_TC_DGSW_2_3() {}
-
-    /////////// TestCommand Interface /////////
-    void NextTest() override
-    {
-        CHIP_ERROR err = CHIP_NO_ERROR;
-
-        if (0 == mTestIndex) {
-            ChipLogProgress(chipTool, " **** Test Start: Test_TC_DGSW_2_3\n");
-        }
-
-        if (mTestCount == mTestIndex) {
-            ChipLogProgress(chipTool, " **** Test Complete: Test_TC_DGSW_2_3\n");
-            SetCommandExitStatus(CHIP_NO_ERROR);
-            return;
-        }
-
-        Wait();
-
-        // Ensure we increment mTestIndex before we start running the relevant
-        // command.  That way if we lose the timeslice after we send the message
-        // but before our function call returns, we won't end up with an
-        // incorrect mTestIndex value observed when we get the response.
-        switch (mTestIndex++) {
-        case 0:
-            ChipLogProgress(chipTool, " ***** Test Step 0 : Wait for the commissioned device to be retrieved\n");
-            err = TestWaitForTheCommissionedDeviceToBeRetrieved_0();
-            break;
-        case 1:
-            ChipLogProgress(chipTool, " ***** Test Step 1 : Sends ResetWatermarks to DUT\n");
-            if (ShouldSkip("DGSW.S.C00.Rsp")) {
-                NextTest();
-                return;
-            }
-            err = TestSendsResetWatermarksToDut_1();
-            break;
-        case 2:
-            ChipLogProgress(chipTool, " ***** Test Step 2 : Reads a list of ThreadMetrics struct attribute from DUT.\n");
-            if (ShouldSkip("DGSW.S.A0000 && DGSW.S.C00.Rsp")) {
-                NextTest();
-                return;
-            }
-            err = TestReadsAListOfThreadMetricsStructAttributeFromDut_2();
-            break;
-        case 3:
-            ChipLogProgress(chipTool, " ***** Test Step 3 : Reads CurrentHeapUsed attribute value from DUT\n");
-            if (ShouldSkip("DGSW.S.A0002 && DGSW.S.C00.Rsp")) {
-                NextTest();
-                return;
-            }
-            err = TestReadsCurrentHeapUsedAttributeValueFromDut_3();
-            break;
-        case 4:
-            ChipLogProgress(chipTool, " ***** Test Step 4 : Reads CurrentHeapHighWaterMark attribute value from DUT\n");
-            if (ShouldSkip("DGSW.S.A0003 && DGSW.S.C00.Rsp")) {
-                NextTest();
-                return;
-            }
-            err = TestReadsCurrentHeapHighWaterMarkAttributeValueFromDut_4();
-            break;
-        }
-
-        if (CHIP_NO_ERROR != err) {
-            ChipLogError(chipTool, " ***** Test Failure: %s\n", chip::ErrorStr(err));
-            SetCommandExitStatus(err);
-        }
-    }
-
-    void OnStatusUpdate(const chip::app::StatusIB & status) override
-    {
-        switch (mTestIndex - 1) {
-        case 0:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 1:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 2:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 3:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 4:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        }
-
-        // Go on to the next test.
-        ContinueOnChipMainThread(CHIP_NO_ERROR);
-    }
-
-    chip::System::Clock::Timeout GetWaitDuration() const override
-    {
-        return chip::System::Clock::Seconds16(mTimeout.ValueOr(kTimeoutInSeconds));
-    }
-
-private:
-    std::atomic_uint16_t mTestIndex;
-    const uint16_t mTestCount = 5;
-
-    chip::Optional<chip::NodeId> mNodeId;
-    chip::Optional<chip::CharSpan> mCluster;
-    chip::Optional<chip::EndpointId> mEndpoint;
-    chip::Optional<uint16_t> mTimeout;
-
-    CHIP_ERROR TestWaitForTheCommissionedDeviceToBeRetrieved_0()
-    {
-
-        chip::app::Clusters::DelayCommands::Commands::WaitForCommissionee::Type value;
-        value.nodeId = mNodeId.HasValue() ? mNodeId.Value() : 305414945ULL;
-        return WaitForCommissionee("alpha", value);
-    }
-
-    CHIP_ERROR TestSendsResetWatermarksToDut_1()
-    {
-
-        MTRBaseDevice * device = GetDevice("alpha");
-        __auto_type * cluster = [[MTRBaseClusterSoftwareDiagnostics alloc] initWithDevice:device
-                                                                                 endpoint:@(0)
-                                                                                    queue:mCallbackQueue];
-        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
-
-        [cluster resetWatermarksWithCompletion:^(NSError * _Nullable err) {
-            NSLog(@"Sends ResetWatermarks to DUT Error: %@", err);
-
-            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
-
-            NextTest();
-        }];
-
-        return CHIP_NO_ERROR;
-    }
-
-    CHIP_ERROR TestReadsAListOfThreadMetricsStructAttributeFromDut_2()
-    {
-
-        MTRBaseDevice * device = GetDevice("alpha");
-        __auto_type * cluster = [[MTRBaseClusterSoftwareDiagnostics alloc] initWithDevice:device
-                                                                                 endpoint:@(0)
-                                                                                    queue:mCallbackQueue];
-        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
-
-        [cluster readAttributeThreadMetricsWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
-            NSLog(@"Reads a list of ThreadMetrics struct attribute from DUT. Error: %@", err);
-
-            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
-
-            VerifyOrReturn(CheckConstraintType("threadMetrics", "list", "list"));
-            NextTest();
-        }];
-
-        return CHIP_NO_ERROR;
-    }
-
-    CHIP_ERROR TestReadsCurrentHeapUsedAttributeValueFromDut_3()
-    {
-
-        MTRBaseDevice * device = GetDevice("alpha");
-        __auto_type * cluster = [[MTRBaseClusterSoftwareDiagnostics alloc] initWithDevice:device
-                                                                                 endpoint:@(0)
-                                                                                    queue:mCallbackQueue];
-        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
-
-        [cluster readAttributeCurrentHeapUsedWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) {
-            NSLog(@"Reads CurrentHeapUsed attribute value from DUT Error: %@", err);
-
-            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
-
-            VerifyOrReturn(CheckConstraintType("currentHeapUsed", "int64u", "int64u"));
-            NextTest();
-        }];
-
-        return CHIP_NO_ERROR;
-    }
-
-    CHIP_ERROR TestReadsCurrentHeapHighWaterMarkAttributeValueFromDut_4()
-    {
-
-        MTRBaseDevice * device = GetDevice("alpha");
-        __auto_type * cluster = [[MTRBaseClusterSoftwareDiagnostics alloc] initWithDevice:device
-                                                                                 endpoint:@(0)
-                                                                                    queue:mCallbackQueue];
-        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
-
-        [cluster readAttributeCurrentHeapHighWatermarkWithCompletion:^(NSNumber * _Nullable value, NSError * _Nullable err) {
-            NSLog(@"Reads CurrentHeapHighWaterMark attribute value from DUT Error: %@", err);
-
-            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
-
-            VerifyOrReturn(CheckConstraintType("currentHeapHighWatermark", "int64u", "int64u"));
-            NextTest();
-        }];
-
-        return CHIP_NO_ERROR;
-    }
-};
-
 class TestSubscribe_OnOff : public TestCommandBridge {
 public:
     // NOLINTBEGIN(clang-analyzer-nullability.NullPassedToNonnull): Test constructor nullability not enforced
@@ -120198,240 +121014,248 @@
             err = TestThReadsAttributeListFromDut_13();
             break;
         case 14:
-            ChipLogProgress(chipTool, " ***** Test Step 14 : TH reads Feature dependent(DRLK.S.F08) attributes in AttributeList\n");
+            ChipLogProgress(chipTool, " ***** Test Step 14 : TH reads Feature dependent(DRLK.S.F05) attributes in AttributeList\n");
+            if (ShouldSkip("DRLK.S.F05")) {
+                NextTest();
+                return;
+            }
+            err = TestThReadsFeatureDependentDRLKSF05AttributesInAttributeList_14();
+            break;
+        case 15:
+            ChipLogProgress(chipTool, " ***** Test Step 15 : TH reads Feature dependent(DRLK.S.F08) attributes in AttributeList\n");
             if (ShouldSkip("DRLK.S.F08")) {
                 NextTest();
                 return;
             }
-            err = TestThReadsFeatureDependentDRLKSF08AttributesInAttributeList_14();
+            err = TestThReadsFeatureDependentDRLKSF08AttributesInAttributeList_15();
             break;
-        case 15:
-            ChipLogProgress(chipTool, " ***** Test Step 15 : TH reads Feature dependent(DRLK.S.F00) attributes in AttributeList\n");
+        case 16:
+            ChipLogProgress(chipTool, " ***** Test Step 16 : TH reads Feature dependent(DRLK.S.F00) attributes in AttributeList\n");
             if (ShouldSkip("DRLK.S.F00")) {
                 NextTest();
                 return;
             }
-            err = TestThReadsFeatureDependentDRLKSF00AttributesInAttributeList_15();
+            err = TestThReadsFeatureDependentDRLKSF00AttributesInAttributeList_16();
             break;
-        case 16:
-            ChipLogProgress(chipTool, " ***** Test Step 16 : TH reads Feature dependent(DRLK.S.F01) attributes in AttributeList\n");
+        case 17:
+            ChipLogProgress(chipTool, " ***** Test Step 17 : TH reads Feature dependent(DRLK.S.F01) attributes in AttributeList\n");
             if (ShouldSkip("DRLK.S.F01")) {
                 NextTest();
                 return;
             }
-            err = TestThReadsFeatureDependentDRLKSF01AttributesInAttributeList_16();
+            err = TestThReadsFeatureDependentDRLKSF01AttributesInAttributeList_17();
             break;
-        case 17:
-            ChipLogProgress(chipTool, " ***** Test Step 17 : TH reads Feature dependent(DRLK.S.F04) attribute in AttributeList\n");
+        case 18:
+            ChipLogProgress(chipTool, " ***** Test Step 18 : TH reads Feature dependent(DRLK.S.F04) attribute in AttributeList\n");
             if (ShouldSkip("DRLK.S.F04")) {
                 NextTest();
                 return;
             }
-            err = TestThReadsFeatureDependentDRLKSF04AttributeInAttributeList_17();
+            err = TestThReadsFeatureDependentDRLKSF04AttributeInAttributeList_18();
             break;
-        case 18:
-            ChipLogProgress(chipTool, " ***** Test Step 18 : TH reads Feature dependent(DRLK.S.F0a) attribute in AttributeList\n");
+        case 19:
+            ChipLogProgress(chipTool, " ***** Test Step 19 : TH reads Feature dependent(DRLK.S.F0a) attribute in AttributeList\n");
             if (ShouldSkip("DRLK.S.F0a")) {
                 NextTest();
                 return;
             }
-            err = TestThReadsFeatureDependentDRLKSF0aAttributeInAttributeList_18();
+            err = TestThReadsFeatureDependentDRLKSF0aAttributeInAttributeList_19();
             break;
-        case 19:
-            ChipLogProgress(chipTool, " ***** Test Step 19 : TH reads Feature dependent(DRLK.S.F0b) attribute in AttributeList\n");
+        case 20:
+            ChipLogProgress(chipTool, " ***** Test Step 20 : TH reads Feature dependent(DRLK.S.F0b) attribute in AttributeList\n");
             if (ShouldSkip("DRLK.S.F0b")) {
                 NextTest();
                 return;
             }
-            err = TestThReadsFeatureDependentDRLKSF0bAttributeInAttributeList_19();
+            err = TestThReadsFeatureDependentDRLKSF0bAttributeInAttributeList_20();
             break;
-        case 20:
+        case 21:
             ChipLogProgress(chipTool,
-                " ***** Test Step 20 : TH reads Feature dependent(DRLK.S.F00 or DRLK.S.F01) attributes in AttributeList\n");
+                " ***** Test Step 21 : TH reads Feature dependent(DRLK.S.F00 or DRLK.S.F01) attributes in AttributeList\n");
             if (ShouldSkip("DRLK.S.F00 || DRLK.S.F01")) {
                 NextTest();
                 return;
             }
-            err = TestThReadsFeatureDependentDRLKSF00OrDrlksf01AttributesInAttributeList_20();
+            err = TestThReadsFeatureDependentDRLKSF00OrDrlksf01AttributesInAttributeList_21();
             break;
-        case 21:
+        case 22:
             ChipLogProgress(chipTool,
-                " ***** Test Step 21 : TH reads Feature dependent(DRLK.S.F07 or DRLK.S.F00) attribute in AttributeList\n");
+                " ***** Test Step 22 : TH reads Feature dependent(DRLK.S.F07 or DRLK.S.F00) attribute in AttributeList\n");
             if (ShouldSkip("DRLK.S.F07 || DRLK.S.F00")) {
                 NextTest();
                 return;
             }
-            err = TestThReadsFeatureDependentDRLKSF07OrDrlksf00AttributeInAttributeList_21();
+            err = TestThReadsFeatureDependentDRLKSF07OrDrlksf00AttributeInAttributeList_22();
             break;
-        case 22:
-            ChipLogProgress(chipTool, " ***** Test Step 22 : TH reads optional attribute(Language) in AttributeList\n");
+        case 23:
+            ChipLogProgress(chipTool, " ***** Test Step 23 : TH reads optional attribute(Language) in AttributeList\n");
             if (ShouldSkip("DRLK.S.A0021")) {
                 NextTest();
                 return;
             }
-            err = TestThReadsOptionalAttributeLanguageInAttributeList_22();
+            err = TestThReadsOptionalAttributeLanguageInAttributeList_23();
             break;
-        case 23:
-            ChipLogProgress(chipTool, " ***** Test Step 23 : TH reads optional attribute(LEDSettings) in AttributeList\n");
+        case 24:
+            ChipLogProgress(chipTool, " ***** Test Step 24 : TH reads optional attribute(LEDSettings) in AttributeList\n");
             if (ShouldSkip("DRLK.S.A0022")) {
                 NextTest();
                 return;
             }
-            err = TestThReadsOptionalAttributeLEDSettingsInAttributeList_23();
+            err = TestThReadsOptionalAttributeLEDSettingsInAttributeList_24();
             break;
-        case 24:
-            ChipLogProgress(chipTool, " ***** Test Step 24 : TH reads optional attribute(AutoRelockTime) in AttributeList\n");
+        case 25:
+            ChipLogProgress(chipTool, " ***** Test Step 25 : TH reads optional attribute(AutoRelockTime) in AttributeList\n");
             if (ShouldSkip("DRLK.S.A0023")) {
                 NextTest();
                 return;
             }
-            err = TestThReadsOptionalAttributeAutoRelockTimeInAttributeList_24();
+            err = TestThReadsOptionalAttributeAutoRelockTimeInAttributeList_25();
             break;
-        case 25:
-            ChipLogProgress(chipTool, " ***** Test Step 25 : TH reads optional attribute(SoundVolume) in AttributeList\n");
+        case 26:
+            ChipLogProgress(chipTool, " ***** Test Step 26 : TH reads optional attribute(SoundVolume) in AttributeList\n");
             if (ShouldSkip("DRLK.S.A0024")) {
                 NextTest();
                 return;
             }
-            err = TestThReadsOptionalAttributeSoundVolumeInAttributeList_25();
+            err = TestThReadsOptionalAttributeSoundVolumeInAttributeList_26();
             break;
-        case 26:
+        case 27:
             ChipLogProgress(
-                chipTool, " ***** Test Step 26 : TH reads optional attribute(DefaultConfigurationRegister) in AttributeList\n");
+                chipTool, " ***** Test Step 27 : TH reads optional attribute(DefaultConfigurationRegister) in AttributeList\n");
             if (ShouldSkip("DRLK.S.A0027")) {
                 NextTest();
                 return;
             }
-            err = TestThReadsOptionalAttributeDefaultConfigurationRegisterInAttributeList_26();
+            err = TestThReadsOptionalAttributeDefaultConfigurationRegisterInAttributeList_27();
             break;
-        case 27:
+        case 28:
             ChipLogProgress(
-                chipTool, " ***** Test Step 27 : TH reads optional attribute(EnableLocalProgramming) in AttributeList\n");
+                chipTool, " ***** Test Step 28 : TH reads optional attribute(EnableLocalProgramming) in AttributeList\n");
             if (ShouldSkip("DRLK.S.A0028")) {
                 NextTest();
                 return;
             }
-            err = TestThReadsOptionalAttributeEnableLocalProgrammingInAttributeList_27();
+            err = TestThReadsOptionalAttributeEnableLocalProgrammingInAttributeList_28();
             break;
-        case 28:
+        case 29:
             ChipLogProgress(
-                chipTool, " ***** Test Step 28 : TH reads optional attribute(EnableOneTouchLocking) in AttributeList\n");
+                chipTool, " ***** Test Step 29 : TH reads optional attribute(EnableOneTouchLocking) in AttributeList\n");
             if (ShouldSkip("DRLK.S.A0029")) {
                 NextTest();
                 return;
             }
-            err = TestThReadsOptionalAttributeEnableOneTouchLockingInAttributeList_28();
+            err = TestThReadsOptionalAttributeEnableOneTouchLockingInAttributeList_29();
             break;
-        case 29:
+        case 30:
             ChipLogProgress(
-                chipTool, " ***** Test Step 29 : TH reads optional attribute(EnableInsideStatusLED) in AttributeList\n");
+                chipTool, " ***** Test Step 30 : TH reads optional attribute(EnableInsideStatusLED) in AttributeList\n");
             if (ShouldSkip("DRLK.S.A002a")) {
                 NextTest();
                 return;
             }
-            err = TestThReadsOptionalAttributeEnableInsideStatusLEDInAttributeList_29();
+            err = TestThReadsOptionalAttributeEnableInsideStatusLEDInAttributeList_30();
             break;
-        case 30:
+        case 31:
             ChipLogProgress(
-                chipTool, " ***** Test Step 30 : TH reads optional attribute(EnablePrivacyModeButton) in AttributeList\n");
+                chipTool, " ***** Test Step 31 : TH reads optional attribute(EnablePrivacyModeButton) in AttributeList\n");
             if (ShouldSkip("DRLK.S.A002b")) {
                 NextTest();
                 return;
             }
-            err = TestThReadsOptionalAttributeEnablePrivacyModeButtonInAttributeList_30();
+            err = TestThReadsOptionalAttributeEnablePrivacyModeButtonInAttributeList_31();
             break;
-        case 31:
+        case 32:
             ChipLogProgress(
-                chipTool, " ***** Test Step 31 : TH reads optional attribute(LocalProgrammingFeatures) in AttributeList\n");
+                chipTool, " ***** Test Step 32 : TH reads optional attribute(LocalProgrammingFeatures) in AttributeList\n");
             if (ShouldSkip("DRLK.S.A002c")) {
                 NextTest();
                 return;
             }
-            err = TestThReadsOptionalAttributeLocalProgrammingFeaturesInAttributeList_31();
-            break;
-        case 32:
-            ChipLogProgress(chipTool, " ***** Test Step 32 : TH reads AcceptedCommandList from DUT\n");
-            err = TestThReadsAcceptedCommandListFromDut_32();
+            err = TestThReadsOptionalAttributeLocalProgrammingFeaturesInAttributeList_32();
             break;
         case 33:
+            ChipLogProgress(chipTool, " ***** Test Step 33 : TH reads AcceptedCommandList from DUT\n");
+            err = TestThReadsAcceptedCommandListFromDut_33();
+            break;
+        case 34:
             ChipLogProgress(
-                chipTool, " ***** Test Step 33 : TH reads Feature dependent commands(DRLK.S.F04) in AcceptedCommandList\n");
+                chipTool, " ***** Test Step 34 : TH reads Feature dependent commands(DRLK.S.F04) in AcceptedCommandList\n");
             if (ShouldSkip("DRLK.S.F04")) {
                 NextTest();
                 return;
             }
-            err = TestThReadsFeatureDependentCommandsDRLKSF04InAcceptedCommandList_33();
+            err = TestThReadsFeatureDependentCommandsDRLKSF04InAcceptedCommandList_34();
             break;
-        case 34:
+        case 35:
             ChipLogProgress(
-                chipTool, " ***** Test Step 34 : TH reads Feature dependent commands(DRLK.S.F0a) in AcceptedCommandList\n");
+                chipTool, " ***** Test Step 35 : TH reads Feature dependent commands(DRLK.S.F0a) in AcceptedCommandList\n");
             if (ShouldSkip("DRLK.S.F0a")) {
                 NextTest();
                 return;
             }
-            err = TestThReadsFeatureDependentCommandsDRLKSF0aInAcceptedCommandList_34();
+            err = TestThReadsFeatureDependentCommandsDRLKSF0aInAcceptedCommandList_35();
             break;
-        case 35:
+        case 36:
             ChipLogProgress(
-                chipTool, " ***** Test Step 35 : TH reads Feature dependent commands(DRLK.S.F0b) in AcceptedCommandList\n");
+                chipTool, " ***** Test Step 36 : TH reads Feature dependent commands(DRLK.S.F0b) in AcceptedCommandList\n");
             if (ShouldSkip("DRLK.S.F0b")) {
                 NextTest();
                 return;
             }
-            err = TestThReadsFeatureDependentCommandsDRLKSF0bInAcceptedCommandList_35();
+            err = TestThReadsFeatureDependentCommandsDRLKSF0bInAcceptedCommandList_36();
             break;
-        case 36:
+        case 37:
             ChipLogProgress(
-                chipTool, " ***** Test Step 36 : TH reads Feature dependent commands(DRLK.S.F08) in AcceptedCommandList\n");
+                chipTool, " ***** Test Step 37 : TH reads Feature dependent commands(DRLK.S.F08) in AcceptedCommandList\n");
             if (ShouldSkip("DRLK.S.F08")) {
                 NextTest();
                 return;
             }
-            err = TestThReadsFeatureDependentCommandsDRLKSF08InAcceptedCommandList_36();
+            err = TestThReadsFeatureDependentCommandsDRLKSF08InAcceptedCommandList_37();
             break;
-        case 37:
-            ChipLogProgress(chipTool, " ***** Test Step 37 : TH reads optional commands(DRLK.S.C03.Rsp) in AcceptedCommandList\n");
+        case 38:
+            ChipLogProgress(chipTool, " ***** Test Step 38 : TH reads optional commands(DRLK.S.C03.Rsp) in AcceptedCommandList\n");
             if (ShouldSkip("DRLK.S.C03.Rsp")) {
                 NextTest();
                 return;
             }
-            err = TestThReadsOptionalCommandsDRLKSC03RspInAcceptedCommandList_37();
+            err = TestThReadsOptionalCommandsDRLKSC03RspInAcceptedCommandList_38();
             break;
-        case 38:
+        case 39:
             ChipLogProgress(
-                chipTool, " ***** Test Step 38 : TH reads Feature dependent command(DRLK.S.F04) in GeneratedCommandList\n");
+                chipTool, " ***** Test Step 39 : TH reads Feature dependent command(DRLK.S.F04) in GeneratedCommandList\n");
             if (ShouldSkip("DRLK.S.F04")) {
                 NextTest();
                 return;
             }
-            err = TestThReadsFeatureDependentCommandDRLKSF04InGeneratedCommandList_38();
+            err = TestThReadsFeatureDependentCommandDRLKSF04InGeneratedCommandList_39();
             break;
-        case 39:
+        case 40:
             ChipLogProgress(
-                chipTool, " ***** Test Step 39 : TH reads Feature dependent command(DRLK.S.F0a) in GeneratedCommandList\n");
+                chipTool, " ***** Test Step 40 : TH reads Feature dependent command(DRLK.S.F0a) in GeneratedCommandList\n");
             if (ShouldSkip("DRLK.S.F0a")) {
                 NextTest();
                 return;
             }
-            err = TestThReadsFeatureDependentCommandDRLKSF0aInGeneratedCommandList_39();
+            err = TestThReadsFeatureDependentCommandDRLKSF0aInGeneratedCommandList_40();
             break;
-        case 40:
+        case 41:
             ChipLogProgress(
-                chipTool, " ***** Test Step 40 : TH reads Feature dependent command(DRLK.S.F0b) in GeneratedCommandList\n");
+                chipTool, " ***** Test Step 41 : TH reads Feature dependent command(DRLK.S.F0b) in GeneratedCommandList\n");
             if (ShouldSkip("DRLK.S.F0b")) {
                 NextTest();
                 return;
             }
-            err = TestThReadsFeatureDependentCommandDRLKSF0bInGeneratedCommandList_40();
+            err = TestThReadsFeatureDependentCommandDRLKSF0bInGeneratedCommandList_41();
             break;
-        case 41:
+        case 42:
             ChipLogProgress(
-                chipTool, " ***** Test Step 41 : TH reads Feature dependent command(DRLK.S.F08) in GeneratedCommandList\n");
+                chipTool, " ***** Test Step 42 : TH reads Feature dependent command(DRLK.S.F08) in GeneratedCommandList\n");
             if (ShouldSkip("DRLK.S.F08")) {
                 NextTest();
                 return;
             }
-            err = TestThReadsFeatureDependentCommandDRLKSF08InGeneratedCommandList_41();
+            err = TestThReadsFeatureDependentCommandDRLKSF08InGeneratedCommandList_42();
             break;
         }
 
@@ -120570,6 +121394,9 @@
         case 41:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             break;
+        case 42:
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            break;
         }
 
         // Go on to the next test.
@@ -120583,7 +121410,7 @@
 
 private:
     std::atomic_uint16_t mTestIndex;
-    const uint16_t mTestCount = 42;
+    const uint16_t mTestCount = 43;
 
     chip::Optional<chip::NodeId> mNodeId;
     chip::Optional<chip::CharSpan> mCluster;
@@ -120866,7 +121693,28 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThReadsFeatureDependentDRLKSF08AttributesInAttributeList_14()
+    CHIP_ERROR TestThReadsFeatureDependentDRLKSF05AttributesInAttributeList_14()
+    {
+
+        MTRBaseDevice * device = GetDevice("alpha");
+        __auto_type * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:@(1) queue:mCallbackQueue];
+        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
+
+        [cluster readAttributeAttributeListWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable err) {
+            NSLog(@"TH reads Feature dependent(DRLK.S.F05) attributes in AttributeList Error: %@", err);
+
+            VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
+
+            VerifyOrReturn(CheckConstraintType("attributeList", "list", "list"));
+            VerifyOrReturn(CheckConstraintContains("attributeList", value, 3UL));
+
+            NextTest();
+        }];
+
+        return CHIP_NO_ERROR;
+    }
+
+    CHIP_ERROR TestThReadsFeatureDependentDRLKSF08AttributesInAttributeList_15()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -120889,7 +121737,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThReadsFeatureDependentDRLKSF00AttributesInAttributeList_15()
+    CHIP_ERROR TestThReadsFeatureDependentDRLKSF00AttributesInAttributeList_16()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -120912,7 +121760,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThReadsFeatureDependentDRLKSF01AttributesInAttributeList_16()
+    CHIP_ERROR TestThReadsFeatureDependentDRLKSF01AttributesInAttributeList_17()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -120935,7 +121783,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThReadsFeatureDependentDRLKSF04AttributeInAttributeList_17()
+    CHIP_ERROR TestThReadsFeatureDependentDRLKSF04AttributeInAttributeList_18()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -120956,7 +121804,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThReadsFeatureDependentDRLKSF0aAttributeInAttributeList_18()
+    CHIP_ERROR TestThReadsFeatureDependentDRLKSF0aAttributeInAttributeList_19()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -120977,7 +121825,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThReadsFeatureDependentDRLKSF0bAttributeInAttributeList_19()
+    CHIP_ERROR TestThReadsFeatureDependentDRLKSF0bAttributeInAttributeList_20()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -120998,7 +121846,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThReadsFeatureDependentDRLKSF00OrDrlksf01AttributesInAttributeList_20()
+    CHIP_ERROR TestThReadsFeatureDependentDRLKSF00OrDrlksf01AttributesInAttributeList_21()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -121020,7 +121868,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThReadsFeatureDependentDRLKSF07OrDrlksf00AttributeInAttributeList_21()
+    CHIP_ERROR TestThReadsFeatureDependentDRLKSF07OrDrlksf00AttributeInAttributeList_22()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -121041,7 +121889,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThReadsOptionalAttributeLanguageInAttributeList_22()
+    CHIP_ERROR TestThReadsOptionalAttributeLanguageInAttributeList_23()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -121062,7 +121910,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThReadsOptionalAttributeLEDSettingsInAttributeList_23()
+    CHIP_ERROR TestThReadsOptionalAttributeLEDSettingsInAttributeList_24()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -121083,7 +121931,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThReadsOptionalAttributeAutoRelockTimeInAttributeList_24()
+    CHIP_ERROR TestThReadsOptionalAttributeAutoRelockTimeInAttributeList_25()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -121104,7 +121952,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThReadsOptionalAttributeSoundVolumeInAttributeList_25()
+    CHIP_ERROR TestThReadsOptionalAttributeSoundVolumeInAttributeList_26()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -121125,7 +121973,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThReadsOptionalAttributeDefaultConfigurationRegisterInAttributeList_26()
+    CHIP_ERROR TestThReadsOptionalAttributeDefaultConfigurationRegisterInAttributeList_27()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -121146,7 +121994,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThReadsOptionalAttributeEnableLocalProgrammingInAttributeList_27()
+    CHIP_ERROR TestThReadsOptionalAttributeEnableLocalProgrammingInAttributeList_28()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -121167,7 +122015,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThReadsOptionalAttributeEnableOneTouchLockingInAttributeList_28()
+    CHIP_ERROR TestThReadsOptionalAttributeEnableOneTouchLockingInAttributeList_29()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -121188,7 +122036,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThReadsOptionalAttributeEnableInsideStatusLEDInAttributeList_29()
+    CHIP_ERROR TestThReadsOptionalAttributeEnableInsideStatusLEDInAttributeList_30()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -121209,7 +122057,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThReadsOptionalAttributeEnablePrivacyModeButtonInAttributeList_30()
+    CHIP_ERROR TestThReadsOptionalAttributeEnablePrivacyModeButtonInAttributeList_31()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -121230,7 +122078,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThReadsOptionalAttributeLocalProgrammingFeaturesInAttributeList_31()
+    CHIP_ERROR TestThReadsOptionalAttributeLocalProgrammingFeaturesInAttributeList_32()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -121251,7 +122099,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThReadsAcceptedCommandListFromDut_32()
+    CHIP_ERROR TestThReadsAcceptedCommandListFromDut_33()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -121273,7 +122121,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThReadsFeatureDependentCommandsDRLKSF04InAcceptedCommandList_33()
+    CHIP_ERROR TestThReadsFeatureDependentCommandsDRLKSF04InAcceptedCommandList_34()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -121296,7 +122144,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThReadsFeatureDependentCommandsDRLKSF0aInAcceptedCommandList_34()
+    CHIP_ERROR TestThReadsFeatureDependentCommandsDRLKSF0aInAcceptedCommandList_35()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -121319,7 +122167,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThReadsFeatureDependentCommandsDRLKSF0bInAcceptedCommandList_35()
+    CHIP_ERROR TestThReadsFeatureDependentCommandsDRLKSF0bInAcceptedCommandList_36()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -121342,7 +122190,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThReadsFeatureDependentCommandsDRLKSF08InAcceptedCommandList_36()
+    CHIP_ERROR TestThReadsFeatureDependentCommandsDRLKSF08InAcceptedCommandList_37()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -121368,7 +122216,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThReadsOptionalCommandsDRLKSC03RspInAcceptedCommandList_37()
+    CHIP_ERROR TestThReadsOptionalCommandsDRLKSC03RspInAcceptedCommandList_38()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -121389,7 +122237,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThReadsFeatureDependentCommandDRLKSF04InGeneratedCommandList_38()
+    CHIP_ERROR TestThReadsFeatureDependentCommandDRLKSF04InGeneratedCommandList_39()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -121410,7 +122258,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThReadsFeatureDependentCommandDRLKSF0aInGeneratedCommandList_39()
+    CHIP_ERROR TestThReadsFeatureDependentCommandDRLKSF0aInGeneratedCommandList_40()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -121431,7 +122279,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThReadsFeatureDependentCommandDRLKSF0bInGeneratedCommandList_40()
+    CHIP_ERROR TestThReadsFeatureDependentCommandDRLKSF0bInGeneratedCommandList_41()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -121452,7 +122300,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThReadsFeatureDependentCommandDRLKSF08InGeneratedCommandList_41()
+    CHIP_ERROR TestThReadsFeatureDependentCommandDRLKSF08InGeneratedCommandList_42()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -121467,6 +122315,7 @@
             VerifyOrReturn(CheckConstraintType("generatedCommandList", "list", "list"));
             VerifyOrReturn(CheckConstraintContains("generatedCommandList", value, 28UL));
             VerifyOrReturn(CheckConstraintContains("generatedCommandList", value, 35UL));
+            VerifyOrReturn(CheckConstraintContains("generatedCommandList", value, 37UL));
 
             NextTest();
         }];
@@ -125614,8 +126463,8 @@
         VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
 
         __auto_type * params = [[MTRDoorLockClusterGetYearDayScheduleParams alloc] init];
-        params.yearDayIndex = [NSNumber numberWithUnsignedChar:2U];
-        params.userIndex = [NSNumber numberWithUnsignedShort:21U];
+        params.yearDayIndex = [NSNumber numberWithUnsignedChar:0U];
+        params.userIndex = [NSNumber numberWithUnsignedShort:15U];
         [cluster getYearDayScheduleWithParams:params
                                    completion:^(MTRDoorLockClusterGetYearDayScheduleResponseParams * _Nullable values,
                                        NSError * _Nullable err) {
@@ -125625,12 +126474,12 @@
 
                                        {
                                            id actualValue = values.yearDayIndex;
-                                           VerifyOrReturn(CheckValue("yearDayIndex", actualValue, 2U));
+                                           VerifyOrReturn(CheckValue("yearDayIndex", actualValue, 0U));
                                        }
 
                                        {
                                            id actualValue = values.userIndex;
-                                           VerifyOrReturn(CheckValue("userIndex", actualValue, 21U));
+                                           VerifyOrReturn(CheckValue("userIndex", actualValue, 15U));
                                        }
 
                                        {
@@ -126034,12 +126883,14 @@
             err = TestThSendsSetCredentialCommandToDut_7();
             break;
         case 8:
-            ChipLogProgress(chipTool, " ***** Test Step 8 : TH sends Set Credential Command to DUT\n");
-            if (ShouldSkip("DRLK.S.F08 && DRLK.S.C22.Rsp && DRLK.S.C23.Tx")) {
+            ChipLogProgress(chipTool,
+                " ***** Test Step 8 : TH sends Set Credential Command to DUT and Verify that the DUT sends Set Credential Response "
+                "command with status as DUPLICATE or OCCUPIED\n");
+            if (ShouldSkip("PICS_USER_PROMPT && DRLK.S.F08 && DRLK.S.C22.Rsp && DRLK.S.C23.Tx")) {
                 NextTest();
                 return;
             }
-            err = TestThSendsSetCredentialCommandToDut_8();
+            err = TestThSendsSetCredentialCommandToDutAndVerifyThatTheDutSendsSetCredentialResponseCommandWithStatusAsDuplicateOrOccupied_8();
             break;
         case 9:
             ChipLogProgress(chipTool,
@@ -126052,72 +126903,70 @@
             err = TestThSendsSetCredentialCommandToDutAndVerifyThatTheDutSendsSetCredentialResponseCommandWithResponseAsOccupiedIfTheCredentialIndexIsRepeated_9();
             break;
         case 10:
-            ChipLogProgress(chipTool, " ***** Test Step 10 : TH sends Set Credential Command to DUT\n");
-            if (ShouldSkip("DRLK.S.F08 && DRLK.S.C22.Rsp && DRLK.S.C23.Tx")) {
+            ChipLogProgress(chipTool,
+                " ***** Test Step 10 : TH sends Set Credential Command to DUT and Verify that the DUT sends Set Credential "
+                "Response command with response as OCCUPIED if the CredentialIndex is repeated\n");
+            if (ShouldSkip("PICS_USER_PROMPT && DRLK.S.F08 && DRLK.S.C22.Rsp && DRLK.S.C23.Tx")) {
                 NextTest();
                 return;
             }
-            err = TestThSendsSetCredentialCommandToDut_10();
+            err = TestThSendsSetCredentialCommandToDutAndVerifyThatTheDutSendsSetCredentialResponseCommandWithResponseAsOccupiedIfTheCredentialIndexIsRepeated_10();
             break;
         case 11:
-            ChipLogProgress(chipTool,
-                " ***** Test Step 11 : TH sends Set Credential Command to DUT and Verify that the DUT sends Set Credential "
-                "Response command with response as OCCUPIED if the CredentialIndex is repeated\n");
-            if (ShouldSkip("PICS_USER_PROMPT && DRLK.S.F08 && DRLK.S.C22.Rsp && DRLK.S.C23.Tx")) {
-                NextTest();
-                return;
-            }
-            err = TestThSendsSetCredentialCommandToDutAndVerifyThatTheDutSendsSetCredentialResponseCommandWithResponseAsOccupiedIfTheCredentialIndexIsRepeated_11();
-            break;
-        case 12:
-            ChipLogProgress(chipTool, " ***** Test Step 12 : TH sends Set Credential Command to DUT\n");
-            if (ShouldSkip("DRLK.S.F08 && DRLK.S.C22.Rsp && DRLK.S.C23.Tx")) {
-                NextTest();
-                return;
-            }
-            err = TestThSendsSetCredentialCommandToDut_12();
-            break;
-        case 13:
-            ChipLogProgress(chipTool,
-                " ***** Test Step 13 : TH sends Set Credential Command to DUT and Verify that the DUT sends Set Credential "
-                "Response command with response as OCCUPIED if the CredentialIndex is repeated\n");
-            if (ShouldSkip("PICS_USER_PROMPT && DRLK.S.F08 && DRLK.S.C22.Rsp && DRLK.S.C23.Tx")) {
-                NextTest();
-                return;
-            }
-            err = TestThSendsSetCredentialCommandToDutAndVerifyThatTheDutSendsSetCredentialResponseCommandWithResponseAsOccupiedIfTheCredentialIndexIsRepeated_13();
-            break;
-        case 14:
-            ChipLogProgress(chipTool, " ***** Test Step 14 : TH sends Clear Credential Command to DUT\n");
+            ChipLogProgress(chipTool, " ***** Test Step 11 : TH sends Clear Credential Command to DUT\n");
             if (ShouldSkip("DRLK.S.F08 && DRLK.S.C26.Rsp")) {
                 NextTest();
                 return;
             }
-            err = TestThSendsClearCredentialCommandToDut_14();
+            err = TestThSendsClearCredentialCommandToDut_11();
             break;
-        case 15:
-            ChipLogProgress(chipTool, " ***** Test Step 15 : TH sends Get Credential Status Command to DUT\n");
+        case 12:
+            ChipLogProgress(chipTool, " ***** Test Step 12 : TH sends Get Credential Status Command to DUT\n");
             if (ShouldSkip("DRLK.S.F08 && DRLK.S.C24.Rsp && DRLK.S.C25.Tx")) {
                 NextTest();
                 return;
             }
-            err = TestThSendsGetCredentialStatusCommandToDut_15();
+            err = TestThSendsGetCredentialStatusCommandToDut_12();
             break;
-        case 16:
-            ChipLogProgress(chipTool, " ***** Test Step 16 : TH sends Set User Command to DUT\n");
+        case 13:
+            ChipLogProgress(chipTool, " ***** Test Step 13 : TH sends Set User Command to DUT\n");
             if (ShouldSkip("DRLK.S.F08 && DRLK.S.C1a.Rsp")) {
                 NextTest();
                 return;
             }
-            err = TestThSendsSetUserCommandToDut_16();
+            err = TestThSendsSetUserCommandToDut_13();
             break;
-        case 17:
-            ChipLogProgress(chipTool, " ***** Test Step 17 : TH sends Set Credential Command to DUT\n");
+        case 14:
+            ChipLogProgress(chipTool, " ***** Test Step 14 : TH sends Set Credential Command to DUT\n");
             if (ShouldSkip("DRLK.S.F08 && DRLK.S.C22.Rsp && DRLK.S.C23.Tx")) {
                 NextTest();
                 return;
             }
-            err = TestThSendsSetCredentialCommandToDut_17();
+            err = TestThSendsSetCredentialCommandToDut_14();
+            break;
+        case 15:
+            ChipLogProgress(chipTool, " ***** Test Step 15 : TH sends Clear Credential Command to DUT\n");
+            if (ShouldSkip("DRLK.S.F08 && DRLK.S.C26.Rsp")) {
+                NextTest();
+                return;
+            }
+            err = TestThSendsClearCredentialCommandToDut_15();
+            break;
+        case 16:
+            ChipLogProgress(chipTool, " ***** Test Step 16 : TH sends Get Credential Status Command\n");
+            if (ShouldSkip("DRLK.S.F08 && DRLK.S.C24.Rsp && DRLK.S.C25.Tx")) {
+                NextTest();
+                return;
+            }
+            err = TestThSendsGetCredentialStatusCommand_16();
+            break;
+        case 17:
+            ChipLogProgress(chipTool, " ***** Test Step 17 : TH sends Get Credential Status Command\n");
+            if (ShouldSkip("DRLK.S.F08 && DRLK.S.C24.Rsp && DRLK.S.C25.Tx")) {
+                NextTest();
+                return;
+            }
+            err = TestThSendsGetCredentialStatusCommand_17();
             break;
         case 18:
             ChipLogProgress(chipTool, " ***** Test Step 18 : TH sends Clear Credential Command to DUT\n");
@@ -126128,36 +126977,12 @@
             err = TestThSendsClearCredentialCommandToDut_18();
             break;
         case 19:
-            ChipLogProgress(chipTool, " ***** Test Step 19 : TH sends Get Credential Status Command\n");
-            if (ShouldSkip("DRLK.S.F08 && DRLK.S.C24.Rsp && DRLK.S.C25.Tx")) {
-                NextTest();
-                return;
-            }
-            err = TestThSendsGetCredentialStatusCommand_19();
+            ChipLogProgress(chipTool, " ***** Test Step 19 : Cleanup the first created user\n");
+            err = TestCleanupTheFirstCreatedUser_19();
             break;
         case 20:
-            ChipLogProgress(chipTool, " ***** Test Step 20 : TH sends Get Credential Status Command\n");
-            if (ShouldSkip("DRLK.S.F08 && DRLK.S.C24.Rsp && DRLK.S.C25.Tx")) {
-                NextTest();
-                return;
-            }
-            err = TestThSendsGetCredentialStatusCommand_20();
-            break;
-        case 21:
-            ChipLogProgress(chipTool, " ***** Test Step 21 : TH sends Clear Credential Command to DUT\n");
-            if (ShouldSkip("DRLK.S.F08 && DRLK.S.C26.Rsp")) {
-                NextTest();
-                return;
-            }
-            err = TestThSendsClearCredentialCommandToDut_21();
-            break;
-        case 22:
-            ChipLogProgress(chipTool, " ***** Test Step 22 : Cleanup the first created user\n");
-            err = TestCleanupTheFirstCreatedUser_22();
-            break;
-        case 23:
-            ChipLogProgress(chipTool, " ***** Test Step 23 : Cleanup the second created user\n");
-            err = TestCleanupTheSecondCreatedUser_23();
+            ChipLogProgress(chipTool, " ***** Test Step 20 : Cleanup the second created user\n");
+            err = TestCleanupTheSecondCreatedUser_20();
             break;
         }
 
@@ -126225,7 +127050,7 @@
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             break;
         case 18:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
+            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_INVALID_COMMAND));
             break;
         case 19:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
@@ -126233,15 +127058,6 @@
         case 20:
             VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
             break;
-        case 21:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), EMBER_ZCL_STATUS_INVALID_COMMAND));
-            break;
-        case 22:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
-        case 23:
-            VerifyOrReturn(CheckValue("status", chip::to_underlying(status.mStatus), 0));
-            break;
         }
 
         // Go on to the next test.
@@ -126255,7 +127071,7 @@
 
 private:
     std::atomic_uint16_t mTestIndex;
-    const uint16_t mTestCount = 24;
+    const uint16_t mTestCount = 21;
 
     chip::Optional<chip::NodeId> mNodeId;
     chip::Optional<chip::CharSpan> mCluster;
@@ -126587,50 +127403,15 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThSendsSetCredentialCommandToDut_8()
+    CHIP_ERROR
+    TestThSendsSetCredentialCommandToDutAndVerifyThatTheDutSendsSetCredentialResponseCommandWithStatusAsDuplicateOrOccupied_8()
     {
 
-        MTRBaseDevice * device = GetDevice("alpha");
-        __auto_type * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:@(1) queue:mCallbackQueue];
-        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
-
-        __auto_type * params = [[MTRDoorLockClusterSetCredentialParams alloc] init];
-        params.operationType = [NSNumber numberWithUnsignedChar:0U];
-        params.credential = [[MTRDoorLockClusterDlCredential alloc] init];
-        ((MTRDoorLockClusterDlCredential *) params.credential).credentialType = [NSNumber numberWithUnsignedChar:1U];
-        ((MTRDoorLockClusterDlCredential *) params.credential).credentialIndex = [NSNumber numberWithUnsignedShort:1U];
-
-        params.credentialData = [[NSData alloc] initWithBytes:"123456" length:6];
-        params.userIndex = [NSNumber numberWithUnsignedShort:1U];
-        params.userStatus = nil;
-        params.userType = nil;
-        [cluster
-            setCredentialWithParams:params
-                         completion:^(MTRDoorLockClusterSetCredentialResponseParams * _Nullable values, NSError * _Nullable err) {
-                             NSLog(@"TH sends Set Credential Command to DUT Error: %@", err);
-
-                             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
-
-                             {
-                                 id actualValue = values.status;
-                                 VerifyOrReturn(CheckValue("status", actualValue, 2U));
-                             }
-
-                             {
-                                 id actualValue = values.userIndex;
-                                 VerifyOrReturn(CheckValueNull("userIndex", actualValue));
-                             }
-
-                             {
-                                 id actualValue = values.nextCredentialIndex;
-                                 VerifyOrReturn(CheckValueNonNull("nextCredentialIndex", actualValue));
-                                 VerifyOrReturn(CheckValue("nextCredentialIndex", actualValue, 2U));
-                             }
-
-                             NextTest();
-                         }];
-
-        return CHIP_NO_ERROR;
+        chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
+        value.message = chip::Span<const char>("Please enter 'y' for successgarbage: not in length on purpose", 28);
+        value.expectedValue.Emplace();
+        value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
+        return UserPrompt("alpha", value);
     }
 
     CHIP_ERROR
@@ -126644,54 +127425,8 @@
         return UserPrompt("alpha", value);
     }
 
-    CHIP_ERROR TestThSendsSetCredentialCommandToDut_10()
-    {
-
-        MTRBaseDevice * device = GetDevice("alpha");
-        __auto_type * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:@(1) queue:mCallbackQueue];
-        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
-
-        __auto_type * params = [[MTRDoorLockClusterSetCredentialParams alloc] init];
-        params.operationType = [NSNumber numberWithUnsignedChar:0U];
-        params.credential = [[MTRDoorLockClusterDlCredential alloc] init];
-        ((MTRDoorLockClusterDlCredential *) params.credential).credentialType = [NSNumber numberWithUnsignedChar:1U];
-        ((MTRDoorLockClusterDlCredential *) params.credential).credentialIndex = [NSNumber numberWithUnsignedShort:1U];
-
-        params.credentialData = [[NSData alloc] initWithBytes:"123456" length:6];
-        params.userIndex = [NSNumber numberWithUnsignedShort:1U];
-        params.userStatus = nil;
-        params.userType = nil;
-        [cluster
-            setCredentialWithParams:params
-                         completion:^(MTRDoorLockClusterSetCredentialResponseParams * _Nullable values, NSError * _Nullable err) {
-                             NSLog(@"TH sends Set Credential Command to DUT Error: %@", err);
-
-                             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
-
-                             {
-                                 id actualValue = values.status;
-                                 VerifyOrReturn(CheckValue("status", actualValue, 2U));
-                             }
-
-                             {
-                                 id actualValue = values.userIndex;
-                                 VerifyOrReturn(CheckValueNull("userIndex", actualValue));
-                             }
-
-                             {
-                                 id actualValue = values.nextCredentialIndex;
-                                 VerifyOrReturn(CheckValueNonNull("nextCredentialIndex", actualValue));
-                                 VerifyOrReturn(CheckValue("nextCredentialIndex", actualValue, 2U));
-                             }
-
-                             NextTest();
-                         }];
-
-        return CHIP_NO_ERROR;
-    }
-
     CHIP_ERROR
-    TestThSendsSetCredentialCommandToDutAndVerifyThatTheDutSendsSetCredentialResponseCommandWithResponseAsOccupiedIfTheCredentialIndexIsRepeated_11()
+    TestThSendsSetCredentialCommandToDutAndVerifyThatTheDutSendsSetCredentialResponseCommandWithResponseAsOccupiedIfTheCredentialIndexIsRepeated_10()
     {
 
         chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
@@ -126701,64 +127436,7 @@
         return UserPrompt("alpha", value);
     }
 
-    CHIP_ERROR TestThSendsSetCredentialCommandToDut_12()
-    {
-
-        MTRBaseDevice * device = GetDevice("alpha");
-        __auto_type * cluster = [[MTRBaseClusterDoorLock alloc] initWithDevice:device endpoint:@(1) queue:mCallbackQueue];
-        VerifyOrReturnError(cluster != nil, CHIP_ERROR_INCORRECT_STATE);
-
-        __auto_type * params = [[MTRDoorLockClusterSetCredentialParams alloc] init];
-        params.operationType = [NSNumber numberWithUnsignedChar:2U];
-        params.credential = [[MTRDoorLockClusterDlCredential alloc] init];
-        ((MTRDoorLockClusterDlCredential *) params.credential).credentialType = [NSNumber numberWithUnsignedChar:1U];
-        ((MTRDoorLockClusterDlCredential *) params.credential).credentialIndex = [NSNumber numberWithUnsignedShort:3U];
-
-        params.credentialData = [[NSData alloc] initWithBytes:"123456" length:6];
-        params.userIndex = [NSNumber numberWithUnsignedShort:1U];
-        params.userStatus = nil;
-        params.userType = nil;
-        [cluster
-            setCredentialWithParams:params
-                         completion:^(MTRDoorLockClusterSetCredentialResponseParams * _Nullable values, NSError * _Nullable err) {
-                             NSLog(@"TH sends Set Credential Command to DUT Error: %@", err);
-
-                             VerifyOrReturn(CheckValue("status", err ? err.code : 0, 0));
-
-                             {
-                                 id actualValue = values.status;
-                                 VerifyOrReturn(CheckValue("status", actualValue, 2U));
-                             }
-
-                             {
-                                 id actualValue = values.userIndex;
-                                 VerifyOrReturn(CheckValueNull("userIndex", actualValue));
-                             }
-
-                             {
-                                 id actualValue = values.nextCredentialIndex;
-                                 VerifyOrReturn(CheckValueNonNull("nextCredentialIndex", actualValue));
-                                 VerifyOrReturn(CheckValue("nextCredentialIndex", actualValue, 4U));
-                             }
-
-                             NextTest();
-                         }];
-
-        return CHIP_NO_ERROR;
-    }
-
-    CHIP_ERROR
-    TestThSendsSetCredentialCommandToDutAndVerifyThatTheDutSendsSetCredentialResponseCommandWithResponseAsOccupiedIfTheCredentialIndexIsRepeated_13()
-    {
-
-        chip::app::Clusters::LogCommands::Commands::UserPrompt::Type value;
-        value.message = chip::Span<const char>("Please enter 'y' for successgarbage: not in length on purpose", 28);
-        value.expectedValue.Emplace();
-        value.expectedValue.Value() = chip::Span<const char>("ygarbage: not in length on purpose", 1);
-        return UserPrompt("alpha", value);
-    }
-
-    CHIP_ERROR TestThSendsClearCredentialCommandToDut_14()
+    CHIP_ERROR TestThSendsClearCredentialCommandToDut_11()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -126782,7 +127460,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThSendsGetCredentialStatusCommandToDut_15()
+    CHIP_ERROR TestThSendsGetCredentialStatusCommandToDut_12()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -126832,7 +127510,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThSendsSetUserCommandToDut_16()
+    CHIP_ERROR TestThSendsSetUserCommandToDut_13()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -126859,7 +127537,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThSendsSetCredentialCommandToDut_17()
+    CHIP_ERROR TestThSendsSetCredentialCommandToDut_14()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -126905,7 +127583,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThSendsClearCredentialCommandToDut_18()
+    CHIP_ERROR TestThSendsClearCredentialCommandToDut_15()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -126929,7 +127607,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThSendsGetCredentialStatusCommand_19()
+    CHIP_ERROR TestThSendsGetCredentialStatusCommand_16()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -126979,7 +127657,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThSendsGetCredentialStatusCommand_20()
+    CHIP_ERROR TestThSendsGetCredentialStatusCommand_17()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -127029,7 +127707,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestThSendsClearCredentialCommandToDut_21()
+    CHIP_ERROR TestThSendsClearCredentialCommandToDut_18()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -127056,7 +127734,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestCleanupTheFirstCreatedUser_22()
+    CHIP_ERROR TestCleanupTheFirstCreatedUser_19()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -127077,7 +127755,7 @@
         return CHIP_NO_ERROR;
     }
 
-    CHIP_ERROR TestCleanupTheSecondCreatedUser_23()
+    CHIP_ERROR TestCleanupTheSecondCreatedUser_20()
     {
 
         MTRBaseDevice * device = GetDevice("alpha");
@@ -129626,9 +130304,6 @@
         make_unique<TestCommissioningWindow>(),
         make_unique<TestMultiAdmin>(),
         make_unique<Test_TC_DGSW_1_1>(),
-        make_unique<Test_TC_DGSW_2_1>(),
-        make_unique<Test_TC_DGSW_2_2>(),
-        make_unique<Test_TC_DGSW_2_3>(),
         make_unique<TestSubscribe_OnOff>(),
         make_unique<DL_UsersAndCredentials>(),
         make_unique<DL_LockUnlock>(),