// DO NOT EDIT MANUALLY - Generated file
//
// Cluster metadata information for cluster OnOff (cluster code: 6/0x6)
// based on src/controller/data_model/controller-clusters.matter
#pragma once

#include <app/data-model-provider/MetadataTypes.h>
#include <array>
#include <lib/core/DataModelTypes.h>

#include <cstdint>

#include <clusters/OnOff/Ids.h>

namespace chip {
namespace app {
namespace Clusters {
namespace OnOff {

inline constexpr uint32_t kRevision = 6;

namespace Attributes {

namespace OnOff {
inline constexpr DataModel::AttributeEntry kMetadataEntry(OnOff::Id, BitFlags<DataModel::AttributeQualityFlags>(),
                                                          Access::Privilege::kView, std::nullopt);
} // namespace OnOff
namespace GlobalSceneControl {
inline constexpr DataModel::AttributeEntry kMetadataEntry(GlobalSceneControl::Id, BitFlags<DataModel::AttributeQualityFlags>(),
                                                          Access::Privilege::kView, std::nullopt);
} // namespace GlobalSceneControl
namespace OnTime {
inline constexpr DataModel::AttributeEntry kMetadataEntry(OnTime::Id, BitFlags<DataModel::AttributeQualityFlags>(),
                                                          Access::Privilege::kView, Access::Privilege::kOperate);
} // namespace OnTime
namespace OffWaitTime {
inline constexpr DataModel::AttributeEntry kMetadataEntry(OffWaitTime::Id, BitFlags<DataModel::AttributeQualityFlags>(),
                                                          Access::Privilege::kView, Access::Privilege::kOperate);
} // namespace OffWaitTime
namespace StartUpOnOff {
inline constexpr DataModel::AttributeEntry kMetadataEntry(StartUpOnOff::Id, BitFlags<DataModel::AttributeQualityFlags>(),
                                                          Access::Privilege::kView, Access::Privilege::kManage);
} // namespace StartUpOnOff
constexpr std::array<DataModel::AttributeEntry, 1> kMandatoryMetadata = {
    OnOff::kMetadataEntry,

};

} // namespace Attributes

namespace Commands {

namespace Off {
inline constexpr DataModel::AcceptedCommandEntry kMetadataEntry(Off::Id, BitFlags<DataModel::CommandQualityFlags>(),
                                                                Access::Privilege::kOperate);
} // namespace Off
namespace On {
inline constexpr DataModel::AcceptedCommandEntry kMetadataEntry(On::Id, BitFlags<DataModel::CommandQualityFlags>(),
                                                                Access::Privilege::kOperate);
} // namespace On
namespace Toggle {
inline constexpr DataModel::AcceptedCommandEntry kMetadataEntry(Toggle::Id, BitFlags<DataModel::CommandQualityFlags>(),
                                                                Access::Privilege::kOperate);
} // namespace Toggle
namespace OffWithEffect {
inline constexpr DataModel::AcceptedCommandEntry kMetadataEntry(OffWithEffect::Id, BitFlags<DataModel::CommandQualityFlags>(),
                                                                Access::Privilege::kOperate);
} // namespace OffWithEffect
namespace OnWithRecallGlobalScene {
inline constexpr DataModel::AcceptedCommandEntry
    kMetadataEntry(OnWithRecallGlobalScene::Id, BitFlags<DataModel::CommandQualityFlags>(), Access::Privilege::kOperate);
} // namespace OnWithRecallGlobalScene
namespace OnWithTimedOff {
inline constexpr DataModel::AcceptedCommandEntry kMetadataEntry(OnWithTimedOff::Id, BitFlags<DataModel::CommandQualityFlags>(),
                                                                Access::Privilege::kOperate);
} // namespace OnWithTimedOff

} // namespace Commands

namespace Events {} // namespace Events
} // namespace OnOff
} // namespace Clusters
} // namespace app
} // namespace chip
