# 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: |
          verification step to be updated.
      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 "[{"fabricIndex": 1, "privilege": 4, "authMode": 2, "subjects": [112233], "targets": null}]" 1 0
          On TH(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 TH(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 "[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}]" 1 0
          On TH(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 TH(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 TH(Chiptool) , Verify the  Successfully with  extension attribute value is an empty list 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 TH(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 TH(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 TH(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 TH(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 TH(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
