# 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: 59.3.2. [TC-I-3.2] Functionality with Client as DUT

PICS:
    - I.C

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

tests:
    - label: "Note"
      verification: |
          Chip-tool command used below are an example to verify the  DUT as client test cases. For certification test, we expect DUT should have a capability or way to run the equivalent command.
      disabled: true

    - label:
          "DUT issues an Identify command to the Test Harness, with the
          IdentifyTime argument set to 0x003C (60 seconds) or a reasonable time
          that is supported by the DUT."
      PICS: I.C.C00.Tx
      verification: |
          Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)


          ./chip-tool identify identify 60 1 1
          Verify DUT receives  Identify command and success response on the TH(all-clusters-app) Log:
          [1667198527.969165][11428:11428] CHIP:EM: Handling via exchange: 17816r, Delegate: 0xaaaab32082d8
          [1667198527.969436][11428:11428] CHIP:DMG: InvokeRequestMessage =
          [1667198527.969513][11428:11428] CHIP:DMG: {
          [1667198527.969574][11428:11428] CHIP:DMG:         suppressResponse = false,
          [1667198527.969645][11428:11428] CHIP:DMG:         timedRequest = false,
          [1667198527.969708][11428:11428] CHIP:DMG:         InvokeRequests =
          [1667198527.969788][11428:11428] CHIP:DMG:         [
          [1667198527.969853][11428:11428] CHIP:DMG:                 CommandDataIB =
          [1667198527.969921][11428:11428] CHIP:DMG:                 {
          [1667198527.969997][11428:11428] CHIP:DMG:                         CommandPathIB =
          [1667198527.970089][11428:11428] CHIP:DMG:                         {
          [1667198527.970184][11428:11428] CHIP:DMG:                                 EndpointId = 0x1,
          [1667198527.970288][11428:11428] CHIP:DMG:                                 ClusterId = 0x3,
          [1667198527.970366][11428:11428] CHIP:DMG:                                 CommandId = 0x0,
          [1667198527.970652][11428:11428] CHIP:DMG:                         },
          [1667198527.970834][11428:11428] CHIP:DMG:
          [1667198527.970952][11428:11428] CHIP:DMG:                         CommandFields =
          [1667198527.971030][11428:11428] CHIP:DMG:                         {
          [1667198527.971128][11428:11428] CHIP:DMG:                                 0x0 = 60,
          [1667198527.971226][11428:11428] CHIP:DMG:                         },
          [1667198527.971312][11428:11428] CHIP:DMG:                 },
          [1667198527.971397][11428:11428] CHIP:DMG:
          [1667198527.971464][11428:11428] CHIP:DMG:         ],
          [1667198527.971618][11428:11428] CHIP:DMG:
          [1667198527.971693][11428:11428] CHIP:DMG:         InteractionModelRevision = 1
          [1667198527.971758][11428:11428] CHIP:DMG: },
          [1667198527.971910][11428:11428] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0003 e=1 p=m
          [1667198527.971988][11428:11428] CHIP:DMG: AccessControl: allowed
          [1667198527.972062][11428:11428] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0003 Command=0x0000_0000
          [1667198527.972159][11428:11428] CHIP:DMG: Endpoint 1, Cluster 0x0000_0003 update version to f0afa023
          [1667198527.972233][11428:11428] CHIP:ZCL: OnIdentifyStart
          [1667198527.972341][11428:11428] CHIP:DMG: Command handler moving to [ Preparing]
          [1667198527.972419][11428:11428] CHIP:DMG: Command handler moving to [AddingComm]
          [1667198527.972487][11428:11428] CHIP:DMG: Command handler moving to [AddedComma]
          [1667198527.972585][11428:11428] CHIP:DMG: Decreasing reference count for CommandHandler, remaining 0
          [1667198527.973173][11428:11428] CHIP:EM: <<< [E:17816r M:25305300 (Ack:7863755)] (S) Msg TX to 1:000000000001B669 [F6B5] --- Type 0001:09 (IM:InvokeCommandResponse)
          [1667198527.973291][11428:11428] CHIP:IN: (S) Sending msg 25305300 on secure session with LSID: 27440
          [1667198527.974016][11428:11428] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%wlan0]:40538 | 25305300 | [Interaction Model  (1) / InvokeCommandResponse (0x09) / Session = 43778 / Exchange = 17816]
          [1667198527.974122][11428:11428] CHIP:DMG: Header Flags =
          [1667198527.974181][11428:11428] CHIP:DMG: {
          [1667198527.974268][11428:11428] CHIP:DMG:     Exchange (0x06) =
          [1667198527.974321][11428:11428] CHIP:DMG:     {
          [1667198527.974518][11428:11428] CHIP:DMG:         AckMsg = 7863755
          [1667198527.974582][11428:11428] CHIP:DMG:         NeedsAck = true
          [1667198527.974770][11428:11428] CHIP:DMG:     }
          [1667198527.974856][11428:11428] CHIP:DMG: }
          [1667198527.974914][11428:11428] CHIP:DMG:
          [1667198527.974991][11428:11428] CHIP:DMG: Encrypted Payload (67 bytes) =
          [1667198527.975050][11428:11428] CHIP:DMG: {
          [1667198527.975107][11428:11428] CHIP:DMG:     data = 0002ab00d4208201035b2d023f522d785d0fc3697ed4baaa3e063237961ee69c70f03b8015c06b838d292797b56fbb65118de4b30f63c246d35a9066502a4f211b665d
          [1667198527.975170][11428:11428] CHIP:DMG:     buffer_ptr = 187650259301360
          [1667198527.975220][11428:11428] CHIP:DMG: }
          [1667198527.975353][11428:11428] CHIP:DMG:
          [1667198527.975440][11428:11428] CHIP:DMG: Decrypted Payload (33 bytes) =
          [1667198527.975500][11428:11428] CHIP:DMG: {
          [1667198527.975557][11428:11428] CHIP:DMG:     data = 152800360115350137002400012401032402001835012400001818181824ff0118
          [1667198527.975613][11428:11428] CHIP:DMG: }
          [1667198527.975666][11428:11428] CHIP:DMG:
          [1667198527.975809][11428:11428] CHIP:DMG: InvokeResponseMessage =
          [1667198527.975876][11428:11428] CHIP:DMG: {
          [1667198527.975937][11428:11428] CHIP:DMG:         suppressResponse = false,
          [1667198527.976003][11428:11428] CHIP:DMG:         InvokeResponseIBs =
          [1667198527.976082][11428:11428] CHIP:DMG:         [
          [1667198527.976147][11428:11428] CHIP:DMG:                 InvokeResponseIB =
          [1667198527.976239][11428:11428] CHIP:DMG:                 {
          [1667198527.976304][11428:11428] CHIP:DMG:                         CommandStatusIB =
          [1667198527.976732][11428:11428] CHIP:DMG:                         {
          [1667198527.976820][11428:11428] CHIP:DMG:                                 CommandPathIB =
          [1667198527.976919][11428:11428] CHIP:DMG:                                 {
          [1667198527.977020][11428:11428] CHIP:DMG:                                         EndpointId = 0x1,
          [1667198527.977128][11428:11428] CHIP:DMG:                                         ClusterId = 0x3,
          [1667198527.977227][11428:11428] CHIP:DMG:                                         CommandId = 0x0,
          [1667198527.977440][11428:11428] CHIP:DMG:                                 },
          [1667198527.977555][11428:11428] CHIP:DMG:
          [1667198527.977712][11428:11428] CHIP:DMG:                                 StatusIB =
          [1667198527.977815][11428:11428] CHIP:DMG:                                 {
          [1667198527.977919][11428:11428] CHIP:DMG:                                         status = 0x00 (SUCCESS),
          [1667198527.978173][11428:11428] CHIP:DMG:                                 },
          [1667198527.978355][11428:11428] CHIP:DMG:
          [1667198527.978447][11428:11428] CHIP:DMG:                         },
          [1667198527.978567][11428:11428] CHIP:DMG:
          [1667198527.978711][11428:11428] CHIP:DMG:                 },
          [1667198527.978804][11428:11428] CHIP:DMG:
          [1667198527.978869][11428:11428] CHIP:DMG:         ],
      disabled: true

    - label:
          "DUT issues an IdentifyQuery command to the Test Harness. Note:
          IdentifyQuery is not supported by Matter."
      PICS: I.C.C01.Tx
      verification: |
          IdentifyQuery is not supported by Matter
      disabled: true

    - label:
          "DUT issues an Identify command to the Test Harness, with the
          IdentifyTime argument set to 0x0000 (Stop)."
      PICS: I.C.C00.Tx
      verification: |
          Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)
          ./chip-tool identify identify 0 1 1
          Verify DUT receives  Identify command response on the TH(all-clusters-app) Log:

          [1667198553.327170][11428:11428] CHIP:EM: Handling via exchange: 48289r, Delegate: 0xaaaab32082d8
          [1667198553.327776][11428:11428] CHIP:DMG: InvokeRequestMessage =
          [1667198553.327855][11428:11428] CHIP:DMG: {
          [1667198553.327913][11428:11428] CHIP:DMG:         suppressResponse = false,
          [1667198553.328635][11428:11428] CHIP:DMG:         timedRequest = false,
          [1667198553.328728][11428:11428] CHIP:DMG:         InvokeRequests =
          [1667198553.328814][11428:11428] CHIP:DMG:         [
          [1667198553.328878][11428:11428] CHIP:DMG:                 CommandDataIB =
          [1667198553.329382][11428:11428] CHIP:DMG:                 {
          [1667198553.329504][11428:11428] CHIP:DMG:                         CommandPathIB =
          [1667198553.330002][11428:11428] CHIP:DMG:                         {
          [1667198553.330767][11428:11428] CHIP:DMG:                                 EndpointId = 0x1,
          [1667198553.331341][11428:11428] CHIP:DMG:                                 ClusterId = 0x3,
          [1667198553.332023][11428:11428] CHIP:DMG:                                 CommandId = 0x0,
          [1667198553.332126][11428:11428] CHIP:DMG:                         },
          [1667198553.332270][11428:11428] CHIP:DMG:
          [1667198553.332693][11428:11428] CHIP:DMG:                         CommandFields =
          [1667198553.332827][11428:11428] CHIP:DMG:                         {
          [1667198553.333261][11428:11428] CHIP:DMG:                                 0x0 = 0,
          [1667198553.333734][11428:11428] CHIP:DMG:                         },
          [1667198553.333822][11428:11428] CHIP:DMG:                 },
          [1667198553.333954][11428:11428] CHIP:DMG:
          [1667198553.334359][11428:11428] CHIP:DMG:         ],
          [1667198553.334439][11428:11428] CHIP:DMG:
          [1667198553.334940][11428:11428] CHIP:DMG:         InteractionModelRevision = 1
          [1667198553.335006][11428:11428] CHIP:DMG: },
          [1667198553.335517][11428:11428] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0003 e=1 p=m
          [1667198553.335608][11428:11428] CHIP:DMG: AccessControl: allowed
          [1667198553.335677][11428:11428] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0003 Command=0x0000_0000
          [1667198553.336264][11428:11428] CHIP:DMG: Endpoint 1, Cluster 0x0000_0003 update version to f0afa03d
          [1667198553.336343][11428:11428] CHIP:ZCL: OnIdentifyStop
          [1667198553.336444][11428:11428] CHIP:DMG: Command handler moving to [ Preparing]
          [1667198553.336512][11428:11428] CHIP:DMG: Command handler moving to [AddingComm]
          [1667198553.337076][11428:11428] CHIP:DMG: Command handler moving to [AddedComma]
          [1667198553.337175][11428:11428] CHIP:DMG: Decreasing reference count for CommandHandler, remaining 0
          [1667198553.338264][11428:11428] CHIP:EM: <<< [E:48289r M:91319713 (Ack:46774659)] (S) Msg TX to 1:000000000001B669 [F6B5] --- Type 0001:09 (IM:InvokeCommandResponse)
          [1667198553.338392][11428:11428] CHIP:IN: (S) Sending msg 91319713 on secure session with LSID: 27441
          [1667198553.339179][11428:11428] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%wlan0]:57175 | 91319713 | [Interaction Model  (1) / InvokeCommandResponse (0x09) / Session = 5801 / Exchange = 48289]
          [1667198553.339277][11428:11428] CHIP:DMG: Header Flags =
          [1667198553.339335][11428:11428] CHIP:DMG: {
          [1667198553.339421][11428:11428] CHIP:DMG:     Exchange (0x06) =
          [1667198553.339477][11428:11428] CHIP:DMG:     {
          [1667198553.339536][11428:11428] CHIP:DMG:         AckMsg = 46774659
          [1667198553.339592][11428:11428] CHIP:DMG:         NeedsAck = true
          [1667198553.339646][11428:11428] CHIP:DMG:     }
          [1667198553.339714][11428:11428] CHIP:DMG: }
          [1667198553.339765][11428:11428] CHIP:DMG:
          [1667198553.339832][11428:11428] CHIP:DMG: Encrypted Payload (67 bytes) =
          [1667198553.339882][11428:11428] CHIP:DMG: {
          [1667198553.339934][11428:11428] CHIP:DMG:     data = 00a91600a16d7105e72c79fe81a91a9b5f372c4eb282d8b2a121cede4ff2e23a2e23855a4d11c5feb79d74e31b2b7bf8aaf58f5fc15abe545f2ac0343b2551d4dbbd0c
          [1667198553.339992][11428:11428] CHIP:DMG:     buffer_ptr = 187650259300784
          [1667198553.340045][11428:11428] CHIP:DMG: }
          [1667198553.340098][11428:11428] CHIP:DMG:
          [1667198553.340173][11428:11428] CHIP:DMG: Decrypted Payload (33 bytes) =
          [1667198553.340231][11428:11428] CHIP:DMG: {
          [1667198553.340285][11428:11428] CHIP:DMG:     data = 152800360115350137002400012401032402001835012400001818181824ff0118
          [1667198553.340344][11428:11428] CHIP:DMG: }
          [1667198553.340395][11428:11428] CHIP:DMG:
          [1667198553.340533][11428:11428] CHIP:DMG: InvokeResponseMessage =
          [1667198553.340595][11428:11428] CHIP:DMG: {
          [1667198553.340655][11428:11428] CHIP:DMG:         suppressResponse = false,
          [1667198553.340716][11428:11428] CHIP:DMG:         InvokeResponseIBs =
          [1667198553.340794][11428:11428] CHIP:DMG:         [
          [1667198553.340857][11428:11428] CHIP:DMG:                 InvokeResponseIB =
          [1667198553.341054][11428:11428] CHIP:DMG:                 {
          [1667198553.341137][11428:11428] CHIP:DMG:                         CommandStatusIB =
          [1667198553.341271][11428:11428] CHIP:DMG:                         {
          [1667198553.341399][11428:11428] CHIP:DMG:                                 CommandPathIB =
          [1667198553.341567][11428:11428] CHIP:DMG:                                 {
          [1667198553.341643][11428:11428] CHIP:DMG:                                         EndpointId = 0x1,
          [1667198553.341783][11428:11428] CHIP:DMG:                                         ClusterId = 0x3,
          [1667198553.341945][11428:11428] CHIP:DMG:                                         CommandId = 0x0,
          [1667198553.342106][11428:11428] CHIP:DMG:                                 },
          [1667198553.342192][11428:11428] CHIP:DMG:
          [1667198553.342265][11428:11428] CHIP:DMG:                                 StatusIB =
          [1667198553.342429][11428:11428] CHIP:DMG:                                 {
          [1667198553.342540][11428:11428] CHIP:DMG:                                         status = 0x00 (SUCCESS),
          [1667198553.342630][11428:11428] CHIP:DMG:                                 },
          [1667198553.342722][11428:11428] CHIP:DMG:
          [1667198553.342804][11428:11428] CHIP:DMG:                         },
          [1667198553.342885][11428:11428] CHIP:DMG:
      disabled: true

    - label:
          "DUT sends a TriggerEffect command to the Test Harness, with any
          supported EffectIdentifier argument and EffectVariant set to 0."
      PICS: I.C.C40.Tx
      verification: |
          Product maker needs to provide instructions for how to trigger the command on the DUT. For comparison, the DUT behavior for this test step can be simulated using chip-tool (when DUT is a commissioner/Client)

          ./chip-tool identify trigger-effect 0 0 1 1
          Verify DUT receives  Identify command response on the TH(all-clusters-app) Log:

          [1667198739.675252][11428:11428] CHIP:EM: Handling via exchange: 45132r, Delegate: 0xaaaab32082d8
          [1667198739.675400][11428:11428] CHIP:DMG: InvokeRequestMessage =
          [1667198739.675647][11428:11428] CHIP:DMG: {
          [1667198739.675714][11428:11428] CHIP:DMG:         suppressResponse = false,
          [1667198739.675784][11428:11428] CHIP:DMG:         timedRequest = false,
          [1667198739.675846][11428:11428] CHIP:DMG:         InvokeRequests =
          [1667198739.675924][11428:11428] CHIP:DMG:         [
          [1667198739.676050][11428:11428] CHIP:DMG:                 CommandDataIB =
          [1667198739.676131][11428:11428] CHIP:DMG:                 {
          [1667198739.676205][11428:11428] CHIP:DMG:                         CommandPathIB =
          [1667198739.676276][11428:11428] CHIP:DMG:                         {
          [1667198739.676358][11428:11428] CHIP:DMG:                                 EndpointId = 0x1,
          [1667198739.676430][11428:11428] CHIP:DMG:                                 ClusterId = 0x3,
          [1667198739.676498][11428:11428] CHIP:DMG:                                 CommandId = 0x40,
          [1667198739.676585][11428:11428] CHIP:DMG:                         },
          [1667198739.676669][11428:11428] CHIP:DMG:
          [1667198739.676737][11428:11428] CHIP:DMG:                         CommandFields =
          [1667198739.676822][11428:11428] CHIP:DMG:                         {
          [1667198739.676906][11428:11428] CHIP:DMG:                                 0x0 = 0,
          [1667198739.676985][11428:11428] CHIP:DMG:                                 0x1 = 0,
          [1667198739.677084][11428:11428] CHIP:DMG:                         },
          [1667198739.677158][11428:11428] CHIP:DMG:                 },'{"
          [1667198739.677236][11428:11428] CHIP:DMG:
          [1667198739.677296][11428:11428] CHIP:DMG:         ],
          [1667198739.677372][11428:11428] CHIP:DMG:
          [1667198739.677433][11428:11428] CHIP:DMG:         InteractionModelRevision = 1
          [1667198739.677489][11428:11428] CHIP:DMG: },
          [1667198739.677633][11428:11428] CHIP:DMG: AccessControl: checking f=1 a=c s=0x000000000001B669 t= c=0x0000_0003 e=1 p=m
          [1667198739.677716][11428:11428] CHIP:DMG: AccessControl: allowed
          [1667198739.677783][11428:11428] CHIP:DMG: Received command for Endpoint=1 Cluster=0x0000_0003 Command=0x0000_0040
          [1667198739.677865][11428:11428] CHIP:ZCL: RX identify:trigger effect 0x0 variant 0x0
          [1667198739.677938][11428:11428] CHIP:ZCL: EMBER_ZCL_IDENTIFY_EFFECT_IDENTIFIER_BLINK
          [1667198739.678031][11428:11428] CHIP:DMG: Command handler moving to [ Preparing]
          [1667198739.678102][11428:11428] CHIP:DMG: Command handler moving to [AddingComm]
          [1667198739.678166][11428:11428] CHIP:DMG: Command handler moving to [AddedComma]
          [1667198739.678260][11428:11428] CHIP:DMG: Decreasing reference count for CommandHandler, remaining 0
          [1667198739.678867][11428:11428] CHIP:EM: <<< [E:45132r M:232447074 (Ack:16166817)] (S) Msg TX to 1:000000000001B669 [F6B5] --- Type 0001:09 (IM:InvokeCommandResponse)
          [1667198739.678975][11428:11428] CHIP:IN: (S) Sending msg 232447074 on secure session with LSID: 27442
          [1667198739.679673][11428:11428] CHIP:DMG: >> to UDP:[fe80::e65f:1ff:fe0e:be37%eth0]:35298 | 232447074 | [Interaction Model  (1) / InvokeCommandResponse (0x09) / Session = 4854 / Exchange = 45132]
          [1667198739.679771][11428:11428] CHIP:DMG: Header Flags =
          [1667198739.679827][11428:11428] CHIP:DMG: {
          [1667198739.679913][11428:11428] CHIP:DMG:     Exchange (0x06) =
          [1667198739.679970][11428:11428] CHIP:DMG:     {
          [1667198739.680028][11428:11428] CHIP:DMG:         AckMsg = 16166817
          [1667198739.680078][11428:11428] CHIP:DMG:         NeedsAck = true
          [1667198739.680134][11428:11428] CHIP:DMG:     }
          [1667198739.680209][11428:11428] CHIP:DMG: }
          [1667198739.680264][11428:11428] CHIP:DMG:
          [1667198739.680326][11428:11428] CHIP:DMG: Encrypted Payload (67 bytes) =
          [1667198739.680381][11428:11428] CHIP:DMG: {
          [1667198739.680429][11428:11428] CHIP:DMG:     data = 00f6120062dcda0d76da293c3de71d0e1d1a6eb1a07c1ef402c3312a9db392279df61b8519c794ade88b925c5b5236b851dc2a113e591ec8fa9f07cca32b9befcfce60
          [1667198739.680486][11428:11428] CHIP:DMG:     buffer_ptr = 187650259300496
          [1667198739.680539][11428:11428] CHIP:DMG: }
          [1667198739.680585][11428:11428] CHIP:DMG:
          [1667198739.680651][11428:11428] CHIP:DMG: Decrypted Payload (33 bytes) =
          [1667198739.680707][11428:11428] CHIP:DMG: {
          [1667198739.680760][11428:11428] CHIP:DMG:     data = 152800360115350137002400012401032402401835012400001818181824ff0118
          [1667198739.680814][11428:11428] CHIP:DMG: }
          [1667198739.680866][11428:11428] CHIP:DMG:
          [1667198739.680998][11428:11428] CHIP:DMG: InvokeResponseMessage =
          [1667198739.681061][11428:11428] CHIP:DMG: {
          [1667198739.681114][11428:11428] CHIP:DMG:         suppressResponse = false,
          [1667198739.681176][11428:11428] CHIP:DMG:         InvokeResponseIBs =
          [1667198739.681247][11428:11428] CHIP:DMG:         [
          [1667198739.681310][11428:11428] CHIP:DMG:                 InvokeResponseIB =
          [1667198739.681391][11428:11428] CHIP:DMG:                 {
          [1667198739.681467][11428:11428] CHIP:DMG:                         CommandStatusIB =
          [1667198739.681560][11428:11428] CHIP:DMG:                         {
          [1667198739.681646][11428:11428] CHIP:DMG:                                 CommandPathIB =
          [1667198739.681731][11428:11428] CHIP:DMG:                                 {
          [1667198739.681811][11428:11428] CHIP:DMG:                                         EndpointId = 0x1,
          [1667198739.681912][11428:11428] CHIP:DMG:                                         ClusterId = 0x3,
          [1667198739.682011][11428:11428] CHIP:DMG:                                         CommandId = 0x40,
          [1667198739.682104][11428:11428] CHIP:DMG:                                 },
          [1667198739.682198][11428:11428] CHIP:DMG:
          [1667198739.682287][11428:11428] CHIP:DMG:                                 StatusIB =
          [1667198739.682383][11428:11428] CHIP:DMG:                                 {
          [1667198739.682489][11428:11428] CHIP:DMG:                                         status = 0x00 (SUCCESS),
          [1667198739.682580][11428:11428] CHIP:DMG:                                 },
          [1667198739.682674][11428:11428] CHIP:DMG:
          [1667198739.682738][11428:11428] CHIP:DMG:                         },
      disabled: true
