ZAP-generated Matter TV Casting Cluster Commands (#32626)
* ZAP-generated Matter TV Casting Cluster Commands
* Addressed comments by sharadb-amazon
* Excluding zap-generated files from restyling CI check
* Addressed comments by bzbarsky-apple part1
* Addressed comments by bzbarsky-apple part2 unlinked availability.yaml
* Addressed comments by bzbarsky-apple part3 unused options
diff --git a/.restyled.yaml b/.restyled.yaml
index 9acbe8e..be74f5b 100644
--- a/.restyled.yaml
+++ b/.restyled.yaml
@@ -74,6 +74,7 @@
- "examples/chef/sample_app_util/test_files/*.yaml"
- "examples/chef/zzz_generated/**/*"
- "examples/platform/nxp/k32w/k32w0/scripts/demo_generated_certs/**/*"
+ - "examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/*" # zap-generated files
- "integrations/cloudbuild/*.yaml" # uglier long command line content
- "scripts/run_codegen_targets.sh" # shellharden breaks for loops over command outputs
- "scripts/tagging/tag_new_release.sh" # shellharden breaks parameter passing
diff --git a/examples/tv-casting-app/APIs.md b/examples/tv-casting-app/APIs.md
index d4a51dc..5d80fca 100644
--- a/examples/tv-casting-app/APIs.md
+++ b/examples/tv-casting-app/APIs.md
@@ -905,18 +905,27 @@
[issue commands](#issuing-commands) to it, [read](#read-operations) current
playback state, and [subscribe](#subscriptions) to playback events.
-Refer to the following platform specific files for a list of clusters, command
-and attributes supported by the Matter TV Casting library:
+On Linux refer to the following platform specific files:
-1. Linux:
+1. For a list of clusters, commands and attributes supported by the Matter TV
+ Casting library:
[tv-casting-common/clusters/Clusters.h](tv-casting-common/clusters/Clusters.h)
-
-Refer to the following platform specific files for the IDs and request /
-response types to use with these APIs:
-
-1. Linux:
+2. For the IDs and request / response types to use with these APIs:
[/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h](/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h)
+On iOS refer to the following platform specific files:
+
+1. For a list of clusters, commands and attributes supported by the Matter TV
+ Casting library:
+ [/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCClusterObjects.h](/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCClusterObjects.h)
+2. For the IDs and request / response types to use with the commands:
+ [/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCCommandObjects.h](/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCCommandObjects.h)
+ and
+ [/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCCommandPayloads.h](/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCCommandPayloads.h)
+3. For attribute [read operations](#read-operations) and
+ [subscriptions](#subscriptions):
+ [/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCAttributeObjects.h](/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCAttributeObjects.h)
+
### Issuing Commands
_{Complete Command invocation examples: [Linux](linux/simple-app-helper.cpp) |
@@ -998,7 +1007,7 @@
}
// create the LaunchURL request
-let request: MCContentLauncherClusterLaunchURLRequest = MCContentLauncherClusterLaunchURLRequest()
+let request: MCContentLauncherClusterLaunchURLParams = MCContentLauncherClusterLaunchURLParams()
request.contentURL = contentUrl
request.displayString = displayString
diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge.xcodeproj/project.pbxproj b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge.xcodeproj/project.pbxproj
index f55ca2b..c911328 100644
--- a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge.xcodeproj/project.pbxproj
+++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge.xcodeproj/project.pbxproj
@@ -7,14 +7,18 @@
objects = {
/* Begin PBXBuildFile section */
- 39589F162B91556B00BE040C /* MCStructsObjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 39589F152B91556B00BE040C /* MCStructsObjc.h */; };
- 39589F182B91557700BE040C /* MCStructsObjc.mm in Sources */ = {isa = PBXBuildFile; fileRef = 39589F172B91557700BE040C /* MCStructsObjc.mm */; };
+ 39589F162B91556B00BE040C /* MCInteractionModelStructs.h in Headers */ = {isa = PBXBuildFile; fileRef = 39589F152B91556B00BE040C /* MCInteractionModelStructs.h */; };
+ 39589F182B91557700BE040C /* MCInteractionModelStructs.mm in Sources */ = {isa = PBXBuildFile; fileRef = 39589F172B91557700BE040C /* MCInteractionModelStructs.mm */; };
39BF57C52B8CFF790081653C /* MCAttributeObjects.h in Headers */ = {isa = PBXBuildFile; fileRef = 39BF57C42B8CFF790081653C /* MCAttributeObjects.h */; };
39BF57C72B8CFFB90081653C /* MCAttributeObjects.mm in Sources */ = {isa = PBXBuildFile; fileRef = 39BF57C62B8CFFB90081653C /* MCAttributeObjects.mm */; };
39BF57C92B8D66540081653C /* NSStringSpanConversion.h in Headers */ = {isa = PBXBuildFile; fileRef = 39BF57C82B8D66540081653C /* NSStringSpanConversion.h */; };
39BF57CB2B8E54F80081653C /* NSDataSpanConversion.h in Headers */ = {isa = PBXBuildFile; fileRef = 39BF57CA2B8E54F80081653C /* NSDataSpanConversion.h */; };
39BF57CD2B8FC0EF0081653C /* MCClusterObjects.h in Headers */ = {isa = PBXBuildFile; fileRef = 39BF57CC2B8FC0EF0081653C /* MCClusterObjects.h */; };
39BF57CF2B8FC1030081653C /* MCClusterObjects.mm in Sources */ = {isa = PBXBuildFile; fileRef = 39BF57CE2B8FC1030081653C /* MCClusterObjects.mm */; };
+ 39D4D2502B97942D00BF3CFE /* MCCommandObjects.h in Headers */ = {isa = PBXBuildFile; fileRef = 39D4D24F2B97942D00BF3CFE /* MCCommandObjects.h */; };
+ 39D4D2522B97943D00BF3CFE /* MCCommandObjects.mm in Sources */ = {isa = PBXBuildFile; fileRef = 39D4D2512B97943D00BF3CFE /* MCCommandObjects.mm */; };
+ 39DB29E92B9A3B1D0071334A /* MCCommandPayloads.h in Headers */ = {isa = PBXBuildFile; fileRef = 39DB29E82B9A3B1D0071334A /* MCCommandPayloads.h */; };
+ 39DB29EB2B9A3B2D0071334A /* MCCommandPayloads.mm in Sources */ = {isa = PBXBuildFile; fileRef = 39DB29EA2B9A3B2D0071334A /* MCCommandPayloads.mm */; };
3C0474062B3F7E5F0012AE95 /* MCEndpointFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C0474052B3F7E5F0012AE95 /* MCEndpointFilter.h */; };
3C04740C2B4604CF0012AE95 /* MCCryptoUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C04740B2B4604CF0012AE95 /* MCCryptoUtils.h */; };
3C04740E2B4605B40012AE95 /* MCCryptoUtils.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3C04740D2B4605B40012AE95 /* MCCryptoUtils.mm */; };
@@ -42,8 +46,6 @@
3C4F52282B51DB3000BB8A10 /* MCCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C4F52272B51DB3000BB8A10 /* MCCommand.h */; };
3C4F522A2B51DFAE00BB8A10 /* MCCommand_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C4F52292B51DFAE00BB8A10 /* MCCommand_Internal.h */; };
3C4F522C2B51E02800BB8A10 /* MCCommand.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3C4F522B2B51E02800BB8A10 /* MCCommand.mm */; };
- 3C621CA12B5F6CF8005CDBA3 /* MCCommandObjects.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C621CA02B5F6CF8005CDBA3 /* MCCommandObjects.h */; };
- 3C621CA32B5F6D08005CDBA3 /* MCCommandObjects.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3C621CA22B5F6D08005CDBA3 /* MCCommandObjects.mm */; };
3C621CA52B605A6A005CDBA3 /* MCAttribute.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C621CA42B605A6A005CDBA3 /* MCAttribute.h */; };
3C621CA72B605AA1005CDBA3 /* MCObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C621CA62B605AA1005CDBA3 /* MCObserver.h */; };
3C621CA92B605C52005CDBA3 /* MCAttribute_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C621CA82B605C52005CDBA3 /* MCAttribute_Internal.h */; };
@@ -84,14 +86,19 @@
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
- 39589F152B91556B00BE040C /* MCStructsObjc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MCStructsObjc.h; sourceTree = "<group>"; };
- 39589F172B91557700BE040C /* MCStructsObjc.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = MCStructsObjc.mm; sourceTree = "<group>"; };
+ 39589F152B91556B00BE040C /* MCInteractionModelStructs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MCInteractionModelStructs.h; sourceTree = "<group>"; };
+ 39589F172B91557700BE040C /* MCInteractionModelStructs.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = MCInteractionModelStructs.mm; sourceTree = "<group>"; };
+ 399049A62B9FC4ED000C91F0 /* MCCommandPayloads_Internal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MCCommandPayloads_Internal.h; sourceTree = "<group>"; };
39BF57C42B8CFF790081653C /* MCAttributeObjects.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MCAttributeObjects.h; sourceTree = "<group>"; };
39BF57C62B8CFFB90081653C /* MCAttributeObjects.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = MCAttributeObjects.mm; sourceTree = "<group>"; };
39BF57C82B8D66540081653C /* NSStringSpanConversion.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSStringSpanConversion.h; sourceTree = "<group>"; };
39BF57CA2B8E54F80081653C /* NSDataSpanConversion.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSDataSpanConversion.h; sourceTree = "<group>"; };
39BF57CC2B8FC0EF0081653C /* MCClusterObjects.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MCClusterObjects.h; sourceTree = "<group>"; };
39BF57CE2B8FC1030081653C /* MCClusterObjects.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = MCClusterObjects.mm; sourceTree = "<group>"; };
+ 39D4D24F2B97942D00BF3CFE /* MCCommandObjects.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MCCommandObjects.h; sourceTree = "<group>"; };
+ 39D4D2512B97943D00BF3CFE /* MCCommandObjects.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = MCCommandObjects.mm; sourceTree = "<group>"; };
+ 39DB29E82B9A3B1D0071334A /* MCCommandPayloads.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MCCommandPayloads.h; sourceTree = "<group>"; };
+ 39DB29EA2B9A3B2D0071334A /* MCCommandPayloads.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = MCCommandPayloads.mm; sourceTree = "<group>"; };
3C0474052B3F7E5F0012AE95 /* MCEndpointFilter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MCEndpointFilter.h; sourceTree = "<group>"; };
3C04740B2B4604CF0012AE95 /* MCCryptoUtils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MCCryptoUtils.h; sourceTree = "<group>"; };
3C04740D2B4605B40012AE95 /* MCCryptoUtils.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = MCCryptoUtils.mm; sourceTree = "<group>"; };
@@ -124,8 +131,6 @@
3C4F52272B51DB3000BB8A10 /* MCCommand.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MCCommand.h; sourceTree = "<group>"; };
3C4F52292B51DFAE00BB8A10 /* MCCommand_Internal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MCCommand_Internal.h; sourceTree = "<group>"; };
3C4F522B2B51E02800BB8A10 /* MCCommand.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = MCCommand.mm; sourceTree = "<group>"; };
- 3C621CA02B5F6CF8005CDBA3 /* MCCommandObjects.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MCCommandObjects.h; sourceTree = "<group>"; };
- 3C621CA22B5F6D08005CDBA3 /* MCCommandObjects.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = MCCommandObjects.mm; sourceTree = "<group>"; };
3C621CA42B605A6A005CDBA3 /* MCAttribute.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MCAttribute.h; sourceTree = "<group>"; };
3C621CA62B605AA1005CDBA3 /* MCObserver.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MCObserver.h; sourceTree = "<group>"; };
3C621CA82B605C52005CDBA3 /* MCAttribute_Internal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MCAttribute_Internal.h; sourceTree = "<group>"; };
@@ -192,8 +197,13 @@
39BF57C62B8CFFB90081653C /* MCAttributeObjects.mm */,
39BF57CC2B8FC0EF0081653C /* MCClusterObjects.h */,
39BF57CE2B8FC1030081653C /* MCClusterObjects.mm */,
- 39589F152B91556B00BE040C /* MCStructsObjc.h */,
- 39589F172B91557700BE040C /* MCStructsObjc.mm */,
+ 39589F152B91556B00BE040C /* MCInteractionModelStructs.h */,
+ 39589F172B91557700BE040C /* MCInteractionModelStructs.mm */,
+ 39D4D24F2B97942D00BF3CFE /* MCCommandObjects.h */,
+ 39D4D2512B97943D00BF3CFE /* MCCommandObjects.mm */,
+ 39DB29E82B9A3B1D0071334A /* MCCommandPayloads.h */,
+ 39DB29EA2B9A3B2D0071334A /* MCCommandPayloads.mm */,
+ 399049A62B9FC4ED000C91F0 /* MCCommandPayloads_Internal.h */,
);
path = "zap-generated";
sourceTree = "<group>";
@@ -265,8 +275,6 @@
3C621CA42B605A6A005CDBA3 /* MCAttribute.h */,
3C621CA82B605C52005CDBA3 /* MCAttribute_Internal.h */,
3C621CAA2B605C6E005CDBA3 /* MCAttribute.mm */,
- 3C621CA02B5F6CF8005CDBA3 /* MCCommandObjects.h */,
- 3C621CA22B5F6D08005CDBA3 /* MCCommandObjects.mm */,
3C4F521F2B507C4A00BB8A10 /* MCEndpointClusterType.h */,
3C4F52132B4F31DC00BB8A10 /* MCDeviceTypeStruct.h */,
3C4F52152B4F31FA00BB8A10 /* MCDeviceTypeStruct.m */,
@@ -339,11 +347,13 @@
3CF71C0E2A992DA2003A5CE5 /* MCDataSource.h in Headers */,
3C4F52142B4F31DC00BB8A10 /* MCDeviceTypeStruct.h in Headers */,
39BF57CD2B8FC0EF0081653C /* MCClusterObjects.h in Headers */,
+ 39D4D2502B97942D00BF3CFE /* MCCommandObjects.h in Headers */,
3C26AC8C2926FE0C00BA6881 /* DeviceAttestationCredentialsProviderImpl.hpp in Headers */,
3C621CA52B605A6A005CDBA3 /* MCAttribute.h in Headers */,
3CD73F1C2A9E8396009D82D1 /* MCCommissionableDataProvider.h in Headers */,
3C4F521E2B4F4B3B00BB8A10 /* MCEndpoint_Internal.h in Headers */,
39BF57C92B8D66540081653C /* NSStringSpanConversion.h in Headers */,
+ 39DB29E92B9A3B1D0071334A /* MCCommandPayloads.h in Headers */,
3C4F52262B50899700BB8A10 /* MCCluster_Internal.h in Headers */,
3CF71C0A2A992D0D003A5CE5 /* MCCastingApp.h in Headers */,
3C4F521C2B4F4B1B00BB8A10 /* MCCastingPlayer_Internal.h in Headers */,
@@ -357,7 +367,7 @@
3CD73F202A9EA060009D82D1 /* MCDeviceAttestationCredentials.h in Headers */,
3CCB8740286A593700771BAD /* CastingServerBridge.h in Headers */,
3CE5ECCE2A673B30007CF331 /* CommissioningCallbackHandlers.h in Headers */,
- 39589F162B91556B00BE040C /* MCStructsObjc.h in Headers */,
+ 39589F162B91556B00BE040C /* MCInteractionModelStructs.h in Headers */,
3CCB8742286A593700771BAD /* ConversionUtils.hpp in Headers */,
3C621CA72B605AA1005CDBA3 /* MCObserver.h in Headers */,
3C9437922B3B478E0096E5F4 /* MCErrorUtils.h in Headers */,
@@ -365,7 +375,6 @@
3CCB8741286A593700771BAD /* DiscoveredNodeData.h in Headers */,
3C0474062B3F7E5F0012AE95 /* MCEndpointFilter.h in Headers */,
3CCB87212869085400771BAD /* MatterTvCastingBridge.h in Headers */,
- 3C621CA12B5F6CF8005CDBA3 /* MCCommandObjects.h in Headers */,
3C4F52202B507C4A00BB8A10 /* MCEndpointClusterType.h in Headers */,
3C6920462AA1093300D0F613 /* MCDeviceAttestationCredentialsProvider.h in Headers */,
39BF57C52B8CFF790081653C /* MCAttributeObjects.h in Headers */,
@@ -475,13 +484,13 @@
3CE5ECD02A673E2C007CF331 /* CommissioningCallbackHandlers.m in Sources */,
39BF57CF2B8FC1030081653C /* MCClusterObjects.mm in Sources */,
3CD73F192A9E68A7009D82D1 /* MCRotatingDeviceIdUniqueIdProvider.mm in Sources */,
- 39589F182B91557700BE040C /* MCStructsObjc.mm in Sources */,
+ 39589F182B91557700BE040C /* MCInteractionModelStructs.mm in Sources */,
+ 39DB29EB2B9A3B2D0071334A /* MCCommandPayloads.mm in Sources */,
3CF8532728E37F1000F07B9F /* MatterError.mm in Sources */,
3C4F522C2B51E02800BB8A10 /* MCCommand.mm in Sources */,
3C4E53B628E5595A00F293E8 /* ContentLauncherTypes.mm in Sources */,
3C81C75028F7A7D3001CB9D1 /* VideoPlayer.m in Sources */,
3CCB8744286A593700771BAD /* ConversionUtils.mm in Sources */,
- 3C621CA32B5F6D08005CDBA3 /* MCCommandObjects.mm in Sources */,
3CF71C0C2A992D25003A5CE5 /* MCCastingApp.mm in Sources */,
3C621CAB2B605C6E005CDBA3 /* MCAttribute.mm in Sources */,
3C4F52122B4E18ED00BB8A10 /* MCEndpoint.mm in Sources */,
@@ -498,6 +507,7 @@
3C26AC9329282B8100BA6881 /* DeviceAttestationCredentialsHolder.m in Sources */,
3C26AC902927008900BA6881 /* DeviceAttestationCredentialsProviderImpl.mm in Sources */,
3CCB873F286A593700771BAD /* DiscoveredNodeData.mm in Sources */,
+ 39D4D2522B97943D00BF3CFE /* MCCommandObjects.mm in Sources */,
3C4F52162B4F31FA00BB8A10 /* MCDeviceTypeStruct.m in Sources */,
3C2696FB2B4A5FC50026E771 /* MCEndpointFilter.m in Sources */,
3C81C74C28F7A777001CB9D1 /* ContentApp.mm in Sources */,
diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/MCCommandObjects.h b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/MCCommandObjects.h
deleted file mode 100644
index c600d15..0000000
--- a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/MCCommandObjects.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
- *
- * Copyright (c) 2020-2024 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.
- */
-
-#import "MCCommand.h"
-#import <Foundation/Foundation.h>
-
-#ifndef MCCommandObjects_h
-#define MCCommandObjects_h
-
-@interface MCContentLauncherClusterDimensionStruct : NSObject <NSCopying>
-@property (nonatomic, copy) NSNumber * _Nonnull width;
-@property (nonatomic, copy) NSNumber * _Nonnull height;
-@property (nonatomic, copy) NSNumber * _Nonnull metric;
-@end
-
-@interface MCContentLauncherClusterStyleInformationStruct : NSObject <NSCopying>
-@property (nonatomic, copy) NSString * _Nullable imageURL;
-@property (nonatomic, copy) NSString * _Nullable imageUrl;
-@property (nonatomic, copy) NSString * _Nullable color;
-@property (nonatomic, copy) MCContentLauncherClusterDimensionStruct * _Nullable size;
-@end
-
-@interface MCContentLauncherClusterBrandingInformationStruct : NSObject <NSCopying>
-@property (nonatomic, copy) NSString * _Nonnull providerName;
-@property (nonatomic, copy) MCContentLauncherClusterStyleInformationStruct * _Nullable background;
-@property (nonatomic, copy) MCContentLauncherClusterStyleInformationStruct * _Nullable logo;
-@property (nonatomic, copy) MCContentLauncherClusterStyleInformationStruct * _Nullable progressBar;
-@property (nonatomic, copy) MCContentLauncherClusterStyleInformationStruct * _Nullable splash;
-@property (nonatomic, copy) MCContentLauncherClusterStyleInformationStruct * _Nullable waterMark;
-@end
-
-@interface MCContentLauncherClusterLaunchURLRequest : NSObject <NSCopying>
-@property (nonatomic, copy) NSString * _Nonnull contentURL;
-@property (nonatomic, copy) NSString * _Nullable displayString;
-@property (nonatomic, copy) MCContentLauncherClusterBrandingInformationStruct * _Nullable brandingInformation;
-@end
-
-@interface MCContentLauncherClusterLauncherResponse : NSObject <NSCopying>
-@property (nonatomic, copy) NSNumber * _Nonnull status;
-@property (nonatomic, copy) NSString * _Nullable data;
-@end
-
-@interface MCContentLauncherClusterLaunchURLCommand : MCCommand <MCContentLauncherClusterLaunchURLRequest *, MCContentLauncherClusterLauncherResponse *>
-@end
-
-#endif /* MCCommandObjects_h */
diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/MCCommandObjects.mm b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/MCCommandObjects.mm
deleted file mode 100644
index 8c37d09..0000000
--- a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/MCCommandObjects.mm
+++ /dev/null
@@ -1,132 +0,0 @@
-/**
- *
- * Copyright (c) 2024 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.
- */
-
-#import "MCCommandObjects.h"
-
-#import "MCCastingApp.h"
-#import "MCCommand_Internal.h"
-#import "MCErrorUtils.h"
-
-#include "core/Command.h"
-#include <app-common/zap-generated/cluster-objects.h>
-
-#import <Foundation/Foundation.h>
-
-@implementation MCContentLauncherClusterLaunchURLRequest
-
-- (instancetype)init
-{
- if (self = [super init]) {
- _contentURL = @"";
- _displayString = nil;
- _brandingInformation = nil;
- }
- return self;
-}
-
-- (id)copyWithZone:(NSZone * _Nullable)zone;
-{
- auto other = [[MCContentLauncherClusterLaunchURLRequest alloc] init];
- other.contentURL = self.contentURL;
- other.displayString = self.displayString;
- other.brandingInformation = self.brandingInformation;
- return other;
-}
-
-- (NSString *)description
-{
- NSString * descriptionString = [NSString stringWithFormat:@"<%@: contentURL:%@; displayString:%@; brandingInformation:%@; >", NSStringFromClass([self class]), _contentURL, _displayString, _brandingInformation];
- return descriptionString;
-}
-@end
-
-@implementation MCContentLauncherClusterLauncherResponse
-
-- (instancetype)init
-{
- if (self = [super init]) {
- _status = @(0);
- _data = nil;
- }
- return self;
-}
-
-- (id)copyWithZone:(NSZone * _Nullable)zone;
-{
- auto other = [[MCContentLauncherClusterLauncherResponse alloc] init];
-
- other.status = self.status;
- other.data = self.data;
- return other;
-}
-
-- (instancetype)initWithDecodableStruct:(const chip::app::Clusters::ContentLauncher::Commands::LauncherResponse::DecodableType &)decodableStruct
-{
- if (self = [super init]) {
- _status = [NSNumber numberWithUnsignedChar:chip::to_underlying(decodableStruct.status)];
- _data = [[NSString alloc] initWithBytes:decodableStruct.data.Value().data() length:decodableStruct.data.Value().size() encoding:NSUTF8StringEncoding];
- }
- return self;
-}
-
-@end
-
-@implementation MCContentLauncherClusterLaunchURLCommand
-
-- (void)invoke:(id)request
- context:(void * _Nullable)context
- completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
- timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
-{
- MCCommandTemplate<chip::app::Clusters::ContentLauncher::Commands::LaunchURL::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::ContentLauncher::Commands::LaunchURL::Type>(
- self.cppCommand,
- [self](id objCRequest) {
- return [self getCppRequestFromObjC:objCRequest];
- },
- [self](std::any cppResponse) {
- return [self getObjCResponseFromCpp:cppResponse];
- });
- mcCommand->invoke(
- request, context, [mcCommand, completion](void * context, NSError * err, id response) {
- completion(context, err, response);
- delete mcCommand;
- }, timedInvokeTimeoutMs);
-}
-
-- (std::any)getCppRequestFromObjC:(MCContentLauncherClusterLaunchURLRequest *)objcRequest
-{
- VerifyOrReturnValue(objcRequest != nil, nullptr);
-
- std::shared_ptr<chip::app::Clusters::ContentLauncher::Commands::LaunchURL::Type> cppRequest = std::make_shared<chip::app::Clusters::ContentLauncher::Commands::LaunchURL::Type>();
- cppRequest->contentURL = chip::CharSpan([objcRequest.contentURL UTF8String], [objcRequest.contentURL lengthOfBytesUsingEncoding:NSUTF8StringEncoding]);
- if (objcRequest.displayString != nil) {
- cppRequest->displayString = chip::Optional<chip::CharSpan>(chip::CharSpan([objcRequest.displayString UTF8String], [objcRequest.displayString lengthOfBytesUsingEncoding:NSUTF8StringEncoding]));
- }
- cppRequest->brandingInformation = chip::MakeOptional(chip::app::Clusters::ContentLauncher::Structs::BrandingInformationStruct::Type()); // TODO: map brandingInformation
- return std::any(cppRequest);
-}
-
-- (id)getObjCResponseFromCpp:(std::any)cppResponse
-{
- MCContentLauncherClusterLauncherResponse * objCResponse = nil;
- if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::ContentLauncher::Commands::LaunchURL::Type::ResponseType>)) {
- std::shared_ptr<const chip::app::Clusters::ContentLauncher::Commands::LaunchURL::Type::ResponseType> responseSharedPtr = std::any_cast<std::shared_ptr<const chip::app::Clusters::ContentLauncher::Commands::LaunchURL::Type::ResponseType>>(cppResponse);
- objCResponse = responseSharedPtr != nil ? [[MCContentLauncherClusterLauncherResponse alloc] initWithDecodableStruct:*responseSharedPtr] : nil;
- }
- return objCResponse;
-}
-@end
diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/MCCommand_Internal.h b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/MCCommand_Internal.h
index 3840044..6665c8c 100644
--- a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/MCCommand_Internal.h
+++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/MCCommand_Internal.h
@@ -75,6 +75,7 @@
*cppRequest, context,
[clientQueue, completion, this](void * context, const typename Type::ResponseType & response) {
ChipLogProgress(AppServer, "<MCCommandTemplate> converting 'response' from Cpp to ObjC");
+ // Get cpp response here.
id objCResponse = mGetObjCResponseFromCppFn(std::any(std::make_shared<const typename Type::ResponseType>(response)));
dispatch_async(clientQueue, ^{
completion(context, nil, objCResponse);
diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/MatterTvCastingBridge.h b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/MatterTvCastingBridge.h
index 19db166..851b946 100644
--- a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/MatterTvCastingBridge.h
+++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/MatterTvCastingBridge.h
@@ -32,7 +32,6 @@
#import "MCCastingPlayerDiscovery.h"
#import "MCCluster.h"
#import "MCCommand.h"
-#import "MCCommandObjects.h"
#import "MCCommissionableData.h"
#import "MCCryptoUtils.h"
#import "MCDataSource.h"
@@ -42,3 +41,4 @@
#import "MCObserver.h"
#import "zap-generated/MCAttributeObjects.h"
#import "zap-generated/MCClusterObjects.h"
+#import "zap-generated/MCCommandObjects.h"
diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/MCAttributeObjects-src.zapt b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/MCAttributeObjects-src.zapt
index 90b0f40..52f09bc 100644
--- a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/MCAttributeObjects-src.zapt
+++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/MCAttributeObjects-src.zapt
@@ -14,13 +14,11 @@
#import <Foundation/Foundation.h>
{{#zcl_clusters}}
-{{#if (isSupported (asUpperCamelCase name preserveAcronyms=true))}}
{{#if (isInConfigList name "MatterCastingClusters")}}
// {{asUpperCamelCase name}} cluster attributes:
{{#zcl_attributes_server removeKeys='isOptional'}}
-{{#if (isSupported (asUpperCamelCase ../name preserveAcronyms=true) attribute=(asUpperCamelCase name preserveAcronyms=true))}}
@implementation MC{{asUpperCamelCase ../name}}Cluster{{asUpperCamelCase name}}Attribute
- (void)read:(void * _Nullable)context
completion:(void (^_Nonnull __strong)(void * _Nullable, id _Nullable __strong before, id _Nullable __strong after, NSError * _Nullable __strong error))completion
@@ -57,7 +55,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::{{asUpperCamelCase ../name}}::Attributes::{{asUpperCamelCase name}}::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::{{asUpperCamelCase ../name}}::Attributes::{{asUpperCamelCase name}}::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::{{asUpperCamelCase ../name}}::Attributes::{{asUpperCamelCase name}}::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::{{asUpperCamelCase ../name}}::Attributes::{{asUpperCamelCase name}}::TypeInfo::DecodableType _cppValue = *sharedPtr;
- //auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
{{asObjectiveCType type parent.name structTypePrefix="MC"}} value;
{{>decode_value target="value" source="_cppValue" cluster=parent.name errorCode="*aError = err; return nil;" depth=0}}
@@ -68,8 +65,6 @@
}
@end
-{{/if}}
{{/zcl_attributes_server}}
{{/if}}
-{{/if}}
{{/zcl_clusters}}
\ No newline at end of file
diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/MCAttributeObjects.zapt b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/MCAttributeObjects.zapt
index 37390b3..3f174e1 100644
--- a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/MCAttributeObjects.zapt
+++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/MCAttributeObjects.zapt
@@ -1,6 +1,6 @@
{{> header excludeZapComment=false}}
-#import "MCStructsObjc.h"
+#import "MCInteractionModelStructs.h"
#import "../MCAttribute.h"
#import <Foundation/Foundation.h>
@@ -9,20 +9,16 @@
#define MCAttributeObjects_h
{{#zcl_clusters}}
-{{#if (isSupported (asUpperCamelCase name))}}
{{#if (isInConfigList name "MatterCastingClusters")}}
// {{asUpperCamelCase name}} cluster attributes:
{{#zcl_attributes_server}}
-{{#if (isSupported (asUpperCamelCase ../name preserveAcronyms=true) attribute=(asUpperCamelCase name preserveAcronyms=true))}}
@interface MC{{asUpperCamelCase ../name}}Cluster{{asUpperCamelCase name}}Attribute : MCAttribute <{{asObjectiveCClass type ../name structTypePrefix="MC"}} *>
@end
-{{/if}}
{{/zcl_attributes_server}}
{{/if}}
-{{/if}}
{{/zcl_clusters}}
#endif /* MCAttributeObjects_h */
diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/MCClusterObjects-src.zapt b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/MCClusterObjects-src.zapt
index 0b9207e..b760874 100644
--- a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/MCClusterObjects-src.zapt
+++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/MCClusterObjects-src.zapt
@@ -13,7 +13,6 @@
#import <Foundation/Foundation.h>
{{#zcl_clusters}}
-{{#if (isSupported (asUpperCamelCase name))}}
{{#if (isInConfigList name "MatterCastingClusters")}}
// {{asUpperCamelCase name}} cluster:
@@ -23,8 +22,7 @@
// {{asUpperCamelCase name}} cluster commands:
{{#zcl_commands}}
-{{#if (isSupported (asUpperCamelCase ../name preserveAcronyms=true) command=(asUpperCamelCase name preserveAcronyms=true))}}
-{{#if (isInConfigList name "MatterCastingImplementedCommands")}}
+{{#if (is_str_equal source 'client')}}
- (id){{asMethodName name}}Command
{
@@ -33,21 +31,17 @@
}
{{/if}}
-{{/if}}
{{/zcl_commands}}
// {{asUpperCamelCase name}} cluster attributes:
{{#zcl_attributes_server}}
-{{#if (isSupported (asUpperCamelCase ../name preserveAcronyms=true) attribute=(asUpperCamelCase name preserveAcronyms=true))}}
- (id){{asMethodName name}}Attribute
{
void * cppAttribute = self.cppCluster->GetAttribute(chip::app::Clusters::{{asUpperCamelCase ../name}}::Attributes::{{asUpperCamelCase name}}::Id);
return cppAttribute != nil ? [[MC{{asUpperCamelCase ../name}}Cluster{{asUpperCamelCase name}}Attribute alloc] initWithCppAttribute:cppAttribute] : nil;
}
-{{/if}}
{{/zcl_attributes_server}}
@end
{{/if}}
-{{/if}}
{{/zcl_clusters}}
diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/MCClusterObjects.zapt b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/MCClusterObjects.zapt
index a4ecab1..1b7fdab 100644
--- a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/MCClusterObjects.zapt
+++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/MCClusterObjects.zapt
@@ -1,15 +1,14 @@
{{> header excludeZapComment=false}}
-#import "MCAttributeObjects.h"
#import "../MCCluster.h"
-#import "../MCCommandObjects.h"
+#import "MCAttributeObjects.h"
+#import "MCCommandObjects.h"
#import <Foundation/Foundation.h>
#ifndef MCClusterObjects_h
#define MCClusterObjects_h
{{#zcl_clusters}}
-{{#if (isSupported (asUpperCamelCase name))}}
{{#if (isInConfigList name "MatterCastingClusters")}}
// {{asUpperCamelCase name}} cluster:
@@ -19,30 +18,25 @@
// {{asUpperCamelCase name}} cluster commands:
{{#zcl_commands}}
-{{#if (isSupported (asUpperCamelCase ../name preserveAcronyms=true) command=(asUpperCamelCase name preserveAcronyms=true))}}
-{{#if (isInConfigList name "MatterCastingImplementedCommands")}}
+{{#if (is_str_equal source 'client')}}
/**
* @brief Returns non-nil pointer to MC{{asUpperCamelCase ../name}}Cluster{{asUpperCamelCase name}}Command if supported, nil otherwise.
*/
- (MC{{asUpperCamelCase ../name}}Cluster{{asUpperCamelCase name}}Command * _Nullable){{asMethodName name}}Command;
{{/if}}
-{{/if}}
{{/zcl_commands}}
// {{asUpperCamelCase name}} cluster attributes:
{{#zcl_attributes_server}}
-{{#if (isSupported (asUpperCamelCase ../name preserveAcronyms=true) attribute=(asUpperCamelCase name preserveAcronyms=true))}}
/**
* @brief Returns non-nil pointer to MC{{asUpperCamelCase ../name}}Cluster{{asUpperCamelCase name}}Attribute if supported, nil otherwise.
*/
- (MC{{asUpperCamelCase ../name}}Cluster{{asUpperCamelCase name}}Attribute * _Nullable){{asMethodName name}}Attribute;
-{{/if}}
{{/zcl_attributes_server}}
@end
{{/if}}
-{{/if}}
{{/zcl_clusters}}
#endif /* MCClusterObjects_h */
diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/MCCommandObjects-src.zapt b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/MCCommandObjects-src.zapt
index 21eab79..befedb9 100644
--- a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/MCCommandObjects-src.zapt
+++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/MCCommandObjects-src.zapt
@@ -1,3 +1,84 @@
{{> header excludeZapComment=false}}
-// TODO: To be implemented in the following PR.
+#import "MCCommandObjects.h"
+#import "MCCommandPayloads.h"
+#import "MCCommandPayloads_internal.h"
+
+#import "../MCCastingApp.h"
+#import "../MCCommand_Internal.h"
+#import "../MCErrorUtils.h"
+
+#include "core/Command.h"
+#include <app-common/zap-generated/cluster-objects.h>
+
+#import <Foundation/Foundation.h>
+
+@implementation MCNullObjectType
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ return CHIP_NO_ERROR;
+}
+@end
+
+{{#zcl_clusters}}
+{{#if (isInConfigList name "MatterCastingClusters")}}
+
+// {{asUpperCamelCase name}} cluster:
+
+{{#zcl_commands}}
+{{#if (is_str_equal source 'client')}}
+@implementation MC{{asUpperCamelCase ../name}}Cluster{{asUpperCamelCase name}}Command
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::{{asUpperCamelCase ../name}}::Commands::{{asUpperCamelCase name}}::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::{{asUpperCamelCase ../name}}::Commands::{{asUpperCamelCase name}}::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MC{{asUpperCamelCase ../name}}Cluster{{asUpperCamelCase name}}Params *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto& cppRequest = std::any_cast<chip::app::Clusters::{{asUpperCamelCase ../name}}::Commands::{{asUpperCamelCase name}}::Type&>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::{{asUpperCamelCase ../name}}::Commands::{{asUpperCamelCase name}}::Type>(cppRequest));
+ } catch (const std::bad_any_cast& e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ {{>command_response_type command=.}} * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::{{asUpperCamelCase ../name}}::Commands::{{asUpperCamelCase name}}::Type::ResponseType>)) {
+ objCResponse = [[{{>command_response_type command=.}} alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MC{{asUpperCamelCase ../name}}Cluster{{asUpperCamelCase name}}Command getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+{{/if}}
+{{/zcl_commands}}
+{{/if}}
+{{/zcl_clusters}}
\ No newline at end of file
diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/MCCommandObjects.zapt b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/MCCommandObjects.zapt
index 21eab79..6c4615d 100644
--- a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/MCCommandObjects.zapt
+++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/MCCommandObjects.zapt
@@ -1,3 +1,27 @@
{{> header excludeZapComment=false}}
-// TODO: To be implemented in the following PR.
+#import "../MCCommand.h"
+#import "MCCommandPayloads.h"
+#import <Foundation/Foundation.h>
+
+#ifndef MCCommandObjects_h
+#define MCCommandObjects_h
+
+@interface MCNullObjectType : NSObject
+@end
+
+{{#zcl_clusters}}
+{{#if (isInConfigList name "MatterCastingClusters")}}
+
+// {{asUpperCamelCase name}} cluster:
+
+{{#zcl_commands}}
+{{#if (is_str_equal source 'client')}}
+@interface MC{{asUpperCamelCase ../name}}Cluster{{asUpperCamelCase name}}Command : MCCommand <MC{{asUpperCamelCase ../name}}Cluster{{asUpperCamelCase name}}Params *, {{>command_response_type command=.}} *>
+@end
+
+{{/if}}
+{{/zcl_commands}}
+{{/if}}
+{{/zcl_clusters}}
+#endif /* MCCommandObjects_h */
diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/MCCommandPayloads-src.zapt b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/MCCommandPayloads-src.zapt
new file mode 100644
index 0000000..fe3a151
--- /dev/null
+++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/MCCommandPayloads-src.zapt
@@ -0,0 +1,125 @@
+{{> header excludeZapComment=false}}
+
+#import "MCCommandPayloads_Internal.h"
+
+#import "../MCAttribute_Internal.h"
+#import "../MCCastingApp.h"
+#import "../MCErrorUtils.h"
+#import "../NSDataSpanConversion.h"
+#import "../NSStringSpanConversion.h"
+
+#include <app/data-model/Decode.h>
+#include <app/data-model/ListLargeSystemExtensions.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@implementation MCAbstractPayload
+- (std::any)getCppRequestFromObjCRequest
+{
+ return nil;
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ return CHIP_NO_ERROR;
+}
+
+- (nonnull id)copyWithZone:(nullable NSZone *)zone
+{
+ auto other = [[MCAbstractPayload alloc] init];
+
+ return other;
+}
+@end
+
+{{#zcl_clusters}}
+{{#if (isInConfigList name "MatterCastingClusters")}}
+
+// {{asUpperCamelCase name}} cluster:
+{{#zcl_commands}}
+
+{{#*inline "completeImpl"}}
+@implementation MC{{cluster}}Cluster{{command}}Params
+- (instancetype)init
+{
+ if (self = [super init]) {
+{{#zcl_command_arguments}}
+
+ {{>init_struct_member label=label type=type cluster=parent.parent.name}}
+{{/zcl_command_arguments}}
+{{#if (isStrEqual source "client")}}
+{{/if}}
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MC{{cluster}}Cluster{{command}}Params alloc] init];
+
+ {{#zcl_command_arguments}}
+ other.{{asStructPropertyName label}} = self.{{asStructPropertyName label}};
+ {{/zcl_command_arguments}}
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString *descriptionString = [NSString stringWithFormat:@"<%@: {{#zcl_command_arguments}}{{asStructPropertyName label}}:%@; {{/zcl_command_arguments}}>", NSStringFromClass([self class]) {{#zcl_command_arguments}},{{#if isArray}}_{{asStructPropertyName label}}{{else if (isOctetString type)}}[_{{asStructPropertyName label}} base64EncodedStringWithOptions:0]{{else}}_{{asStructPropertyName label}}{{/if}}{{/zcl_command_arguments}}];
+ return descriptionString;
+}
+
+{{#if (isStrEqual source "client")}}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::{{asUpperCamelCase parent.name}}::Commands::{{asUpperCamelCase name}}::Type cppStruct;
+ ListFreer listFreer;
+ {{#zcl_command_arguments}}
+ {
+ {{>encode_value target=(concat "cppStruct." (asLowerCamelCase label)) source=(concat "self." (asStructPropertyName label)) cluster=parent.parent.name errorCode="return CHIP_ERROR_INVALID_ARGUMENT;" depth=0}}
+ }
+ {{/zcl_command_arguments}}
+
+ return std::any(cppStruct);
+}
+{{else}}
+
+- (std::any)getCppRequestFromObjCRequest {
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+{{/if}}
+{{#if (isStrEqual source "server")}}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppResponse
+{
+ std::shared_ptr<const chip::app::Clusters::{{asUpperCamelCase parent.name}}::Commands::{{asUpperCamelCase name}}::DecodableType> responseSharedPtr = std::any_cast<std::shared_ptr<const chip::app::Clusters::{{asUpperCamelCase parent.name}}::Commands::{{asUpperCamelCase name}}::DecodableType>>(cppResponse);
+ const chip::app::Clusters::{{asUpperCamelCase parent.name}}::Commands::{{asUpperCamelCase name}}::DecodableType cppDecodableStruct = *responseSharedPtr;
+
+ {{#zcl_command_arguments}}
+ {
+ {{>decode_value target=(concat "self." (asStructPropertyName label)) source=(concat "cppDecodableStruct." (asLowerCamelCase label)) cluster=parent.parent.name errorCode="return err;" depth=0}}
+ }
+ {{/zcl_command_arguments}}
+ return CHIP_NO_ERROR;
+}
+{{else}}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+{{/if}}
+@end
+{{/inline}}
+{{> completeImpl cluster=(asUpperCamelCase parent.name preserveAcronyms=true)
+ command=(asUpperCamelCase name preserveAcronyms=true)}}
+
+{{/zcl_commands}}
+{{/if}}
+{{/zcl_clusters}}
+
+NS_ASSUME_NONNULL_END
diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/MCCommandPayloads.zapt b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/MCCommandPayloads.zapt
new file mode 100644
index 0000000..db9a410
--- /dev/null
+++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/MCCommandPayloads.zapt
@@ -0,0 +1,34 @@
+{{> header excludeZapComment=false}}
+
+#import "MCInteractionModelStructs.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface MCAbstractPayload : NSObject <NSCopying>
+@end
+
+{{#zcl_clusters}}
+{{#if (isInConfigList name "MatterCastingClusters")}}
+
+// {{asUpperCamelCase name}} cluster:
+{{#zcl_commands}}
+{{#*inline "completeDecl"}}
+
+@interface MC{{cluster}}Cluster{{command}}Params : {{base}}
+{{#zcl_command_arguments}}
+{{> struct_field_decl cluster=parent.parent.name type=type label=label}};
+{{#*inline "oldNameFieldDecl"}}
+{{> struct_field_decl cluster=parent.parent.name type=type label=commandField}};
+{{/inline}}
+{{/zcl_command_arguments}}
+@end
+{{/inline}}
+{{> completeDecl cluster=(asUpperCamelCase parent.name preserveAcronyms=true)
+ command=(asUpperCamelCase name preserveAcronyms=true)
+ deprecationMessage="This command has been removed"
+ base="MCAbstractPayload"}}
+{{/zcl_commands}}
+{{/if}}
+{{/zcl_clusters}}
+
+NS_ASSUME_NONNULL_END
diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/availability.yaml b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/availability.yaml
deleted file mode 100644
index aa94eeb..0000000
--- a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/availability.yaml
+++ /dev/null
@@ -1,8664 +0,0 @@
-# The magic value "future" for versions can be used once we are
-# tracking a release but don't know what its version numbers will be.
-#
-# Each release has:
-# * A name (labeled "release")
-# * A versions field which is either a dictionary of per-OS versions, or "future"
-# * "introduced" and "deprecated" fields, which are dictionaries with the following keys:
-# * "clusters": An array of cluster names
-# * "attributes": A dictionary with cluster names as keys and arrays of
-# attribute names as values.
-# * "commands": A dictionary with cluster names as keys and arrays of
-# command names as values.
-# * "command fields": A dictionary with cluster names as keys and dictionaries
-# as values. Those dictionaries have command names as
-# keys and arrays of field names as values.
-# * "structs": A dictionary with cluster names as keys and arrays of
-# struct names as values.
-# * "struct fields": A dictionary with cluster names as keys and dictionaries
-# as values. Those dictionaries have struct names as
-# keys and arrays of field names as values.
-# * "events": A dictionary with cluster names as keys and arrays of
-# event names as values.
-# * "event fields": A dictionary with cluster names as keys and dictionaries
-# as values. Those dictionaries have event names as
-# keys and arrays of field names as values.
-# * "enums": A dictionary with cluster names as keys and arrays of
-# enum names as values.
-# * "enum values": A dictionary with cluster names as keys and dictionaries
-# as values. Those dictionaries have enum names as
-# keys and arrays of enum value names as values.
-# * "bitmaps": A dictionary with cluster names as keys and arrays of
-# bitmap names as values.
-# * "bitmap values": A dictionary with cluster names as keys and dictionaries
-# as values. Those dictionaries have bitmap names as
-# keys and arrays of bitmap value names as values.
-# * "ids": Can contain clusters, attributes, commands, events as described
-# above inside it, but just indicates whether the id was
-# introduced/deprecated, not the construct itself.
-# * "command payloads": Lists commands only, if we introduced the payload without
-# actually exposing API for the command.
-# * "global attributes": An array of names of global attributes.
-# * "apis": An array of API labels that codegen can use.
-#
-# * "renames": Can contain clusters, attributes, etc as described
-# above for "introduced" and "deprecated", with the one
-# difference that instead of an array the value is a hash
-# with new names as keys and old names as values.
-#
-# * "removed": Can contain clusters, commands, attributes, etc as described
-# above for "introduced" and "deprecated". Items can be removed
-# without ever being introduced, if they are added to the XML but
-# we have never shipped generated APIs for them.
-# NOTE: support for "removed" may not be complete in the templates.
-# Please examine codegen carefully when using "removed" to make
-# sure all the things that should have been removed have been.
-#
-# * "swiftUnavailable": Can contain clusters, commands, attributes, etc as
-# described above for "introduced" and "deprecated". This
-# can be used to mark APIs with NS_SWIFT_UNAVAILABLE,
-# typically when an API was renamed between two names that
-# map to the same Swift name and then both names were
-# deprecated.
-#
-# * "provisional": Can contain clusters, commands, attributes, etc as described
-# above for "introduced" and "deprecated". Items can be
-# defined as provisional to prevent code generation for them.
-# If they are then listed as introduced in a release that is
-# later than the one where they were marked provisional,
-# they will start being code-generated.
-# NOTE: support for "provisional" may not be complete in the
-# templates. Please examine codegen carefully when using
-# "provisional" to make sure all the things that should have
-# been omitted have been.
-
-- release: "Initial release"
- versions:
- iOS: "16.1"
- macOS: "13.0"
- watchOS: "9.1"
- tvOS: "16.1"
- introduced:
- clusters:
- - Identify
- - Groups
- - Scenes
- - OnOff
- - OnOffSwitchConfiguration
- - LevelControl
- - BinaryInputBasic
- - Descriptor
- - Binding
- - AccessControl
- - Actions
- - Basic
- - OtaSoftwareUpdateProvider
- - OtaSoftwareUpdateRequestor
- - LocalizationConfiguration
- - TimeFormatLocalization
- - UnitLocalization
- - PowerSourceConfiguration
- - PowerSource
- - GeneralCommissioning
- - NetworkCommissioning
- - DiagnosticLogs
- - GeneralDiagnostics
- - SoftwareDiagnostics
- - ThreadNetworkDiagnostics
- - WiFiNetworkDiagnostics
- - EthernetNetworkDiagnostics
- - BridgedDeviceBasic
- - Switch
- - AdministratorCommissioning
- - OperationalCredentials
- - GroupKeyManagement
- - FixedLabel
- - UserLabel
- - BooleanState
- - ModeSelect
- - DoorLock
- - WindowCovering
- - BarrierControl
- - PumpConfigurationAndControl
- - Thermostat
- - FanControl
- - ThermostatUserInterfaceConfiguration
- - ColorControl
- - BallastConfiguration
- - IlluminanceMeasurement
- - TemperatureMeasurement
- - PressureMeasurement
- - FlowMeasurement
- - RelativeHumidityMeasurement
- - OccupancySensing
- - WakeOnLan
- - Channel
- - TargetNavigator
- - MediaPlayback
- - MediaInput
- - LowPower
- - KeypadInput
- - ContentLauncher
- - AudioOutput
- - ApplicationLauncher
- - ApplicationBasic
- - AccountLogin
- - ElectricalMeasurement
- - TestCluster
- attributes:
- Identify:
- - IdentifyTime
- - IdentifyType
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- Groups:
- - NameSupport
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- Scenes:
- - SceneCount
- - CurrentScene
- - CurrentGroup
- - SceneValid
- - NameSupport
- - LastConfiguredBy
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- OnOff:
- - OnOff
- - GlobalSceneControl
- - OnTime
- - OffWaitTime
- - StartUpOnOff
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- OnOffSwitchConfiguration:
- - SwitchType
- - SwitchActions
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- LevelControl:
- - CurrentLevel
- - RemainingTime
- - MinLevel
- - MaxLevel
- - CurrentFrequency
- - MinFrequency
- - MaxFrequency
- - Options
- - OnOffTransitionTime
- - OnLevel
- - OnTransitionTime
- - OffTransitionTime
- - DefaultMoveRate
- - StartUpCurrentLevel
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- BinaryInputBasic:
- - ActiveText
- - Description
- - InactiveText
- - OutOfService
- - Polarity
- - PresentValue
- - Reliability
- - StatusFlags
- - ApplicationType
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- Descriptor:
- - DeviceList
- - ServerList
- - ClientList
- - PartsList
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- Binding:
- - Binding
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- AccessControl:
- - Acl
- - Extension
- - SubjectsPerAccessControlEntry
- - TargetsPerAccessControlEntry
- - AccessControlEntriesPerFabric
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- Actions:
- - ActionList
- - EndpointLists
- - SetupURL
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- Basic:
- - DataModelRevision
- - VendorName
- - VendorID
- - ProductName
- - ProductID
- - NodeLabel
- - Location
- - HardwareVersion
- - HardwareVersionString
- - SoftwareVersion
- - SoftwareVersionString
- - ManufacturingDate
- - PartNumber
- - ProductURL
- - ProductLabel
- - SerialNumber
- - LocalConfigDisabled
- - Reachable
- - UniqueID
- - CapabilityMinima
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- OtaSoftwareUpdateProvider:
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- OtaSoftwareUpdateRequestor:
- - DefaultOtaProviders
- - UpdatePossible
- - UpdateState
- - UpdateStateProgress
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- LocalizationConfiguration:
- - ActiveLocale
- - SupportedLocales
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- TimeFormatLocalization:
- - HourFormat
- - ActiveCalendarType
- - SupportedCalendarTypes
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- UnitLocalization:
- - TemperatureUnit
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- PowerSourceConfiguration:
- - Sources
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- PowerSource:
- - Status
- - Order
- - Description
- - WiredAssessedInputVoltage
- - WiredAssessedInputFrequency
- - WiredCurrentType
- - WiredAssessedCurrent
- - WiredNominalVoltage
- - WiredMaximumCurrent
- - WiredPresent
- - ActiveWiredFaults
- - BatVoltage
- - BatPercentRemaining
- - BatTimeRemaining
- - BatChargeLevel
- - BatReplacementNeeded
- - BatReplaceability
- - BatPresent
- - ActiveBatFaults
- - BatReplacementDescription
- - BatCommonDesignation
- - BatANSIDesignation
- - BatIECDesignation
- - BatApprovedChemistry
- - BatCapacity
- - BatQuantity
- - BatChargeState
- - BatTimeToFullCharge
- - BatFunctionalWhileCharging
- - BatChargingCurrent
- - ActiveBatChargeFaults
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- GeneralCommissioning:
- - Breadcrumb
- - BasicCommissioningInfo
- - RegulatoryConfig
- - LocationCapability
- - SupportsConcurrentConnection
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- NetworkCommissioning:
- - MaxNetworks
- - Networks
- - ScanMaxTimeSeconds
- - ConnectMaxTimeSeconds
- - InterfaceEnabled
- - LastNetworkingStatus
- - LastNetworkID
- - LastConnectErrorValue
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- DiagnosticLogs:
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- GeneralDiagnostics:
- - NetworkInterfaces
- - RebootCount
- - UpTime
- - TotalOperationalHours
- - BootReasons
- - ActiveHardwareFaults
- - ActiveRadioFaults
- - ActiveNetworkFaults
- - TestEventTriggersEnabled
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- SoftwareDiagnostics:
- - ThreadMetrics
- - CurrentHeapFree
- - CurrentHeapUsed
- - CurrentHeapHighWatermark
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- ThreadNetworkDiagnostics:
- - Channel
- - RoutingRole
- - NetworkName
- - PanId
- - ExtendedPanId
- - MeshLocalPrefix
- - OverrunCount
- - NeighborTableList
- - RouteTableList
- - PartitionId
- - Weighting
- - DataVersion
- - StableDataVersion
- - LeaderRouterId
- - DetachedRoleCount
- - ChildRoleCount
- - RouterRoleCount
- - LeaderRoleCount
- - AttachAttemptCount
- - PartitionIdChangeCount
- - BetterPartitionAttachAttemptCount
- - ParentChangeCount
- - TxTotalCount
- - TxUnicastCount
- - TxBroadcastCount
- - TxAckRequestedCount
- - TxAckedCount
- - TxNoAckRequestedCount
- - TxDataCount
- - TxDataPollCount
- - TxBeaconCount
- - TxBeaconRequestCount
- - TxOtherCount
- - TxRetryCount
- - TxDirectMaxRetryExpiryCount
- - TxIndirectMaxRetryExpiryCount
- - TxErrCcaCount
- - TxErrAbortCount
- - TxErrBusyChannelCount
- - RxTotalCount
- - RxUnicastCount
- - RxBroadcastCount
- - RxDataCount
- - RxDataPollCount
- - RxBeaconCount
- - RxBeaconRequestCount
- - RxOtherCount
- - RxAddressFilteredCount
- - RxDestAddrFilteredCount
- - RxDuplicatedCount
- - RxErrNoFrameCount
- - RxErrUnknownNeighborCount
- - RxErrInvalidSrcAddrCount
- - RxErrSecCount
- - RxErrFcsCount
- - RxErrOtherCount
- - ActiveTimestamp
- - PendingTimestamp
- - Delay
- - SecurityPolicy
- - ChannelPage0Mask
- - OperationalDatasetComponents
- - ActiveNetworkFaultsList
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- WiFiNetworkDiagnostics:
- - Bssid
- - SecurityType
- - WiFiVersion
- - ChannelNumber
- - Rssi
- - BeaconLostCount
- - BeaconRxCount
- - PacketMulticastRxCount
- - PacketMulticastTxCount
- - PacketUnicastRxCount
- - PacketUnicastTxCount
- - CurrentMaxRate
- - OverrunCount
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- EthernetNetworkDiagnostics:
- - PHYRate
- - FullDuplex
- - PacketRxCount
- - PacketTxCount
- - TxErrCount
- - CollisionCount
- - OverrunCount
- - CarrierDetect
- - TimeSinceReset
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- BridgedDeviceBasic:
- - VendorName
- - VendorID
- - ProductName
- - NodeLabel
- - HardwareVersion
- - HardwareVersionString
- - SoftwareVersion
- - SoftwareVersionString
- - ManufacturingDate
- - PartNumber
- - ProductURL
- - ProductLabel
- - SerialNumber
- - Reachable
- - UniqueID
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- Switch:
- - NumberOfPositions
- - CurrentPosition
- - MultiPressMax
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- AdministratorCommissioning:
- - WindowStatus
- - AdminFabricIndex
- - AdminVendorId
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- OperationalCredentials:
- - NOCs
- - Fabrics
- - SupportedFabrics
- - CommissionedFabrics
- - TrustedRootCertificates
- - CurrentFabricIndex
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- GroupKeyManagement:
- - GroupKeyMap
- - GroupTable
- - MaxGroupsPerFabric
- - MaxGroupKeysPerFabric
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- FixedLabel:
- - LabelList
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- UserLabel:
- - LabelList
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- BooleanState:
- - StateValue
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- ModeSelect:
- - Description
- - StandardNamespace
- - SupportedModes
- - CurrentMode
- - StartUpMode
- - OnMode
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- DoorLock:
- - LockState
- - LockType
- - ActuatorEnabled
- - DoorState
- - DoorOpenEvents
- - DoorClosedEvents
- - OpenPeriod
- - NumberOfTotalUsersSupported
- - NumberOfPINUsersSupported
- - NumberOfRFIDUsersSupported
- - NumberOfWeekDaySchedulesSupportedPerUser
- - NumberOfYearDaySchedulesSupportedPerUser
- - NumberOfHolidaySchedulesSupported
- - MaxPINCodeLength
- - MinPINCodeLength
- - MaxRFIDCodeLength
- - MinRFIDCodeLength
- - CredentialRulesSupport
- - NumberOfCredentialsSupportedPerUser
- - Language
- - LEDSettings
- - AutoRelockTime
- - SoundVolume
- - OperatingMode
- - SupportedOperatingModes
- - DefaultConfigurationRegister
- - EnableLocalProgramming
- - EnableOneTouchLocking
- - EnableInsideStatusLED
- - EnablePrivacyModeButton
- - LocalProgrammingFeatures
- - WrongCodeEntryLimit
- - UserCodeTemporaryDisableTime
- - SendPINOverTheAir
- - RequirePINforRemoteOperation
- - ExpiringUserTimeout
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- WindowCovering:
- - Type
- - PhysicalClosedLimitLift
- - PhysicalClosedLimitTilt
- - CurrentPositionLift
- - CurrentPositionTilt
- - NumberOfActuationsLift
- - NumberOfActuationsTilt
- - ConfigStatus
- - CurrentPositionLiftPercentage
- - CurrentPositionTiltPercentage
- - OperationalStatus
- - TargetPositionLiftPercent100ths
- - TargetPositionTiltPercent100ths
- - EndProductType
- - CurrentPositionLiftPercent100ths
- - CurrentPositionTiltPercent100ths
- - InstalledOpenLimitLift
- - InstalledClosedLimitLift
- - InstalledOpenLimitTilt
- - InstalledClosedLimitTilt
- - Mode
- - SafetyStatus
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- BarrierControl:
- - BarrierMovingState
- - BarrierSafetyStatus
- - BarrierCapabilities
- - BarrierOpenEvents
- - BarrierCloseEvents
- - BarrierCommandOpenEvents
- - BarrierCommandCloseEvents
- - BarrierOpenPeriod
- - BarrierClosePeriod
- - BarrierPosition
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- PumpConfigurationAndControl:
- - MaxPressure
- - MaxSpeed
- - MaxFlow
- - MinConstPressure
- - MaxConstPressure
- - MinCompPressure
- - MaxCompPressure
- - MinConstSpeed
- - MaxConstSpeed
- - MinConstFlow
- - MaxConstFlow
- - MinConstTemp
- - MaxConstTemp
- - PumpStatus
- - EffectiveOperationMode
- - EffectiveControlMode
- - Capacity
- - Speed
- - LifetimeRunningHours
- - Power
- - LifetimeEnergyConsumed
- - OperationMode
- - ControlMode
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- Thermostat:
- - LocalTemperature
- - OutdoorTemperature
- - Occupancy
- - AbsMinHeatSetpointLimit
- - AbsMaxHeatSetpointLimit
- - AbsMinCoolSetpointLimit
- - AbsMaxCoolSetpointLimit
- - PICoolingDemand
- - PIHeatingDemand
- - HVACSystemTypeConfiguration
- - LocalTemperatureCalibration
- - OccupiedCoolingSetpoint
- - OccupiedHeatingSetpoint
- - UnoccupiedCoolingSetpoint
- - UnoccupiedHeatingSetpoint
- - MinHeatSetpointLimit
- - MaxHeatSetpointLimit
- - MinCoolSetpointLimit
- - MaxCoolSetpointLimit
- - MinSetpointDeadBand
- - RemoteSensing
- - ControlSequenceOfOperation
- - SystemMode
- - ThermostatRunningMode
- - StartOfWeek
- - NumberOfWeeklyTransitions
- - NumberOfDailyTransitions
- - TemperatureSetpointHold
- - TemperatureSetpointHoldDuration
- - ThermostatProgrammingOperationMode
- - ThermostatRunningState
- - SetpointChangeSource
- - SetpointChangeAmount
- - SetpointChangeSourceTimestamp
- - OccupiedSetback
- - OccupiedSetbackMin
- - OccupiedSetbackMax
- - UnoccupiedSetback
- - UnoccupiedSetbackMin
- - UnoccupiedSetbackMax
- - EmergencyHeatDelta
- - ACType
- - ACCapacity
- - ACRefrigerantType
- - ACCompressorType
- - ACErrorCode
- - ACLouverPosition
- - ACCoilTemperature
- - ACCapacityformat
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- FanControl:
- - FanMode
- - FanModeSequence
- - PercentSetting
- - PercentCurrent
- - SpeedMax
- - SpeedSetting
- - SpeedCurrent
- - RockSupport
- - RockSetting
- - WindSupport
- - WindSetting
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- ThermostatUserInterfaceConfiguration:
- - TemperatureDisplayMode
- - KeypadLockout
- - ScheduleProgrammingVisibility
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- ColorControl:
- - CurrentHue
- - CurrentSaturation
- - RemainingTime
- - CurrentX
- - CurrentY
- - DriftCompensation
- - CompensationText
- - ColorTemperatureMireds
- - ColorMode
- - Options
- - NumberOfPrimaries
- - Primary1X
- - Primary1Y
- - Primary1Intensity
- - Primary2X
- - Primary2Y
- - Primary2Intensity
- - Primary3X
- - Primary3Y
- - Primary3Intensity
- - Primary4X
- - Primary4Y
- - Primary4Intensity
- - Primary5X
- - Primary5Y
- - Primary5Intensity
- - Primary6X
- - Primary6Y
- - Primary6Intensity
- - WhitePointX
- - WhitePointY
- - ColorPointRX
- - ColorPointRY
- - ColorPointRIntensity
- - ColorPointGX
- - ColorPointGY
- - ColorPointGIntensity
- - ColorPointBX
- - ColorPointBY
- - ColorPointBIntensity
- - EnhancedCurrentHue
- - EnhancedColorMode
- - ColorLoopActive
- - ColorLoopDirection
- - ColorLoopTime
- - ColorLoopStartEnhancedHue
- - ColorLoopStoredEnhancedHue
- - ColorCapabilities
- - ColorTempPhysicalMinMireds
- - ColorTempPhysicalMaxMireds
- - CoupleColorTempToLevelMinMireds
- - StartUpColorTemperatureMireds
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- BallastConfiguration:
- - PhysicalMinLevel
- - PhysicalMaxLevel
- - BallastStatus
- - MinLevel
- - MaxLevel
- - IntrinsicBalanceFactor
- - BallastFactorAdjustment
- - LampQuantity
- - LampType
- - LampManufacturer
- - LampRatedHours
- - LampBurnHours
- - LampAlarmMode
- - LampBurnHoursTripPoint
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- IlluminanceMeasurement:
- - MeasuredValue
- - MinMeasuredValue
- - MaxMeasuredValue
- - Tolerance
- - LightSensorType
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- TemperatureMeasurement:
- - MeasuredValue
- - MinMeasuredValue
- - MaxMeasuredValue
- - Tolerance
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- PressureMeasurement:
- - MeasuredValue
- - MinMeasuredValue
- - MaxMeasuredValue
- - Tolerance
- - ScaledValue
- - MinScaledValue
- - MaxScaledValue
- - ScaledTolerance
- - Scale
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- FlowMeasurement:
- - MeasuredValue
- - MinMeasuredValue
- - MaxMeasuredValue
- - Tolerance
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- RelativeHumidityMeasurement:
- - MeasuredValue
- - MinMeasuredValue
- - MaxMeasuredValue
- - Tolerance
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- OccupancySensing:
- - Occupancy
- - OccupancySensorType
- - OccupancySensorTypeBitmap
- - PirOccupiedToUnoccupiedDelay
- - PirUnoccupiedToOccupiedDelay
- - PirUnoccupiedToOccupiedThreshold
- - UltrasonicOccupiedToUnoccupiedDelay
- - UltrasonicUnoccupiedToOccupiedDelay
- - UltrasonicUnoccupiedToOccupiedThreshold
- - PhysicalContactOccupiedToUnoccupiedDelay
- - PhysicalContactUnoccupiedToOccupiedDelay
- - PhysicalContactUnoccupiedToOccupiedThreshold
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- WakeOnLan:
- - MACAddress
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- Channel:
- - ChannelList
- - Lineup
- - CurrentChannel
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- TargetNavigator:
- - TargetList
- - CurrentTarget
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- MediaPlayback:
- - CurrentState
- - StartTime
- - Duration
- - SampledPosition
- - PlaybackSpeed
- - SeekRangeEnd
- - SeekRangeStart
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- MediaInput:
- - InputList
- - CurrentInput
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- LowPower:
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- KeypadInput:
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- ContentLauncher:
- - AcceptHeader
- - SupportedStreamingProtocols
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- AudioOutput:
- - OutputList
- - CurrentOutput
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- ApplicationLauncher:
- - CatalogList
- - CurrentApp
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- ApplicationBasic:
- - VendorName
- - VendorID
- - ApplicationName
- - ProductID
- - Application
- - Status
- - ApplicationVersion
- - AllowedVendorList
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- AccountLogin:
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- ElectricalMeasurement:
- - MeasurementType
- - DcVoltage
- - DcVoltageMin
- - DcVoltageMax
- - DcCurrent
- - DcCurrentMin
- - DcCurrentMax
- - DcPower
- - DcPowerMin
- - DcPowerMax
- - DcVoltageMultiplier
- - DcVoltageDivisor
- - DcCurrentMultiplier
- - DcCurrentDivisor
- - DcPowerMultiplier
- - DcPowerDivisor
- - AcFrequency
- - AcFrequencyMin
- - AcFrequencyMax
- - NeutralCurrent
- - TotalActivePower
- - TotalReactivePower
- - TotalApparentPower
- - Measured1stHarmonicCurrent
- - Measured3rdHarmonicCurrent
- - Measured5thHarmonicCurrent
- - Measured7thHarmonicCurrent
- - Measured9thHarmonicCurrent
- - Measured11thHarmonicCurrent
- - MeasuredPhase1stHarmonicCurrent
- - MeasuredPhase3rdHarmonicCurrent
- - MeasuredPhase5thHarmonicCurrent
- - MeasuredPhase7thHarmonicCurrent
- - MeasuredPhase9thHarmonicCurrent
- - MeasuredPhase11thHarmonicCurrent
- - AcFrequencyMultiplier
- - AcFrequencyDivisor
- - PowerMultiplier
- - PowerDivisor
- - HarmonicCurrentMultiplier
- - PhaseHarmonicCurrentMultiplier
- - InstantaneousVoltage
- - InstantaneousLineCurrent
- - InstantaneousActiveCurrent
- - InstantaneousReactiveCurrent
- - InstantaneousPower
- - RmsVoltage
- - RmsVoltageMin
- - RmsVoltageMax
- - RmsCurrent
- - RmsCurrentMin
- - RmsCurrentMax
- - ActivePower
- - ActivePowerMin
- - ActivePowerMax
- - ReactivePower
- - ApparentPower
- - PowerFactor
- - AverageRmsVoltageMeasurementPeriod
- - AverageRmsUnderVoltageCounter
- - RmsExtremeOverVoltagePeriod
- - RmsExtremeUnderVoltagePeriod
- - RmsVoltageSagPeriod
- - RmsVoltageSwellPeriod
- - AcVoltageMultiplier
- - AcVoltageDivisor
- - AcCurrentMultiplier
- - AcCurrentDivisor
- - AcPowerMultiplier
- - AcPowerDivisor
- - OverloadAlarmsMask
- - VoltageOverload
- - CurrentOverload
- - AcOverloadAlarmsMask
- - AcVoltageOverload
- - AcCurrentOverload
- - AcActivePowerOverload
- - AcReactivePowerOverload
- - AverageRmsOverVoltage
- - AverageRmsUnderVoltage
- - RmsExtremeOverVoltage
- - RmsExtremeUnderVoltage
- - RmsVoltageSag
- - RmsVoltageSwell
- - LineCurrentPhaseB
- - ActiveCurrentPhaseB
- - ReactiveCurrentPhaseB
- - RmsVoltagePhaseB
- - RmsVoltageMinPhaseB
- - RmsVoltageMaxPhaseB
- - RmsCurrentPhaseB
- - RmsCurrentMinPhaseB
- - RmsCurrentMaxPhaseB
- - ActivePowerPhaseB
- - ActivePowerMinPhaseB
- - ActivePowerMaxPhaseB
- - ReactivePowerPhaseB
- - ApparentPowerPhaseB
- - PowerFactorPhaseB
- - AverageRmsVoltageMeasurementPeriodPhaseB
- - AverageRmsOverVoltageCounterPhaseB
- - AverageRmsUnderVoltageCounterPhaseB
- - RmsExtremeOverVoltagePeriodPhaseB
- - RmsExtremeUnderVoltagePeriodPhaseB
- - RmsVoltageSagPeriodPhaseB
- - RmsVoltageSwellPeriodPhaseB
- - LineCurrentPhaseC
- - ActiveCurrentPhaseC
- - ReactiveCurrentPhaseC
- - RmsVoltagePhaseC
- - RmsVoltageMinPhaseC
- - RmsVoltageMaxPhaseC
- - RmsCurrentPhaseC
- - RmsCurrentMinPhaseC
- - RmsCurrentMaxPhaseC
- - ActivePowerPhaseC
- - ActivePowerMinPhaseC
- - ActivePowerMaxPhaseC
- - ReactivePowerPhaseC
- - ApparentPowerPhaseC
- - PowerFactorPhaseC
- - AverageRmsVoltageMeasurementPeriodPhaseC
- - AverageRmsOverVoltageCounterPhaseC
- - AverageRmsUnderVoltageCounterPhaseC
- - RmsExtremeOverVoltagePeriodPhaseC
- - RmsExtremeUnderVoltagePeriodPhaseC
- - RmsVoltageSagPeriodPhaseC
- - RmsVoltageSwellPeriodPhaseC
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- TestCluster:
- - Boolean
- - Bitmap8
- - Bitmap16
- - Bitmap32
- - Bitmap64
- - Int8u
- - Int16u
- - Int24u
- - Int32u
- - Int40u
- - Int48u
- - Int56u
- - Int64u
- - Int8s
- - Int16s
- - Int24s
- - Int32s
- - Int40s
- - Int48s
- - Int56s
- - Int64s
- - Enum8
- - Enum16
- - FloatSingle
- - FloatDouble
- - OctetString
- - ListInt8u
- - ListOctetString
- - ListStructOctetString
- - LongOctetString
- - CharString
- - LongCharString
- - EpochUs
- - EpochS
- - VendorId
- - ListNullablesAndOptionalsStruct
- - EnumAttr
- - StructAttr
- - RangeRestrictedInt8u
- - RangeRestrictedInt8s
- - RangeRestrictedInt16u
- - RangeRestrictedInt16s
- - ListLongOctetString
- - ListFabricScoped
- - TimedWriteBoolean
- - GeneralErrorBoolean
- - ClusterErrorBoolean
- - Unsupported
- - NullableBoolean
- - NullableBitmap8
- - NullableBitmap16
- - NullableBitmap32
- - NullableBitmap64
- - NullableInt8u
- - NullableInt16u
- - NullableInt24u
- - NullableInt32u
- - NullableInt40u
- - NullableInt48u
- - NullableInt56u
- - NullableInt64u
- - NullableInt8s
- - NullableInt16s
- - NullableInt24s
- - NullableInt32s
- - NullableInt40s
- - NullableInt48s
- - NullableInt56s
- - NullableInt64s
- - NullableEnum8
- - NullableEnum16
- - NullableFloatSingle
- - NullableFloatDouble
- - NullableOctetString
- - NullableCharString
- - NullableEnumAttr
- - NullableStruct
- - NullableRangeRestrictedInt8u
- - NullableRangeRestrictedInt8s
- - NullableRangeRestrictedInt16u
- - NullableRangeRestrictedInt16s
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- commands:
- Identify:
- - Identify
- - TriggerEffect
- Groups:
- - AddGroup
- - AddGroupResponse
- - ViewGroup
- - ViewGroupResponse
- - GetGroupMembership
- - GetGroupMembershipResponse
- - RemoveGroup
- - RemoveGroupResponse
- - RemoveAllGroups
- - AddGroupIfIdentifying
- Scenes:
- - AddScene
- - AddSceneResponse
- - ViewScene
- - ViewSceneResponse
- - RemoveScene
- - RemoveSceneResponse
- - RemoveAllScenes
- - RemoveAllScenesResponse
- - StoreScene
- - StoreSceneResponse
- - RecallScene
- - GetSceneMembership
- - GetSceneMembershipResponse
- - EnhancedAddScene
- - EnhancedAddSceneResponse
- - EnhancedViewScene
- - EnhancedViewSceneResponse
- - CopyScene
- - CopySceneResponse
- OnOff:
- - Off
- - On
- - Toggle
- - OffWithEffect
- - OnWithRecallGlobalScene
- - OnWithTimedOff
- LevelControl:
- - MoveToLevel
- - Move
- - Step
- - Stop
- - MoveToLevelWithOnOff
- - MoveWithOnOff
- - StepWithOnOff
- - StopWithOnOff
- - MoveToClosestFrequency
- Actions:
- - InstantAction
- - InstantActionWithTransition
- - StartAction
- - StartActionWithDuration
- - StopAction
- - PauseAction
- - PauseActionWithDuration
- - ResumeAction
- - EnableAction
- - EnableActionWithDuration
- - DisableAction
- - DisableActionWithDuration
- Basic:
- - MfgSpecificPing
- OtaSoftwareUpdateProvider:
- - QueryImage
- - QueryImageResponse
- - ApplyUpdateRequest
- - ApplyUpdateResponse
- - NotifyUpdateApplied
- OtaSoftwareUpdateRequestor:
- - AnnounceOtaProvider
- GeneralCommissioning:
- - ArmFailSafe
- - ArmFailSafeResponse
- - SetRegulatoryConfig
- - SetRegulatoryConfigResponse
- - CommissioningComplete
- - CommissioningCompleteResponse
- NetworkCommissioning:
- - ScanNetworks
- - ScanNetworksResponse
- - AddOrUpdateWiFiNetwork
- - AddOrUpdateThreadNetwork
- - RemoveNetwork
- - NetworkConfigResponse
- - ConnectNetwork
- - ConnectNetworkResponse
- - ReorderNetwork
- DiagnosticLogs:
- - RetrieveLogsRequest
- - RetrieveLogsResponse
- GeneralDiagnostics:
- - TestEventTrigger
- SoftwareDiagnostics:
- - ResetWatermarks
- ThreadNetworkDiagnostics:
- - ResetCounts
- WiFiNetworkDiagnostics:
- - ResetCounts
- EthernetNetworkDiagnostics:
- - ResetCounts
- AdministratorCommissioning:
- - OpenCommissioningWindow
- - OpenBasicCommissioningWindow
- - RevokeCommissioning
- OperationalCredentials:
- - AttestationRequest
- - AttestationResponse
- - CertificateChainRequest
- - CertificateChainResponse
- - CSRRequest
- - CSRResponse
- - AddNOC
- - UpdateNOC
- - NOCResponse
- - UpdateFabricLabel
- - RemoveFabric
- - AddTrustedRootCertificate
- GroupKeyManagement:
- - KeySetWrite
- - KeySetRead
- - KeySetReadResponse
- - KeySetRemove
- - KeySetReadAllIndices
- - KeySetReadAllIndicesResponse
- ModeSelect:
- - ChangeToMode
- DoorLock:
- - LockDoor
- - UnlockDoor
- - UnlockWithTimeout
- - SetWeekDaySchedule
- - GetWeekDaySchedule
- - GetWeekDayScheduleResponse
- - ClearWeekDaySchedule
- - SetYearDaySchedule
- - GetYearDaySchedule
- - GetYearDayScheduleResponse
- - ClearYearDaySchedule
- - SetHolidaySchedule
- - GetHolidaySchedule
- - GetHolidayScheduleResponse
- - ClearHolidaySchedule
- - SetUser
- - GetUser
- - GetUserResponse
- - ClearUser
- - SetCredential
- - SetCredentialResponse
- - GetCredentialStatus
- - GetCredentialStatusResponse
- - ClearCredential
- WindowCovering:
- - UpOrOpen
- - DownOrClose
- - StopMotion
- - GoToLiftValue
- - GoToLiftPercentage
- - GoToTiltValue
- - GoToTiltPercentage
- BarrierControl:
- - BarrierControlGoToPercent
- - BarrierControlStop
- Thermostat:
- - SetpointRaiseLower
- - GetWeeklyScheduleResponse
- - SetWeeklySchedule
- - GetWeeklySchedule
- - ClearWeeklySchedule
- ColorControl:
- - MoveToHue
- - MoveHue
- - StepHue
- - MoveToSaturation
- - MoveSaturation
- - StepSaturation
- - MoveToHueAndSaturation
- - MoveToColor
- - MoveColor
- - StepColor
- - MoveToColorTemperature
- - EnhancedMoveToHue
- - EnhancedMoveHue
- - EnhancedStepHue
- - EnhancedMoveToHueAndSaturation
- - ColorLoopSet
- - StopMoveStep
- - MoveColorTemperature
- - StepColorTemperature
- Channel:
- - ChangeChannel
- - ChangeChannelResponse
- - ChangeChannelByNumber
- - SkipChannel
- TargetNavigator:
- - NavigateTarget
- - NavigateTargetResponse
- MediaPlayback:
- - Play
- - Pause
- - StopPlayback
- - StartOver
- - Previous
- - Next
- - Rewind
- - FastForward
- - SkipForward
- - SkipBackward
- - PlaybackResponse
- - Seek
- MediaInput:
- - SelectInput
- - ShowInputStatus
- - HideInputStatus
- - RenameInput
- LowPower:
- - Sleep
- KeypadInput:
- - SendKey
- - SendKeyResponse
- ContentLauncher:
- - LaunchContent
- - LaunchURL
- - LaunchResponse
- AudioOutput:
- - SelectOutput
- - RenameOutput
- ApplicationLauncher:
- - LaunchApp
- - StopApp
- - HideApp
- - LauncherResponse
- AccountLogin:
- - GetSetupPIN
- - GetSetupPINResponse
- - Login
- - Logout
- ElectricalMeasurement:
- - GetProfileInfoResponseCommand
- - GetProfileInfoCommand
- - GetMeasurementProfileResponseCommand
- - GetMeasurementProfileCommand
- TestCluster:
- - Test
- - TestSpecificResponse
- - TestNotHandled
- - TestAddArgumentsResponse
- - TestSpecific
- - TestSimpleArgumentResponse
- - TestUnknownCommand
- - TestStructArrayArgumentResponse
- - TestAddArguments
- - TestListInt8UReverseResponse
- - TestSimpleArgumentRequest
- - TestEnumsResponse
- - TestStructArrayArgumentRequest
- - TestNullableOptionalResponse
- - TestStructArgumentRequest
- - TestComplexNullableOptionalResponse
- - TestNestedStructArgumentRequest
- - BooleanResponse
- - TestListStructArgumentRequest
- - SimpleStructResponse
- - TestListInt8UArgumentRequest
- - TestEmitTestEventResponse
- - TestNestedStructListArgumentRequest
- - TestEmitTestFabricScopedEventResponse
- - TestListNestedStructListArgumentRequest
- - TestListInt8UReverseRequest
- - TestEnumsRequest
- - TestNullableOptionalRequest
- - TestComplexNullableOptionalRequest
- - SimpleStructEchoRequest
- - TimedInvokeRequest
- - TestSimpleOptionalArgumentRequest
- - TestEmitTestEventRequest
- - TestEmitTestFabricScopedEventRequest
- command fields:
- Identify:
- Identify:
- - identifyTime
- TriggerEffect:
- - effectIdentifier
- - effectVariant
- Groups:
- AddGroup:
- - groupId
- - groupName
- AddGroupResponse:
- - status
- - groupId
- ViewGroup:
- - groupId
- ViewGroupResponse:
- - status
- - groupId
- - groupName
- GetGroupMembership:
- - groupList
- GetGroupMembershipResponse:
- - capacity
- - groupList
- RemoveGroup:
- - groupId
- RemoveGroupResponse:
- - status
- - groupId
- AddGroupIfIdentifying:
- - groupId
- - groupName
- Scenes:
- AddScene:
- - groupId
- - sceneId
- - transitionTime
- - sceneName
- - extensionFieldSets
- AddSceneResponse:
- - status
- - groupId
- - sceneId
- ViewScene:
- - groupId
- - sceneId
- ViewSceneResponse:
- - status
- - groupId
- - sceneId
- - transitionTime
- - sceneName
- - extensionFieldSets
- RemoveScene:
- - groupId
- - sceneId
- RemoveSceneResponse:
- - status
- - groupId
- - sceneId
- RemoveAllScenes:
- - groupId
- RemoveAllScenesResponse:
- - status
- - groupId
- StoreScene:
- - groupId
- - sceneId
- StoreSceneResponse:
- - status
- - groupId
- - sceneId
- RecallScene:
- - groupId
- - sceneId
- - transitionTime
- GetSceneMembership:
- - groupId
- GetSceneMembershipResponse:
- - status
- - capacity
- - groupId
- - sceneList
- EnhancedAddScene:
- - groupId
- - sceneId
- - transitionTime
- - sceneName
- - extensionFieldSets
- EnhancedAddSceneResponse:
- - status
- - groupId
- - sceneId
- EnhancedViewScene:
- - groupId
- - sceneId
- EnhancedViewSceneResponse:
- - status
- - groupId
- - sceneId
- - transitionTime
- - sceneName
- - extensionFieldSets
- CopyScene:
- - mode
- - groupIdFrom
- - sceneIdFrom
- - groupIdTo
- - sceneIdTo
- CopySceneResponse:
- - status
- - groupIdFrom
- - sceneIdFrom
- OnOff:
- OffWithEffect:
- - effectId
- - effectVariant
- OnWithTimedOff:
- - onOffControl
- - onTime
- - offWaitTime
- LevelControl:
- MoveToLevel:
- - level
- - transitionTime
- - optionsMask
- - optionsOverride
- Move:
- - moveMode
- - rate
- - optionsMask
- - optionsOverride
- Step:
- - stepMode
- - stepSize
- - transitionTime
- - optionsMask
- - optionsOverride
- Stop:
- - optionsMask
- - optionsOverride
- MoveToLevelWithOnOff:
- - level
- - transitionTime
- - optionsMask
- - optionsOverride
- MoveWithOnOff:
- - moveMode
- - rate
- - optionsMask
- - optionsOverride
- StepWithOnOff:
- - stepMode
- - stepSize
- - transitionTime
- - optionsMask
- - optionsOverride
- StopWithOnOff:
- - optionsMask
- - optionsOverride
- MoveToClosestFrequency:
- - frequency
- Actions:
- InstantAction:
- - actionID
- - invokeID
- InstantActionWithTransition:
- - actionID
- - invokeID
- - transitionTime
- StartAction:
- - actionID
- - invokeID
- StartActionWithDuration:
- - actionID
- - invokeID
- - duration
- StopAction:
- - actionID
- - invokeID
- PauseAction:
- - actionID
- - invokeID
- PauseActionWithDuration:
- - actionID
- - invokeID
- - duration
- ResumeAction:
- - actionID
- - invokeID
- EnableAction:
- - actionID
- - invokeID
- EnableActionWithDuration:
- - actionID
- - invokeID
- - duration
- DisableAction:
- - actionID
- - invokeID
- DisableActionWithDuration:
- - actionID
- - invokeID
- - duration
- OtaSoftwareUpdateProvider:
- QueryImage:
- - vendorId
- - productId
- - softwareVersion
- - protocolsSupported
- - hardwareVersion
- - location
- - requestorCanConsent
- - metadataForProvider
- QueryImageResponse:
- - status
- - delayedActionTime
- - imageURI
- - softwareVersion
- - softwareVersionString
- - updateToken
- - userConsentNeeded
- - metadataForRequestor
- ApplyUpdateRequest:
- - updateToken
- - newVersion
- ApplyUpdateResponse:
- - action
- - delayedActionTime
- NotifyUpdateApplied:
- - updateToken
- - softwareVersion
- OtaSoftwareUpdateRequestor:
- AnnounceOtaProvider:
- - providerNodeId
- - vendorId
- - announcementReason
- - metadataForNode
- - endpoint
- GeneralCommissioning:
- ArmFailSafe:
- - expiryLengthSeconds
- - breadcrumb
- ArmFailSafeResponse:
- - errorCode
- - debugText
- SetRegulatoryConfig:
- - newRegulatoryConfig
- - countryCode
- - breadcrumb
- SetRegulatoryConfigResponse:
- - errorCode
- - debugText
- CommissioningCompleteResponse:
- - errorCode
- - debugText
- NetworkCommissioning:
- ScanNetworks:
- - ssid
- - breadcrumb
- ScanNetworksResponse:
- - networkingStatus
- - debugText
- - wiFiScanResults
- - threadScanResults
- AddOrUpdateWiFiNetwork:
- - ssid
- - credentials
- - breadcrumb
- AddOrUpdateThreadNetwork:
- - operationalDataset
- - breadcrumb
- RemoveNetwork:
- - networkID
- - breadcrumb
- NetworkConfigResponse:
- - networkingStatus
- - debugText
- - networkIndex
- ConnectNetwork:
- - networkID
- - breadcrumb
- ConnectNetworkResponse:
- - networkingStatus
- - debugText
- - errorValue
- ReorderNetwork:
- - networkID
- - networkIndex
- - breadcrumb
- DiagnosticLogs:
- RetrieveLogsRequest:
- - intent
- - requestedProtocol
- RetrieveLogsResponse:
- - status
- - content
- - timeStamp
- - timeSinceBoot
- GeneralDiagnostics:
- TestEventTrigger:
- - enableKey
- - eventTrigger
- SoftwareDiagnostics:
- ThreadNetworkDiagnostics:
- WiFiNetworkDiagnostics:
- EthernetNetworkDiagnostics:
- TimeSynchronization:
- SetUtcTime:
- - utcTime
- - granularity
- - timeSource
- AdministratorCommissioning:
- OpenCommissioningWindow:
- - commissioningTimeout
- - pakeVerifier
- - discriminator
- - iterations
- - salt
- OpenBasicCommissioningWindow:
- - commissioningTimeout
- OperationalCredentials:
- AttestationRequest:
- - attestationNonce
- AttestationResponse:
- - attestationElements
- - signature
- CertificateChainRequest:
- - certificateType
- CertificateChainResponse:
- - certificate
- CSRRequest:
- - csrNonce
- - isForUpdateNOC
- CSRResponse:
- - nocsrElements
- - attestationSignature
- AddNOC:
- - nocValue
- - icacValue
- - ipkValue
- - caseAdminSubject
- - adminVendorId
- UpdateNOC:
- - nocValue
- - icacValue
- NOCResponse:
- - statusCode
- - fabricIndex
- - debugText
- UpdateFabricLabel:
- - label
- RemoveFabric:
- - fabricIndex
- AddTrustedRootCertificate:
- - rootCertificate
- GroupKeyManagement:
- KeySetWrite:
- - groupKeySet
- KeySetRead:
- - groupKeySetID
- KeySetReadResponse:
- - groupKeySet
- KeySetRemove:
- - groupKeySetID
- KeySetReadAllIndices:
- - groupKeySetIDs
- KeySetReadAllIndicesResponse:
- - groupKeySetIDs
- ModeSelect:
- ChangeToMode:
- - newMode
- DoorLock:
- LockDoor:
- - pinCode
- UnlockDoor:
- - pinCode
- UnlockWithTimeout:
- - timeout
- - pinCode
- SetWeekDaySchedule:
- - weekDayIndex
- - userIndex
- - daysMask
- - startHour
- - startMinute
- - endHour
- - endMinute
- GetWeekDaySchedule:
- - weekDayIndex
- - userIndex
- GetWeekDayScheduleResponse:
- - weekDayIndex
- - userIndex
- - status
- - daysMask
- - startHour
- - startMinute
- - endHour
- - endMinute
- ClearWeekDaySchedule:
- - weekDayIndex
- - userIndex
- SetYearDaySchedule:
- - yearDayIndex
- - userIndex
- - localStartTime
- - localEndTime
- GetYearDaySchedule:
- - yearDayIndex
- - userIndex
- GetYearDayScheduleResponse:
- - yearDayIndex
- - userIndex
- - status
- - localStartTime
- - localEndTime
- ClearYearDaySchedule:
- - yearDayIndex
- - userIndex
- SetHolidaySchedule:
- - holidayIndex
- - localStartTime
- - localEndTime
- - operatingMode
- GetHolidaySchedule:
- - holidayIndex
- GetHolidayScheduleResponse:
- - holidayIndex
- - status
- - localStartTime
- - localEndTime
- - operatingMode
- ClearHolidaySchedule:
- - holidayIndex
- SetUser:
- - operationType
- - userIndex
- - userName
- - userUniqueId
- - userStatus
- - userType
- - credentialRule
- GetUser:
- - userIndex
- GetUserResponse:
- - userIndex
- - userName
- - userUniqueId
- - userStatus
- - userType
- - credentialRule
- - credentials
- - creatorFabricIndex
- - lastModifiedFabricIndex
- - nextUserIndex
- ClearUser:
- - userIndex
- SetCredential:
- - operationType
- - credential
- - credentialData
- - userIndex
- - userStatus
- - userType
- SetCredentialResponse:
- - status
- - userIndex
- - nextCredentialIndex
- GetCredentialStatus:
- - credential
- GetCredentialStatusResponse:
- - credentialExists
- - userIndex
- - creatorFabricIndex
- - lastModifiedFabricIndex
- - nextCredentialIndex
- ClearCredential:
- - credential
- WindowCovering:
- GoToLiftValue:
- - liftValue
- GoToLiftPercentage:
- - liftPercent100thsValue
- GoToTiltValue:
- - tiltValue
- GoToTiltPercentage:
- - tiltPercent100thsValue
- BarrierControl:
- BarrierControlGoToPercent:
- - percentOpen
- Thermostat:
- SetpointRaiseLower:
- - mode
- - amount
- GetWeeklyScheduleResponse:
- - numberOfTransitionsForSequence
- - dayOfWeekForSequence
- - modeForSequence
- - transitions
- SetWeeklySchedule:
- - numberOfTransitionsForSequence
- - dayOfWeekForSequence
- - modeForSequence
- - transitions
- GetWeeklySchedule:
- - daysToReturn
- - modeToReturn
- ColorControl:
- MoveToHue:
- - hue
- - direction
- - transitionTime
- - optionsMask
- - optionsOverride
- MoveHue:
- - moveMode
- - rate
- - optionsMask
- - optionsOverride
- StepHue:
- - stepMode
- - stepSize
- - transitionTime
- - optionsMask
- - optionsOverride
- MoveToSaturation:
- - saturation
- - transitionTime
- - optionsMask
- - optionsOverride
- MoveSaturation:
- - moveMode
- - rate
- - optionsMask
- - optionsOverride
- StepSaturation:
- - stepMode
- - stepSize
- - transitionTime
- - optionsMask
- - optionsOverride
- MoveToHueAndSaturation:
- - hue
- - saturation
- - transitionTime
- - optionsMask
- - optionsOverride
- MoveToColor:
- - colorX
- - colorY
- - transitionTime
- - optionsMask
- - optionsOverride
- MoveColor:
- - rateX
- - rateY
- - optionsMask
- - optionsOverride
- StepColor:
- - stepX
- - stepY
- - transitionTime
- - optionsMask
- - optionsOverride
- MoveToColorTemperature:
- - colorTemperature
- - transitionTime
- - optionsMask
- - optionsOverride
- EnhancedMoveToHue:
- - enhancedHue
- - direction
- - transitionTime
- - optionsMask
- - optionsOverride
- EnhancedMoveHue:
- - moveMode
- - rate
- - optionsMask
- - optionsOverride
- EnhancedStepHue:
- - stepMode
- - stepSize
- - transitionTime
- - optionsMask
- - optionsOverride
- EnhancedMoveToHueAndSaturation:
- - enhancedHue
- - saturation
- - transitionTime
- - optionsMask
- - optionsOverride
- ColorLoopSet:
- - updateFlags
- - action
- - direction
- - time
- - startHue
- - optionsMask
- - optionsOverride
- StopMoveStep:
- - optionsMask
- - optionsOverride
- MoveColorTemperature:
- - moveMode
- - rate
- - colorTemperatureMinimumMireds
- - colorTemperatureMaximumMireds
- - optionsMask
- - optionsOverride
- StepColorTemperature:
- - stepMode
- - stepSize
- - transitionTime
- - colorTemperatureMinimumMireds
- - colorTemperatureMaximumMireds
- - optionsMask
- - optionsOverride
- Channel:
- ChangeChannel:
- - match
- ChangeChannelResponse:
- - status
- - data
- ChangeChannelByNumber:
- - majorNumber
- - minorNumber
- SkipChannel:
- - count
- TargetNavigator:
- NavigateTarget:
- - target
- - data
- NavigateTargetResponse:
- - status
- - data
- MediaPlayback:
- SkipForward:
- - deltaPositionMilliseconds
- SkipBackward:
- - deltaPositionMilliseconds
- PlaybackResponse:
- - status
- - data
- Seek:
- - position
- MediaInput:
- SelectInput:
- - index
- RenameInput:
- - index
- - name
- LowPower:
- KeypadInput:
- SendKey:
- - keyCode
- SendKeyResponse:
- - status
- ContentLauncher:
- LaunchContent:
- - search
- - autoPlay
- - data
- LaunchURL:
- - contentURL
- - displayString
- - brandingInformation
- LaunchResponse:
- - status
- - data
- AudioOutput:
- SelectOutput:
- - index
- RenameOutput:
- - index
- - name
- ApplicationLauncher:
- LaunchApp:
- - application
- - data
- StopApp:
- - application
- HideApp:
- - application
- LauncherResponse:
- - status
- - data
- AccountLogin:
- GetSetupPIN:
- - tempAccountIdentifier
- GetSetupPINResponse:
- - setupPIN
- Login:
- - tempAccountIdentifier
- - setupPIN
- ElectricalMeasurement:
- GetProfileInfoResponseCommand:
- - profileCount
- - profileIntervalPeriod
- - maxNumberOfIntervals
- - listOfAttributes
- GetMeasurementProfileResponseCommand:
- - startTime
- - status
- - profileIntervalPeriod
- - numberOfIntervalsDelivered
- - attributeId
- - intervals
- GetMeasurementProfileCommand:
- - attributeId
- - startTime
- - numberOfIntervals
- TestCluster:
- TestSpecificResponse:
- - returnValue
- TestAddArgumentsResponse:
- - returnValue
- TestSimpleArgumentResponse:
- - returnValue
- TestStructArrayArgumentResponse:
- - arg1
- - arg2
- - arg3
- - arg4
- - arg5
- - arg6
- TestAddArguments:
- - arg1
- - arg2
- TestListInt8UReverseResponse:
- - arg1
- TestSimpleArgumentRequest:
- - arg1
- TestEnumsResponse:
- - arg1
- - arg2
- TestStructArrayArgumentRequest:
- - arg1
- - arg2
- - arg3
- - arg4
- - arg5
- - arg6
- TestNullableOptionalResponse:
- - wasPresent
- - wasNull
- - value
- - originalValue
- TestStructArgumentRequest:
- - arg1
- TestComplexNullableOptionalResponse:
- - nullableIntWasNull
- - nullableIntValue
- - optionalIntWasPresent
- - optionalIntValue
- - nullableOptionalIntWasPresent
- - nullableOptionalIntWasNull
- - nullableOptionalIntValue
- - nullableStringWasNull
- - nullableStringValue
- - optionalStringWasPresent
- - optionalStringValue
- - nullableOptionalStringWasPresent
- - nullableOptionalStringWasNull
- - nullableOptionalStringValue
- - nullableStructWasNull
- - nullableStructValue
- - optionalStructWasPresent
- - optionalStructValue
- - nullableOptionalStructWasPresent
- - nullableOptionalStructWasNull
- - nullableOptionalStructValue
- - nullableListWasNull
- - nullableListValue
- - optionalListWasPresent
- - optionalListValue
- - nullableOptionalListWasPresent
- - nullableOptionalListWasNull
- - nullableOptionalListValue
- TestNestedStructArgumentRequest:
- - arg1
- BooleanResponse:
- - value
- TestListStructArgumentRequest:
- - arg1
- SimpleStructResponse:
- - arg1
- TestListInt8UArgumentRequest:
- - arg1
- TestEmitTestEventResponse:
- - value
- TestNestedStructListArgumentRequest:
- - arg1
- TestEmitTestFabricScopedEventResponse:
- - value
- TestListNestedStructListArgumentRequest:
- - arg1
- TestListInt8UReverseRequest:
- - arg1
- TestEnumsRequest:
- - arg1
- - arg2
- TestNullableOptionalRequest:
- - arg1
- TestComplexNullableOptionalRequest:
- - nullableInt
- - optionalInt
- - nullableOptionalInt
- - nullableString
- - optionalString
- - nullableOptionalString
- - nullableStruct
- - optionalStruct
- - nullableOptionalStruct
- - nullableList
- - optionalList
- - nullableOptionalList
- SimpleStructEchoRequest:
- - arg1
- TestSimpleOptionalArgumentRequest:
- - arg1
- TestEmitTestEventRequest:
- - arg1
- - arg2
- - arg3
- TestEmitTestFabricScopedEventRequest:
- - arg1
- FaultInjection:
- FailAtFault:
- - type
- - id
- - numCallsToSkip
- - numCallsToFail
- - takeMutex
- FailRandomlyAtFault:
- - type
- - id
- - percentage
- structs:
- Scenes:
- - AttributeValuePair
- - ExtensionFieldSet
- Descriptor:
- - DeviceType
- Binding:
- - TargetStruct
- AccessControl:
- - Target
- - AccessControlEntry
- - ExtensionEntry
- Actions:
- - ActionStruct
- - EndpointListStruct
- Basic:
- - CapabilityMinimaStruct
- OtaSoftwareUpdateRequestor:
- - ProviderLocation
- PowerSource:
- - BatChargeFaultChangeType
- - BatFaultChangeType
- - WiredFaultChangeType
- GeneralCommissioning:
- - BasicCommissioningInfo
- NetworkCommissioning:
- - NetworkInfo
- - ThreadInterfaceScanResult
- - WiFiInterfaceScanResult
- GeneralDiagnostics:
- - NetworkInterfaceType
- SoftwareDiagnostics:
- - ThreadMetrics
- ThreadNetworkDiagnostics:
- - NeighborTable
- - OperationalDatasetComponents
- - RouteTable
- - SecurityPolicy
- TimeSynchronization:
- - DstOffsetType
- - TimeZoneType
- OperationalCredentials:
- - FabricDescriptor
- - NOCStruct
- GroupKeyManagement:
- - GroupInfoMapStruct
- - GroupKeyMapStruct
- - GroupKeySetStruct
- FixedLabel:
- - LabelStruct
- UserLabel:
- - LabelStruct
- ModeSelect:
- - SemanticTag
- - ModeOptionStruct
- DoorLock:
- - DlCredential
- Thermostat:
- - ThermostatScheduleTransition
- Channel:
- - ChannelInfo
- - LineupInfo
- TargetNavigator:
- - TargetInfo
- MediaPlayback:
- - PlaybackPosition
- MediaInput:
- - InputInfo
- ContentLauncher:
- - Dimension
- - AdditionalInfo
- - Parameter
- - ContentSearch
- - StyleInformation
- - BrandingInformation
- AudioOutput:
- - OutputInfo
- ApplicationLauncher:
- - Application
- - ApplicationEP
- ApplicationBasic:
- - ApplicationBasicApplication
- TestCluster:
- - SimpleStruct
- - TestFabricScoped
- - NullablesAndOptionalsStruct
- - NestedStruct
- - NestedStructList
- - DoubleNestedStructList
- - TestListStructOctet
- struct fields:
- Scenes:
- AttributeValuePair:
- - attributeId
- - attributeValue
- ExtensionFieldSet:
- - clusterId
- - attributeValueList
- Descriptor:
- DeviceType:
- - type
- - revision
- Binding:
- TargetStruct:
- - node
- - group
- - endpoint
- - cluster
- - fabricIndex
- AccessControl:
- Target:
- - cluster
- - endpoint
- - deviceType
- AccessControlEntry:
- - privilege
- - authMode
- - subjects
- - targets
- - fabricIndex
- ExtensionEntry:
- - data
- - fabricIndex
- Actions:
- ActionStruct:
- - actionID
- - name
- - type
- - endpointListID
- - supportedCommands
- - state
- EndpointListStruct:
- - endpointListID
- - name
- - type
- - endpoints
- Basic:
- CapabilityMinimaStruct:
- - caseSessionsPerFabric
- - subscriptionsPerFabric
- OtaSoftwareUpdateRequestor:
- ProviderLocation:
- - providerNodeID
- - endpoint
- - fabricIndex
- PowerSource:
- BatChargeFaultChangeType:
- - current
- - previous
- BatFaultChangeType:
- - current
- - previous
- WiredFaultChangeType:
- - current
- - previous
- GeneralCommissioning:
- BasicCommissioningInfo:
- - failSafeExpiryLengthSeconds
- - maxCumulativeFailsafeSeconds
- NetworkCommissioning:
- NetworkInfo:
- - networkID
- - connected
- ThreadInterfaceScanResult:
- - panId
- - extendedPanId
- - networkName
- - channel
- - version
- - extendedAddress
- - rssi
- - lqi
- WiFiInterfaceScanResult:
- - security
- - ssid
- - bssid
- - channel
- - wiFiBand
- - rssi
- GeneralDiagnostics:
- NetworkInterfaceType:
- - name
- - isOperational
- - offPremiseServicesReachableIPv4
- - offPremiseServicesReachableIPv6
- - hardwareAddress
- - iPv4Addresses
- - iPv6Addresses
- - type
- SoftwareDiagnostics:
- ThreadMetrics:
- - id
- - name
- - stackFreeCurrent
- - stackFreeMinimum
- - stackSize
- ThreadNetworkDiagnostics:
- NeighborTable:
- - extAddress
- - age
- - rloc16
- - linkFrameCounter
- - mleFrameCounter
- - lqi
- - averageRssi
- - lastRssi
- - frameErrorRate
- - messageErrorRate
- - rxOnWhenIdle
- - fullThreadDevice
- - fullNetworkData
- - isChild
- OperationalDatasetComponents:
- - activeTimestampPresent
- - pendingTimestampPresent
- - masterKeyPresent
- - networkNamePresent
- - extendedPanIdPresent
- - meshLocalPrefixPresent
- - delayPresent
- - panIdPresent
- - channelPresent
- - pskcPresent
- - securityPolicyPresent
- - channelMaskPresent
- RouteTable:
- - extAddress
- - rloc16
- - routerId
- - nextHop
- - pathCost
- - lqiIn
- - lqiOut
- - age
- - allocated
- - linkEstablished
- SecurityPolicy:
- - rotationTime
- - flags
- TimeSynchronization:
- DstOffsetType:
- - offset
- - validStarting
- - validUntil
- TimeZoneType:
- - offset
- - validAt
- - name
- OperationalCredentials:
- FabricDescriptor:
- - rootPublicKey
- - vendorId
- - fabricId
- - nodeId
- - label
- - fabricIndex
- NOCStruct:
- - noc
- - icac
- - fabricIndex
- GroupKeyManagement:
- GroupInfoMapStruct:
- - groupId
- - endpoints
- - groupName
- - fabricIndex
- GroupKeyMapStruct:
- - groupId
- - groupKeySetID
- - fabricIndex
- GroupKeySetStruct:
- - groupKeySetID
- - groupKeySecurityPolicy
- - epochKey0
- - epochStartTime0
- - epochKey1
- - epochStartTime1
- - epochKey2
- - epochStartTime2
- FixedLabel:
- LabelStruct:
- - label
- - value
- UserLabel:
- LabelStruct:
- - label
- - value
- ModeSelect:
- SemanticTag:
- - mfgCode
- - value
- ModeOptionStruct:
- - label
- - mode
- - semanticTags
- DoorLock:
- DlCredential:
- - credentialType
- - credentialIndex
- Thermostat:
- ThermostatScheduleTransition:
- - transitionTime
- - heatSetpoint
- - coolSetpoint
- Channel:
- ChannelInfo:
- - majorNumber
- - minorNumber
- - name
- - callSign
- - affiliateCallSign
- LineupInfo:
- - operatorName
- - lineupName
- - postalCode
- - lineupInfoType
- TargetNavigator:
- TargetInfo:
- - identifier
- - name
- MediaPlayback:
- PlaybackPosition:
- - updatedAt
- - position
- MediaInput:
- InputInfo:
- - index
- - inputType
- - name
- - descriptionString
- ContentLauncher:
- Dimension:
- - width
- - height
- - metric
- AdditionalInfo:
- - name
- - value
- Parameter:
- - type
- - value
- - externalIDList
- ContentSearch:
- - parameterList
- StyleInformation:
- - imageUrl
- - color
- - size
- BrandingInformation:
- - providerName
- - background
- - logo
- - progressBar
- - splash
- - waterMark
- AudioOutput:
- OutputInfo:
- - index
- - outputType
- - name
- ApplicationLauncher:
- Application:
- - catalogVendorId
- - applicationId
- ApplicationEP:
- - application
- - endpoint
- ApplicationBasic:
- ApplicationBasicApplication:
- - catalogVendorId
- - applicationId
- TestCluster:
- SimpleStruct:
- - a
- - b
- - c
- - d
- - e
- - f
- - g
- - h
- TestFabricScoped:
- - fabricSensitiveInt8u
- - optionalFabricSensitiveInt8u
- - nullableFabricSensitiveInt8u
- - nullableOptionalFabricSensitiveInt8u
- - fabricSensitiveCharString
- - fabricSensitiveStruct
- - fabricSensitiveInt8uList
- - fabricIndex
- NullablesAndOptionalsStruct:
- - nullableInt
- - optionalInt
- - nullableOptionalInt
- - nullableString
- - optionalString
- - nullableOptionalString
- - nullableStruct
- - optionalStruct
- - nullableOptionalStruct
- - nullableList
- - optionalList
- - nullableOptionalList
- NestedStruct:
- - a
- - b
- - c
- NestedStructList:
- - a
- - b
- - c
- - d
- - e
- - f
- - g
- DoubleNestedStructList:
- - a
- TestListStructOctet:
- - member1
- - member2
- events:
- AccessControl:
- - AccessControlEntryChanged
- - AccessControlExtensionChanged
- Actions:
- - StateChanged
- - ActionFailed
- Basic:
- - StartUp
- - ShutDown
- - Leave
- - ReachableChanged
- OtaSoftwareUpdateRequestor:
- - StateTransition
- - VersionApplied
- - DownloadError
- GeneralDiagnostics:
- - HardwareFaultChange
- - RadioFaultChange
- - NetworkFaultChange
- - BootReason
- SoftwareDiagnostics:
- - SoftwareFault
- ThreadNetworkDiagnostics:
- - ConnectionStatus
- - NetworkFaultChange
- WiFiNetworkDiagnostics:
- - Disconnection
- - AssociationFailure
- - ConnectionStatus
- BridgedDeviceBasic:
- - StartUp
- - ShutDown
- - Leave
- - ReachableChanged
- Switch:
- - SwitchLatched
- - InitialPress
- - LongPress
- - ShortRelease
- - LongRelease
- - MultiPressOngoing
- - MultiPressComplete
- BooleanState:
- - StateChange
- DoorLock:
- - DoorLockAlarm
- - DoorStateChange
- - LockOperation
- - LockOperationError
- - LockUserChange
- PumpConfigurationAndControl:
- - SupplyVoltageLow
- - SupplyVoltageHigh
- - PowerMissingPhase
- - SystemPressureLow
- - SystemPressureHigh
- - DryRunning
- - MotorTemperatureHigh
- - PumpMotorFatalFailure
- - ElectronicTemperatureHigh
- - PumpBlocked
- - SensorFailure
- - ElectronicNonFatalFailure
- - ElectronicFatalFailure
- - GeneralFault
- - Leakage
- - AirDetection
- - TurbineOperation
- TestCluster:
- - TestEvent
- - TestFabricScopedEvent
- event fields:
- AccessControl:
- AccessControlEntryChanged:
- - adminNodeID
- - adminPasscodeID
- - changeType
- - latestValue
- - fabricIndex
- AccessControlExtensionChanged:
- - adminNodeID
- - adminPasscodeID
- - changeType
- - latestValue
- - fabricIndex
- Actions:
- StateChanged:
- - actionID
- - invokeID
- - newState
- ActionFailed:
- - actionID
- - invokeID
- - newState
- - error
- Basic:
- StartUp:
- - softwareVersion
- Leave:
- - fabricIndex
- ReachableChanged:
- - reachableNewValue
- OtaSoftwareUpdateRequestor:
- StateTransition:
- - previousState
- - newState
- - reason
- - targetSoftwareVersion
- VersionApplied:
- - softwareVersion
- - productID
- DownloadError:
- - softwareVersion
- - bytesDownloaded
- - progressPercent
- - platformCode
- GeneralDiagnostics:
- HardwareFaultChange:
- - current
- - previous
- RadioFaultChange:
- - current
- - previous
- NetworkFaultChange:
- - current
- - previous
- BootReason:
- - bootReason
- SoftwareDiagnostics:
- SoftwareFault:
- - id
- - name
- - faultRecording
- ThreadNetworkDiagnostics:
- ConnectionStatus:
- - connectionStatus
- NetworkFaultChange:
- - current
- - previous
- WiFiNetworkDiagnostics:
- Disconnection:
- - reasonCode
- AssociationFailure:
- - associationFailure
- - status
- ConnectionStatus:
- - connectionStatus
- BridgedDeviceBasic:
- StartUp:
- - softwareVersion
- ReachableChanged:
- - reachableNewValue
- Switch:
- SwitchLatched:
- - newPosition
- InitialPress:
- - newPosition
- LongPress:
- - newPosition
- ShortRelease:
- - previousPosition
- LongRelease:
- - previousPosition
- MultiPressOngoing:
- - newPosition
- - currentNumberOfPressesCounted
- MultiPressComplete:
- - newPosition
- - totalNumberOfPressesCounted
- BooleanState:
- StateChange:
- - stateValue
- DoorLock:
- DoorLockAlarm:
- - alarmCode
- DoorStateChange:
- - doorState
- LockOperation:
- - lockOperationType
- - operationSource
- - userIndex
- - fabricIndex
- - sourceNode
- - credentials
- LockOperationError:
- - lockOperationType
- - operationSource
- - operationError
- - userIndex
- - fabricIndex
- - sourceNode
- - credentials
- LockUserChange:
- - lockDataType
- - dataOperationType
- - operationSource
- - userIndex
- - fabricIndex
- - sourceNode
- - dataIndex
- PumpConfigurationAndControl:
- TestCluster:
- TestEvent:
- - arg1
- - arg2
- - arg3
- - arg4
- - arg5
- - arg6
- TestFabricScopedEvent:
- - fabricIndex
- enums:
- Identify:
- # EffectIdentifierEnum, EffectVariantEnum, and IdentifyTypeEnum
- # were originally named IdentifyEffectIdentifier,
- # IdentifyEffectVariant, and IdentifyIdentifyType, but we generate
- # the same API for the names with/without "Enum" at the end, and
- # with/without the cluster name at the beginning, so the name can
- # just change here.
- - EffectIdentifierEnum
- - EffectVariantEnum
- - IdentifyTypeEnum
- OnOff:
- # DelayedOnOffEffectVariantEnum, DyingLightEffectVariantEnum,
- # EffectIdentifierEnum, and StartUpOnOffEnum were originally named
- # OnOffDelayedAllOffEffectVariant,
- # OnOffDelayedAllOffEffectVariant, OnOffEffectIdentifier, and
- # OnOffStartUpOnOff, but we generate the same API for the names
- # with/without "Enum" at the end, and with/without the cluster
- # name at the beginning, so the name can just change here.
- - DelayedAllOffEffectVariantEnum
- - DyingLightEffectVariantEnum
- - EffectIdentifierEnum
- - StartUpOnOffEnum
- LevelControl:
- # MoveModeEnum and StepModeEnum were originally named MoveMode and
- # StepMode, but we generate the same API for the names
- # with/without "Enum" at the end, and with/without the cluster
- # name at the beginning, so the name can just change here.
- - MoveModeEnum
- - StepModeEnum
- AccessControl:
- - AuthMode
- - ChangeTypeEnum
- - Privilege
- Actions:
- - ActionErrorEnum
- - ActionStateEnum
- - ActionTypeEnum
- - EndpointListTypeEnum
- OtaSoftwareUpdateProvider:
- - OTAApplyUpdateAction
- - OTADownloadProtocol
- - OTAQueryStatus
- OtaSoftwareUpdateRequestor:
- - OTAAnnouncementReason
- - OTAChangeReasonEnum
- - OTAUpdateStateEnum
- TimeFormatLocalization:
- # CalendarTypeEnum and HourFormatEnum were originally just named
- # CalendarType and HourFormat, but we generate the same API for
- # the names with/without "Enum" at the end, so the name can just
- # change here.
- - CalendarTypeEnum
- - HourFormatEnum
- UnitLocalization:
- # TempUnitEnum was originally just named TempUnit, but
- # we generate the same API for both of those names, so the name
- # can just change here.
- - TempUnitEnum
- PowerSource:
- # All the PowerSource enums originally did not have the "Enum"
- # suffix, but we generate the same API whether that suffix is
- # there or not, so the names can just change here.
- - BatChargeFaultEnum
- - BatChargeLevelEnum
- - BatChargeStateEnum
- - BatFaultEnum
- - BatReplaceabilityEnum
- - PowerSourceStatusEnum
- - WiredCurrentTypeEnum
- - WiredFaultEnum
- GeneralCommissioning:
- # CommissioningErrorEnum was originally just named
- # CommissioningError, but we generate the same API
- # for both of those names, so the name can just change
- # here.
- - CommissioningErrorEnum
- # RegulatoryLocationTypeEnum was originally just named
- # RegulatoryLocationType, but we generate the same API
- # for both of those names, so the name can just change
- # here.
- - RegulatoryLocationTypeEnum
- NetworkCommissioning:
- # NetworkCommissioningStatusEnum and WiFiBandEnum were originally
- # just named NetworkCommissioningStatus and WiFiBand, but we
- # generate the same API for both of those names, so the name can
- # just change here.
- - NetworkCommissioningStatusEnum
- - WiFiBandEnum
- DiagnosticLogs:
- - LogsIntent
- - LogsStatus
- - LogsTransferProtocol
- GeneralDiagnostics:
- - BootReasonType
- - HardwareFaultType
- # InterfaceTypeEnum was originally just named InterfaceType, but
- # we generate the same API for both of those names, so the name
- # can just change here.
- - InterfaceTypeEnum
- - NetworkFaultType
- - RadioFaultType
- ThreadNetworkDiagnostics:
- # NetworkFaultEnum and RoutingRoleEnum were originally just named
- # NetworkFault and RoutingRole, but we generate the same API for
- # both of those names, so the name can just change here.
- - NetworkFaultEnum
- - RoutingRoleEnum
- - ThreadConnectionStatus
- WiFiNetworkDiagnostics:
- # AssociationFailureCauseEnum was originally just named
- # AssociationFailureCause, but we generate the same API for both
- # of those names, so the name can just change here.
- - AssociationFailureCauseEnum
- # SecurityTypeEnum was originally just named SecurityType, but we
- # generate the same API for both of those names, so the name can
- # just change here.
- - SecurityTypeEnum
- - WiFiConnectionStatus
- - WiFiVersionType
- EthernetNetworkDiagnostics:
- - PHYRateType
- TimeSynchronization:
- - GranularityEnum
- - TimeSourceEnum
- AdministratorCommissioning:
- # CommissioningWindowStatusEnum was originally just named
- # CommissioningWindowStatus, but we generate the same API for both
- # of those names, so the name can just change here.
- - CommissioningWindowStatusEnum
- - StatusCode
- OperationalCredentials:
- - OperationalCertStatus
- GroupKeyManagement:
- # GroupKeySecurityPolicyEnum was originally just named
- # GroupKeySecurityPolicy, but we generate the same API for both of
- # those names, so the name can just change here.
- - GroupKeySecurityPolicyEnum
- DoorLock:
- - DlAlarmCode
- - DlCredentialRule
- - DlCredentialType
- - DlDataOperationType
- - DlDoorState
- - DlLockDataType
- - DlLockOperationType
- - DlLockState
- - DlLockType
- - DlOperatingMode
- - DlOperationError
- - DlOperationSource
- - DlStatus
- - DlUserStatus
- - DlUserType
- - DoorLockOperationEventCode
- - DoorLockProgrammingEventCode
- - DoorLockSetPinOrIdStatus
- - DoorLockUserStatus
- - DoorLockUserType
- # UserTypeEnum and UserStatusEnum use the same generated name as
- # DoorLockUserStatus and DoorLockUserType, so need to be
- # considered as introduced at the same time.
- - UserStatusEnum
- - UserTypeEnum
- WindowCovering:
- - EndProductType
- - Type
- PumpConfigurationAndControl:
- - PumpControlMode
- - PumpOperationMode
- Thermostat:
- - SetpointAdjustMode
- - ThermostatControlSequence
- # ThermostatRunningModeEnum was originally named
- # ThermostatRunningMode, but we generate the same API for the
- # names with/without "Enum" at the end, so the name can just
- # change here.
- - ThermostatRunningModeEnum
- # SystemModeEnum was originally named ThermostatSystemMode, but we
- # generate the same API for the names with/without "Enum" at the
- # end and the cluster name present/absent at the beginning, so the
- # name can just change here.
- - SystemModeEnum
- FanControl:
- - FanModeSequenceType
- - FanModeType
- ColorControl:
- - ColorLoopAction
- - ColorLoopDirection
- - ColorMode
- - HueDirection
- - HueMoveMode
- - HueStepMode
- - SaturationMoveMode
- - SaturationStepMode
- IlluminanceMeasurement:
- # LightSensorTypeEnum was originally named LightSensorType, but we
- # generate the same API for the names with/without "Enum" at the
- # end, so the name can just change here.
- - LightSensorTypeEnum
- Channel:
- # StatusEnum was originally named ChannelStatusEnum, but we
- # generate the same API for the names with/without the cluster
- # name at the beginning, so the name can just change here.
- - StatusEnum
- - LineupInfoTypeEnum
- TargetNavigator:
- # StatusEnum was originally named TargetNavigatorStatusEnum, but
- # we generate the same API for the names with/without the cluster
- # name at the beginning, so the name can just change here.
- - StatusEnum
- MediaPlayback:
- # StatusEnum was originally named MediaPlaybackStatusEnum, but we
- # generate the same API for the names with/without the cluster
- # name at the beginning, so the name can just change here.
- - StatusEnum
- - PlaybackStateEnum
- MediaInput:
- - InputTypeEnum
- KeypadInput:
- - CecKeyCode
- # StatusEnum was originally named KeypadInputStatusEnum, but we
- # generate the same API for the names with/without the cluster
- # name at the beginning, so the name can just change here.
- - StatusEnum
- ContentLauncher:
- - ContentLaunchStatusEnum
- - MetricTypeEnum
- - ParameterEnum
- AudioOutput:
- - OutputTypeEnum
- ApplicationLauncher:
- # StatusEnum was originally named ApplicationLauncherStatusEnum, but we
- # generate the same API for the names with/without the cluster name at the
- # beginning, so the name can just change here.
- - StatusEnum
- ApplicationBasic:
- - ApplicationStatusEnum
- TestCluster:
- - SimpleEnum
- FaultInjection:
- - FaultType
- enum values:
- Identify:
- # EffectIdentifierEnum, EffectVariantEnum, and IdentifyTypeEnum
- # were originally named IdentifyEffectIdentifier,
- # IdentifyEffectVariant, and IdentifyIdentifyType, but we generate
- # the same API for the names with/without "Enum" at the end, and
- # with/without the cluster name at the beginning, so the name can
- # just change here.
- EffectIdentifierEnum:
- - Blink
- - Breathe
- - Okay
- - ChannelChange
- - FinishEffect
- - StopEffect
- EffectVariantEnum:
- - Default
- IdentifyTypeEnum:
- - None
- - VisibleLight
- - VisibleLED
- - AudibleBeep
- - Display
- - Actuator
- OnOff:
- # DelayedOnOffEffectVariantEnum, DyingLightEffectVariantEnum,
- # EffectIdentifierEnum, and StartUpOnOffEnum were originally named
- # OnOffDelayedAllOffEffectVariant,
- # OnOffDelayedAllOffEffectVariant, OnOffEffectIdentifier, and
- # OnOffStartUpOnOff, but we generate the same API for the names
- # with/without "Enum" at the end, and with/without the cluster
- # name at the beginning, so the name can just change here.
- DelayedAllOffEffectVariantEnum:
- - FadeToOffIn0p8Seconds
- - NoFade
- - 50PercentDimDownIn0p8SecondsThenFadeToOffIn12Seconds
- DyingLightEffectVariantEnum:
- - 20PercenterDimUpIn0p5SecondsThenFadeToOffIn1Second
- EffectIdentifierEnum:
- - DelayedAllOff
- - DyingLight
- StartUpOnOffEnum:
- - Off
- - On
- - TogglePreviousOnOff
- LevelControl:
- # MoveModeEnum and StepModeEnum were originally named MoveMode and
- # StepMode, but we generate the same API for the names
- # with/without "Enum" at the end, and with/without the cluster
- # name at the beginning, so the name can just change here.
- MoveModeEnum:
- - Up
- - Down
- StepModeEnum:
- - Up
- - Down
- AccessControl:
- AuthMode:
- - PASE
- - CASE
- - Group
- ChangeTypeEnum:
- - Changed
- - Added
- - Removed
- Privilege:
- - View
- - ProxyView
- - Operate
- - Manage
- - Administer
- Actions:
- ActionErrorEnum:
- - Unknown
- - Interrupted
- ActionStateEnum:
- - Inactive
- - Active
- - Paused
- - Disabled
- ActionTypeEnum:
- - Other
- - Scene
- - Sequence
- - Automation
- - Exception
- - Notification
- - Alarm
- EndpointListTypeEnum:
- - Other
- - Room
- - Zone
- OtaSoftwareUpdateProvider:
- OTAApplyUpdateAction:
- - Proceed
- - AwaitNextAction
- - Discontinue
- OTADownloadProtocol:
- - BDXSynchronous
- - BDXAsynchronous
- - HTTPS
- - VendorSpecific
- OTAQueryStatus:
- - UpdateAvailable
- - Busy
- - NotAvailable
- - DownloadProtocolNotSupported
- OtaSoftwareUpdateRequestor:
- OTAAnnouncementReason:
- - SimpleAnnouncement
- - UpdateAvailable
- - UrgentUpdateAvailable
- OTAChangeReasonEnum:
- - Unknown
- - Success
- - Failure
- - TimeOut
- - DelayByProvider
- OTAUpdateStateEnum:
- - Unknown
- - Idle
- - Querying
- - DelayedOnQuery
- - Downloading
- - Applying
- - DelayedOnApply
- - RollingBack
- - DelayedOnUserConsent
- TimeFormatLocalization:
- # CalendarTypeEnum and HourFormatEnum were originally just named
- # CalendarType and HourFormat, but we generate the same API for
- # the names with/without "Enum" at the end, so the name can just
- # change here.
- CalendarTypeEnum:
- - Buddhist
- - Chinese
- - Coptic
- - Ethiopian
- - Gregorian
- - Hebrew
- - Indian
- - Islamic
- - Japanese
- - Korean
- - Persian
- - Taiwanese
- HourFormatEnum:
- - 12hr
- - 24hr
- UnitLocalization:
- # TempUnitEnum was originally just named TempUnit, but
- # we generate the same API for both of those names, so the name
- # can just change here.
- TempUnitEnum:
- - Fahrenheit
- - Celsius
- - Kelvin
- PowerSource:
- # All the PowerSource enums originally did not have the "Enum"
- # suffix, but we generate the same API whether that suffix is
- # there or not, so the names can just change here.
- BatChargeFaultEnum:
- - Unspecfied
- - AmbientTooHot
- - AmbientTooCold
- - BatteryTooHot
- - BatteryTooCold
- - BatteryAbsent
- - BatteryOverVoltage
- - BatteryUnderVoltage
- - ChargerOverVoltage
- - ChargerUnderVoltage
- - SafetyTimeout
- BatChargeLevelEnum:
- - Ok
- - Warning
- - Critical
- BatChargeStateEnum:
- - Unknown
- - IsCharging
- - IsAtFullCharge
- - IsNotCharging
- BatFaultEnum:
- - Unspecfied
- - OverTemp
- - UnderTemp
- BatReplaceabilityEnum:
- - Unspecified
- - NotReplaceable
- - UserReplaceable
- - FactoryReplaceable
- PowerSourceStatusEnum:
- - Unspecfied
- - Active
- - Standby
- - Unavailable
- WiredCurrentTypeEnum:
- - AC
- - DC
- WiredFaultEnum:
- - Unspecfied
- - OverVoltage
- - UnderVoltage
- GeneralCommissioning:
- # CommissioningErrorEnum was originally just named
- # CommissioningError, but we generate the same API
- # for both of those names, so the name can just change
- # here.
- CommissioningErrorEnum:
- - Ok
- - ValueOutsideRange
- - InvalidAuthentication
- - NoFailSafe
- - BusyWithOtherAdmin
- # RegulatoryLocationTypeEnum was originally just named
- # RegulatoryLocationType, but we generate the same API
- # for both of those names, so the name can just change
- # here.
- RegulatoryLocationTypeEnum:
- - Indoor
- - Outdoor
- - IndoorOutdoor
- NetworkCommissioning:
- # NetworkCommissioningStatusEnum and WiFiBandEnum were originally
- # just named NetworkCommissioningStatus and WiFiBand, but we
- # generate the same API for both of those names, so the name can
- # just change here.
- NetworkCommissioningStatusEnum:
- - Success
- - OutOfRange
- - BoundsExceeded
- - NetworkIDNotFound
- - DuplicateNetworkID
- - NetworkNotFound
- - RegulatoryError
- - AuthFailure
- - UnsupportedSecurity
- - OtherConnectionFailure
- - IPV6Failed
- - IPBindFailed
- - UnknownError
- WiFiBandEnum:
- - 2G4
- - 3G65
- - 5G
- - 6G
- - 60G
- DiagnosticLogs:
- LogsIntent:
- - EndUserSupport
- - NetworkDiag
- - CrashLogs
- LogsStatus:
- - Success
- - Exhausted
- - NoLogs
- - Busy
- - Denied
- LogsTransferProtocol:
- - ResponsePayload
- - BDX
- GeneralDiagnostics:
- BootReasonType:
- - Unspecified
- - PowerOnReboot
- - BrownOutReset
- - SoftwareWatchdogReset
- - HardwareWatchdogReset
- - SoftwareUpdateCompleted
- - SoftwareReset
- HardwareFaultType:
- - Unspecified
- - Radio
- - Sensor
- - ResettableOverTemp
- - NonResettableOverTemp
- - PowerSource
- - VisualDisplayFault
- - AudioOutputFault
- - UserInterfaceFault
- - NonVolatileMemoryError
- - TamperDetected
- # InterfaceTypeEnum was originally just named InterfaceType, but
- # we generate the same API for both of those names, so the name
- # can just change here.
- InterfaceTypeEnum:
- - Unspecified
- - WiFi
- - Ethernet
- - Cellular
- - Thread
- NetworkFaultType:
- - Unspecified
- - HardwareFailure
- - NetworkJammed
- - ConnectionFailed
- RadioFaultType:
- - Unspecified
- - WiFiFault
- - CellularFault
- - ThreadFault
- - NFCFault
- - BLEFault
- - EthernetFault
- ThreadNetworkDiagnostics:
- # NetworkFaultEnum and RoutingRoleEnum were originally just named
- # NetworkFault and RoutingRole, but we generate the same API for
- # both of those names, so the name can just change here.
- NetworkFaultEnum:
- - Unspecified
- - LinkDown
- - HardwareFailure
- - NetworkJammed
- RoutingRoleEnum:
- - Unspecified
- - Unassigned
- - SleepyEndDevice
- - EndDevice
- - REED
- - Router
- - Leader
- ThreadConnectionStatus:
- - Connected
- - NotConnected
- WiFiNetworkDiagnostics:
- # AssociationFailureCauseEnum was originally just named
- # AssociationFailureCause, but we generate the same API for both
- # of those names, so the name can just change here.
- AssociationFailureCauseEnum:
- - Unknown
- - AssociationFailed
- - AuthenticationFailed
- - SsidNotFound
- # SecurityTypeEnum was originally just named SecurityType, but we
- # generate the same API for both of those names, so the name can
- # just change here.
- SecurityTypeEnum:
- - Unspecified
- - None
- - WEP
- - WPA
- - WPA2
- - WPA3
- WiFiConnectionStatus:
- - Connected
- - NotConnected
- WiFiVersionType:
- - 80211a
- - 80211b
- - 80211g
- - 80211n
- - 80211ac
- - 80211ax
- EthernetNetworkDiagnostics:
- PHYRateType:
- - 10M
- - 100M
- - 1000M
- - 25G
- - 5G
- - 10G
- - 40G
- - 100G
- - 200G
- - 400G
- TimeSynchronization:
- GranularityEnum:
- - NoTimeGranularity
- - MinutesGranularity
- - SecondsGranularity
- - MillisecondsGranularity
- - MicrosecondsGranularity
- TimeSourceEnum:
- - None
- - Unknown
- - Admin
- - NodeTimeCluster
- - NonFabricSntp
- - NonFabricNtp
- - FabricSntp
- - FabricNtp
- - MixedNtp
- - NonFabricSntpNts
- - NonFabricNtpNts
- - FabricSntpNts
- - FabricNtpNts
- - MixedNtpNts
- - CloudSource
- - Ptp
- - Gnss
- AdministratorCommissioning:
- # CommissioningWindowStatusEnum was originally just named
- # CommissioningWindowStatus, but we generate the same API for both
- # of those names, so the name can just change here.
- CommissioningWindowStatusEnum:
- - WindowNotOpen
- - EnhancedWindowOpen
- - BasicWindowOpen
- StatusCode:
- - Busy
- - PAKEParameterError
- - WindowNotOpen
- OperationalCredentials:
- OperationalCertStatus:
- - SUCCESS
- - InvalidPublicKey
- - InvalidNodeOpId
- - InvalidNOC
- - MissingCsr
- - TableFull
- - InvalidAdminSubject
- - FabricConflict
- - LabelConflict
- - InvalidFabricIndex
- GroupKeyManagement:
- # GroupKeySecurityPolicyEnum was originally just named
- # GroupKeySecurityPolicy, but we generate the same API for both of
- # those names, so the name can just change here.
- GroupKeySecurityPolicyEnum:
- - TrustFirst
- - CacheAndSync
- DoorLock:
- DlAlarmCode:
- - LockJammed
- - LockFactoryReset
- - LockRadioPowerCycled
- - WrongCodeEntryLimit
- - FrontEsceutcheonRemoved
- - DoorForcedOpen
- - DoorAjar
- - ForcedUser
- DlCredentialRule:
- - Single
- - Double
- - Tri
- DlCredentialType:
- - ProgrammingPIN
- - PIN
- - RFID
- - Fingerprint
- - FingerVein
- - Face
- DlDataOperationType:
- - Add
- - Clear
- - Modify
- DlDoorState:
- - DoorOpen
- - DoorClosed
- - DoorJammed
- - DoorForcedOpen
- - DoorUnspecifiedError
- - DoorAjar
- DlLockDataType:
- - Unspecified
- - ProgrammingCode
- - UserIndex
- - WeekDaySchedule
- - YearDaySchedule
- - HolidaySchedule
- - PIN
- - RFID
- - Fingerprint
- DlLockOperationType:
- - Lock
- - Unlock
- - NonAccessUserEvent
- - ForcedUserEvent
- DlLockState:
- - NotFullyLocked
- - Locked
- - Unlocked
- DlLockType:
- - DeadBolt
- - Magnetic
- - Other
- - Mortise
- - Rim
- - LatchBolt
- - CylindricalLock
- - TubularLock
- - InterconnectedLock
- - DeadLatch
- - DoorFurniture
- DlOperatingMode:
- - Normal
- - Vacation
- - Privacy
- - NoRemoteLockUnlock
- - Passage
- DlOperationError:
- - Unspecified
- - InvalidCredential
- - DisabledUserDenied
- - Restricted
- - InsufficientBattery
- DlOperationSource:
- - Unspecified
- - Manual
- - ProprietaryRemote
- - Keypad
- - Auto
- - Button
- - Schedule
- - Remote
- - RFID
- - Biometric
- DlStatus:
- - Success
- - Failure
- - Duplicate
- - Occupied
- - InvalidField
- - ResourceExhausted
- - NotFound
- DlUserStatus:
- - Available
- - OccupiedEnabled
- - OccupiedDisabled
- DlUserType:
- - UnrestrictedUser
- - YearDayScheduleUser
- - WeekDayScheduleUser
- - ProgrammingUser
- - NonAccessUser
- - ForcedUser
- - DisposableUser
- - ExpiringUser
- - ScheduleRestrictedUser
- - RemoteOnlyUser
- DoorLockOperationEventCode:
- - UnknownOrMfgSpecific
- - Lock
- - Unlock
- - LockInvalidPinOrId
- - LockInvalidSchedule
- - UnlockInvalidPinOrId
- - UnlockInvalidSchedule
- - OneTouchLock
- - KeyLock
- - KeyUnlock
- - AutoLock
- - ScheduleLock
- - ScheduleUnlock
- - ManualLock
- - ManualUnlock
- DoorLockProgrammingEventCode:
- - UnknownOrMfgSpecific
- - MasterCodeChanged
- - PinAdded
- - PinDeleted
- - PinChanged
- - IdAdded
- - IdDeleted
- DoorLockSetPinOrIdStatus:
- - Success
- - GeneralFailure
- - MemoryFull
- - DuplicateCodeError
- DoorLockUserStatus:
- - Available
- - OccupiedEnabled
- - OccupiedDisabled
- - NotSupported
- DoorLockUserType:
- - Unrestricted
- - YearDayScheduleUser
- - WeekDayScheduleUser
- - MasterUser
- - NonAccessUser
- - NotSupported
- # UserTypeEnum and UserStatusEnum use the same generated name as
- # DoorLockUserStatus and DoorLockUserType, so need to be
- # considered as introduced at the same time, with the enum value
- # names that match DoorLockUserStatus and DoorLockUserType.
- UserStatusEnum:
- - Available
- - OccupiedEnabled
- - OccupiedDisabled
- - NotSupported
- UserTypeEnum:
- - Unrestricted
- - YearDayScheduleUser
- - WeekDayScheduleUser
- - MasterUser
- - NonAccessUser
- - NotSupported
- WindowCovering:
- EndProductType:
- - RollerShade
- - RomanShade
- - BalloonShade
- - WovenWood
- - PleatedShade
- - CellularShade
- - LayeredShade
- - LayeredShade2D
- - SheerShade
- - TiltOnlyInteriorBlind
- - InteriorBlind
- - VerticalBlindStripCurtain
- - InteriorVenetianBlind
- - ExteriorVenetianBlind
- - LateralLeftCurtain
- - LateralRightCurtain
- - CentralCurtain
- - RollerShutter
- - ExteriorVerticalScreen
- - AwningTerracePatio
- - AwningVerticalScreen
- - TiltOnlyPergola
- - SwingingShutter
- - SlidingShutter
- - Unknown
- Type:
- - RollerShade
- - RollerShade2Motor
- - RollerShadeExterior
- - RollerShadeExterior2Motor
- - Drapery
- - Awning
- - Shutter
- - TiltBlindTiltOnly
- - TiltBlindLiftAndTilt
- - ProjectorScreen
- - Unknown
- PumpConfigurationAndControl:
- PumpControlMode:
- - ConstantSpeed
- - ConstantPressure
- - ProportionalPressure
- - ConstantFlow
- - ConstantTemperature
- - Automatic
- PumpOperationMode:
- - Normal
- - Minimum
- - Maximum
- - Local
- Thermostat:
- SetpointAdjustMode:
- - HeatSetpoint
- - CoolSetpoint
- - HeatAndCoolSetpoints
- ThermostatControlSequence:
- - CoolingOnly
- - CoolingWithReheat
- - HeatingOnly
- - HeatingWithReheat
- - CoolingAndHeating
- - CoolingAndHeatingWithReheat
- # ThermostatRunningModeEnum was originally named
- # ThermostatRunningMode, but we generate the same API for the
- # names with/without "Enum" at the end, so the name can just
- # change here.
- ThermostatRunningModeEnum:
- - Off
- - Cool
- - Heat
- # SystemModeEnum was originally named ThermostatSystemMode, but we
- # generate the same API for the names with/without "Enum" at the
- # end and the cluster name present/absent at the beginning, so the
- # name can just change here.
- SystemModeEnum:
- - Off
- - Auto
- - Cool
- - Heat
- - EmergencyHeating
- - Precooling
- - FanOnly
- FanControl:
- FanModeSequenceType:
- - OffLowMedHigh
- - OffLowHigh
- - OffLowMedHighAuto
- - OffLowHighAuto
- - OffOnAuto
- - OffOn
- FanModeType:
- - Off
- - Low
- - Medium
- - High
- - On
- - Auto
- - Smart
- ColorControl:
- ColorLoopAction:
- - Deactivate
- - ActivateFromColorLoopStartEnhancedHue
- - ActivateFromEnhancedCurrentHue
- ColorLoopDirection:
- - DecrementHue
- - IncrementHue
- ColorMode:
- - CurrentHueAndCurrentSaturation
- - CurrentXAndCurrentY
- - ColorTemperature
- HueDirection:
- - ShortestDistance
- - LongestDistance
- - Up
- - Down
- HueMoveMode:
- - Stop
- - Up
- - Down
- HueStepMode:
- - Up
- - Down
- SaturationMoveMode:
- - Stop
- - Up
- - Down
- SaturationStepMode:
- - Up
- - Down
- IlluminanceMeasurement:
- LightSensorTypeEnum:
- - Photodiode
- - CMOS
- Channel:
- # StatusEnum was originally named ChannelStatusEnum, but we
- # generate the same API for the names with/without the cluster
- # name at the beginning, so the name can just change here.
- StatusEnum:
- - Success
- - MultipleMatches
- - NoMatches
- LineupInfoTypeEnum:
- - Mso
- TargetNavigator:
- # StatusEnum was originally named TargetNavigatorStatusEnum, but
- # we generate the same API for the names with/without the cluster
- # name at the beginning, so the name can just change here.
- StatusEnum:
- - Success
- - TargetNotFound
- - NotAllowed
- MediaPlayback:
- # StatusEnum was originally named MediaPlaybackStatusEnum, but we
- # generate the same API for the names with/without the cluster
- # name at the beginning, so the name can just change here.
- StatusEnum:
- - Success
- - InvalidStateForCommand
- - NotAllowed
- - NotActive
- - SpeedOutOfRange
- - SeekOutOfRange
- PlaybackStateEnum:
- - Playing
- - Paused
- - NotPlaying
- - Buffering
- MediaInput:
- InputTypeEnum:
- - Internal
- - Aux
- - Coax
- - Composite
- - Hdmi
- - Input
- - Line
- - Optical
- - Video
- - Scart
- - Usb
- - Other
- KeypadInput:
- CecKeyCode:
- - Select
- - Up
- - Down
- - Left
- - Right
- - RightUp
- - RightDown
- - LeftUp
- - LeftDown
- - RootMenu
- - SetupMenu
- - ContentsMenu
- - FavoriteMenu
- - Exit
- - MediaTopMenu
- - MediaContextSensitiveMenu
- - NumberEntryMode
- - Number11
- - Number12
- - Number0OrNumber10
- - Numbers1
- - Numbers2
- - Numbers3
- - Numbers4
- - Numbers5
- - Numbers6
- - Numbers7
- - Numbers8
- - Numbers9
- - Dot
- - Enter
- - Clear
- - NextFavorite
- - ChannelUp
- - ChannelDown
- - PreviousChannel
- - SoundSelect
- - InputSelect
- - DisplayInformation
- - Help
- - PageUp
- - PageDown
- - Power
- - VolumeUp
- - VolumeDown
- - Mute
- - Play
- - Stop
- - Pause
- - Record
- - Rewind
- - FastForward
- - Eject
- - Forward
- - Backward
- - StopRecord
- - PauseRecord
- - Reserved
- - Angle
- - SubPicture
- - VideoOnDemand
- - ElectronicProgramGuide
- - TimerProgramming
- - InitialConfiguration
- - SelectBroadcastType
- - SelectSoundPresentation
- - PlayFunction
- - PausePlayFunction
- - RecordFunction
- - PauseRecordFunction
- - StopFunction
- - MuteFunction
- - RestoreVolumeFunction
- - TuneFunction
- - SelectMediaFunction
- - SelectAvInputFunction
- - SelectAudioInputFunction
- - PowerToggleFunction
- - PowerOffFunction
- - PowerOnFunction
- - F1Blue
- - F2Red
- - F3Green
- - F4Yellow
- - F5
- - Data
- # StatusEnum was originally named KeypadInputStatusEnum, but we
- # generate the same API for the names with/without the cluster
- # name at the beginning, so the name can just change here.
- StatusEnum:
- - Success
- - UnsupportedKey
- - InvalidKeyInCurrentState
- ContentLauncher:
- ContentLaunchStatusEnum:
- - Success
- - UrlNotAvailable
- - AuthFailed
- MetricTypeEnum:
- - PIXELS
- - PERCENTAGE
- ParameterEnum:
- - Actor
- - Channel
- - Character
- - Director
- - Event
- - Franchise
- - Genre
- - League
- - Popularity
- - Provider
- - Sport
- - SportsTeam
- - Type
- AudioOutput:
- OutputTypeEnum:
- - Hdmi
- - Bt
- - Optical
- - Headphone
- - Internal
- - Other
- ApplicationLauncher:
- # StatusEnum was originally named ApplicationLauncherStatusEnum, but we
- # generate the same API for the names with/without the cluster name at the
- # beginning, so the name can just change here.
- StatusEnum:
- - Success
- - AppNotAvailable
- - SystemBusy
- ApplicationBasic:
- ApplicationStatusEnum:
- - Stopped
- - ActiveVisibleFocus
- - ActiveHidden
- - ActiveVisibleNotFocus
- TestCluster:
- SimpleEnum:
- - Unspecified
- - ValueA
- - ValueB
- - ValueC
- bitmaps:
- Groups:
- - GroupClusterFeature
- Scenes:
- - ScenesCopyMode
- OnOff:
- - OnOffControl
- # Feature was originally named OnOffFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- - Feature
- LevelControl:
- # Feature was originally named LevelControlFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- - Feature
- Actions:
- - CommandBits
- UnitLocalization:
- # Feature was originally named UnitLocalizationFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- - Feature
- PowerSource:
- # Feature was originally named PowerSourceFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- - Feature
- NetworkCommissioning:
- # Feature was originally named NetworkCommissioningFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- - Feature
- - WiFiSecurity
- SoftwareDiagnostics:
- # Feature was originally named SoftwareDiagnosticsFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- - Feature
- ThreadNetworkDiagnostics:
- # Feature was originally named ThreadNetworkDiagnosticsFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- - Feature
- ModeSelect:
- # Feature was originally named ModeSelectFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- - Feature
- DoorLock:
- - DlCredentialRuleMask
- - DlCredentialRulesSupport
- - DlDaysMaskMap
- - DlDefaultConfigurationRegister
- - DlKeypadOperationEventMask
- - DlKeypadProgrammingEventMask
- - DlLocalProgrammingFeatures
- - DlManualOperationEventMask
- - DlRFIDOperationEventMask
- - DlRFIDProgrammingEventMask
- - DlRemoteOperationEventMask
- - DlRemoteProgrammingEventMask
- - DlSupportedOperatingModes
- - DoorLockDayOfWeek
- # Feature was originally named DoorLockFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- - Feature
- WindowCovering:
- - ConfigStatus
- - Feature
- - Mode
- - OperationalStatus
- - SafetyStatus
- PumpConfigurationAndControl:
- - PumpStatus
- Thermostat:
- - DayOfWeek
- - ModeForSequence
- # Feature was originally named ThermostatFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- - Feature
- FanControl:
- # Feature was originally named FanControlFeature, but
- # we generate the same API for both of those names, so the name
- # can just change here.
- - Feature
- - RockSupportMask
- - WindSettingMask
- - WindSupportMask
- ColorControl:
- - ColorCapabilities
- # Feature was originally named ColorControlFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- - Feature
- - ColorLoopUpdateFlags
- PressureMeasurement:
- - PressureFeature
- Channel:
- # Feature was originally named ChannelFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- - Feature
- MediaInput:
- # Feature was originally named MediaInputFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- - Feature
- KeypadInput:
- # Feature was originally named KeypadInputFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- - Feature
- ContentLauncher:
- # Feature was originally named ContentLauncherFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- - Feature
- - SupportedStreamingProtocol
- AudioOutput:
- # Feature was originally named AudioOutputFeature, but
- # we generate the same API for both of those names, so the name
- # can just change here.
- - Feature
- ApplicationLauncher:
- # Feature was originally named ApplicationLauncherFeature, but
- # we generate the same API for both of those names, so the name
- # can just change here.
- - Feature
- TestCluster:
- - Bitmap16MaskMap
- - Bitmap32MaskMap
- - Bitmap64MaskMap
- - Bitmap8MaskMap
- - SimpleBitmap
- bitmap values:
- Groups:
- GroupClusterFeature:
- - GroupNames
- Scenes:
- ScenesCopyMode:
- - CopyAllScenes
- OnOff:
- OnOffControl:
- - AcceptOnlyWhenOn
- # Feature was originally named OnOffFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- Feature:
- - Lighting
- LevelControl:
- # Feature was originally named LevelControlFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- Feature:
- - OnOff
- - Lighting
- - Frequency
- Actions:
- CommandBits:
- - InstantAction
- - InstantActionWithTransition
- - StartAction
- - StartActionWithDuration
- - StopAction
- - PauseAction
- - PauseActionWithDuration
- - ResumeAction
- - EnableAction
- - EnableActionWithDuration
- - DisableAction
- - DisableActionWithDuration
- UnitLocalization:
- # Feature was originally named UnitLocalizationFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- Feature:
- - TemperatureUnit
- PowerSource:
- # Feature was originally named PowerSourceFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- Feature:
- - Wired
- - Battery
- - Rechargeable
- - Replaceable
- NetworkCommissioning:
- # Feature was originally named NetworkCommissioningFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- Feature:
- - WiFiNetworkInterface
- - ThreadNetworkInterface
- - EthernetNetworkInterface
- WiFiSecurity:
- - Unencrypted
- - WepPersonal
- - WpaPersonal
- - Wpa2Personal
- - Wpa3Personal
- SoftwareDiagnostics:
- # Feature was originally named SoftwareDiagnosticsFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- Feature:
- - WaterMarks
- ThreadNetworkDiagnostics:
- # Feature was originally named ThreadNetworkDiagnosticsFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- Feature:
- - PacketCounts
- - ErrorCounts
- - MLECounts
- - MACCounts
- ModeSelect:
- # Feature was originally named ModeSelectFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- Feature:
- - DEPONOFF
- DoorLock:
- DlCredentialRuleMask:
- - Single
- - Dual
- - Tri
- DlCredentialRulesSupport:
- - Single
- - Dual
- - Tri
- DlDaysMaskMap:
- - Sunday
- - Monday
- - Tuesday
- - Wednesday
- - Thursday
- - Friday
- - Saturday
- DlDefaultConfigurationRegister:
- - EnableLocalProgrammingEnabled
- - KeypadInterfaceDefaultAccessEnabled
- - RemoteInterfaceDefaultAccessIsEnabled
- - SoundEnabled
- - AutoRelockTimeSet
- - LEDSettingsSet
- DlKeypadOperationEventMask:
- - Unknown
- - Lock
- - Unlock
- - LockInvalidPIN
- - LockInvalidSchedule
- - UnlockInvalidCode
- - UnlockInvalidSchedule
- - NonAccessUserOpEvent
- DlKeypadProgrammingEventMask:
- - Unknown
- - ProgrammingPINChanged
- - PINAdded
- - PINCleared
- - PINChanged
- DlLocalProgrammingFeatures:
- - AddUsersCredentialsSchedulesLocally
- - ModifyUsersCredentialsSchedulesLocally
- - ClearUsersCredentialsSchedulesLocally
- - AdjustLockSettingsLocally
- DlManualOperationEventMask:
- - Unknown
- - ThumbturnLock
- - ThumbturnUnlock
- - OneTouchLock
- - KeyLock
- - KeyUnlock
- - AutoLock
- - ScheduleLock
- - ScheduleUnlock
- - ManualLock
- - ManualUnlock
- DlRFIDOperationEventMask:
- - Unknown
- - Lock
- - Unlock
- - LockInvalidRFID
- - LockInvalidSchedule
- - UnlockInvalidRFID
- - UnlockInvalidSchedule
- DlRFIDProgrammingEventMask:
- - Unknown
- - RFIDCodeAdded
- - RFIDCodeCleared
- DlRemoteOperationEventMask:
- - Unknown
- - Lock
- - Unlock
- - LockInvalidCode
- - LockInvalidSchedule
- - UnlockInvalidCode
- - UnlockInvalidSchedule
- DlRemoteProgrammingEventMask:
- - Unknown
- - ProgrammingPINChanged
- - PINAdded
- - PINCleared
- - PINChanged
- - RFIDCodeAdded
- - RFIDCodeCleared
- DlSupportedOperatingModes:
- - Normal
- - Vacation
- - Privacy
- - NoRemoteLockUnlock
- - Passage
- DoorLockDayOfWeek:
- - Sunday
- - Monday
- - Tuesday
- - Wednesday
- - Thursday
- - Friday
- - Saturday
- # Feature was originally named DoorLockFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- Feature:
- - PINCredentials
- - RFIDCredentials
- - FingerCredentials
- - Logging
- - WeekDaySchedules
- - DoorPositionSensor
- - FaceCredentials
- - CredentialsOTA
- - UsersManagement
- - Notifications
- - YearDaySchedules
- - HolidaySchedules
- WindowCovering:
- ConfigStatus:
- - Operational
- - OnlineReserved
- - LiftMovementReversed
- - LiftPositionAware
- - TiltPositionAware
- - LiftEncoderControlled
- - TiltEncoderControlled
- Feature:
- - Lift
- - Tilt
- - PositionAwareLift
- - AbsolutePosition
- - PositionAwareTilt
- Mode:
- - MotorDirectionReversed
- - CalibrationMode
- - MaintenanceMode
- - LedFeedback
- OperationalStatus:
- - Global
- - Lift
- - Tilt
- SafetyStatus:
- - RemoteLockout
- - TamperDetection
- - FailedCommunication
- - PositionFailure
- - ThermalProtection
- - ObstacleDetected
- - Power
- - StopInput
- - MotorJammed
- - HardwareFailure
- - ManualOperation
- - Protection
- PumpConfigurationAndControl:
- PumpStatus:
- - DeviceFault
- - Supplyfault
- - SpeedLow
- - SpeedHigh
- - LocalOverride
- - Running
- - RemotePressure
- - RemoteFlow
- - RemoteTemperature
- Thermostat:
- DayOfWeek:
- - Sunday
- - Monday
- - Tuesday
- - Wednesday
- - Thursday
- - Friday
- - Saturday
- - AwayOrVacation
- ModeForSequence:
- - HeatSetpointFieldPresent
- - CoolSetpointFieldPresent
- # Feature was originally named ThermostatFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- Feature:
- - Heating
- - Cooling
- - Occupancy
- - Schedule
- - Setback
- - Automode
- FanControl:
- # Feature was originally named FanControlFeature, but
- # we generate the same API for both of those names, so the name
- # can just change here.
- Feature:
- - MultiSpeed
- - Auto
- - Rocking
- - Wind
- RockSupportMask:
- - RockLeftRight
- - RockUpDown
- - RockRound
- WindSettingMask:
- - SleepWind
- - NaturalWind
- WindSupportMask:
- - SleepWind
- - NaturalWind
- ColorControl:
- ColorCapabilities:
- - HueSaturationSupported
- - EnhancedHueSupported
- - ColorLoopSupported
- - XYAttributesSupported
- - ColorTemperatureSupported
- # Feature was originally named ColorControlFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- Feature:
- - HueAndSaturation
- - EnhancedHue
- - ColorLoop
- - XY
- - ColorTemperature
- ColorLoopUpdateFlags:
- - UpdateAction
- - UpdateDirection
- - UpdateTime
- - UpdateStartHue
- PressureMeasurement:
- PressureFeature:
- - EXT
- Channel:
- # Feature was originally named ChannelFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- Feature:
- - ChannelList
- - LineupInfo
- MediaInput:
- # Feature was originally named MediaInputFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- Feature:
- - NameUpdates
- KeypadInput:
- # Feature was originally named KeypadInputFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- Feature:
- - NavigationKeyCodes
- - LocationKeys
- - NumberKeys
- ContentLauncher:
- # Feature was originally named ContentLauncherFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- Feature:
- - ContentSearch
- - URLPlayback
- SupportedStreamingProtocol:
- - DASH
- - HLS
- AudioOutput:
- # Feature was originally named AudioOutputFeature, but
- # we generate the same API for both of those names, so the name
- # can just change here.
- Feature:
- - NameUpdates
- ApplicationLauncher:
- # Feature was originally named ApplicationLauncherFeature, but
- # we generate the same API for both of those names, so the name
- # can just change here.
- Feature:
- - ApplicationPlatform
- TestCluster:
- Bitmap16MaskMap:
- - MaskVal1
- - MaskVal2
- - MaskVal3
- - MaskVal4
- Bitmap32MaskMap:
- - MaskVal1
- - MaskVal2
- - MaskVal3
- - MaskVal4
- Bitmap64MaskMap:
- - MaskVal1
- - MaskVal2
- - MaskVal3
- - MaskVal4
- Bitmap8MaskMap:
- - MaskVal1
- - MaskVal2
- - MaskVal3
- - MaskVal4
- SimpleBitmap:
- - ValueA
- - ValueB
- - ValueC
- ids:
- clusters:
- - PulseWidthModulation
- - TimeSynchronization
- attributes:
- PulseWidthModulation:
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- TimeSynchronization:
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- - UTCTime
- - Granularity
- - TimeSource
- - TrustedTimeNodeId
- - DefaultNtp
- - TimeZone
- - DstOffset
- - LocalTime
- - TimeZoneDatabase
- - NtpServerPort
- commands:
- TimeSynchronization:
- - SetUtcTime
- command payloads:
- TimeSynchronization:
- - SetUtcTime
- global attributes:
- - FeatureMap
- - ClusterRevision
- - AttributeList
- - GeneratedCommandList
- - AcceptedCommandList
- apis:
- - Timed Invoke for server to client commands
- - Deprecated global attribute names
- provisional:
- clusters:
- - PulseWidthModulation
- - TimeSynchronization
-
-- release: "First dot-release"
- versions:
- iOS: "16.2"
- macOS: "13.1"
- watchOS: "9.2"
- tvOS: "16.2"
- introduced:
- attributes:
- TestCluster:
- - WriteOnlyInt8u
- structs:
- Descriptor:
- - DeviceTypeStruct
- struct fields:
- Descriptor:
- DeviceTypeStruct:
- - type
- - revision
- bitmaps:
- Switch:
- # Feature was originally named SwitchFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- - Feature
- MediaPlayback:
- # Feature was originally named MediaPlaybackFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- - Feature
- bitmap values:
- Switch:
- # Feature was originally named SwitchFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- Feature:
- - LatchingSwitch
- - MomentarySwitch
- - MomentarySwitchRelease
- - MomentarySwitchLongPress
- - MomentarySwitchMultiPress
- MediaPlayback:
- # Feature was originally named MediaPlaybackFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- Feature:
- - AdvancedSeek
- - VariableSpeed
- ids:
- attributes:
- Descriptor:
- - DeviceTypeList
- renames:
- structs:
- Descriptor:
- DeviceTypeStruct: DeviceType
-
-- release: "First major API revamp"
- versions:
- iOS: "16.4"
- macOS: "13.3"
- watchOS: "9.4"
- tvOS: "16.4"
- introduced:
- clusters:
- - OTASoftwareUpdateProvider
- - OTASoftwareUpdateRequestor
- - UnitTesting
- - WakeOnLAN
- - BasicInformation
- - BridgedDeviceBasicInformation
- attributes:
- Descriptor:
- # We really only started treating DeviceTypeList as DeviceTypeList in the API revamp,
- # except in the list of attribute ids.
- - DeviceTypeList
- AccessControl:
- - ACL
- BallastConfiguration:
- - IntrinsicBallastFactor
- OccupancySensing:
- - PIROccupiedToUnoccupiedDelay
- - PIRUnoccupiedToOccupiedDelay
- - PIRUnoccupiedToOccupiedThreshold
- UnitTesting:
- - Boolean
- - Bitmap8
- - Bitmap16
- - Bitmap32
- - Bitmap64
- - Int8u
- - Int16u
- - Int24u
- - Int32u
- - Int40u
- - Int48u
- - Int56u
- - Int64u
- - Int8s
- - Int16s
- - Int24s
- - Int32s
- - Int40s
- - Int48s
- - Int56s
- - Int64s
- - Enum8
- - Enum16
- - FloatSingle
- - FloatDouble
- - OctetString
- - ListInt8u
- - ListOctetString
- - ListStructOctetString
- - LongOctetString
- - CharString
- - LongCharString
- - EpochUs
- - EpochS
- - VendorId
- - ListNullablesAndOptionalsStruct
- - EnumAttr
- - StructAttr
- - RangeRestrictedInt8u
- - RangeRestrictedInt8s
- - RangeRestrictedInt16u
- - RangeRestrictedInt16s
- - ListLongOctetString
- - ListFabricScoped
- - TimedWriteBoolean
- - GeneralErrorBoolean
- - ClusterErrorBoolean
- - Unsupported
- - NullableBoolean
- - NullableBitmap8
- - NullableBitmap16
- - NullableBitmap32
- - NullableBitmap64
- - NullableInt8u
- - NullableInt16u
- - NullableInt24u
- - NullableInt32u
- - NullableInt40u
- - NullableInt48u
- - NullableInt56u
- - NullableInt64u
- - NullableInt8s
- - NullableInt16s
- - NullableInt24s
- - NullableInt32s
- - NullableInt40s
- - NullableInt48s
- - NullableInt56s
- - NullableInt64s
- - NullableEnum8
- - NullableEnum16
- - NullableFloatSingle
- - NullableFloatDouble
- - NullableOctetString
- - NullableCharString
- - NullableEnumAttr
- - NullableStruct
- - NullableRangeRestrictedInt8u
- - NullableRangeRestrictedInt8s
- - NullableRangeRestrictedInt16u
- - NullableRangeRestrictedInt16s
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- - WriteOnlyInt8u
- OTASoftwareUpdateProvider:
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- OTASoftwareUpdateRequestor:
- - DefaultOTAProviders
- - UpdatePossible
- - UpdateState
- - UpdateStateProgress
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- WakeOnLAN:
- - MACAddress
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- BasicInformation:
- - DataModelRevision
- - VendorName
- - VendorID
- - ProductName
- - ProductID
- - NodeLabel
- - Location
- - HardwareVersion
- - HardwareVersionString
- - SoftwareVersion
- - SoftwareVersionString
- - ManufacturingDate
- - PartNumber
- - ProductURL
- - ProductLabel
- - SerialNumber
- - LocalConfigDisabled
- - Reachable
- - UniqueID
- - CapabilityMinima
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- ThreadNetworkDiagnostics:
- - NeighborTable
- - RouteTable
- WiFiNetworkDiagnostics:
- - BSSID
- - RSSI
- GeneralDiagnostics:
- - BootReason
- BridgedDeviceBasicInformation:
- - VendorName
- - VendorID
- - ProductName
- - NodeLabel
- - HardwareVersion
- - HardwareVersionString
- - SoftwareVersion
- - SoftwareVersionString
- - ManufacturingDate
- - PartNumber
- - ProductURL
- - ProductLabel
- - SerialNumber
- - Reachable
- - UniqueID
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- commands:
- OTASoftwareUpdateProvider:
- - QueryImage
- - QueryImageResponse
- - ApplyUpdateRequest
- - ApplyUpdateResponse
- - NotifyUpdateApplied
- OTASoftwareUpdateRequestor:
- - AnnounceOTAProvider
- UnitTesting:
- - Test
- - TestSpecificResponse
- - TestNotHandled
- - TestAddArgumentsResponse
- - TestSpecific
- - TestSimpleArgumentResponse
- - TestUnknownCommand
- - TestStructArrayArgumentResponse
- - TestAddArguments
- - TestListInt8UReverseResponse
- - TestSimpleArgumentRequest
- - TestEnumsResponse
- - TestStructArrayArgumentRequest
- - TestNullableOptionalResponse
- - TestStructArgumentRequest
- - TestComplexNullableOptionalResponse
- - TestNestedStructArgumentRequest
- - BooleanResponse
- - TestListStructArgumentRequest
- - SimpleStructResponse
- - TestListInt8UArgumentRequest
- - TestEmitTestEventResponse
- - TestNestedStructListArgumentRequest
- - TestEmitTestFabricScopedEventResponse
- - TestListNestedStructListArgumentRequest
- - TestListInt8UReverseRequest
- - TestEnumsRequest
- - TestNullableOptionalRequest
- - TestComplexNullableOptionalRequest
- - SimpleStructEchoRequest
- - TimedInvokeRequest
- - TestSimpleOptionalArgumentRequest
- - TestEmitTestEventRequest
- - TestEmitTestFabricScopedEventRequest
- ContentLauncher:
- - LauncherResponse
- MediaPlayback:
- - Stop
- command fields:
- UnitTesting:
- TestSpecificResponse:
- - returnValue
- TestAddArgumentsResponse:
- - returnValue
- TestSimpleArgumentResponse:
- - returnValue
- TestStructArrayArgumentResponse:
- - arg1
- - arg2
- - arg3
- - arg4
- - arg5
- - arg6
- TestAddArguments:
- - arg1
- - arg2
- TestListInt8UReverseResponse:
- - arg1
- TestSimpleArgumentRequest:
- - arg1
- TestEnumsResponse:
- - arg1
- - arg2
- TestStructArrayArgumentRequest:
- - arg1
- - arg2
- - arg3
- - arg4
- - arg5
- - arg6
- TestNullableOptionalResponse:
- - wasPresent
- - wasNull
- - value
- - originalValue
- TestStructArgumentRequest:
- - arg1
- TestComplexNullableOptionalResponse:
- - nullableIntWasNull
- - nullableIntValue
- - optionalIntWasPresent
- - optionalIntValue
- - nullableOptionalIntWasPresent
- - nullableOptionalIntWasNull
- - nullableOptionalIntValue
- - nullableStringWasNull
- - nullableStringValue
- - optionalStringWasPresent
- - optionalStringValue
- - nullableOptionalStringWasPresent
- - nullableOptionalStringWasNull
- - nullableOptionalStringValue
- - nullableStructWasNull
- - nullableStructValue
- - optionalStructWasPresent
- - optionalStructValue
- - nullableOptionalStructWasPresent
- - nullableOptionalStructWasNull
- - nullableOptionalStructValue
- - nullableListWasNull
- - nullableListValue
- - optionalListWasPresent
- - optionalListValue
- - nullableOptionalListWasPresent
- - nullableOptionalListWasNull
- - nullableOptionalListValue
- TestNestedStructArgumentRequest:
- - arg1
- BooleanResponse:
- - value
- TestListStructArgumentRequest:
- - arg1
- SimpleStructResponse:
- - arg1
- TestListInt8UArgumentRequest:
- - arg1
- TestEmitTestEventResponse:
- - value
- TestNestedStructListArgumentRequest:
- - arg1
- TestEmitTestFabricScopedEventResponse:
- - value
- TestListNestedStructListArgumentRequest:
- - arg1
- TestListInt8UReverseRequest:
- - arg1
- TestEnumsRequest:
- - arg1
- - arg2
- TestNullableOptionalRequest:
- - arg1
- TestComplexNullableOptionalRequest:
- - nullableInt
- - optionalInt
- - nullableOptionalInt
- - nullableString
- - optionalString
- - nullableOptionalString
- - nullableStruct
- - optionalStruct
- - nullableOptionalStruct
- - nullableList
- - optionalList
- - nullableOptionalList
- SimpleStructEchoRequest:
- - arg1
- TestSimpleOptionalArgumentRequest:
- - arg1
- TestEmitTestEventRequest:
- - arg1
- - arg2
- - arg3
- TestEmitTestFabricScopedEventRequest:
- - arg1
- OTASoftwareUpdateProvider:
- QueryImage:
- - vendorID
- - productID
- - softwareVersion
- - protocolsSupported
- - hardwareVersion
- - location
- - requestorCanConsent
- - metadataForProvider
- # Next two were introduced and deprecated at the same time, effectively
- - vendorId
- - productId
- QueryImageResponse:
- - status
- - delayedActionTime
- - imageURI
- - softwareVersion
- - softwareVersionString
- - updateToken
- - userConsentNeeded
- - metadataForRequestor
- ApplyUpdateRequest:
- - updateToken
- - newVersion
- ApplyUpdateResponse:
- - action
- - delayedActionTime
- NotifyUpdateApplied:
- - updateToken
- - softwareVersion
- OTASoftwareUpdateRequestor:
- AnnounceOTAProvider:
- - providerNodeID
- - vendorID
- - announcementReason
- - metadataForNode
- - endpoint
- # Next two were introduced and deprecated at the same time, effectively
- - providerNodeId
- - vendorId
- Groups:
- AddGroup:
- - groupID
- AddGroupIfIdentifying:
- - groupID
- AddGroupResponse:
- - groupID
- RemoveGroup:
- - groupID
- RemoveGroupResponse:
- - groupID
- ViewGroup:
- - groupID
- ViewGroupResponse:
- - groupID
- OnOff:
- OffWithEffect:
- - effectIdentifier
- DiagnosticLogs:
- RetrieveLogsResponse:
- - logContent
- - utcTimeStamp
- AdministratorCommissioning:
- OpenCommissioningWindow:
- - pakePasscodeVerifier
- OperationalCredentials:
- AttestationResponse:
- - attestationSignature
- AddTrustedRootCertificate:
- - rootCACertificate
- DoorLock:
- SetUser:
- - userUniqueID
- GetUserResponse:
- - userUniqueID
- ColorControl:
- MoveToColorTemperature:
- - colorTemperatureMireds
- ContentLauncher:
- LauncherResponse:
- - status
- - data
- Scenes:
- AddScene:
- - groupID
- - sceneID
- ViewScene:
- - groupID
- - sceneID
- RemoveScene:
- - groupID
- - sceneID
- RemoveAllScenes:
- - groupID
- StoreScene:
- - groupID
- - sceneID
- RecallScene:
- - groupID
- - sceneID
- GetSceneMembership:
- - groupID
- EnhancedAddScene:
- - groupID
- - sceneID
- EnhancedViewScene:
- - groupID
- - sceneID
- CopyScene:
- - groupIdentifierFrom
- - sceneIdentifierFrom
- - groupIdentifierTo
- - sceneIdentifierTo
- AddSceneResponse:
- - groupID
- - sceneID
- ViewSceneResponse:
- - groupID
- - sceneID
- RemoveSceneResponse:
- - groupID
- - sceneID
- RemoveAllScenesResponse:
- - groupID
- StoreSceneResponse:
- - groupID
- - sceneID
- GetSceneMembershipResponse:
- - groupID
- EnhancedAddSceneResponse:
- - groupID
- - sceneID
- EnhancedViewSceneResponse:
- - groupID
- - sceneID
- CopySceneResponse:
- - groupIdentifierFrom
- - sceneIdentifierFrom
- structs:
- OTASoftwareUpdateRequestor:
- - ProviderLocation
- UnitTesting:
- - SimpleStruct
- - TestFabricScoped
- - NullablesAndOptionalsStruct
- - NestedStruct
- - NestedStructList
- - DoubleNestedStructList
- - TestListStructOctet
- BasicInformation:
- - CapabilityMinimaStruct
- AccessControl:
- - AccessControlEntryStruct
- - AccessControlExtensionStruct
- SoftwareDiagnostics:
- - ThreadMetricsStruct
- GeneralDiagnostics:
- - NetworkInterface
- ModeSelect:
- - SemanticTagStruct
- OperationalCredentials:
- - FabricDescriptorStruct
- DoorLock:
- - CredentialStruct
- MediaPlayback:
- - PlaybackPositionStruct
- TargetNavigator:
- - TargetInfoStruct
- MediaInput:
- - InputInfoStruct
- AudioOutput:
- - OutputInfoStruct
- Channel:
- - ChannelInfoStruct
- - LineupInfoStruct
- ContentLauncher:
- - DimensionStruct
- - AdditionalInfoStruct
- - ParameterStruct
- - ContentSearchStruct
- - StyleInformationStruct
- - BrandingInformationStruct
- ApplicationLauncher:
- - ApplicationStruct
- - ApplicationEPStruct
- ApplicationBasic:
- - ApplicationStruct
- struct fields:
- UnitTesting:
- SimpleStruct:
- - a
- - b
- - c
- - d
- - e
- - f
- - g
- - h
- TestFabricScoped:
- - fabricSensitiveInt8u
- - optionalFabricSensitiveInt8u
- - nullableFabricSensitiveInt8u
- - nullableOptionalFabricSensitiveInt8u
- - fabricSensitiveCharString
- - fabricSensitiveStruct
- - fabricSensitiveInt8uList
- - fabricIndex
- NullablesAndOptionalsStruct:
- - nullableInt
- - optionalInt
- - nullableOptionalInt
- - nullableString
- - optionalString
- - nullableOptionalString
- - nullableStruct
- - optionalStruct
- - nullableOptionalStruct
- - nullableList
- - optionalList
- - nullableOptionalList
- NestedStruct:
- - a
- - b
- - c
- NestedStructList:
- - a
- - b
- - c
- - d
- - e
- - f
- - g
- DoubleNestedStructList:
- - a
- TestListStructOctet:
- - member1
- - member2
- OTASoftwareUpdateRequestor:
- ProviderLocation:
- - providerNodeID
- - endpoint
- - fabricIndex
- BasicInformation:
- CapabilityMinimaStruct:
- - caseSessionsPerFabric
- - subscriptionsPerFabric
- Descriptor:
- DeviceTypeStruct:
- - deviceType
- AccessControl:
- AccessControlEntryStruct:
- - privilege
- - authMode
- - subjects
- - targets
- - fabricIndex
- AccessControlExtensionStruct:
- - data
- - fabricIndex
- SoftwareDiagnostics:
- ThreadMetricsStruct:
- - id
- - name
- - stackFreeCurrent
- - stackFreeMinimum
- - stackSize
- GeneralDiagnostics:
- NetworkInterface:
- - name
- - isOperational
- - offPremiseServicesReachableIPv4
- - offPremiseServicesReachableIPv6
- - hardwareAddress
- - iPv4Addresses
- - iPv6Addresses
- - type
- ModeSelect:
- SemanticTagStruct:
- - mfgCode
- - value
- OperationalCredentials:
- FabricDescriptorStruct:
- - rootPublicKey
- - vendorID
- - fabricID
- - nodeID
- - label
- - fabricIndex
- # Values that are actually deprecated, but we effectively
- # introduced them in this release.
- - vendorId
- - fabricId
- - nodeId
- DoorLock:
- CredentialStruct:
- - credentialType
- - credentialIndex
- MediaPlayback:
- PlaybackPositionStruct:
- - updatedAt
- - position
- TargetNavigator:
- TargetInfoStruct:
- - identifier
- - name
- MediaInput:
- InputInfoStruct:
- - index
- - inputType
- - name
- - descriptionString
- AudioOutput:
- OutputInfoStruct:
- - index
- - outputType
- - name
- Channel:
- ChannelInfoStruct:
- - majorNumber
- - minorNumber
- - name
- - callSign
- - affiliateCallSign
- LineupInfoStruct:
- - operatorName
- - lineupName
- - postalCode
- - lineupInfoType
- ContentLauncher:
- DimensionStruct:
- - width
- - height
- - metric
- AdditionalInfoStruct:
- - name
- - value
- ParameterStruct:
- - type
- - value
- - externalIDList
- ContentSearchStruct:
- - parameterList
- StyleInformationStruct:
- - imageURL
- - color
- - size
- # Member that is actually deprecated, but we effectively
- # introduced it in this release.
- - imageUrl
- BrandingInformationStruct:
- - providerName
- - background
- - logo
- - progressBar
- - splash
- - waterMark
- ApplicationLauncher:
- ApplicationStruct:
- - catalogVendorID
- - applicationID
- # Values that are actually deprecated, but we effectively
- # introduced them in this release.
- - catalogVendorId
- - applicationId
- ApplicationEPStruct:
- - application
- - endpoint
- ApplicationBasic:
- ApplicationStruct:
- - catalogVendorID
- - applicationID
- # Values that are actually deprecated, but we effectively
- # introduced them in this release.
- - catalogVendorId
- - applicationId
- Scenes:
- AttributeValuePair:
- - attributeID
- ExtensionFieldSet:
- - clusterID
- events:
- OTASoftwareUpdateRequestor:
- - StateTransition
- - VersionApplied
- - DownloadError
- UnitTesting:
- - TestEvent
- - TestFabricScopedEvent
- BasicInformation:
- - StartUp
- - ShutDown
- - Leave
- - ReachableChanged
- PowerSource:
- - WiredFaultChange
- - BatFaultChange
- - BatChargeFaultChange
- BridgedDeviceBasicInformation:
- - StartUp
- - ShutDown
- - Leave
- - ReachableChanged
- event fields:
- Switch:
- MultiPressComplete:
- - previousPosition
- UnitTesting:
- TestEvent:
- - arg1
- - arg2
- - arg3
- - arg4
- - arg5
- - arg6
- TestFabricScopedEvent:
- - fabricIndex
- OTASoftwareUpdateRequestor:
- StateTransition:
- - previousState
- - newState
- - reason
- - targetSoftwareVersion
- VersionApplied:
- - softwareVersion
- - productID
- DownloadError:
- - softwareVersion
- - bytesDownloaded
- - progressPercent
- - platformCode
- BasicInformation:
- StartUp:
- - softwareVersion
- Leave:
- - fabricIndex
- ReachableChanged:
- - reachableNewValue
- PowerSource:
- WiredFaultChange:
- - current
- - previous
- BatFaultChange:
- - current
- - previous
- BatChargeFaultChange:
- - current
- - previous
- BridgedDeviceBasicInformation:
- StartUp:
- - softwareVersion
- ReachableChanged:
- - reachableNewValue
- enums:
- OTASoftwareUpdateProvider:
- - OTAApplyUpdateAction
- - OTADownloadProtocol
- - OTAQueryStatus
- OTASoftwareUpdateRequestor:
- - OTAAnnouncementReason
- - OTAChangeReasonEnum
- - OTAUpdateStateEnum
- UnitTesting:
- - SimpleEnum
- AccessControl:
- - AccessControlEntryPrivilegeEnum
- - AccessControlEntryAuthModeEnum
- ThreadNetworkDiagnostics:
- - ConnectionStatusEnum
- EthernetNetworkDiagnostics:
- - PHYRateEnum
- GeneralDiagnostics:
- - HardwareFaultEnum
- - RadioFaultEnum
- - BootReasonEnum
- - NetworkFaultEnum
- OperationalCredentials:
- - NodeOperationalCertStatusEnum
- - CertificateChainTypeEnum
- DoorLock:
- - AlarmCodeEnum
- - CredentialRuleEnum
- - CredentialTypeEnum
- - DataOperationTypeEnum
- - DoorStateEnum
- - LockDataTypeEnum
- - LockOperationTypeEnum
- - OperationErrorEnum
- - OperatingModeEnum
- - OperationSourceEnum
- enum values:
- OTASoftwareUpdateProvider:
- OTAApplyUpdateAction:
- - Proceed
- - AwaitNextAction
- - Discontinue
- OTADownloadProtocol:
- - BDXSynchronous
- - BDXAsynchronous
- - HTTPS
- - VendorSpecific
- OTAQueryStatus:
- - UpdateAvailable
- - Busy
- - NotAvailable
- - DownloadProtocolNotSupported
- OTASoftwareUpdateRequestor:
- OTAAnnouncementReason:
- - SimpleAnnouncement
- - UpdateAvailable
- - UrgentUpdateAvailable
- OTAChangeReasonEnum:
- - Unknown
- - Success
- - Failure
- - TimeOut
- - DelayByProvider
- OTAUpdateStateEnum:
- - Unknown
- - Idle
- - Querying
- - DelayedOnQuery
- - Downloading
- - Applying
- - DelayedOnApply
- - RollingBack
- - DelayedOnUserConsent
- UnitTesting:
- SimpleEnum:
- - Unspecified
- - ValueA
- - ValueB
- - ValueC
- GeneralCommissioning:
- # CommissioningErrorEnum was originally just named
- # CommissioningError, but we generate the same API
- # for both of those names, so the name can just change
- # here.
- CommissioningErrorEnum:
- - OK
- AccessControl:
- AccessControlEntryPrivilegeEnum:
- - View
- - ProxyView
- - Operate
- - Manage
- - Administer
- AccessControlEntryAuthModeEnum:
- - PASE
- - CASE
- - Group
- PowerSource:
- BatChargeLevelEnum:
- - OK
- BatChargeFaultEnum:
- - Unspecified
- PowerSourceStatusEnum:
- - Unspecified
- ThreadNetworkDiagnostics:
- ConnectionStatusEnum:
- - Connected
- - NotConnected
- WiFiNetworkDiagnostics:
- WiFiVersionType:
- - A
- - B
- - G
- - N
- - Ac
- - Ax
- EthernetNetworkDiagnostics:
- PHYRateEnum:
- - Rate10M
- - Rate100M
- - Rate1G
- - Rate25G
- - Rate5G
- - Rate10G
- - Rate40G
- - Rate100G
- - Rate200G
- - Rate400G
- GeneralDiagnostics:
- HardwareFaultEnum:
- - Unspecified
- - Radio
- - Sensor
- - ResettableOverTemp
- - NonResettableOverTemp
- - PowerSource
- - VisualDisplayFault
- - AudioOutputFault
- - UserInterfaceFault
- - NonVolatileMemoryError
- - TamperDetected
- RadioFaultEnum:
- - Unspecified
- - WiFiFault
- - CellularFault
- - ThreadFault
- - NFCFault
- - BLEFault
- - EthernetFault
- BootReasonEnum:
- - Unspecified
- - PowerOnReboot
- - BrownOutReset
- - SoftwareWatchdogReset
- - HardwareWatchdogReset
- - SoftwareUpdateCompleted
- - SoftwareReset
- NetworkFaultEnum:
- - Unspecified
- - HardwareFailure
- - NetworkJammed
- - ConnectionFailed
- OperationalCredentials:
- NodeOperationalCertStatusEnum:
- - OK
- - InvalidPublicKey
- - InvalidNodeOpId
- - InvalidNOC
- - MissingCsr
- - TableFull
- - InvalidAdminSubject
- - FabricConflict
- - LabelConflict
- - InvalidFabricIndex
- CertificateChainTypeEnum:
- - DACCertificate
- - PAICertificate
- DoorLock:
- AlarmCodeEnum:
- - LockJammed
- - LockFactoryReset
- - LockRadioPowerCycled
- - WrongCodeEntryLimit
- - FrontEsceutcheonRemoved
- - DoorForcedOpen
- - DoorAjar
- - ForcedUser
- CredentialRuleEnum:
- - Single
- - Dual
- - Tri
- CredentialTypeEnum:
- - ProgrammingPIN
- - PIN
- - RFID
- - Fingerprint
- - FingerVein
- - Face
- DataOperationTypeEnum:
- - Add
- - Clear
- - Modify
- DoorStateEnum:
- - DoorOpen
- - DoorClosed
- - DoorJammed
- - DoorForcedOpen
- - DoorUnspecifiedError
- - DoorAjar
- LockDataTypeEnum:
- - Unspecified
- - ProgrammingCode
- - UserIndex
- - WeekDaySchedule
- - YearDaySchedule
- - HolidaySchedule
- - PIN
- - RFID
- - Fingerprint
- LockOperationTypeEnum:
- - Lock
- - Unlock
- - NonAccessUserEvent
- - ForcedUserEvent
- OperationErrorEnum:
- - Unspecified
- - InvalidCredential
- - DisabledUserDenied
- - Restricted
- - InsufficientBattery
- OperatingModeEnum:
- - Normal
- - Vacation
- - Privacy
- - NoRemoteLockUnlock
- - Passage
- OperationSourceEnum:
- - Unspecified
- - Manual
- - ProprietaryRemote
- - Keypad
- - Auto
- - Button
- - Schedule
- - Remote
- - RFID
- - Biometric
- UserTypeEnum:
- - UnrestrictedUser
- - ProgrammingUser
- - ForcedUser
- - DisposableUser
- - ExpiringUser
- - ScheduleRestrictedUser
- - RemoteOnlyUser
- MediaInput:
- InputTypeEnum:
- - HDMI
- - SCART
- - USB
- AudioOutput:
- OutputTypeEnum:
- - HDMI
- - BT
- Channel:
- LineupInfoTypeEnum:
- - MSO
- ContentLauncher:
- MetricTypeEnum:
- - Pixels
- - Percentage
- ParameterEnum:
- - Video
- Thermostat:
- # SystemModeEnum was originally named ThermostatSystemMode, but we
- # generate the same API for the names with/without "Enum" at the
- # end and the cluster name present/absent at the beginning, so the
- # name can just change here.
- SystemModeEnum:
- - EmergencyHeat
- - Dry
- - Sleep
- SetpointAdjustMode:
- - Heat
- - Cool
- - Both
- bitmaps:
- UnitTesting:
- - Bitmap8MaskMap
- - Bitmap16MaskMap
- - Bitmap32MaskMap
- - Bitmap64MaskMap
- - SimpleBitmap
- LevelControl:
- - LevelControlOptions
- DoorLock:
- - DaysMaskMap
- PumpConfigurationAndControl:
- - PumpFeature
- WiFiNetworkDiagnostics:
- # Feature was originally named WiFiNetworkDiagnosticsFeature, but
- # we generate the same API for both of those names, so the name
- # can just change here.
- - Feature
- EthernetNetworkDiagnostics:
- # Feature was originally named EthernetNetworkDiagnosticsFeature, but
- # we generate the same API for both of those names, so the name
- # can just change here.
- - Feature
- bitmap values:
- UnitTesting:
- Bitmap8MaskMap:
- - MaskVal1
- - MaskVal2
- - MaskVal3
- - MaskVal4
- Bitmap16MaskMap:
- - MaskVal1
- - MaskVal2
- - MaskVal3
- - MaskVal4
- Bitmap32MaskMap:
- - MaskVal1
- - MaskVal2
- - MaskVal3
- - MaskVal4
- Bitmap64MaskMap:
- - MaskVal1
- - MaskVal2
- - MaskVal3
- - MaskVal4
- SimpleBitmap:
- - ValueA
- - ValueB
- - ValueC
- LevelControl:
- LevelControlOptions:
- - ExecuteIfOff
- - CoupleColorTempToLevel
- NetworkCommissioning:
- WiFiSecurity:
- - WEP
- - WPAPersonal
- - WPA2Personal
- - WPA3Personal
- PressureMeasurement:
- PressureFeature:
- - Extended
- DoorLock:
- DaysMaskMap:
- - Sunday
- - Monday
- - Tuesday
- - Wednesday
- - Thursday
- - Friday
- - Saturday
- # Feature was originally named DoorLockFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- Feature:
- - PINCredential
- - RFIDCredential
- - WeekDayAccessSchedules
- - CredentialsOverTheAirAccess
- - User
- - Notification
- - YearDayAccessSchedules
- PumpConfigurationAndControl:
- PumpFeature:
- - ConstantPressure
- - CompensatedPressure
- - ConstantFlow
- - ConstantSpeed
- - ConstantTemperature
- - Automatic
- - Local
- Thermostat:
- # Feature was originally named ThermostatFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- Feature:
- - ScheduleConfiguration
- - AutoMode
- DayOfWeek:
- - Away
- ModeForSequence:
- - HeatSetpointPresent
- - CoolSetpointPresent
- WiFiNetworkDiagnostics:
- # Feature was originally named WiFiNetworkDiagnosticsFeature, but
- # we generate the same API for both of those names, so the name
- # can just change here.
- Feature:
- - PacketCounts
- - ErrorCounts
- EthernetNetworkDiagnostics:
- # Feature was originally named EthernetNetworkDiagnosticsFeature, but
- # we generate the same API for both of those names, so the name
- # can just change here.
- Feature:
- - PacketCounts
- - ErrorCounts
- deprecated:
- clusters:
- - OtaSoftwareUpdateProvider
- - OtaSoftwareUpdateRequestor
- - TestCluster
- - WakeOnLan
- - Basic
- attributes:
- Descriptor:
- - DeviceList
- AccessControl:
- - Acl
- BallastConfiguration:
- - IntrinsicBalanceFactor
- OccupancySensing:
- - PirOccupiedToUnoccupiedDelay
- - PirUnoccupiedToOccupiedDelay
- - PirUnoccupiedToOccupiedThreshold
- ThreadNetworkDiagnostics:
- - NeighborTableList
- - RouteTableList
- WiFiNetworkDiagnostics:
- - Bssid
- - Rssi
- GeneralDiagnostics:
- - BootReasons
- commands:
- ContentLauncher:
- - LaunchResponse
- MediaPlayback:
- - StopPlayback
- command fields:
- Groups:
- AddGroup:
- - groupId
- AddGroupIfIdentifying:
- - groupId
- AddGroupResponse:
- - groupId
- RemoveGroup:
- - groupId
- RemoveGroupResponse:
- - groupId
- ViewGroup:
- - groupId
- ViewGroupResponse:
- - groupId
- OnOff:
- OffWithEffect:
- - effectId
- DiagnosticLogs:
- RetrieveLogsResponse:
- - content
- - timeStamp
- AdministratorCommissioning:
- OpenCommissioningWindow:
- - pakeVerifier
- OperationalCredentials:
- AttestationResponse:
- - signature
- AddTrustedRootCertificate:
- - rootCertificate
- DoorLock:
- SetUser:
- - userUniqueId
- GetUserResponse:
- - userUniqueId
- ColorControl:
- MoveToColorTemperature:
- - colorTemperature
- OTASoftwareUpdateProvider:
- QueryImage:
- - vendorId
- - productId
- OTASoftwareUpdateRequestor:
- AnnounceOTAProvider:
- - providerNodeId
- - vendorId
- Scenes:
- AddScene:
- - groupId
- - sceneId
- ViewScene:
- - groupId
- - sceneId
- RemoveScene:
- - groupId
- - sceneId
- RemoveAllScenes:
- - groupId
- StoreScene:
- - groupId
- - sceneId
- RecallScene:
- - groupId
- - sceneId
- GetSceneMembership:
- - groupId
- EnhancedAddScene:
- - groupId
- - sceneId
- EnhancedViewScene:
- - groupId
- - sceneId
- CopyScene:
- - groupIdFrom
- - sceneIdFrom
- - groupIdTo
- - sceneIdTo
- AddSceneResponse:
- - groupId
- - sceneId
- ViewSceneResponse:
- - groupId
- - sceneId
- RemoveSceneResponse:
- - groupId
- - sceneId
- RemoveAllScenesResponse:
- - groupId
- StoreSceneResponse:
- - groupId
- - sceneId
- GetSceneMembershipResponse:
- - groupId
- EnhancedAddSceneResponse:
- - groupId
- - sceneId
- EnhancedViewSceneResponse:
- - groupId
- - sceneId
- CopySceneResponse:
- - groupIdFrom
- - sceneIdFrom
- structs:
- Descriptor:
- - DeviceType
- AccessControl:
- - AccessControlEntry
- - ExtensionEntry
- PowerSource:
- - WiredFaultChangeType
- - BatFaultChangeType
- - BatChargeFaultChangeType
- SoftwareDiagnostics:
- - ThreadMetrics
- GeneralDiagnostics:
- - NetworkInterfaceType
- ModeSelect:
- - SemanticTag
- OperationalCredentials:
- - FabricDescriptor
- DoorLock:
- - DlCredential
- MediaPlayback:
- - PlaybackPosition
- TargetNavigator:
- - TargetInfo
- MediaInput:
- - InputInfo
- AudioOutput:
- - OutputInfo
- Channel:
- - ChannelInfo
- - LineupInfo
- ContentLauncher:
- - Dimension
- - AdditionalInfo
- - Parameter
- - ContentSearch
- - StyleInformation
- - BrandingInformation
- ApplicationLauncher:
- - Application
- - ApplicationEP
- ApplicationBasic:
- - ApplicationBasicApplication
- struct fields:
- Descriptor:
- DeviceTypeStruct:
- - type
- OperationalCredentials:
- FabricDescriptorStruct:
- - vendorId
- - fabricId
- - nodeId
- ContentLauncher:
- StyleInformationStruct:
- - imageUrl
- ApplicationLauncher:
- ApplicationStruct:
- - catalogVendorId
- - applicationId
- ApplicationBasic:
- ApplicationStruct:
- - catalogVendorId
- - applicationId
- Scenes:
- AttributeValuePair:
- - attributeId
- ExtensionFieldSet:
- - clusterId
- event fields:
- Switch:
- MultiPressComplete:
- - newPosition
- enums:
- AccessControl:
- - Privilege
- - AuthMode
- ThreadNetworkDiagnostics:
- - ThreadConnectionStatus
- EthernetNetworkDiagnostics:
- - PHYRateType
- GeneralDiagnostics:
- - HardwareFaultType
- - RadioFaultType
- - BootReasonType
- - NetworkFaultType
- OperationalCredentials:
- - OperationalCertStatus
- DoorLock:
- - DlAlarmCode
- - DlCredentialRule
- - DlCredentialType
- - DlDataOperationType
- - DlDoorState
- - DlLockDataType
- - DlLockOperationType
- - DlOperationError
- - DlOperatingMode
- - DlOperationSource
- - DlUserStatus
- - DlUserType
- # The enums after this come from the draft/types/door-lock.xml, not the
- # door lock cluster XML
- #
- # DoorLockUserStatus is not marked deprecated here because the
- # UserStatusEnum from the spec ends up with the same enum name
- # (MTRDoorLockUserStatus) but is missing one of the values
- # compared to DoorLockUserStatus. So we have to keep
- # DoorLockUserStatus for now and just deprecate its one extra name.
- - DoorLockUserStatus
- - DoorLockUserType
- - DoorLockDayOfWeek
- - DoorLockSetPinOrIdStatus
- - DoorLockOperationEventCode
- - DoorLockProgrammingEventCode
- enum values:
- GeneralCommissioning:
- # CommissioningErrorEnum was originally just named
- # CommissioningError, but we generate the same API
- # for both of those names, so the name can just change
- # here.
- CommissioningErrorEnum:
- - Ok
- PowerSource:
- BatChargeLevelEnum:
- - Ok
- BatChargeFaultEnum:
- - Unspecfied
- PowerSourceStatusEnum:
- - Unspecfied
- WiFiNetworkDiagnostics:
- WiFiVersionType:
- - 80211a
- - 80211b
- - 80211g
- - 80211n
- - 80211ac
- - 80211ax
- DoorLock:
- UserStatusEnum:
- - NotSupported
- UserTypeEnum:
- - NotSupported
- - Unrestricted
- - MasterUser
- MediaInput:
- InputTypeEnum:
- - Hdmi
- - Scart
- - Usb
- AudioOutput:
- OutputTypeEnum:
- - Hdmi
- - Bt
- Channel:
- LineupInfoTypeEnum:
- - Mso
- ContentLauncher:
- MetricTypeEnum:
- - PIXELS
- - PERCENTAGE
- Thermostat:
- # SystemModeEnum was originally named ThermostatSystemMode, but we
- # generate the same API for the names with/without "Enum" at the
- # end and the cluster name present/absent at the beginning, so the
- # name can just change here.
- SystemModeEnum:
- - EmergencyHeating
- SetpointAdjustMode:
- - HeatSetpoint
- - CoolSetpoint
- - HeatAndCoolSetpoints
- bitmaps:
- DoorLock:
- - DlDaysMaskMap
- bitmap values:
- NetworkCommissioning:
- WiFiSecurity:
- - WepPersonal
- - WpaPersonal
- - Wpa2Personal
- - Wpa3Personal
- PressureMeasurement:
- PressureFeature:
- - EXT
- DoorLock:
- # Feature was originally named DoorLockFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- Feature:
- - PINCredentials
- - RFIDCredentials
- - WeekDaySchedules
- - CredentialsOTA
- - UsersManagement
- - Notifications
- - YearDaySchedules
- Thermostat:
- # Feature was originally named ThermostatFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- Feature:
- - Schedule
- - Automode
- DayOfWeek:
- - AwayOrVacation
- ModeForSequence:
- - HeatSetpointFieldPresent
- - CoolSetpointFieldPresent
- apis:
- - Timed Invoke for server to client commands
- - Deprecated global attribute names
- removed:
- commands:
- BasicInformation:
- - MfgSpecificPing
- command fields:
- # Cases where the cluster/command got renamed and the fields got
- # renamed, so the old command name never had the new fields.
- OtaSoftwareUpdateProvider:
- QueryImage:
- - vendorID
- - productID
- enums:
- # DoorLockUserStatus (non-spec) and UserStatusEnum (from the spec) end
- # up with the same enum name (MTRDoorLockUserStatus), so just remove
- # the non-spec one.
- DoorLock:
- - DoorLockUserStatus
- - DoorLockUserType
- enum values:
- EthernetNetworkDiagnostics:
- # Both the enum and the values got renamed, so don't output the
- # old values with the new enum name.
- PHYRateEnum:
- - 10M
- - 100M
- - 1000M
- - 25G
- - 5G
- - 10G
- - 40G
- - 100G
- - 200G
- - 400G
- OperationalCredentials:
- # Both the enum and the value got renamed, so don't output the
- # old value with the new enum name.
- NodeOperationalCertStatusEnum:
- - SUCCESS
- DoorLock:
- # Both the enum and the values got renamed, so don't output the
- # old value with the new enum name.
- CredentialRuleEnum:
- - Double
- renames:
- clusters:
- UnitTesting: TestCluster
- BasicInformation: Basic
- OTASoftwareUpdateProvider: OtaSoftwareUpdateProvider
- OTASoftwareUpdateRequestor: OtaSoftwareUpdateRequestor
- WakeOnLAN: WakeOnLan
- BridgedDeviceBasicInformation: BridgedDeviceBasic
- attributes:
- Descriptor:
- DeviceTypeList: DeviceList
- AccessControl:
- ACL: Acl
- BallastConfiguration:
- IntrinsicBallastFactor: IntrinsicBalanceFactor
- OccupancySensing:
- PIROccupiedToUnoccupiedDelay: PirOccupiedToUnoccupiedDelay
- PIRUnoccupiedToOccupiedDelay: PirUnoccupiedToOccupiedDelay
- PIRUnoccupiedToOccupiedThreshold: PirUnoccupiedToOccupiedThreshold
- OTASoftwareUpdateRequestor:
- DefaultOTAProviders: DefaultOtaProviders
- ThreadNetworkDiagnostics:
- NeighborTable: NeighborTableList
- RouteTable: RouteTableList
- WiFiNetworkDiagnostics:
- BSSID: Bssid
- RSSI: Rssi
- GeneralDiagnostics:
- BootReason: BootReasons
- commands:
- OTASoftwareUpdateRequestor:
- AnnounceOTAProvider: AnnounceOtaProvider
- ContentLauncher:
- LauncherResponse: LaunchResponse
- MediaPlayback:
- Stop: StopPlayback
- command fields:
- OTASoftwareUpdateProvider:
- QueryImage:
- vendorID: vendorId
- productID: productId
- OTASoftwareUpdateRequestor:
- AnnounceOTAProvider:
- providerNodeID: providerNodeId
- vendorID: vendorId
- Groups:
- AddGroup:
- groupID: groupId
- AddGroupIfIdentifying:
- groupID: groupId
- AddGroupResponse:
- groupID: groupId
- RemoveGroup:
- groupID: groupId
- RemoveGroupResponse:
- groupID: groupId
- ViewGroup:
- groupID: groupId
- ViewGroupResponse:
- groupID: groupId
- OnOff:
- OffWithEffect:
- effectIdentifier: effectId
- DiagnosticLogs:
- RetrieveLogsResponse:
- logContent: content
- utcTimeStamp: timeStamp
- AdministratorCommissioning:
- OpenCommissioningWindow:
- pakePasscodeVerifier: pakeVerifier
- OperationalCredentials:
- AttestationResponse:
- attestationSignature: signature
- AddTrustedRootCertificate:
- rootCACertificate: rootCertificate
- DoorLock:
- SetUser:
- userUniqueID: userUniqueId
- GetUserResponse:
- userUniqueID: userUniqueId
- ColorControl:
- MoveToColorTemperature:
- colorTemperatureMireds: colorTemperature
- Scenes:
- AddScene:
- groupID: groupId
- sceneID: sceneId
- ViewScene:
- groupID: groupId
- sceneID: sceneId
- RemoveScene:
- groupID: groupId
- sceneID: sceneId
- RemoveAllScenes:
- groupID: groupId
- StoreScene:
- groupID: groupId
- sceneID: sceneId
- RecallScene:
- groupID: groupId
- sceneID: sceneId
- GetSceneMembership:
- groupID: groupId
- EnhancedAddScene:
- groupID: groupId
- sceneID: sceneId
- EnhancedViewScene:
- groupID: groupId
- sceneID: sceneId
- CopyScene:
- groupIdentifierFrom: groupIdFrom
- sceneIdentifierFrom: sceneIdFrom
- groupIdentifierTo: groupIdTo
- sceneIdentifierTo: sceneIdTo
- AddSceneResponse:
- groupID: groupId
- sceneID: sceneId
- ViewSceneResponse:
- groupID: groupId
- sceneID: sceneId
- RemoveSceneResponse:
- groupID: groupId
- sceneID: sceneId
- RemoveAllScenesResponse:
- groupID: groupId
- StoreSceneResponse:
- groupID: groupId
- sceneID: sceneId
- GetSceneMembershipResponse:
- groupID: groupId
- EnhancedAddSceneResponse:
- groupID: groupId
- sceneID: sceneId
- EnhancedViewSceneResponse:
- groupID: groupId
- sceneID: sceneId
- CopySceneResponse:
- groupIdentifierFrom: groupIdFrom
- sceneIdentifierFrom: sceneIdFrom
- structs:
- AccessControl:
- AccessControlEntryStruct: AccessControlEntry
- AccessControlExtensionStruct: ExtensionEntry
- SoftwareDiagnostics:
- ThreadMetricsStruct: ThreadMetrics
- GeneralDiagnostics:
- NetworkInterface: NetworkInterfaceType
- ModeSelect:
- SemanticTagStruct: SemanticTag
- OperationalCredentials:
- FabricDescriptorStruct: FabricDescriptor
- DoorLock:
- CredentialStruct: DlCredential
- MediaPlayback:
- PlaybackPositionStruct: PlaybackPosition
- TargetNavigator:
- TargetInfoStruct: TargetInfo
- MediaInput:
- InputInfoStruct: InputInfo
- AudioOutput:
- OutputInfoStruct: OutputInfo
- Channel:
- ChannelInfoStruct: ChannelInfo
- LineupInfoStruct: LineupInfo
- ContentLauncher:
- DimensionStruct: Dimension
- AdditionalInfoStruct: AdditionalInfo
- ParameterStruct: Parameter
- ContentSearchStruct: ContentSearch
- StyleInformationStruct: StyleInformation
- BrandingInformationStruct: BrandingInformation
- ApplicationLauncher:
- ApplicationStruct: Application
- ApplicationEPStruct: ApplicationEP
- ApplicationBasic:
- ApplicationStruct: ApplicationBasicApplication
- struct fields:
- Descriptor:
- DeviceTypeStruct:
- deviceType: type
- OperationalCredentials:
- FabricDescriptorStruct:
- vendorID: vendorId
- fabricID: fabricId
- nodeID: nodeId
- ContentLauncher:
- StyleInformationStruct:
- imageURL: imageUrl
- ApplicationLauncher:
- ApplicationStruct:
- catalogVendorID: catalogVendorId
- applicationID: applicationId
- ApplicationBasic:
- ApplicationStruct:
- catalogVendorID: catalogVendorId
- applicationID: applicationId
- Scenes:
- AttributeValuePair:
- attributeID: attributeId
- ExtensionFieldSet:
- clusterID: clusterId
- event fields:
- Switch:
- MultiPressComplete:
- previousPosition: newPosition
- enums:
- AccessControl:
- AccessControlEntryPrivilegeEnum: Privilege
- AccessControlEntryAuthModeEnum: AuthMode
- ThreadNetworkDiagnostics:
- ConnectionStatusEnum: ThreadConnectionStatus
- EthernetNetworkDiagnostics:
- PHYRateEnum: PHYRateType
- GeneralDiagnostics:
- HardwareFaultEnum: HardwareFaultType
- RadioFaultEnum: RadioFaultType
- BootReasonEnum: BootReasonType
- NetworkFaultEnum: NetworkFaultType
- OperationalCredentials:
- NodeOperationalCertStatusEnum: OperationalCertStatus
- DoorLock:
- AlarmCodeEnum: DlAlarmCode
- CredentialRuleEnum: DlCredentialRule
- CredentialTypeEnum: DlCredentialType
- DataOperationTypeEnum: DlDataOperationType
- DoorStateEnum: DlDoorState
- LockDataTypeEnum: DlLockDataType
- LockOperationTypeEnum: DlLockOperationType
- OperationErrorEnum: DlOperationError
- OperatingModeEnum: DlOperatingMode
- OperationSourceEnum: DlOperationSource
- UserStatusEnum: DlUserStatus
- UserTypeEnum: DlUserType
- enum values:
- GeneralCommissioning:
- # CommissioningErrorEnum was originally just named
- # CommissioningError, but we generate the same API
- # for both of those names, so the name can just change
- # here.
- CommissioningErrorEnum:
- OK: Ok
- PowerSource:
- BatChargeLevelEnum:
- OK: Ok
- BatChargeFaultEnum:
- Unspecified: Unspecfied
- PowerSourceStatusEnum:
- Unspecified: Unspecfied
- WiFiNetworkDiagnostics:
- WiFiVersionType:
- A: 80211a
- B: 80211b
- G: 80211g
- N: 80211n
- Ac: 80211ac
- Ax: 80211ax
- EthernetNetworkDiagnostics:
- PHYRateEnum:
- Rate10M: 10M
- Rate100M: 100M
- Rate1G: 1000M
- Rate25G: 25G
- Rate5G: 5G
- Rate10G: 10G
- Rate40G: 40G
- Rate100G: 100G
- Rate200G: 200G
- Rate400G: 400G
- PHYRateType:
- Rate10M: 10M
- Rate100M: 100M
- Rate1G: 1000M
- Rate25G: 25G
- Rate5G: 5G
- Rate10G: 10G
- Rate40G: 40G
- Rate100G: 100G
- Rate200G: 200G
- Rate400G: 400G
- OperationalCredentials:
- NodeOperationalCertStatusEnum:
- OK: SUCCESS
- OperationalCertStatus:
- OK: SUCCESS
- DoorLock:
- CredentialRuleEnum:
- Dual: Double
- UserTypeEnum:
- UnrestrictedUser: Unrestricted
- ProgrammingUser: MasterUser
- MediaInput:
- InputTypeEnum:
- HDMI: Hdmi
- SCART: Scart
- USB: Usb
- AudioOutput:
- OutputTypeEnum:
- HDMI: Hdmi
- BT: Bt
- Channel:
- LineupInfoTypeEnum:
- MSO: Mso
- ContentLauncher:
- MetricTypeEnum:
- Pixels: PIXELS
- Percentage: PERCENTAGE
- Thermostat:
- # SystemModeEnum was originally named ThermostatSystemMode, but we
- # generate the same API for the names with/without "Enum" at the
- # end and the cluster name present/absent at the beginning, so the
- # name can just change here.
- SystemModeEnum:
- EmergencyHeat: EmergencyHeating
- SetpointAdjustMode:
- Heat: HeatSetpoint
- Cool: CoolSetpoint
- Both: HeatAndCoolSetpoints
- bitmaps:
- DoorLock:
- DaysMaskMap: DlDaysMaskMap
- bitmap values:
- NetworkCommissioning:
- WiFiSecurity:
- WEP: WepPersonal
- WPAPersonal: WpaPersonal
- WPA2Personal: Wpa2Personal
- WPA3Personal: Wpa3Personal
- PressureMeasurement:
- PressureFeature:
- Extended: EXT
- DoorLock:
- # Feature was originally named DoorLockFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- Feature:
- PINCredential: PINCredentials
- RFIDCredential: RFIDCredentials
- WeekDayAccessSchedules: WeekDaySchedules
- CredentialsOverTheAirAccess: CredentialsOTA
- User: UsersManagement
- Notification: Notifications
- YearDayAccessSchedules: YearDaySchedules
- Thermostat:
- # Feature was originally named ThermostatFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- Feature:
- ScheduleConfiguration: Schedule
- AutoMode: Automode
- DayOfWeek:
- Away: AwayOrVacation
- ModeForSequence:
- HeatSetpointPresent: HeatSetpointFieldPresent
- CoolSetpointPresent: CoolSetpointFieldPresent
-
-- release: "First after major API revamp"
- versions:
- iOS: "16.5"
- macOS: "13.4"
- watchOS: "9.5"
- tvOS: "16.5"
- introduced:
- ids:
- attributes:
- TimeSynchronization:
- - DSTOffset
- command fields:
- DiagnosticLogs:
- RetrieveLogsRequest:
- # Not really usable in earlier releases: wrong type.
- - transferFileDesignator
- structs:
- TimeSynchronization:
- - DSTOffsetStruct
- - TimeZoneStruct
- struct fields:
- TimeSynchronization:
- DSTOffsetStruct:
- - offset
- - validStarting
- - validUntil
- TimeZoneStruct:
- - offset
- - validAt
- - name
- enums:
- DiagnosticLogs:
- - IntentEnum
- - StatusEnum
- - TransferProtocolEnum
- OccupancySensing:
- - OccupancySensorTypeEnum
- WiFiNetworkDiagnostics:
- - ConnectionStatusEnum
- - WiFiVersionEnum
- PumpConfigurationAndControl:
- - ControlModeEnum
- - OperationModeEnum
- PowerSource:
- - BatCommonDesignationEnum
- - BatApprovedChemistryEnum
- enum values:
- DoorLock:
- LockDataTypeEnum:
- - FingerVein
- - Face
- DiagnosticLogs:
- IntentEnum:
- - EndUserSupport
- - NetworkDiag
- - CrashLogs
- StatusEnum:
- - Success
- - Exhausted
- - NoLogs
- - Busy
- - Denied
- TransferProtocolEnum:
- - ResponsePayload
- - BDX
- OccupancySensing:
- OccupancySensorTypeEnum:
- - PIR
- - Ultrasonic
- - PIRAndUltrasonic
- - PhysicalContact
- WiFiNetworkDiagnostics:
- ConnectionStatusEnum:
- - Connected
- - NotConnected
- WiFiVersionEnum:
- - A
- - B
- - G
- - N
- - Ac
- - Ax
- PumpConfigurationAndControl:
- ControlModeEnum:
- - ConstantSpeed
- - ConstantPressure
- - ProportionalPressure
- - ConstantFlow
- - ConstantTemperature
- - Automatic
- OperationModeEnum:
- - Normal
- - Minimum
- - Maximum
- - Local
- PowerSource:
- WiredFaultEnum:
- - Unspecified
- BatFaultEnum:
- - Unspecified
- BatCommonDesignationEnum:
- - Unspecified
- - AAA
- - AA
- - C
- - D
- - 4v5
- - 6v0
- - 9v0
- - 12AA
- - AAAA
- - A
- - B
- - F
- - N
- - No6
- - SubC
- - A23
- - A27
- - BA5800
- - Duplex
- - 4SR44
- - "523"
- - "531"
- - 15v0
- - 22v5
- - 30v0
- - 45v0
- - 67v5
- - J
- - CR123A
- - CR2
- - 2CR5
- - CRP2
- - CRV3
- - SR41
- - SR43
- - SR44
- - SR45
- - SR48
- - SR54
- - SR55
- - SR57
- - SR58
- - SR59
- - SR60
- - SR63
- - SR64
- - SR65
- - SR66
- - SR67
- - SR68
- - SR69
- - SR516
- - SR731
- - SR712
- - LR932
- - A5
- - A10
- - A13
- - A312
- - A675
- - AC41E
- - "10180"
- - "10280"
- - "10440"
- - "14250"
- - "14430"
- - "14500"
- - "14650"
- - "15270"
- - "16340"
- - RCR123A
- - "17500"
- - "17670"
- - "18350"
- - "18500"
- - "18650"
- - "19670"
- - "25500"
- - "26650"
- - "32600"
- BatApprovedChemistryEnum:
- - Unspecified
- - Alkaline
- - LithiumCarbonFluoride
- - LithiumChromiumOxide
- - LithiumCopperOxide
- - LithiumIronDisulfide
- - LithiumManganeseDioxide
- - LithiumThionylChloride
- - Magnesium
- - MercuryOxide
- - NickelOxyhydride
- - SilverOxide
- - ZincAir
- - ZincCarbon
- - ZincChloride
- - ZincManganeseDioxide
- - LeadAcid
- - LithiumCobaltOxide
- - LithiumIon
- - LithiumIonPolymer
- - LithiumIronPhosphate
- - LithiumSulfur
- - LithiumTitanate
- - NickelCadmium
- - NickelHydrogen
- - NickelIron
- - NickelMetalHydride
- - NickelZinc
- - SilverZinc
- - SodiumIon
- - SodiumSulfur
- - ZincBromide
- - ZincCerium
- bitmaps:
- OccupancySensing:
- - OccupancyBitmap
- - OccupancySensorTypeBitmap
- PumpConfigurationAndControl:
- - PumpStatusBitmap
- bitmap values:
- OccupancySensing:
- OccupancyBitmap:
- - Occupied
- OccupancySensorTypeBitmap:
- - PIR
- - Ultrasonic
- - PhysicalContact
- PumpConfigurationAndControl:
- PumpFeature:
- - LocalOperation
- PumpStatusBitmap:
- - DeviceFault
- - Supplyfault
- - SpeedLow
- - SpeedHigh
- - LocalOverride
- - Running
- - RemotePressure
- - RemoteFlow
- - RemoteTemperature
- deprecated:
- attributes:
- TimeSynchronization:
- - DstOffset
- structs:
- TimeSynchronization:
- - DstOffsetType
- - TimeZoneType
- enums:
- DiagnosticLogs:
- - LogsIntent
- - LogsStatus
- - LogsTransferProtocol
- WiFiNetworkDiagnostics:
- - WiFiConnectionStatus
- - WiFiVersionType
- PumpConfigurationAndControl:
- - PumpControlMode
- - PumpOperationMode
- enum values:
- PowerSource:
- WiredFaultEnum:
- - Unspecfied
- BatFaultEnum:
- - Unspecfied
- bitmaps:
- PumpConfigurationAndControl:
- - PumpStatus
- bitmap values:
- PumpConfigurationAndControl:
- PumpFeature:
- - Local
- renames:
- attributes:
- TimeSynchronization:
- DSTOffset: DstOffset
- structs:
- TimeSynchronization:
- DSTOffsetStruct: DstOffsetType
- TimeZoneStruct: TimeZoneType
- enums:
- DiagnosticLogs:
- IntentEnum: LogsIntent
- StatusEnum: LogsStatus
- TransferProtocolEnum: LogsTransferProtocol
- WiFiNetworkDiagnostics:
- ConnectionStatusEnum: WiFiConnectionStatus
- WiFiVersionEnum: WiFiVersionType
- PumpConfigurationAndControl:
- ControlModeEnum: PumpControlMode
- OperationModeEnum: PumpOperationMode
- enum values:
- PowerSource:
- WiredFaultEnum:
- Unspecified: Unspecfied
- BatFaultEnum:
- Unspecified: Unspecfied
- bitmaps:
- PumpConfigurationAndControl:
- PumpStatusBitmap: PumpStatus
- bitmap values:
- PumpConfigurationAndControl:
- PumpFeature:
- LocalOperation: Local
-
-- release: "Fall 2023"
- versions:
- iOS: "17.0"
- macOS: "14.0"
- watchOS: "10.0"
- tvOS: "17.0"
- introduced:
- attributes:
- BasicInformation:
- - ProductAppearance
- BridgedDeviceBasicInformation:
- - ProductAppearance
- structs:
- AccessControl:
- - AccessControlTargetStruct
- BasicInformation:
- - ProductAppearanceStruct
- BridgedDeviceBasicInformation:
- - ProductAppearanceStruct
- NetworkCommissioning:
- - WiFiInterfaceScanResultStruct
- - ThreadInterfaceScanResultStruct
- - NetworkInfoStruct
- ThreadNetworkDiagnostics:
- - NeighborTableStruct
- - RouteTableStruct
- struct fields:
- AccessControl:
- AccessControlTargetStruct:
- - cluster
- - endpoint
- - deviceType
- BasicInformation:
- ProductAppearanceStruct:
- - finish
- - primaryColor
- BridgedDeviceBasicInformation:
- ProductAppearanceStruct:
- - finish
- - primaryColor
- NetworkCommissioning:
- WiFiInterfaceScanResultStruct:
- - security
- - ssid
- - bssid
- - channel
- - wiFiBand
- - rssi
- ThreadInterfaceScanResultStruct:
- - panId
- - extendedPanId
- - networkName
- - channel
- - version
- - extendedAddress
- - rssi
- - lqi
- NetworkInfoStruct:
- - networkID
- - connected
- ThreadNetworkDiagnostics:
- NeighborTableStruct:
- - extAddress
- - age
- - rloc16
- - linkFrameCounter
- - mleFrameCounter
- - lqi
- - averageRssi
- - lastRssi
- - frameErrorRate
- - messageErrorRate
- - rxOnWhenIdle
- - fullThreadDevice
- - fullNetworkData
- - isChild
- RouteTableStruct:
- - extAddress
- - rloc16
- - routerId
- - nextHop
- - pathCost
- - lqiIn
- - lqiOut
- - age
- - allocated
- - linkEstablished
- enums:
- BasicInformation:
- - ColorEnum
- - ProductFinishEnum
- BridgedDeviceBasicInformation:
- - ColorEnum
- - ProductFinishEnum
- FanControl:
- - FanModeEnum
- - FanModeSequenceEnum
- enum values:
- BasicInformation:
- ColorEnum:
- - Black
- - Navy
- - Green
- - Teal
- - Maroon
- - Purple
- - Olive
- - Gray
- - Blue
- - Lime
- - Aqua
- - Red
- - Fuchsia
- - Yellow
- - White
- - Nickel
- - Chrome
- - Brass
- - Copper
- - Silver
- - Gold
- ProductFinishEnum:
- - Matte
- - Satin
- - Polished
- - Rugged
- - Fabric
- - Other
- BridgedDeviceBasicInformation:
- ColorEnum:
- - Black
- - Navy
- - Green
- - Teal
- - Maroon
- - Purple
- - Olive
- - Gray
- - Blue
- - Lime
- - Aqua
- - Red
- - Fuchsia
- - Yellow
- - White
- - Nickel
- - Chrome
- - Brass
- - Copper
- - Silver
- - Gold
- ProductFinishEnum:
- - Matte
- - Satin
- - Polished
- - Rugged
- - Fabric
- - Other
- FanControl:
- FanModeEnum:
- - Off
- - Low
- - Medium
- - High
- - On
- - Auto
- - Smart
- FanModeSequenceEnum:
- - OffLowMedHigh
- - OffLowHigh
- - OffLowMedHighAuto
- - OffLowHighAuto
- - OffOnAuto
- - OffOn
- NetworkCommissioning:
- # WiFiBandEnum was originally just named WiFiBand, but we generate
- # the same API for both of those names, so the name can just
- # change here.
- WiFiBandEnum:
- - 1G
- WiFiNetworkDiagnostics:
- WiFiVersionEnum:
- - Ah
- Identify:
- IdentifyTypeEnum:
- - LightOutput
- - VisibleIndicator
- bitmaps:
- Groups:
- - Feature
- - NameSupportBitmap
- NetworkCommissioning:
- - WiFiSecurityBitmap
- PressureMeasurement:
- - Feature
- PumpConfigurationAndControl:
- - Feature
- Scenes:
- - Feature
- FanControl:
- - RockBitmap
- - WindBitmap
- bitmap values:
- FanControl:
- RockBitmap:
- - RockLeftRight
- - RockUpDown
- - RockRound
- WindBitmap:
- - SleepWind
- - NaturalWind
- Groups:
- Feature:
- - GroupNames
- NameSupportBitmap:
- - GroupNames
- ModeSelect:
- Feature:
- - OnOff
- NetworkCommissioning:
- WiFiSecurityBitmap:
- - Unencrypted
- - WEP
- - WPAPersonal
- - WPA2Personal
- - WPA3Personal
- PressureMeasurement:
- Feature:
- - Extended
- PumpConfigurationAndControl:
- Feature:
- - ConstantPressure
- - CompensatedPressure
- - ConstantFlow
- - ConstantSpeed
- - ConstantTemperature
- - Automatic
- - LocalOperation
- Scenes:
- Feature:
- - SceneNames
- Thermostat:
- Feature:
- - LocalTemperatureNotExposed
- ids:
- attributes:
- TimeSynchronization:
- - TrustedTimeSource
- - DefaultNTP
- - NTPServerAvailable
- deprecated:
- clusters:
- # We apparently forgot to deprecate BridgedDeviceBasic when we
- # introduced BridgedDeviceBasicInformation.
- - BridgedDeviceBasic
- enum values:
- Identify:
- IdentifyTypeEnum:
- - VisibleLight
- - VisibleLED
- structs:
- AccessControl:
- - Target
- NetworkCommissioning:
- - WiFiInterfaceScanResult
- - ThreadInterfaceScanResult
- - NetworkInfo
- ThreadNetworkDiagnostics:
- - NeighborTable
- - RouteTable
- enums:
- FanControl:
- - FanModeType
- - FanModeSequenceType
- bitmaps:
- Groups:
- - GroupClusterFeature
- NetworkCommissioning:
- - WiFiSecurity
- PressureMeasurement:
- - PressureFeature
- PumpConfigurationAndControl:
- - PumpFeature
- FanControl:
- - RockSupportMask
- - WindSupportMask
- bitmap values:
- ModeSelect:
- Feature:
- - DEPONOFF
- renames:
- attributes:
- TimeSynchronization:
- TrustedTimeSource: TrustedTimeNodeId
- DefaultNTP: DefaultNtp
- NTPServerAvailable: NtpServerPort
- commands:
- TimeSynchronization:
- SetUTCTime: SetUtcTime
- structs:
- AccessControl:
- AccessControlTargetStruct: Target
- NetworkCommissioning:
- WiFiInterfaceScanResultStruct: WiFiInterfaceScanResult
- ThreadInterfaceScanResultStruct: ThreadInterfaceScanResult
- NetworkInfoStruct: NetworkInfo
- ThreadNetworkDiagnostics:
- NeighborTableStruct: NeighborTable
- RouteTableStruct: RouteTable
- enums:
- FanControl:
- FanModeEnum: FanModeType
- FanModeSequenceEnum: FanModeSequenceType
- enum values:
- TimeSynchronization:
- TimeSourceEnum:
- NonMatterSNTP: NonFabricSntp
- NonMatterNTP: NonFabricNtp
- MatterSNTP: FabricSntp
- MatterNTP: FabricNtp
- MixedNTP: MixedNtp
- NonMatterSNTPNTS: NonFabricSntpNts
- NonMatterNTPNTS: NonFabricNtpNts
- MatterSNTPNTS: FabricSntpNts
- MatterNTPNTS: FabricNtpNts
- MixedNTPNTS: MixedNtpNts
- PTP: Ptp
- GNSS: Gnss
- Identify:
- IdentifyTypeEnum:
- LightOutput: VisibleLight
- VisibleIndicator: VisibleLED
- bitmaps:
- Groups:
- Feature: GroupClusterFeature
- NetworkCommissioning:
- WiFiSecurityBitmap: WiFiSecurity
- PressureMeasurement:
- Feature: PressureFeature
- PumpConfigurationAndControl:
- Feature: PumpFeature
- FanControl:
- RockBitmap: RockSupportMask
- WindBitmap: WindSupportMask
- bitmap values:
- ModeSelect:
- Feature:
- OnOff: DEPONOFF
- swiftUnavailable:
- bitmap values:
- NetworkCommissioning:
- WiFiSecurity:
- # The bitmap got renamed to WiFiSecurityBitmap, so now both
- # the Wpa* and WPA* names on WiFiSecurity are deprecated.
- # They get mapped to Swift with identical names, which leads
- # to the names being ambiguous. Mark the "Wpa*" as
- # unavailable to Swift to work around this.
- - WpaPersonal
- - Wpa2Personal
- - Wpa3Personal
- provisional:
- clusters:
- ## Not ready at cutoff
- - AirQuality
- # Replaceable Monitoring clusters
- - HEPAFilterMonitoring
- - ActivatedCarbonFilterMonitoring
- # Concentration Measurement clusters
- - CarbonDioxideConcentrationMeasurement
- - CarbonMonoxideConcentrationMeasurement
- - FormaldehydeConcentrationMeasurement
- - NitrogenDioxideConcentrationMeasurement
- - OzoneConcentrationMeasurement
- - PM10ConcentrationMeasurement
- - PM1ConcentrationMeasurement
- - PM25ConcentrationMeasurement
- - RadonConcentrationMeasurement
- - TotalVolatileOrganicCompoundsConcentrationMeasurement
- - RefrigeratorAlarm
- - TemperatureControl
- - SmokeCOAlarm
- ## Not ready to be public API yet.
- - ICDManagement
- - LaundryWasherMode
- - RefrigeratorAndTemperatureControlledCabinetMode
- - DishwasherMode
- - LaundryWasherControls
- - DishwasherAlarm
- - SampleMEI
- attributes:
- Scenes:
- # New scenes bits not stable yet.
- - SceneTableSize
- FanControl:
- # New Fan Control bits not stable yet.
- - AirflowDirection
- RVCCleanMode:
- # People are trying to deprecate this one
- - OnMode
- RVCRunMode:
- # People are trying to deprecate this one
- - OnMode
- commands:
- FanControl:
- # Not stable yet
- - Step
- DoorLock:
- # Not stable yet
- - UnboltDoor
- RVCOperationalState:
- # Disallowed in the spec, but present in our XML?
- - Start
- - Stop
- enums:
- FanControl:
- # Not stable yet.
- - StepDirectionEnum
- - AirflowDirectionEnum
- enum values:
- DoorLock:
- # Not stable yet
- DlLockState:
- - Unlatched
- DlLockType:
- - Eurocylinder
- LockOperationTypeEnum:
- - Unlatch
- TimeSynchronization:
- TimeSourceEnum:
- - NonMatterSNTP
- - NonMatterNTP
- - MatterSNTP
- - MatterNTP
- - MixedNTP
- - NonMatterSNTPNTS
- - NonMatterNTPNTS
- - MatterSNTPNTS
- - MatterNTPNTS
- - MixedNTPNTS
- - PTP
- - GNSS
- bitmap values:
- DoorLock:
- # Not stable yet
- # Feature was originally named DoorLockFeature, but we generate the
- # same API for both of those names, so the name can just change
- # here.
- Feature:
- - Unbolt
- FanControl:
- # Not stable yet
- Feature:
- - Step
- - AirflowDirection
- RVCRunMode:
- Feature:
- # People are trying to deprecate this one
- - OnOff
- RVCCleanMode:
- Feature:
- # People are trying to deprecate this one
- - OnOff
- global attributes:
- - EventList
- # Once we actually unmark TimeSynchronization as provisional, all these bits except EventList should go away too, and we should instead
- # mark things as introduced/deprecated as needed. The "ids" entries should go away, in particular.
- ids:
- attributes:
- TimeSynchronization:
- - TimeZoneListMaxSize
- - DSTOffsetListMaxSize
- - SupportsDNSResolve
- # Because we are special-casing ids for TimeSynchronization
- # above, we need to explicitly mark the EventList id
- # provisional.
- - EventList
- PulseWidthModulation:
- # Because we are special-casing ids for PulseWidthModulation
- # above, we need to explicitly mark the EventList id
- # provisional.
- - EventList
- commands:
- TimeSynchronization:
- - SetUTCTime
- - SetTrustedTimeSource
- - SetTimeZone
- - SetTimeZoneResponse
- - SetDSTOffset
- - SetDefaultNTP
- events:
- TimeSynchronization:
- - DSTTableEmpty
- - DSTStatus
- - TimeZoneStatus
- - TimeFailure
- - MissingTrustedTimeSource
-
-- release: "Fall 2023 #2"
- versions:
- iOS: "17.1"
- macOS: "14.1"
- watchOS: "10.1"
- tvOS: "17.1"
- introduced:
- bitmaps:
- TimeFormatLocalization:
- - Feature
- bitmap values:
- OnOff:
- Feature:
- - DeadFront
- TimeFormatLocalization:
- Feature:
- - CalendarFormat
- provisional:
- attributes:
- Descriptor:
- - TagList
- structs:
- # New things, not quite finalized.
- Descriptor:
- - SemanticTagStruct
- struct fields:
- # New things, not quite finalized.
- Descriptor:
- SemanticTagStruct:
- - mfgCode
- - namespaceID
- - tag
- - label
- bitmaps:
- # CacheAndSync is provisional in the spec.
- GroupKeyManagement:
- - Feature
- # New things, not quite finalized.
- Descriptor:
- - Feature
- bitmap values:
- # New things, not quite finalized.
- Descriptor:
- Feature:
- - TagList
- # CacheAndSync is provisional in the spec.
- GroupKeyManagement:
- Feature:
- - CacheAndSync
- # Scenes are generally provisional for now.
- Scenes:
- Feature:
- - Explicit
- - TableSize
- - FabricScenes
- removed:
- clusters:
- # Clusters that really should just not be exposed, even if they're in our XML.
- - FaultInjection
- # Clusters that are not going to end up shipping in their current form,
- # so we should not be exposing the bits we expose now.
- - ProxyConfiguration
- - ProxyDiscovery
- - ProxyValid
-
-- release: "Fall 2023 #3"
- versions:
- iOS: "17.2"
- macOS: "14.2"
- watchOS: "10.2"
- tvOS: "17.2"
- introduced:
- command payloads:
- TimeSynchronization:
- - SetUTCTime
- command fields:
- TimeSynchronization:
- SetUTCTime:
- - utcTime
- - granularity
- - timeSource
- enums:
- OTASoftwareUpdateProvider:
- - StatusEnum
- - ApplyUpdateActionEnum
- - DownloadProtocolEnum
- OTASoftwareUpdateRequestor:
- - AnnouncementReasonEnum
- - UpdateStateEnum
- - ChangeReasonEnum
- enum values:
- OTASoftwareUpdateProvider:
- StatusEnum:
- - UpdateAvailable
- - Busy
- - NotAvailable
- - DownloadProtocolNotSupported
- ApplyUpdateActionEnum:
- - Proceed
- - AwaitNextAction
- - Discontinue
- DownloadProtocolEnum:
- - BDXSynchronous
- - BDXAsynchronous
- - HTTPS
- - VendorSpecific
- OTASoftwareUpdateRequestor:
- AnnouncementReasonEnum:
- - SimpleAnnouncement
- - UpdateAvailable
- - UrgentUpdateAvailable
- UpdateStateEnum:
- - Unknown
- - Idle
- - Querying
- - DelayedOnQuery
- - Downloading
- - Applying
- - DelayedOnApply
- - RollingBack
- - DelayedOnUserConsent
- ChangeReasonEnum:
- - Unknown
- - Success
- - Failure
- - TimeOut
- - DelayByProvider
- OnOff:
- DelayedAllOffEffectVariantEnum:
- - DelayedOffFastFade
- - DelayedOffSlowFade
- DyingLightEffectVariantEnum:
- - DyingLightFadeOff
- StartUpOnOffEnum:
- - Toggle
- bitmaps:
- OnOff:
- - OnOffControlBitmap
- bitmap values:
- OnOff:
- Feature:
- - DeadFrontBehavior
- OnOffControlBitmap:
- - AcceptOnlyWhenOn
- deprecated:
- enums:
- OTASoftwareUpdateProvider:
- - OTAQueryStatus
- - OTAApplyUpdateAction
- - OTADownloadProtocol
- OTASoftwareUpdateRequestor:
- - OTAAnnouncementReason
- - OTAUpdateStateEnum
- - OTAChangeReasonEnum
- enum values:
- OnOff:
- DelayedAllOffEffectVariantEnum:
- - FadeToOffIn0p8Seconds
- - 50PercentDimDownIn0p8SecondsThenFadeToOffIn12Seconds
- DyingLightEffectVariantEnum:
- - 20PercenterDimUpIn0p5SecondsThenFadeToOffIn1Second
- StartUpOnOffEnum:
- - TogglePreviousOnOff
- bitmaps:
- OnOff:
- - OnOffControl
- bitmap values:
- OnOff:
- Feature:
- - DeadFront
- provisional:
- bitmaps:
- BarrierControl:
- - BarrierControlCapabilities
- - BarrierControlSafetyStatus
- BallastConfiguration:
- # The BallastConfiguration cluster is provisional for now, but not marked that way.
- - BallastStatusBitmap
- - LampAlarmModeBitmap
- attributes:
- GeneralDiagnostics:
- # Not in the spec yet.
- - AverageWearCount
- # New things, not quite finalized.
- renames:
- enums:
- OTASoftwareUpdateProvider:
- StatusEnum: OTAQueryStatus
- ApplyUpdateActionEnum: OTAApplyUpdateAction
- DownloadProtocolEnum: OTADownloadProtocol
- OTASoftwareUpdateRequestor:
- AnnouncementReasonEnum: OTAAnnouncementReason
- UpdateStateEnum: OTAUpdateStateEnum
- ChangeReasonEnum: OTAChangeReasonEnum
- enum values:
- OnOff:
- DelayedAllOffEffectVariantEnum:
- DelayedOffFastFade: FadeToOffIn0p8Seconds
- DelayedOffSlowFade: 50PercentDimDownIn0p8SecondsThenFadeToOffIn12Seconds
- DyingLightEffectVariantEnum:
- DyingLightFadeOff: 20PercenterDimUpIn0p5SecondsThenFadeToOffIn1Second
- StartUpOnOffEnum:
- Toggle: TogglePreviousOnOff
- bitmaps:
- OnOff:
- OnOffControlBitmap: OnOffControl
- bitmap values:
- OnOff:
- Feature:
- DeadFrontBehavior: DeadFront
-
-- release: "Early 2024"
- versions:
- iOS: "17.4"
- macOS: "14.4"
- watchOS: "10.4"
- tvOS: "17.4"
- introduced:
- clusters:
- - RVCRunMode
- - RVCCleanMode
- - RVCOperationalState
- - OperationalState
- attributes:
- RVCRunMode:
- - SupportedModes
- - CurrentMode
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- RVCCleanMode:
- - SupportedModes
- - CurrentMode
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- RVCOperationalState:
- - PhaseList
- - CurrentPhase
- - CountdownTime
- - OperationalStateList
- - OperationalState
- - OperationalError
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- OperationalState:
- - PhaseList
- - CurrentPhase
- - CountdownTime
- - OperationalStateList
- - OperationalState
- - OperationalError
- - GeneratedCommandList
- - AcceptedCommandList
- - AttributeList
- - FeatureMap
- - ClusterRevision
- PowerSource:
- - EndpointList
- commands:
- RVCRunMode:
- - ChangeToMode
- - ChangeToModeResponse
- RVCCleanMode:
- - ChangeToMode
- - ChangeToModeResponse
- RVCOperationalState:
- - Pause
- - Resume
- - OperationalCommandResponse
- OperationalState:
- - Start
- - Stop
- - Pause
- - Resume
- - OperationalCommandResponse
- command fields:
- RVCRunMode:
- ChangeToMode:
- - newMode
- ChangeToModeResponse:
- - status
- - statusText
- RVCCleanMode:
- ChangeToMode:
- - newMode
- ChangeToModeResponse:
- - status
- - statusText
- RVCOperationalState:
- OperationalCommandResponse:
- - commandResponseState
- OperationalState:
- OperationalCommandResponse:
- - commandResponseState
- structs:
- RVCOperationalState:
- - OperationalStateStruct
- - ErrorStateStruct
- RVCRunMode:
- - ModeTagStruct
- - ModeOptionStruct
- RVCCleanMode:
- - ModeTagStruct
- - ModeOptionStruct
- OperationalState:
- - OperationalStateStruct
- - ErrorStateStruct
- Thermostat:
- - WeeklyScheduleTransitionStruct
- struct fields:
- RVCOperationalState:
- OperationalStateStruct:
- - operationalStateID
- - operationalStateLabel
- ErrorStateStruct:
- - errorStateID
- - errorStateLabel
- - errorStateDetails
- RVCRunMode:
- ModeTagStruct:
- - mfgCode
- - value
- ModeOptionStruct:
- - label
- - mode
- - modeTags
- RVCCleanMode:
- ModeTagStruct:
- - mfgCode
- - value
- ModeOptionStruct:
- - label
- - mode
- - modeTags
- OperationalState:
- OperationalStateStruct:
- - operationalStateID
- - operationalStateLabel
- ErrorStateStruct:
- - errorStateID
- - errorStateLabel
- - errorStateDetails
- Thermostat:
- WeeklyScheduleTransitionStruct:
- - transitionTime
- - heatSetpoint
- - coolSetpoint
- events:
- RVCOperationalState:
- - OperationalError
- - OperationCompletion
- OperationalState:
- - OperationalError
- - OperationCompletion
- event fields:
- WiFiNetworkDiagnostics:
- AssociationFailure:
- - associationFailureCause
- RVCOperationalState:
- OperationalError:
- - errorState
- OperationCompletion:
- - completionErrorCode
- - totalOperationalTime
- - pausedTime
- OperationalState:
- OperationalError:
- - errorState
- OperationCompletion:
- - completionErrorCode
- - totalOperationalTime
- - pausedTime
- enums:
- ContentLauncher:
- - StatusEnum
- KeypadInput:
- - CECKeyCodeEnum
- ThermostatUserInterfaceConfiguration:
- - KeypadLockoutEnum
- - ScheduleProgrammingVisibilityEnum
- - TemperatureDisplayModeEnum
- RVCOperationalState:
- - OperationalStateEnum
- - ErrorStateEnum
- RVCRunMode:
- - ModeTag
- - StatusCode
- RVCCleanMode:
- - ModeTag
- - StatusCode
- OperationalState:
- - OperationalStateEnum
- - ErrorStateEnum
- Thermostat:
- - ControlSequenceOfOperationEnum
- - SetpointRaiseLowerModeEnum
- enum values:
- ContentLauncher:
- StatusEnum:
- - Success
- - URLNotAvailable
- - AuthFailed
- FanControl:
- FanModeSequenceEnum:
- - OffHighAuto
- - OffHigh
- KeypadInput:
- CECKeyCodeEnum:
- - Select
- - Up
- - Down
- - Left
- - Right
- - RightUp
- - RightDown
- - LeftUp
- - LeftDown
- - RootMenu
- - SetupMenu
- - ContentsMenu
- - FavoriteMenu
- - Exit
- - MediaTopMenu
- - MediaContextSensitiveMenu
- - NumberEntryMode
- - Number11
- - Number12
- - Number0OrNumber10
- - Numbers1
- - Numbers2
- - Numbers3
- - Numbers4
- - Numbers5
- - Numbers6
- - Numbers7
- - Numbers8
- - Numbers9
- - Dot
- - Enter
- - Clear
- - NextFavorite
- - ChannelUp
- - ChannelDown
- - PreviousChannel
- - SoundSelect
- - InputSelect
- - DisplayInformation
- - Help
- - PageUp
- - PageDown
- - Power
- - VolumeUp
- - VolumeDown
- - Mute
- - Play
- - Stop
- - Pause
- - Record
- - Rewind
- - FastForward
- - Eject
- - Forward
- - Backward
- - StopRecord
- - PauseRecord
- - Reserved
- - Angle
- - SubPicture
- - VideoOnDemand
- - ElectronicProgramGuide
- - TimerProgramming
- - InitialConfiguration
- - SelectBroadcastType
- - SelectSoundPresentation
- - PlayFunction
- - PausePlayFunction
- - RecordFunction
- - PauseRecordFunction
- - StopFunction
- - MuteFunction
- - RestoreVolumeFunction
- - TuneFunction
- - SelectMediaFunction
- - SelectAvInputFunction
- - SelectAudioInputFunction
- - PowerToggleFunction
- - PowerOffFunction
- - PowerOnFunction
- - F1Blue
- - F2Red
- - F3Green
- - F4Yellow
- - F5
- - Data
- ThermostatUserInterfaceConfiguration:
- KeypadLockoutEnum:
- - NoLockout
- - Lockout1
- - Lockout2
- - Lockout3
- - Lockout4
- - Lockout5
- ScheduleProgrammingVisibilityEnum:
- - ScheduleProgrammingPermitted
- - ScheduleProgrammingDenied
- TemperatureDisplayModeEnum:
- - Celsius
- - Fahrenheit
- RVCOperationalState:
- OperationalStateEnum:
- - SeekingCharger
- - Charging
- - Docked
- ErrorStateEnum:
- - FailedToFindChargingDock
- - Stuck
- - DustBinMissing
- - DustBinFull
- - WaterTankEmpty
- - WaterTankMissing
- - WaterTankLidOpen
- - MopCleaningPadMissing
- RVCRunMode:
- ModeTag:
- - Idle
- - Cleaning
- StatusCode:
- - Stuck
- - DustBinMissing
- - DustBinFull
- - WaterTankEmpty
- - WaterTankMissing
- - WaterTankLidOpen
- - MopCleaningPadMissing
- - BatteryLow
- RVCCleanMode:
- ModeTag:
- - DeepClean
- - Vacuum
- - Mop
- StatusCode:
- - CleaningInProgress
- OperationalState:
- OperationalStateEnum:
- - Stopped
- - Running
- - Paused
- - Error
- ErrorStateEnum:
- - NoError
- - UnableToStartOrResume
- - UnableToCompleteOperation
- - CommandInvalidInState
- Thermostat:
- ControlSequenceOfOperationEnum:
- - CoolingOnly
- - CoolingWithReheat
- - HeatingOnly
- - HeatingWithReheat
- - CoolingAndHeating
- - CoolingAndHeatingWithReheat
- SetpointRaiseLowerModeEnum:
- - Heat
- - Cool
- - Both
- bitmaps:
- Scenes:
- - CopyModeBitmap
- AdministratorCommissioning:
- - Feature
- ContentLauncher:
- - SupportedProtocolsBitmap
- LevelControl:
- - OptionsBitmap
- RVCRunMode:
- - Feature
- RVCCleanMode:
- - Feature
- Thermostat:
- - ScheduleDayOfWeekBitmap
- - ScheduleModeBitmap
- bitmap values:
- PumpConfigurationAndControl:
- PumpStatusBitmap:
- - SupplyFault
- Scenes:
- CopyModeBitmap:
- - CopyAllScenes
- SoftwareDiagnostics:
- Feature:
- - Watermarks
- AdministratorCommissioning:
- Feature:
- - Basic
- ContentLauncher:
- SupportedProtocolsBitmap:
- - DASH
- - HLS
- LevelControl:
- OptionsBitmap:
- - ExecuteIfOff
- - CoupleColorTempToLevel
- Thermostat:
- ScheduleDayOfWeekBitmap:
- - Sunday
- - Monday
- - Tuesday
- - Wednesday
- - Thursday
- - Friday
- - Saturday
- - Away
- ScheduleModeBitmap:
- - HeatSetpointPresent
- - CoolSetpointPresent
- deprecated:
- structs:
- Thermostat:
- - ThermostatScheduleTransition
- event fields:
- WiFiNetworkDiagnostics:
- AssociationFailure:
- - associationFailure
- enums:
- ContentLauncher:
- - ContentLaunchStatusEnum
- KeypadInput:
- - CecKeyCode
- Thermostat:
- - ThermostatControlSequence
- - SetpointAdjustMode
- enum values:
- FanControl:
- FanModeSequenceEnum:
- - OffOnAuto
- - OffOn
- bitmaps:
- Scenes:
- - ScenesCopyMode
- ContentLauncher:
- - SupportedStreamingProtocol
- LevelControl:
- - LevelControlOptions
- Thermostat:
- - DayOfWeek
- - ModeForSequence
- bitmap values:
- PumpConfigurationAndControl:
- PumpStatusBitmap:
- - Supplyfault
- SoftwareDiagnostics:
- Feature:
- - WaterMarks
- provisional:
- clusters:
- # Targeting Spring 2024 Matter release
- - MicrowaveOvenControl
- - MicrowaveOvenMode
- - DemandResponseLoadControl
- - BooleanStateConfiguration
- - ValveConfigurationAndControl
- - Timer
- - OvenMode
- - LaundryDryerControls
- - EnergyEVSE
- - OvenCavityOperationalState
- - ContentControl
- - ContentAppObserver
- - DeviceEnergyManagement
- - ElectricalEnergyMeasurement
- - EnergyPreference
- - ScenesManagement
- attributes:
- NetworkCommissioning:
- # Targeting Spring 2024 Matter release
- - SupportedWiFiBands
- - SupportedThreadFeatures
- - ThreadVersion
- WakeOnLAN:
- # Targeting Spring 2024 Matter release
- - LinkLocalAddress
- BasicInformation:
- # Targeting Spring 2024 Matter release
- - SpecificationVersion
- - MaxPathsPerInvoke
- Scenes:
- # Targeting Spring 2024 Matter release
- - FabricSceneInfo
- MediaPlayback:
- # Targeting Spring 2024 Matter release
- - ActiveAudioTrack
- - AvailableAudioTracks
- - ActiveTextTrack
- - AvailableTextTracks
- commands:
- GeneralDiagnostics:
- # Targeting Spring 2024 Matter release
- - TimeSnapshot
- - TimeSnapshotResponse
- NetworkCommissioning:
- # Targeting Spring 2024 Matter release
- - QueryIdentity
- - QueryIdentityResponse
- Channel:
- # Targeting Spring 2024 Matter release
- - GetProgramGuide
- - ProgramGuideResponse
- - RecordProgram
- - CancelRecordProgram
- MediaPlayback:
- # Targeting Spring 2024 Matter release
- - ActivateAudioTrack
- - ActivateTextTrack
- - DeactivateTextTrack
- UnitTesting:
- # Ideally none of UnitTesting would be exposed as public API, but
- # for now just start doing that for new additions to it.
- - TestBatchHelperResponse
- - TestBatchHelperRequest
- - TestSecondBatchHelperRequest
- command fields:
- NetworkCommissioning:
- # Targeting Spring 2024 Matter release
- AddOrUpdateWiFiNetwork:
- - networkIdentity
- - clientIdentifier
- - possessionNonce
- NetworkConfigResponse:
- - clientIdentity
- - possessionSignature
- QueryIdentity:
- - keyIdentifier
- - possessionNonce
- QueryIdentityResponse:
- - identity
- - possessionSignature
- MediaPlayback:
- # Targeting Spring 2024 Matter release
- Rewind:
- - audioAdvanceUnmuted
- FastForward:
- - audioAdvanceUnmuted
- ContentLauncher:
- # Targeting Spring 2024 Matter release
- LaunchContent:
- - playbackPreferences
- - useCurrentContext
- AccountLogin:
- # Targeting Spring 2024 Matter release
- Login:
- - node
- Logout:
- - node
- structs:
- Scenes:
- # Targeting Spring 2024 Matter release
- - SceneInfoStruct
- Channel:
- # Targeting Spring 2024 Matter release
- - ProgramStruct
- - SeriesInfoStruct
- - ProgramCategoryStruct
- - ProgramCastStruct
- - PageTokenStruct
- - ChannelPagingStruct
- - AdditionalInfoStruct
- MediaPlayback:
- # Targeting Spring 2024 Matter release
- - TrackStruct
- - TrackAttributesStruct
- ContentLauncher:
- # Targeting Spring 2024 Matter release
- - PlaybackPreferencesStruct
- - TrackPreferenceStruct
- struct fields:
- NetworkCommissioning:
- # Targeting Spring 2024 Matter release
- NetworkInfoStruct:
- - networkIdentifier
- - clientIdentifier
- Channel:
- # Targeting Spring 2024 Matter release
- ChannelInfoStruct:
- - identifier
- - type
- events:
- MediaPlayback:
- # Targeting Spring 2024 Matter release
- - StateChanged
- AccountLogin:
- # Targeting Spring 2024 Matter release
- - LoggedOut
- TargetNavigator:
- # Targeting Spring 2024 Matter release
- - TargetUpdated
- enums:
- Thermostat:
- # Targeting Spring 2024 Matter release
- - StartOfWeekEnum
- - TemperatureSetpointHoldEnum
- - ACCapacityFormatEnum
- - ACCompressorTypeEnum
- - ACLouverPositionEnum
- - ACRefrigerantTypeEnum
- - ACTypeEnum
- - SetpointChangeSourceEnum
- Channel:
- # Targeting Spring 2024 Matter release
- - ChannelTypeEnum
- MediaPlayback:
- # Targeting Spring 2024 Matter release
- - CharacteristicEnum
- ContentLauncher:
- # Targeting Spring 2024 Matter release
- - CharacteristicEnum
- enum values:
- ContentLauncher:
- # Targeting Spring 2024 Matter release
- ParameterEnum:
- - Season
- - Episode
- - Any
- StatusEnum:
- - TextTrackNotAvailable
- - AudioTrackNotAvailable
- TimeFormatLocalization:
- CalendarTypeEnum:
- - UseActiveLocale
- HourFormatEnum:
- - UseActiveLocale
- bitmaps:
- NetworkCommissioning:
- # Targeting Spring 2024 Matter release
- - ThreadCapabilitiesBitmap
- Scenes:
- # Targeting Spring 2024 Matter release
- - NameSupportBitmap
- Thermostat:
- # Targeting Spring 2024 Matter release
- - ACErrorCodeBitmap
- - HVACSystemTypeBitmap
- - ProgrammingOperationModeBitmap
- - RelayStateBitmap
- - RemoteSensingBitmap
- Channel:
- # Targeting Spring 2024 Matter release
- - RecordingFlagBitmap
- bitmap values:
- OnOff:
- Feature:
- # Targeting Spring 2024 Matter release
- - OffOnly
- NetworkCommissioning:
- # Targeting Spring 2024 Matter release
- Feature:
- - PerDeviceCredentials
- WiFiSecurityBitmap:
- - WPA3MatterPDC
- Channel:
- # Targeting Spring 2024 Matter release
- Feature:
- - ElectronicGuide
- - RecordProgram
- MediaPlayback:
- # Targeting Spring 2024 Matter release
- Feature:
- - TextTracks
- - AudioTracks
- - AudioAdvance
- ContentLauncher:
- # Targeting Spring 2024 Matter release
- SupportedProtocolsBitmap:
- - WebRTC
- Feature:
- - AdvancedSeek
- - TextTracks
- - AudioTracks
- renames:
- structs:
- Thermostat:
- WeeklyScheduleTransitionStruct: ThermostatScheduleTransition
- event fields:
- WiFiNetworkDiagnostics:
- AssociationFailure:
- associationFailureCause: associationFailure
- enums:
- ContentLauncher:
- StatusEnum: ContentLaunchStatusEnum
- KeypadInput:
- CECKeyCodeEnum: CecKeyCode
- Thermostat:
- ControlSequenceOfOperationEnum: ThermostatControlSequence
- SetpointRaiseLowerModeEnum: SetpointAdjustMode
- enum values:
- ContentLauncher:
- # The URLNotAvailable value got renamed at the same time
- # as the enum. Record the rename here so that the old
- # value name is generated for the old enum name.
- ContentLaunchStatusEnum:
- URLNotAvailable: UrlNotAvailable
- FanControl:
- FanModeSequenceEnum:
- OffHighAuto: OffOnAuto
- OffHigh: OffOn
- # FanModeSequenceType is the old name of
- # FanModeSequenceEnum; we need this rename annotation
- # here so we don't lose the old values under that old
- # name.
- FanModeSequenceType:
- OffHighAuto: OffOnAuto
- OffHigh: OffOn
- bitmaps:
- Scenes:
- CopyModeBitmap: ScenesCopyMode
- ContentLauncher:
- SupportedProtocolsBitmap: SupportedStreamingProtocol
- LevelControl:
- OptionsBitmap: LevelControlOptions
- Thermostat:
- ScheduleDayOfWeekBitmap: DayOfWeek
- ScheduleModeBitmap: ModeForSequence
- bitmap values:
- PumpConfigurationAndControl:
- PumpStatusBitmap:
- SupplyFault: Supplyfault
- SoftwareDiagnostics:
- Feature:
- Watermarks: WaterMarks
- removed:
- clusters:
- # Should never have been exposed in the shape it was in, and now is
- # getting renamed and getting a new cluster id, so just removing it
- # seems like the most sensible thing.
- - Scenes
- enum values:
- ContentLauncher:
- # The URLNotAvailable value got renamed at the same time
- # as the enum. The old enum name never had the new value name.
- ContentLaunchStatusEnum:
- - URLNotAvailable
-
-- release: "Future"
- versions: "future"
- provisional:
- clusters:
- # Targeting Spring 2024 Matter release
- - EnergyEVSEMode
- - DeviceEnergyManagementMode
- - Messages
- attributes:
- DoorLock:
- # Aliro is not ready yet.
- - AliroReaderVerificationKey
- - AliroReaderGroupIdentifier
- - AliroReaderGroupSubIdentifier
- - AliroExpeditedTransactionSupportedProtocolVersions
- - AliroGroupResolvingKey
- - AliroSupportedBLEUWBProtocolVersions
- - AliroBLEAdvertisingVersion
- - NumberOfAliroCredentialIssuerKeysSupported
- - NumberOfAliroEndpointKeysSupported
- ICDManagement:
- # Targeting Spring 2024 Matter release
- - OperatingMode
- Thermostat:
- # Targeting Spring 2024 Matter release
- - PresetTypes
- - ScheduleTypes
- - NumberOfPresets
- - NumberOfSchedules
- - NumberOfScheduleTransitions
- - NumberOfScheduleTransitionPerDay
- - ActivePresetHandle
- - Presets
- - Schedules
- - PresetsSchedulesEditable
- - TemperatureSetpointHoldPolicy
- - SetpointHoldExpiryTimestamp
- - QueuedPreset
- - ActiveScheduleHandle
- UnitTesting:
- # Ideally none of UnitTesting would be exposed as public API, but
- # for now just start doing that for new additions to it.
- - MeiInt8u
- commands:
- DoorLock:
- # Aliro is not ready yet.
- - SetAliroReaderConfig
- - ClearAliroReaderConfig
- Thermostat:
- # Targeting Spring 2024 Matter release
- - SetActiveScheduleRequest
- - SetActivePresetRequest
- - StartPresetsSchedulesEditRequest
- - CancelPresetsSchedulesEditRequest
- - CommitPresetsSchedulesRequest
- - CancelSetActivePresetRequest
- - SetTemperatureSetpointHoldPolicy
- RVCOperationalState:
- # Targeting Spring 2024 Matter release
- - GoHome
- UnitTesting:
- # Ideally none of UnitTesting would be exposed as public API, but
- # for now just start doing that for new additions to it.
- - TestDifferentVendorMeiRequest
- - TestDifferentVendorMeiResponse
- structs:
- Thermostat:
- # Targeting Spring 2024 Matter release
- - ScheduleTransitionStruct
- - ScheduleStruct
- - PresetStruct
- - PresetTypeStruct
- - ScheduleTypeStruct
- - QueuedPresetStruct
- events:
- UnitTesting:
- # Ideally none of UnitTesting would be exposed as public API, but
- # for now just start doing that for new additions to it.
- - TestDifferentVendorMeiEvent
- enums:
- Thermostat:
- # Targeting Spring 2024 Matter release
- - PresetScenarioEnum
- enum values:
- DoorLock:
- CredentialTypeEnum:
- # Aliro is not ready yet.
- - AliroCredentialIssuerKey
- - AliroEvictableEndpointKey
- - AliroNonEvictableEndpointKey
- LockDataTypeEnum:
- # Aliro is not ready yet.
- - AliroCredentialIssuerKey
- - AliroEvictableEndpointKey
- - AliroNonEvictableEndpointKey
- OperationSourceEnum:
- # Aliro is not ready yet.
- - Aliro
- RVCRunMode:
- ModeTag:
- # Targeting Spring 2024 Matter release
- - Mapping
- bitmaps:
- Thermostat:
- # Targeting Spring 2024 Matter release
- - PresetTypeFeaturesBitmap
- - ScheduleTypeFeaturesBitmap
- - TemperatureSetpointHoldPolicyBitmap
- bitmap values:
- DoorLock:
- Feature:
- # Aliro is not ready yet.
- - AliroProvisioning
- - AliroBLEUWB
- Thermostat:
- Feature:
- # Targeting Spring 2024 Matter release
- - QueuedPresetsSupported
- - Setpoints
- - Presets
- - MatterScheduleConfiguration
diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/config-data.yaml b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/config-data.yaml
index b45974c..3db5f64 100644
--- a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/config-data.yaml
+++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/config-data.yaml
@@ -30,7 +30,3 @@
- On/Off
- Target Navigator
- Wake on LAN
-
-# The commands currently implemented for Matter Casting in MCCommandObjects.h/mm. We will ZAP generate this file in the next PR.
-MatterCastingImplementedCommands:
- - LaunchURL
diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/partials/command_response_type.zapt b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/partials/command_response_type.zapt
new file mode 100644
index 0000000..25f7b42
--- /dev/null
+++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/partials/command_response_type.zapt
@@ -0,0 +1,5 @@
+{{#if command.hasSpecificResponse}}
+MC{{asUpperCamelCase command.parent.name preserveAcronyms=true}}Cluster{{asUpperCamelCase command.responseName preserveAcronyms=true}}Params
+{{else}}
+MCNullObjectType
+{{/if}}
\ No newline at end of file
diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/partials/decode_value.zapt b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/partials/decode_value.zapt
index 2900ce0..36cc8a9 100644
--- a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/partials/decode_value.zapt
+++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/partials/decode_value.zapt
@@ -30,9 +30,7 @@
{{#if_is_struct type}}
{{target}} = [{{asObjectiveCClass type cluster forceNotList=true structTypePrefix="MC"}} new];
{{#zcl_struct_items_by_struct_and_cluster_name type cluster}}
- {{#if (isSupported (asUpperCamelCase ../cluster preserveAcronyms=true) struct=(asUpperCamelCase ../type preserveAcronyms=true) structField=(asStructPropertyName label))}}
{{>decode_value target=(concat ../target "." (asStructPropertyName label)) source=(concat ../source "." (asLowerCamelCase label)) cluster=../cluster errorCode=../errorCode depth=(incrementDepth ../depth) }}
- {{/if}}
{{/zcl_struct_items_by_struct_and_cluster_name}}
{{else}}
{{#if_is_strongly_typed_chip_enum type}}
diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/partials/encode_value.zapt b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/partials/encode_value.zapt
new file mode 100644
index 0000000..6ee95bf
--- /dev/null
+++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/partials/encode_value.zapt
@@ -0,0 +1,62 @@
+{{#if isOptional}}
+ if ({{source}} != nil) {
+ auto & definedValue_{{depth}} = {{target}}.Emplace();
+ {{>encode_value target=(concat "definedValue_" depth) source=source cluster=cluster errorCode=errorCode depth=(incrementDepth depth) isOptional=false}}
+ }
+{{else if isNullable}}
+ if ({{source}} == nil) {
+ {{target}}.SetNull();
+ } else {
+ auto & nonNullValue_{{depth}} = {{target}}.SetNonNull();
+ {{>encode_value target=(concat "nonNullValue_" depth) source=source cluster=cluster errorCode=errorCode depth=(incrementDepth depth) isNullable=false}}
+ }
+{{else if isArray}}
+ {{! TODO: This is not great, with its fallible allocation and
+ whatnot. Maybe we should just switch to encoding our ObjC types
+ directly to TLV... We need the listFreer thing because we want
+ our allocation to live long enough, and if it's scoped to where
+ we are right now it may not (e.g. for a nullable list we're
+ inside an "else" block here). }}
+ {
+ using ListType_{{depth}} = std::remove_reference_t<decltype({{target}})>;
+ using ListMemberType_{{depth}} = ListMemberTypeGetter<ListType_{{depth}}>::Type;
+ if ({{source}}.count != 0) {
+ auto * listHolder_{{depth}} = new ListHolder<ListMemberType_{{depth}}>({{source}}.count);
+ if (listHolder_{{depth}} == nullptr || listHolder_{{depth}}->mList == nullptr) {
+ {{errorCode}}
+ }
+ listFreer.add(listHolder_{{depth}});
+ for (size_t i_{{depth}} = 0; i_{{depth}} < {{source}}.count; ++i_{{depth}}) {
+ if ( ! [{{source}}[i_{{depth}}] isKindOfClass: [{{asObjectiveCClass type cluster forceNotList=true structTypePrefix="MC"}} class]] ) {
+ // Wrong kind of value.
+ {{errorCode}}
+ }
+ auto element_{{depth}} = ({{asObjectiveCClass type cluster forceNotList=true structTypePrefix="MC"}} *){{source}}[i_{{depth}}];
+ {{>encode_value target=(concat "listHolder_" depth "->mList[i_" depth "]") source=(concat "element_" depth) cluster=cluster errorCode=errorCode depth=(incrementDepth depth) isArray=false}}
+ }
+ {{target}} = ListType_{{depth}}(listHolder_{{depth}}->mList, {{source}}.count);
+ } else {
+ {{target}} = ListType_{{depth}}();
+ }
+ }
+{{else if (isOctetString type)}}
+ {{target}} = AsByteSpan({{source}});
+{{else if (isCharString type)}}
+ {{target}} = AsCharSpan({{source}});
+{{else}}
+ {{#if_is_struct type}}
+ {{#zcl_struct_items_by_struct_and_cluster_name type cluster}}
+ {{>encode_value target=(concat ../target "." (asLowerCamelCase label)) source=(concat ../source "." (asStructPropertyName label)) cluster=../cluster errorCode=../errorCode depth=(incrementDepth ../depth)}}
+ {{/zcl_struct_items_by_struct_and_cluster_name}}
+ {{else}}
+ {{#if_is_strongly_typed_chip_enum type}}
+ {{target}} = static_cast<std::remove_reference_t<decltype({{target}})>>({{source}}.{{asObjectiveCNumberType source type true}}Value);
+ {{else}}
+ {{#if_is_strongly_typed_bitmap type}}
+ {{target}} = static_cast<std::remove_reference_t<decltype({{target}})>>({{source}}.{{asObjectiveCNumberType source type true}}Value);
+ {{else}}
+ {{target}} = {{source}}.{{asObjectiveCNumberType source type true}}Value;
+ {{/if_is_strongly_typed_bitmap}}
+ {{/if_is_strongly_typed_chip_enum}}
+ {{/if_is_struct}}
+{{/if}}
diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/partials/init_struct_member.zapt b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/partials/init_struct_member.zapt
new file mode 100644
index 0000000..001cac7
--- /dev/null
+++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/partials/init_struct_member.zapt
@@ -0,0 +1,19 @@
+{{#*inline "memberName"}}_{{asStructPropertyName label}}{{/inline}}
+{{#if isOptional}}
+{{>memberName}} = nil;
+{{else if isNullable}}
+{{>memberName}} = nil;
+{{else if isArray}}
+ {{>memberName}} = [NSArray array];
+{{else if (isOctetString type)}}
+ {{>memberName}} = [NSData data];
+{{else if (isCharString type)}}
+ {{>memberName}} = @"";
+{{else}}
+ {{! Our memberName inline partial won't work inside the async if_is_struct }}
+ {{#if_is_struct type}}
+ _{{asStructPropertyName label}} = [{{asObjectiveCClass type cluster structTypePrefix="MC"}} new];
+ {{else}}
+ _{{asStructPropertyName label}} = @(0);
+ {{/if_is_struct}}
+{{/if}}
\ No newline at end of file
diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/partials/renamed_struct_field_impl.zapt b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/partials/renamed_struct_field_impl.zapt
new file mode 100644
index 0000000..0b2650a
--- /dev/null
+++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/partials/renamed_struct_field_impl.zapt
@@ -0,0 +1,9 @@
+- (void)set{{asUpperCamelCase oldName}}:({{asObjectiveCType type cluster structTypePrefix="MC"}}){{asStructPropertyName oldName}}
+{
+ self.{{asStructPropertyName newName}} = {{asStructPropertyName oldName}};
+}
+
+- ({{asObjectiveCType type cluster structTypePrefix="MC"}}){{asGetterName oldName}}
+{
+ return self.{{asStructPropertyName newName}};
+}
diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/partials/struct_field_decl.zapt b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/partials/struct_field_decl.zapt
new file mode 100644
index 0000000..19fa66c
--- /dev/null
+++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/partials/struct_field_decl.zapt
@@ -0,0 +1,3 @@
+{{! Override the getter name because some of our properties start with things
+ like "new" or "init" }}
+@property (nonatomic, copy{{#unless (isStrEqual (asGetterName label) (asStructPropertyName label))}}, getter={{asGetterName label}}{{/unless}}) {{asObjectiveCType type cluster structTypePrefix="MC"}} {{asStructPropertyName label}} {{! Caller provides availability~}}
diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/templates.json b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/templates.json
index 881ac38..5eedab0 100644
--- a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/templates.json
+++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/templates/templates.json
@@ -1,5 +1,5 @@
{
- "name": "Framework templates",
+ "name": "tv-casting-app darwin templates",
"version": "chip-v1",
"helpers": [
"partials/helper.js",
@@ -11,7 +11,6 @@
"darwin/Framework/CHIP/templates/helper.js"
],
"resources": {
- "availability-data": "availability.yaml",
"config-data": "config-data.yaml"
},
"override": "../../../../../../src/app/zap-templates/common/override.js",
@@ -21,30 +20,70 @@
"path": "../../../../../../src/app/zap-templates/partials/header.zapt"
},
{
+ "name": "command_response_type",
+ "path": "partials/command_response_type.zapt"
+ },
+ {
"name": "decode_value",
"path": "partials/decode_value.zapt"
+ },
+ {
+ "name": "encode_value",
+ "path": "partials/encode_value.zapt"
+ },
+ {
+ "name": "init_struct_member",
+ "path": "partials/init_struct_member.zapt"
+ },
+ {
+ "name": "renamed_struct_field_impl",
+ "path": "partials/renamed_struct_field_impl.zapt"
+ },
+ {
+ "name": "struct_field_decl",
+ "path": "partials/struct_field_decl.zapt"
}
],
"templates": [
{
"path": "MCAttributeObjects.zapt",
- "name": "Objc ZCL asynchronous API Internal Header",
+ "name": "Objc MC attribute objects header",
"output": "examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCAttributeObjects.h"
},
{
"path": "MCAttributeObjects-src.zapt",
- "name": "Objc ZCL asynchronous API Internal Header",
+ "name": "Objc MC attribute objects",
"output": "examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCAttributeObjects.mm"
},
{
"path": "MCClusterObjects.zapt",
- "name": "Objc ZCL asynchronous API Internal Header",
+ "name": "Objc MC cluster objects header",
"output": "examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCClusterObjects.h"
},
{
"path": "MCClusterObjects-src.zapt",
- "name": "Objc ZCL asynchronous API Internal Header",
+ "name": "Objc MC cluster objects",
"output": "examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCClusterObjects.mm"
+ },
+ {
+ "path": "MCCommandObjects.zapt",
+ "name": "Objc MC command objects header",
+ "output": "examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCCommandObjects.h"
+ },
+ {
+ "path": "MCCommandObjects-src.zapt",
+ "name": "Objc MC command objects",
+ "output": "examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCCommandObjects.mm"
+ },
+ {
+ "path": "MCCommandPayloads.zapt",
+ "name": "Objc reflections of MC command payloads header",
+ "output": "examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCCommandPayloads.h"
+ },
+ {
+ "path": "MCCommandPayloads-src.zapt",
+ "name": "Objc reflections of MC command payloads",
+ "output": "examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCCommandPayloads.mm"
}
]
}
diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCAttributeObjects.h b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCAttributeObjects.h
index 81184fe..d11580a 100644
--- a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCAttributeObjects.h
+++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCAttributeObjects.h
@@ -17,7 +17,7 @@
// THIS FILE IS GENERATED BY ZAP
-#import "MCStructsObjc.h"
+#import "MCInteractionModelStructs.h"
#import "../MCAttribute.h"
#import <Foundation/Foundation.h>
diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCAttributeObjects.mm b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCAttributeObjects.mm
index e5191ee..fc563f5 100644
--- a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCAttributeObjects.mm
+++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCAttributeObjects.mm
@@ -68,7 +68,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::OnOff::Attributes::OnOff::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::OnOff::Attributes::OnOff::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::OnOff::Attributes::OnOff::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::OnOff::Attributes::OnOff::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithBool:_cppValue];
@@ -115,7 +114,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::OnOff::Attributes::GlobalSceneControl::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::OnOff::Attributes::GlobalSceneControl::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::OnOff::Attributes::GlobalSceneControl::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::OnOff::Attributes::GlobalSceneControl::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithBool:_cppValue];
@@ -162,7 +160,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::OnOff::Attributes::OnTime::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::OnOff::Attributes::OnTime::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::OnOff::Attributes::OnTime::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::OnOff::Attributes::OnTime::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithUnsignedShort:_cppValue];
@@ -209,7 +206,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::OnOff::Attributes::OffWaitTime::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::OnOff::Attributes::OffWaitTime::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::OnOff::Attributes::OffWaitTime::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::OnOff::Attributes::OffWaitTime::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithUnsignedShort:_cppValue];
@@ -256,7 +252,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::OnOff::Attributes::StartUpOnOff::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::OnOff::Attributes::StartUpOnOff::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::OnOff::Attributes::StartUpOnOff::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::OnOff::Attributes::StartUpOnOff::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nullable value;
if (_cppValue.IsNull()) {
@@ -307,7 +302,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::OnOff::Attributes::GeneratedCommandList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::OnOff::Attributes::GeneratedCommandList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::OnOff::Attributes::GeneratedCommandList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::OnOff::Attributes::GeneratedCommandList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -369,7 +363,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::OnOff::Attributes::AcceptedCommandList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::OnOff::Attributes::AcceptedCommandList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::OnOff::Attributes::AcceptedCommandList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::OnOff::Attributes::AcceptedCommandList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -431,7 +424,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::OnOff::Attributes::EventList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::OnOff::Attributes::EventList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::OnOff::Attributes::EventList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::OnOff::Attributes::EventList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -493,7 +485,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::OnOff::Attributes::AttributeList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::OnOff::Attributes::AttributeList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::OnOff::Attributes::AttributeList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::OnOff::Attributes::AttributeList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -555,7 +546,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::OnOff::Attributes::FeatureMap::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::OnOff::Attributes::FeatureMap::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::OnOff::Attributes::FeatureMap::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::OnOff::Attributes::FeatureMap::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithUnsignedInt:_cppValue];
@@ -602,7 +592,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::OnOff::Attributes::ClusterRevision::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::OnOff::Attributes::ClusterRevision::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::OnOff::Attributes::ClusterRevision::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::OnOff::Attributes::ClusterRevision::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithUnsignedShort:_cppValue];
@@ -651,7 +640,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::CurrentLevel::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::CurrentLevel::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::CurrentLevel::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::LevelControl::Attributes::CurrentLevel::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nullable value;
if (_cppValue.IsNull()) {
@@ -702,7 +690,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::RemainingTime::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::RemainingTime::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::RemainingTime::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::LevelControl::Attributes::RemainingTime::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithUnsignedShort:_cppValue];
@@ -749,7 +736,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::MinLevel::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::MinLevel::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::MinLevel::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::LevelControl::Attributes::MinLevel::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithUnsignedChar:_cppValue];
@@ -796,7 +782,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::MaxLevel::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::MaxLevel::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::MaxLevel::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::LevelControl::Attributes::MaxLevel::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithUnsignedChar:_cppValue];
@@ -843,7 +828,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::CurrentFrequency::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::CurrentFrequency::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::CurrentFrequency::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::LevelControl::Attributes::CurrentFrequency::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithUnsignedShort:_cppValue];
@@ -890,7 +874,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::MinFrequency::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::MinFrequency::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::MinFrequency::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::LevelControl::Attributes::MinFrequency::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithUnsignedShort:_cppValue];
@@ -937,7 +920,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::MaxFrequency::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::MaxFrequency::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::MaxFrequency::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::LevelControl::Attributes::MaxFrequency::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithUnsignedShort:_cppValue];
@@ -984,7 +966,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::Options::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::Options::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::Options::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::LevelControl::Attributes::Options::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithUnsignedChar:_cppValue.Raw()];
@@ -1031,7 +1012,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::OnOffTransitionTime::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::OnOffTransitionTime::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::OnOffTransitionTime::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::LevelControl::Attributes::OnOffTransitionTime::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithUnsignedShort:_cppValue];
@@ -1078,7 +1058,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::OnLevel::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::OnLevel::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::OnLevel::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::LevelControl::Attributes::OnLevel::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nullable value;
if (_cppValue.IsNull()) {
@@ -1129,7 +1108,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::OnTransitionTime::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::OnTransitionTime::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::OnTransitionTime::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::LevelControl::Attributes::OnTransitionTime::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nullable value;
if (_cppValue.IsNull()) {
@@ -1180,7 +1158,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::OffTransitionTime::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::OffTransitionTime::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::OffTransitionTime::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::LevelControl::Attributes::OffTransitionTime::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nullable value;
if (_cppValue.IsNull()) {
@@ -1231,7 +1208,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::DefaultMoveRate::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::DefaultMoveRate::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::DefaultMoveRate::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::LevelControl::Attributes::DefaultMoveRate::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nullable value;
if (_cppValue.IsNull()) {
@@ -1282,7 +1258,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::StartUpCurrentLevel::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::StartUpCurrentLevel::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::StartUpCurrentLevel::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::LevelControl::Attributes::StartUpCurrentLevel::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nullable value;
if (_cppValue.IsNull()) {
@@ -1333,7 +1308,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::GeneratedCommandList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::GeneratedCommandList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::GeneratedCommandList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::LevelControl::Attributes::GeneratedCommandList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -1395,7 +1369,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::AcceptedCommandList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::AcceptedCommandList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::AcceptedCommandList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::LevelControl::Attributes::AcceptedCommandList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -1457,7 +1430,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::EventList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::EventList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::EventList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::LevelControl::Attributes::EventList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -1519,7 +1491,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::AttributeList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::AttributeList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::AttributeList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::LevelControl::Attributes::AttributeList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -1581,7 +1552,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::FeatureMap::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::FeatureMap::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::FeatureMap::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::LevelControl::Attributes::FeatureMap::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithUnsignedInt:_cppValue];
@@ -1628,7 +1598,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::ClusterRevision::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::ClusterRevision::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::LevelControl::Attributes::ClusterRevision::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::LevelControl::Attributes::ClusterRevision::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithUnsignedShort:_cppValue];
@@ -1677,7 +1646,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::WakeOnLan::Attributes::MACAddress::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::WakeOnLan::Attributes::MACAddress::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::WakeOnLan::Attributes::MACAddress::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::WakeOnLan::Attributes::MACAddress::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSString * _Nonnull value;
value = AsString(_cppValue);
@@ -1729,7 +1697,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::WakeOnLan::Attributes::LinkLocalAddress::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::WakeOnLan::Attributes::LinkLocalAddress::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::WakeOnLan::Attributes::LinkLocalAddress::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::WakeOnLan::Attributes::LinkLocalAddress::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSData * _Nonnull value;
value = AsData(_cppValue);
@@ -1776,7 +1743,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::WakeOnLan::Attributes::GeneratedCommandList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::WakeOnLan::Attributes::GeneratedCommandList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::WakeOnLan::Attributes::GeneratedCommandList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::WakeOnLan::Attributes::GeneratedCommandList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -1838,7 +1804,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::WakeOnLan::Attributes::AcceptedCommandList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::WakeOnLan::Attributes::AcceptedCommandList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::WakeOnLan::Attributes::AcceptedCommandList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::WakeOnLan::Attributes::AcceptedCommandList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -1900,7 +1865,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::WakeOnLan::Attributes::EventList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::WakeOnLan::Attributes::EventList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::WakeOnLan::Attributes::EventList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::WakeOnLan::Attributes::EventList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -1962,7 +1926,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::WakeOnLan::Attributes::AttributeList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::WakeOnLan::Attributes::AttributeList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::WakeOnLan::Attributes::AttributeList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::WakeOnLan::Attributes::AttributeList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -2024,7 +1987,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::WakeOnLan::Attributes::FeatureMap::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::WakeOnLan::Attributes::FeatureMap::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::WakeOnLan::Attributes::FeatureMap::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::WakeOnLan::Attributes::FeatureMap::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithUnsignedInt:_cppValue];
@@ -2071,7 +2033,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::WakeOnLan::Attributes::ClusterRevision::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::WakeOnLan::Attributes::ClusterRevision::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::WakeOnLan::Attributes::ClusterRevision::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::WakeOnLan::Attributes::ClusterRevision::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithUnsignedShort:_cppValue];
@@ -2120,7 +2081,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::TargetNavigator::Attributes::TargetList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::TargetNavigator::Attributes::TargetList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::TargetNavigator::Attributes::TargetList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::TargetNavigator::Attributes::TargetList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -2189,7 +2149,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::TargetNavigator::Attributes::CurrentTarget::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::TargetNavigator::Attributes::CurrentTarget::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::TargetNavigator::Attributes::CurrentTarget::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::TargetNavigator::Attributes::CurrentTarget::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithUnsignedChar:_cppValue];
@@ -2236,7 +2195,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::TargetNavigator::Attributes::GeneratedCommandList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::TargetNavigator::Attributes::GeneratedCommandList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::TargetNavigator::Attributes::GeneratedCommandList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::TargetNavigator::Attributes::GeneratedCommandList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -2298,7 +2256,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::TargetNavigator::Attributes::AcceptedCommandList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::TargetNavigator::Attributes::AcceptedCommandList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::TargetNavigator::Attributes::AcceptedCommandList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::TargetNavigator::Attributes::AcceptedCommandList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -2360,7 +2317,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::TargetNavigator::Attributes::EventList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::TargetNavigator::Attributes::EventList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::TargetNavigator::Attributes::EventList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::TargetNavigator::Attributes::EventList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -2422,7 +2378,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::TargetNavigator::Attributes::AttributeList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::TargetNavigator::Attributes::AttributeList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::TargetNavigator::Attributes::AttributeList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::TargetNavigator::Attributes::AttributeList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -2484,7 +2439,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::TargetNavigator::Attributes::FeatureMap::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::TargetNavigator::Attributes::FeatureMap::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::TargetNavigator::Attributes::FeatureMap::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::TargetNavigator::Attributes::FeatureMap::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithUnsignedInt:_cppValue];
@@ -2531,7 +2485,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::TargetNavigator::Attributes::ClusterRevision::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::TargetNavigator::Attributes::ClusterRevision::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::TargetNavigator::Attributes::ClusterRevision::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::TargetNavigator::Attributes::ClusterRevision::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithUnsignedShort:_cppValue];
@@ -2580,7 +2533,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::CurrentState::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::CurrentState::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::CurrentState::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::MediaPlayback::Attributes::CurrentState::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithUnsignedChar:chip::to_underlying(_cppValue)];
@@ -2627,7 +2579,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::StartTime::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::StartTime::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::StartTime::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::MediaPlayback::Attributes::StartTime::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nullable value;
if (_cppValue.IsNull()) {
@@ -2678,7 +2629,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::Duration::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::Duration::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::Duration::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::MediaPlayback::Attributes::Duration::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nullable value;
if (_cppValue.IsNull()) {
@@ -2729,7 +2679,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::SampledPosition::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::SampledPosition::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::SampledPosition::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::MediaPlayback::Attributes::SampledPosition::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
MCMediaPlaybackClusterPlaybackPositionStruct * _Nullable value;
if (_cppValue.IsNull()) {
@@ -2786,7 +2735,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::PlaybackSpeed::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::PlaybackSpeed::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::PlaybackSpeed::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::MediaPlayback::Attributes::PlaybackSpeed::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithFloat:_cppValue];
@@ -2833,7 +2781,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::SeekRangeEnd::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::SeekRangeEnd::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::SeekRangeEnd::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::MediaPlayback::Attributes::SeekRangeEnd::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nullable value;
if (_cppValue.IsNull()) {
@@ -2884,7 +2831,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::SeekRangeStart::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::SeekRangeStart::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::SeekRangeStart::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::MediaPlayback::Attributes::SeekRangeStart::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nullable value;
if (_cppValue.IsNull()) {
@@ -2935,7 +2881,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::ActiveAudioTrack::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::ActiveAudioTrack::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::ActiveAudioTrack::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::MediaPlayback::Attributes::ActiveAudioTrack::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
MCMediaPlaybackClusterTrackStruct * _Nullable value;
if (_cppValue.IsNull()) {
@@ -3017,7 +2962,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::AvailableAudioTracks::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::AvailableAudioTracks::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::AvailableAudioTracks::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::MediaPlayback::Attributes::AvailableAudioTracks::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nullable value;
if (_cppValue.IsNull()) {
@@ -3114,7 +3058,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::ActiveTextTrack::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::ActiveTextTrack::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::ActiveTextTrack::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::MediaPlayback::Attributes::ActiveTextTrack::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
MCMediaPlaybackClusterTrackStruct * _Nullable value;
if (_cppValue.IsNull()) {
@@ -3196,7 +3139,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::AvailableTextTracks::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::AvailableTextTracks::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::AvailableTextTracks::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::MediaPlayback::Attributes::AvailableTextTracks::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nullable value;
if (_cppValue.IsNull()) {
@@ -3293,7 +3235,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::GeneratedCommandList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::GeneratedCommandList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::GeneratedCommandList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::MediaPlayback::Attributes::GeneratedCommandList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -3355,7 +3296,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::AcceptedCommandList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::AcceptedCommandList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::AcceptedCommandList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::MediaPlayback::Attributes::AcceptedCommandList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -3417,7 +3357,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::EventList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::EventList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::EventList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::MediaPlayback::Attributes::EventList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -3479,7 +3418,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::AttributeList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::AttributeList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::AttributeList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::MediaPlayback::Attributes::AttributeList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -3541,7 +3479,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::FeatureMap::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::FeatureMap::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::FeatureMap::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::MediaPlayback::Attributes::FeatureMap::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithUnsignedInt:_cppValue];
@@ -3588,7 +3525,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::ClusterRevision::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::ClusterRevision::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::MediaPlayback::Attributes::ClusterRevision::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::MediaPlayback::Attributes::ClusterRevision::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithUnsignedShort:_cppValue];
@@ -3637,7 +3573,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::KeypadInput::Attributes::GeneratedCommandList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::KeypadInput::Attributes::GeneratedCommandList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::KeypadInput::Attributes::GeneratedCommandList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::KeypadInput::Attributes::GeneratedCommandList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -3699,7 +3634,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::KeypadInput::Attributes::AcceptedCommandList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::KeypadInput::Attributes::AcceptedCommandList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::KeypadInput::Attributes::AcceptedCommandList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::KeypadInput::Attributes::AcceptedCommandList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -3761,7 +3695,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::KeypadInput::Attributes::EventList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::KeypadInput::Attributes::EventList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::KeypadInput::Attributes::EventList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::KeypadInput::Attributes::EventList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -3823,7 +3756,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::KeypadInput::Attributes::AttributeList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::KeypadInput::Attributes::AttributeList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::KeypadInput::Attributes::AttributeList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::KeypadInput::Attributes::AttributeList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -3885,7 +3817,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::KeypadInput::Attributes::FeatureMap::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::KeypadInput::Attributes::FeatureMap::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::KeypadInput::Attributes::FeatureMap::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::KeypadInput::Attributes::FeatureMap::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithUnsignedInt:_cppValue];
@@ -3932,7 +3863,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::KeypadInput::Attributes::ClusterRevision::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::KeypadInput::Attributes::ClusterRevision::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::KeypadInput::Attributes::ClusterRevision::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::KeypadInput::Attributes::ClusterRevision::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithUnsignedShort:_cppValue];
@@ -3981,7 +3911,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::ContentLauncher::Attributes::AcceptHeader::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::ContentLauncher::Attributes::AcceptHeader::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::ContentLauncher::Attributes::AcceptHeader::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::ContentLauncher::Attributes::AcceptHeader::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -4048,7 +3977,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::ContentLauncher::Attributes::SupportedStreamingProtocols::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::ContentLauncher::Attributes::SupportedStreamingProtocols::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::ContentLauncher::Attributes::SupportedStreamingProtocols::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::ContentLauncher::Attributes::SupportedStreamingProtocols::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithUnsignedInt:_cppValue.Raw()];
@@ -4095,7 +4023,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::ContentLauncher::Attributes::GeneratedCommandList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::ContentLauncher::Attributes::GeneratedCommandList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::ContentLauncher::Attributes::GeneratedCommandList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::ContentLauncher::Attributes::GeneratedCommandList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -4157,7 +4084,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::ContentLauncher::Attributes::AcceptedCommandList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::ContentLauncher::Attributes::AcceptedCommandList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::ContentLauncher::Attributes::AcceptedCommandList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::ContentLauncher::Attributes::AcceptedCommandList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -4219,7 +4145,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::ContentLauncher::Attributes::EventList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::ContentLauncher::Attributes::EventList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::ContentLauncher::Attributes::EventList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::ContentLauncher::Attributes::EventList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -4281,7 +4206,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::ContentLauncher::Attributes::AttributeList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::ContentLauncher::Attributes::AttributeList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::ContentLauncher::Attributes::AttributeList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::ContentLauncher::Attributes::AttributeList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -4343,7 +4267,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::ContentLauncher::Attributes::FeatureMap::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::ContentLauncher::Attributes::FeatureMap::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::ContentLauncher::Attributes::FeatureMap::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::ContentLauncher::Attributes::FeatureMap::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithUnsignedInt:_cppValue];
@@ -4390,7 +4313,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::ContentLauncher::Attributes::ClusterRevision::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::ContentLauncher::Attributes::ClusterRevision::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::ContentLauncher::Attributes::ClusterRevision::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::ContentLauncher::Attributes::ClusterRevision::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithUnsignedShort:_cppValue];
@@ -4439,7 +4361,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::ApplicationLauncher::Attributes::CatalogList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::ApplicationLauncher::Attributes::CatalogList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::ApplicationLauncher::Attributes::CatalogList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::ApplicationLauncher::Attributes::CatalogList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -4501,7 +4422,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::ApplicationLauncher::Attributes::CurrentApp::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::ApplicationLauncher::Attributes::CurrentApp::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::ApplicationLauncher::Attributes::CurrentApp::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::ApplicationLauncher::Attributes::CurrentApp::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
MCApplicationLauncherClusterApplicationEPStruct * _Nullable value;
if (_cppValue.IsNull()) {
@@ -4565,7 +4485,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::ApplicationLauncher::Attributes::GeneratedCommandList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::ApplicationLauncher::Attributes::GeneratedCommandList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::ApplicationLauncher::Attributes::GeneratedCommandList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::ApplicationLauncher::Attributes::GeneratedCommandList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -4627,7 +4546,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::ApplicationLauncher::Attributes::AcceptedCommandList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::ApplicationLauncher::Attributes::AcceptedCommandList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::ApplicationLauncher::Attributes::AcceptedCommandList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::ApplicationLauncher::Attributes::AcceptedCommandList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -4689,7 +4607,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::ApplicationLauncher::Attributes::EventList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::ApplicationLauncher::Attributes::EventList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::ApplicationLauncher::Attributes::EventList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::ApplicationLauncher::Attributes::EventList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -4751,7 +4668,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::ApplicationLauncher::Attributes::AttributeList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::ApplicationLauncher::Attributes::AttributeList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::ApplicationLauncher::Attributes::AttributeList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::ApplicationLauncher::Attributes::AttributeList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -4813,7 +4729,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::ApplicationLauncher::Attributes::FeatureMap::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::ApplicationLauncher::Attributes::FeatureMap::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::ApplicationLauncher::Attributes::FeatureMap::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::ApplicationLauncher::Attributes::FeatureMap::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithUnsignedInt:_cppValue];
@@ -4860,7 +4775,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::ApplicationLauncher::Attributes::ClusterRevision::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::ApplicationLauncher::Attributes::ClusterRevision::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::ApplicationLauncher::Attributes::ClusterRevision::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::ApplicationLauncher::Attributes::ClusterRevision::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithUnsignedShort:_cppValue];
@@ -4909,7 +4823,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::VendorName::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::VendorName::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::VendorName::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::ApplicationBasic::Attributes::VendorName::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSString * _Nonnull value;
value = AsString(_cppValue);
@@ -4961,7 +4874,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::VendorID::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::VendorID::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::VendorID::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::ApplicationBasic::Attributes::VendorID::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithUnsignedShort:chip::to_underlying(_cppValue)];
@@ -5008,7 +4920,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::ApplicationName::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::ApplicationName::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::ApplicationName::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::ApplicationBasic::Attributes::ApplicationName::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSString * _Nonnull value;
value = AsString(_cppValue);
@@ -5060,7 +4971,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::ProductID::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::ProductID::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::ProductID::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::ApplicationBasic::Attributes::ProductID::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithUnsignedShort:_cppValue];
@@ -5107,7 +5017,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::Application::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::Application::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::Application::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::ApplicationBasic::Attributes::Application::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
MCApplicationBasicClusterApplicationStruct * _Nonnull value;
value = [MCApplicationBasicClusterApplicationStruct new];
@@ -5161,7 +5070,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::Status::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::Status::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::Status::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::ApplicationBasic::Attributes::Status::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithUnsignedChar:chip::to_underlying(_cppValue)];
@@ -5208,7 +5116,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::ApplicationVersion::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::ApplicationVersion::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::ApplicationVersion::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::ApplicationBasic::Attributes::ApplicationVersion::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSString * _Nonnull value;
value = AsString(_cppValue);
@@ -5260,7 +5167,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::AllowedVendorList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::AllowedVendorList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::AllowedVendorList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::ApplicationBasic::Attributes::AllowedVendorList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -5322,7 +5228,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::GeneratedCommandList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::GeneratedCommandList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::GeneratedCommandList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::ApplicationBasic::Attributes::GeneratedCommandList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -5384,7 +5289,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::AcceptedCommandList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::AcceptedCommandList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::AcceptedCommandList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::ApplicationBasic::Attributes::AcceptedCommandList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -5446,7 +5350,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::EventList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::EventList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::EventList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::ApplicationBasic::Attributes::EventList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -5508,7 +5411,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::AttributeList::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::AttributeList::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::AttributeList::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::ApplicationBasic::Attributes::AttributeList::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSArray * _Nonnull value;
{ // Scope for our temporary variables
@@ -5570,7 +5472,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::FeatureMap::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::FeatureMap::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::FeatureMap::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::ApplicationBasic::Attributes::FeatureMap::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithUnsignedInt:_cppValue];
@@ -5617,7 +5518,6 @@
if (cppValue.type() == typeid(std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::ClusterRevision::TypeInfo::DecodableType>)) {
std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::ClusterRevision::TypeInfo::DecodableType> sharedPtr = std::any_cast<std::shared_ptr<chip::app::Clusters::ApplicationBasic::Attributes::ClusterRevision::TypeInfo::DecodableType>>(cppValue);
chip::app::Clusters::ApplicationBasic::Attributes::ClusterRevision::TypeInfo::DecodableType _cppValue = *sharedPtr;
- // auto & valueSharedPtr = *sharedPtr;
*aError = CHIP_NO_ERROR;
NSNumber * _Nonnull value;
value = [NSNumber numberWithUnsignedShort:_cppValue];
diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCClusterObjects.h b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCClusterObjects.h
index 683de52..12a3d8d 100644
--- a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCClusterObjects.h
+++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCClusterObjects.h
@@ -18,8 +18,8 @@
// THIS FILE IS GENERATED BY ZAP
#import "../MCCluster.h"
-#import "../MCCommandObjects.h"
#import "MCAttributeObjects.h"
+#import "MCCommandObjects.h"
#import <Foundation/Foundation.h>
#ifndef MCClusterObjects_h
@@ -31,6 +31,36 @@
// OnOff cluster commands:
+/**
+ * @brief Returns non-nil pointer to MCOnOffClusterOffCommand if supported, nil otherwise.
+ */
+- (MCOnOffClusterOffCommand * _Nullable)offCommand;
+
+/**
+ * @brief Returns non-nil pointer to MCOnOffClusterOnCommand if supported, nil otherwise.
+ */
+- (MCOnOffClusterOnCommand * _Nullable)onCommand;
+
+/**
+ * @brief Returns non-nil pointer to MCOnOffClusterToggleCommand if supported, nil otherwise.
+ */
+- (MCOnOffClusterToggleCommand * _Nullable)toggleCommand;
+
+/**
+ * @brief Returns non-nil pointer to MCOnOffClusterOffWithEffectCommand if supported, nil otherwise.
+ */
+- (MCOnOffClusterOffWithEffectCommand * _Nullable)offWithEffectCommand;
+
+/**
+ * @brief Returns non-nil pointer to MCOnOffClusterOnWithRecallGlobalSceneCommand if supported, nil otherwise.
+ */
+- (MCOnOffClusterOnWithRecallGlobalSceneCommand * _Nullable)onWithRecallGlobalSceneCommand;
+
+/**
+ * @brief Returns non-nil pointer to MCOnOffClusterOnWithTimedOffCommand if supported, nil otherwise.
+ */
+- (MCOnOffClusterOnWithTimedOffCommand * _Nullable)onWithTimedOffCommand;
+
// OnOff cluster attributes:
/**
@@ -95,6 +125,51 @@
// LevelControl cluster commands:
+/**
+ * @brief Returns non-nil pointer to MCLevelControlClusterMoveToLevelCommand if supported, nil otherwise.
+ */
+- (MCLevelControlClusterMoveToLevelCommand * _Nullable)moveToLevelCommand;
+
+/**
+ * @brief Returns non-nil pointer to MCLevelControlClusterMoveCommand if supported, nil otherwise.
+ */
+- (MCLevelControlClusterMoveCommand * _Nullable)moveCommand;
+
+/**
+ * @brief Returns non-nil pointer to MCLevelControlClusterStepCommand if supported, nil otherwise.
+ */
+- (MCLevelControlClusterStepCommand * _Nullable)stepCommand;
+
+/**
+ * @brief Returns non-nil pointer to MCLevelControlClusterStopCommand if supported, nil otherwise.
+ */
+- (MCLevelControlClusterStopCommand * _Nullable)stopCommand;
+
+/**
+ * @brief Returns non-nil pointer to MCLevelControlClusterMoveToLevelWithOnOffCommand if supported, nil otherwise.
+ */
+- (MCLevelControlClusterMoveToLevelWithOnOffCommand * _Nullable)moveToLevelWithOnOffCommand;
+
+/**
+ * @brief Returns non-nil pointer to MCLevelControlClusterMoveWithOnOffCommand if supported, nil otherwise.
+ */
+- (MCLevelControlClusterMoveWithOnOffCommand * _Nullable)moveWithOnOffCommand;
+
+/**
+ * @brief Returns non-nil pointer to MCLevelControlClusterStepWithOnOffCommand if supported, nil otherwise.
+ */
+- (MCLevelControlClusterStepWithOnOffCommand * _Nullable)stepWithOnOffCommand;
+
+/**
+ * @brief Returns non-nil pointer to MCLevelControlClusterStopWithOnOffCommand if supported, nil otherwise.
+ */
+- (MCLevelControlClusterStopWithOnOffCommand * _Nullable)stopWithOnOffCommand;
+
+/**
+ * @brief Returns non-nil pointer to MCLevelControlClusterMoveToClosestFrequencyCommand if supported, nil otherwise.
+ */
+- (MCLevelControlClusterMoveToClosestFrequencyCommand * _Nullable)moveToClosestFrequencyCommand;
+
// LevelControl cluster attributes:
/**
@@ -253,6 +328,11 @@
// TargetNavigator cluster commands:
+/**
+ * @brief Returns non-nil pointer to MCTargetNavigatorClusterNavigateTargetCommand if supported, nil otherwise.
+ */
+- (MCTargetNavigatorClusterNavigateTargetCommand * _Nullable)navigateTargetCommand;
+
// TargetNavigator cluster attributes:
/**
@@ -302,6 +382,76 @@
// MediaPlayback cluster commands:
+/**
+ * @brief Returns non-nil pointer to MCMediaPlaybackClusterPlayCommand if supported, nil otherwise.
+ */
+- (MCMediaPlaybackClusterPlayCommand * _Nullable)playCommand;
+
+/**
+ * @brief Returns non-nil pointer to MCMediaPlaybackClusterPauseCommand if supported, nil otherwise.
+ */
+- (MCMediaPlaybackClusterPauseCommand * _Nullable)pauseCommand;
+
+/**
+ * @brief Returns non-nil pointer to MCMediaPlaybackClusterStopCommand if supported, nil otherwise.
+ */
+- (MCMediaPlaybackClusterStopCommand * _Nullable)stopCommand;
+
+/**
+ * @brief Returns non-nil pointer to MCMediaPlaybackClusterStartOverCommand if supported, nil otherwise.
+ */
+- (MCMediaPlaybackClusterStartOverCommand * _Nullable)startOverCommand;
+
+/**
+ * @brief Returns non-nil pointer to MCMediaPlaybackClusterPreviousCommand if supported, nil otherwise.
+ */
+- (MCMediaPlaybackClusterPreviousCommand * _Nullable)previousCommand;
+
+/**
+ * @brief Returns non-nil pointer to MCMediaPlaybackClusterNextCommand if supported, nil otherwise.
+ */
+- (MCMediaPlaybackClusterNextCommand * _Nullable)nextCommand;
+
+/**
+ * @brief Returns non-nil pointer to MCMediaPlaybackClusterRewindCommand if supported, nil otherwise.
+ */
+- (MCMediaPlaybackClusterRewindCommand * _Nullable)rewindCommand;
+
+/**
+ * @brief Returns non-nil pointer to MCMediaPlaybackClusterFastForwardCommand if supported, nil otherwise.
+ */
+- (MCMediaPlaybackClusterFastForwardCommand * _Nullable)fastForwardCommand;
+
+/**
+ * @brief Returns non-nil pointer to MCMediaPlaybackClusterSkipForwardCommand if supported, nil otherwise.
+ */
+- (MCMediaPlaybackClusterSkipForwardCommand * _Nullable)skipForwardCommand;
+
+/**
+ * @brief Returns non-nil pointer to MCMediaPlaybackClusterSkipBackwardCommand if supported, nil otherwise.
+ */
+- (MCMediaPlaybackClusterSkipBackwardCommand * _Nullable)skipBackwardCommand;
+
+/**
+ * @brief Returns non-nil pointer to MCMediaPlaybackClusterSeekCommand if supported, nil otherwise.
+ */
+- (MCMediaPlaybackClusterSeekCommand * _Nullable)seekCommand;
+
+/**
+ * @brief Returns non-nil pointer to MCMediaPlaybackClusterActivateAudioTrackCommand if supported, nil otherwise.
+ */
+- (MCMediaPlaybackClusterActivateAudioTrackCommand * _Nullable)activateAudioTrackCommand;
+
+/**
+ * @brief Returns non-nil pointer to MCMediaPlaybackClusterActivateTextTrackCommand if supported, nil otherwise.
+ */
+- (MCMediaPlaybackClusterActivateTextTrackCommand * _Nullable)activateTextTrackCommand;
+
+/**
+ * @brief Returns non-nil pointer to MCMediaPlaybackClusterDeactivateTextTrackCommand if supported, nil otherwise.
+ */
+- (MCMediaPlaybackClusterDeactivateTextTrackCommand * _Nullable)deactivateTextTrackCommand;
+
// MediaPlayback cluster attributes:
/**
@@ -396,6 +546,11 @@
// KeypadInput cluster commands:
+/**
+ * @brief Returns non-nil pointer to MCKeypadInputClusterSendKeyCommand if supported, nil otherwise.
+ */
+- (MCKeypadInputClusterSendKeyCommand * _Nullable)sendKeyCommand;
+
// KeypadInput cluster attributes:
/**
@@ -436,6 +591,11 @@
// ContentLauncher cluster commands:
/**
+ * @brief Returns non-nil pointer to MCContentLauncherClusterLaunchContentCommand if supported, nil otherwise.
+ */
+- (MCContentLauncherClusterLaunchContentCommand * _Nullable)launchContentCommand;
+
+/**
* @brief Returns non-nil pointer to MCContentLauncherClusterLaunchURLCommand if supported, nil otherwise.
*/
- (MCContentLauncherClusterLaunchURLCommand * _Nullable)launchURLCommand;
@@ -489,6 +649,21 @@
// ApplicationLauncher cluster commands:
+/**
+ * @brief Returns non-nil pointer to MCApplicationLauncherClusterLaunchAppCommand if supported, nil otherwise.
+ */
+- (MCApplicationLauncherClusterLaunchAppCommand * _Nullable)launchAppCommand;
+
+/**
+ * @brief Returns non-nil pointer to MCApplicationLauncherClusterStopAppCommand if supported, nil otherwise.
+ */
+- (MCApplicationLauncherClusterStopAppCommand * _Nullable)stopAppCommand;
+
+/**
+ * @brief Returns non-nil pointer to MCApplicationLauncherClusterHideAppCommand if supported, nil otherwise.
+ */
+- (MCApplicationLauncherClusterHideAppCommand * _Nullable)hideAppCommand;
+
// ApplicationLauncher cluster attributes:
/**
diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCClusterObjects.mm b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCClusterObjects.mm
index c7fb369..8c51871 100644
--- a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCClusterObjects.mm
+++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCClusterObjects.mm
@@ -35,6 +35,42 @@
// OnOff cluster commands:
+- (id)offCommand
+{
+ void * cppCommand = self.cppCluster->GetCommand(chip::app::Clusters::OnOff::Commands::Off::Id);
+ return cppCommand != nil ? [[MCOnOffClusterOffCommand alloc] initWithCppCommand:cppCommand] : nil;
+}
+
+- (id)onCommand
+{
+ void * cppCommand = self.cppCluster->GetCommand(chip::app::Clusters::OnOff::Commands::On::Id);
+ return cppCommand != nil ? [[MCOnOffClusterOnCommand alloc] initWithCppCommand:cppCommand] : nil;
+}
+
+- (id)toggleCommand
+{
+ void * cppCommand = self.cppCluster->GetCommand(chip::app::Clusters::OnOff::Commands::Toggle::Id);
+ return cppCommand != nil ? [[MCOnOffClusterToggleCommand alloc] initWithCppCommand:cppCommand] : nil;
+}
+
+- (id)offWithEffectCommand
+{
+ void * cppCommand = self.cppCluster->GetCommand(chip::app::Clusters::OnOff::Commands::OffWithEffect::Id);
+ return cppCommand != nil ? [[MCOnOffClusterOffWithEffectCommand alloc] initWithCppCommand:cppCommand] : nil;
+}
+
+- (id)onWithRecallGlobalSceneCommand
+{
+ void * cppCommand = self.cppCluster->GetCommand(chip::app::Clusters::OnOff::Commands::OnWithRecallGlobalScene::Id);
+ return cppCommand != nil ? [[MCOnOffClusterOnWithRecallGlobalSceneCommand alloc] initWithCppCommand:cppCommand] : nil;
+}
+
+- (id)onWithTimedOffCommand
+{
+ void * cppCommand = self.cppCluster->GetCommand(chip::app::Clusters::OnOff::Commands::OnWithTimedOff::Id);
+ return cppCommand != nil ? [[MCOnOffClusterOnWithTimedOffCommand alloc] initWithCppCommand:cppCommand] : nil;
+}
+
// OnOff cluster attributes:
- (id)onOffAttribute
@@ -110,6 +146,60 @@
// LevelControl cluster commands:
+- (id)moveToLevelCommand
+{
+ void * cppCommand = self.cppCluster->GetCommand(chip::app::Clusters::LevelControl::Commands::MoveToLevel::Id);
+ return cppCommand != nil ? [[MCLevelControlClusterMoveToLevelCommand alloc] initWithCppCommand:cppCommand] : nil;
+}
+
+- (id)moveCommand
+{
+ void * cppCommand = self.cppCluster->GetCommand(chip::app::Clusters::LevelControl::Commands::Move::Id);
+ return cppCommand != nil ? [[MCLevelControlClusterMoveCommand alloc] initWithCppCommand:cppCommand] : nil;
+}
+
+- (id)stepCommand
+{
+ void * cppCommand = self.cppCluster->GetCommand(chip::app::Clusters::LevelControl::Commands::Step::Id);
+ return cppCommand != nil ? [[MCLevelControlClusterStepCommand alloc] initWithCppCommand:cppCommand] : nil;
+}
+
+- (id)stopCommand
+{
+ void * cppCommand = self.cppCluster->GetCommand(chip::app::Clusters::LevelControl::Commands::Stop::Id);
+ return cppCommand != nil ? [[MCLevelControlClusterStopCommand alloc] initWithCppCommand:cppCommand] : nil;
+}
+
+- (id)moveToLevelWithOnOffCommand
+{
+ void * cppCommand = self.cppCluster->GetCommand(chip::app::Clusters::LevelControl::Commands::MoveToLevelWithOnOff::Id);
+ return cppCommand != nil ? [[MCLevelControlClusterMoveToLevelWithOnOffCommand alloc] initWithCppCommand:cppCommand] : nil;
+}
+
+- (id)moveWithOnOffCommand
+{
+ void * cppCommand = self.cppCluster->GetCommand(chip::app::Clusters::LevelControl::Commands::MoveWithOnOff::Id);
+ return cppCommand != nil ? [[MCLevelControlClusterMoveWithOnOffCommand alloc] initWithCppCommand:cppCommand] : nil;
+}
+
+- (id)stepWithOnOffCommand
+{
+ void * cppCommand = self.cppCluster->GetCommand(chip::app::Clusters::LevelControl::Commands::StepWithOnOff::Id);
+ return cppCommand != nil ? [[MCLevelControlClusterStepWithOnOffCommand alloc] initWithCppCommand:cppCommand] : nil;
+}
+
+- (id)stopWithOnOffCommand
+{
+ void * cppCommand = self.cppCluster->GetCommand(chip::app::Clusters::LevelControl::Commands::StopWithOnOff::Id);
+ return cppCommand != nil ? [[MCLevelControlClusterStopWithOnOffCommand alloc] initWithCppCommand:cppCommand] : nil;
+}
+
+- (id)moveToClosestFrequencyCommand
+{
+ void * cppCommand = self.cppCluster->GetCommand(chip::app::Clusters::LevelControl::Commands::MoveToClosestFrequency::Id);
+ return cppCommand != nil ? [[MCLevelControlClusterMoveToClosestFrequencyCommand alloc] initWithCppCommand:cppCommand] : nil;
+}
+
// LevelControl cluster attributes:
- (id)currentLevelAttribute
@@ -296,6 +386,12 @@
// TargetNavigator cluster commands:
+- (id)navigateTargetCommand
+{
+ void * cppCommand = self.cppCluster->GetCommand(chip::app::Clusters::TargetNavigator::Commands::NavigateTarget::Id);
+ return cppCommand != nil ? [[MCTargetNavigatorClusterNavigateTargetCommand alloc] initWithCppCommand:cppCommand] : nil;
+}
+
// TargetNavigator cluster attributes:
- (id)targetListAttribute
@@ -353,6 +449,90 @@
// MediaPlayback cluster commands:
+- (id)playCommand
+{
+ void * cppCommand = self.cppCluster->GetCommand(chip::app::Clusters::MediaPlayback::Commands::Play::Id);
+ return cppCommand != nil ? [[MCMediaPlaybackClusterPlayCommand alloc] initWithCppCommand:cppCommand] : nil;
+}
+
+- (id)pauseCommand
+{
+ void * cppCommand = self.cppCluster->GetCommand(chip::app::Clusters::MediaPlayback::Commands::Pause::Id);
+ return cppCommand != nil ? [[MCMediaPlaybackClusterPauseCommand alloc] initWithCppCommand:cppCommand] : nil;
+}
+
+- (id)stopCommand
+{
+ void * cppCommand = self.cppCluster->GetCommand(chip::app::Clusters::MediaPlayback::Commands::Stop::Id);
+ return cppCommand != nil ? [[MCMediaPlaybackClusterStopCommand alloc] initWithCppCommand:cppCommand] : nil;
+}
+
+- (id)startOverCommand
+{
+ void * cppCommand = self.cppCluster->GetCommand(chip::app::Clusters::MediaPlayback::Commands::StartOver::Id);
+ return cppCommand != nil ? [[MCMediaPlaybackClusterStartOverCommand alloc] initWithCppCommand:cppCommand] : nil;
+}
+
+- (id)previousCommand
+{
+ void * cppCommand = self.cppCluster->GetCommand(chip::app::Clusters::MediaPlayback::Commands::Previous::Id);
+ return cppCommand != nil ? [[MCMediaPlaybackClusterPreviousCommand alloc] initWithCppCommand:cppCommand] : nil;
+}
+
+- (id)nextCommand
+{
+ void * cppCommand = self.cppCluster->GetCommand(chip::app::Clusters::MediaPlayback::Commands::Next::Id);
+ return cppCommand != nil ? [[MCMediaPlaybackClusterNextCommand alloc] initWithCppCommand:cppCommand] : nil;
+}
+
+- (id)rewindCommand
+{
+ void * cppCommand = self.cppCluster->GetCommand(chip::app::Clusters::MediaPlayback::Commands::Rewind::Id);
+ return cppCommand != nil ? [[MCMediaPlaybackClusterRewindCommand alloc] initWithCppCommand:cppCommand] : nil;
+}
+
+- (id)fastForwardCommand
+{
+ void * cppCommand = self.cppCluster->GetCommand(chip::app::Clusters::MediaPlayback::Commands::FastForward::Id);
+ return cppCommand != nil ? [[MCMediaPlaybackClusterFastForwardCommand alloc] initWithCppCommand:cppCommand] : nil;
+}
+
+- (id)skipForwardCommand
+{
+ void * cppCommand = self.cppCluster->GetCommand(chip::app::Clusters::MediaPlayback::Commands::SkipForward::Id);
+ return cppCommand != nil ? [[MCMediaPlaybackClusterSkipForwardCommand alloc] initWithCppCommand:cppCommand] : nil;
+}
+
+- (id)skipBackwardCommand
+{
+ void * cppCommand = self.cppCluster->GetCommand(chip::app::Clusters::MediaPlayback::Commands::SkipBackward::Id);
+ return cppCommand != nil ? [[MCMediaPlaybackClusterSkipBackwardCommand alloc] initWithCppCommand:cppCommand] : nil;
+}
+
+- (id)seekCommand
+{
+ void * cppCommand = self.cppCluster->GetCommand(chip::app::Clusters::MediaPlayback::Commands::Seek::Id);
+ return cppCommand != nil ? [[MCMediaPlaybackClusterSeekCommand alloc] initWithCppCommand:cppCommand] : nil;
+}
+
+- (id)activateAudioTrackCommand
+{
+ void * cppCommand = self.cppCluster->GetCommand(chip::app::Clusters::MediaPlayback::Commands::ActivateAudioTrack::Id);
+ return cppCommand != nil ? [[MCMediaPlaybackClusterActivateAudioTrackCommand alloc] initWithCppCommand:cppCommand] : nil;
+}
+
+- (id)activateTextTrackCommand
+{
+ void * cppCommand = self.cppCluster->GetCommand(chip::app::Clusters::MediaPlayback::Commands::ActivateTextTrack::Id);
+ return cppCommand != nil ? [[MCMediaPlaybackClusterActivateTextTrackCommand alloc] initWithCppCommand:cppCommand] : nil;
+}
+
+- (id)deactivateTextTrackCommand
+{
+ void * cppCommand = self.cppCluster->GetCommand(chip::app::Clusters::MediaPlayback::Commands::DeactivateTextTrack::Id);
+ return cppCommand != nil ? [[MCMediaPlaybackClusterDeactivateTextTrackCommand alloc] initWithCppCommand:cppCommand] : nil;
+}
+
// MediaPlayback cluster attributes:
- (id)currentStateAttribute
@@ -464,6 +644,12 @@
// KeypadInput cluster commands:
+- (id)sendKeyCommand
+{
+ void * cppCommand = self.cppCluster->GetCommand(chip::app::Clusters::KeypadInput::Commands::SendKey::Id);
+ return cppCommand != nil ? [[MCKeypadInputClusterSendKeyCommand alloc] initWithCppCommand:cppCommand] : nil;
+}
+
// KeypadInput cluster attributes:
- (id)generatedCommandListAttribute
@@ -509,6 +695,12 @@
// ContentLauncher cluster commands:
+- (id)launchContentCommand
+{
+ void * cppCommand = self.cppCluster->GetCommand(chip::app::Clusters::ContentLauncher::Commands::LaunchContent::Id);
+ return cppCommand != nil ? [[MCContentLauncherClusterLaunchContentCommand alloc] initWithCppCommand:cppCommand] : nil;
+}
+
- (id)launchURLCommand
{
void * cppCommand = self.cppCluster->GetCommand(chip::app::Clusters::ContentLauncher::Commands::LaunchURL::Id);
@@ -572,6 +764,24 @@
// ApplicationLauncher cluster commands:
+- (id)launchAppCommand
+{
+ void * cppCommand = self.cppCluster->GetCommand(chip::app::Clusters::ApplicationLauncher::Commands::LaunchApp::Id);
+ return cppCommand != nil ? [[MCApplicationLauncherClusterLaunchAppCommand alloc] initWithCppCommand:cppCommand] : nil;
+}
+
+- (id)stopAppCommand
+{
+ void * cppCommand = self.cppCluster->GetCommand(chip::app::Clusters::ApplicationLauncher::Commands::StopApp::Id);
+ return cppCommand != nil ? [[MCApplicationLauncherClusterStopAppCommand alloc] initWithCppCommand:cppCommand] : nil;
+}
+
+- (id)hideAppCommand
+{
+ void * cppCommand = self.cppCluster->GetCommand(chip::app::Clusters::ApplicationLauncher::Commands::HideApp::Id);
+ return cppCommand != nil ? [[MCApplicationLauncherClusterHideAppCommand alloc] initWithCppCommand:cppCommand] : nil;
+}
+
// ApplicationLauncher cluster attributes:
- (id)catalogListAttribute
diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCCommandObjects.h b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCCommandObjects.h
new file mode 100644
index 0000000..4ca2694
--- /dev/null
+++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCCommandObjects.h
@@ -0,0 +1,156 @@
+/*
+ *
+ * Copyright (c) 2022 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.
+ */
+
+// THIS FILE IS GENERATED BY ZAP
+
+#import "../MCCommand.h"
+#import "MCCommandPayloads.h"
+#import <Foundation/Foundation.h>
+
+#ifndef MCCommandObjects_h
+#define MCCommandObjects_h
+
+@interface MCNullObjectType : NSObject
+@end
+
+// OnOff cluster:
+
+@interface MCOnOffClusterOffCommand : MCCommand <MCOnOffClusterOffParams *, MCNullObjectType *>
+@end
+
+@interface MCOnOffClusterOnCommand : MCCommand <MCOnOffClusterOnParams *, MCNullObjectType *>
+@end
+
+@interface MCOnOffClusterToggleCommand : MCCommand <MCOnOffClusterToggleParams *, MCNullObjectType *>
+@end
+
+@interface MCOnOffClusterOffWithEffectCommand : MCCommand <MCOnOffClusterOffWithEffectParams *, MCNullObjectType *>
+@end
+
+@interface MCOnOffClusterOnWithRecallGlobalSceneCommand : MCCommand <MCOnOffClusterOnWithRecallGlobalSceneParams *, MCNullObjectType *>
+@end
+
+@interface MCOnOffClusterOnWithTimedOffCommand : MCCommand <MCOnOffClusterOnWithTimedOffParams *, MCNullObjectType *>
+@end
+
+// LevelControl cluster:
+
+@interface MCLevelControlClusterMoveToLevelCommand : MCCommand <MCLevelControlClusterMoveToLevelParams *, MCNullObjectType *>
+@end
+
+@interface MCLevelControlClusterMoveCommand : MCCommand <MCLevelControlClusterMoveParams *, MCNullObjectType *>
+@end
+
+@interface MCLevelControlClusterStepCommand : MCCommand <MCLevelControlClusterStepParams *, MCNullObjectType *>
+@end
+
+@interface MCLevelControlClusterStopCommand : MCCommand <MCLevelControlClusterStopParams *, MCNullObjectType *>
+@end
+
+@interface MCLevelControlClusterMoveToLevelWithOnOffCommand : MCCommand <MCLevelControlClusterMoveToLevelWithOnOffParams *, MCNullObjectType *>
+@end
+
+@interface MCLevelControlClusterMoveWithOnOffCommand : MCCommand <MCLevelControlClusterMoveWithOnOffParams *, MCNullObjectType *>
+@end
+
+@interface MCLevelControlClusterStepWithOnOffCommand : MCCommand <MCLevelControlClusterStepWithOnOffParams *, MCNullObjectType *>
+@end
+
+@interface MCLevelControlClusterStopWithOnOffCommand : MCCommand <MCLevelControlClusterStopWithOnOffParams *, MCNullObjectType *>
+@end
+
+@interface MCLevelControlClusterMoveToClosestFrequencyCommand : MCCommand <MCLevelControlClusterMoveToClosestFrequencyParams *, MCNullObjectType *>
+@end
+
+// WakeOnLan cluster:
+
+// TargetNavigator cluster:
+
+@interface MCTargetNavigatorClusterNavigateTargetCommand : MCCommand <MCTargetNavigatorClusterNavigateTargetParams *, MCTargetNavigatorClusterNavigateTargetResponseParams *>
+@end
+
+// MediaPlayback cluster:
+
+@interface MCMediaPlaybackClusterPlayCommand : MCCommand <MCMediaPlaybackClusterPlayParams *, MCMediaPlaybackClusterPlaybackResponseParams *>
+@end
+
+@interface MCMediaPlaybackClusterPauseCommand : MCCommand <MCMediaPlaybackClusterPauseParams *, MCMediaPlaybackClusterPlaybackResponseParams *>
+@end
+
+@interface MCMediaPlaybackClusterStopCommand : MCCommand <MCMediaPlaybackClusterStopParams *, MCMediaPlaybackClusterPlaybackResponseParams *>
+@end
+
+@interface MCMediaPlaybackClusterStartOverCommand : MCCommand <MCMediaPlaybackClusterStartOverParams *, MCMediaPlaybackClusterPlaybackResponseParams *>
+@end
+
+@interface MCMediaPlaybackClusterPreviousCommand : MCCommand <MCMediaPlaybackClusterPreviousParams *, MCMediaPlaybackClusterPlaybackResponseParams *>
+@end
+
+@interface MCMediaPlaybackClusterNextCommand : MCCommand <MCMediaPlaybackClusterNextParams *, MCMediaPlaybackClusterPlaybackResponseParams *>
+@end
+
+@interface MCMediaPlaybackClusterRewindCommand : MCCommand <MCMediaPlaybackClusterRewindParams *, MCMediaPlaybackClusterPlaybackResponseParams *>
+@end
+
+@interface MCMediaPlaybackClusterFastForwardCommand : MCCommand <MCMediaPlaybackClusterFastForwardParams *, MCMediaPlaybackClusterPlaybackResponseParams *>
+@end
+
+@interface MCMediaPlaybackClusterSkipForwardCommand : MCCommand <MCMediaPlaybackClusterSkipForwardParams *, MCMediaPlaybackClusterPlaybackResponseParams *>
+@end
+
+@interface MCMediaPlaybackClusterSkipBackwardCommand : MCCommand <MCMediaPlaybackClusterSkipBackwardParams *, MCMediaPlaybackClusterPlaybackResponseParams *>
+@end
+
+@interface MCMediaPlaybackClusterSeekCommand : MCCommand <MCMediaPlaybackClusterSeekParams *, MCMediaPlaybackClusterPlaybackResponseParams *>
+@end
+
+@interface MCMediaPlaybackClusterActivateAudioTrackCommand : MCCommand <MCMediaPlaybackClusterActivateAudioTrackParams *, MCNullObjectType *>
+@end
+
+@interface MCMediaPlaybackClusterActivateTextTrackCommand : MCCommand <MCMediaPlaybackClusterActivateTextTrackParams *, MCNullObjectType *>
+@end
+
+@interface MCMediaPlaybackClusterDeactivateTextTrackCommand : MCCommand <MCMediaPlaybackClusterDeactivateTextTrackParams *, MCNullObjectType *>
+@end
+
+// KeypadInput cluster:
+
+@interface MCKeypadInputClusterSendKeyCommand : MCCommand <MCKeypadInputClusterSendKeyParams *, MCKeypadInputClusterSendKeyResponseParams *>
+@end
+
+// ContentLauncher cluster:
+
+@interface MCContentLauncherClusterLaunchContentCommand : MCCommand <MCContentLauncherClusterLaunchContentParams *, MCContentLauncherClusterLauncherResponseParams *>
+@end
+
+@interface MCContentLauncherClusterLaunchURLCommand : MCCommand <MCContentLauncherClusterLaunchURLParams *, MCContentLauncherClusterLauncherResponseParams *>
+@end
+
+// ApplicationLauncher cluster:
+
+@interface MCApplicationLauncherClusterLaunchAppCommand : MCCommand <MCApplicationLauncherClusterLaunchAppParams *, MCApplicationLauncherClusterLauncherResponseParams *>
+@end
+
+@interface MCApplicationLauncherClusterStopAppCommand : MCCommand <MCApplicationLauncherClusterStopAppParams *, MCApplicationLauncherClusterLauncherResponseParams *>
+@end
+
+@interface MCApplicationLauncherClusterHideAppCommand : MCCommand <MCApplicationLauncherClusterHideAppParams *, MCApplicationLauncherClusterLauncherResponseParams *>
+@end
+
+// ApplicationBasic cluster:
+
+#endif /* MCCommandObjects_h */
diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCCommandObjects.mm b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCCommandObjects.mm
new file mode 100644
index 0000000..7c259ca
--- /dev/null
+++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCCommandObjects.mm
@@ -0,0 +1,1928 @@
+/*
+ *
+ * Copyright (c) 2022 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.
+ */
+
+// THIS FILE IS GENERATED BY ZAP
+
+#import "MCCommandObjects.h"
+#import "MCCommandPayloads.h"
+#import "MCCommandPayloads_internal.h"
+
+#import "../MCCastingApp.h"
+#import "../MCCommand_Internal.h"
+#import "../MCErrorUtils.h"
+
+#include "core/Command.h"
+#include <app-common/zap-generated/cluster-objects.h>
+
+#import <Foundation/Foundation.h>
+
+@implementation MCNullObjectType
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ return CHIP_NO_ERROR;
+}
+@end
+
+// OnOff cluster:
+
+@implementation MCOnOffClusterOffCommand
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::OnOff::Commands::Off::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::OnOff::Commands::Off::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MCOnOffClusterOffParams *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto & cppRequest = std::any_cast<chip::app::Clusters::OnOff::Commands::Off::Type &>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::OnOff::Commands::Off::Type>(cppRequest));
+ } catch (const std::bad_any_cast & e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ MCNullObjectType * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::OnOff::Commands::Off::Type::ResponseType>)) {
+ objCResponse = [[MCNullObjectType
+ alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MCOnOffClusterOffCommand getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+@implementation MCOnOffClusterOnCommand
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::OnOff::Commands::On::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::OnOff::Commands::On::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MCOnOffClusterOnParams *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto & cppRequest = std::any_cast<chip::app::Clusters::OnOff::Commands::On::Type &>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::OnOff::Commands::On::Type>(cppRequest));
+ } catch (const std::bad_any_cast & e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ MCNullObjectType * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::OnOff::Commands::On::Type::ResponseType>)) {
+ objCResponse = [[MCNullObjectType
+ alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MCOnOffClusterOnCommand getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+@implementation MCOnOffClusterToggleCommand
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::OnOff::Commands::Toggle::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::OnOff::Commands::Toggle::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MCOnOffClusterToggleParams *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto & cppRequest = std::any_cast<chip::app::Clusters::OnOff::Commands::Toggle::Type &>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::OnOff::Commands::Toggle::Type>(cppRequest));
+ } catch (const std::bad_any_cast & e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ MCNullObjectType * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::OnOff::Commands::Toggle::Type::ResponseType>)) {
+ objCResponse = [[MCNullObjectType
+ alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MCOnOffClusterToggleCommand getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+@implementation MCOnOffClusterOffWithEffectCommand
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::OnOff::Commands::OffWithEffect::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::OnOff::Commands::OffWithEffect::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MCOnOffClusterOffWithEffectParams *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto & cppRequest = std::any_cast<chip::app::Clusters::OnOff::Commands::OffWithEffect::Type &>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::OnOff::Commands::OffWithEffect::Type>(cppRequest));
+ } catch (const std::bad_any_cast & e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ MCNullObjectType * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::OnOff::Commands::OffWithEffect::Type::ResponseType>)) {
+ objCResponse = [[MCNullObjectType
+ alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MCOnOffClusterOffWithEffectCommand getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+@implementation MCOnOffClusterOnWithRecallGlobalSceneCommand
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::OnOff::Commands::OnWithRecallGlobalScene::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::OnOff::Commands::OnWithRecallGlobalScene::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MCOnOffClusterOnWithRecallGlobalSceneParams *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto & cppRequest = std::any_cast<chip::app::Clusters::OnOff::Commands::OnWithRecallGlobalScene::Type &>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::OnOff::Commands::OnWithRecallGlobalScene::Type>(cppRequest));
+ } catch (const std::bad_any_cast & e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ MCNullObjectType * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::OnOff::Commands::OnWithRecallGlobalScene::Type::ResponseType>)) {
+ objCResponse = [[MCNullObjectType
+ alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MCOnOffClusterOnWithRecallGlobalSceneCommand getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+@implementation MCOnOffClusterOnWithTimedOffCommand
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::OnOff::Commands::OnWithTimedOff::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::OnOff::Commands::OnWithTimedOff::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MCOnOffClusterOnWithTimedOffParams *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto & cppRequest = std::any_cast<chip::app::Clusters::OnOff::Commands::OnWithTimedOff::Type &>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::OnOff::Commands::OnWithTimedOff::Type>(cppRequest));
+ } catch (const std::bad_any_cast & e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ MCNullObjectType * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::OnOff::Commands::OnWithTimedOff::Type::ResponseType>)) {
+ objCResponse = [[MCNullObjectType
+ alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MCOnOffClusterOnWithTimedOffCommand getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+// LevelControl cluster:
+
+@implementation MCLevelControlClusterMoveToLevelCommand
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::LevelControl::Commands::MoveToLevel::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::LevelControl::Commands::MoveToLevel::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MCLevelControlClusterMoveToLevelParams *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto & cppRequest = std::any_cast<chip::app::Clusters::LevelControl::Commands::MoveToLevel::Type &>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::LevelControl::Commands::MoveToLevel::Type>(cppRequest));
+ } catch (const std::bad_any_cast & e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ MCNullObjectType * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::LevelControl::Commands::MoveToLevel::Type::ResponseType>)) {
+ objCResponse = [[MCNullObjectType
+ alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MCLevelControlClusterMoveToLevelCommand getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+@implementation MCLevelControlClusterMoveCommand
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::LevelControl::Commands::Move::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::LevelControl::Commands::Move::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MCLevelControlClusterMoveParams *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto & cppRequest = std::any_cast<chip::app::Clusters::LevelControl::Commands::Move::Type &>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::LevelControl::Commands::Move::Type>(cppRequest));
+ } catch (const std::bad_any_cast & e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ MCNullObjectType * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::LevelControl::Commands::Move::Type::ResponseType>)) {
+ objCResponse = [[MCNullObjectType
+ alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MCLevelControlClusterMoveCommand getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+@implementation MCLevelControlClusterStepCommand
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::LevelControl::Commands::Step::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::LevelControl::Commands::Step::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MCLevelControlClusterStepParams *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto & cppRequest = std::any_cast<chip::app::Clusters::LevelControl::Commands::Step::Type &>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::LevelControl::Commands::Step::Type>(cppRequest));
+ } catch (const std::bad_any_cast & e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ MCNullObjectType * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::LevelControl::Commands::Step::Type::ResponseType>)) {
+ objCResponse = [[MCNullObjectType
+ alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MCLevelControlClusterStepCommand getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+@implementation MCLevelControlClusterStopCommand
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::LevelControl::Commands::Stop::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::LevelControl::Commands::Stop::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MCLevelControlClusterStopParams *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto & cppRequest = std::any_cast<chip::app::Clusters::LevelControl::Commands::Stop::Type &>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::LevelControl::Commands::Stop::Type>(cppRequest));
+ } catch (const std::bad_any_cast & e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ MCNullObjectType * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::LevelControl::Commands::Stop::Type::ResponseType>)) {
+ objCResponse = [[MCNullObjectType
+ alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MCLevelControlClusterStopCommand getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+@implementation MCLevelControlClusterMoveToLevelWithOnOffCommand
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::LevelControl::Commands::MoveToLevelWithOnOff::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::LevelControl::Commands::MoveToLevelWithOnOff::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MCLevelControlClusterMoveToLevelWithOnOffParams *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto & cppRequest = std::any_cast<chip::app::Clusters::LevelControl::Commands::MoveToLevelWithOnOff::Type &>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::LevelControl::Commands::MoveToLevelWithOnOff::Type>(cppRequest));
+ } catch (const std::bad_any_cast & e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ MCNullObjectType * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::LevelControl::Commands::MoveToLevelWithOnOff::Type::ResponseType>)) {
+ objCResponse = [[MCNullObjectType
+ alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MCLevelControlClusterMoveToLevelWithOnOffCommand getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+@implementation MCLevelControlClusterMoveWithOnOffCommand
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::LevelControl::Commands::MoveWithOnOff::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::LevelControl::Commands::MoveWithOnOff::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MCLevelControlClusterMoveWithOnOffParams *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto & cppRequest = std::any_cast<chip::app::Clusters::LevelControl::Commands::MoveWithOnOff::Type &>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::LevelControl::Commands::MoveWithOnOff::Type>(cppRequest));
+ } catch (const std::bad_any_cast & e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ MCNullObjectType * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::LevelControl::Commands::MoveWithOnOff::Type::ResponseType>)) {
+ objCResponse = [[MCNullObjectType
+ alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MCLevelControlClusterMoveWithOnOffCommand getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+@implementation MCLevelControlClusterStepWithOnOffCommand
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::LevelControl::Commands::StepWithOnOff::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::LevelControl::Commands::StepWithOnOff::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MCLevelControlClusterStepWithOnOffParams *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto & cppRequest = std::any_cast<chip::app::Clusters::LevelControl::Commands::StepWithOnOff::Type &>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::LevelControl::Commands::StepWithOnOff::Type>(cppRequest));
+ } catch (const std::bad_any_cast & e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ MCNullObjectType * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::LevelControl::Commands::StepWithOnOff::Type::ResponseType>)) {
+ objCResponse = [[MCNullObjectType
+ alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MCLevelControlClusterStepWithOnOffCommand getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+@implementation MCLevelControlClusterStopWithOnOffCommand
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::LevelControl::Commands::StopWithOnOff::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::LevelControl::Commands::StopWithOnOff::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MCLevelControlClusterStopWithOnOffParams *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto & cppRequest = std::any_cast<chip::app::Clusters::LevelControl::Commands::StopWithOnOff::Type &>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::LevelControl::Commands::StopWithOnOff::Type>(cppRequest));
+ } catch (const std::bad_any_cast & e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ MCNullObjectType * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::LevelControl::Commands::StopWithOnOff::Type::ResponseType>)) {
+ objCResponse = [[MCNullObjectType
+ alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MCLevelControlClusterStopWithOnOffCommand getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+@implementation MCLevelControlClusterMoveToClosestFrequencyCommand
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::LevelControl::Commands::MoveToClosestFrequency::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::LevelControl::Commands::MoveToClosestFrequency::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MCLevelControlClusterMoveToClosestFrequencyParams *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto & cppRequest = std::any_cast<chip::app::Clusters::LevelControl::Commands::MoveToClosestFrequency::Type &>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::LevelControl::Commands::MoveToClosestFrequency::Type>(cppRequest));
+ } catch (const std::bad_any_cast & e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ MCNullObjectType * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::LevelControl::Commands::MoveToClosestFrequency::Type::ResponseType>)) {
+ objCResponse = [[MCNullObjectType
+ alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MCLevelControlClusterMoveToClosestFrequencyCommand getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+// WakeOnLan cluster:
+
+// TargetNavigator cluster:
+
+@implementation MCTargetNavigatorClusterNavigateTargetCommand
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::TargetNavigator::Commands::NavigateTarget::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::TargetNavigator::Commands::NavigateTarget::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MCTargetNavigatorClusterNavigateTargetParams *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto & cppRequest = std::any_cast<chip::app::Clusters::TargetNavigator::Commands::NavigateTarget::Type &>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::TargetNavigator::Commands::NavigateTarget::Type>(cppRequest));
+ } catch (const std::bad_any_cast & e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ MCTargetNavigatorClusterNavigateTargetResponseParams * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::TargetNavigator::Commands::NavigateTarget::Type::ResponseType>)) {
+ objCResponse = [[MCTargetNavigatorClusterNavigateTargetResponseParams
+ alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MCTargetNavigatorClusterNavigateTargetCommand getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+// MediaPlayback cluster:
+
+@implementation MCMediaPlaybackClusterPlayCommand
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::MediaPlayback::Commands::Play::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::MediaPlayback::Commands::Play::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MCMediaPlaybackClusterPlayParams *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto & cppRequest = std::any_cast<chip::app::Clusters::MediaPlayback::Commands::Play::Type &>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::MediaPlayback::Commands::Play::Type>(cppRequest));
+ } catch (const std::bad_any_cast & e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ MCMediaPlaybackClusterPlaybackResponseParams * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::MediaPlayback::Commands::Play::Type::ResponseType>)) {
+ objCResponse = [[MCMediaPlaybackClusterPlaybackResponseParams
+ alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MCMediaPlaybackClusterPlayCommand getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+@implementation MCMediaPlaybackClusterPauseCommand
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::MediaPlayback::Commands::Pause::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::MediaPlayback::Commands::Pause::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MCMediaPlaybackClusterPauseParams *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto & cppRequest = std::any_cast<chip::app::Clusters::MediaPlayback::Commands::Pause::Type &>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::MediaPlayback::Commands::Pause::Type>(cppRequest));
+ } catch (const std::bad_any_cast & e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ MCMediaPlaybackClusterPlaybackResponseParams * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::MediaPlayback::Commands::Pause::Type::ResponseType>)) {
+ objCResponse = [[MCMediaPlaybackClusterPlaybackResponseParams
+ alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MCMediaPlaybackClusterPauseCommand getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+@implementation MCMediaPlaybackClusterStopCommand
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::MediaPlayback::Commands::Stop::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::MediaPlayback::Commands::Stop::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MCMediaPlaybackClusterStopParams *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto & cppRequest = std::any_cast<chip::app::Clusters::MediaPlayback::Commands::Stop::Type &>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::MediaPlayback::Commands::Stop::Type>(cppRequest));
+ } catch (const std::bad_any_cast & e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ MCMediaPlaybackClusterPlaybackResponseParams * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::MediaPlayback::Commands::Stop::Type::ResponseType>)) {
+ objCResponse = [[MCMediaPlaybackClusterPlaybackResponseParams
+ alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MCMediaPlaybackClusterStopCommand getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+@implementation MCMediaPlaybackClusterStartOverCommand
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::MediaPlayback::Commands::StartOver::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::MediaPlayback::Commands::StartOver::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MCMediaPlaybackClusterStartOverParams *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto & cppRequest = std::any_cast<chip::app::Clusters::MediaPlayback::Commands::StartOver::Type &>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::MediaPlayback::Commands::StartOver::Type>(cppRequest));
+ } catch (const std::bad_any_cast & e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ MCMediaPlaybackClusterPlaybackResponseParams * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::MediaPlayback::Commands::StartOver::Type::ResponseType>)) {
+ objCResponse = [[MCMediaPlaybackClusterPlaybackResponseParams
+ alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MCMediaPlaybackClusterStartOverCommand getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+@implementation MCMediaPlaybackClusterPreviousCommand
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::MediaPlayback::Commands::Previous::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::MediaPlayback::Commands::Previous::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MCMediaPlaybackClusterPreviousParams *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto & cppRequest = std::any_cast<chip::app::Clusters::MediaPlayback::Commands::Previous::Type &>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::MediaPlayback::Commands::Previous::Type>(cppRequest));
+ } catch (const std::bad_any_cast & e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ MCMediaPlaybackClusterPlaybackResponseParams * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::MediaPlayback::Commands::Previous::Type::ResponseType>)) {
+ objCResponse = [[MCMediaPlaybackClusterPlaybackResponseParams
+ alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MCMediaPlaybackClusterPreviousCommand getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+@implementation MCMediaPlaybackClusterNextCommand
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::MediaPlayback::Commands::Next::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::MediaPlayback::Commands::Next::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MCMediaPlaybackClusterNextParams *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto & cppRequest = std::any_cast<chip::app::Clusters::MediaPlayback::Commands::Next::Type &>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::MediaPlayback::Commands::Next::Type>(cppRequest));
+ } catch (const std::bad_any_cast & e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ MCMediaPlaybackClusterPlaybackResponseParams * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::MediaPlayback::Commands::Next::Type::ResponseType>)) {
+ objCResponse = [[MCMediaPlaybackClusterPlaybackResponseParams
+ alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MCMediaPlaybackClusterNextCommand getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+@implementation MCMediaPlaybackClusterRewindCommand
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::MediaPlayback::Commands::Rewind::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::MediaPlayback::Commands::Rewind::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MCMediaPlaybackClusterRewindParams *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto & cppRequest = std::any_cast<chip::app::Clusters::MediaPlayback::Commands::Rewind::Type &>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::MediaPlayback::Commands::Rewind::Type>(cppRequest));
+ } catch (const std::bad_any_cast & e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ MCMediaPlaybackClusterPlaybackResponseParams * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::MediaPlayback::Commands::Rewind::Type::ResponseType>)) {
+ objCResponse = [[MCMediaPlaybackClusterPlaybackResponseParams
+ alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MCMediaPlaybackClusterRewindCommand getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+@implementation MCMediaPlaybackClusterFastForwardCommand
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::MediaPlayback::Commands::FastForward::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::MediaPlayback::Commands::FastForward::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MCMediaPlaybackClusterFastForwardParams *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto & cppRequest = std::any_cast<chip::app::Clusters::MediaPlayback::Commands::FastForward::Type &>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::MediaPlayback::Commands::FastForward::Type>(cppRequest));
+ } catch (const std::bad_any_cast & e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ MCMediaPlaybackClusterPlaybackResponseParams * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::MediaPlayback::Commands::FastForward::Type::ResponseType>)) {
+ objCResponse = [[MCMediaPlaybackClusterPlaybackResponseParams
+ alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MCMediaPlaybackClusterFastForwardCommand getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+@implementation MCMediaPlaybackClusterSkipForwardCommand
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::MediaPlayback::Commands::SkipForward::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::MediaPlayback::Commands::SkipForward::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MCMediaPlaybackClusterSkipForwardParams *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto & cppRequest = std::any_cast<chip::app::Clusters::MediaPlayback::Commands::SkipForward::Type &>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::MediaPlayback::Commands::SkipForward::Type>(cppRequest));
+ } catch (const std::bad_any_cast & e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ MCMediaPlaybackClusterPlaybackResponseParams * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::MediaPlayback::Commands::SkipForward::Type::ResponseType>)) {
+ objCResponse = [[MCMediaPlaybackClusterPlaybackResponseParams
+ alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MCMediaPlaybackClusterSkipForwardCommand getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+@implementation MCMediaPlaybackClusterSkipBackwardCommand
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::MediaPlayback::Commands::SkipBackward::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::MediaPlayback::Commands::SkipBackward::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MCMediaPlaybackClusterSkipBackwardParams *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto & cppRequest = std::any_cast<chip::app::Clusters::MediaPlayback::Commands::SkipBackward::Type &>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::MediaPlayback::Commands::SkipBackward::Type>(cppRequest));
+ } catch (const std::bad_any_cast & e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ MCMediaPlaybackClusterPlaybackResponseParams * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::MediaPlayback::Commands::SkipBackward::Type::ResponseType>)) {
+ objCResponse = [[MCMediaPlaybackClusterPlaybackResponseParams
+ alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MCMediaPlaybackClusterSkipBackwardCommand getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+@implementation MCMediaPlaybackClusterSeekCommand
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::MediaPlayback::Commands::Seek::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::MediaPlayback::Commands::Seek::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MCMediaPlaybackClusterSeekParams *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto & cppRequest = std::any_cast<chip::app::Clusters::MediaPlayback::Commands::Seek::Type &>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::MediaPlayback::Commands::Seek::Type>(cppRequest));
+ } catch (const std::bad_any_cast & e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ MCMediaPlaybackClusterPlaybackResponseParams * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::MediaPlayback::Commands::Seek::Type::ResponseType>)) {
+ objCResponse = [[MCMediaPlaybackClusterPlaybackResponseParams
+ alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MCMediaPlaybackClusterSeekCommand getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+@implementation MCMediaPlaybackClusterActivateAudioTrackCommand
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::MediaPlayback::Commands::ActivateAudioTrack::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::MediaPlayback::Commands::ActivateAudioTrack::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MCMediaPlaybackClusterActivateAudioTrackParams *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto & cppRequest = std::any_cast<chip::app::Clusters::MediaPlayback::Commands::ActivateAudioTrack::Type &>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::MediaPlayback::Commands::ActivateAudioTrack::Type>(cppRequest));
+ } catch (const std::bad_any_cast & e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ MCNullObjectType * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::MediaPlayback::Commands::ActivateAudioTrack::Type::ResponseType>)) {
+ objCResponse = [[MCNullObjectType
+ alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MCMediaPlaybackClusterActivateAudioTrackCommand getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+@implementation MCMediaPlaybackClusterActivateTextTrackCommand
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::MediaPlayback::Commands::ActivateTextTrack::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::MediaPlayback::Commands::ActivateTextTrack::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MCMediaPlaybackClusterActivateTextTrackParams *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto & cppRequest = std::any_cast<chip::app::Clusters::MediaPlayback::Commands::ActivateTextTrack::Type &>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::MediaPlayback::Commands::ActivateTextTrack::Type>(cppRequest));
+ } catch (const std::bad_any_cast & e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ MCNullObjectType * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::MediaPlayback::Commands::ActivateTextTrack::Type::ResponseType>)) {
+ objCResponse = [[MCNullObjectType
+ alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MCMediaPlaybackClusterActivateTextTrackCommand getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+@implementation MCMediaPlaybackClusterDeactivateTextTrackCommand
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::MediaPlayback::Commands::DeactivateTextTrack::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::MediaPlayback::Commands::DeactivateTextTrack::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MCMediaPlaybackClusterDeactivateTextTrackParams *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto & cppRequest = std::any_cast<chip::app::Clusters::MediaPlayback::Commands::DeactivateTextTrack::Type &>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::MediaPlayback::Commands::DeactivateTextTrack::Type>(cppRequest));
+ } catch (const std::bad_any_cast & e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ MCNullObjectType * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::MediaPlayback::Commands::DeactivateTextTrack::Type::ResponseType>)) {
+ objCResponse = [[MCNullObjectType
+ alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MCMediaPlaybackClusterDeactivateTextTrackCommand getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+// KeypadInput cluster:
+
+@implementation MCKeypadInputClusterSendKeyCommand
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::KeypadInput::Commands::SendKey::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::KeypadInput::Commands::SendKey::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MCKeypadInputClusterSendKeyParams *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto & cppRequest = std::any_cast<chip::app::Clusters::KeypadInput::Commands::SendKey::Type &>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::KeypadInput::Commands::SendKey::Type>(cppRequest));
+ } catch (const std::bad_any_cast & e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ MCKeypadInputClusterSendKeyResponseParams * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::KeypadInput::Commands::SendKey::Type::ResponseType>)) {
+ objCResponse = [[MCKeypadInputClusterSendKeyResponseParams
+ alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MCKeypadInputClusterSendKeyCommand getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+// ContentLauncher cluster:
+
+@implementation MCContentLauncherClusterLaunchContentCommand
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::ContentLauncher::Commands::LaunchContent::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::ContentLauncher::Commands::LaunchContent::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MCContentLauncherClusterLaunchContentParams *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto & cppRequest = std::any_cast<chip::app::Clusters::ContentLauncher::Commands::LaunchContent::Type &>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::ContentLauncher::Commands::LaunchContent::Type>(cppRequest));
+ } catch (const std::bad_any_cast & e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ MCContentLauncherClusterLauncherResponseParams * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::ContentLauncher::Commands::LaunchContent::Type::ResponseType>)) {
+ objCResponse = [[MCContentLauncherClusterLauncherResponseParams
+ alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MCContentLauncherClusterLaunchContentCommand getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+@implementation MCContentLauncherClusterLaunchURLCommand
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::ContentLauncher::Commands::LaunchURL::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::ContentLauncher::Commands::LaunchURL::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MCContentLauncherClusterLaunchURLParams *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto & cppRequest = std::any_cast<chip::app::Clusters::ContentLauncher::Commands::LaunchURL::Type &>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::ContentLauncher::Commands::LaunchURL::Type>(cppRequest));
+ } catch (const std::bad_any_cast & e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ MCContentLauncherClusterLauncherResponseParams * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::ContentLauncher::Commands::LaunchURL::Type::ResponseType>)) {
+ objCResponse = [[MCContentLauncherClusterLauncherResponseParams
+ alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MCContentLauncherClusterLaunchURLCommand getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+// ApplicationLauncher cluster:
+
+@implementation MCApplicationLauncherClusterLaunchAppCommand
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::ApplicationLauncher::Commands::LaunchApp::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::ApplicationLauncher::Commands::LaunchApp::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MCApplicationLauncherClusterLaunchAppParams *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto & cppRequest = std::any_cast<chip::app::Clusters::ApplicationLauncher::Commands::LaunchApp::Type &>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::ApplicationLauncher::Commands::LaunchApp::Type>(cppRequest));
+ } catch (const std::bad_any_cast & e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ MCApplicationLauncherClusterLauncherResponseParams * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::ApplicationLauncher::Commands::LaunchApp::Type::ResponseType>)) {
+ objCResponse = [[MCApplicationLauncherClusterLauncherResponseParams
+ alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MCApplicationLauncherClusterLaunchAppCommand getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+@implementation MCApplicationLauncherClusterStopAppCommand
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::ApplicationLauncher::Commands::StopApp::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::ApplicationLauncher::Commands::StopApp::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MCApplicationLauncherClusterStopAppParams *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto & cppRequest = std::any_cast<chip::app::Clusters::ApplicationLauncher::Commands::StopApp::Type &>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::ApplicationLauncher::Commands::StopApp::Type>(cppRequest));
+ } catch (const std::bad_any_cast & e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ MCApplicationLauncherClusterLauncherResponseParams * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::ApplicationLauncher::Commands::StopApp::Type::ResponseType>)) {
+ objCResponse = [[MCApplicationLauncherClusterLauncherResponseParams
+ alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MCApplicationLauncherClusterStopAppCommand getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+@implementation MCApplicationLauncherClusterHideAppCommand
+- (void)invoke:(id)request
+ context:(void * _Nullable)context
+ completion:(void (^_Nonnull __strong)(void *, NSError *, id))completion
+ timedInvokeTimeoutMs:(NSNumber * _Nullable)timedInvokeTimeoutMs
+{
+ MCCommandTemplate<chip::app::Clusters::ApplicationLauncher::Commands::HideApp::Type> * mcCommand = new MCCommandTemplate<chip::app::Clusters::ApplicationLauncher::Commands::HideApp::Type>(
+ self.cppCommand,
+ [self](id objCRequest) {
+ return [self getCppRequestFromObjC:objCRequest];
+ },
+ [self](std::any cppResponse) {
+ return [self getObjCResponseFromCpp:cppResponse];
+ });
+ mcCommand->invoke(
+ request, context, [mcCommand, completion](void * context, NSError * err, id response) {
+ completion(context, err, response);
+ delete mcCommand;
+ }, timedInvokeTimeoutMs);
+}
+
+- (std::any)getCppRequestFromObjC:(MCApplicationLauncherClusterHideAppParams *)objcRequest
+{
+ VerifyOrReturnValue(objcRequest != nil, nullptr);
+ std::any anyCppRequest = [objcRequest getCppRequestFromObjCRequest];
+ if (anyCppRequest.has_value()) {
+ try {
+ // Extract the object from std::any and convert it to a std::shared_ptr
+ auto & cppRequest = std::any_cast<chip::app::Clusters::ApplicationLauncher::Commands::HideApp::Type &>(anyCppRequest);
+ return std::any(std::make_shared<chip::app::Clusters::ApplicationLauncher::Commands::HideApp::Type>(cppRequest));
+ } catch (const std::bad_any_cast & e) {
+ return nullptr;
+ }
+ }
+ return nullptr;
+}
+
+- (id)getObjCResponseFromCpp:(std::any)cppResponse
+{
+ MCApplicationLauncherClusterLauncherResponseParams * objCResponse = nil;
+ CHIP_ERROR err = CHIP_NO_ERROR;
+ if (cppResponse.type() == typeid(std::shared_ptr<const chip::app::Clusters::ApplicationLauncher::Commands::HideApp::Type::ResponseType>)) {
+ objCResponse = [[MCApplicationLauncherClusterLauncherResponseParams
+ alloc] init];
+ // Set the ObjC response fields using the given cpp Response
+ err = [objCResponse setObjCResponseFromCppResponse:cppResponse];
+ VerifyOrReturnValue(err == CHIP_NO_ERROR, nil, ChipLogError(AppServer, "MCApplicationLauncherClusterHideAppCommand getObjCResponseFromCpp() failed"));
+ }
+ return objCResponse;
+}
+@end
+
+// ApplicationBasic cluster:
diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCCommandPayloads.h b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCCommandPayloads.h
new file mode 100644
index 0000000..367bfc3
--- /dev/null
+++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCCommandPayloads.h
@@ -0,0 +1,236 @@
+/*
+ *
+ * Copyright (c) 2022 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.
+ */
+
+// THIS FILE IS GENERATED BY ZAP
+
+#import "MCInteractionModelStructs.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface MCAbstractPayload : NSObject <NSCopying>
+@end
+
+// OnOff cluster:
+
+@interface MCOnOffClusterOffParams : MCAbstractPayload
+@end
+
+@interface MCOnOffClusterOnParams : MCAbstractPayload
+@end
+
+@interface MCOnOffClusterToggleParams : MCAbstractPayload
+@end
+
+@interface MCOnOffClusterOffWithEffectParams : MCAbstractPayload
+@property (nonatomic, copy) NSNumber * _Nonnull effectIdentifier;
+@property (nonatomic, copy) NSNumber * _Nonnull effectVariant;
+@end
+
+@interface MCOnOffClusterOnWithRecallGlobalSceneParams : MCAbstractPayload
+@end
+
+@interface MCOnOffClusterOnWithTimedOffParams : MCAbstractPayload
+@property (nonatomic, copy) NSNumber * _Nonnull onOffControl;
+@property (nonatomic, copy) NSNumber * _Nonnull onTime;
+@property (nonatomic, copy) NSNumber * _Nonnull offWaitTime;
+@end
+
+// LevelControl cluster:
+
+@interface MCLevelControlClusterMoveToLevelParams : MCAbstractPayload
+@property (nonatomic, copy) NSNumber * _Nonnull level;
+@property (nonatomic, copy) NSNumber * _Nullable transitionTime;
+@property (nonatomic, copy) NSNumber * _Nonnull optionsMask;
+@property (nonatomic, copy) NSNumber * _Nonnull optionsOverride;
+@end
+
+@interface MCLevelControlClusterMoveParams : MCAbstractPayload
+@property (nonatomic, copy) NSNumber * _Nonnull moveMode;
+@property (nonatomic, copy) NSNumber * _Nullable rate;
+@property (nonatomic, copy) NSNumber * _Nonnull optionsMask;
+@property (nonatomic, copy) NSNumber * _Nonnull optionsOverride;
+@end
+
+@interface MCLevelControlClusterStepParams : MCAbstractPayload
+@property (nonatomic, copy) NSNumber * _Nonnull stepMode;
+@property (nonatomic, copy) NSNumber * _Nonnull stepSize;
+@property (nonatomic, copy) NSNumber * _Nullable transitionTime;
+@property (nonatomic, copy) NSNumber * _Nonnull optionsMask;
+@property (nonatomic, copy) NSNumber * _Nonnull optionsOverride;
+@end
+
+@interface MCLevelControlClusterStopParams : MCAbstractPayload
+@property (nonatomic, copy) NSNumber * _Nonnull optionsMask;
+@property (nonatomic, copy) NSNumber * _Nonnull optionsOverride;
+@end
+
+@interface MCLevelControlClusterMoveToLevelWithOnOffParams : MCAbstractPayload
+@property (nonatomic, copy) NSNumber * _Nonnull level;
+@property (nonatomic, copy) NSNumber * _Nullable transitionTime;
+@property (nonatomic, copy) NSNumber * _Nonnull optionsMask;
+@property (nonatomic, copy) NSNumber * _Nonnull optionsOverride;
+@end
+
+@interface MCLevelControlClusterMoveWithOnOffParams : MCAbstractPayload
+@property (nonatomic, copy) NSNumber * _Nonnull moveMode;
+@property (nonatomic, copy) NSNumber * _Nullable rate;
+@property (nonatomic, copy) NSNumber * _Nonnull optionsMask;
+@property (nonatomic, copy) NSNumber * _Nonnull optionsOverride;
+@end
+
+@interface MCLevelControlClusterStepWithOnOffParams : MCAbstractPayload
+@property (nonatomic, copy) NSNumber * _Nonnull stepMode;
+@property (nonatomic, copy) NSNumber * _Nonnull stepSize;
+@property (nonatomic, copy) NSNumber * _Nullable transitionTime;
+@property (nonatomic, copy) NSNumber * _Nonnull optionsMask;
+@property (nonatomic, copy) NSNumber * _Nonnull optionsOverride;
+@end
+
+@interface MCLevelControlClusterStopWithOnOffParams : MCAbstractPayload
+@property (nonatomic, copy) NSNumber * _Nonnull optionsMask;
+@property (nonatomic, copy) NSNumber * _Nonnull optionsOverride;
+@end
+
+@interface MCLevelControlClusterMoveToClosestFrequencyParams : MCAbstractPayload
+@property (nonatomic, copy) NSNumber * _Nonnull frequency;
+@end
+
+// WakeOnLan cluster:
+
+// TargetNavigator cluster:
+
+@interface MCTargetNavigatorClusterNavigateTargetParams : MCAbstractPayload
+@property (nonatomic, copy) NSNumber * _Nonnull target;
+@property (nonatomic, copy) NSString * _Nullable data;
+@end
+
+@interface MCTargetNavigatorClusterNavigateTargetResponseParams : MCAbstractPayload
+@property (nonatomic, copy) NSNumber * _Nonnull status;
+@property (nonatomic, copy) NSString * _Nullable data;
+@end
+
+// MediaPlayback cluster:
+
+@interface MCMediaPlaybackClusterPlayParams : MCAbstractPayload
+@end
+
+@interface MCMediaPlaybackClusterPauseParams : MCAbstractPayload
+@end
+
+@interface MCMediaPlaybackClusterStopParams : MCAbstractPayload
+@end
+
+@interface MCMediaPlaybackClusterStartOverParams : MCAbstractPayload
+@end
+
+@interface MCMediaPlaybackClusterPreviousParams : MCAbstractPayload
+@end
+
+@interface MCMediaPlaybackClusterNextParams : MCAbstractPayload
+@end
+
+@interface MCMediaPlaybackClusterRewindParams : MCAbstractPayload
+@property (nonatomic, copy) NSNumber * _Nullable audioAdvanceUnmuted;
+@end
+
+@interface MCMediaPlaybackClusterFastForwardParams : MCAbstractPayload
+@property (nonatomic, copy) NSNumber * _Nullable audioAdvanceUnmuted;
+@end
+
+@interface MCMediaPlaybackClusterSkipForwardParams : MCAbstractPayload
+@property (nonatomic, copy) NSNumber * _Nonnull deltaPositionMilliseconds;
+@end
+
+@interface MCMediaPlaybackClusterSkipBackwardParams : MCAbstractPayload
+@property (nonatomic, copy) NSNumber * _Nonnull deltaPositionMilliseconds;
+@end
+
+@interface MCMediaPlaybackClusterPlaybackResponseParams : MCAbstractPayload
+@property (nonatomic, copy) NSNumber * _Nonnull status;
+@property (nonatomic, copy) NSString * _Nullable data;
+@end
+
+@interface MCMediaPlaybackClusterSeekParams : MCAbstractPayload
+@property (nonatomic, copy) NSNumber * _Nonnull position;
+@end
+
+@interface MCMediaPlaybackClusterActivateAudioTrackParams : MCAbstractPayload
+@property (nonatomic, copy) NSString * _Nonnull trackID;
+@property (nonatomic, copy) NSNumber * _Nonnull audioOutputIndex;
+@end
+
+@interface MCMediaPlaybackClusterActivateTextTrackParams : MCAbstractPayload
+@property (nonatomic, copy) NSString * _Nonnull trackID;
+@end
+
+@interface MCMediaPlaybackClusterDeactivateTextTrackParams : MCAbstractPayload
+@end
+
+// KeypadInput cluster:
+
+@interface MCKeypadInputClusterSendKeyParams : MCAbstractPayload
+@property (nonatomic, copy) NSNumber * _Nonnull keyCode;
+@end
+
+@interface MCKeypadInputClusterSendKeyResponseParams : MCAbstractPayload
+@property (nonatomic, copy) NSNumber * _Nonnull status;
+@end
+
+// ContentLauncher cluster:
+
+@interface MCContentLauncherClusterLaunchContentParams : MCAbstractPayload
+@property (nonatomic, copy) MCContentLauncherClusterContentSearchStruct * _Nonnull search;
+@property (nonatomic, copy) NSNumber * _Nonnull autoPlay;
+@property (nonatomic, copy) NSString * _Nullable data;
+@property (nonatomic, copy) MCContentLauncherClusterPlaybackPreferencesStruct * _Nullable playbackPreferences;
+@property (nonatomic, copy) NSNumber * _Nullable useCurrentContext;
+@end
+
+@interface MCContentLauncherClusterLaunchURLParams : MCAbstractPayload
+@property (nonatomic, copy) NSString * _Nonnull contentURL;
+@property (nonatomic, copy) NSString * _Nullable displayString;
+@property (nonatomic, copy) MCContentLauncherClusterBrandingInformationStruct * _Nullable brandingInformation;
+@end
+
+@interface MCContentLauncherClusterLauncherResponseParams : MCAbstractPayload
+@property (nonatomic, copy) NSNumber * _Nonnull status;
+@property (nonatomic, copy) NSString * _Nullable data;
+@end
+
+// ApplicationLauncher cluster:
+
+@interface MCApplicationLauncherClusterLaunchAppParams : MCAbstractPayload
+@property (nonatomic, copy) MCApplicationLauncherClusterApplicationStruct * _Nullable application;
+@property (nonatomic, copy) NSData * _Nullable data;
+@end
+
+@interface MCApplicationLauncherClusterStopAppParams : MCAbstractPayload
+@property (nonatomic, copy) MCApplicationLauncherClusterApplicationStruct * _Nullable application;
+@end
+
+@interface MCApplicationLauncherClusterHideAppParams : MCAbstractPayload
+@property (nonatomic, copy) MCApplicationLauncherClusterApplicationStruct * _Nullable application;
+@end
+
+@interface MCApplicationLauncherClusterLauncherResponseParams : MCAbstractPayload
+@property (nonatomic, copy) NSNumber * _Nonnull status;
+@property (nonatomic, copy) NSData * _Nullable data;
+@end
+
+// ApplicationBasic cluster:
+
+NS_ASSUME_NONNULL_END
diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCCommandPayloads.mm b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCCommandPayloads.mm
new file mode 100644
index 0000000..fe0676d
--- /dev/null
+++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCCommandPayloads.mm
@@ -0,0 +1,2292 @@
+/*
+ *
+ * Copyright (c) 2022 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.
+ */
+
+// THIS FILE IS GENERATED BY ZAP
+
+#import "MCCommandPayloads_Internal.h"
+
+#import "../MCAttribute_Internal.h"
+#import "../MCCastingApp.h"
+#import "../MCErrorUtils.h"
+#import "../NSDataSpanConversion.h"
+#import "../NSStringSpanConversion.h"
+
+#include <app/data-model/Decode.h>
+#include <app/data-model/ListLargeSystemExtensions.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@implementation MCAbstractPayload
+- (std::any)getCppRequestFromObjCRequest
+{
+ return nil;
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ return CHIP_NO_ERROR;
+}
+
+- (nonnull id)copyWithZone:(nullable NSZone *)zone
+{
+ auto other = [[MCAbstractPayload alloc] init];
+
+ return other;
+}
+@end
+
+// OnOff cluster:
+
+@implementation MCOnOffClusterOffParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCOnOffClusterOffParams alloc] init];
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: >", NSStringFromClass([self class])];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::OnOff::Commands::Off::Type cppStruct;
+ ListFreer listFreer;
+
+ return std::any(cppStruct);
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+@end
+
+@implementation MCOnOffClusterOnParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCOnOffClusterOnParams alloc] init];
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: >", NSStringFromClass([self class])];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::OnOff::Commands::On::Type cppStruct;
+ ListFreer listFreer;
+
+ return std::any(cppStruct);
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+@end
+
+@implementation MCOnOffClusterToggleParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCOnOffClusterToggleParams alloc] init];
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: >", NSStringFromClass([self class])];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::OnOff::Commands::Toggle::Type cppStruct;
+ ListFreer listFreer;
+
+ return std::any(cppStruct);
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+@end
+
+@implementation MCOnOffClusterOffWithEffectParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _effectIdentifier = @(0);
+
+ _effectVariant = @(0);
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCOnOffClusterOffWithEffectParams alloc] init];
+
+ other.effectIdentifier = self.effectIdentifier;
+ other.effectVariant = self.effectVariant;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: effectIdentifier:%@; effectVariant:%@; >", NSStringFromClass([self class]), _effectIdentifier, _effectVariant];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::OnOff::Commands::OffWithEffect::Type cppStruct;
+ ListFreer listFreer;
+ {
+ cppStruct.effectIdentifier = static_cast<std::remove_reference_t<decltype(cppStruct.effectIdentifier)>>(self.effectIdentifier.unsignedCharValue);
+ }
+ {
+ cppStruct.effectVariant = self.effectVariant.unsignedCharValue;
+ }
+
+ return std::any(cppStruct);
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+@end
+
+@implementation MCOnOffClusterOnWithRecallGlobalSceneParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCOnOffClusterOnWithRecallGlobalSceneParams alloc] init];
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: >", NSStringFromClass([self class])];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::OnOff::Commands::OnWithRecallGlobalScene::Type cppStruct;
+ ListFreer listFreer;
+
+ return std::any(cppStruct);
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+@end
+
+@implementation MCOnOffClusterOnWithTimedOffParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _onOffControl = @(0);
+
+ _onTime = @(0);
+
+ _offWaitTime = @(0);
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCOnOffClusterOnWithTimedOffParams alloc] init];
+
+ other.onOffControl = self.onOffControl;
+ other.onTime = self.onTime;
+ other.offWaitTime = self.offWaitTime;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: onOffControl:%@; onTime:%@; offWaitTime:%@; >", NSStringFromClass([self class]), _onOffControl, _onTime, _offWaitTime];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::OnOff::Commands::OnWithTimedOff::Type cppStruct;
+ ListFreer listFreer;
+ {
+ cppStruct.onOffControl = static_cast<std::remove_reference_t<decltype(cppStruct.onOffControl)>>(self.onOffControl.unsignedCharValue);
+ }
+ {
+ cppStruct.onTime = self.onTime.unsignedShortValue;
+ }
+ {
+ cppStruct.offWaitTime = self.offWaitTime.unsignedShortValue;
+ }
+
+ return std::any(cppStruct);
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+@end
+
+// LevelControl cluster:
+
+@implementation MCLevelControlClusterMoveToLevelParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _level = @(0);
+
+ _transitionTime = nil;
+
+ _optionsMask = @(0);
+
+ _optionsOverride = @(0);
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCLevelControlClusterMoveToLevelParams alloc] init];
+
+ other.level = self.level;
+ other.transitionTime = self.transitionTime;
+ other.optionsMask = self.optionsMask;
+ other.optionsOverride = self.optionsOverride;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: level:%@; transitionTime:%@; optionsMask:%@; optionsOverride:%@; >", NSStringFromClass([self class]), _level, _transitionTime, _optionsMask, _optionsOverride];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::LevelControl::Commands::MoveToLevel::Type cppStruct;
+ ListFreer listFreer;
+ {
+ cppStruct.level = self.level.unsignedCharValue;
+ }
+ {
+ if (self.transitionTime == nil) {
+ cppStruct.transitionTime.SetNull();
+ } else {
+ auto & nonNullValue_0 = cppStruct.transitionTime.SetNonNull();
+ nonNullValue_0 = self.transitionTime.unsignedShortValue;
+ }
+ }
+ {
+ cppStruct.optionsMask = static_cast<std::remove_reference_t<decltype(cppStruct.optionsMask)>>(self.optionsMask.unsignedCharValue);
+ }
+ {
+ cppStruct.optionsOverride = static_cast<std::remove_reference_t<decltype(cppStruct.optionsOverride)>>(self.optionsOverride.unsignedCharValue);
+ }
+
+ return std::any(cppStruct);
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+@end
+
+@implementation MCLevelControlClusterMoveParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _moveMode = @(0);
+
+ _rate = nil;
+
+ _optionsMask = @(0);
+
+ _optionsOverride = @(0);
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCLevelControlClusterMoveParams alloc] init];
+
+ other.moveMode = self.moveMode;
+ other.rate = self.rate;
+ other.optionsMask = self.optionsMask;
+ other.optionsOverride = self.optionsOverride;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: moveMode:%@; rate:%@; optionsMask:%@; optionsOverride:%@; >", NSStringFromClass([self class]), _moveMode, _rate, _optionsMask, _optionsOverride];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::LevelControl::Commands::Move::Type cppStruct;
+ ListFreer listFreer;
+ {
+ cppStruct.moveMode = static_cast<std::remove_reference_t<decltype(cppStruct.moveMode)>>(self.moveMode.unsignedCharValue);
+ }
+ {
+ if (self.rate == nil) {
+ cppStruct.rate.SetNull();
+ } else {
+ auto & nonNullValue_0 = cppStruct.rate.SetNonNull();
+ nonNullValue_0 = self.rate.unsignedCharValue;
+ }
+ }
+ {
+ cppStruct.optionsMask = static_cast<std::remove_reference_t<decltype(cppStruct.optionsMask)>>(self.optionsMask.unsignedCharValue);
+ }
+ {
+ cppStruct.optionsOverride = static_cast<std::remove_reference_t<decltype(cppStruct.optionsOverride)>>(self.optionsOverride.unsignedCharValue);
+ }
+
+ return std::any(cppStruct);
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+@end
+
+@implementation MCLevelControlClusterStepParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _stepMode = @(0);
+
+ _stepSize = @(0);
+
+ _transitionTime = nil;
+
+ _optionsMask = @(0);
+
+ _optionsOverride = @(0);
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCLevelControlClusterStepParams alloc] init];
+
+ other.stepMode = self.stepMode;
+ other.stepSize = self.stepSize;
+ other.transitionTime = self.transitionTime;
+ other.optionsMask = self.optionsMask;
+ other.optionsOverride = self.optionsOverride;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: stepMode:%@; stepSize:%@; transitionTime:%@; optionsMask:%@; optionsOverride:%@; >", NSStringFromClass([self class]), _stepMode, _stepSize, _transitionTime, _optionsMask, _optionsOverride];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::LevelControl::Commands::Step::Type cppStruct;
+ ListFreer listFreer;
+ {
+ cppStruct.stepMode = static_cast<std::remove_reference_t<decltype(cppStruct.stepMode)>>(self.stepMode.unsignedCharValue);
+ }
+ {
+ cppStruct.stepSize = self.stepSize.unsignedCharValue;
+ }
+ {
+ if (self.transitionTime == nil) {
+ cppStruct.transitionTime.SetNull();
+ } else {
+ auto & nonNullValue_0 = cppStruct.transitionTime.SetNonNull();
+ nonNullValue_0 = self.transitionTime.unsignedShortValue;
+ }
+ }
+ {
+ cppStruct.optionsMask = static_cast<std::remove_reference_t<decltype(cppStruct.optionsMask)>>(self.optionsMask.unsignedCharValue);
+ }
+ {
+ cppStruct.optionsOverride = static_cast<std::remove_reference_t<decltype(cppStruct.optionsOverride)>>(self.optionsOverride.unsignedCharValue);
+ }
+
+ return std::any(cppStruct);
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+@end
+
+@implementation MCLevelControlClusterStopParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _optionsMask = @(0);
+
+ _optionsOverride = @(0);
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCLevelControlClusterStopParams alloc] init];
+
+ other.optionsMask = self.optionsMask;
+ other.optionsOverride = self.optionsOverride;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: optionsMask:%@; optionsOverride:%@; >", NSStringFromClass([self class]), _optionsMask, _optionsOverride];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::LevelControl::Commands::Stop::Type cppStruct;
+ ListFreer listFreer;
+ {
+ cppStruct.optionsMask = static_cast<std::remove_reference_t<decltype(cppStruct.optionsMask)>>(self.optionsMask.unsignedCharValue);
+ }
+ {
+ cppStruct.optionsOverride = static_cast<std::remove_reference_t<decltype(cppStruct.optionsOverride)>>(self.optionsOverride.unsignedCharValue);
+ }
+
+ return std::any(cppStruct);
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+@end
+
+@implementation MCLevelControlClusterMoveToLevelWithOnOffParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _level = @(0);
+
+ _transitionTime = nil;
+
+ _optionsMask = @(0);
+
+ _optionsOverride = @(0);
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCLevelControlClusterMoveToLevelWithOnOffParams alloc] init];
+
+ other.level = self.level;
+ other.transitionTime = self.transitionTime;
+ other.optionsMask = self.optionsMask;
+ other.optionsOverride = self.optionsOverride;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: level:%@; transitionTime:%@; optionsMask:%@; optionsOverride:%@; >", NSStringFromClass([self class]), _level, _transitionTime, _optionsMask, _optionsOverride];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::LevelControl::Commands::MoveToLevelWithOnOff::Type cppStruct;
+ ListFreer listFreer;
+ {
+ cppStruct.level = self.level.unsignedCharValue;
+ }
+ {
+ if (self.transitionTime == nil) {
+ cppStruct.transitionTime.SetNull();
+ } else {
+ auto & nonNullValue_0 = cppStruct.transitionTime.SetNonNull();
+ nonNullValue_0 = self.transitionTime.unsignedShortValue;
+ }
+ }
+ {
+ cppStruct.optionsMask = static_cast<std::remove_reference_t<decltype(cppStruct.optionsMask)>>(self.optionsMask.unsignedCharValue);
+ }
+ {
+ cppStruct.optionsOverride = static_cast<std::remove_reference_t<decltype(cppStruct.optionsOverride)>>(self.optionsOverride.unsignedCharValue);
+ }
+
+ return std::any(cppStruct);
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+@end
+
+@implementation MCLevelControlClusterMoveWithOnOffParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _moveMode = @(0);
+
+ _rate = nil;
+
+ _optionsMask = @(0);
+
+ _optionsOverride = @(0);
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCLevelControlClusterMoveWithOnOffParams alloc] init];
+
+ other.moveMode = self.moveMode;
+ other.rate = self.rate;
+ other.optionsMask = self.optionsMask;
+ other.optionsOverride = self.optionsOverride;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: moveMode:%@; rate:%@; optionsMask:%@; optionsOverride:%@; >", NSStringFromClass([self class]), _moveMode, _rate, _optionsMask, _optionsOverride];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::LevelControl::Commands::MoveWithOnOff::Type cppStruct;
+ ListFreer listFreer;
+ {
+ cppStruct.moveMode = static_cast<std::remove_reference_t<decltype(cppStruct.moveMode)>>(self.moveMode.unsignedCharValue);
+ }
+ {
+ if (self.rate == nil) {
+ cppStruct.rate.SetNull();
+ } else {
+ auto & nonNullValue_0 = cppStruct.rate.SetNonNull();
+ nonNullValue_0 = self.rate.unsignedCharValue;
+ }
+ }
+ {
+ cppStruct.optionsMask = static_cast<std::remove_reference_t<decltype(cppStruct.optionsMask)>>(self.optionsMask.unsignedCharValue);
+ }
+ {
+ cppStruct.optionsOverride = static_cast<std::remove_reference_t<decltype(cppStruct.optionsOverride)>>(self.optionsOverride.unsignedCharValue);
+ }
+
+ return std::any(cppStruct);
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+@end
+
+@implementation MCLevelControlClusterStepWithOnOffParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _stepMode = @(0);
+
+ _stepSize = @(0);
+
+ _transitionTime = nil;
+
+ _optionsMask = @(0);
+
+ _optionsOverride = @(0);
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCLevelControlClusterStepWithOnOffParams alloc] init];
+
+ other.stepMode = self.stepMode;
+ other.stepSize = self.stepSize;
+ other.transitionTime = self.transitionTime;
+ other.optionsMask = self.optionsMask;
+ other.optionsOverride = self.optionsOverride;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: stepMode:%@; stepSize:%@; transitionTime:%@; optionsMask:%@; optionsOverride:%@; >", NSStringFromClass([self class]), _stepMode, _stepSize, _transitionTime, _optionsMask, _optionsOverride];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::LevelControl::Commands::StepWithOnOff::Type cppStruct;
+ ListFreer listFreer;
+ {
+ cppStruct.stepMode = static_cast<std::remove_reference_t<decltype(cppStruct.stepMode)>>(self.stepMode.unsignedCharValue);
+ }
+ {
+ cppStruct.stepSize = self.stepSize.unsignedCharValue;
+ }
+ {
+ if (self.transitionTime == nil) {
+ cppStruct.transitionTime.SetNull();
+ } else {
+ auto & nonNullValue_0 = cppStruct.transitionTime.SetNonNull();
+ nonNullValue_0 = self.transitionTime.unsignedShortValue;
+ }
+ }
+ {
+ cppStruct.optionsMask = static_cast<std::remove_reference_t<decltype(cppStruct.optionsMask)>>(self.optionsMask.unsignedCharValue);
+ }
+ {
+ cppStruct.optionsOverride = static_cast<std::remove_reference_t<decltype(cppStruct.optionsOverride)>>(self.optionsOverride.unsignedCharValue);
+ }
+
+ return std::any(cppStruct);
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+@end
+
+@implementation MCLevelControlClusterStopWithOnOffParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _optionsMask = @(0);
+
+ _optionsOverride = @(0);
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCLevelControlClusterStopWithOnOffParams alloc] init];
+
+ other.optionsMask = self.optionsMask;
+ other.optionsOverride = self.optionsOverride;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: optionsMask:%@; optionsOverride:%@; >", NSStringFromClass([self class]), _optionsMask, _optionsOverride];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::LevelControl::Commands::StopWithOnOff::Type cppStruct;
+ ListFreer listFreer;
+ {
+ cppStruct.optionsMask = static_cast<std::remove_reference_t<decltype(cppStruct.optionsMask)>>(self.optionsMask.unsignedCharValue);
+ }
+ {
+ cppStruct.optionsOverride = static_cast<std::remove_reference_t<decltype(cppStruct.optionsOverride)>>(self.optionsOverride.unsignedCharValue);
+ }
+
+ return std::any(cppStruct);
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+@end
+
+@implementation MCLevelControlClusterMoveToClosestFrequencyParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _frequency = @(0);
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCLevelControlClusterMoveToClosestFrequencyParams alloc] init];
+
+ other.frequency = self.frequency;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: frequency:%@; >", NSStringFromClass([self class]), _frequency];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::LevelControl::Commands::MoveToClosestFrequency::Type cppStruct;
+ ListFreer listFreer;
+ {
+ cppStruct.frequency = self.frequency.unsignedShortValue;
+ }
+
+ return std::any(cppStruct);
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+@end
+
+// WakeOnLan cluster:
+
+// TargetNavigator cluster:
+
+@implementation MCTargetNavigatorClusterNavigateTargetParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _target = @(0);
+
+ _data = nil;
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCTargetNavigatorClusterNavigateTargetParams alloc] init];
+
+ other.target = self.target;
+ other.data = self.data;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: target:%@; data:%@; >", NSStringFromClass([self class]), _target, _data];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::TargetNavigator::Commands::NavigateTarget::Type cppStruct;
+ ListFreer listFreer;
+ {
+ cppStruct.target = self.target.unsignedCharValue;
+ }
+ {
+ if (self.data != nil) {
+ auto & definedValue_0 = cppStruct.data.Emplace();
+ definedValue_0 = AsCharSpan(self.data);
+ }
+ }
+
+ return std::any(cppStruct);
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+@end
+
+@implementation MCTargetNavigatorClusterNavigateTargetResponseParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _status = @(0);
+
+ _data = nil;
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCTargetNavigatorClusterNavigateTargetResponseParams alloc] init];
+
+ other.status = self.status;
+ other.data = self.data;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: status:%@; data:%@; >", NSStringFromClass([self class]), _status, _data];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppResponse
+{
+ std::shared_ptr<const chip::app::Clusters::TargetNavigator::Commands::NavigateTargetResponse::DecodableType> responseSharedPtr = std::any_cast<std::shared_ptr<const chip::app::Clusters::TargetNavigator::Commands::NavigateTargetResponse::DecodableType>>(cppResponse);
+ const chip::app::Clusters::TargetNavigator::Commands::NavigateTargetResponse::DecodableType cppDecodableStruct = *responseSharedPtr;
+
+ {
+ self.status = [NSNumber numberWithUnsignedChar:chip::to_underlying(cppDecodableStruct.status)];
+ }
+ {
+ if (cppDecodableStruct.data.HasValue()) {
+ self.data = AsString(cppDecodableStruct.data.Value());
+ if (self.data == nil) {
+ CHIP_ERROR err = CHIP_ERROR_INVALID_ARGUMENT;
+ return err;
+ }
+ } else {
+ self.data = nil;
+ }
+ }
+ return CHIP_NO_ERROR;
+}
+@end
+
+// MediaPlayback cluster:
+
+@implementation MCMediaPlaybackClusterPlayParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCMediaPlaybackClusterPlayParams alloc] init];
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: >", NSStringFromClass([self class])];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::MediaPlayback::Commands::Play::Type cppStruct;
+ ListFreer listFreer;
+
+ return std::any(cppStruct);
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+@end
+
+@implementation MCMediaPlaybackClusterPauseParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCMediaPlaybackClusterPauseParams alloc] init];
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: >", NSStringFromClass([self class])];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::MediaPlayback::Commands::Pause::Type cppStruct;
+ ListFreer listFreer;
+
+ return std::any(cppStruct);
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+@end
+
+@implementation MCMediaPlaybackClusterStopParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCMediaPlaybackClusterStopParams alloc] init];
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: >", NSStringFromClass([self class])];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::MediaPlayback::Commands::Stop::Type cppStruct;
+ ListFreer listFreer;
+
+ return std::any(cppStruct);
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+@end
+
+@implementation MCMediaPlaybackClusterStartOverParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCMediaPlaybackClusterStartOverParams alloc] init];
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: >", NSStringFromClass([self class])];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::MediaPlayback::Commands::StartOver::Type cppStruct;
+ ListFreer listFreer;
+
+ return std::any(cppStruct);
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+@end
+
+@implementation MCMediaPlaybackClusterPreviousParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCMediaPlaybackClusterPreviousParams alloc] init];
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: >", NSStringFromClass([self class])];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::MediaPlayback::Commands::Previous::Type cppStruct;
+ ListFreer listFreer;
+
+ return std::any(cppStruct);
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+@end
+
+@implementation MCMediaPlaybackClusterNextParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCMediaPlaybackClusterNextParams alloc] init];
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: >", NSStringFromClass([self class])];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::MediaPlayback::Commands::Next::Type cppStruct;
+ ListFreer listFreer;
+
+ return std::any(cppStruct);
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+@end
+
+@implementation MCMediaPlaybackClusterRewindParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _audioAdvanceUnmuted = nil;
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCMediaPlaybackClusterRewindParams alloc] init];
+
+ other.audioAdvanceUnmuted = self.audioAdvanceUnmuted;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: audioAdvanceUnmuted:%@; >", NSStringFromClass([self class]), _audioAdvanceUnmuted];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::MediaPlayback::Commands::Rewind::Type cppStruct;
+ ListFreer listFreer;
+ {
+ if (self.audioAdvanceUnmuted != nil) {
+ auto & definedValue_0 = cppStruct.audioAdvanceUnmuted.Emplace();
+ definedValue_0 = self.audioAdvanceUnmuted.boolValue;
+ }
+ }
+
+ return std::any(cppStruct);
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+@end
+
+@implementation MCMediaPlaybackClusterFastForwardParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _audioAdvanceUnmuted = nil;
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCMediaPlaybackClusterFastForwardParams alloc] init];
+
+ other.audioAdvanceUnmuted = self.audioAdvanceUnmuted;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: audioAdvanceUnmuted:%@; >", NSStringFromClass([self class]), _audioAdvanceUnmuted];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::MediaPlayback::Commands::FastForward::Type cppStruct;
+ ListFreer listFreer;
+ {
+ if (self.audioAdvanceUnmuted != nil) {
+ auto & definedValue_0 = cppStruct.audioAdvanceUnmuted.Emplace();
+ definedValue_0 = self.audioAdvanceUnmuted.boolValue;
+ }
+ }
+
+ return std::any(cppStruct);
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+@end
+
+@implementation MCMediaPlaybackClusterSkipForwardParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _deltaPositionMilliseconds = @(0);
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCMediaPlaybackClusterSkipForwardParams alloc] init];
+
+ other.deltaPositionMilliseconds = self.deltaPositionMilliseconds;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: deltaPositionMilliseconds:%@; >", NSStringFromClass([self class]), _deltaPositionMilliseconds];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::MediaPlayback::Commands::SkipForward::Type cppStruct;
+ ListFreer listFreer;
+ {
+ cppStruct.deltaPositionMilliseconds = self.deltaPositionMilliseconds.unsignedLongLongValue;
+ }
+
+ return std::any(cppStruct);
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+@end
+
+@implementation MCMediaPlaybackClusterSkipBackwardParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _deltaPositionMilliseconds = @(0);
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCMediaPlaybackClusterSkipBackwardParams alloc] init];
+
+ other.deltaPositionMilliseconds = self.deltaPositionMilliseconds;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: deltaPositionMilliseconds:%@; >", NSStringFromClass([self class]), _deltaPositionMilliseconds];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::MediaPlayback::Commands::SkipBackward::Type cppStruct;
+ ListFreer listFreer;
+ {
+ cppStruct.deltaPositionMilliseconds = self.deltaPositionMilliseconds.unsignedLongLongValue;
+ }
+
+ return std::any(cppStruct);
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+@end
+
+@implementation MCMediaPlaybackClusterPlaybackResponseParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _status = @(0);
+
+ _data = nil;
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCMediaPlaybackClusterPlaybackResponseParams alloc] init];
+
+ other.status = self.status;
+ other.data = self.data;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: status:%@; data:%@; >", NSStringFromClass([self class]), _status, _data];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppResponse
+{
+ std::shared_ptr<const chip::app::Clusters::MediaPlayback::Commands::PlaybackResponse::DecodableType> responseSharedPtr = std::any_cast<std::shared_ptr<const chip::app::Clusters::MediaPlayback::Commands::PlaybackResponse::DecodableType>>(cppResponse);
+ const chip::app::Clusters::MediaPlayback::Commands::PlaybackResponse::DecodableType cppDecodableStruct = *responseSharedPtr;
+
+ {
+ self.status = [NSNumber numberWithUnsignedChar:chip::to_underlying(cppDecodableStruct.status)];
+ }
+ {
+ if (cppDecodableStruct.data.HasValue()) {
+ self.data = AsString(cppDecodableStruct.data.Value());
+ if (self.data == nil) {
+ CHIP_ERROR err = CHIP_ERROR_INVALID_ARGUMENT;
+ return err;
+ }
+ } else {
+ self.data = nil;
+ }
+ }
+ return CHIP_NO_ERROR;
+}
+@end
+
+@implementation MCMediaPlaybackClusterSeekParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _position = @(0);
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCMediaPlaybackClusterSeekParams alloc] init];
+
+ other.position = self.position;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: position:%@; >", NSStringFromClass([self class]), _position];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::MediaPlayback::Commands::Seek::Type cppStruct;
+ ListFreer listFreer;
+ {
+ cppStruct.position = self.position.unsignedLongLongValue;
+ }
+
+ return std::any(cppStruct);
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+@end
+
+@implementation MCMediaPlaybackClusterActivateAudioTrackParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _trackID = @"";
+
+ _audioOutputIndex = @(0);
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCMediaPlaybackClusterActivateAudioTrackParams alloc] init];
+
+ other.trackID = self.trackID;
+ other.audioOutputIndex = self.audioOutputIndex;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: trackID:%@; audioOutputIndex:%@; >", NSStringFromClass([self class]), _trackID, _audioOutputIndex];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::MediaPlayback::Commands::ActivateAudioTrack::Type cppStruct;
+ ListFreer listFreer;
+ {
+ cppStruct.trackID = AsCharSpan(self.trackID);
+ }
+ {
+ cppStruct.audioOutputIndex = self.audioOutputIndex.unsignedCharValue;
+ }
+
+ return std::any(cppStruct);
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+@end
+
+@implementation MCMediaPlaybackClusterActivateTextTrackParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _trackID = @"";
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCMediaPlaybackClusterActivateTextTrackParams alloc] init];
+
+ other.trackID = self.trackID;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: trackID:%@; >", NSStringFromClass([self class]), _trackID];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::MediaPlayback::Commands::ActivateTextTrack::Type cppStruct;
+ ListFreer listFreer;
+ {
+ cppStruct.trackID = AsCharSpan(self.trackID);
+ }
+
+ return std::any(cppStruct);
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+@end
+
+@implementation MCMediaPlaybackClusterDeactivateTextTrackParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCMediaPlaybackClusterDeactivateTextTrackParams alloc] init];
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: >", NSStringFromClass([self class])];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::MediaPlayback::Commands::DeactivateTextTrack::Type cppStruct;
+ ListFreer listFreer;
+
+ return std::any(cppStruct);
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+@end
+
+// KeypadInput cluster:
+
+@implementation MCKeypadInputClusterSendKeyParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _keyCode = @(0);
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCKeypadInputClusterSendKeyParams alloc] init];
+
+ other.keyCode = self.keyCode;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: keyCode:%@; >", NSStringFromClass([self class]), _keyCode];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::KeypadInput::Commands::SendKey::Type cppStruct;
+ ListFreer listFreer;
+ {
+ cppStruct.keyCode = static_cast<std::remove_reference_t<decltype(cppStruct.keyCode)>>(self.keyCode.unsignedCharValue);
+ }
+
+ return std::any(cppStruct);
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+@end
+
+@implementation MCKeypadInputClusterSendKeyResponseParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _status = @(0);
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCKeypadInputClusterSendKeyResponseParams alloc] init];
+
+ other.status = self.status;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: status:%@; >", NSStringFromClass([self class]), _status];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppResponse
+{
+ std::shared_ptr<const chip::app::Clusters::KeypadInput::Commands::SendKeyResponse::DecodableType> responseSharedPtr = std::any_cast<std::shared_ptr<const chip::app::Clusters::KeypadInput::Commands::SendKeyResponse::DecodableType>>(cppResponse);
+ const chip::app::Clusters::KeypadInput::Commands::SendKeyResponse::DecodableType cppDecodableStruct = *responseSharedPtr;
+
+ {
+ self.status = [NSNumber numberWithUnsignedChar:chip::to_underlying(cppDecodableStruct.status)];
+ }
+ return CHIP_NO_ERROR;
+}
+@end
+
+// ContentLauncher cluster:
+
+@implementation MCContentLauncherClusterLaunchContentParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _search = [MCContentLauncherClusterContentSearchStruct new];
+
+ _autoPlay = @(0);
+
+ _data = nil;
+
+ _playbackPreferences = nil;
+
+ _useCurrentContext = nil;
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCContentLauncherClusterLaunchContentParams alloc] init];
+
+ other.search = self.search;
+ other.autoPlay = self.autoPlay;
+ other.data = self.data;
+ other.playbackPreferences = self.playbackPreferences;
+ other.useCurrentContext = self.useCurrentContext;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: search:%@; autoPlay:%@; data:%@; playbackPreferences:%@; useCurrentContext:%@; >", NSStringFromClass([self class]), _search, _autoPlay, _data, _playbackPreferences, _useCurrentContext];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::ContentLauncher::Commands::LaunchContent::Type cppStruct;
+ ListFreer listFreer;
+ {
+ {
+ using ListType_1 = std::remove_reference_t<decltype(cppStruct.search.parameterList)>;
+ using ListMemberType_1 = ListMemberTypeGetter<ListType_1>::Type;
+ if (self.search.parameterList.count != 0) {
+ auto * listHolder_1 = new ListHolder<ListMemberType_1>(self.search.parameterList.count);
+ if (listHolder_1 == nullptr || listHolder_1->mList == nullptr) {
+ return CHIP_ERROR_INVALID_ARGUMENT;
+ }
+ listFreer.add(listHolder_1);
+ for (size_t i_1 = 0; i_1 < self.search.parameterList.count; ++i_1) {
+ if (![self.search.parameterList[i_1] isKindOfClass:[MCContentLauncherClusterParameterStruct class]]) {
+ // Wrong kind of value.
+ return CHIP_ERROR_INVALID_ARGUMENT;
+ }
+ auto element_1 = (MCContentLauncherClusterParameterStruct *) self.search.parameterList[i_1];
+ listHolder_1->mList[i_1].type = static_cast<std::remove_reference_t<decltype(listHolder_1->mList[i_1].type)>>(element_1.type.unsignedCharValue);
+ listHolder_1->mList[i_1].value = AsCharSpan(element_1.value);
+ if (element_1.externalIDList != nil) {
+ auto & definedValue_3 = listHolder_1->mList[i_1].externalIDList.Emplace();
+ {
+ using ListType_4 = std::remove_reference_t<decltype(definedValue_3)>;
+ using ListMemberType_4 = ListMemberTypeGetter<ListType_4>::Type;
+ if (element_1.externalIDList.count != 0) {
+ auto * listHolder_4 = new ListHolder<ListMemberType_4>(element_1.externalIDList.count);
+ if (listHolder_4 == nullptr || listHolder_4->mList == nullptr) {
+ return CHIP_ERROR_INVALID_ARGUMENT;
+ }
+ listFreer.add(listHolder_4);
+ for (size_t i_4 = 0; i_4 < element_1.externalIDList.count; ++i_4) {
+ if (![element_1.externalIDList[i_4] isKindOfClass:[MCContentLauncherClusterAdditionalInfoStruct class]]) {
+ // Wrong kind of value.
+ return CHIP_ERROR_INVALID_ARGUMENT;
+ }
+ auto element_4 = (MCContentLauncherClusterAdditionalInfoStruct *) element_1.externalIDList[i_4];
+ listHolder_4->mList[i_4].name = AsCharSpan(element_4.name);
+ listHolder_4->mList[i_4].value = AsCharSpan(element_4.value);
+ }
+ definedValue_3 = ListType_4(listHolder_4->mList, element_1.externalIDList.count);
+ } else {
+ definedValue_3 = ListType_4();
+ }
+ }
+ }
+ }
+ cppStruct.search.parameterList = ListType_1(listHolder_1->mList, self.search.parameterList.count);
+ } else {
+ cppStruct.search.parameterList = ListType_1();
+ }
+ }
+ }
+ {
+ cppStruct.autoPlay = self.autoPlay.boolValue;
+ }
+ {
+ if (self.data != nil) {
+ auto & definedValue_0 = cppStruct.data.Emplace();
+ definedValue_0 = AsCharSpan(self.data);
+ }
+ }
+ {
+ if (self.playbackPreferences != nil) {
+ auto & definedValue_0 = cppStruct.playbackPreferences.Emplace();
+ definedValue_0.playbackPosition = self.playbackPreferences.playbackPosition.unsignedLongLongValue;
+ definedValue_0.textTrack.languageCode = AsCharSpan(self.playbackPreferences.textTrack.languageCode);
+ if (self.playbackPreferences.textTrack.characteristics != nil) {
+ auto & definedValue_3 = definedValue_0.textTrack.characteristics.Emplace();
+ {
+ using ListType_4 = std::remove_reference_t<decltype(definedValue_3)>;
+ using ListMemberType_4 = ListMemberTypeGetter<ListType_4>::Type;
+ if (self.playbackPreferences.textTrack.characteristics.count != 0) {
+ auto * listHolder_4 = new ListHolder<ListMemberType_4>(self.playbackPreferences.textTrack.characteristics.count);
+ if (listHolder_4 == nullptr || listHolder_4->mList == nullptr) {
+ return CHIP_ERROR_INVALID_ARGUMENT;
+ }
+ listFreer.add(listHolder_4);
+ for (size_t i_4 = 0; i_4 < self.playbackPreferences.textTrack.characteristics.count; ++i_4) {
+ if (![self.playbackPreferences.textTrack.characteristics[i_4] isKindOfClass:[NSNumber class]]) {
+ // Wrong kind of value.
+ return CHIP_ERROR_INVALID_ARGUMENT;
+ }
+ auto element_4 = (NSNumber *) self.playbackPreferences.textTrack.characteristics[i_4];
+ listHolder_4->mList[i_4] = static_cast<std::remove_reference_t<decltype(listHolder_4->mList[i_4])>>(element_4.unsignedCharValue);
+ }
+ definedValue_3 = ListType_4(listHolder_4->mList, self.playbackPreferences.textTrack.characteristics.count);
+ } else {
+ definedValue_3 = ListType_4();
+ }
+ }
+ }
+ definedValue_0.textTrack.audioOutputIndex = self.playbackPreferences.textTrack.audioOutputIndex.unsignedCharValue;
+ if (self.playbackPreferences.audioTracks != nil) {
+ auto & definedValue_2 = definedValue_0.audioTracks.Emplace();
+ {
+ using ListType_3 = std::remove_reference_t<decltype(definedValue_2)>;
+ using ListMemberType_3 = ListMemberTypeGetter<ListType_3>::Type;
+ if (self.playbackPreferences.audioTracks.count != 0) {
+ auto * listHolder_3 = new ListHolder<ListMemberType_3>(self.playbackPreferences.audioTracks.count);
+ if (listHolder_3 == nullptr || listHolder_3->mList == nullptr) {
+ return CHIP_ERROR_INVALID_ARGUMENT;
+ }
+ listFreer.add(listHolder_3);
+ for (size_t i_3 = 0; i_3 < self.playbackPreferences.audioTracks.count; ++i_3) {
+ if (![self.playbackPreferences.audioTracks[i_3] isKindOfClass:[MCContentLauncherClusterTrackPreferenceStruct class]]) {
+ // Wrong kind of value.
+ return CHIP_ERROR_INVALID_ARGUMENT;
+ }
+ auto element_3 = (MCContentLauncherClusterTrackPreferenceStruct *) self.playbackPreferences.audioTracks[i_3];
+ listHolder_3->mList[i_3].languageCode = AsCharSpan(element_3.languageCode);
+ if (element_3.characteristics != nil) {
+ auto & definedValue_5 = listHolder_3->mList[i_3].characteristics.Emplace();
+ {
+ using ListType_6 = std::remove_reference_t<decltype(definedValue_5)>;
+ using ListMemberType_6 = ListMemberTypeGetter<ListType_6>::Type;
+ if (element_3.characteristics.count != 0) {
+ auto * listHolder_6 = new ListHolder<ListMemberType_6>(element_3.characteristics.count);
+ if (listHolder_6 == nullptr || listHolder_6->mList == nullptr) {
+ return CHIP_ERROR_INVALID_ARGUMENT;
+ }
+ listFreer.add(listHolder_6);
+ for (size_t i_6 = 0; i_6 < element_3.characteristics.count; ++i_6) {
+ if (![element_3.characteristics[i_6] isKindOfClass:[NSNumber class]]) {
+ // Wrong kind of value.
+ return CHIP_ERROR_INVALID_ARGUMENT;
+ }
+ auto element_6 = (NSNumber *) element_3.characteristics[i_6];
+ listHolder_6->mList[i_6] = static_cast<std::remove_reference_t<decltype(listHolder_6->mList[i_6])>>(element_6.unsignedCharValue);
+ }
+ definedValue_5 = ListType_6(listHolder_6->mList, element_3.characteristics.count);
+ } else {
+ definedValue_5 = ListType_6();
+ }
+ }
+ }
+ listHolder_3->mList[i_3].audioOutputIndex = element_3.audioOutputIndex.unsignedCharValue;
+ }
+ definedValue_2 = ListType_3(listHolder_3->mList, self.playbackPreferences.audioTracks.count);
+ } else {
+ definedValue_2 = ListType_3();
+ }
+ }
+ }
+ }
+ }
+ {
+ if (self.useCurrentContext != nil) {
+ auto & definedValue_0 = cppStruct.useCurrentContext.Emplace();
+ definedValue_0 = self.useCurrentContext.boolValue;
+ }
+ }
+
+ return std::any(cppStruct);
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+@end
+
+@implementation MCContentLauncherClusterLaunchURLParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _contentURL = @"";
+
+ _displayString = nil;
+
+ _brandingInformation = nil;
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCContentLauncherClusterLaunchURLParams alloc] init];
+
+ other.contentURL = self.contentURL;
+ other.displayString = self.displayString;
+ other.brandingInformation = self.brandingInformation;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: contentURL:%@; displayString:%@; brandingInformation:%@; >", NSStringFromClass([self class]), _contentURL, _displayString, _brandingInformation];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::ContentLauncher::Commands::LaunchURL::Type cppStruct;
+ ListFreer listFreer;
+ {
+ cppStruct.contentURL = AsCharSpan(self.contentURL);
+ }
+ {
+ if (self.displayString != nil) {
+ auto & definedValue_0 = cppStruct.displayString.Emplace();
+ definedValue_0 = AsCharSpan(self.displayString);
+ }
+ }
+ {
+ if (self.brandingInformation != nil) {
+ auto & definedValue_0 = cppStruct.brandingInformation.Emplace();
+ definedValue_0.providerName = AsCharSpan(self.brandingInformation.providerName);
+ if (self.brandingInformation.background != nil) {
+ auto & definedValue_2 = definedValue_0.background.Emplace();
+ if (self.brandingInformation.background.imageURL != nil) {
+ auto & definedValue_4 = definedValue_2.imageURL.Emplace();
+ definedValue_4 = AsCharSpan(self.brandingInformation.background.imageURL);
+ }
+ if (self.brandingInformation.background.color != nil) {
+ auto & definedValue_4 = definedValue_2.color.Emplace();
+ definedValue_4 = AsCharSpan(self.brandingInformation.background.color);
+ }
+ if (self.brandingInformation.background.size != nil) {
+ auto & definedValue_4 = definedValue_2.size.Emplace();
+ definedValue_4.width = self.brandingInformation.background.size.width.doubleValue;
+ definedValue_4.height = self.brandingInformation.background.size.height.doubleValue;
+ definedValue_4.metric = static_cast<std::remove_reference_t<decltype(definedValue_4.metric)>>(self.brandingInformation.background.size.metric.unsignedCharValue);
+ }
+ }
+ if (self.brandingInformation.logo != nil) {
+ auto & definedValue_2 = definedValue_0.logo.Emplace();
+ if (self.brandingInformation.logo.imageURL != nil) {
+ auto & definedValue_4 = definedValue_2.imageURL.Emplace();
+ definedValue_4 = AsCharSpan(self.brandingInformation.logo.imageURL);
+ }
+ if (self.brandingInformation.logo.color != nil) {
+ auto & definedValue_4 = definedValue_2.color.Emplace();
+ definedValue_4 = AsCharSpan(self.brandingInformation.logo.color);
+ }
+ if (self.brandingInformation.logo.size != nil) {
+ auto & definedValue_4 = definedValue_2.size.Emplace();
+ definedValue_4.width = self.brandingInformation.logo.size.width.doubleValue;
+ definedValue_4.height = self.brandingInformation.logo.size.height.doubleValue;
+ definedValue_4.metric = static_cast<std::remove_reference_t<decltype(definedValue_4.metric)>>(self.brandingInformation.logo.size.metric.unsignedCharValue);
+ }
+ }
+ if (self.brandingInformation.progressBar != nil) {
+ auto & definedValue_2 = definedValue_0.progressBar.Emplace();
+ if (self.brandingInformation.progressBar.imageURL != nil) {
+ auto & definedValue_4 = definedValue_2.imageURL.Emplace();
+ definedValue_4 = AsCharSpan(self.brandingInformation.progressBar.imageURL);
+ }
+ if (self.brandingInformation.progressBar.color != nil) {
+ auto & definedValue_4 = definedValue_2.color.Emplace();
+ definedValue_4 = AsCharSpan(self.brandingInformation.progressBar.color);
+ }
+ if (self.brandingInformation.progressBar.size != nil) {
+ auto & definedValue_4 = definedValue_2.size.Emplace();
+ definedValue_4.width = self.brandingInformation.progressBar.size.width.doubleValue;
+ definedValue_4.height = self.brandingInformation.progressBar.size.height.doubleValue;
+ definedValue_4.metric = static_cast<std::remove_reference_t<decltype(definedValue_4.metric)>>(self.brandingInformation.progressBar.size.metric.unsignedCharValue);
+ }
+ }
+ if (self.brandingInformation.splash != nil) {
+ auto & definedValue_2 = definedValue_0.splash.Emplace();
+ if (self.brandingInformation.splash.imageURL != nil) {
+ auto & definedValue_4 = definedValue_2.imageURL.Emplace();
+ definedValue_4 = AsCharSpan(self.brandingInformation.splash.imageURL);
+ }
+ if (self.brandingInformation.splash.color != nil) {
+ auto & definedValue_4 = definedValue_2.color.Emplace();
+ definedValue_4 = AsCharSpan(self.brandingInformation.splash.color);
+ }
+ if (self.brandingInformation.splash.size != nil) {
+ auto & definedValue_4 = definedValue_2.size.Emplace();
+ definedValue_4.width = self.brandingInformation.splash.size.width.doubleValue;
+ definedValue_4.height = self.brandingInformation.splash.size.height.doubleValue;
+ definedValue_4.metric = static_cast<std::remove_reference_t<decltype(definedValue_4.metric)>>(self.brandingInformation.splash.size.metric.unsignedCharValue);
+ }
+ }
+ if (self.brandingInformation.waterMark != nil) {
+ auto & definedValue_2 = definedValue_0.waterMark.Emplace();
+ if (self.brandingInformation.waterMark.imageURL != nil) {
+ auto & definedValue_4 = definedValue_2.imageURL.Emplace();
+ definedValue_4 = AsCharSpan(self.brandingInformation.waterMark.imageURL);
+ }
+ if (self.brandingInformation.waterMark.color != nil) {
+ auto & definedValue_4 = definedValue_2.color.Emplace();
+ definedValue_4 = AsCharSpan(self.brandingInformation.waterMark.color);
+ }
+ if (self.brandingInformation.waterMark.size != nil) {
+ auto & definedValue_4 = definedValue_2.size.Emplace();
+ definedValue_4.width = self.brandingInformation.waterMark.size.width.doubleValue;
+ definedValue_4.height = self.brandingInformation.waterMark.size.height.doubleValue;
+ definedValue_4.metric = static_cast<std::remove_reference_t<decltype(definedValue_4.metric)>>(self.brandingInformation.waterMark.size.metric.unsignedCharValue);
+ }
+ }
+ }
+ }
+
+ return std::any(cppStruct);
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+@end
+
+@implementation MCContentLauncherClusterLauncherResponseParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _status = @(0);
+
+ _data = nil;
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCContentLauncherClusterLauncherResponseParams alloc] init];
+
+ other.status = self.status;
+ other.data = self.data;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: status:%@; data:%@; >", NSStringFromClass([self class]), _status, _data];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppResponse
+{
+ std::shared_ptr<const chip::app::Clusters::ContentLauncher::Commands::LauncherResponse::DecodableType> responseSharedPtr = std::any_cast<std::shared_ptr<const chip::app::Clusters::ContentLauncher::Commands::LauncherResponse::DecodableType>>(cppResponse);
+ const chip::app::Clusters::ContentLauncher::Commands::LauncherResponse::DecodableType cppDecodableStruct = *responseSharedPtr;
+
+ {
+ self.status = [NSNumber numberWithUnsignedChar:chip::to_underlying(cppDecodableStruct.status)];
+ }
+ {
+ if (cppDecodableStruct.data.HasValue()) {
+ self.data = AsString(cppDecodableStruct.data.Value());
+ if (self.data == nil) {
+ CHIP_ERROR err = CHIP_ERROR_INVALID_ARGUMENT;
+ return err;
+ }
+ } else {
+ self.data = nil;
+ }
+ }
+ return CHIP_NO_ERROR;
+}
+@end
+
+// ApplicationLauncher cluster:
+
+@implementation MCApplicationLauncherClusterLaunchAppParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _application = nil;
+
+ _data = nil;
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCApplicationLauncherClusterLaunchAppParams alloc] init];
+
+ other.application = self.application;
+ other.data = self.data;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: application:%@; data:%@; >", NSStringFromClass([self class]), _application, [_data base64EncodedStringWithOptions:0]];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::ApplicationLauncher::Commands::LaunchApp::Type cppStruct;
+ ListFreer listFreer;
+ {
+ if (self.application != nil) {
+ auto & definedValue_0 = cppStruct.application.Emplace();
+ definedValue_0.catalogVendorID = self.application.catalogVendorID.unsignedShortValue;
+ definedValue_0.applicationID = AsCharSpan(self.application.applicationID);
+ }
+ }
+ {
+ if (self.data != nil) {
+ auto & definedValue_0 = cppStruct.data.Emplace();
+ definedValue_0 = AsByteSpan(self.data);
+ }
+ }
+
+ return std::any(cppStruct);
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+@end
+
+@implementation MCApplicationLauncherClusterStopAppParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _application = nil;
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCApplicationLauncherClusterStopAppParams alloc] init];
+
+ other.application = self.application;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: application:%@; >", NSStringFromClass([self class]), _application];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::ApplicationLauncher::Commands::StopApp::Type cppStruct;
+ ListFreer listFreer;
+ {
+ if (self.application != nil) {
+ auto & definedValue_0 = cppStruct.application.Emplace();
+ definedValue_0.catalogVendorID = self.application.catalogVendorID.unsignedShortValue;
+ definedValue_0.applicationID = AsCharSpan(self.application.applicationID);
+ }
+ }
+
+ return std::any(cppStruct);
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+@end
+
+@implementation MCApplicationLauncherClusterHideAppParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _application = nil;
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCApplicationLauncherClusterHideAppParams alloc] init];
+
+ other.application = self.application;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: application:%@; >", NSStringFromClass([self class]), _application];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ chip::app::Clusters::ApplicationLauncher::Commands::HideApp::Type cppStruct;
+ ListFreer listFreer;
+ {
+ if (self.application != nil) {
+ auto & definedValue_0 = cppStruct.application.Emplace();
+ definedValue_0.catalogVendorID = self.application.catalogVendorID.unsignedShortValue;
+ definedValue_0.applicationID = AsCharSpan(self.application.applicationID);
+ }
+ }
+
+ return std::any(cppStruct);
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+@end
+
+@implementation MCApplicationLauncherClusterLauncherResponseParams
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _status = @(0);
+
+ _data = nil;
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone;
+{
+ auto other = [[MCApplicationLauncherClusterLauncherResponseParams alloc] init];
+
+ other.status = self.status;
+ other.data = self.data;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: status:%@; data:%@; >", NSStringFromClass([self class]), _status, [_data base64EncodedStringWithOptions:0]];
+ return descriptionString;
+}
+
+- (std::any)getCppRequestFromObjCRequest
+{
+ // Default implementation
+ return CHIP_NO_ERROR;
+}
+
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppResponse
+{
+ std::shared_ptr<const chip::app::Clusters::ApplicationLauncher::Commands::LauncherResponse::DecodableType> responseSharedPtr = std::any_cast<std::shared_ptr<const chip::app::Clusters::ApplicationLauncher::Commands::LauncherResponse::DecodableType>>(cppResponse);
+ const chip::app::Clusters::ApplicationLauncher::Commands::LauncherResponse::DecodableType cppDecodableStruct = *responseSharedPtr;
+
+ {
+ self.status = [NSNumber numberWithUnsignedChar:chip::to_underlying(cppDecodableStruct.status)];
+ }
+ {
+ if (cppDecodableStruct.data.HasValue()) {
+ self.data = AsData(cppDecodableStruct.data.Value());
+ } else {
+ self.data = nil;
+ }
+ }
+ return CHIP_NO_ERROR;
+}
+@end
+
+// ApplicationBasic cluster:
+
+NS_ASSUME_NONNULL_END
diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCCommandPayloads_Internal.h b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCCommandPayloads_Internal.h
new file mode 100644
index 0000000..c880c24
--- /dev/null
+++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCCommandPayloads_Internal.h
@@ -0,0 +1,33 @@
+/**
+ *
+ * Copyright (c) 2020-2024 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.
+ */
+
+#import "MCCommandPayloads.h"
+
+#import "../MCErrorUtils.h"
+
+#import <Foundation/Foundation.h>
+#include <any>
+
+#ifndef MCCommandPayloads_Internal_h
+#define MCCommandPayloads_Internal_h
+
+@interface MCAbstractPayload ()
+- (std::any)getCppRequestFromObjCRequest;
+- (CHIP_ERROR)setObjCResponseFromCppResponse:(std::any)cppDecodableStruct;
+@end
+
+#endif /* MCCommandPayloads_Internal_h */
diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCInteractionModelStructs.h b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCInteractionModelStructs.h
new file mode 100644
index 0000000..f64e470
--- /dev/null
+++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCInteractionModelStructs.h
@@ -0,0 +1,108 @@
+/**
+ *
+ * Copyright (c) 2020-2024 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.
+ */
+
+#import <Foundation/Foundation.h>
+
+#ifndef MCStructsObjc_h
+#define MCStructsObjc_h
+
+@interface MCMediaPlaybackClusterPlaybackPositionStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSNumber * _Nonnull updatedAt;
+@property (nonatomic, copy) NSNumber * _Nullable position;
+@end
+
+@interface MCMediaPlaybackClusterTrackAttributesStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSString * _Nonnull languageCode;
+@property (nonatomic, copy) NSString * _Nullable displayName;
+@end
+
+@interface MCMediaPlaybackClusterTrackStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSString * _Nonnull id;
+@property (nonatomic, copy) MCMediaPlaybackClusterTrackAttributesStruct * _Nullable trackAttributes;
+@end
+
+@interface MCApplicationBasicClusterApplicationStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSNumber * _Nonnull catalogVendorID;
+@property (nonatomic, copy) NSString * _Nonnull applicationID;
+@end
+
+@interface MCTargetNavigatorClusterTargetInfoStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSNumber * _Nonnull identifier;
+@property (nonatomic, copy) NSString * _Nonnull name;
+@end
+
+@interface MCApplicationLauncherClusterApplicationStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSNumber * _Nonnull catalogVendorID;
+@property (nonatomic, copy) NSString * _Nonnull applicationID;
+@end
+
+@interface MCApplicationLauncherClusterApplicationEPStruct : NSObject <NSCopying>
+@property (nonatomic, copy) MCApplicationLauncherClusterApplicationStruct * _Nonnull application;
+@property (nonatomic, copy) NSNumber * _Nullable endpoint;
+@end
+
+@interface MCContentLauncherClusterContentSearchStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSArray * _Nonnull parameterList;
+@end
+
+// MTR_PROVISIONALLY_AVAILABLE
+@interface MCContentLauncherClusterTrackPreferenceStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSString * _Nonnull languageCode; // MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSArray * _Nullable characteristics; // MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSNumber * _Nonnull audioOutputIndex; // MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+// MTR_PROVISIONALLY_AVAILABLE
+@interface MCContentLauncherClusterPlaybackPreferencesStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSNumber * _Nonnull playbackPosition; // MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) MCContentLauncherClusterTrackPreferenceStruct * _Nonnull textTrack; // MTR_PROVISIONALLY_AVAILABLE;
+@property (nonatomic, copy) NSArray * _Nullable audioTracks; // MTR_PROVISIONALLY_AVAILABLE;
+@end
+
+@interface MCContentLauncherClusterDimensionStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSNumber * _Nonnull width;
+@property (nonatomic, copy) NSNumber * _Nonnull height;
+@property (nonatomic, copy) NSNumber * _Nonnull metric;
+@end
+
+@interface MCContentLauncherClusterStyleInformationStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSString * _Nullable imageURL;
+@property (nonatomic, copy) NSString * _Nullable color;
+@property (nonatomic, copy) MCContentLauncherClusterDimensionStruct * _Nullable size;
+@end
+
+@interface MCContentLauncherClusterBrandingInformationStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSString * _Nonnull providerName;
+@property (nonatomic, copy) MCContentLauncherClusterStyleInformationStruct * _Nullable background;
+@property (nonatomic, copy) MCContentLauncherClusterStyleInformationStruct * _Nullable logo;
+@property (nonatomic, copy) MCContentLauncherClusterStyleInformationStruct * _Nullable progressBar;
+@property (nonatomic, copy) MCContentLauncherClusterStyleInformationStruct * _Nullable splash;
+@property (nonatomic, copy) MCContentLauncherClusterStyleInformationStruct * _Nullable waterMark;
+@end
+
+@interface MCContentLauncherClusterParameterStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSNumber * _Nonnull type;
+@property (nonatomic, copy) NSString * _Nonnull value;
+@property (nonatomic, copy) NSArray * _Nullable externalIDList;
+@end
+
+@interface MCContentLauncherClusterAdditionalInfoStruct : NSObject <NSCopying>
+@property (nonatomic, copy) NSString * _Nonnull name;
+@property (nonatomic, copy) NSString * _Nonnull value;
+@end
+
+#endif /* MCStructsObjc_h */
diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCInteractionModelStructs.mm b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCInteractionModelStructs.mm
new file mode 100644
index 0000000..b847389
--- /dev/null
+++ b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCInteractionModelStructs.mm
@@ -0,0 +1,529 @@
+/**
+ *
+ * Copyright (c) 2020-2024 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.
+ */
+
+#import "MCInteractionModelStructs.h"
+
+#import <Foundation/Foundation.h>
+
+@implementation MCMediaPlaybackClusterPlaybackPositionStruct
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _updatedAt = @(0);
+
+ _position = nil;
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+ auto other = [[MCMediaPlaybackClusterPlaybackPositionStruct alloc] init];
+
+ other.updatedAt = self.updatedAt;
+ other.position = self.position;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: updatedAt:%@; position:%@; >", NSStringFromClass([self class]), _updatedAt, _position];
+ return descriptionString;
+}
+@end
+
+@implementation MCMediaPlaybackClusterTrackAttributesStruct
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _languageCode = @"";
+
+ _displayName = nil;
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+ auto other = [[MCMediaPlaybackClusterTrackAttributesStruct alloc] init];
+
+ other.languageCode = self.languageCode;
+ other.displayName = self.displayName;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: languageCode:%@; displayName:%@; >", NSStringFromClass([self class]), _languageCode, _displayName];
+ return descriptionString;
+}
+@end
+
+@implementation MCMediaPlaybackClusterTrackStruct
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _id = @"";
+
+ _trackAttributes = nil;
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+ auto other = [[MCMediaPlaybackClusterTrackStruct alloc] init];
+
+ other.id = self.id;
+ other.trackAttributes = self.trackAttributes;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: id:%@; trackAttributes:%@; >", NSStringFromClass([self class]), _id, _trackAttributes];
+ return descriptionString;
+}
+@end
+
+@implementation MCApplicationBasicClusterApplicationStruct
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _catalogVendorID = @(0);
+
+ _applicationID = @"";
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+ auto other = [[MCApplicationBasicClusterApplicationStruct alloc] init];
+
+ other.catalogVendorID = self.catalogVendorID;
+ other.applicationID = self.applicationID;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: catalogVendorID:%@; applicationID:%@; >", NSStringFromClass([self class]), _catalogVendorID, _applicationID];
+ return descriptionString;
+}
+
+- (void)setCatalogVendorId:(NSNumber * _Nonnull)catalogVendorId
+{
+ self.catalogVendorID = catalogVendorId;
+}
+
+- (NSNumber * _Nonnull)catalogVendorId
+{
+ return self.catalogVendorID;
+}
+
+- (void)setApplicationId:(NSString * _Nonnull)applicationId
+{
+ self.applicationID = applicationId;
+}
+
+- (NSString * _Nonnull)applicationId
+{
+ return self.applicationID;
+}
+@end
+
+@implementation MCTargetNavigatorClusterTargetInfoStruct
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _identifier = @(0);
+
+ _name = @"";
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+ auto other = [[MCTargetNavigatorClusterTargetInfoStruct alloc] init];
+
+ other.identifier = self.identifier;
+ other.name = self.name;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: identifier:%@; name:%@; >", NSStringFromClass([self class]), _identifier, _name];
+ return descriptionString;
+}
+@end
+
+@implementation MCApplicationLauncherClusterApplicationStruct
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _catalogVendorID = @(0);
+
+ _applicationID = @"";
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+ auto other = [[MCApplicationLauncherClusterApplicationStruct alloc] init];
+
+ other.catalogVendorID = self.catalogVendorID;
+ other.applicationID = self.applicationID;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: catalogVendorID:%@; applicationID:%@; >", NSStringFromClass([self class]), _catalogVendorID, _applicationID];
+ return descriptionString;
+}
+
+- (void)setCatalogVendorId:(NSNumber * _Nonnull)catalogVendorId
+{
+ self.catalogVendorID = catalogVendorId;
+}
+
+- (NSNumber * _Nonnull)catalogVendorId
+{
+ return self.catalogVendorID;
+}
+
+- (void)setApplicationId:(NSString * _Nonnull)applicationId
+{
+ self.applicationID = applicationId;
+}
+
+- (NSString * _Nonnull)applicationId
+{
+ return self.applicationID;
+}
+@end
+
+@implementation MCApplicationLauncherClusterApplicationEPStruct
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _application = [MCApplicationLauncherClusterApplicationStruct new];
+
+ _endpoint = nil;
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+ auto other = [[MCApplicationLauncherClusterApplicationEPStruct alloc] init];
+
+ other.application = self.application;
+ other.endpoint = self.endpoint;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: application:%@; endpoint:%@; >", NSStringFromClass([self class]), _application, _endpoint];
+ return descriptionString;
+}
+@end
+
+@implementation MCContentLauncherClusterContentSearchStruct
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _parameterList = [NSArray array];
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+ auto other = [[MCContentLauncherClusterContentSearchStruct alloc] init];
+
+ other.parameterList = self.parameterList;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: parameterList:%@; >", NSStringFromClass([self class]), _parameterList];
+ return descriptionString;
+}
+@end
+
+@implementation MCContentLauncherClusterTrackPreferenceStruct
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _languageCode = @"";
+
+ _characteristics = nil;
+
+ _audioOutputIndex = @(0);
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+ auto other = [[MCContentLauncherClusterTrackPreferenceStruct alloc] init];
+
+ other.languageCode = self.languageCode;
+ other.characteristics = self.characteristics;
+ other.audioOutputIndex = self.audioOutputIndex;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: languageCode:%@; characteristics:%@; audioOutputIndex:%@; >", NSStringFromClass([self class]), _languageCode, _characteristics, _audioOutputIndex];
+ return descriptionString;
+}
+@end
+
+@implementation MCContentLauncherClusterPlaybackPreferencesStruct
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _playbackPosition = @(0);
+
+ _textTrack = [MCContentLauncherClusterTrackPreferenceStruct new];
+
+ _audioTracks = nil;
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+ auto other = [[MCContentLauncherClusterPlaybackPreferencesStruct alloc] init];
+
+ other.playbackPosition = self.playbackPosition;
+ other.textTrack = self.textTrack;
+ other.audioTracks = self.audioTracks;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: playbackPosition:%@; textTrack:%@; audioTracks:%@; >", NSStringFromClass([self class]), _playbackPosition, _textTrack, _audioTracks];
+ return descriptionString;
+}
+@end
+
+@implementation MCContentLauncherClusterDimensionStruct
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _width = @(0);
+
+ _height = @(0);
+
+ _metric = @(0);
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+ auto other = [[MCContentLauncherClusterDimensionStruct alloc] init];
+
+ other.width = self.width;
+ other.height = self.height;
+ other.metric = self.metric;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: width:%@; height:%@; metric:%@; >", NSStringFromClass([self class]), _width, _height, _metric];
+ return descriptionString;
+}
+@end
+
+@implementation MCContentLauncherClusterStyleInformationStruct
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _imageURL = nil;
+
+ _color = nil;
+
+ _size = nil;
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+ auto other = [[MCContentLauncherClusterStyleInformationStruct alloc] init];
+
+ other.imageURL = self.imageURL;
+ other.color = self.color;
+ other.size = self.size;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: imageURL:%@; color:%@; size:%@; >", NSStringFromClass([self class]), _imageURL, _color, _size];
+ return descriptionString;
+}
+
+- (void)setImageUrl:(NSString * _Nullable)imageUrl
+{
+ self.imageURL = imageUrl;
+}
+
+- (NSString * _Nullable)imageUrl
+{
+ return self.imageURL;
+}
+@end
+
+@implementation MCContentLauncherClusterBrandingInformationStruct
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _providerName = @"";
+
+ _background = nil;
+
+ _logo = nil;
+
+ _progressBar = nil;
+
+ _splash = nil;
+
+ _waterMark = nil;
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+ auto other = [[MCContentLauncherClusterBrandingInformationStruct alloc] init];
+
+ other.providerName = self.providerName;
+ other.background = self.background;
+ other.logo = self.logo;
+ other.progressBar = self.progressBar;
+ other.splash = self.splash;
+ other.waterMark = self.waterMark;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: providerName:%@; background:%@; logo:%@; progressBar:%@; splash:%@; waterMark:%@; >", NSStringFromClass([self class]), _providerName, _background, _logo, _progressBar, _splash, _waterMark];
+ return descriptionString;
+}
+@end
+
+@implementation MCContentLauncherClusterParameterStruct
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _type = @(0);
+
+ _value = @"";
+
+ _externalIDList = nil;
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+ auto other = [[MCContentLauncherClusterParameterStruct alloc] init];
+
+ other.type = self.type;
+ other.value = self.value;
+ other.externalIDList = self.externalIDList;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: type:%@; value:%@; externalIDList:%@; >", NSStringFromClass([self class]), _type, _value, _externalIDList];
+ return descriptionString;
+}
+@end
+
+@implementation MCContentLauncherClusterAdditionalInfoStruct
+- (instancetype)init
+{
+ if (self = [super init]) {
+
+ _name = @"";
+
+ _value = @"";
+ }
+ return self;
+}
+
+- (id)copyWithZone:(NSZone * _Nullable)zone
+{
+ auto other = [[MCContentLauncherClusterAdditionalInfoStruct alloc] init];
+
+ other.name = self.name;
+ other.value = self.value;
+
+ return other;
+}
+
+- (NSString *)description
+{
+ NSString * descriptionString = [NSString stringWithFormat:@"<%@: name:%@; value:%@; >", NSStringFromClass([self class]), _name, _value];
+ return descriptionString;
+}
+@end
diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCStructsObjc.h b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCStructsObjc.h
deleted file mode 100644
index fa03916..0000000
--- a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCStructsObjc.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
- *
- * Copyright (c) 2020-2024 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.
- */
-
-#import <Foundation/Foundation.h>
-
-#ifndef MCStructsObjc_h
-#define MCStructsObjc_h
-
-@interface MCMediaPlaybackClusterPlaybackPositionStruct : NSObject <NSCopying>
-@property (nonatomic, copy) NSNumber * _Nonnull updatedAt;
-@property (nonatomic, copy) NSNumber * _Nullable position;
-@end
-
-@interface MCMediaPlaybackClusterTrackAttributesStruct : NSObject <NSCopying>
-@property (nonatomic, copy) NSString * _Nonnull languageCode;
-@property (nonatomic, copy) NSString * _Nullable displayName;
-@end
-
-@interface MCMediaPlaybackClusterTrackStruct : NSObject <NSCopying>
-@property (nonatomic, copy) NSString * _Nonnull id;
-@property (nonatomic, copy) MCMediaPlaybackClusterTrackAttributesStruct * _Nullable trackAttributes;
-@end
-
-@interface MCApplicationBasicClusterApplicationStruct : NSObject <NSCopying>
-@property (nonatomic, copy) NSNumber * _Nonnull catalogVendorID;
-@property (nonatomic, copy) NSString * _Nonnull applicationID;
-@end
-
-@interface MCTargetNavigatorClusterTargetInfoStruct : NSObject <NSCopying>
-@property (nonatomic, copy) NSNumber * _Nonnull identifier;
-@property (nonatomic, copy) NSString * _Nonnull name;
-@end
-
-@interface MCApplicationLauncherClusterApplicationStruct : NSObject <NSCopying>
-@property (nonatomic, copy) NSNumber * _Nonnull catalogVendorID;
-@property (nonatomic, copy) NSString * _Nonnull applicationID;
-@end
-
-@interface MCApplicationLauncherClusterApplicationEPStruct : NSObject <NSCopying>
-@property (nonatomic, copy) MCApplicationLauncherClusterApplicationStruct * _Nonnull application;
-@property (nonatomic, copy) NSNumber * _Nullable endpoint;
-@end
-
-#endif /* MCStructsObjc_h */
diff --git a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCStructsObjc.mm b/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCStructsObjc.mm
deleted file mode 100644
index 64ced38..0000000
--- a/examples/tv-casting-app/darwin/MatterTvCastingBridge/MatterTvCastingBridge/zap-generated/MCStructsObjc.mm
+++ /dev/null
@@ -1,291 +0,0 @@
-/**
- *
- * Copyright (c) 2020-2024 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.
- */
-
-#import "MCStructsObjc.h"
-
-#import <Foundation/Foundation.h>
-
-@implementation MCMediaPlaybackClusterPlaybackPositionStruct
-- (instancetype)init
-{
- if (self = [super init]) {
-
- _updatedAt = @(0);
-
- _position = nil;
- }
- return self;
-}
-
-- (id)copyWithZone:(NSZone * _Nullable)zone
-{
- auto other = [[MCMediaPlaybackClusterPlaybackPositionStruct alloc] init];
-
- other.updatedAt = self.updatedAt;
- other.position = self.position;
-
- return other;
-}
-
-- (NSString *)description
-{
- NSString * descriptionString = [NSString stringWithFormat:@"<%@: updatedAt:%@; position:%@; >", NSStringFromClass([self class]), _updatedAt, _position];
- return descriptionString;
-}
-
-@end
-
-@implementation MCMediaPlaybackClusterPlaybackPosition : MCMediaPlaybackClusterPlaybackPositionStruct
-@dynamic updatedAt;
-@dynamic position;
-@end
-
-@implementation MCMediaPlaybackClusterTrackAttributesStruct
-- (instancetype)init
-{
- if (self = [super init]) {
-
- _languageCode = @"";
-
- _displayName = nil;
- }
- return self;
-}
-
-- (id)copyWithZone:(NSZone * _Nullable)zone
-{
- auto other = [[MCMediaPlaybackClusterTrackAttributesStruct alloc] init];
-
- other.languageCode = self.languageCode;
- other.displayName = self.displayName;
-
- return other;
-}
-
-- (NSString *)description
-{
- NSString * descriptionString = [NSString stringWithFormat:@"<%@: languageCode:%@; displayName:%@; >", NSStringFromClass([self class]), _languageCode, _displayName];
- return descriptionString;
-}
-
-@end
-
-@implementation MCMediaPlaybackClusterTrackStruct
-- (instancetype)init
-{
- if (self = [super init]) {
-
- _id = @"";
-
- _trackAttributes = nil;
- }
- return self;
-}
-
-- (id)copyWithZone:(NSZone * _Nullable)zone
-{
- auto other = [[MCMediaPlaybackClusterTrackStruct alloc] init];
-
- other.id = self.id;
- other.trackAttributes = self.trackAttributes;
-
- return other;
-}
-
-- (NSString *)description
-{
- NSString * descriptionString = [NSString stringWithFormat:@"<%@: id:%@; trackAttributes:%@; >", NSStringFromClass([self class]), _id, _trackAttributes];
- return descriptionString;
-}
-
-@end
-
-@implementation MCApplicationBasicClusterApplicationStruct
-- (instancetype)init
-{
- if (self = [super init]) {
-
- _catalogVendorID = @(0);
-
- _applicationID = @"";
- }
- return self;
-}
-
-- (id)copyWithZone:(NSZone * _Nullable)zone
-{
- auto other = [[MCApplicationBasicClusterApplicationStruct alloc] init];
-
- other.catalogVendorID = self.catalogVendorID;
- other.applicationID = self.applicationID;
-
- return other;
-}
-
-- (NSString *)description
-{
- NSString * descriptionString = [NSString stringWithFormat:@"<%@: catalogVendorID:%@; applicationID:%@; >", NSStringFromClass([self class]), _catalogVendorID, _applicationID];
- return descriptionString;
-}
-
-- (void)setCatalogVendorId:(NSNumber * _Nonnull)catalogVendorId
-{
- self.catalogVendorID = catalogVendorId;
-}
-
-- (NSNumber * _Nonnull)catalogVendorId
-{
- return self.catalogVendorID;
-}
-
-- (void)setApplicationId:(NSString * _Nonnull)applicationId
-{
- self.applicationID = applicationId;
-}
-
-- (NSString * _Nonnull)applicationId
-{
- return self.applicationID;
-}
-
-@end
-
-@implementation MCApplicationBasicClusterApplicationBasicApplication : MCApplicationBasicClusterApplicationStruct
-@end
-
-@implementation MCTargetNavigatorClusterTargetInfoStruct
-- (instancetype)init
-{
- if (self = [super init]) {
-
- _identifier = @(0);
-
- _name = @"";
- }
- return self;
-}
-
-- (id)copyWithZone:(NSZone * _Nullable)zone
-{
- auto other = [[MCTargetNavigatorClusterTargetInfoStruct alloc] init];
-
- other.identifier = self.identifier;
- other.name = self.name;
-
- return other;
-}
-
-- (NSString *)description
-{
- NSString * descriptionString = [NSString stringWithFormat:@"<%@: identifier:%@; name:%@; >", NSStringFromClass([self class]), _identifier, _name];
- return descriptionString;
-}
-
-@end
-
-@implementation MCTargetNavigatorClusterTargetInfo : MCTargetNavigatorClusterTargetInfoStruct
-@dynamic identifier;
-@dynamic name;
-@end
-
-@implementation MCApplicationLauncherClusterApplicationStruct
-- (instancetype)init
-{
- if (self = [super init]) {
-
- _catalogVendorID = @(0);
-
- _applicationID = @"";
- }
- return self;
-}
-
-- (id)copyWithZone:(NSZone * _Nullable)zone
-{
- auto other = [[MCApplicationLauncherClusterApplicationStruct alloc] init];
-
- other.catalogVendorID = self.catalogVendorID;
- other.applicationID = self.applicationID;
-
- return other;
-}
-
-- (NSString *)description
-{
- NSString * descriptionString = [NSString stringWithFormat:@"<%@: catalogVendorID:%@; applicationID:%@; >", NSStringFromClass([self class]), _catalogVendorID, _applicationID];
- return descriptionString;
-}
-
-- (void)setCatalogVendorId:(NSNumber * _Nonnull)catalogVendorId
-{
- self.catalogVendorID = catalogVendorId;
-}
-
-- (NSNumber * _Nonnull)catalogVendorId
-{
- return self.catalogVendorID;
-}
-
-- (void)setApplicationId:(NSString * _Nonnull)applicationId
-{
- self.applicationID = applicationId;
-}
-
-- (NSString * _Nonnull)applicationId
-{
- return self.applicationID;
-}
-
-@end
-
-@implementation MCApplicationLauncherClusterApplication : MCApplicationLauncherClusterApplicationStruct
-@end
-
-@implementation MCApplicationLauncherClusterApplicationEPStruct
-- (instancetype)init
-{
- if (self = [super init]) {
-
- _application = [MCApplicationLauncherClusterApplicationStruct new];
-
- _endpoint = nil;
- }
- return self;
-}
-
-- (id)copyWithZone:(NSZone * _Nullable)zone
-{
- auto other = [[MCApplicationLauncherClusterApplicationEPStruct alloc] init];
-
- other.application = self.application;
- other.endpoint = self.endpoint;
-
- return other;
-}
-
-- (NSString *)description
-{
- NSString * descriptionString = [NSString stringWithFormat:@"<%@: application:%@; endpoint:%@; >", NSStringFromClass([self class]), _application, _endpoint];
- return descriptionString;
-}
-
-@end
-
-@implementation MCApplicationLauncherClusterApplicationEP : MCApplicationLauncherClusterApplicationEPStruct
-@dynamic application;
-@dynamic endpoint;
-@end
diff --git a/examples/tv-casting-app/darwin/TvCasting/TvCasting/MCContentLauncherLaunchURLExampleViewModel.swift b/examples/tv-casting-app/darwin/TvCasting/TvCasting/MCContentLauncherLaunchURLExampleViewModel.swift
index b74a91a..302ec88 100644
--- a/examples/tv-casting-app/darwin/TvCasting/TvCasting/MCContentLauncherLaunchURLExampleViewModel.swift
+++ b/examples/tv-casting-app/darwin/TvCasting/TvCasting/MCContentLauncherLaunchURLExampleViewModel.swift
@@ -60,7 +60,7 @@
}
// create the LaunchURL request
- let request: MCContentLauncherClusterLaunchURLRequest = MCContentLauncherClusterLaunchURLRequest()
+ let request: MCContentLauncherClusterLaunchURLParams = MCContentLauncherClusterLaunchURLParams()
request.contentURL = contentUrl
request.displayString = displayString