WeakEnums:
    # Allow-list of enums that we generate as enums, not enum classes.
    # The goal is to drive this down to 0.
    - BarrierControlBarrierPosition
    - BarrierControlMovingState
    - ColorControlOptions
    - ColorMode
    - EnhancedColorMode
    - IdentifyEffectIdentifier
    - IdentifyEffectVariant
    - IdentifyIdentifyType
    - InterfaceTypeEnum
    - MoveMode
    - NetworkFaultEnum
    - PHYRateEnum
    - RadioFaultEnum
    - RoutingRole
    - StepMode

DefineBitmaps:
    # Allow-list of bitmaps that we generates as #define as well as enum classes.
    # The goal is to drive this down to 0.
    - BarrierControlCapabilities
    - BarrierControlSafetyStatus

CommandHandlerInterfaceOnlyClusters:
    # List of clusters that are implemented entirely with
    # CommandHandlerInterface and hence do not need generated command dispatch.
    # This uses asUpperCamelCase versions of the cluster name.
    - NetworkCommissioning

# We need a more configurable way of deciding which clusters have which init functions....
# See https://github.com/project-chip/connectedhomeip/issues/4369
ClustersWithInitFunctions:
    - Basic
    - Color Control
    - Groups
    - Identify
    - Level Control
    - Localization Configuration
    - Occupancy Sensing
    - On/Off
    - Pump Configuration and Control
    - Scenes
    - Time Format Localization
    - Thermostat
    - Mode Select

ClustersWithAttributeChangedFunctions:
    - Bridged Device Basic
    - Door Lock
    - Identify
    - Pump Configuration and Control
    - Window Covering
    - Fan Control

ClustersWithShutdownFunctions:
    - Barrier Control
    - On/Off
    - Door Lock
    - Level Control
    - Color Control

ClustersWithPreAttributeChangeFunctions:
    - Door Lock
    - Pump Configuration and Control
    - Thermostat User Interface Configuration
    - Time Format Localization
    - Localization Configuration
    - Mode Select
    - Fan Control
    - Thermostat
