/*
 *
 *    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
// This file is generated from devices-Types.h.zapt

#pragma once

#include <app/data-model-provider/MetadataTypes.h>

#include "Ids.h"

namespace chip {
namespace app {
namespace Device {
namespace Type {

constexpr DataModel::DeviceTypeEntry kDoorLock = {
    .deviceTypeId       = kDoorLockDeviceTypeId,
    .deviceTypeRevision = kDoorLockDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kDoorLockController = {
    .deviceTypeId       = kDoorLockControllerDeviceTypeId,
    .deviceTypeRevision = kDoorLockControllerDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kAggregator = {
    .deviceTypeId       = kAggregatorDeviceTypeId,
    .deviceTypeRevision = kAggregatorDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kGenericSwitch = {
    .deviceTypeId       = kGenericSwitchDeviceTypeId,
    .deviceTypeRevision = kGenericSwitchDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kPowerSource = {
    .deviceTypeId       = kPowerSourceDeviceTypeId,
    .deviceTypeRevision = kPowerSourceDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kOtaRequestor = {
    .deviceTypeId       = kOtaRequestorDeviceTypeId,
    .deviceTypeRevision = kOtaRequestorDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kBridgedNode = {
    .deviceTypeId       = kBridgedNodeDeviceTypeId,
    .deviceTypeRevision = kBridgedNodeDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kOtaProvider = {
    .deviceTypeId       = kOtaProviderDeviceTypeId,
    .deviceTypeRevision = kOtaProviderDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kContactSensor = {
    .deviceTypeId       = kContactSensorDeviceTypeId,
    .deviceTypeRevision = kContactSensorDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kRootNode = {
    .deviceTypeId       = kRootNodeDeviceTypeId,
    .deviceTypeRevision = kRootNodeDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kSolarPower = {
    .deviceTypeId       = kSolarPowerDeviceTypeId,
    .deviceTypeRevision = kSolarPowerDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kBatteryStorage = {
    .deviceTypeId       = kBatteryStorageDeviceTypeId,
    .deviceTypeRevision = kBatteryStorageDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kSecondaryNetworkInterface = {
    .deviceTypeId       = kSecondaryNetworkInterfaceDeviceTypeId,
    .deviceTypeRevision = kSecondaryNetworkInterfaceDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kSpeaker = {
    .deviceTypeId       = kSpeakerDeviceTypeId,
    .deviceTypeRevision = kSpeakerDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kCastingVideoPlayer = {
    .deviceTypeId       = kCastingVideoPlayerDeviceTypeId,
    .deviceTypeRevision = kCastingVideoPlayerDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kContentApp = {
    .deviceTypeId       = kContentAppDeviceTypeId,
    .deviceTypeRevision = kContentAppDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kModeSelect = {
    .deviceTypeId       = kModeSelectDeviceTypeId,
    .deviceTypeRevision = kModeSelectDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kBasicVideoPlayer = {
    .deviceTypeId       = kBasicVideoPlayerDeviceTypeId,
    .deviceTypeRevision = kBasicVideoPlayerDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kCastingVideoClient = {
    .deviceTypeId       = kCastingVideoClientDeviceTypeId,
    .deviceTypeRevision = kCastingVideoClientDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kVideoRemoteControl = {
    .deviceTypeId       = kVideoRemoteControlDeviceTypeId,
    .deviceTypeRevision = kVideoRemoteControlDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kFan = {
    .deviceTypeId       = kFanDeviceTypeId,
    .deviceTypeRevision = kFanDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kAirQualitySensor = {
    .deviceTypeId       = kAirQualitySensorDeviceTypeId,
    .deviceTypeRevision = kAirQualitySensorDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kAirPurifier = {
    .deviceTypeId       = kAirPurifierDeviceTypeId,
    .deviceTypeRevision = kAirPurifierDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kWaterFreezeDetector = {
    .deviceTypeId       = kWaterFreezeDetectorDeviceTypeId,
    .deviceTypeRevision = kWaterFreezeDetectorDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kWaterValve = {
    .deviceTypeId       = kWaterValveDeviceTypeId,
    .deviceTypeRevision = kWaterValveDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kWaterLeakDetector = {
    .deviceTypeId       = kWaterLeakDetectorDeviceTypeId,
    .deviceTypeRevision = kWaterLeakDetectorDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kRainSensor = {
    .deviceTypeId       = kRainSensorDeviceTypeId,
    .deviceTypeRevision = kRainSensorDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kSoilSensor = {
    .deviceTypeId       = kSoilSensorDeviceTypeId,
    .deviceTypeRevision = kSoilSensorDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kRefrigerator = {
    .deviceTypeId       = kRefrigeratorDeviceTypeId,
    .deviceTypeRevision = kRefrigeratorDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kTemperatureControlledCabinet = {
    .deviceTypeId       = kTemperatureControlledCabinetDeviceTypeId,
    .deviceTypeRevision = kTemperatureControlledCabinetDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kRoomAirConditioner = {
    .deviceTypeId       = kRoomAirConditionerDeviceTypeId,
    .deviceTypeRevision = kRoomAirConditionerDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kLaundryWasher = {
    .deviceTypeId       = kLaundryWasherDeviceTypeId,
    .deviceTypeRevision = kLaundryWasherDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kRoboticVacuumCleaner = {
    .deviceTypeId       = kRoboticVacuumCleanerDeviceTypeId,
    .deviceTypeRevision = kRoboticVacuumCleanerDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kDishwasher = {
    .deviceTypeId       = kDishwasherDeviceTypeId,
    .deviceTypeRevision = kDishwasherDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kSmokeCoAlarm = {
    .deviceTypeId       = kSmokeCoAlarmDeviceTypeId,
    .deviceTypeRevision = kSmokeCoAlarmDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kCookSurface = {
    .deviceTypeId       = kCookSurfaceDeviceTypeId,
    .deviceTypeRevision = kCookSurfaceDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kCooktop = {
    .deviceTypeId       = kCooktopDeviceTypeId,
    .deviceTypeRevision = kCooktopDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kMicrowaveOven = {
    .deviceTypeId       = kMicrowaveOvenDeviceTypeId,
    .deviceTypeRevision = kMicrowaveOvenDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kExtractorHood = {
    .deviceTypeId       = kExtractorHoodDeviceTypeId,
    .deviceTypeRevision = kExtractorHoodDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kOven = {
    .deviceTypeId       = kOvenDeviceTypeId,
    .deviceTypeRevision = kOvenDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kLaundryDryer = {
    .deviceTypeId       = kLaundryDryerDeviceTypeId,
    .deviceTypeRevision = kLaundryDryerDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kNetworkInfrastructureManager = {
    .deviceTypeId       = kNetworkInfrastructureManagerDeviceTypeId,
    .deviceTypeRevision = kNetworkInfrastructureManagerDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kThreadBorderRouter = {
    .deviceTypeId       = kThreadBorderRouterDeviceTypeId,
    .deviceTypeRevision = kThreadBorderRouterDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kOnOffLight = {
    .deviceTypeId       = kOnOffLightDeviceTypeId,
    .deviceTypeRevision = kOnOffLightDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kDimmableLight = {
    .deviceTypeId       = kDimmableLightDeviceTypeId,
    .deviceTypeRevision = kDimmableLightDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kOnOffLightSwitch = {
    .deviceTypeId       = kOnOffLightSwitchDeviceTypeId,
    .deviceTypeRevision = kOnOffLightSwitchDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kDimmerSwitch = {
    .deviceTypeId       = kDimmerSwitchDeviceTypeId,
    .deviceTypeRevision = kDimmerSwitchDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kColorDimmerSwitch = {
    .deviceTypeId       = kColorDimmerSwitchDeviceTypeId,
    .deviceTypeRevision = kColorDimmerSwitchDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kLightSensor = {
    .deviceTypeId       = kLightSensorDeviceTypeId,
    .deviceTypeRevision = kLightSensorDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kOccupancySensor = {
    .deviceTypeId       = kOccupancySensorDeviceTypeId,
    .deviceTypeRevision = kOccupancySensorDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kOnOffPlugInUnit = {
    .deviceTypeId       = kOnOffPlugInUnitDeviceTypeId,
    .deviceTypeRevision = kOnOffPlugInUnitDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kDimmablePlugInUnit = {
    .deviceTypeId       = kDimmablePlugInUnitDeviceTypeId,
    .deviceTypeRevision = kDimmablePlugInUnitDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kColorTemperatureLight = {
    .deviceTypeId       = kColorTemperatureLightDeviceTypeId,
    .deviceTypeRevision = kColorTemperatureLightDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kExtendedColorLight = {
    .deviceTypeId       = kExtendedColorLightDeviceTypeId,
    .deviceTypeRevision = kExtendedColorLightDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kMountedOnOffControl = {
    .deviceTypeId       = kMountedOnOffControlDeviceTypeId,
    .deviceTypeRevision = kMountedOnOffControlDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kMountedDimmableLoadControl = {
    .deviceTypeId       = kMountedDimmableLoadControlDeviceTypeId,
    .deviceTypeRevision = kMountedDimmableLoadControlDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kJointFabricAdministrator = {
    .deviceTypeId       = kJointFabricAdministratorDeviceTypeId,
    .deviceTypeRevision = kJointFabricAdministratorDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kIntercom = {
    .deviceTypeId       = kIntercomDeviceTypeId,
    .deviceTypeRevision = kIntercomDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kAudioDoorbell = {
    .deviceTypeId       = kAudioDoorbellDeviceTypeId,
    .deviceTypeRevision = kAudioDoorbellDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kCamera = {
    .deviceTypeId       = kCameraDeviceTypeId,
    .deviceTypeRevision = kCameraDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kVideoDoorbell = {
    .deviceTypeId       = kVideoDoorbellDeviceTypeId,
    .deviceTypeRevision = kVideoDoorbellDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kFloodlightCamera = {
    .deviceTypeId       = kFloodlightCameraDeviceTypeId,
    .deviceTypeRevision = kFloodlightCameraDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kSnapshotCamera = {
    .deviceTypeId       = kSnapshotCameraDeviceTypeId,
    .deviceTypeRevision = kSnapshotCameraDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kChime = {
    .deviceTypeId       = kChimeDeviceTypeId,
    .deviceTypeRevision = kChimeDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kCameraController = {
    .deviceTypeId       = kCameraControllerDeviceTypeId,
    .deviceTypeRevision = kCameraControllerDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kDoorbell = {
    .deviceTypeId       = kDoorbellDeviceTypeId,
    .deviceTypeRevision = kDoorbellDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kWindowCovering = {
    .deviceTypeId       = kWindowCoveringDeviceTypeId,
    .deviceTypeRevision = kWindowCoveringDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kWindowCoveringController = {
    .deviceTypeId       = kWindowCoveringControllerDeviceTypeId,
    .deviceTypeRevision = kWindowCoveringControllerDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kClosure = {
    .deviceTypeId       = kClosureDeviceTypeId,
    .deviceTypeRevision = kClosureDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kClosurePanel = {
    .deviceTypeId       = kClosurePanelDeviceTypeId,
    .deviceTypeRevision = kClosurePanelDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kClosureController = {
    .deviceTypeId       = kClosureControllerDeviceTypeId,
    .deviceTypeRevision = kClosureControllerDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kThermostat = {
    .deviceTypeId       = kThermostatDeviceTypeId,
    .deviceTypeRevision = kThermostatDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kTemperatureSensor = {
    .deviceTypeId       = kTemperatureSensorDeviceTypeId,
    .deviceTypeRevision = kTemperatureSensorDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kPump = {
    .deviceTypeId       = kPumpDeviceTypeId,
    .deviceTypeRevision = kPumpDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kPumpController = {
    .deviceTypeId       = kPumpControllerDeviceTypeId,
    .deviceTypeRevision = kPumpControllerDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kPressureSensor = {
    .deviceTypeId       = kPressureSensorDeviceTypeId,
    .deviceTypeRevision = kPressureSensorDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kFlowSensor = {
    .deviceTypeId       = kFlowSensorDeviceTypeId,
    .deviceTypeRevision = kFlowSensorDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kHumiditySensor = {
    .deviceTypeId       = kHumiditySensorDeviceTypeId,
    .deviceTypeRevision = kHumiditySensorDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kHeatPump = {
    .deviceTypeId       = kHeatPumpDeviceTypeId,
    .deviceTypeRevision = kHeatPumpDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kThermostatController = {
    .deviceTypeId       = kThermostatControllerDeviceTypeId,
    .deviceTypeRevision = kThermostatControllerDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kEvse = {
    .deviceTypeId       = kEvseDeviceTypeId,
    .deviceTypeRevision = kEvseDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kDeviceEnergyManagement = {
    .deviceTypeId       = kDeviceEnergyManagementDeviceTypeId,
    .deviceTypeRevision = kDeviceEnergyManagementDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kWaterHeater = {
    .deviceTypeId       = kWaterHeaterDeviceTypeId,
    .deviceTypeRevision = kWaterHeaterDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kElectricalSensor = {
    .deviceTypeId       = kElectricalSensorDeviceTypeId,
    .deviceTypeRevision = kElectricalSensorDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kElectricalUtilityMeter = {
    .deviceTypeId       = kElectricalUtilityMeterDeviceTypeId,
    .deviceTypeRevision = kElectricalUtilityMeterDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kMeterReferencePoint = {
    .deviceTypeId       = kMeterReferencePointDeviceTypeId,
    .deviceTypeRevision = kMeterReferencePointDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kElectricalEnergyTariff = {
    .deviceTypeId       = kElectricalEnergyTariffDeviceTypeId,
    .deviceTypeRevision = kElectricalEnergyTariffDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kElectricalMeter = {
    .deviceTypeId       = kElectricalMeterDeviceTypeId,
    .deviceTypeRevision = kElectricalMeterDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kControlBridge = {
    .deviceTypeId       = kControlBridgeDeviceTypeId,
    .deviceTypeRevision = kControlBridgeDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kOnOffSensor = {
    .deviceTypeId       = kOnOffSensorDeviceTypeId,
    .deviceTypeRevision = kOnOffSensorDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kOrphanClusters = {
    .deviceTypeId       = kOrphanClustersDeviceTypeId,
    .deviceTypeRevision = kOrphanClustersDeviceTypeRevision,
};

constexpr DataModel::DeviceTypeEntry kAllClustersAppServerExample = {
    .deviceTypeId       = kAllClustersAppServerExampleDeviceTypeId,
    .deviceTypeRevision = kAllClustersAppServerExampleDeviceTypeRevision,
};

} // namespace Type
} // namespace Device
} // namespace app
} // namespace chip
