/*
 *
 *    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

#pragma once

#include <app/util/basic-types.h>

namespace chip {
namespace app {
namespace Clusters {

namespace Identify {
static constexpr ClusterId Id = 0x00000003;
} // namespace Identify
namespace Groups {
static constexpr ClusterId Id = 0x00000004;
} // namespace Groups
namespace Scenes {
static constexpr ClusterId Id = 0x00000005;
} // namespace Scenes
namespace OnOff {
static constexpr ClusterId Id = 0x00000006;
} // namespace OnOff
namespace OnOffSwitchConfiguration {
static constexpr ClusterId Id = 0x00000007;
} // namespace OnOffSwitchConfiguration
namespace LevelControl {
static constexpr ClusterId Id = 0x00000008;
} // namespace LevelControl
namespace BinaryInputBasic {
static constexpr ClusterId Id = 0x0000000F;
} // namespace BinaryInputBasic
namespace PulseWidthModulation {
static constexpr ClusterId Id = 0x0000001C;
} // namespace PulseWidthModulation
namespace Descriptor {
static constexpr ClusterId Id = 0x0000001D;
} // namespace Descriptor
namespace Binding {
static constexpr ClusterId Id = 0x0000001E;
} // namespace Binding
namespace AccessControl {
static constexpr ClusterId Id = 0x0000001F;
} // namespace AccessControl
namespace Actions {
static constexpr ClusterId Id = 0x00000025;
} // namespace Actions
namespace BasicInformation {
static constexpr ClusterId Id = 0x00000028;
} // namespace BasicInformation
namespace OtaSoftwareUpdateProvider {
static constexpr ClusterId Id = 0x00000029;
} // namespace OtaSoftwareUpdateProvider
namespace OtaSoftwareUpdateRequestor {
static constexpr ClusterId Id = 0x0000002A;
} // namespace OtaSoftwareUpdateRequestor
namespace LocalizationConfiguration {
static constexpr ClusterId Id = 0x0000002B;
} // namespace LocalizationConfiguration
namespace TimeFormatLocalization {
static constexpr ClusterId Id = 0x0000002C;
} // namespace TimeFormatLocalization
namespace UnitLocalization {
static constexpr ClusterId Id = 0x0000002D;
} // namespace UnitLocalization
namespace PowerSourceConfiguration {
static constexpr ClusterId Id = 0x0000002E;
} // namespace PowerSourceConfiguration
namespace PowerSource {
static constexpr ClusterId Id = 0x0000002F;
} // namespace PowerSource
namespace GeneralCommissioning {
static constexpr ClusterId Id = 0x00000030;
} // namespace GeneralCommissioning
namespace NetworkCommissioning {
static constexpr ClusterId Id = 0x00000031;
} // namespace NetworkCommissioning
namespace DiagnosticLogs {
static constexpr ClusterId Id = 0x00000032;
} // namespace DiagnosticLogs
namespace GeneralDiagnostics {
static constexpr ClusterId Id = 0x00000033;
} // namespace GeneralDiagnostics
namespace SoftwareDiagnostics {
static constexpr ClusterId Id = 0x00000034;
} // namespace SoftwareDiagnostics
namespace ThreadNetworkDiagnostics {
static constexpr ClusterId Id = 0x00000035;
} // namespace ThreadNetworkDiagnostics
namespace WiFiNetworkDiagnostics {
static constexpr ClusterId Id = 0x00000036;
} // namespace WiFiNetworkDiagnostics
namespace EthernetNetworkDiagnostics {
static constexpr ClusterId Id = 0x00000037;
} // namespace EthernetNetworkDiagnostics
namespace TimeSynchronization {
static constexpr ClusterId Id = 0x00000038;
} // namespace TimeSynchronization
namespace BridgedDeviceBasicInformation {
static constexpr ClusterId Id = 0x00000039;
} // namespace BridgedDeviceBasicInformation
namespace Switch {
static constexpr ClusterId Id = 0x0000003B;
} // namespace Switch
namespace AdministratorCommissioning {
static constexpr ClusterId Id = 0x0000003C;
} // namespace AdministratorCommissioning
namespace OperationalCredentials {
static constexpr ClusterId Id = 0x0000003E;
} // namespace OperationalCredentials
namespace GroupKeyManagement {
static constexpr ClusterId Id = 0x0000003F;
} // namespace GroupKeyManagement
namespace FixedLabel {
static constexpr ClusterId Id = 0x00000040;
} // namespace FixedLabel
namespace UserLabel {
static constexpr ClusterId Id = 0x00000041;
} // namespace UserLabel
namespace ProxyConfiguration {
static constexpr ClusterId Id = 0x00000042;
} // namespace ProxyConfiguration
namespace ProxyDiscovery {
static constexpr ClusterId Id = 0x00000043;
} // namespace ProxyDiscovery
namespace ProxyValid {
static constexpr ClusterId Id = 0x00000044;
} // namespace ProxyValid
namespace BooleanState {
static constexpr ClusterId Id = 0x00000045;
} // namespace BooleanState
namespace IcdManagement {
static constexpr ClusterId Id = 0x00000046;
} // namespace IcdManagement
namespace ModeSelect {
static constexpr ClusterId Id = 0x00000050;
} // namespace ModeSelect
namespace TemperatureControl {
static constexpr ClusterId Id = 0x00000056;
} // namespace TemperatureControl
namespace RefrigeratorAlarm {
static constexpr ClusterId Id = 0x00000057;
} // namespace RefrigeratorAlarm
namespace AirQuality {
static constexpr ClusterId Id = 0x0000005B;
} // namespace AirQuality
namespace SmokeCoAlarm {
static constexpr ClusterId Id = 0x0000005C;
} // namespace SmokeCoAlarm
namespace HepaFilterMonitoring {
static constexpr ClusterId Id = 0x00000071;
} // namespace HepaFilterMonitoring
namespace ActivatedCarbonFilterMonitoring {
static constexpr ClusterId Id = 0x00000072;
} // namespace ActivatedCarbonFilterMonitoring
namespace CeramicFilterMonitoring {
static constexpr ClusterId Id = 0x00000073;
} // namespace CeramicFilterMonitoring
namespace ElectrostaticFilterMonitoring {
static constexpr ClusterId Id = 0x00000074;
} // namespace ElectrostaticFilterMonitoring
namespace UvFilterMonitoring {
static constexpr ClusterId Id = 0x00000075;
} // namespace UvFilterMonitoring
namespace IonizingFilterMonitoring {
static constexpr ClusterId Id = 0x00000076;
} // namespace IonizingFilterMonitoring
namespace ZeoliteFilterMonitoring {
static constexpr ClusterId Id = 0x00000077;
} // namespace ZeoliteFilterMonitoring
namespace OzoneFilterMonitoring {
static constexpr ClusterId Id = 0x00000078;
} // namespace OzoneFilterMonitoring
namespace WaterTankMonitoring {
static constexpr ClusterId Id = 0x00000079;
} // namespace WaterTankMonitoring
namespace FuelTankMonitoring {
static constexpr ClusterId Id = 0x0000007A;
} // namespace FuelTankMonitoring
namespace InkCartridgeMonitoring {
static constexpr ClusterId Id = 0x0000007B;
} // namespace InkCartridgeMonitoring
namespace TonerCartridgeMonitoring {
static constexpr ClusterId Id = 0x0000007C;
} // namespace TonerCartridgeMonitoring
namespace DoorLock {
static constexpr ClusterId Id = 0x00000101;
} // namespace DoorLock
namespace WindowCovering {
static constexpr ClusterId Id = 0x00000102;
} // namespace WindowCovering
namespace BarrierControl {
static constexpr ClusterId Id = 0x00000103;
} // namespace BarrierControl
namespace PumpConfigurationAndControl {
static constexpr ClusterId Id = 0x00000200;
} // namespace PumpConfigurationAndControl
namespace Thermostat {
static constexpr ClusterId Id = 0x00000201;
} // namespace Thermostat
namespace FanControl {
static constexpr ClusterId Id = 0x00000202;
} // namespace FanControl
namespace ThermostatUserInterfaceConfiguration {
static constexpr ClusterId Id = 0x00000204;
} // namespace ThermostatUserInterfaceConfiguration
namespace ColorControl {
static constexpr ClusterId Id = 0x00000300;
} // namespace ColorControl
namespace BallastConfiguration {
static constexpr ClusterId Id = 0x00000301;
} // namespace BallastConfiguration
namespace IlluminanceMeasurement {
static constexpr ClusterId Id = 0x00000400;
} // namespace IlluminanceMeasurement
namespace TemperatureMeasurement {
static constexpr ClusterId Id = 0x00000402;
} // namespace TemperatureMeasurement
namespace PressureMeasurement {
static constexpr ClusterId Id = 0x00000403;
} // namespace PressureMeasurement
namespace FlowMeasurement {
static constexpr ClusterId Id = 0x00000404;
} // namespace FlowMeasurement
namespace RelativeHumidityMeasurement {
static constexpr ClusterId Id = 0x00000405;
} // namespace RelativeHumidityMeasurement
namespace OccupancySensing {
static constexpr ClusterId Id = 0x00000406;
} // namespace OccupancySensing
namespace CarbonMonoxideConcentrationMeasurement {
static constexpr ClusterId Id = 0x0000040C;
} // namespace CarbonMonoxideConcentrationMeasurement
namespace CarbonDioxideConcentrationMeasurement {
static constexpr ClusterId Id = 0x0000040D;
} // namespace CarbonDioxideConcentrationMeasurement
namespace EthyleneConcentrationMeasurement {
static constexpr ClusterId Id = 0x0000040E;
} // namespace EthyleneConcentrationMeasurement
namespace EthyleneOxideConcentrationMeasurement {
static constexpr ClusterId Id = 0x0000040F;
} // namespace EthyleneOxideConcentrationMeasurement
namespace HydrogenConcentrationMeasurement {
static constexpr ClusterId Id = 0x00000410;
} // namespace HydrogenConcentrationMeasurement
namespace HydrogenSulfideConcentrationMeasurement {
static constexpr ClusterId Id = 0x00000411;
} // namespace HydrogenSulfideConcentrationMeasurement
namespace NitricOxideConcentrationMeasurement {
static constexpr ClusterId Id = 0x00000412;
} // namespace NitricOxideConcentrationMeasurement
namespace NitrogenDioxideConcentrationMeasurement {
static constexpr ClusterId Id = 0x00000413;
} // namespace NitrogenDioxideConcentrationMeasurement
namespace OxygenConcentrationMeasurement {
static constexpr ClusterId Id = 0x00000414;
} // namespace OxygenConcentrationMeasurement
namespace OzoneConcentrationMeasurement {
static constexpr ClusterId Id = 0x00000415;
} // namespace OzoneConcentrationMeasurement
namespace SulfurDioxideConcentrationMeasurement {
static constexpr ClusterId Id = 0x00000416;
} // namespace SulfurDioxideConcentrationMeasurement
namespace DissolvedOxygenConcentrationMeasurement {
static constexpr ClusterId Id = 0x00000417;
} // namespace DissolvedOxygenConcentrationMeasurement
namespace BromateConcentrationMeasurement {
static constexpr ClusterId Id = 0x00000418;
} // namespace BromateConcentrationMeasurement
namespace ChloraminesConcentrationMeasurement {
static constexpr ClusterId Id = 0x00000419;
} // namespace ChloraminesConcentrationMeasurement
namespace ChlorineConcentrationMeasurement {
static constexpr ClusterId Id = 0x0000041A;
} // namespace ChlorineConcentrationMeasurement
namespace FecalColiformEColiConcentrationMeasurement {
static constexpr ClusterId Id = 0x0000041B;
} // namespace FecalColiformEColiConcentrationMeasurement
namespace FluorideConcentrationMeasurement {
static constexpr ClusterId Id = 0x0000041C;
} // namespace FluorideConcentrationMeasurement
namespace HaloaceticAcidsConcentrationMeasurement {
static constexpr ClusterId Id = 0x0000041D;
} // namespace HaloaceticAcidsConcentrationMeasurement
namespace TotalTrihalomethanesConcentrationMeasurement {
static constexpr ClusterId Id = 0x0000041E;
} // namespace TotalTrihalomethanesConcentrationMeasurement
namespace TotalColiformBacteriaConcentrationMeasurement {
static constexpr ClusterId Id = 0x0000041F;
} // namespace TotalColiformBacteriaConcentrationMeasurement
namespace TurbidityConcentrationMeasurement {
static constexpr ClusterId Id = 0x00000420;
} // namespace TurbidityConcentrationMeasurement
namespace CopperConcentrationMeasurement {
static constexpr ClusterId Id = 0x00000421;
} // namespace CopperConcentrationMeasurement
namespace LeadConcentrationMeasurement {
static constexpr ClusterId Id = 0x00000422;
} // namespace LeadConcentrationMeasurement
namespace ManganeseConcentrationMeasurement {
static constexpr ClusterId Id = 0x00000423;
} // namespace ManganeseConcentrationMeasurement
namespace SulfateConcentrationMeasurement {
static constexpr ClusterId Id = 0x00000424;
} // namespace SulfateConcentrationMeasurement
namespace BromodichloromethaneConcentrationMeasurement {
static constexpr ClusterId Id = 0x00000425;
} // namespace BromodichloromethaneConcentrationMeasurement
namespace BromoformConcentrationMeasurement {
static constexpr ClusterId Id = 0x00000426;
} // namespace BromoformConcentrationMeasurement
namespace ChlorodibromomethaneConcentrationMeasurement {
static constexpr ClusterId Id = 0x00000427;
} // namespace ChlorodibromomethaneConcentrationMeasurement
namespace ChloroformConcentrationMeasurement {
static constexpr ClusterId Id = 0x00000428;
} // namespace ChloroformConcentrationMeasurement
namespace SodiumConcentrationMeasurement {
static constexpr ClusterId Id = 0x00000429;
} // namespace SodiumConcentrationMeasurement
namespace Pm25ConcentrationMeasurement {
static constexpr ClusterId Id = 0x0000042A;
} // namespace Pm25ConcentrationMeasurement
namespace FormaldehydeConcentrationMeasurement {
static constexpr ClusterId Id = 0x0000042B;
} // namespace FormaldehydeConcentrationMeasurement
namespace Pm1ConcentrationMeasurement {
static constexpr ClusterId Id = 0x0000042C;
} // namespace Pm1ConcentrationMeasurement
namespace Pm10ConcentrationMeasurement {
static constexpr ClusterId Id = 0x0000042D;
} // namespace Pm10ConcentrationMeasurement
namespace TotalVolatileOrganicCompoundsConcentrationMeasurement {
static constexpr ClusterId Id = 0x0000042E;
} // namespace TotalVolatileOrganicCompoundsConcentrationMeasurement
namespace RadonConcentrationMeasurement {
static constexpr ClusterId Id = 0x0000042F;
} // namespace RadonConcentrationMeasurement
namespace WakeOnLan {
static constexpr ClusterId Id = 0x00000503;
} // namespace WakeOnLan
namespace Channel {
static constexpr ClusterId Id = 0x00000504;
} // namespace Channel
namespace TargetNavigator {
static constexpr ClusterId Id = 0x00000505;
} // namespace TargetNavigator
namespace MediaPlayback {
static constexpr ClusterId Id = 0x00000506;
} // namespace MediaPlayback
namespace MediaInput {
static constexpr ClusterId Id = 0x00000507;
} // namespace MediaInput
namespace LowPower {
static constexpr ClusterId Id = 0x00000508;
} // namespace LowPower
namespace KeypadInput {
static constexpr ClusterId Id = 0x00000509;
} // namespace KeypadInput
namespace ContentLauncher {
static constexpr ClusterId Id = 0x0000050A;
} // namespace ContentLauncher
namespace AudioOutput {
static constexpr ClusterId Id = 0x0000050B;
} // namespace AudioOutput
namespace ApplicationLauncher {
static constexpr ClusterId Id = 0x0000050C;
} // namespace ApplicationLauncher
namespace ApplicationBasic {
static constexpr ClusterId Id = 0x0000050D;
} // namespace ApplicationBasic
namespace AccountLogin {
static constexpr ClusterId Id = 0x0000050E;
} // namespace AccountLogin
namespace ElectricalMeasurement {
static constexpr ClusterId Id = 0x00000B04;
} // namespace ElectricalMeasurement
namespace UnitTesting {
static constexpr ClusterId Id = 0xFFF1FC05;
} // namespace UnitTesting
namespace FaultInjection {
static constexpr ClusterId Id = 0xFFF1FC06;
} // namespace FaultInjection

} // namespace Clusters
} // namespace app
} // namespace chip
