# 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: 129.2.9. [TC-ACL-2.9] Cluster access

PICS:
    - ACL.S

config:
    nodeId: 0x12344321
    cluster: "Basic"
    endpoint: 0

tests:
    - label: "TH1 commissions DUT using admin node ID N1"
      verification: |
          DUT
          sudo ./chip-all-clusters-app

          TH1
          ./chip-tool pairing ble-wifi 1 zigbee-thread matter123 20202021 3841
      disabled: true

    - label:
          "TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute, value
          is list of AccessControlEntryStruct containing 1 element struct
          Privilege field: Manage (4) AuthMode field: CASE (2) Subjects field:
          [N1] Targets field: null"
      PICS: ACL.S.A0000
      verification: |
          ./chip-tool accesscontrol write acl "[{ "privilege": 4, "authMode": 2, "subjects": [112233], "targets": null}]" 1 0
          On TH1(Chiptool), verify AccessControl cluster ACL attribute, value is list of AccessControlEntryStruct containing 1 element

          [1656589077.991761][3452:3457] CHIP:DMG: WriteClient moving to [ResponseRe]
          [1656589077.991838][3452:3457] CHIP:DMG: WriteResponseMessage =
          [1656589077.991879][3452:3457] CHIP:DMG: {
          [1656589077.991914][3452:3457] CHIP:DMG:        AttributeStatusIBs =
          [1656589077.991964][3452:3457] CHIP:DMG:        [
          [1656589077.992003][3452:3457] CHIP:DMG:                AttributeStatusIB =
          [1656589077.992047][3452:3457] CHIP:DMG:                {
          [1656589077.992090][3452:3457] CHIP:DMG:                        AttributePathIB =
          [1656589077.992146][3452:3457] CHIP:DMG:                        {
          [1656589077.992198][3452:3457] CHIP:DMG:                                Endpoint = 0x0,
          [1656589077.992253][3452:3457] CHIP:DMG:                                Cluster = 0x1f,
          [1656589077.992307][3452:3457] CHIP:DMG:                                Attribute = 0x0000_0000,
          [1656589077.992361][3452:3457] CHIP:DMG:                        }
          [1656589077.992416][3452:3457] CHIP:DMG:
          [1656589077.992465][3452:3457] CHIP:DMG:                        StatusIB =
          [1656589077.992516][3452:3457] CHIP:DMG:                        {
          [1656589077.992565][3452:3457] CHIP:DMG:                                status = 0x00 (SUCCESS),
          [1656589077.992642][3452:3457] CHIP:DMG:                        },
          [1656589077.992695][3452:3457] CHIP:DMG:
          [1656589077.992736][3452:3457] CHIP:DMG:                },
          [1656589077.992794][3452:3457] CHIP:DMG:
          [1656589077.992833][3452:3457] CHIP:DMG:                AttributeStatusIB =
          [1656589077.992879][3452:3457] CHIP:DMG:                {
          [1656589077.992920][3452:3457] CHIP:DMG:                        AttributePathIB =
          [1656589077.992968][3452:3457] CHIP:DMG:                        {
          [1656589077.993018][3452:3457] CHIP:DMG:                                Endpoint = 0x0,
          [1656589077.993076][3452:3457] CHIP:DMG:                                Cluster = 0x1f,
          [1656589077.993130][3452:3457] CHIP:DMG:                                Attribute = 0x0000_0000,
          [1656589077.993184][3452:3457] CHIP:DMG:                                ListIndex = Null,
          [1656589077.993234][3452:3457] CHIP:DMG:                        }
          [1656589077.993288][3452:3457] CHIP:DMG:
          [1656589077.993335][3452:3457] CHIP:DMG:                        StatusIB =
          [1656589077.993382][3452:3457] CHIP:DMG:                        {
          [1656589077.993431][3452:3457] CHIP:DMG:                                status = 0x00 (SUCCESS),
          [1656589077.993480][3452:3457] CHIP:DMG:                        },
          [1656589077.993530][3452:3457] CHIP:DMG:
          [1656589077.993571][3452:3457] CHIP:DMG:                },
          [1656589077.993619][3452:3457] CHIP:DMG:
          [1656589077.993657][3452:3457] CHIP:DMG:        ],
          [1656589077.993710][3452:3457] CHIP:DMG:
          [1656589077.993749][3452:3457] CHIP:DMG:        InteractionModelRevision = 1
          [1656589077.993787][3452:3457] CHIP:DMG: }
          [1656589077.993938][3452:3457] CHIP:DMG: WriteClient moving to [AwaitingDe]
          [1656589077.994024][3452:3457] CHIP:EM: Sending Standalone Ack for MessageCounter:54734971 on exchange 46491i
      disabled: true

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

          On TH1(Chiptool), verify AccessControl cluster ACL attribute Returns UNSUPPORTED_ACCESS (0x7e)
          [1656589294.730359][3469:3474] CHIP:DMG: ReportDataMessage =
          [1656589294.730409][3469:3474] CHIP:DMG: {
          [1656589294.730449][3469:3474] CHIP:DMG:        AttributeReportIBs =
          [1656589294.730506][3469:3474] CHIP:DMG:        [
          [1656589294.730550][3469:3474] CHIP:DMG:                AttributeReportIB =
          [1656589294.730616][3469:3474] CHIP:DMG:                {
          [1656589294.730663][3469:3474] CHIP:DMG:                        AttributeStatusIB =
          [1656589294.730719][3469:3474] CHIP:DMG:                        {
          [1656589294.730772][3469:3474] CHIP:DMG:                                AttributePathIB =
          [1656589294.730834][3469:3474] CHIP:DMG:                                {
          [1656589294.730896][3469:3474] CHIP:DMG:                                        Endpoint = 0x0,
          [1656589294.730961][3469:3474] CHIP:DMG:                                        Cluster = 0x1f,
          [1656589294.731078][3469:3474] CHIP:DMG:                                        Attribute = 0x0000_0000,
          [1656589294.731174][3469:3474] CHIP:DMG:                                }
          [1656589294.731244][3469:3474] CHIP:DMG:
          [1656589294.731303][3469:3474] CHIP:DMG:                                StatusIB =
          [1656589294.731364][3469:3474] CHIP:DMG:                                {
          [1656589294.731424][3469:3474] CHIP:DMG:                                        status = 0x7e (UNSUPPORTED_ACCESS),
          [1656589294.731484][3469:3474] CHIP:DMG:                                },
          [1656589294.731545][3469:3474] CHIP:DMG:
          [1656589294.731600][3469:3474] CHIP:DMG:                        },
          [1656589294.731662][3469:3474] CHIP:DMG:
          [1656589294.731712][3469:3474] CHIP:DMG:                },
          [1656589294.731769][3469:3474] CHIP:DMG:
          [1656589294.731813][3469:3474] CHIP:DMG:        ],
          [1656589294.731867][3469:3474] CHIP:DMG:
          [1656589294.731913][3469:3474] CHIP:DMG:        SuppressResponse = true,
          [1656589294.731959][3469:3474] CHIP:DMG:        InteractionModelRevision = 1
          [1656589294.732001][3469:3474] CHIP:DMG: }
          [1656589294.732174][3469:3474] CHIP:TOO: Response Failure: IM Error 0x0000057E: General error: 0x7e (UNSUPPORTED_ACCESS)
          [1656589294.732303][3469:3474] CHIP:EM: Sending Standalone Ack for MessageCounter:239082421 on exchange 10750i
          [1656589294.732405][3469:3474] CHIP:IN: Prepared secure message 0xffffa9da2958 to 0x0000000000000001 (1)
      disabled: true

    - label:
          "TH1 writes DUT Endpoint 0 AccessControl cluster ACL attribute, value
          is list of AccessControlEntryStruct containing 1 element 1.struct
          Privilege field: Administer (5) AuthMode field: CASE (2) Subjects
          field: [N1] Targets field: null"
      PICS: ACL.S.A0000
      verification: |
          ./chip-tool accesscontrol write acl "[{"privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}]" 1 0
          On TH1(Chiptool), verify  AccessControl cluster ACL attribute, value is list of AccessControlEntryStruct containing 1 element Returns Unsupported Access

          [1656589843.696435][3518:3523] CHIP:DMG: WriteResponseMessage =
          [1656589843.696471][3518:3523] CHIP:DMG: {
          [1656589843.696504][3518:3523] CHIP:DMG:        AttributeStatusIBs =
          [1656589843.696549][3518:3523] CHIP:DMG:        [
          [1656589843.696636][3518:3523] CHIP:DMG:                AttributeStatusIB =
          [1656589843.696685][3518:3523] CHIP:DMG:                {
          [1656589843.696724][3518:3523] CHIP:DMG:                        AttributePathIB =
          [1656589843.696767][3518:3523] CHIP:DMG:                        {
          [1656589843.696813][3518:3523] CHIP:DMG:                                Endpoint = 0x0,
          [1656589843.696859][3518:3523] CHIP:DMG:                                Cluster = 0x1f,
          [1656589843.696905][3518:3523] CHIP:DMG:                                Attribute = 0x0000_0000,
          [1656589843.696951][3518:3523] CHIP:DMG:                        }
          [1656589843.697002][3518:3523] CHIP:DMG:
          [1656589843.697046][3518:3523] CHIP:DMG:                        StatusIB =
          [1656589843.697092][3518:3523] CHIP:DMG:                        {
          [1656589843.697137][3518:3523] CHIP:DMG:                                status = 0x7e (UNSUPPORTED_ACCESS),
          [1656589843.697179][3518:3523] CHIP:DMG:                        },
          [1656589843.697225][3518:3523] CHIP:DMG:
          [1656589843.697265][3518:3523] CHIP:DMG:                },
          [1656589843.697316][3518:3523] CHIP:DMG:
          [1656589843.697352][3518:3523] CHIP:DMG:                AttributeStatusIB =
          [1656589843.697393][3518:3523] CHIP:DMG:                {
          [1656589843.697430][3518:3523] CHIP:DMG:                        AttributePathIB =
          [1656589843.697473][3518:3523] CHIP:DMG:                        {
          [1656589843.697518][3518:3523] CHIP:DMG:                                Endpoint = 0x0,
          [1656589843.697567][3518:3523] CHIP:DMG:                                Cluster = 0x1f,
          [1656589843.697616][3518:3523] CHIP:DMG:                                Attribute = 0x0000_0000,
          [1656589843.697662][3518:3523] CHIP:DMG:                                ListIndex = Null,
          [1656589843.697708][3518:3523] CHIP:DMG:                        }
          [1656589843.697758][3518:3523] CHIP:DMG:
          [1656589843.697802][3518:3523] CHIP:DMG:                        StatusIB =
          [1656589843.697846][3518:3523] CHIP:DMG:                        {
          [1656589843.697890][3518:3523] CHIP:DMG:                                status = 0x7e (UNSUPPORTED_ACCESS),
          [1656589843.697939][3518:3523] CHIP:DMG:                        },
          [1656589843.697985][3518:3523] CHIP:DMG:
          [1656589843.698026][3518:3523] CHIP:DMG:                },
          [1656589843.698071][3518:3523] CHIP:DMG:
          [1656589843.698106][3518:3523] CHIP:DMG:        ],
          [1656589843.698154][3518:3523] CHIP:DMG:
          [1656589843.698190][3518:3523] CHIP:DMG:        InteractionModelRevision = 1
          [1656589843.698225][3518:3523] CHIP:DMG: }
          [1656589843.698364][3518:3523] CHIP:DMG: WriteClient moving to [AwaitingDe]
          [1656589843.698409][3518:3523] CHIP:TOO: Response Failure: IM Error 0x0000057E: General error: 0x7e (UNSUPPORTED_ACCESS)
          [1656589843.698479][3518:3523] CHIP:EM: Sending Standalone Ack for MessageCounter:108024547 on exchange 43576i
      disabled: true

    - label:
          "TH1 reads DUT Endpoint 0 AccessControl cluster Extension attribute"
      PICS: ACL.S.A0001
      verification: |
          ./chip-tool accesscontrol read  extension 1 0
          On TH1(Chiptool), verify  AccessControl cluster Extension attribute Returns UNSUPPORTED_ACCESS (0x7e)
          [1656590048.181895][3536:3541] CHIP:DMG: ReportDataMessage =
          [1656590048.181938][3536:3541] CHIP:DMG: {
          [1656590048.181973][3536:3541] CHIP:DMG:        AttributeReportIBs =
          [1656590048.182023][3536:3541] CHIP:DMG:        [
          [1656590048.182063][3536:3541] CHIP:DMG:                AttributeReportIB =
          [1656590048.182119][3536:3541] CHIP:DMG:                {
          [1656590048.182161][3536:3541] CHIP:DMG:                        AttributeStatusIB =
          [1656590048.182210][3536:3541] CHIP:DMG:                        {
          [1656590048.182257][3536:3541] CHIP:DMG:                                AttributePathIB =
          [1656590048.182311][3536:3541] CHIP:DMG:                                {
          [1656590048.182366][3536:3541] CHIP:DMG:                                        Endpoint = 0x0,
          [1656590048.182424][3536:3541] CHIP:DMG:                                        Cluster = 0x1f,
          [1656590048.182482][3536:3541] CHIP:DMG:                                        Attribute = 0x0000_0001,
          [1656590048.182540][3536:3541] CHIP:DMG:                                }
          [1656590048.182601][3536:3541] CHIP:DMG:
          [1656590048.182653][3536:3541] CHIP:DMG:                                StatusIB =
          [1656590048.182711][3536:3541] CHIP:DMG:                                {
          [1656590048.182766][3536:3541] CHIP:DMG:                                        status = 0x7e (UNSUPPORTED_ACCESS),
          [1656590048.182819][3536:3541] CHIP:DMG:                                },
          [1656590048.182873][3536:3541] CHIP:DMG:
          [1656590048.182920][3536:3541] CHIP:DMG:                        },
          [1656590048.182973][3536:3541] CHIP:DMG:
          [1656590048.183017][3536:3541] CHIP:DMG:                },
          [1656590048.183066][3536:3541] CHIP:DMG:
          [1656590048.183104][3536:3541] CHIP:DMG:        ],
          [1656590048.183152][3536:3541] CHIP:DMG:
          [1656590048.183192][3536:3541] CHIP:DMG:        SuppressResponse = true,
          [1656590048.183233][3536:3541] CHIP:DMG:        InteractionModelRevision = 1
          [1656590048.183271][3536:3541] CHIP:DMG: }
          [1656590048.183424][3536:3541] CHIP:TOO: Response Failure: IM Error 0x0000057E: General error: 0x7e (UNSUPPORTED_ACCESS)
          [1656590048.183539][3536:3541] CHIP:EM: Sending Standalone Ack for MessageCounter:5598495 on exchange 61834i
      disabled: true

    - label:
          "TH1 writes DUT Endpoint 0 AccessControl cluster Extension attribute,
          value is an empty list"
      PICS: ACL.S.A0001
      verification: |
          ./chip-tool accesscontrol write extension [] 1 0
          On TH1(Chiptool) , Verify the  Successfully with  extension attribute value is an empty list which Returns
          UNSUPPORTED_ACCESS (0x7e)
          [1656592607.144276][3897:3903] CHIP:DMG: WriteClient moving to [ResponseRe]
          [1656592607.144341][3897:3903] CHIP:DMG: WriteResponseMessage =
          [1656592607.144378][3897:3903] CHIP:DMG: {
          [1656592607.144410][3897:3903] CHIP:DMG:        AttributeStatusIBs =
          [1656592607.144463][3897:3903] CHIP:DMG:        [
          [1656592607.144499][3897:3903] CHIP:DMG:                AttributeStatusIB =
          [1656592607.144539][3897:3903] CHIP:DMG:                {
          [1656592607.144576][3897:3903] CHIP:DMG:                        AttributePathIB =
          [1656592607.144652][3897:3903] CHIP:DMG:                        {
          [1656592607.144700][3897:3903] CHIP:DMG:                                Endpoint = 0x0,
          [1656592607.144751][3897:3903] CHIP:DMG:                                Cluster = 0x1f,
          [1656592607.144799][3897:3903] CHIP:DMG:                                Attribute = 0x0000_0001,
          [1656592607.144846][3897:3903] CHIP:DMG:                        }
          [1656592607.144897][3897:3903] CHIP:DMG:
          [1656592607.144939][3897:3903] CHIP:DMG:                        StatusIB =
          [1656592607.144986][3897:3903] CHIP:DMG:                        {
          [1656592607.145030][3897:3903] CHIP:DMG:                                status = 0x7e (UNSUPPORTED_ACCESS),
          [1656592607.145080][3897:3903] CHIP:DMG:                        },
      disabled: true

    - label:
          "TH1 reads DUT Endpoint 0 AccessControl cluster
          SubjectsPerAccessControlEntry attribute"
      PICS: ACL.S.A0002
      verification: |
          ./chip-tool accesscontrol read subjects-per-access-control-entry 1 0
          On TH1(Chiptool), verify with value 4 or greater as  subjects-per-access-control-entry.

          [1656592739.107798][3916:3921] CHIP:DMG: ReportDataMessage =
          [1656592739.107828][3916:3921] CHIP:DMG: {
          [1656592739.107850][3916:3921] CHIP:DMG:        AttributeReportIBs =
          [1656592739.107881][3916:3921] CHIP:DMG:        [
          [1656592739.107906][3916:3921] CHIP:DMG:                AttributeReportIB =
          [1656592739.107938][3916:3921] CHIP:DMG:                {
          [1656592739.107963][3916:3921] CHIP:DMG:                        AttributeDataIB =
          [1656592739.107998][3916:3921] CHIP:DMG:                        {
          [1656592739.108032][3916:3921] CHIP:DMG:                                DataVersion = 0x182902e1,
          [1656592739.108068][3916:3921] CHIP:DMG:                                AttributePathIB =
          [1656592739.108103][3916:3921] CHIP:DMG:                                {
          [1656592739.108137][3916:3921] CHIP:DMG:                                        Endpoint = 0x0,
          [1656592739.108177][3916:3921] CHIP:DMG:                                        Cluster = 0x1f,
          [1656592739.108216][3916:3921] CHIP:DMG:                                        Attribute = 0x0000_0002,
          [1656592739.108252][3916:3921] CHIP:DMG:                                }
          [1656592739.108287][3916:3921] CHIP:DMG:
          [1656592739.108325][3916:3921] CHIP:DMG:                                Data = 4,
          [1656592739.108355][3916:3921] CHIP:DMG:                        },
          [1656592739.108388][3916:3921] CHIP:DMG:
          [1656592739.108413][3916:3921] CHIP:DMG:                },
          [1656592739.108443][3916:3921] CHIP:DMG:
          [1656592739.108466][3916:3921] CHIP:DMG:        ],
          [1656592739.108496][3916:3921] CHIP:DMG:
          [1656592739.108520][3916:3921] CHIP:DMG:        SuppressResponse = true,
          [1656592739.108545][3916:3921] CHIP:DMG:        InteractionModelRevision = 1
          [1656592739.108568][3916:3921] CHIP:DMG: }
          [1656592739.108729][3916:3921] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Attribute 0x0000_0002 DataVersion: 405340897
          [1656592739.108793][3916:3921] CHIP:TOO:   SubjectsPerAccessControlEntry: 4
          [1656592739.108878][3916:3921] CHIP:EM: Sending Standalone Ack for MessageCounter:265434881 on exchange 145
      disabled: true

    - label:
          "TH1 reads DUT Endpoint 0 AccessControl cluster
          TargetsPerAccessControlEntry attribute"
      PICS: ACL.S.A0003
      verification: |
          ./chip-tool accesscontrol read targets-per-access-control-entry 1 0
          On TH1(Chiptool), verify with value 3 or greater as   TargetsPerAccessControlEntry
          [1656593266.074720][3943:3948] CHIP:DMG: ReportDataMessage =
          [1656593266.074748][3943:3948] CHIP:DMG: {
          [1656593266.074769][3943:3948] CHIP:DMG:        AttributeReportIBs =
          [1656593266.074800][3943:3948] CHIP:DMG:        [
          [1656593266.074824][3943:3948] CHIP:DMG:                AttributeReportIB =
          [1656593266.074863][3943:3948] CHIP:DMG:                {
          [1656593266.074889][3943:3948] CHIP:DMG:                        AttributeDataIB =
          [1656593266.074919][3943:3948] CHIP:DMG:                        {
          [1656593266.074950][3943:3948] CHIP:DMG:                                DataVersion = 0x182902e1,
          [1656593266.074998][3943:3948] CHIP:DMG:                                AttributePathIB =
          [1656593266.075037][3943:3948] CHIP:DMG:                                {
          [1656593266.075074][3943:3948] CHIP:DMG:                                        Endpoint = 0x0,
          [1656593266.075112][3943:3948] CHIP:DMG:                                        Cluster = 0x1f,
          [1656593266.075145][3943:3948] CHIP:DMG:                                        Attribute = 0x0000_0003,
          [1656593266.075178][3943:3948] CHIP:DMG:                                }
          [1656593266.075214][3943:3948] CHIP:DMG:
          [1656593266.075246][3943:3948] CHIP:DMG:                                Data = 3,
          [1656593266.075276][3943:3948] CHIP:DMG:                        },
          [1656593266.075309][3943:3948] CHIP:DMG:
          [1656593266.075335][3943:3948] CHIP:DMG:                },
          [1656593266.075365][3943:3948] CHIP:DMG:
          [1656593266.075388][3943:3948] CHIP:DMG:        ],
          [1656593266.075418][3943:3948] CHIP:DMG:
          [1656593266.075442][3943:3948] CHIP:DMG:        SuppressResponse = true,
          [1656593266.075467][3943:3948] CHIP:DMG:        InteractionModelRevision = 1
          [1656593266.075491][3943:3948] CHIP:DMG: }
          [1656593266.075626][3943:3948] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Attribute 0x0000_0003 DataVersion: 405340897
          [1656593266.075684][3943:3948] CHIP:TOO:   TargetsPerAccessControlEntry: 3
          [1656593266.075758][3943:3948] CHIP:EM: Sending Standalone Ack for MessageCounter:42625412 on exchange 36195i
      disabled: true

    - label:
          "TH1 reads DUT Endpoint 0 AccessControl cluster
          AccessControlEntriesPerFabric attribute"
      PICS: ACL.S.A0004
      verification: |
          ./chip-tool accesscontrol read access-control-entries-per-fabric 1 0

          On TH1(Chiptool), verify with value 3  or greater as AccessControlEntriesPerFabric.
          [1656593406.902865][3956:3961] CHIP:DMG: ReportDataMessage =
          [1656593406.902902][3956:3961] CHIP:DMG: {
          [1656593406.902931][3956:3961] CHIP:DMG:        AttributeReportIBs =
          [1656593406.902971][3956:3961] CHIP:DMG:        [
          [1656593406.903004][3956:3961] CHIP:DMG:                AttributeReportIB =
          [1656593406.903049][3956:3961] CHIP:DMG:                {
          [1656593406.903087][3956:3961] CHIP:DMG:                        AttributeDataIB =
          [1656593406.903128][3956:3961] CHIP:DMG:                        {
          [1656593406.903173][3956:3961] CHIP:DMG:                                DataVersion = 0x182902e1,
          [1656593406.903216][3956:3961] CHIP:DMG:                                AttributePathIB =
          [1656593406.903259][3956:3961] CHIP:DMG:                                {
          [1656593406.903304][3956:3961] CHIP:DMG:                                        Endpoint = 0x0,
          [1656593406.903354][3956:3961] CHIP:DMG:                                        Cluster = 0x1f,
          [1656593406.903400][3956:3961] CHIP:DMG:                                        Attribute = 0x0000_0004,
          [1656593406.903447][3956:3961] CHIP:DMG:                                }
          [1656593406.903493][3956:3961] CHIP:DMG:
          [1656593406.903539][3956:3961] CHIP:DMG:                                Data = 3,
          [1656593406.903580][3956:3961] CHIP:DMG:                        },
          [1656593406.903624][3956:3961] CHIP:DMG:
          [1656593406.903661][3956:3961] CHIP:DMG:                },
          [1656593406.903700][3956:3961] CHIP:DMG:
          [1656593406.903732][3956:3961] CHIP:DMG:        ],
          [1656593406.903771][3956:3961] CHIP:DMG:
          [1656593406.903804][3956:3961] CHIP:DMG:        SuppressResponse = true,
          [1656593406.903837][3956:3961] CHIP:DMG:        InteractionModelRevision = 1
          [1656593406.903868][3956:3961] CHIP:DMG: }
          [1656593406.904032][3956:3961] CHIP:TOO: Endpoint: 0 Cluster: 0x0000_001F Attribute 0x0000_0004 DataVersion: 405340897
          [1656593406.904102][3956:3961] CHIP:TOO:   AccessControlEntriesPerFabric: 3
          [1656593406.904200][3956:3961] CHIP:EM: Sending Standalone Ack for MessageCounter:135320969 on exchange 30343i
          [1656593406.904273][3956:3961] CHIP:IN: Prepared secure message 0xffff977ed958 to 0x0000000000000001 (1)  of type 0x10 and protocolId (0, 0) on exchange 30343i with MessageCounter:267106256.
      disabled: true

    - label:
          "TH1 reads DUT Endpoint 0 AccessControl cluster
          AccessControlEntryChanged event"
      PICS: ACL.S.E00
      verification: |
          ./chip-tool accesscontrol read-event access-control-entry-changed 1
          On TH1(Chiptool), Verify  AccessControl cluster AccessControlEntryChanged event Returns UNSUPPORTED_ACCESS (0x7e)
          [1656593588.305232][3979:3984] CHIP:DMG:                                },
          [1656593588.305269][3979:3984] CHIP:DMG:
          [1656593588.305299][3979:3984] CHIP:DMG:                                StatusIB =
          [1656593588.305333][3979:3984] CHIP:DMG:                                {
          [1656593588.305371][3979:3984] CHIP:DMG:                                        status = 0x7e (UNSUPPORTED_ACCESS),
          [1656593588.305408][3979:3984] CHIP:DMG:                                },
          [1656593588.305445][3979:3984] CHIP:DMG:
          [1656593588.305475][3979:3984] CHIP:DMG:                        },
          [1656593588.305512][3979:3984] CHIP:DMG:
          [1656593588.305542][3979:3984] CHIP:DMG:                },
          [1656593588.305575][3979:3984] CHIP:DMG:
          [1656593588.305602][3979:3984] CHIP:DMG:        ],
          [1656593588.305641][3979:3984] CHIP:DMG:
          [1656593588.305668][3979:3984] CHIP:DMG:        SuppressResponse = true,
          [1656593588.305696][3979:3984] CHIP:DMG:        InteractionModelRevision = 1
          [1656593588.305721][3979:3984] CHIP:DMG: }
          [1656593588.305841][3979:3984] CHIP:TOO: Response Failure: IM Error 0x0000057E: General error: 0x7e (UNSUPPORTED_ACCESS)
          [1656593588.305905][3979:3984] CHIP:TOO: Response Failure: IM Error 0x0000057E: General error: 0x7e (UNSUPPORTED_ACCESS)
          [1656593588.305969][3979:3984] CHIP:TOO: Response Failure: IM Error 0x0000057E: General error: 0x7e (UNSUPPORTED_ACCESS)
          [1656593588.306132][3979:3984] CHIP:EM: Sending Standalone Ack for MessageCounter:82107286
      disabled: true

    - label:
          "TH1 reads DUT Endpoint 0 AccessControl cluster
          AccessControlExtensionChanged event"
      PICS: ACL.S.E01
      verification: |
          ./chip-tool accesscontrol read-event  access-control-extension-changed 1 0
          On TH1(Chiptool), verify AccessControl cluster AccessControlExtensionChanged event Returns UNSUPPORTED_ACCESS (0x7e)
          [1656593726.387025][3990:3995] CHIP:DMG:
          [1656593726.387048][3990:3995] CHIP:DMG:                EventReportIB =
          [1656593726.387078][3990:3995] CHIP:DMG:                {
          [1656593726.387103][3990:3995] CHIP:DMG:                        EventStatusIB =
          [1656593726.387133][3990:3995] CHIP:DMG:                        {
          [1656593726.387161][3990:3995] CHIP:DMG:                                EventPath =
          [1656593726.387193][3990:3995] CHIP:DMG:                                {
          [1656593726.387226][3990:3995] CHIP:DMG:                                        Endpoint = 0x0,
          [1656593726.387260][3990:3995] CHIP:DMG:                                        Cluster = 0x1f,
          [1656593726.387293][3990:3995] CHIP:DMG:                                        Event = 0x1,
          [1656593726.387324][3990:3995] CHIP:DMG:                                },
          [1656593726.387359][3990:3995] CHIP:DMG:
          [1656593726.387388][3990:3995] CHIP:DMG:                                StatusIB =
          [1656593726.387419][3990:3995] CHIP:DMG:                                {
          [1656593726.387452][3990:3995] CHIP:DMG:                                        status = 0x7e (UNSUPPORTED_ACCESS),
          [1656593726.387484][3990:3995] CHIP:DMG:                                },
          [1656593726.387516][3990:3995] CHIP:DMG:
          [1656593726.387544][3990:3995] CHIP:DMG:                        },
          [1656593726.387577][3990:3995] CHIP:DMG:
          [1656593726.387602][3990:3995] CHIP:DMG:                },
          [1656593726.387635][3990:3995] CHIP:DMG:
          [1656593726.387659][3990:3995] CHIP:DMG:                EventReportIB =
          [1656593726.387689][3990:3995] CHIP:DMG:                {
          [1656593726.387714][3990:3995] CHIP:DMG:                        EventStatusIB =
          [1656593726.387743][3990:3995] CHIP:DMG:                        {
          [1656593726.387772][3990:3995] CHIP:DMG:                                EventPath =
          [1656593726.387804][3990:3995] CHIP:DMG:                                {
          [1656593726.387837][3990:3995] CHIP:DMG:                                        Endpoint = 0x0,
          [1656593726.387870][3990:3995] CHIP:DMG:                                        Cluster = 0x1f,
          [1656593726.387904][3990:3995] CHIP:DMG:                                        Event = 0x1,
          [1656593726.387935][3990:3995] CHIP:DMG:                                },
          [1656593726.387969][3990:3995] CHIP:DMG:
          [1656593726.387998][3990:3995] CHIP:DMG:                                StatusIB =
          [1656593726.388030][3990:3995] CHIP:DMG:                                {
          [1656593726.388063][3990:3995] CHIP:DMG:                                        status = 0x7e (UNSUPPORTED_ACCESS),
          [1656593726.388094][3990:3995] CHIP:DMG:                                },
          [1656593726.388126][3990:3995] CHIP:DMG:
          [1656593726.388154][3990:3995] CHIP:DMG:                        },
      disabled: true
