# Copyright (c) 2021 Project CHIP Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Auto-generated scripts for harness use only, please review before automation. The endpoints and cluster names are currently set to default

name: 133.2.3. [TC-ACL-2.4] ACL attribute

PICS:
    - ACL.S

config:
    nodeId: 0x12344321
    cluster: "Access Control"
    endpoint: 0
    CAT1:
        type: int64u
        defaultValue: 65520
    CAT2:
        type: int64u
        defaultValue: 65521
    CAT3:
        type: int64u
        defaultValue: 65522
    CAT4:
        type: int64u
        defaultValue: 65523

tests:
    - label: "Step 1:Wait for the commissioned device to be retrieved"
      cluster: "DelayCommands"
      command: "WaitForCommissionee"
      arguments:
          values:
              - name: "nodeId"
                value: nodeId

    - label: "Read the commissioner node ID"
      cluster: "CommissionerCommands"
      command: "GetCommissionerNodeId"
      response:
          values:
              - name: "nodeId"
                saveAs: CommissionerNodeId

    - label:
          "Step 2:TH1 reads DUT Endpoint 0 OperationalCredentials cluster
          CurrentFabricIndex attribute"
      command: "readAttribute"
      cluster: "Operational Credentials"
      attribute: "CurrentFabricIndex"
      response:
          saveAs: CurrentFabricIndexValue

    - label:
          "Step 3:TH1 reads DUT Endpoint 0 AccessControl cluster ACL attribute"
      PICS: ACL.S.A0000
      command: "readAttribute"
      attribute: "ACL"
      response:
          value:
              [
                  {
                      Privilege: 5,
                      AuthMode: 2,
                      Subjects: [CommissionerNodeId],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
              ]

    - label:
          "Step 4:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute,
          value is list of AccessControlEntryStruct containing 3 elements
          1.struct Privilege field: Administer (5) AuthMode field: CASE (2)
          Subjects field: [N1] Targets field: null 2 . struct Privilege field:
          View (1) AuthMode field: CASE (3) Subjects field: [111, 222, 333, 444]
          Targets field: [{Cluster: 11}, {Endpoint: 22}] 3..struct Privilege
          field: Operate (3) AuthMode field: Group (3) Subjects field: [555,
          666, 777, 888] Targets field: [{Cluster: 55}, {Endpoint: 66}]"
      PICS: ACL.S.A0000
      command: "writeAttribute"
      attribute: "ACL"
      arguments:
          value:
              [
                  {
                      Privilege: 5,
                      AuthMode: 2,
                      Subjects: [CommissionerNodeId],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 1,
                      AuthMode: 3,
                      Subjects: [111, 222, 333, 444],
                      Targets:
                          [{ Cluster: 11, Endpoint: 22, DeviceType: null }],
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 3,
                      AuthMode: 3,
                      Subjects: [555, 666, 777, 888],
                      Targets:
                          [{ Cluster: 55, Endpoint: 66, DeviceType: null }],
                      FabricIndex: CurrentFabricIndexValue,
                  },
              ]

    - label:
          "Step 5:TH1 reads DUT Endpoint 0 AccessControl cluster ACL attribute"
      PICS: ACL.S.A0000
      command: "readAttribute"
      attribute: "ACL"
      response:
          value:
              [
                  {
                      Privilege: 5,
                      AuthMode: 2,
                      Subjects: [CommissionerNodeId],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 1,
                      AuthMode: 3,
                      Subjects: [111, 222, 333, 444],
                      Targets:
                          [{ Cluster: 11, Endpoint: 22, DeviceType: null }],
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 3,
                      AuthMode: 3,
                      Subjects: [555, 666, 777, 888],
                      Targets:
                          [{ Cluster: 55, Endpoint: 66, DeviceType: null }],
                      FabricIndex: CurrentFabricIndexValue,
                  },
              ]

    - label:
          "Step 6:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute,
          value is list of AccessControlEntryStruct containing 3 elements
          1.struct Privilege field: Administer (5) AuthMode field: CASE (2)
          Subjects field: [N1] Targets field: null 2.struct Privilege field:
          Manage (4) AuthMode field: Group (3) Subjects field: [444, 333, 222,
          111] Targets field: [{Cluster: 44}, {Endpoint: 33}] 3.struct Privilege
          field: Administer (5) AuthMode field: CASE (2) Subjects field: [888,
          777, 666, 555] Targets field: [{Cluster: 88}, {Endpoint: 77}]"
      PICS: ACL.S.A0000
      command: "writeAttribute"
      attribute: "ACL"
      arguments:
          value:
              [
                  {
                      Privilege: 5,
                      AuthMode: 2,
                      Subjects: [CommissionerNodeId],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 4,
                      AuthMode: 3,
                      Subjects: [444, 333, 222, 111],
                      Targets:
                          [{ Cluster: 44, Endpoint: 33, DeviceType: null }],
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 5,
                      AuthMode: 2,
                      Subjects: [888, 777, 666, 555],
                      Targets:
                          [{ Cluster: 88, Endpoint: 77, DeviceType: null }],
                      FabricIndex: CurrentFabricIndexValue,
                  },
              ]

    - label:
          "Step 7:TH1 reads DUT Endpoint 0 AccessControl cluster ACL attribute"
      PICS: ACL.S.A0000
      command: "readAttribute"
      attribute: "ACL"
      response:
          value:
              [
                  {
                      Privilege: 5,
                      AuthMode: 2,
                      Subjects: [CommissionerNodeId],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 4,
                      AuthMode: 3,
                      Subjects: [444, 333, 222, 111],
                      Targets:
                          [{ Cluster: 44, Endpoint: 33, DeviceType: null }],
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 5,
                      AuthMode: 2,
                      Subjects: [888, 777, 666, 555],
                      Targets:
                          [{ Cluster: 88, Endpoint: 77, DeviceType: null }],
                      FabricIndex: CurrentFabricIndexValue,
                  },
              ]

    - label:
          "Step 8:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute,
          value is list of AccessControlEntryStruct containing 3 elements
          1.struct Privilege field: Administer (5) AuthMode field: CASE (2)
          Subjects field: [N1] Targets field: null 2.struct Privilege field:
          View (1) AuthMode field: CASE (2) Subjects field: [111, 222, 333, 444]
          Targets field: [{Cluster: 11, Endpoint: 22}, {Cluster: 33, DeviceType:
          44}] 3.struct Privilege field: Operate (3) AuthMode field: Group (3)
          Subjects field: [555, 666, 777, 888] Targets field: [{Cluster: 55,
          Endpoint: 66}, {Cluster: 77, DeviceType: 88}]"
      PICS: ACL.S.A0000
      command: "writeAttribute"
      attribute: "ACL"
      arguments:
          value:
              [
                  {
                      Privilege: 5,
                      AuthMode: 2,
                      Subjects: [CommissionerNodeId],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 1,
                      AuthMode: 2,
                      Subjects: [111, 222, 333, 444],
                      Targets:
                          [
                              { Cluster: 11, Endpoint: 22, DeviceType: null },
                              { Cluster: 33, Endpoint: null, DeviceType: 44 },
                          ],
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 3,
                      AuthMode: 3,
                      Subjects: [555, 666, 777, 888],
                      Targets:
                          [
                              { Cluster: 55, Endpoint: 66, DeviceType: null },
                              { Cluster: 77, Endpoint: null, DeviceType: 88 },
                          ],
                      FabricIndex: CurrentFabricIndexValue,
                  },
              ]

    - label: "Step 9:TH1 reads AccessControl cluster ACL attribute"
      PICS: ACL.S.A0000
      command: "readAttribute"
      attribute: "ACL"
      response:
          value:
              [
                  {
                      Privilege: 5,
                      AuthMode: 2,
                      Subjects: [CommissionerNodeId],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 1,
                      AuthMode: 2,
                      Subjects: [111, 222, 333, 444],
                      Targets:
                          [
                              { Cluster: 11, Endpoint: 22, DeviceType: null },
                              { Cluster: 33, Endpoint: null, DeviceType: 44 },
                          ],
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 3,
                      AuthMode: 3,
                      Subjects: [555, 666, 777, 888],
                      Targets:
                          [
                              { Cluster: 55, Endpoint: 66, DeviceType: null },
                              { Cluster: 77, Endpoint: null, DeviceType: 88 },
                          ],
                      FabricIndex: CurrentFabricIndexValue,
                  },
              ]

    - label:
          "Step 10:TH1 writes DUT Endpoint 0 AccessControl cluster ACL
          attribute, value is list of AccessControlEntryStruct containing 3
          elements 1.struct Privilege field: Administer (5) AuthMode field: CASE
          (2) Subjects field: [N1] Targets field: null 2.struct Privilege field:
          View (1) AuthMode field: CASE (2) Subjects field: null Targets field:
          [{Cluster: 11, Endpoint: 22}, {Cluster: 33, DeviceType: 44}] 3.struct
          Privilege field: Operate (3) AuthMode field: Group (3) Subjects field:
          null Targets field: [{Cluster: 55, Endpoint: 66}, {Cluster: 77,
          DeviceType: 88}]"
      PICS: ACL.S.A0000
      command: "writeAttribute"
      attribute: "ACL"
      arguments:
          value:
              [
                  {
                      Privilege: 5,
                      AuthMode: 2,
                      Subjects: [CommissionerNodeId],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 1,
                      AuthMode: 2,
                      Subjects: null,
                      Targets:
                          [
                              { Cluster: 11, Endpoint: 22, DeviceType: null },
                              { Cluster: 33, Endpoint: null, DeviceType: 44 },
                          ],
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 3,
                      AuthMode: 3,
                      Subjects: null,
                      Targets:
                          [
                              { Cluster: 55, Endpoint: 66, DeviceType: null },
                              { Cluster: 77, Endpoint: null, DeviceType: 88 },
                          ],
                      FabricIndex: CurrentFabricIndexValue,
                  },
              ]

    - label: "Step 11:TH1 reads AccessControl cluster ACL attribute"
      PICS: ACL.S.A0000
      command: "readAttribute"
      attribute: "ACL"
      response:
          value:
              [
                  {
                      Privilege: 5,
                      AuthMode: 2,
                      Subjects: [CommissionerNodeId],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 1,
                      AuthMode: 2,
                      Subjects: null,
                      Targets:
                          [
                              { Cluster: 11, Endpoint: 22, DeviceType: null },
                              { Cluster: 33, Endpoint: null, DeviceType: 44 },
                          ],
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 3,
                      AuthMode: 3,
                      Subjects: null,
                      Targets:
                          [
                              { Cluster: 55, Endpoint: 66, DeviceType: null },
                              { Cluster: 77, Endpoint: null, DeviceType: 88 },
                          ],
                      FabricIndex: CurrentFabricIndexValue,
                  },
              ]

    - label:
          "Step 12:TH1 writes DUT Endpoint 0 AccessControl cluster ACL
          attribute, value is list of AccessControlEntryStruct containing 3
          elements 1.struct Privilege field: Administer (5) AuthMode field: CASE
          (2) Subjects field: [N1] Targets field: null 2.struct Privilege field:
          View (1) AuthMode field: CASE (2) Subjects field: [111, 222, 333, 444]
          Targets field: null 3.struct Privilege field: Operate (3) AuthMode
          field: Group (3) Subjects field: [555, 666, 777, 888] Targets field:
          null"
      PICS: ACL.S.A0000
      command: "writeAttribute"
      attribute: "ACL"
      arguments:
          value:
              [
                  {
                      Privilege: 5,
                      AuthMode: 2,
                      Subjects: [CommissionerNodeId],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 1,
                      AuthMode: 2,
                      Subjects: [111, 222, 333, 444],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 3,
                      AuthMode: 3,
                      Subjects: [555, 666, 777, 888],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
              ]

    - label: "Step 13:TH1 reads AccessControl cluster ACL attribute"
      PICS: ACL.S.A0000
      command: "readAttribute"
      attribute: "ACL"
      response:
          value:
              [
                  {
                      Privilege: 5,
                      AuthMode: 2,
                      Subjects: [CommissionerNodeId],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 1,
                      AuthMode: 2,
                      Subjects: [111, 222, 333, 444],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 3,
                      AuthMode: 3,
                      Subjects: [555, 666, 777, 888],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
              ]

    - label:
          "Step 14:TH1 writes DUT Endpoint 0 AccessControl cluster ACL
          attribute, value is list of AccessControlEntryStruct containing 2
          elements 1.struct Privilege field: Administer (5) AuthMode field: CASE
          (2) Subjects field: [N1] Targets field: null 2.struct Privilege field:
          Operate (3) AuthMode field: Group (3) Subjects field: null Targets
          field: null"
      PICS: ACL.S.A0000
      command: "writeAttribute"
      attribute: "ACL"
      arguments:
          value:
              [
                  {
                      Privilege: 5,
                      AuthMode: 2,
                      Subjects: [CommissionerNodeId],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 3,
                      AuthMode: 3,
                      Subjects: null,
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
              ]

    - label: "Step 15:TH1 reads AccessControl cluster ACL attribute"
      PICS: ACL.S.A0000
      command: "readAttribute"
      attribute: "ACL"
      response:
          value:
              [
                  {
                      Privilege: 5,
                      AuthMode: 2,
                      Subjects: [CommissionerNodeId],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 3,
                      AuthMode: 3,
                      Subjects: null,
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
              ]

    - label:
          "Step 16:TH1 writes DUT Endpoint 0 AccessControl cluster ACL
          attribute, value is list of AccessControlEntryStruct containing 2
          elements 1.struct Privilege field: Administer (5) AuthMode field: CASE
          (2) Subjects field: [N1] Targets field: null 2.struct Privilege field:
          ProxyView (2) AuthMode field: CASE (2) Subjects field: null Targets
          field: null"
      PICS: ACL.S.A0000
      command: "writeAttribute"
      attribute: "ACL"
      arguments:
          value:
              [
                  {
                      Privilege: 5,
                      AuthMode: 2,
                      Subjects: [CommissionerNodeId],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 2,
                      AuthMode: 2,
                      Subjects: null,
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
              ]

    - label: "Step 17:TH1 reads AccessControl cluster ACL attribute"
      PICS: ACL.S.A0000
      command: "readAttribute"
      attribute: "ACL"
      response:
          value:
              [
                  {
                      Privilege: 5,
                      AuthMode: 2,
                      Subjects: [CommissionerNodeId],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 2,
                      AuthMode: 2,
                      Subjects: null,
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
              ]

    - label:
          "Step 18:TH1 reads DUT AccessControl cluster
          SubjectsPerAccessControlEntry attribute"
      PICS: ACL.S.A0000
      command: "readAttribute"
      attribute: "SubjectsPerAccessControlEntry"
      response:
          saveAs: MAXSUBJECTS

    #Issue https://github.com/project-chip/connectedhomeip/issues/16719
    - label:
          "Step 19:TH1 writes DUT Endpoint 0 AccessControl cluster ACL
          attribute, value is list of AccessControlEntryStruct containing 2
          elements 1.struct Privilege field: Administer (5) AuthMode field: CASE
          (2) Subjects field: [N1] Targets field: null 2.struct Privilege field:
          Operate (3) AuthMode field: CASE (2) Subjects field: list of
          MAXSUBJECTS random node IDs (stored as SUBJECTS) Targets field: null"
      PICS: ACL.S.A0000 && PICS_SKIP_SAMPLE_APP
      verification: |
          ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 3, "authMode": 2, "subjects":[33,44,55,66] , "targets": null}]' 1 0
          On TH1(Chiptool), Verify that the status is success when writing the AccessControl cluster ACL attribute with a  value is list of AccessControlEntryStruct containing 2 elements as Subject as SUBJECTS and Target as null



          [1657542321.144954][3461:3466] CHIP:DMG: {
          [1657542321.144990][3461:3466] CHIP:DMG:        AttributeStatusIBs =
          [1657542321.145038][3461:3466] CHIP:DMG:        [
          [1657542321.145082][3461:3466] CHIP:DMG:                AttributeStatusIB =
          [1657542321.145128][3461:3466] CHIP:DMG:                {
          [1657542321.145170][3461:3466] CHIP:DMG:                        AttributePathIB =
          [1657542321.145219][3461:3466] CHIP:DMG:                        {
          [1657542321.145273][3461:3466] CHIP:DMG:                                Endpoint = 0x0,
          [1657542321.145327][3461:3466] CHIP:DMG:                                Cluster = 0x1f,
          [1657542321.145382][3461:3466] CHIP:DMG:                                Attribute = 0x0000_0000,
          [1657542321.145428][3461:3466] CHIP:DMG:                        }
          [1657542321.145484][3461:3466] CHIP:DMG:
          [1657542321.145531][3461:3466] CHIP:DMG:                        StatusIB =
          [1657542321.145583][3461:3466] CHIP:DMG:                        {
          [1657542321.145633][3461:3466] CHIP:DMG:                                status = 0x00 (SUCCESS),
          [1657542321.145684][3461:3466] CHIP:DMG:                        },
          [1657542321.145730][3461:3466] CHIP:DMG:
          [1657542321.145774][3461:3466] CHIP:DMG:                },
          [1657542321.145831][3461:3466] CHIP:DMG:
          [1657542321.145870][3461:3466] CHIP:DMG:                AttributeStatusIB =
          [1657542321.145912][3461:3466] CHIP:DMG:                {
          [1657542321.145954][3461:3466] CHIP:DMG:                        AttributePathIB =
          [1657542321.146001][3461:3466] CHIP:DMG:                        {
          [1657542321.146052][3461:3466] CHIP:DMG:                                Endpoint = 0x0,
          [1657542321.146111][3461:3466] CHIP:DMG:                                Cluster = 0x1f,
          [1657542321.146166][3461:3466] CHIP:DMG:                                Attribute = 0x0000_0000,
          [1657542321.146218][3461:3466] CHIP:DMG:                                ListIndex = Null,
          [1657542321.146267][3461:3466] CHIP:DMG:                        }
          [1657542321.146321][3461:3466] CHIP:DMG:
          [1657542321.146374][3461:3466] CHIP:DMG:                        StatusIB =
          [1657542321.146423][3461:3466] CHIP:DMG:                        {
          [1657542321.146472][3461:3466] CHIP:DMG:                                status = 0x00 (SUCCESS),
          [1657542321.146523][3461:3466] CHIP:DMG:                        },
          [1657542321.146573][3461:3466] CHIP:DMG:
          [1657542321.146614][3461:3466] CHIP:DMG:                },
          [1657542321.146670][3461:3466] CHIP:DMG:
          [1657542321.146709][3461:3466] CHIP:DMG:                AttributeStatusIB =
          [1657542321.146751][3461:3466] CHIP:DMG:                {
          [1657542321.146792][3461:3466] CHIP:DMG:                        AttributePathIB =
          [1657542321.146840][3461:3466] CHIP:DMG:                        {
          [1657542321.146890][3461:3466] CHIP:DMG:                                Endpoint = 0x0,
          [1657542321.146943][3461:3466] CHIP:DMG:                                Cluster = 0x1f,
          [1657542321.146997][3461:3466] CHIP:DMG:                                Attribute = 0x0000_0000,
          [1657542321.147049][3461:3466] CHIP:DMG:                                ListIndex = Null,
          [1657542321.147099][3461:3466] CHIP:DMG:                        }
          [1657542321.147152][3461:3466] CHIP:DMG:
          [1657542321.147204][3461:3466] CHIP:DMG:                        StatusIB =
          [1657542321.147254][3461:3466] CHIP:DMG:                        {
          [1657542321.147302][3461:3466] CHIP:DMG:                                status = 0x00 (SUCCESS),
          [1657542321.147354][3461:3466] CHIP:DMG:                        },
          [1657542321.147403][3461:3466] CHIP:DMG:
          [1657542321.147443][3461:3466] CHIP:DMG:                },
          [1657542321.147490][3461:3466] CHIP:DMG:
          [1657542321.147528][3461:3466] CHIP:DMG:        ],
          [1657542321.147586][3461:3466] CHIP:DMG:
          [1657542321.147625][3461:3466] CHIP:DMG:        InteractionModelRevision = 1
          [1657542321.147663][3461:3466] CHIP:DMG: }
          [1657542321.147865][3461:3466] CHIP:DMG: WriteClient moving to [AwaitingDe]
      cluster: "LogCommands"
      command: "UserPrompt"
      arguments:
          values:
              - name: "message"
                value: "Enter 'y' after success"
              - name: "expectedValue"
                value: "y"

    #Issue https://github.com/project-chip/connectedhomeip/issues/16719
    - label: "Step 20:TH1 reads AccessControl cluster ACL attribute"
      PICS: ACL.S.A0000 && PICS_SKIP_SAMPLE_APP
      verification: |
          ./chip-tool accesscontrol read acl 1 0

           On TH1(Chiptool) ,  Verify that the AccessControlEntryStruct contains 2 elements with  Subject as SUBJECTS and Target as null
          [1656928460.992030][4255:4260] CHIP:DMG:        ],
          [1656928460.992075][4255:4260] CHIP:DMG:
          [1656928460.992101][4255:4260] CHIP:DMG:        SuppressResponse = true,
          [1656928460.992126][4255:4260] CHIP:DMG:        InteractionModelRevision = 1
          [1656928460.992149][4255:4260] CHIP:DMG: }
          [1656928460.992513][4255:4260] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Attribute 0x0000_0000 DataVersion: 1070401481
          [1656928460.992588][4255:4260] CHIP:TOO:   ACL: 2 entries
          [1656928460.992647][4255:4260] CHIP:TOO:     [1]: {
          [1656928460.992687][4255:4260] CHIP:TOO:       Privilege: 5
          [1656928460.992712][4255:4260] CHIP:TOO:       AuthMode: 2
          [1656928460.992738][4255:4260] CHIP:TOO:       Subjects: 1 entries
          [1656928460.992767][4255:4260] CHIP:TOO:         [1]: 112233
          [1656928460.992794][4255:4260] CHIP:TOO:       Targets: null
          [1656928460.992817][4255:4260] CHIP:TOO:       FabricIndex: 1
          [1656928460.992840][4255:4260] CHIP:TOO:      }
          [1656928460.992873][4255:4260] CHIP:TOO:     [2]: {
          [1656928460.992896][4255:4260] CHIP:TOO:       Privilege: 3
          [1656928460.992918][4255:4260] CHIP:TOO:       AuthMode: 2
          [1656928460.992945][4255:4260] CHIP:TOO:       Subjects: 4 entries
          [1656928460.992971][4255:4260] CHIP:TOO:         [1]: 33
          [1656928460.992995][4255:4260] CHIP:TOO:         [2]: 44
          [1656928460.993020][4255:4260] CHIP:TOO:         [3]: 55
          [1656928460.993045][4255:4260] CHIP:TOO:         [4]: 66
          [1656928460.993069][4255:4260] CHIP:TOO:       Targets: null
          [1656928460.993091][4255:4260] CHIP:TOO:       FabricIndex: 1
          [1656928460.993113][4255:4260] CHIP:TOO:      }
          [1656928460.993204][4255:4260] CHIP:EM: Sending Standalone Ack for MessageCounter:154962728 on exchange 64378i
          [1656928460.993291][4255:4260] CHIP:IN: Prepared secure message 0xffffad69f958 to 0x0000000000000001 (1)  o
      cluster: "LogCommands"
      command: "UserPrompt"
      arguments:
          values:
              - name: "message"
                value: "Enter 'y' after success"
              - name: "expectedValue"
                value: "y"

    - label:
          "Step 21:TH1 writes DUT Endpoint 0 AccessControl cluster ACL
          attribute, value is list of AccessControlEntryStruct containing 2
          elements 1.struct Privilege field: Administer (5) AuthMode field: CASE
          (2) Subjects field: [N1] Targets field: null 2.struct Privilege field:
          Operate (3) AuthMode field: CASE (2) Subjects field: [CAT1, CAT2,
          CAT3, CAT4] Targets field: null"
      PICS: ACL.S.A0000
      command: "writeAttribute"
      attribute: "ACL"
      arguments:
          value:
              [
                  {
                      Privilege: 5,
                      AuthMode: 2,
                      Subjects: [CommissionerNodeId],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 3,
                      AuthMode: 2,
                      Subjects: [CAT1, CAT2, CAT3, CAT4],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
              ]

    - label: "Step 22:TH1 reads AccessControl cluster ACL attribute"
      PICS: ACL.S.A0000
      command: "readAttribute"
      attribute: "ACL"
      response:
          value:
              [
                  {
                      Privilege: 5,
                      AuthMode: 2,
                      Subjects: [CommissionerNodeId],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 3,
                      AuthMode: 2,
                      Subjects: [CAT1, CAT2, CAT3, CAT4],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
              ]

    - label:
          "Step 23:TH1 reads AccessControl cluster TargetsPerAccessControlEntry
          attribute"
      PICS: ACL.S.A0000
      command: "readAttribute"
      attribute: "TargetsPerAccessControlEntry"
      response:
          saveAs: TargetsPerAccessControlEntryValue

    #Need if support : https://github.com/project-chip/connectedhomeip/issues/16719
    - label:
          "Step 24:TH1 writes DUT Endpoint 0 AccessControl cluster ACL
          attribute, value is list of AccessControlEntryStruct containing 2
          elements 1.struct Privilege field: Administer (5) AuthMode field: CASE
          (2) Subjects field: [N1] Targets field: null 2.struct Privilege field:
          Operate (3) AuthMode field: CASE (2) Subjects field:null Targets
          field: list of MAXTARGETS targets {Cluster: random} (stored as
          TARGETS)"
      PICS: ACL.S.A0000 && PICS_SKIP_SAMPLE_APP
      verification: |
          ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 3, "authMode": 2, "subjects": null, "targets":[{ "cluster": 40, "endpoint": null, "deviceType": null },{ "cluster": 28, "endpoint": null, "deviceType": null },{ "cluster": 30, "endpoint": null, "deviceType": null }]}]' 1 0

          Via the TH (chip-tool), Verify that the status is success when writing the AccessControl cluster ACL attribute with a  value is list of AccessControlEntryStruct containing 2 elements.

          [1686292221.429177][33589:33591] CHIP:DMG: WriteResponseMessage =
          [1686292221.429234][33589:33591] CHIP:DMG: {
          [1686292221.429283][33589:33591] CHIP:DMG:      AttributeStatusIBs =
          [1686292221.429355][33589:33591] CHIP:DMG:      [
          [1686292221.429411][33589:33591] CHIP:DMG:              AttributeStatusIB =
          [1686292221.429475][33589:33591] CHIP:DMG:              {
          [1686292221.429534][33589:33591] CHIP:DMG:                      AttributePathIB =
          [1686292221.429691][33589:33591] CHIP:DMG:                      {
          [1686292221.429771][33589:33591] CHIP:DMG:                              Endpoint = 0x0,
          [1686292221.429847][33589:33591] CHIP:DMG:                              Cluster = 0x1f,
          [1686292221.429923][33589:33591] CHIP:DMG:                              Attribute = 0x0000_0000,
          [1686292221.429989][33589:33591] CHIP:DMG:                      }
          [1686292221.430067][33589:33591] CHIP:DMG:
          [1686292221.430136][33589:33591] CHIP:DMG:                      StatusIB =
          [1686292221.430206][33589:33591] CHIP:DMG:                      {
          [1686292221.430277][33589:33591] CHIP:DMG:                              status = 0x00 (SUCCESS),
          [1686292221.430346][33589:33591] CHIP:DMG:                      },
          [1686292221.430415][33589:33591] CHIP:DMG:
          [1686292221.430474][33589:33591] CHIP:DMG:              },
          [1686292221.430558][33589:33591] CHIP:DMG:
          [1686292221.430614][33589:33591] CHIP:DMG:              AttributeStatusIB =
          [1686292221.430675][33589:33591] CHIP:DMG:              {
          [1686292221.430734][33589:33591] CHIP:DMG:                      AttributePathIB =
          [1686292221.430801][33589:33591] CHIP:DMG:                      {
          [1686292221.430870][33589:33591] CHIP:DMG:                              Endpoint = 0x0,
          [1686292221.430944][33589:33591] CHIP:DMG:                              Cluster = 0x1f,
          [1686292221.431020][33589:33591] CHIP:DMG:                              Attribute = 0x0000_0000,
          [1686292221.431263][33589:33591] CHIP:DMG:                              ListIndex = Null,
          [1686292221.431342][33589:33591] CHIP:DMG:                      }
          [1686292221.431419][33589:33591] CHIP:DMG:
          [1686292221.431486][33589:33591] CHIP:DMG:                      StatusIB =
          [1686292221.431554][33589:33591] CHIP:DMG:                      {
          [1686292221.431635][33589:33591] CHIP:DMG:                              status = 0x00 (SUCCESS),
          [1686292221.431705][33589:33591] CHIP:DMG:                      },
          [1686292221.431774][33589:33591] CHIP:DMG:
          [1686292221.431833][33589:33591] CHIP:DMG:              },
          [1686292221.431918][33589:33591] CHIP:DMG:
          [1686292221.431973][33589:33591] CHIP:DMG:              AttributeStatusIB =
          [1686292221.432035][33589:33591] CHIP:DMG:              {
          [1686292221.432093][33589:33591] CHIP:DMG:                      AttributePathIB =
          [1686292221.432161][33589:33591] CHIP:DMG:                      {
          [1686292221.432231][33589:33591] CHIP:DMG:                              Endpoint = 0x0,
          [1686292221.432305][33589:33591] CHIP:DMG:                              Cluster = 0x1f,
          [1686292221.432381][33589:33591] CHIP:DMG:                              Attribute = 0x0000_0000,
          [1686292221.432453][33589:33591] CHIP:DMG:                              ListIndex = Null,
          [1686292221.432523][33589:33591] CHIP:DMG:                      }
          [1686292221.432600][33589:33591] CHIP:DMG:
          [1686292221.432666][33589:33591] CHIP:DMG:                      StatusIB =
          [1686292221.432734][33589:33591] CHIP:DMG:                      {
          [1686292221.432803][33589:33591] CHIP:DMG:                              status = 0x00 (SUCCESS),
          [1686292221.432873][33589:33591] CHIP:DMG:                      },
          [1686292221.432949][33589:33591] CHIP:DMG:
          [1686292221.433008][33589:33591] CHIP:DMG:              },
          [1686292221.433077][33589:33591] CHIP:DMG:
          [1686292221.433132][33589:33591] CHIP:DMG:      ],
          [1686292221.433218][33589:33591] CHIP:DMG:
          [1686292221.433273][33589:33591] CHIP:DMG:      InteractionModelRevision = 1
          [1686292221.433327][33589:33591] CHIP:DMG: }
      cluster: "LogCommands"
      command: "UserPrompt"
      arguments:
          values:
              - name: "message"
                value: "Enter 'y' after success"
              - name: "expectedValue"
                value: "y"

    #Issue : https://github.com/project-chip/connectedhomeip/issues/16719
    - label: "Step 25:TH1 reads AccessControl cluster ACL attribute"
      PICS: ACL.S.A0000 && PICS_SKIP_SAMPLE_APP
      verification: |
          ./chip-tool accesscontrol read acl 1 0

          Via the TH (chip-tool), Verify that the AccessControlEntryStruct contains 4 elements.

          [1686292292.890253][33601:33603] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Attribute 0x0000_0000 DataVersion: 2420291518
          [1686292292.890488][33601:33603] CHIP:TOO:   ACL: 2 entries
          [1686292292.890620][33601:33603] CHIP:TOO:     [1]: {
          [1686292292.890708][33601:33603] CHIP:TOO:       Privilege: 5
          [1686292292.890762][33601:33603] CHIP:TOO:       AuthMode: 2
          [1686292292.890850][33601:33603] CHIP:TOO:       Subjects: 1 entries
          [1686292292.890918][33601:33603] CHIP:TOO:         [1]: 112233
          [1686292292.890976][33601:33603] CHIP:TOO:       Targets: null
          [1686292292.891028][33601:33603] CHIP:TOO:       FabricIndex: 1
          [1686292292.891078][33601:33603] CHIP:TOO:      }
          [1686292292.891170][33601:33603] CHIP:TOO:     [2]: {
          [1686292292.891220][33601:33603] CHIP:TOO:       Privilege: 3
          [1686292292.891272][33601:33603] CHIP:TOO:       AuthMode: 2
          [1686292292.891324][33601:33603] CHIP:TOO:       Subjects: null
          [1686292292.891397][33601:33603] CHIP:TOO:       Targets: 3 entries
          [1686292292.891480][33601:33603] CHIP:TOO:         [1]: {
          [1686292292.891536][33601:33603] CHIP:TOO:           Cluster: 40
          [1686292292.891590][33601:33603] CHIP:TOO:           Endpoint: null
          [1686292292.891642][33601:33603] CHIP:TOO:           DeviceType: null
          [1686292292.891692][33601:33603] CHIP:TOO:          }
          [1686292292.891760][33601:33603] CHIP:TOO:         [2]: {
          [1686292292.891815][33601:33603] CHIP:TOO:           Cluster: 28
          [1686292292.891866][33601:33603] CHIP:TOO:           Endpoint: null
          [1686292292.891916][33601:33603] CHIP:TOO:           DeviceType: null
          [1686292292.891966][33601:33603] CHIP:TOO:          }
          [1686292292.892032][33601:33603] CHIP:TOO:         [3]: {
          [1686292292.892087][33601:33603] CHIP:TOO:           Cluster: 30
          [1686292292.892138][33601:33603] CHIP:TOO:           Endpoint: null
          [1686292292.892188][33601:33603] CHIP:TOO:           DeviceType: null
          [1686292292.892238][33601:33603] CHIP:TOO:          }
          [1686292292.892293][33601:33603] CHIP:TOO:       FabricIndex: 1
          [1686292292.892345][33601:33603] CHIP:TOO:      }
      cluster: "LogCommands"
      command: "UserPrompt"
      arguments:
          values:
              - name: "message"
                value: "Enter 'y' after success"
              - name: "expectedValue"
                value: "y"

    - label:
          "Step 26:TH1 reads AccessControl cluster AccessControlEntriesPerFabric
          attribute"
      PICS: ACL.S.A0000
      command: "readAttribute"
      attribute: "AccessControlEntriesPerFabric"
      response:
          saveAs: MAXENTRIES

    #Made following steps as prompt, As at the moment YAML doesn't support sending the elements based on the MAXENTRIES from the previous steps.
    - label:
          "Step 27:TH1 writes DUT Endpoint 0 AccessControl cluster ACL
          attribute, value is list of AccessControlEntryStruct containing
          MAXENTRIES elements 1.struct Privilege field: Administer (5) AuthMode
          field: CASE (2) Subjects field: [N1] Targets field: null 2.struct
          Privilege field: Operate (3) AuthMode field: CASE (2) Subjects field:
          null Targets field: null subsequent elements same as second element"
      PICS: ACL.S.A0000 && PICS_SKIP_SAMPLE_APP
      verification: |
          ./chip-tool accesscontrol write acl '[{ "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, { "privilege": 3, "authMode": 2, "subjects": null, "targets":null}, { "privilege": 3, "authMode": 2, "subjects": null, "targets":null},{ "privilege": 3, "authMode": 2, "subjects": null, "targets":null}]' 1 0

          Via the TH (chip-tool), Verify that the status is success when writing the AccessControl cluster ACL attribute with a value is list of AccessControlEntryStruct containing  MAXENTRIES elements.

          [1686292560.130383][33642:33644] CHIP:DMG: WriteClient moving to [ResponseRe]
          [1686292560.130530][33642:33644] CHIP:DMG: WriteResponseMessage =
          [1686292560.130588][33642:33644] CHIP:DMG: {
          [1686292560.130671][33642:33644] CHIP:DMG:      AttributeStatusIBs =
          [1686292560.130749][33642:33644] CHIP:DMG:      [
          [1686292560.130807][33642:33644] CHIP:DMG:              AttributeStatusIB =
          [1686292560.130893][33642:33644] CHIP:DMG:              {
          [1686292560.130955][33642:33644] CHIP:DMG:                      AttributePathIB =
          [1686292560.131045][33642:33644] CHIP:DMG:                      {
          [1686292560.131119][33642:33644] CHIP:DMG:                              Endpoint = 0x0,
          [1686292560.131216][33642:33644] CHIP:DMG:                              Cluster = 0x1f,
          [1686292560.131293][33642:33644] CHIP:DMG:                              Attribute = 0x0000_0000,
          [1686292560.131387][33642:33644] CHIP:DMG:                      }
          [1686292560.131469][33642:33644] CHIP:DMG:
          [1686292560.131535][33642:33644] CHIP:DMG:                      StatusIB =
          [1686292560.131628][33642:33644] CHIP:DMG:                      {
          [1686292560.131702][33642:33644] CHIP:DMG:                              status = 0x00 (SUCCESS),
          [1686292560.131793][33642:33644] CHIP:DMG:                      },
          [1686292560.131865][33642:33644] CHIP:DMG:
          [1686292560.131947][33642:33644] CHIP:DMG:              },
          [1686292560.132033][33642:33644] CHIP:DMG:
          [1686292560.132107][33642:33644] CHIP:DMG:              AttributeStatusIB =
          [1686292560.132181][33642:33644] CHIP:DMG:              {
          [1686292560.132241][33642:33644] CHIP:DMG:                      AttributePathIB =
          [1686292560.132330][33642:33644] CHIP:DMG:                      {
          [1686292560.132400][33642:33644] CHIP:DMG:                              Endpoint = 0x0,
          [1686292560.132497][33642:33644] CHIP:DMG:                              Cluster = 0x1f,
          [1686292560.132573][33642:33644] CHIP:DMG:                              Attribute = 0x0000_0000,
          [1686292560.132666][33642:33644] CHIP:DMG:                              ListIndex = Null,
          [1686292560.132738][33642:33644] CHIP:DMG:                      }
          [1686292560.132843][33642:33644] CHIP:DMG:
          [1686292560.132911][33642:33644] CHIP:DMG:                      StatusIB =
          [1686292560.132979][33642:33644] CHIP:DMG:                      {
          [1686292560.133074][33642:33644] CHIP:DMG:                              status = 0x00 (SUCCESS),
          [1686292560.133146][33642:33644] CHIP:DMG:                      },
          [1686292560.133237][33642:33644] CHIP:DMG:
          [1686292560.133297][33642:33644] CHIP:DMG:              },
          [1686292560.133402][33642:33644] CHIP:DMG:
          [1686292560.133461][33642:33644] CHIP:DMG:              AttributeStatusIB =
          [1686292560.133522][33642:33644] CHIP:DMG:              {
          [1686292560.133708][33642:33644] CHIP:DMG:                      AttributePathIB =
          [1686292560.133801][33642:33644] CHIP:DMG:                      {
          [1686292560.133873][33642:33644] CHIP:DMG:                              Endpoint = 0x0,
          [1686292560.133947][33642:33644] CHIP:DMG:                              Cluster = 0x1f,
          [1686292560.134046][33642:33644] CHIP:DMG:                              Attribute = 0x0000_0000,
          [1686292560.134119][33642:33644] CHIP:DMG:                              ListIndex = Null,
          [1686292560.134210][33642:33644] CHIP:DMG:                      }
          [1686292560.134288][33642:33644] CHIP:DMG:
          [1686292560.134372][33642:33644] CHIP:DMG:                      StatusIB =
          [1686292560.134440][33642:33644] CHIP:DMG:                      {
          [1686292560.134531][33642:33644] CHIP:DMG:                              status = 0x00 (SUCCESS),
          [1686292560.134601][33642:33644] CHIP:DMG:                      },
          [1686292560.134690][33642:33644] CHIP:DMG:
          [1686292560.134751][33642:33644] CHIP:DMG:              },
          [1686292560.134837][33642:33644] CHIP:DMG:
          [1686292560.134914][33642:33644] CHIP:DMG:              AttributeStatusIB =
          [1686292560.134976][33642:33644] CHIP:DMG:              {
          [1686292560.135063][33642:33644] CHIP:DMG:                      AttributePathIB =
          [1686292560.135132][33642:33644] CHIP:DMG:                      {
          [1686292560.135221][33642:33644] CHIP:DMG:                              Endpoint = 0x0,
          [1686292560.135297][33642:33644] CHIP:DMG:                              Cluster = 0x1f,
          [1686292560.135372][33642:33644] CHIP:DMG:                              Attribute = 0x0000_0000,
          [1686292560.135466][33642:33644] CHIP:DMG:                              ListIndex = Null,
          [1686292560.135537][33642:33644] CHIP:DMG:                      }
          [1686292560.135634][33642:33644] CHIP:DMG:
          [1686292560.135701][33642:33644] CHIP:DMG:                      StatusIB =
          [1686292560.135789][33642:33644] CHIP:DMG:                      {
          [1686292560.135859][33642:33644] CHIP:DMG:                              status = 0x00 (SUCCESS),
          [1686292560.135967][33642:33644] CHIP:DMG:                      },
          [1686292560.136043][33642:33644] CHIP:DMG:
          [1686292560.136102][33642:33644] CHIP:DMG:              },
          [1686292560.136210][33642:33644] CHIP:DMG:
          [1686292560.136266][33642:33644] CHIP:DMG:              AttributeStatusIB =
          [1686292560.136349][33642:33644] CHIP:DMG:              {
          [1686292560.136409][33642:33644] CHIP:DMG:                      AttributePathIB =
          [1686292560.136496][33642:33644] CHIP:DMG:                      {
          [1686292560.136567][33642:33644] CHIP:DMG:                              Endpoint = 0x0,
          [1686292560.136642][33642:33644] CHIP:DMG:                              Cluster = 0x1f,
          [1686292560.136739][33642:33644] CHIP:DMG:                              Attribute = 0x0000_0000,
          [1686292560.136811][33642:33644] CHIP:DMG:                              ListIndex = Null,
          [1686292560.136900][33642:33644] CHIP:DMG:                      }
          [1686292560.136979][33642:33644] CHIP:DMG:
          [1686292560.137065][33642:33644] CHIP:DMG:                      StatusIB =
          [1686292560.137134][33642:33644] CHIP:DMG:                      {
          [1686292560.137201][33642:33644] CHIP:DMG:                              status = 0x00 (SUCCESS),
          [1686292560.137295][33642:33644] CHIP:DMG:                      },
          [1686292560.137366][33642:33644] CHIP:DMG:
          [1686292560.137451][33642:33644] CHIP:DMG:              },
          [1686292560.137522][33642:33644] CHIP:DMG:
          [1686292560.137630][33642:33644] CHIP:DMG:      ],
          [1686292560.137740][33642:33644] CHIP:DMG:
          [1686292560.137816][33642:33644] CHIP:DMG:      InteractionModelRevision = 1
          [1686292560.137873][33642:33644] CHIP:DMG: }
      cluster: "LogCommands"
      command: "UserPrompt"
      arguments:
          values:
              - name: "message"
                value: "Enter 'y' after success"
              - name: "expectedValue"
                value: "y"

    - label: "Step 28:TH1 reads AccessControl cluster ACL attribute"
      PICS: ACL.S.A0000 && PICS_SKIP_SAMPLE_APP
      verification: |
          ./chip-tool accesscontrol read acl 1 0

          Via the TH (chip-tool), Verify that the AccessControlEntryStruct containing MAXENTRIES elements.

          [1686292633.355733][33659:33661] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Attribute 0x0000_0000 DataVersion: 2420291523
          [1686292633.355957][33659:33661] CHIP:TOO:   ACL: 4 entries
          [1686292633.356089][33659:33661] CHIP:TOO:     [1]: {
          [1686292633.356177][33659:33661] CHIP:TOO:       Privilege: 5
          [1686292633.356262][33659:33661] CHIP:TOO:       AuthMode: 2
          [1686292633.356356][33659:33661] CHIP:TOO:       Subjects: 1 entries
          [1686292633.356450][33659:33661] CHIP:TOO:         [1]: 112233
          [1686292633.356510][33659:33661] CHIP:TOO:       Targets: null
          [1686292633.356599][33659:33661] CHIP:TOO:       FabricIndex: 1
          [1686292633.356652][33659:33661] CHIP:TOO:      }
          [1686292633.356726][33659:33661] CHIP:TOO:     [2]: {
          [1686292633.356803][33659:33661] CHIP:TOO:       Privilege: 3
          [1686292633.356855][33659:33661] CHIP:TOO:       AuthMode: 2
          [1686292633.356905][33659:33661] CHIP:TOO:       Subjects: null
          [1686292633.356977][33659:33661] CHIP:TOO:       Targets: null
          [1686292633.357024][33659:33661] CHIP:TOO:       FabricIndex: 1
          [1686292633.357073][33659:33661] CHIP:TOO:      }
          [1686292633.357166][33659:33661] CHIP:TOO:     [3]: {
          [1686292633.357221][33659:33661] CHIP:TOO:       Privilege: 3
          [1686292633.357272][33659:33661] CHIP:TOO:       AuthMode: 2
          [1686292633.357345][33659:33661] CHIP:TOO:       Subjects: null
          [1686292633.357395][33659:33661] CHIP:TOO:       Targets: null
          [1686292633.357446][33659:33661] CHIP:TOO:       FabricIndex: 1
          [1686292633.357513][33659:33661] CHIP:TOO:      }
          [1686292633.357659][33659:33661] CHIP:TOO:     [4]: {
          [1686292633.357717][33659:33661] CHIP:TOO:       Privilege: 3
          [1686292633.357793][33659:33661] CHIP:TOO:       AuthMode: 2
          [1686292633.357845][33659:33661] CHIP:TOO:       Subjects: null
          [1686292633.357895][33659:33661] CHIP:TOO:       Targets: null
          [1686292633.357963][33659:33661] CHIP:TOO:       FabricIndex: 1
          [1686292633.358021][33659:33661] CHIP:TOO:      }
      cluster: "LogCommands"
      command: "UserPrompt"
      arguments:
          values:
              - name: "message"
                value: "Enter 'y' after success"
              - name: "expectedValue"
                value: "y"

    - label:
          "Step 29:TH1 writes DUT Endpoint 0 AccessControl cluster ACL
          attribute, value is list of AccessControlEntryStruct containing 2
          elements 1.struct Privilege field: Administer (5) AuthMode field: CASE
          (2) Subjects field: [N1] Targets field: null 2.struct Privilege field:
          Operate (3) AuthMode field: PASE (1) Subjects field: null Targets
          field: null"
      PICS: ACL.S.A0000
      command: "writeAttribute"
      attribute: "ACL"
      arguments:
          value:
              [
                  {
                      Privilege: 5,
                      AuthMode: 2,
                      Subjects: [CommissionerNodeId],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 3,
                      AuthMode: 1,
                      Subjects: null,
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
              ]
      response:
          error: CONSTRAINT_ERROR

    - label: "Step 30:TH1 reads AccessControl cluster ACL attribute"
      PICS: ACL.S.A0000
      command: "readAttribute"
      attribute: "ACL"
      response:
          value:
              [
                  {
                      Privilege: 5,
                      AuthMode: 2,
                      Subjects: [CommissionerNodeId],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
              ]

    - label:
          "Step 31:TH1 writes DUT Endpoint 0 AccessControl cluster ACL
          attribute, value is list of AccessControlEntryStruct containing 2
          elements 1.struct Privilege field: Administer (5) AuthMode field: CASE
          (2) Subjects field: [N1] Targets field: null 2.struct Privilege field:
          Administer (5) AuthMode field: Group (3) Subjects field: null Targets
          field: null"
      PICS: ACL.S.A0000
      command: "writeAttribute"
      attribute: "ACL"
      arguments:
          value:
              [
                  {
                      Privilege: 5,
                      AuthMode: 2,
                      Subjects: [CommissionerNodeId],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 5,
                      AuthMode: 3,
                      Subjects: null,
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
              ]
      response:
          error: CONSTRAINT_ERROR

    - label:
          "Step 32:TH1 writes DUT Endpoint 0 AccessControl cluster ACL
          attribute, value is list of AccessControlEntryStruct containing 2
          elements 1.struct Privilege field: Administer (5) AuthMode field: CASE
          (2) Subjects field: [N1] Targets field: null 2.struct Privilege field:
          invalid value (not 1-5) AuthMode field: CASE (2) Subjects field: null
          Targets field: null"
      PICS: ACL.S.A0000
      command: "writeAttribute"
      attribute: "ACL"
      arguments:
          value:
              [
                  {
                      Privilege: 5,
                      AuthMode: 2,
                      Subjects: [CommissionerNodeId],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: AccessControlEntryPrivilegeEnum.UnknownEnumValue,
                      AuthMode: 2,
                      Subjects: null,
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
              ]
      response:
          error: CONSTRAINT_ERROR

    - label:
          "Step 33:TH1 writes AccessControl cluster ACL attribute, value is list
          of AccessControlEntryStruct containing 2 elements"
      PICS: ACL.S.A0000
      command: "writeAttribute"
      attribute: "ACL"
      arguments:
          value:
              [
                  {
                      Privilege: 5,
                      AuthMode: 2,
                      Subjects: [CommissionerNodeId],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 3,
                      AuthMode: AccessControlEntryAuthModeEnum.UnknownEnumValue,
                      Subjects: null,
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
              ]
      response:
          error: CONSTRAINT_ERROR

    - label:
          "Step 34:TH1 writes AccessControl cluster ACL attribute, value is list
          of AccessControlEntryStruct containing 2 elements"
      PICS: ACL.S.A0000
      command: "writeAttribute"
      attribute: "ACL"
      arguments:
          value:
              [
                  {
                      Privilege: 5,
                      AuthMode: 2,
                      Subjects: [CommissionerNodeId],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 3,
                      AuthMode: 2,
                      Subjects: [0],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
              ]
      response:
          error: CONSTRAINT_ERROR

    - label:
          "Step 35:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute
          value is list of AccessControlEntryStruct containing 2 elements
          1.struct Privilege field: Administer (5) AuthMode field: CASE (2)
          Subjects field: [N1] Targets field: null 2.struct Privilege field:
          Operate (3) AuthMode field: CASE (2) Subjects field:
          [0xFFFFFFFFFFFFFFFF] Targets field: null"
      PICS: ACL.S.A0000
      command: "writeAttribute"
      attribute: "ACL"
      arguments:
          value:
              [
                  {
                      Privilege: 5,
                      AuthMode: 2,
                      Subjects: [CommissionerNodeId],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 3,
                      AuthMode: 2,
                      Subjects: ["18446744073709551615"],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
              ]
      response:
          error: CONSTRAINT_ERROR

    - label:
          "Step 36:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute
          value is list of AccessControlEntryStruct containing 2 elements
          1.struct Privilege field: Administer (5) AuthMode field: CASE (2)
          Subjects field: [N1] Targets field: null 2.struct Privilege field:
          Operate (3) AuthMode field: CASE (2) Subjects field:
          [0xFFFFFFFD00000000] Targets field: null"
      PICS: ACL.S.A0000
      command: "writeAttribute"
      attribute: "ACL"
      arguments:
          value:
              [
                  {
                      Privilege: 5,
                      AuthMode: 2,
                      Subjects: [CommissionerNodeId],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 3,
                      AuthMode: 2,
                      Subjects: ["18446744060824649728"],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
              ]
      response:
          error: CONSTRAINT_ERROR

    - label:
          "Step 37:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute
          value is list of AccessControlEntryStruct containing 2 elements struct
          Privilege field: Administer (5) AuthMode field: CASE (2) Subjects
          field: [N1] Targets field: null struct Privilege field: Operate (3)
          AuthMode field: CASE (2) Subjects field: [0xFFFFFFFFFFFF0000] Targets
          field: null"
      PICS: ACL.S.A0000
      command: "writeAttribute"
      attribute: "ACL"
      arguments:
          value:
              [
                  {
                      Privilege: 5,
                      AuthMode: 2,
                      Subjects: [CommissionerNodeId],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 3,
                      AuthMode: 2,
                      Subjects: ["18446744073709486080"],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
              ]
      response:
          error: CONSTRAINT_ERROR

    - label:
          "Step 38:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute
          value is list of AccessControlEntryStruct containing 2 elements
          1.struct Privilege field: Administer (5) AuthMode field: CASE (2)
          Subjects field: [N1] Targets field: null 2.struct Privilege field:
          Operate (3) AuthMode field: CASE (2) Subjects field: null Targets
          field: [{}]"
      PICS: ACL.S.A0000
      command: "writeAttribute"
      attribute: "ACL"
      arguments:
          value:
              [
                  {
                      Privilege: 5,
                      AuthMode: 2,
                      Subjects: [CommissionerNodeId],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 3,
                      AuthMode: 2,
                      Subjects: null,
                      Targets:
                          [{ Cluster: null, Endpoint: null, DeviceType: null }],
                      FabricIndex: CurrentFabricIndexValue,
                  },
              ]
      response:
          error: CONSTRAINT_ERROR

    - label:
          "Step 39:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute
          value is list of AccessControlEntryStruct containing 2 elements
          1.struct Privilege field: Administer (5) AuthMode field: CASE (2)
          Subjects field: [N1] Targets field: null 2.struct Privilege field:
          Operate (3) AuthMode field: CASE (2) Subjects field: null Targets
          field: [{Cluster: 0xFFFFFFFF}]"
      PICS: ACL.S.A0000
      command: "writeAttribute"
      attribute: "ACL"
      arguments:
          value:
              [
                  {
                      Privilege: 5,
                      AuthMode: 2,
                      Subjects: [CommissionerNodeId],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 3,
                      AuthMode: 2,
                      Subjects: null,
                      Targets:
                          [
                              {
                                  Cluster: 4294967295,
                                  Endpoint: null,
                                  DeviceType: null,
                              },
                          ],
                      FabricIndex: CurrentFabricIndexValue,
                  },
              ]
      response:
          error: CONSTRAINT_ERROR

    - label:
          "Step 40:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute
          value is list of AccessControlEntryStruct containing 2 elements 1.
          struct  Privilege field: Administer (5)  AuthMode field: CASE
          (2)  Subjects field: [N1]  Targets field: null 2. struct  Privilege
          field: Operate (3)  AuthMode field: CASE (2)  Subjects field:
          null  Targets field: [{Endpoint: 65535}]"
      PICS: ACL.S.A0000
      command: "writeAttribute"
      attribute: "ACL"
      arguments:
          value:
              [
                  {
                      Privilege: 5,
                      AuthMode: 2,
                      Subjects: [CommissionerNodeId],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 3,
                      AuthMode: 2,
                      Subjects: null,
                      Targets:
                          [
                              {
                                  Cluster: null,
                                  Endpoint: 65535,
                                  DeviceType: null,
                              },
                          ],
                      FabricIndex: CurrentFabricIndexValue,
                  },
              ]
      response:
          error: CONSTRAINT_ERROR

    - label:
          "Step 41:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute
          value is list of AccessControlEntryStruct containing 2 elements
          1.struct Privilege field: Administer (5) AuthMode field: CASE (2)
          Subjects field: [N1] Targets field: null 2.struct Privilege field:
          Operate (3) AuthMode field: CASE (2) Subjects field: null Targets
          field: [{DeviceType: 0xFFFFFFFF}]"
      PICS: ACL.S.A0000
      command: "writeAttribute"
      attribute: "ACL"
      arguments:
          value:
              [
                  {
                      Privilege: 5,
                      AuthMode: 2,
                      Subjects: [CommissionerNodeId],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 3,
                      AuthMode: 2,
                      Subjects: null,
                      Targets:
                          [
                              {
                                  Cluster: null,
                                  Endpoint: null,
                                  DeviceType: 4294967295,
                              },
                          ],
                      FabricIndex: CurrentFabricIndexValue,
                  },
              ]
      response:
          error: CONSTRAINT_ERROR

    - label:
          "Step 42:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute
          value is list of AccessControlEntryStruct containing 2 elements
          1.struct Privilege field: Administer (5) AuthMode field: CASE (2)
          Subjects field: [N1] Targets field: null 2.struct Privilege field:
          Operate (3) AuthMode field: CASE (2) Subjects field: null Targets
          field: [{Endpoint: 22, DeviceType: 33}]"
      PICS: ACL.S.A0000
      command: "writeAttribute"
      attribute: "ACL"
      arguments:
          value:
              [
                  {
                      Privilege: 5,
                      AuthMode: 2,
                      Subjects: [CommissionerNodeId],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 3,
                      AuthMode: 2,
                      Subjects: null,
                      Targets:
                          [{ Cluster: null, Endpoint: 22, DeviceType: 33 }],
                      FabricIndex: CurrentFabricIndexValue,
                  },
              ]
      response:
          error: CONSTRAINT_ERROR

    - label:
          "Step 43:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute
          value is list of AccessControlEntryStruct containing 2 elements
          1.struct Privilege field: Administer (5) AuthMode field: CASE (2)
          Subjects field: [N1] Targets field: null 2.struct Privilege field:
          Operate (3) AuthMode field: CASE (2) Subjects field: null Targets
          field: [{Cluster: 11, Endpoint: 22, DeviceType: 33}]"
      PICS: ACL.S.A0000
      command: "writeAttribute"
      attribute: "ACL"
      arguments:
          value:
              [
                  {
                      Privilege: 5,
                      AuthMode: 2,
                      Subjects: [CommissionerNodeId],
                      Targets: null,
                      FabricIndex: CurrentFabricIndexValue,
                  },
                  {
                      Privilege: 3,
                      AuthMode: 2,
                      Subjects: null,
                      Targets: [{ Cluster: 11, Endpoint: 22, DeviceType: 33 }],
                      FabricIndex: CurrentFabricIndexValue,
                  },
              ]
      response:
          error: CONSTRAINT_ERROR

    - label:
          "Step 44:TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute
          value is an empty list"
      PICS: ACL.S.A0000
      command: "writeAttribute"
      attribute: "ACL"
      arguments:
          value: [
                  {
                      FabricIndex: 1,
                      Privilege: 5, # administer
                      AuthMode: 2, # case
                      Subjects: [CommissionerNodeId],
                      Targets: null,
                  },
              ]
