|  | // 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; | 
|  | kGuestRoom = 41; | 
|  | kGym = 42; | 
|  | kHallway = 43; | 
|  | kHearthRoom = 44; | 
|  | kKidsRoom = 45; | 
|  | kKidsBedroom = 46; | 
|  | kKitchen = 47; | 
|  | kLaundryRoom = 49; | 
|  | kLawn = 50; | 
|  | kLibrary = 51; | 
|  | kLivingRoom = 52; | 
|  | kLounge = 53; | 
|  | kMediaTVRoom = 54 [spec_name = "Media/TV Room"]; | 
|  | 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; | 
|  | 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; | 
|  | kToilet = 95; | 
|  | } | 
|  |  | 
|  | enum AtomicRequestTypeEnum : enum8 { | 
|  | kBeginWrite = 0; | 
|  | kCommitWrite = 1; | 
|  | kRollbackWrite = 2; | 
|  | } | 
|  |  | 
|  | 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 LocationTag : enum8 { | 
|  | kIndoor = 0; | 
|  | kOutdoor = 1; | 
|  | kInside = 2; | 
|  | kOutside = 3; | 
|  | } | 
|  |  | 
|  | enum MeasurementTypeEnum : enum16 { | 
|  | kUnspecified = 0; | 
|  | kVoltage = 1; | 
|  | kActiveCurrent = 2; | 
|  | kReactiveCurrent = 3; | 
|  | kApparentCurrent = 4; | 
|  | kActivePower = 5; | 
|  | kReactivePower = 6; | 
|  | kApparentPower = 7; | 
|  | kRMSVoltage = 8; | 
|  | kRMSCurrent = 9; | 
|  | kRMSPower = 10; | 
|  | kFrequency = 11; | 
|  | kPowerFactor = 12; | 
|  | kNeutralCurrent = 13; | 
|  | kElectricalEnergy = 14; | 
|  | kReactiveEnergy = 15; | 
|  | kApparentEnergy = 16; | 
|  | kSoilMoisture = 17; | 
|  | } | 
|  |  | 
|  | enum PositionTag : enum8 { | 
|  | kLeft = 0; | 
|  | kRight = 1; | 
|  | kTop = 2; | 
|  | kBottom = 3; | 
|  | kMiddle = 4; | 
|  | kRow = 5; | 
|  | kColumn = 6; | 
|  | } | 
|  |  | 
|  | enum PowerThresholdSourceEnum : enum8 { | 
|  | kContract = 0; | 
|  | kRegulator = 1; | 
|  | kEquipment = 2; | 
|  | } | 
|  |  | 
|  | enum RelativePositionTag : enum8 { | 
|  | kUnder = 0; | 
|  | kNextTo = 1; | 
|  | kAround = 2; | 
|  | kOn = 3; | 
|  | kAbove = 4; | 
|  | kFrontOf = 5; | 
|  | kBehind = 6; | 
|  | } | 
|  |  | 
|  | enum StreamUsageEnum : enum8 { | 
|  | kInternal = 0; | 
|  | kRecording = 1; | 
|  | kAnalysis = 2; | 
|  | kLiveView = 3; | 
|  | } | 
|  |  | 
|  | enum TariffPriceTypeEnum : enum8 { | 
|  | kStandard = 0; | 
|  | kCritical = 1; | 
|  | kVirtual = 2; | 
|  | kIncentive = 3; | 
|  | kIncentiveSignal = 4; | 
|  | } | 
|  |  | 
|  | enum TariffUnitEnum : enum8 { | 
|  | kKWh = 0; | 
|  | kKVAh = 1; | 
|  | } | 
|  |  | 
|  | enum TestGlobalEnum : enum8 { | 
|  | kSomeValue = 0; | 
|  | kSomeOtherValue = 1; | 
|  | kFinalValue = 2; | 
|  | } | 
|  |  | 
|  | enum ThreeLevelAutoEnum : enum8 { | 
|  | kAuto = 0; | 
|  | kLow = 1; | 
|  | kMedium = 2; | 
|  | kHigh = 3; | 
|  | } | 
|  |  | 
|  | enum WebRTCEndReasonEnum : enum8 { | 
|  | kICEFailed = 0; | 
|  | kICETimeout = 1; | 
|  | kUserHangup = 2; | 
|  | kUserBusy = 3; | 
|  | kReplaced = 4; | 
|  | kNoUserMedia = 5; | 
|  | kInviteTimeout = 6; | 
|  | kAnsweredElsewhere = 7; | 
|  | kOutOfResources = 8; | 
|  | kMediaTimeout = 9; | 
|  | kLowPower = 10; | 
|  | kPrivacyMode = 11; | 
|  | kUnknownReason = 12; | 
|  | } | 
|  |  | 
|  | bitmap TestGlobalBitmap : bitmap32 { | 
|  | kFirstBit = 0x1; | 
|  | kSecondBit = 0x2; | 
|  | } | 
|  |  | 
|  | struct CurrencyStruct { | 
|  | int16u currency = 0; | 
|  | int8u decimalPoints = 1; | 
|  | } | 
|  |  | 
|  | struct PriceStruct { | 
|  | money amount = 0; | 
|  | CurrencyStruct currency = 1; | 
|  | } | 
|  |  | 
|  | struct MeasurementAccuracyRangeStruct { | 
|  | int64s rangeMin = 0; | 
|  | int64s rangeMax = 1; | 
|  | optional percent100ths percentMax = 2; | 
|  | optional percent100ths percentMin = 3; | 
|  | optional percent100ths percentTypical = 4; | 
|  | optional int64u fixedMax = 5; | 
|  | optional int64u fixedMin = 6; | 
|  | optional int64u fixedTypical = 7; | 
|  | } | 
|  |  | 
|  | struct MeasurementAccuracyStruct { | 
|  | MeasurementTypeEnum measurementType = 0; | 
|  | boolean measured = 1; | 
|  | int64s minMeasuredValue = 2; | 
|  | int64s maxMeasuredValue = 3; | 
|  | MeasurementAccuracyRangeStruct accuracyRanges[] = 4; | 
|  | } | 
|  |  | 
|  | struct AtomicAttributeStatusStruct { | 
|  | attrib_id attributeID = 0; | 
|  | status statusCode = 1; | 
|  | } | 
|  |  | 
|  | struct ICECandidateStruct { | 
|  | char_string candidate = 0; | 
|  | nullable char_string SDPMid = 1; | 
|  | nullable int16u SDPMLineIndex = 2; | 
|  | } | 
|  |  | 
|  | struct ICEServerStruct { | 
|  | char_string URLs[] = 0; | 
|  | optional long_char_string<508> username = 1; | 
|  | optional long_char_string<512> credential = 2; | 
|  | optional int16u caid = 3; | 
|  | } | 
|  |  | 
|  | struct LocationDescriptorStruct { | 
|  | char_string<128> locationName = 0; | 
|  | nullable int16s floorNumber = 1; | 
|  | nullable AreaTypeTag areaType = 2; | 
|  | } | 
|  |  | 
|  | struct PowerThresholdStruct { | 
|  | optional power_mw powerThreshold = 0; | 
|  | optional power_mva apparentPowerThreshold = 1; | 
|  | nullable PowerThresholdSourceEnum powerThresholdSource = 2; | 
|  | } | 
|  |  | 
|  | struct TestGlobalStruct { | 
|  | char_string<128> name = 0; | 
|  | nullable TestGlobalBitmap myBitmap = 1; | 
|  | optional nullable TestGlobalEnum myEnum = 2; | 
|  | } | 
|  |  | 
|  | struct ViewportStruct { | 
|  | int16u x1 = 0; | 
|  | int16u y1 = 1; | 
|  | int16u x2 = 2; | 
|  | int16u y2 = 3; | 
|  | } | 
|  |  | 
|  | fabric_scoped struct WebRTCSessionStruct { | 
|  | int16u id = 0; | 
|  | node_id peerNodeID = 1; | 
|  | endpoint_no peerEndpointID = 2; | 
|  | StreamUsageEnum streamUsage = 3; | 
|  | nullable int16u videoStreamID = 4; | 
|  | nullable int16u audioStreamID = 5; | 
|  | boolean metadataEnabled = 6; | 
|  | fabric_idx fabricIndex = 254; | 
|  | } | 
|  |  | 
|  | /** 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 [spec_name = "PASE"]; | 
|  | kCASE = 2 [spec_name = "CASE"]; | 
|  | 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 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 is used to manage global aspects of the Commissioning flow. */ | 
|  | cluster GeneralCommissioning = 48 { | 
|  | revision 2; | 
|  |  | 
|  | enum CommissioningErrorEnum : enum8 { | 
|  | kOK = 0 [spec_name = "OK"]; | 
|  | kValueOutsideRange = 1; | 
|  | kInvalidAuthentication = 2; | 
|  | kNoFailSafe = 3; | 
|  | kBusyWithOtherAdmin = 4; | 
|  | kRequiredTCNotAccepted = 5; | 
|  | kTCAcknowledgementsNotReceived = 6; | 
|  | kTCMinVersionNotMet = 7; | 
|  | } | 
|  |  | 
|  | enum NetworkRecoveryReasonEnum : enum8 { | 
|  | kUnspecified = 0; | 
|  | kAuth = 1; | 
|  | kVisibility = 2; | 
|  | } | 
|  |  | 
|  | enum RegulatoryLocationTypeEnum : enum8 { | 
|  | kIndoor = 0; | 
|  | kOutdoor = 1; | 
|  | kIndoorOutdoor = 2; | 
|  | } | 
|  |  | 
|  | bitmap Feature : bitmap32 { | 
|  | kTermsAndConditions = 0x1; | 
|  | kNetworkRecovery = 0x2; | 
|  | } | 
|  |  | 
|  | 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 nullable int32u TCUpdateDeadline = 9; | 
|  | provisional readonly attribute access(read: manage) optional octet_string<8> recoveryIdentifier = 10; | 
|  | provisional readonly attribute access(read: manage) optional nullable NetworkRecoveryReasonEnum networkRecoveryReason = 11; | 
|  | provisional readonly attribute optional boolean isCommissioningWithoutPower = 12; | 
|  | readonly attribute command_id generatedCommandList[] = 65528; | 
|  | readonly attribute command_id acceptedCommandList[] = 65529; | 
|  | 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; | 
|  | } | 
|  |  | 
|  | /** This command is used to arm or disarm the fail-safe timer. */ | 
|  | command access(invoke: administer) ArmFailSafe(ArmFailSafeRequest): ArmFailSafeResponse = 0; | 
|  | /** This command is used to set the regulatory configuration for the device. */ | 
|  | command access(invoke: administer) SetRegulatoryConfig(SetRegulatoryConfigRequest): SetRegulatoryConfigResponse = 2; | 
|  | /** This command is used to indicate that the commissioning process is complete. */ | 
|  | fabric command access(invoke: administer) CommissioningComplete(): CommissioningCompleteResponse = 4; | 
|  | /** This command is used to set the user acknowledgements received in the Enhanced Setup Flow Terms & 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 2; | 
|  |  | 
|  | 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 [spec_name = "2G4"]; | 
|  | k3G65 = 1 [spec_name = "3G65"]; | 
|  | k5G = 2 [spec_name = "5G"]; | 
|  | k6G = 3 [spec_name = "6G"]; | 
|  | k60G = 4 [spec_name = "60G"]; | 
|  | k1G = 5 [spec_name = "1G"]; | 
|  | } | 
|  |  | 
|  | 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 [spec_name = "WEP"]; | 
|  | kWPAPersonal = 0x4 [spec_name = "WPA-PERSONAL"]; | 
|  | kWPA2Personal = 0x8 [spec_name = "WPA2-PERSONAL"]; | 
|  | kWPA3Personal = 0x10 [spec_name = "WPA3-PERSONAL"]; | 
|  | kWPA3MatterPDC = 0x20 [spec_name = "WPA3-Matter-PDC"]; | 
|  | } | 
|  |  | 
|  | 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 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 cluster provides commands for retrieving unstructured diagnostic logs from a Node that may be used to aid in diagnostics. */ | 
|  | cluster DiagnosticLogs = 50 { | 
|  | revision 1; | 
|  |  | 
|  | enum IntentEnum : enum8 { | 
|  | kEndUserSupport = 0; | 
|  | kNetworkDiag = 1; | 
|  | kCrashLogs = 2; | 
|  | } | 
|  |  | 
|  | enum StatusEnum : enum8 { | 
|  | kSuccess = 0; | 
|  | kExhausted = 1; | 
|  | kNoLogs = 2; | 
|  | kBusy = 3; | 
|  | kDenied = 4; | 
|  | } | 
|  |  | 
|  | enum TransferProtocolEnum : enum8 { | 
|  | kResponsePayload = 0; | 
|  | kBDX = 1 [spec_name = "BDX"]; | 
|  | } | 
|  |  | 
|  | readonly attribute command_id generatedCommandList[] = 65528; | 
|  | readonly attribute command_id acceptedCommandList[] = 65529; | 
|  | readonly attribute attrib_id attributeList[] = 65531; | 
|  | readonly attribute bitmap32 featureMap = 65532; | 
|  | readonly attribute int16u clusterRevision = 65533; | 
|  |  | 
|  | request struct RetrieveLogsRequestRequest { | 
|  | IntentEnum intent = 0; | 
|  | TransferProtocolEnum requestedProtocol = 1; | 
|  | optional char_string<32> transferFileDesignator = 2; | 
|  | } | 
|  |  | 
|  | response struct RetrieveLogsResponse = 1 { | 
|  | StatusEnum status = 0; | 
|  | long_octet_string<1024> logContent = 1; | 
|  | optional epoch_us UTCTimeStamp = 2; | 
|  | optional systime_us timeSinceBoot = 3; | 
|  | } | 
|  |  | 
|  | /** Reception of this command starts the process of retrieving diagnostic logs from a Node. */ | 
|  | command RetrieveLogsRequest(RetrieveLogsRequestRequest): RetrieveLogsResponse = 0; | 
|  | } | 
|  |  | 
|  | /** 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 2; | 
|  |  | 
|  | enum CertificateChainTypeEnum : enum8 { | 
|  | kDACCertificate = 1; | 
|  | kPAICertificate = 2; | 
|  | } | 
|  |  | 
|  | enum NodeOperationalCertStatusEnum : enum8 { | 
|  | kOK = 0 [spec_name = "OK"]; | 
|  | 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; | 
|  | optional octet_string<85> VIDVerificationStatement = 6; | 
|  | fabric_idx fabricIndex = 254; | 
|  | } | 
|  |  | 
|  | fabric_scoped struct NOCStruct { | 
|  | octet_string<400> noc = 1; | 
|  | nullable octet_string<400> icac = 2; | 
|  | optional octet_string<400> vvsc = 3; | 
|  | 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 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 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<64> 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<400> NOCValue = 0; | 
|  | optional octet_string<400> 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<400> rootCACertificate = 0; | 
|  | } | 
|  |  | 
|  | request struct SetVIDVerificationStatementRequest { | 
|  | optional vendor_id vendorID = 0; | 
|  | optional octet_string<85> VIDVerificationStatement = 1; | 
|  | optional octet_string<400> vvsc = 2; | 
|  | } | 
|  |  | 
|  | request struct SignVIDVerificationRequestRequest { | 
|  | fabric_idx fabricIndex = 0; | 
|  | octet_string<32> clientChallenge = 1; | 
|  | } | 
|  |  | 
|  | response struct SignVIDVerificationResponse = 14 { | 
|  | fabric_idx fabricIndex = 0; | 
|  | int8u fabricBindingVersion = 1; | 
|  | octet_string signature = 2; | 
|  | } | 
|  |  | 
|  | /** 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; | 
|  | /** This command SHALL replace the NOC and optional associated ICAC (if present) scoped under the accessing fabric upon successful validation of all arguments and preconditions. */ | 
|  | 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; | 
|  | /** This command SHALL be used to update any of the accessing fabric's associated VendorID, VidVerificatioNStatement or VVSC (Vendor Verification Signing Certificate). */ | 
|  | fabric command access(invoke: administer) SetVIDVerificationStatement(SetVIDVerificationStatementRequest): DefaultSuccess = 12; | 
|  | /** This command SHALL be used to request that the server authenticate the fabric associated with the FabricIndex given. */ | 
|  | command access(invoke: administer) SignVIDVerificationRequest(SignVIDVerificationRequestRequest): SignVIDVerificationResponse = 13; | 
|  | } | 
|  |  | 
|  | endpoint 0 { | 
|  | device type ma_all_clusters_app = 4293984259, version 1; | 
|  |  | 
|  |  | 
|  | server cluster AccessControl { | 
|  | emits event AccessControlEntryChanged; | 
|  | emits event AccessControlExtensionChanged; | 
|  | callback attribute acl; | 
|  | callback attribute subjectsPerAccessControlEntry; | 
|  | callback attribute targetsPerAccessControlEntry; | 
|  | callback attribute accessControlEntriesPerFabric; | 
|  | callback attribute attributeList; | 
|  | callback attribute featureMap; | 
|  | callback attribute clusterRevision; | 
|  | } | 
|  |  | 
|  | server cluster GeneralCommissioning { | 
|  | ram      attribute breadcrumb default = 0x0000000000000000; | 
|  | callback attribute basicCommissioningInfo; | 
|  | callback attribute supportsConcurrentConnection; | 
|  | ram      attribute featureMap default = 0; | 
|  | callback 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 { | 
|  | callback attribute featureMap; | 
|  | callback attribute clusterRevision; | 
|  |  | 
|  | 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 DiagnosticLogs { | 
|  | callback attribute featureMap; | 
|  | callback attribute clusterRevision; | 
|  |  | 
|  | handle command RetrieveLogsRequest; | 
|  | handle command RetrieveLogsResponse; | 
|  | } | 
|  |  | 
|  | server cluster OperationalCredentials { | 
|  | callback attribute fabrics; | 
|  | callback attribute supportedFabrics; | 
|  | callback attribute commissionedFabrics; | 
|  | callback attribute trustedRootCertificates; | 
|  | 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 NOCResponse; | 
|  | handle command UpdateFabricLabel; | 
|  | handle command RemoveFabric; | 
|  | handle command AddTrustedRootCertificate; | 
|  | handle command SetVIDVerificationStatement; | 
|  | handle command SignVIDVerificationRequest; | 
|  | handle command SignVIDVerificationResponse; | 
|  | } | 
|  | } | 
|  |  | 
|  |  |