blob: 4aa0db4a7023342cececdc8e0f5bb6e54458dba3 [file] [log] [blame]
// This IDL was generated automatically by ZAP.
// It is for view/code review purposes only.
enum AreaTypeTag : enum8 {
kAisle = 0;
kAttic = 1;
kBackDoor = 2;
kBackYard = 3;
kBalcony = 4;
kBallroom = 5;
kBathroom = 6;
kBedroom = 7;
kBorder = 8;
kBoxroom = 9;
kBreakfastRoom = 10;
kCarport = 11;
kCellar = 12;
kCloakroom = 13;
kCloset = 14;
kConservatory = 15;
kCorridor = 16;
kCraftRoom = 17;
kCupboard = 18;
kDeck = 19;
kDen = 20;
kDining = 21;
kDrawingRoom = 22;
kDressingRoom = 23;
kDriveway = 24;
kElevator = 25;
kEnsuite = 26;
kEntrance = 27;
kEntryway = 28;
kFamilyRoom = 29;
kFoyer = 30;
kFrontDoor = 31;
kFrontYard = 32;
kGameRoom = 33;
kGarage = 34;
kGarageDoor = 35;
kGarden = 36;
kGardenDoor = 37;
kGuestBathroom = 38;
kGuestBedroom = 39;
kGuestRestroom = 40;
kGuestRoom = 41;
kGym = 42;
kHallway = 43;
kHearthRoom = 44;
kKidsRoom = 45;
kKidsBedroom = 46;
kKitchen = 47;
kLarder = 48;
kLaundryRoom = 49;
kLawn = 50;
kLibrary = 51;
kLivingRoom = 52;
kLounge = 53;
kMediaTVRoom = 54;
kMudRoom = 55;
kMusicRoom = 56;
kNursery = 57;
kOffice = 58;
kOutdoorKitchen = 59;
kOutside = 60;
kPantry = 61;
kParkingLot = 62;
kParlor = 63;
kPatio = 64;
kPlayRoom = 65;
kPoolRoom = 66;
kPorch = 67;
kPrimaryBathroom = 68;
kPrimaryBedroom = 69;
kRamp = 70;
kReceptionRoom = 71;
kRecreationRoom = 72;
kRestroom = 73;
kRoof = 74;
kSauna = 75;
kScullery = 76;
kSewingRoom = 77;
kShed = 78;
kSideDoor = 79;
kSideYard = 80;
kSittingRoom = 81;
kSnug = 82;
kSpa = 83;
kStaircase = 84;
kSteamRoom = 85;
kStorageRoom = 86;
kStudio = 87;
kStudy = 88;
kSunRoom = 89;
kSwimmingPool = 90;
kTerrace = 91;
kUtilityRoom = 92;
kWard = 93;
kWorkshop = 94;
}
enum AtomicRequestTypeEnum : enum8 {
kBeginWrite = 0;
kCommitWrite = 1;
kRollbackWrite = 2;
}
enum FloorSurfaceTag : enum8 {
kCarpet = 0;
kCeramic = 1;
kConcrete = 2;
kCork = 3;
kDeepCarpet = 4;
kDirt = 5;
kEngineeredWood = 6;
kGlass = 7;
kGrass = 8;
kHardwood = 9;
kLaminate = 10;
kLinoleum = 11;
kMat = 12;
kMetal = 13;
kPlastic = 14;
kPolishedConcrete = 15;
kRubber = 16;
kRug = 17;
kSand = 18;
kStone = 19;
kTatami = 20;
kTerrazzo = 21;
kTile = 22;
kVinyl = 23;
}
enum LandmarkTag : enum8 {
kAirConditioner = 0;
kAirPurifier = 1;
kBackDoor = 2;
kBarStool = 3;
kBathMat = 4;
kBathtub = 5;
kBed = 6;
kBookshelf = 7;
kChair = 8;
kChristmasTree = 9;
kCoatRack = 10;
kCoffeeTable = 11;
kCookingRange = 12;
kCouch = 13;
kCountertop = 14;
kCradle = 15;
kCrib = 16;
kDesk = 17;
kDiningTable = 18;
kDishwasher = 19;
kDoor = 20;
kDresser = 21;
kLaundryDryer = 22;
kFan = 23;
kFireplace = 24;
kFreezer = 25;
kFrontDoor = 26;
kHighChair = 27;
kKitchenIsland = 28;
kLamp = 29;
kLitterBox = 30;
kMirror = 31;
kNightstand = 32;
kOven = 33;
kPetBed = 34;
kPetBowl = 35;
kPetCrate = 36;
kRefrigerator = 37;
kScratchingPost = 38;
kShoeRack = 39;
kShower = 40;
kSideDoor = 41;
kSink = 42;
kSofa = 43;
kStove = 44;
kTable = 45;
kToilet = 46;
kTrashCan = 47;
kLaundryWasher = 48;
kWindow = 49;
kWineCooler = 50;
}
enum PositionTag : enum8 {
kLeft = 0;
kRight = 1;
kTop = 2;
kBottom = 3;
kMiddle = 4;
kRow = 5;
kColumn = 6;
}
enum RelativePositionTag : enum8 {
kUnder = 0;
kNextTo = 1;
kAround = 2;
kOn = 3;
kAbove = 4;
kFrontOf = 5;
kBehind = 6;
}
enum TestGlobalEnum : enum8 {
kSomeValue = 0;
kSomeOtherValue = 1;
kFinalValue = 2;
}
enum ThreeLevelAutoEnum : enum8 {
kLow = 0;
kMedium = 1;
kHigh = 2;
kAutomatic = 3;
}
bitmap TestGlobalBitmap : bitmap32 {
kFirstBit = 0x1;
kSecondBit = 0x2;
}
struct TestGlobalStruct {
char_string<128> name = 0;
nullable TestGlobalBitmap myBitmap = 1;
optional nullable TestGlobalEnum myEnum = 2;
}
struct LocationDescriptorStruct {
char_string<128> locationName = 0;
nullable int16s floorNumber = 1;
nullable AreaTypeTag areaType = 2;
}
struct AtomicAttributeStatusStruct {
attrib_id attributeID = 0;
status statusCode = 1;
}
/** The Descriptor Cluster is meant to replace the support from the Zigbee Device Object (ZDO) for describing a node, its endpoints and clusters. */
cluster Descriptor = 29 {
revision 2;
bitmap Feature : bitmap32 {
kTagList = 0x1;
}
struct DeviceTypeStruct {
devtype_id deviceType = 0;
int16u revision = 1;
}
struct SemanticTagStruct {
nullable vendor_id mfgCode = 0;
enum8 namespaceID = 1;
enum8 tag = 2;
optional nullable char_string label = 3;
}
readonly attribute DeviceTypeStruct deviceTypeList[] = 0;
readonly attribute cluster_id serverList[] = 1;
readonly attribute cluster_id clientList[] = 2;
readonly attribute endpoint_no partsList[] = 3;
readonly attribute optional SemanticTagStruct tagList[] = 4;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
}
/** The Access Control Cluster exposes a data model view of a
Node's Access Control List (ACL), which codifies the rules used to manage
and enforce Access Control for the Node's endpoints and their associated
cluster instances. */
cluster AccessControl = 31 {
revision 2;
enum AccessControlEntryAuthModeEnum : enum8 {
kPASE = 1;
kCASE = 2;
kGroup = 3;
}
enum AccessControlEntryPrivilegeEnum : enum8 {
kView = 1;
kProxyView = 2;
kOperate = 3;
kManage = 4;
kAdminister = 5;
}
enum AccessRestrictionTypeEnum : enum8 {
kAttributeAccessForbidden = 0;
kAttributeWriteForbidden = 1;
kCommandForbidden = 2;
kEventForbidden = 3;
}
enum ChangeTypeEnum : enum8 {
kChanged = 0;
kAdded = 1;
kRemoved = 2;
}
bitmap Feature : bitmap32 {
kExtension = 0x1;
kManagedDevice = 0x2;
}
struct AccessRestrictionStruct {
AccessRestrictionTypeEnum type = 0;
nullable int32u id = 1;
}
struct CommissioningAccessRestrictionEntryStruct {
endpoint_no endpoint = 0;
cluster_id cluster = 1;
AccessRestrictionStruct restrictions[] = 2;
}
fabric_scoped struct AccessRestrictionEntryStruct {
fabric_sensitive endpoint_no endpoint = 0;
fabric_sensitive cluster_id cluster = 1;
fabric_sensitive AccessRestrictionStruct restrictions[] = 2;
fabric_idx fabricIndex = 254;
}
struct AccessControlTargetStruct {
nullable cluster_id cluster = 0;
nullable endpoint_no endpoint = 1;
nullable devtype_id deviceType = 2;
}
fabric_scoped struct AccessControlEntryStruct {
fabric_sensitive AccessControlEntryPrivilegeEnum privilege = 1;
fabric_sensitive AccessControlEntryAuthModeEnum authMode = 2;
nullable fabric_sensitive int64u subjects[] = 3;
nullable fabric_sensitive AccessControlTargetStruct targets[] = 4;
fabric_idx fabricIndex = 254;
}
fabric_scoped struct AccessControlExtensionStruct {
fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable int16u adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
nullable AccessControlEntryStruct latestValue = 4;
fabric_idx fabricIndex = 254;
}
fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable int16u adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
nullable AccessControlExtensionStruct latestValue = 4;
fabric_idx fabricIndex = 254;
}
fabric_sensitive info event access(read: administer) FabricRestrictionReviewUpdate = 2 {
int64u token = 0;
optional long_char_string instruction = 1;
optional long_char_string ARLRequestFlowUrl = 2;
fabric_idx fabricIndex = 254;
}
attribute access(read: administer, write: administer) AccessControlEntryStruct acl[] = 0;
attribute access(read: administer, write: administer) optional AccessControlExtensionStruct extension[] = 1;
readonly attribute int16u subjectsPerAccessControlEntry = 2;
readonly attribute int16u targetsPerAccessControlEntry = 3;
readonly attribute int16u accessControlEntriesPerFabric = 4;
readonly attribute optional CommissioningAccessRestrictionEntryStruct commissioningARL[] = 5;
readonly attribute optional AccessRestrictionEntryStruct arl[] = 6;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
request struct ReviewFabricRestrictionsRequest {
CommissioningAccessRestrictionEntryStruct arl[] = 0;
}
response struct ReviewFabricRestrictionsResponse = 1 {
int64u token = 0;
}
/** This command signals to the service associated with the device vendor that the fabric administrator would like a review of the current restrictions on the accessing fabric. */
fabric command access(invoke: administer) ReviewFabricRestrictions(ReviewFabricRestrictionsRequest): ReviewFabricRestrictionsResponse = 0;
}
/** This cluster provides attributes and events for determining basic information about Nodes, which supports both
Commissioning and operational determination of Node characteristics, such as Vendor ID, Product ID and serial number,
which apply to the whole Node. Also allows setting user device information such as location. */
cluster BasicInformation = 40 {
revision 3;
enum ColorEnum : enum8 {
kBlack = 0;
kNavy = 1;
kGreen = 2;
kTeal = 3;
kMaroon = 4;
kPurple = 5;
kOlive = 6;
kGray = 7;
kBlue = 8;
kLime = 9;
kAqua = 10;
kRed = 11;
kFuchsia = 12;
kYellow = 13;
kWhite = 14;
kNickel = 15;
kChrome = 16;
kBrass = 17;
kCopper = 18;
kSilver = 19;
kGold = 20;
}
enum ProductFinishEnum : enum8 {
kOther = 0;
kMatte = 1;
kSatin = 2;
kPolished = 3;
kRugged = 4;
kFabric = 5;
}
struct CapabilityMinimaStruct {
int16u caseSessionsPerFabric = 0;
int16u subscriptionsPerFabric = 1;
}
struct ProductAppearanceStruct {
ProductFinishEnum finish = 0;
nullable ColorEnum primaryColor = 1;
}
critical event StartUp = 0 {
int32u softwareVersion = 0;
}
critical event ShutDown = 1 {
}
info event Leave = 2 {
fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 3 {
boolean reachableNewValue = 0;
}
readonly attribute int16u dataModelRevision = 0;
readonly attribute char_string<32> vendorName = 1;
readonly attribute vendor_id vendorID = 2;
readonly attribute char_string<32> productName = 3;
readonly attribute int16u productID = 4;
attribute access(write: manage) char_string<32> nodeLabel = 5;
attribute access(write: administer) char_string<2> location = 6;
readonly attribute int16u hardwareVersion = 7;
readonly attribute char_string<64> hardwareVersionString = 8;
readonly attribute int32u softwareVersion = 9;
readonly attribute char_string<64> softwareVersionString = 10;
readonly attribute optional char_string<16> manufacturingDate = 11;
readonly attribute optional char_string<32> partNumber = 12;
readonly attribute optional long_char_string<256> productURL = 13;
readonly attribute optional char_string<64> productLabel = 14;
readonly attribute optional char_string<32> serialNumber = 15;
attribute access(write: manage) optional boolean localConfigDisabled = 16;
readonly attribute optional boolean reachable = 17;
readonly attribute char_string<32> uniqueID = 18;
readonly attribute CapabilityMinimaStruct capabilityMinima = 19;
readonly attribute optional ProductAppearanceStruct productAppearance = 20;
readonly attribute int32u specificationVersion = 21;
readonly attribute int16u maxPathsPerInvoke = 22;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
command MfgSpecificPing(): DefaultSuccess = 0;
}
/** This cluster is used to manage global aspects of the Commissioning flow. */
cluster GeneralCommissioning = 48 {
revision 1; // NOTE: Default/not specifically set
enum CommissioningErrorEnum : enum8 {
kOK = 0;
kValueOutsideRange = 1;
kInvalidAuthentication = 2;
kNoFailSafe = 3;
kBusyWithOtherAdmin = 4;
kRequiredTCNotAccepted = 5;
kTCAcknowledgementsNotReceived = 6;
kTCMinVersionNotMet = 7;
}
enum RegulatoryLocationTypeEnum : enum8 {
kIndoor = 0;
kOutdoor = 1;
kIndoorOutdoor = 2;
}
bitmap Feature : bitmap32 {
kTermsAndConditions = 0x1;
}
struct BasicCommissioningInfo {
int16u failSafeExpiryLengthSeconds = 0;
int16u maxCumulativeFailsafeSeconds = 1;
}
attribute access(write: administer) int64u breadcrumb = 0;
readonly attribute BasicCommissioningInfo basicCommissioningInfo = 1;
readonly attribute RegulatoryLocationTypeEnum regulatoryConfig = 2;
readonly attribute RegulatoryLocationTypeEnum locationCapability = 3;
readonly attribute boolean supportsConcurrentConnection = 4;
provisional readonly attribute access(read: administer) optional int16u TCAcceptedVersion = 5;
provisional readonly attribute access(read: administer) optional int16u TCMinRequiredVersion = 6;
provisional readonly attribute access(read: administer) optional bitmap16 TCAcknowledgements = 7;
provisional readonly attribute access(read: administer) optional boolean TCAcknowledgementsRequired = 8;
provisional readonly attribute access(read: administer) optional int32u TCUpdateDeadline = 9;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
request struct ArmFailSafeRequest {
int16u expiryLengthSeconds = 0;
int64u breadcrumb = 1;
}
response struct ArmFailSafeResponse = 1 {
CommissioningErrorEnum errorCode = 0;
char_string<128> debugText = 1;
}
request struct SetRegulatoryConfigRequest {
RegulatoryLocationTypeEnum newRegulatoryConfig = 0;
char_string<2> countryCode = 1;
int64u breadcrumb = 2;
}
response struct SetRegulatoryConfigResponse = 3 {
CommissioningErrorEnum errorCode = 0;
char_string debugText = 1;
}
response struct CommissioningCompleteResponse = 5 {
CommissioningErrorEnum errorCode = 0;
char_string debugText = 1;
}
request struct SetTCAcknowledgementsRequest {
int16u TCVersion = 0;
bitmap16 TCUserResponse = 1;
}
response struct SetTCAcknowledgementsResponse = 7 {
CommissioningErrorEnum errorCode = 0;
}
/** Arm the persistent fail-safe timer with an expiry time of now + ExpiryLengthSeconds using device clock */
command access(invoke: administer) ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0;
/** Set the regulatory configuration to be used during commissioning */
command access(invoke: administer) SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2;
/** Signals the Server that the Client has successfully completed all steps of Commissioning/Recofiguration needed during fail-safe period. */
fabric command access(invoke: administer) CommissioningComplete(): CommissioningCompleteResponse = 4;
/** This command sets the user acknowledgements received in the Enhanced Setup Flow Terms and Conditions into the node. */
command access(invoke: administer) SetTCAcknowledgements(SetTCAcknowledgementsRequest): SetTCAcknowledgementsResponse = 6;
}
/** Functionality to configure, enable, disable network credentials and access on a Matter device. */
cluster NetworkCommissioning = 49 {
revision 1; // NOTE: Default/not specifically set
enum NetworkCommissioningStatusEnum : enum8 {
kSuccess = 0;
kOutOfRange = 1;
kBoundsExceeded = 2;
kNetworkIDNotFound = 3;
kDuplicateNetworkID = 4;
kNetworkNotFound = 5;
kRegulatoryError = 6;
kAuthFailure = 7;
kUnsupportedSecurity = 8;
kOtherConnectionFailure = 9;
kIPV6Failed = 10;
kIPBindFailed = 11;
kUnknownError = 12;
}
enum WiFiBandEnum : enum8 {
k2G4 = 0;
k3G65 = 1;
k5G = 2;
k6G = 3;
k60G = 4;
k1G = 5;
}
bitmap Feature : bitmap32 {
kWiFiNetworkInterface = 0x1;
kThreadNetworkInterface = 0x2;
kEthernetNetworkInterface = 0x4;
kPerDeviceCredentials = 0x8;
}
bitmap ThreadCapabilitiesBitmap : bitmap16 {
kIsBorderRouterCapable = 0x1;
kIsRouterCapable = 0x2;
kIsSleepyEndDeviceCapable = 0x4;
kIsFullThreadDevice = 0x8;
kIsSynchronizedSleepyEndDeviceCapable = 0x10;
}
bitmap WiFiSecurityBitmap : bitmap8 {
kUnencrypted = 0x1;
kWEP = 0x2;
kWPAPersonal = 0x4;
kWPA2Personal = 0x8;
kWPA3Personal = 0x10;
kWPA3MatterPDC = 0x20;
}
struct NetworkInfoStruct {
octet_string<32> networkID = 0;
boolean connected = 1;
optional nullable octet_string<20> networkIdentifier = 2;
optional nullable octet_string<20> clientIdentifier = 3;
}
struct ThreadInterfaceScanResultStruct {
int16u panId = 0;
int64u extendedPanId = 1;
char_string<16> networkName = 2;
int16u channel = 3;
int8u version = 4;
octet_string<8> extendedAddress = 5;
int8s rssi = 6;
int8u lqi = 7;
}
struct WiFiInterfaceScanResultStruct {
WiFiSecurityBitmap security = 0;
octet_string<32> ssid = 1;
octet_string<6> bssid = 2;
int16u channel = 3;
WiFiBandEnum wiFiBand = 4;
int8s rssi = 5;
}
readonly attribute access(read: administer) int8u maxNetworks = 0;
readonly attribute access(read: administer) NetworkInfoStruct networks[] = 1;
readonly attribute optional int8u scanMaxTimeSeconds = 2;
readonly attribute optional int8u connectMaxTimeSeconds = 3;
attribute access(write: administer) boolean interfaceEnabled = 4;
readonly attribute access(read: administer) nullable NetworkCommissioningStatusEnum lastNetworkingStatus = 5;
readonly attribute access(read: administer) nullable octet_string<32> lastNetworkID = 6;
readonly attribute access(read: administer) nullable int32s lastConnectErrorValue = 7;
provisional readonly attribute optional WiFiBandEnum supportedWiFiBands[] = 8;
provisional readonly attribute optional ThreadCapabilitiesBitmap supportedThreadFeatures = 9;
provisional readonly attribute optional int16u threadVersion = 10;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
request struct ScanNetworksRequest {
optional nullable octet_string<32> ssid = 0;
optional int64u breadcrumb = 1;
}
response struct ScanNetworksResponse = 1 {
NetworkCommissioningStatusEnum networkingStatus = 0;
optional char_string debugText = 1;
optional WiFiInterfaceScanResultStruct wiFiScanResults[] = 2;
optional ThreadInterfaceScanResultStruct threadScanResults[] = 3;
}
request struct AddOrUpdateWiFiNetworkRequest {
octet_string<32> ssid = 0;
octet_string<64> credentials = 1;
optional int64u breadcrumb = 2;
optional octet_string<140> networkIdentity = 3;
optional octet_string<20> clientIdentifier = 4;
optional octet_string<32> possessionNonce = 5;
}
request struct AddOrUpdateThreadNetworkRequest {
octet_string<254> operationalDataset = 0;
optional int64u breadcrumb = 1;
}
request struct RemoveNetworkRequest {
octet_string<32> networkID = 0;
optional int64u breadcrumb = 1;
}
response struct NetworkConfigResponse = 5 {
NetworkCommissioningStatusEnum networkingStatus = 0;
optional char_string<512> debugText = 1;
optional int8u networkIndex = 2;
optional octet_string<140> clientIdentity = 3;
optional octet_string<64> possessionSignature = 4;
}
request struct ConnectNetworkRequest {
octet_string<32> networkID = 0;
optional int64u breadcrumb = 1;
}
response struct ConnectNetworkResponse = 7 {
NetworkCommissioningStatusEnum networkingStatus = 0;
optional char_string debugText = 1;
nullable int32s errorValue = 2;
}
request struct ReorderNetworkRequest {
octet_string<32> networkID = 0;
int8u networkIndex = 1;
optional int64u breadcrumb = 2;
}
request struct QueryIdentityRequest {
octet_string<20> keyIdentifier = 0;
optional octet_string<32> possessionNonce = 1;
}
response struct QueryIdentityResponse = 10 {
octet_string<140> identity = 0;
optional octet_string<64> possessionSignature = 1;
}
/** Detemine the set of networks the device sees as available. */
command access(invoke: administer) ScanNetworks(ScanNetworksRequest): ScanNetworksResponse = 0;
/** Add or update the credentials for a given Wi-Fi network. */
command access(invoke: administer) AddOrUpdateWiFiNetwork(AddOrUpdateWiFiNetworkRequest): NetworkConfigResponse = 2;
/** Add or update the credentials for a given Thread network. */
command access(invoke: administer) AddOrUpdateThreadNetwork(AddOrUpdateThreadNetworkRequest): NetworkConfigResponse = 3;
/** Remove the definition of a given network (including its credentials). */
command access(invoke: administer) RemoveNetwork(RemoveNetworkRequest): NetworkConfigResponse = 4;
/** Connect to the specified network, using previously-defined credentials. */
command access(invoke: administer) ConnectNetwork(ConnectNetworkRequest): ConnectNetworkResponse = 6;
/** Modify the order in which networks will be presented in the Networks attribute. */
command access(invoke: administer) ReorderNetwork(ReorderNetworkRequest): NetworkConfigResponse = 8;
/** Retrieve details about and optionally proof of possession of a network client identity. */
command access(invoke: administer) QueryIdentity(QueryIdentityRequest): QueryIdentityResponse = 9;
}
/** The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems. */
cluster GeneralDiagnostics = 51 {
revision 2;
enum BootReasonEnum : enum8 {
kUnspecified = 0;
kPowerOnReboot = 1;
kBrownOutReset = 2;
kSoftwareWatchdogReset = 3;
kHardwareWatchdogReset = 4;
kSoftwareUpdateCompleted = 5;
kSoftwareReset = 6;
}
enum HardwareFaultEnum : enum8 {
kUnspecified = 0;
kRadio = 1;
kSensor = 2;
kResettableOverTemp = 3;
kNonResettableOverTemp = 4;
kPowerSource = 5;
kVisualDisplayFault = 6;
kAudioOutputFault = 7;
kUserInterfaceFault = 8;
kNonVolatileMemoryError = 9;
kTamperDetected = 10;
}
enum InterfaceTypeEnum : enum8 {
kUnspecified = 0;
kWiFi = 1;
kEthernet = 2;
kCellular = 3;
kThread = 4;
}
enum NetworkFaultEnum : enum8 {
kUnspecified = 0;
kHardwareFailure = 1;
kNetworkJammed = 2;
kConnectionFailed = 3;
}
enum RadioFaultEnum : enum8 {
kUnspecified = 0;
kWiFiFault = 1;
kCellularFault = 2;
kThreadFault = 3;
kNFCFault = 4;
kBLEFault = 5;
kEthernetFault = 6;
}
bitmap Feature : bitmap32 {
kDataModelTest = 0x1;
}
struct NetworkInterface {
char_string<32> name = 0;
boolean isOperational = 1;
nullable boolean offPremiseServicesReachableIPv4 = 2;
nullable boolean offPremiseServicesReachableIPv6 = 3;
octet_string<8> hardwareAddress = 4;
octet_string IPv4Addresses[] = 5;
octet_string IPv6Addresses[] = 6;
InterfaceTypeEnum type = 7;
}
critical event HardwareFaultChange = 0 {
HardwareFaultEnum current[] = 0;
HardwareFaultEnum previous[] = 1;
}
critical event RadioFaultChange = 1 {
RadioFaultEnum current[] = 0;
RadioFaultEnum previous[] = 1;
}
critical event NetworkFaultChange = 2 {
NetworkFaultEnum current[] = 0;
NetworkFaultEnum previous[] = 1;
}
critical event BootReason = 3 {
BootReasonEnum bootReason = 0;
}
readonly attribute NetworkInterface networkInterfaces[] = 0;
readonly attribute int16u rebootCount = 1;
readonly attribute optional int64u upTime = 2;
readonly attribute optional int32u totalOperationalHours = 3;
readonly attribute optional BootReasonEnum bootReason = 4;
readonly attribute optional HardwareFaultEnum activeHardwareFaults[] = 5;
readonly attribute optional RadioFaultEnum activeRadioFaults[] = 6;
readonly attribute optional NetworkFaultEnum activeNetworkFaults[] = 7;
readonly attribute boolean testEventTriggersEnabled = 8;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
request struct TestEventTriggerRequest {
octet_string<16> enableKey = 0;
int64u eventTrigger = 1;
}
response struct TimeSnapshotResponse = 2 {
systime_ms systemTimeMs = 0;
nullable posix_ms posixTimeMs = 1;
}
request struct PayloadTestRequestRequest {
octet_string<16> enableKey = 0;
int8u value = 1;
int16u count = 2;
}
response struct PayloadTestResponse = 4 {
octet_string payload = 0;
}
/** Provide a means for certification tests to trigger some test-plan-specific events */
command access(invoke: manage) TestEventTrigger(TestEventTriggerRequest): DefaultSuccess = 0;
/** Take a snapshot of system time and epoch time. */
command TimeSnapshot(): TimeSnapshotResponse = 1;
/** Request a variable length payload response. */
command PayloadTestRequest(PayloadTestRequestRequest): PayloadTestResponse = 3;
}
/** The Thread Network Diagnostics Cluster provides a means to acquire standardized diagnostics metrics that MAY be used by a Node to assist a user or Administrative Node in diagnosing potential problems */
cluster ThreadNetworkDiagnostics = 53 {
revision 2;
enum ConnectionStatusEnum : enum8 {
kConnected = 0;
kNotConnected = 1;
}
enum NetworkFaultEnum : enum8 {
kUnspecified = 0;
kLinkDown = 1;
kHardwareFailure = 2;
kNetworkJammed = 3;
}
enum RoutingRoleEnum : enum8 {
kUnspecified = 0;
kUnassigned = 1;
kSleepyEndDevice = 2;
kEndDevice = 3;
kREED = 4;
kRouter = 5;
kLeader = 6;
}
bitmap Feature : bitmap32 {
kPacketCounts = 0x1;
kErrorCounts = 0x2;
kMLECounts = 0x4;
kMACCounts = 0x8;
}
struct NeighborTableStruct {
int64u extAddress = 0;
int32u age = 1;
int16u rloc16 = 2;
int32u linkFrameCounter = 3;
int32u mleFrameCounter = 4;
int8u lqi = 5;
nullable int8s averageRssi = 6;
nullable int8s lastRssi = 7;
int8u frameErrorRate = 8;
int8u messageErrorRate = 9;
boolean rxOnWhenIdle = 10;
boolean fullThreadDevice = 11;
boolean fullNetworkData = 12;
boolean isChild = 13;
}
struct OperationalDatasetComponents {
boolean activeTimestampPresent = 0;
boolean pendingTimestampPresent = 1;
boolean masterKeyPresent = 2;
boolean networkNamePresent = 3;
boolean extendedPanIdPresent = 4;
boolean meshLocalPrefixPresent = 5;
boolean delayPresent = 6;
boolean panIdPresent = 7;
boolean channelPresent = 8;
boolean pskcPresent = 9;
boolean securityPolicyPresent = 10;
boolean channelMaskPresent = 11;
}
struct RouteTableStruct {
int64u extAddress = 0;
int16u rloc16 = 1;
int8u routerId = 2;
int8u nextHop = 3;
int8u pathCost = 4;
int8u LQIIn = 5;
int8u LQIOut = 6;
int8u age = 7;
boolean allocated = 8;
boolean linkEstablished = 9;
}
struct SecurityPolicy {
int16u rotationTime = 0;
int16u flags = 1;
}
info event ConnectionStatus = 0 {
ConnectionStatusEnum connectionStatus = 0;
}
info event NetworkFaultChange = 1 {
NetworkFaultEnum current[] = 0;
NetworkFaultEnum previous[] = 1;
}
readonly attribute nullable int16u channel = 0;
readonly attribute nullable RoutingRoleEnum routingRole = 1;
readonly attribute nullable char_string<16> networkName = 2;
readonly attribute nullable int16u panId = 3;
readonly attribute nullable int64u extendedPanId = 4;
readonly attribute nullable octet_string<17> meshLocalPrefix = 5;
readonly attribute optional int64u overrunCount = 6;
readonly attribute NeighborTableStruct neighborTable[] = 7;
readonly attribute RouteTableStruct routeTable[] = 8;
readonly attribute nullable int32u partitionId = 9;
readonly attribute nullable int16u weighting = 10;
readonly attribute nullable int16u dataVersion = 11;
readonly attribute nullable int16u stableDataVersion = 12;
readonly attribute nullable int8u leaderRouterId = 13;
readonly attribute optional int16u detachedRoleCount = 14;
readonly attribute optional int16u childRoleCount = 15;
readonly attribute optional int16u routerRoleCount = 16;
readonly attribute optional int16u leaderRoleCount = 17;
readonly attribute optional int16u attachAttemptCount = 18;
readonly attribute optional int16u partitionIdChangeCount = 19;
readonly attribute optional int16u betterPartitionAttachAttemptCount = 20;
readonly attribute optional int16u parentChangeCount = 21;
readonly attribute optional int32u txTotalCount = 22;
readonly attribute optional int32u txUnicastCount = 23;
readonly attribute optional int32u txBroadcastCount = 24;
readonly attribute optional int32u txAckRequestedCount = 25;
readonly attribute optional int32u txAckedCount = 26;
readonly attribute optional int32u txNoAckRequestedCount = 27;
readonly attribute optional int32u txDataCount = 28;
readonly attribute optional int32u txDataPollCount = 29;
readonly attribute optional int32u txBeaconCount = 30;
readonly attribute optional int32u txBeaconRequestCount = 31;
readonly attribute optional int32u txOtherCount = 32;
readonly attribute optional int32u txRetryCount = 33;
readonly attribute optional int32u txDirectMaxRetryExpiryCount = 34;
readonly attribute optional int32u txIndirectMaxRetryExpiryCount = 35;
readonly attribute optional int32u txErrCcaCount = 36;
readonly attribute optional int32u txErrAbortCount = 37;
readonly attribute optional int32u txErrBusyChannelCount = 38;
readonly attribute optional int32u rxTotalCount = 39;
readonly attribute optional int32u rxUnicastCount = 40;
readonly attribute optional int32u rxBroadcastCount = 41;
readonly attribute optional int32u rxDataCount = 42;
readonly attribute optional int32u rxDataPollCount = 43;
readonly attribute optional int32u rxBeaconCount = 44;
readonly attribute optional int32u rxBeaconRequestCount = 45;
readonly attribute optional int32u rxOtherCount = 46;
readonly attribute optional int32u rxAddressFilteredCount = 47;
readonly attribute optional int32u rxDestAddrFilteredCount = 48;
readonly attribute optional int32u rxDuplicatedCount = 49;
readonly attribute optional int32u rxErrNoFrameCount = 50;
readonly attribute optional int32u rxErrUnknownNeighborCount = 51;
readonly attribute optional int32u rxErrInvalidSrcAddrCount = 52;
readonly attribute optional int32u rxErrSecCount = 53;
readonly attribute optional int32u rxErrFcsCount = 54;
readonly attribute optional int32u rxErrOtherCount = 55;
readonly attribute optional nullable int64u activeTimestamp = 56;
readonly attribute optional nullable int64u pendingTimestamp = 57;
readonly attribute optional nullable int32u delay = 58;
readonly attribute nullable SecurityPolicy securityPolicy = 59;
readonly attribute nullable octet_string<4> channelPage0Mask = 60;
readonly attribute nullable OperationalDatasetComponents operationalDatasetComponents = 61;
readonly attribute NetworkFaultEnum activeNetworkFaultsList[] = 62;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
/** Reception of this command SHALL reset the OverrunCount attributes to 0 */
command access(invoke: manage) ResetCounts(): DefaultSuccess = 0;
}
/** Commands to trigger a Node to allow a new Administrator to commission it. */
cluster AdministratorCommissioning = 60 {
revision 1; // NOTE: Default/not specifically set
enum CommissioningWindowStatusEnum : enum8 {
kWindowNotOpen = 0;
kEnhancedWindowOpen = 1;
kBasicWindowOpen = 2;
}
enum StatusCode : enum8 {
kBusy = 2;
kPAKEParameterError = 3;
kWindowNotOpen = 4;
}
bitmap Feature : bitmap32 {
kBasic = 0x1;
}
readonly attribute CommissioningWindowStatusEnum windowStatus = 0;
readonly attribute nullable fabric_idx adminFabricIndex = 1;
readonly attribute nullable vendor_id adminVendorId = 2;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
request struct OpenCommissioningWindowRequest {
int16u commissioningTimeout = 0;
octet_string PAKEPasscodeVerifier = 1;
int16u discriminator = 2;
int32u iterations = 3;
octet_string<32> salt = 4;
}
request struct OpenBasicCommissioningWindowRequest {
int16u commissioningTimeout = 0;
}
/** This command is used by a current Administrator to instruct a Node to go into commissioning mode using enhanced commissioning method. */
timed command access(invoke: administer) OpenCommissioningWindow(OpenCommissioningWindowRequest): DefaultSuccess = 0;
/** This command is used by a current Administrator to instruct a Node to go into commissioning mode using basic commissioning method, if the node supports it. */
timed command access(invoke: administer) OpenBasicCommissioningWindow(OpenBasicCommissioningWindowRequest): DefaultSuccess = 1;
/** This command is used by a current Administrator to instruct a Node to revoke any active Open Commissioning Window or Open Basic Commissioning Window command. */
timed command access(invoke: administer) RevokeCommissioning(): DefaultSuccess = 2;
}
/** This cluster is used to add or remove Operational Credentials on a Commissionee or Node, as well as manage the associated Fabrics. */
cluster OperationalCredentials = 62 {
revision 1; // NOTE: Default/not specifically set
enum CertificateChainTypeEnum : enum8 {
kDACCertificate = 1;
kPAICertificate = 2;
}
enum NodeOperationalCertStatusEnum : enum8 {
kOK = 0;
kInvalidPublicKey = 1;
kInvalidNodeOpId = 2;
kInvalidNOC = 3;
kMissingCsr = 4;
kTableFull = 5;
kInvalidAdminSubject = 6;
kFabricConflict = 9;
kLabelConflict = 10;
kInvalidFabricIndex = 11;
}
fabric_scoped struct FabricDescriptorStruct {
octet_string<65> rootPublicKey = 1;
vendor_id vendorID = 2;
fabric_id fabricID = 3;
node_id nodeID = 4;
char_string<32> label = 5;
fabric_idx fabricIndex = 254;
}
fabric_scoped struct NOCStruct {
fabric_sensitive octet_string noc = 1;
nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
readonly attribute access(read: administer) NOCStruct NOCs[] = 0;
readonly attribute FabricDescriptorStruct fabrics[] = 1;
readonly attribute int8u supportedFabrics = 2;
readonly attribute int8u commissionedFabrics = 3;
readonly attribute octet_string trustedRootCertificates[] = 4;
readonly attribute int8u currentFabricIndex = 5;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
request struct AttestationRequestRequest {
octet_string<32> attestationNonce = 0;
}
response struct AttestationResponse = 1 {
octet_string<900> attestationElements = 0;
octet_string<64> attestationSignature = 1;
}
request struct CertificateChainRequestRequest {
CertificateChainTypeEnum certificateType = 0;
}
response struct CertificateChainResponse = 3 {
octet_string<600> certificate = 0;
}
request struct CSRRequestRequest {
octet_string<32> CSRNonce = 0;
optional boolean isForUpdateNOC = 1;
}
response struct CSRResponse = 5 {
octet_string NOCSRElements = 0;
octet_string attestationSignature = 1;
}
request struct AddNOCRequest {
octet_string<400> NOCValue = 0;
optional octet_string<400> ICACValue = 1;
octet_string<16> IPKValue = 2;
int64u caseAdminSubject = 3;
vendor_id adminVendorId = 4;
}
request struct UpdateNOCRequest {
octet_string NOCValue = 0;
optional octet_string ICACValue = 1;
}
response struct NOCResponse = 8 {
NodeOperationalCertStatusEnum statusCode = 0;
optional fabric_idx fabricIndex = 1;
optional char_string<128> debugText = 2;
}
request struct UpdateFabricLabelRequest {
char_string<32> label = 0;
}
request struct RemoveFabricRequest {
fabric_idx fabricIndex = 0;
}
request struct AddTrustedRootCertificateRequest {
octet_string rootCACertificate = 0;
}
/** Sender is requesting attestation information from the receiver. */
command access(invoke: administer) AttestationRequest(AttestationRequestRequest): AttestationResponse = 0;
/** Sender is requesting a device attestation certificate from the receiver. */
command access(invoke: administer) CertificateChainRequest(CertificateChainRequestRequest): CertificateChainResponse = 2;
/** Sender is requesting a certificate signing request (CSR) from the receiver. */
command access(invoke: administer) CSRRequest(CSRRequestRequest): CSRResponse = 4;
/** Sender is requesting to add the new node operational certificates. */
command access(invoke: administer) AddNOC(AddNOCRequest): NOCResponse = 6;
/** Sender is requesting to update the node operational certificates. */
fabric command access(invoke: administer) UpdateNOC(UpdateNOCRequest): NOCResponse = 7;
/** This command SHALL be used by an Administrative Node to set the user-visible Label field for a given Fabric, as reflected by entries in the Fabrics attribute. */
fabric command access(invoke: administer) UpdateFabricLabel(UpdateFabricLabelRequest): NOCResponse = 9;
/** This command is used by Administrative Nodes to remove a given fabric index and delete all associated fabric-scoped data. */
command access(invoke: administer) RemoveFabric(RemoveFabricRequest): NOCResponse = 10;
/** This command SHALL add a Trusted Root CA Certificate, provided as its CHIP Certificate representation. */
command access(invoke: administer) AddTrustedRootCertificate(AddTrustedRootCertificateRequest): DefaultSuccess = 11;
}
/** The Group Key Management Cluster is the mechanism by which group keys are managed. */
cluster GroupKeyManagement = 63 {
revision 1; // NOTE: Default/not specifically set
enum GroupKeySecurityPolicyEnum : enum8 {
kTrustFirst = 0;
kCacheAndSync = 1;
}
bitmap Feature : bitmap32 {
kCacheAndSync = 0x1;
}
fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
fabric_idx fabricIndex = 254;
}
fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
struct GroupKeySetStruct {
int16u groupKeySetID = 0;
GroupKeySecurityPolicyEnum groupKeySecurityPolicy = 1;
nullable octet_string<16> epochKey0 = 2;
nullable epoch_us epochStartTime0 = 3;
nullable octet_string<16> epochKey1 = 4;
nullable epoch_us epochStartTime1 = 5;
nullable octet_string<16> epochKey2 = 6;
nullable epoch_us epochStartTime2 = 7;
}
attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0;
readonly attribute GroupInfoMapStruct groupTable[] = 1;
readonly attribute int16u maxGroupsPerFabric = 2;
readonly attribute int16u maxGroupKeysPerFabric = 3;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
request struct KeySetWriteRequest {
GroupKeySetStruct groupKeySet = 0;
}
request struct KeySetReadRequest {
int16u groupKeySetID = 0;
}
response struct KeySetReadResponse = 2 {
GroupKeySetStruct groupKeySet = 0;
}
request struct KeySetRemoveRequest {
int16u groupKeySetID = 0;
}
response struct KeySetReadAllIndicesResponse = 5 {
int16u groupKeySetIDs[] = 0;
}
/** Write a new set of keys for the given key set id. */
fabric command access(invoke: administer) KeySetWrite(KeySetWriteRequest): DefaultSuccess = 0;
/** Read the keys for a given key set id. */
fabric command access(invoke: administer) KeySetRead(KeySetReadRequest): KeySetReadResponse = 1;
/** Revoke a Root Key from a Group */
fabric command access(invoke: administer) KeySetRemove(KeySetRemoveRequest): DefaultSuccess = 3;
/** Return the list of Group Key Sets associated with the accessing fabric */
fabric command access(invoke: administer) KeySetReadAllIndices(): KeySetReadAllIndicesResponse = 4;
}
/** The Fixed Label Cluster provides a feature for the device to tag an endpoint with zero or more read only
labels. */
cluster FixedLabel = 64 {
revision 1; // NOTE: Default/not specifically set
struct LabelStruct {
char_string<16> label = 0;
char_string<16> value = 1;
}
readonly attribute LabelStruct labelList[] = 0;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
}
/** The User Label Cluster provides a feature to tag an endpoint with zero or more labels. */
cluster UserLabel = 65 {
revision 1; // NOTE: Default/not specifically set
struct LabelStruct {
char_string<16> label = 0;
char_string<16> value = 1;
}
attribute access(write: manage) LabelStruct labelList[] = 0;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
}
/** Manage the Thread network of Thread Border Router */
provisional cluster ThreadBorderRouterManagement = 1106 {
revision 1;
bitmap Feature : bitmap32 {
kPANChange = 0x1;
}
provisional readonly attribute char_string<63> borderRouterName = 0;
provisional readonly attribute octet_string<254> borderAgentID = 1;
provisional readonly attribute int16u threadVersion = 2;
provisional readonly attribute boolean interfaceEnabled = 3;
provisional readonly attribute nullable int64u activeDatasetTimestamp = 4;
provisional readonly attribute nullable int64u pendingDatasetTimestamp = 5;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
readonly attribute event_id eventList[] = 65530;
readonly attribute attrib_id attributeList[] = 65531;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
response struct DatasetResponse = 2 {
octet_string<254> dataset = 0;
}
request struct SetActiveDatasetRequestRequest {
octet_string<254> activeDataset = 0;
optional int64u breadcrumb = 1;
}
request struct SetPendingDatasetRequestRequest {
octet_string<254> pendingDataset = 0;
}
/** Command to request the active operational dataset of the Thread network to which the border router is connected. This command must be sent over a valid CASE session */
command access(invoke: manage) GetActiveDatasetRequest(): DatasetResponse = 0;
/** Command to request the pending dataset of the Thread network to which the border router is connected. This command must be sent over a valid CASE session */
command access(invoke: manage) GetPendingDatasetRequest(): DatasetResponse = 1;
/** Command to set or update the active Dataset of the Thread network to which the Border Router is connected. */
command access(invoke: manage) SetActiveDatasetRequest(SetActiveDatasetRequestRequest): DefaultSuccess = 3;
/** Command set or update the pending Dataset of the Thread network to which the Border Router is connected. */
command access(invoke: manage) SetPendingDatasetRequest(SetPendingDatasetRequestRequest): DefaultSuccess = 4;
}
endpoint 0 {
device type ma_rootdevice = 22, version 1;
server cluster Descriptor {
callback attribute deviceTypeList;
callback attribute serverList;
callback attribute clientList;
callback attribute partsList;
callback attribute generatedCommandList;
callback attribute acceptedCommandList;
callback attribute attributeList;
callback attribute featureMap;
callback attribute clusterRevision;
}
server cluster AccessControl {
emits event AccessControlEntryChanged;
emits event AccessControlExtensionChanged;
callback attribute acl;
callback attribute extension;
callback attribute subjectsPerAccessControlEntry;
callback attribute targetsPerAccessControlEntry;
callback attribute accessControlEntriesPerFabric;
callback attribute attributeList;
ram attribute featureMap default = 0;
callback attribute clusterRevision;
}
server cluster BasicInformation {
emits event StartUp;
emits event ShutDown;
emits event Leave;
callback attribute dataModelRevision;
callback attribute vendorName;
callback attribute vendorID;
callback attribute productName;
callback attribute productID;
persist attribute nodeLabel;
callback attribute location;
callback attribute hardwareVersion;
callback attribute hardwareVersionString;
callback attribute softwareVersion;
callback attribute softwareVersionString;
callback attribute manufacturingDate;
callback attribute partNumber;
callback attribute productURL;
callback attribute productLabel;
callback attribute serialNumber;
persist attribute localConfigDisabled default = 0;
callback attribute uniqueID;
callback attribute capabilityMinima;
callback attribute specificationVersion;
callback attribute maxPathsPerInvoke;
ram attribute featureMap default = 0;
ram attribute clusterRevision default = 3;
}
server cluster GeneralCommissioning {
ram attribute breadcrumb default = 0x0000000000000000;
callback attribute basicCommissioningInfo;
callback attribute regulatoryConfig;
callback attribute locationCapability;
callback attribute supportsConcurrentConnection;
ram attribute featureMap default = 0;
ram attribute clusterRevision default = 1;
handle command ArmFailSafe;
handle command ArmFailSafeResponse;
handle command SetRegulatoryConfig;
handle command SetRegulatoryConfigResponse;
handle command CommissioningComplete;
handle command CommissioningCompleteResponse;
}
server cluster NetworkCommissioning {
ram attribute maxNetworks;
callback attribute networks;
ram attribute scanMaxTimeSeconds;
ram attribute connectMaxTimeSeconds;
ram attribute interfaceEnabled;
ram attribute lastNetworkingStatus;
ram attribute lastNetworkID;
ram attribute lastConnectErrorValue;
ram attribute featureMap default = 2;
ram attribute clusterRevision default = 1;
handle command ScanNetworks;
handle command ScanNetworksResponse;
handle command AddOrUpdateWiFiNetwork;
handle command AddOrUpdateThreadNetwork;
handle command RemoveNetwork;
handle command NetworkConfigResponse;
handle command ConnectNetwork;
handle command ConnectNetworkResponse;
handle command ReorderNetwork;
}
server cluster GeneralDiagnostics {
emits event BootReason;
callback attribute networkInterfaces;
callback attribute rebootCount;
callback attribute upTime;
callback attribute totalOperationalHours;
callback attribute bootReason;
callback attribute activeHardwareFaults;
callback attribute activeRadioFaults;
callback attribute activeNetworkFaults;
callback attribute testEventTriggersEnabled default = false;
callback attribute featureMap;
callback attribute clusterRevision;
handle command TestEventTrigger;
handle command TimeSnapshot;
handle command TimeSnapshotResponse;
}
server cluster AdministratorCommissioning {
callback attribute windowStatus;
callback attribute adminFabricIndex;
callback attribute adminVendorId;
ram attribute featureMap default = 0;
ram attribute clusterRevision default = 1;
handle command OpenCommissioningWindow;
handle command OpenBasicCommissioningWindow;
handle command RevokeCommissioning;
}
server cluster OperationalCredentials {
callback attribute NOCs;
callback attribute fabrics;
callback attribute supportedFabrics;
callback attribute commissionedFabrics;
callback attribute trustedRootCertificates;
callback attribute currentFabricIndex;
ram attribute featureMap default = 0;
ram attribute clusterRevision default = 1;
handle command AttestationRequest;
handle command AttestationResponse;
handle command CertificateChainRequest;
handle command CertificateChainResponse;
handle command CSRRequest;
handle command CSRResponse;
handle command AddNOC;
handle command UpdateNOC;
handle command NOCResponse;
handle command UpdateFabricLabel;
handle command RemoveFabric;
handle command AddTrustedRootCertificate;
}
server cluster GroupKeyManagement {
callback attribute groupKeyMap;
callback attribute groupTable;
callback attribute maxGroupsPerFabric;
callback attribute maxGroupKeysPerFabric;
callback attribute featureMap;
callback attribute clusterRevision;
handle command KeySetWrite;
handle command KeySetRead;
handle command KeySetReadResponse;
handle command KeySetRemove;
handle command KeySetReadAllIndices;
handle command KeySetReadAllIndicesResponse;
}
server cluster FixedLabel {
callback attribute labelList;
ram attribute featureMap default = 0;
ram attribute clusterRevision default = 1;
}
server cluster UserLabel {
callback attribute labelList;
ram attribute featureMap default = 0;
ram attribute clusterRevision default = 1;
}
}
endpoint 1 {
device type ma_thread_border_router = 145, version 1;
server cluster Descriptor {
callback attribute deviceTypeList;
callback attribute serverList;
callback attribute clientList;
callback attribute partsList;
callback attribute generatedCommandList;
callback attribute acceptedCommandList;
callback attribute attributeList;
callback attribute featureMap;
callback attribute clusterRevision;
}
server cluster ThreadNetworkDiagnostics {
callback attribute channel;
callback attribute routingRole;
callback attribute networkName;
callback attribute panId;
callback attribute extendedPanId;
callback attribute meshLocalPrefix;
callback attribute neighborTable;
callback attribute routeTable;
callback attribute partitionId;
callback attribute weighting;
callback attribute dataVersion;
callback attribute stableDataVersion;
callback attribute leaderRouterId;
callback attribute securityPolicy;
callback attribute channelPage0Mask;
callback attribute operationalDatasetComponents;
callback attribute activeNetworkFaultsList;
callback attribute generatedCommandList;
callback attribute acceptedCommandList;
callback attribute attributeList;
ram attribute featureMap default = 0;
ram attribute clusterRevision default = 2;
}
server cluster ThreadBorderRouterManagement {
callback attribute borderRouterName;
callback attribute borderAgentID;
callback attribute threadVersion;
callback attribute interfaceEnabled;
callback attribute activeDatasetTimestamp;
callback attribute pendingDatasetTimestamp;
callback attribute generatedCommandList;
callback attribute acceptedCommandList;
callback attribute attributeList;
callback attribute featureMap;
ram attribute clusterRevision default = 1;
handle command GetActiveDatasetRequest;
handle command GetPendingDatasetRequest;
handle command DatasetResponse;
handle command SetActiveDatasetRequest;
handle command SetPendingDatasetRequest;
}
}