// Copyright (c) 1997-2008 Microsoft Corporation, All Rights Reserved

#pragma autorecover
#pragma classflags(64)
#pragma namespace("\\\\.\\root\\cimv2\\power")

Instance of __Win32Provider as $PowerWmiProvider
{
  Name = "PowerWmiProvider";
  ImpersonationLevel = 1;
  HostingModel = "LocalSystemHost:UmpoWmi";
  CLSID = "{6C683A5C-32B8-47cd-AC28-4B292414D032}";
};

Instance of __InstanceProviderRegistration
{
  Provider = $PowerWmiProvider;
  SupportsGet = TRUE;
  SupportsPut = TRUE;
  SupportsDelete = TRUE;
  SupportsEnumeration = TRUE;
};

Instance of __MethodProviderRegistration
{
  Provider = $PowerWmiProvider;
};

[Abstract,UMLPackagePath("CIM::Core::CoreElements"),locale(1033)] 
class CIM_ManagedElement
{
  string InstanceID;
  [MaxLen(64)] string Caption;
  string Description;
  string ElementName;
};

[Abstract,UMLPackagePath("CIM::Core::Settings"),locale(1033)] 
class CIM_SettingData : CIM_ManagedElement
{
  [key,Override("InstanceID")] string InstanceID;
  [Required : ToSubclass DisableOverride,Override("ElementName")] string ElementName;
};

[Dynamic,Provider("PowerWmiProvider") : ToInstance ToSubclass,Locale(1033)] 
class Win32_PowerSetting : CIM_SettingData
{
};

[Dynamic,Provider("PowerWmiProvider") : ToInstance ToSubclass,Locale(1033)] 
class Win32_PowerSettingSubgroup : CIM_SettingData
{
};

[Dynamic,Provider("PowerWmiProvider") : ToInstance ToSubclass,Locale(1033)] 
class Win32_PowerPlan : CIM_SettingData
{
  [read] boolean IsActive;
  boolean Activate();
};

[Abstract,UMLPackagePath("CIM::Core::Capabilities"),locale(1033)] 
class CIM_Capabilities : CIM_ManagedElement
{
  [key,Override("InstanceID")] string InstanceID;
  [Required : ToSubclass DisableOverride,Override("ElementName")] string ElementName;
};

[Dynamic,Provider("PowerWmiProvider") : ToInstance ToSubclass,Locale(1033)] 
class Win32_PowerSettingDefinition : CIM_Capabilities
{
};

[Association,UMLPackagePath("CIM::Core::Settings"),locale(1033)] 
class CIM_ElementSettingData
{
  [key] CIM_ManagedElement Ref ManagedElement;
  [key] CIM_SettingData Ref SettingData;
  uint16 IsDefault;
  uint16 IsCurrent;
  uint16 IsNext;
};

[Dynamic,Provider("PowerWmiProvider") : ToInstance ToSubclass,Locale(1033)] 
class Win32_PowerSettingDataIndex : CIM_SettingData
{
  [read,write] uint32 SettingIndexValue;
};

[Dynamic,Association,Provider("PowerWmiProvider") : ToInstance ToSubclass,Locale(1033)] 
class Win32_PowerSettingElementSettingDataIndex : CIM_ElementSettingData
{
  [Override("ManagedElement")] Win32_PowerSetting Ref ManagedElement;
  [Override("SettingData")] Win32_PowerSettingDataIndex Ref SettingData;
  uint16 IsACSetting;
};

[Dynamic,Provider("PowerWmiProvider") : ToInstance ToSubclass,Locale(1033)] 
class Win32_PowerSettingDefinitionRangeData : CIM_SettingData
{
  [read] uint32 SettingValue;
};

[Dynamic,Provider("PowerWmiProvider") : ToInstance ToSubclass,Locale(1033)] 
class Win32_PowerSettingDefinitionPossibleValue : CIM_SettingData
{
  [read] uint32 SettingIndex;
  [read] uint32 UInt32Value;
  [read] uint64 UInt64Value;
  [read] string StringValue;
  [read] uint8 BinaryValue[];
};

[Association,UMLPackagePath("CIM::Core::Capabilities"),locale(1033)] 
class CIM_ElementCapabilities
{
  [key,Min(1)] CIM_ManagedElement Ref ManagedElement;
  [key] CIM_Capabilities Ref Capabilities;
  uint16 Characteristics[];
};

[Dynamic,Provider("PowerWmiProvider") : ToInstance ToSubclass,Locale(1033)] 
class Win32_PowerSettingCapabilities : CIM_ElementCapabilities
{
};

[Association,Abstract,Aggregation : ToSubclass DisableOverride,UMLPackagePath("CIM::Core::CoreElements"),locale(1033)] 
class CIM_Component
{
  [key,Aggregate : ToSubclass DisableOverride] CIM_ManagedElement Ref GroupComponent;
  [key] CIM_ManagedElement Ref PartComponent;
};

[Association,Aggregation : ToSubclass DisableOverride,UMLPackagePath("CIM::Core::Settings"),locale(1033)] 
class CIM_SettingsDefineCapabilities : CIM_Component
{
  [key,Aggregate : ToSubclass DisableOverride,Override("GroupComponent"),Max(1)] CIM_Capabilities Ref GroupComponent;
  [key,Override("PartComponent")] CIM_SettingData Ref PartComponent;
  [Required : ToSubclass DisableOverride,ModelCorrespondence{"CIM_SettingsDefineCapabilities.ValueRole", "CIM_SettingsDefineCapabilities.ValueRange"}] uint16 PropertyPolicy = 0;
  [ModelCorrespondence{"CIM_SettingsDefineCapabilities.PropertyPolicy", "CIM_SettingsDefineCapabilities.ValueRange"}] uint16 ValueRole = 3;
  [ModelCorrespondence{"CIM_SettingsDefineCapabilities.PropertyPolicy", "CIM_SettingsDefineCapabilities.ValueRole"}] uint16 ValueRange = 0;
};

[Dynamic,Provider("PowerWmiProvider") : ToInstance ToSubclass,Locale(1033)] 
class Win32_PowerSettingDefineCapabilities : CIM_SettingsDefineCapabilities
{
  [Override("GroupComponent")] Win32_PowerSettingDefinition Ref GroupComponent;
};

[Association,Aggregation : ToSubclass DisableOverride,UMLPackagePath("CIM::Core::CoreElements"),locale(1033)] 
class CIM_ConcreteComponent : CIM_Component
{
  [key,Aggregate : ToSubclass DisableOverride,Override("GroupComponent")] CIM_ManagedElement Ref GroupComponent;
  [key,Override("PartComponent")] CIM_ManagedElement Ref PartComponent;
};

[Dynamic,Provider("PowerWmiProvider") : ToInstance ToSubclass,Locale(1033)] 
class Win32_PowerSettingInSubgroup : CIM_ConcreteComponent
{
  [Override("GroupComponent")] Win32_PowerSettingSubgroup Ref GroupComponent;
  [Override("PartComponent")] Win32_PowerSetting Ref PartComponent;
};

[Dynamic,Provider("PowerWmiProvider") : ToInstance ToSubclass,Locale(1033)] 
class Win32_PowerSettingDataIndexInPlan : CIM_ConcreteComponent
{
  [Override("GroupComponent")] Win32_PowerPlan Ref GroupComponent;
  [Override("PartComponent")] Win32_PowerSettingDataIndex Ref PartComponent;
};
#pragma autorecover
#pragma classflags(64)
#pragma namespace("\\\\.\\root\\cimv2\\power")
instance of __namespace{ name="ms_409";};
#pragma namespace("\\\\.\\root\\cimv2\\power\\ms_409")

[AMENDMENT, LOCALE("ms_409")] 
class CIM_ManagedElement
{
};

[AMENDMENT, LOCALE("ms_409")] 
class CIM_SettingData : CIM_ManagedElement
{
};

[DisplayName("Power Setting") : Amended ToSubclass,Description("This class represents a power setting in the system.") : Amended ToSubclass,AMENDMENT, LOCALE("ms_409")] 
class Win32_PowerSetting : CIM_SettingData
{
};

[DisplayName("Power Setting Subgroup") : Amended ToSubclass,Description("This class represents a power setting subgroup in the system.") : Amended ToSubclass,AMENDMENT, LOCALE("ms_409")] 
class Win32_PowerSettingSubgroup : CIM_SettingData
{
};

[DisplayName("Power Plan") : Amended ToSubclass,Description("This class represents a power plan in the system") : Amended ToSubclass,AMENDMENT, LOCALE("ms_409")] 
class Win32_PowerPlan : CIM_SettingData
{
  [DisplayName("Is Active") : Amended ToSubclass,Description("Whether this power scheme is currently active on the system.") : Amended ToSubclass] boolean IsActive;
  [DisplayName("Activate") : Amended ToSubclass,Description("Make this power scheme the active one on the system.") : Amended ToSubclass] boolean Activate();
};

[AMENDMENT, LOCALE("ms_409")] 
class CIM_Capabilities : CIM_ManagedElement
{
};

[DisplayName("Power Setting Definition") : Amended ToSubclass,Description("This class represents a power setting definition.") : Amended ToSubclass,AMENDMENT, LOCALE("ms_409")] 
class Win32_PowerSettingDefinition : CIM_Capabilities
{
};

[AMENDMENT, LOCALE("ms_409")] 
class CIM_ElementSettingData
{
  [ValueMap{"0", "1", "2"} : Amended ToSubclass] uint16 IsDefault;
  [ValueMap{"0", "1", "2"} : Amended ToSubclass] uint16 IsCurrent;
  [ValueMap{"0", "1", "2", "3"} : Amended ToSubclass] uint16 IsNext;
};

[DisplayName("Power Setting Data") : Amended ToSubclass,Description("This class represents the setting data for a power setting in the system.") : Amended ToSubclass,AMENDMENT, LOCALE("ms_409")] 
class Win32_PowerSettingDataIndex : CIM_SettingData
{
  [DisplayName("Setting Value") : Amended ToSubclass,Description("The setting value for a power setting. This value is writable. The InstanceID of this class will encode whether this setting is for AC or DC power setting. Important: setting saving a power setting value does not automatically make the power setting value take effect on the system. Win32_PowerPlan.Activate() needs to be executed.") : Amended ToSubclass] uint32 SettingIndexValue;
};

[Description("This class associates the setting data for a power setting with the power setting.") : Amended ToSubclass,AMENDMENT, LOCALE("ms_409")] 
class Win32_PowerSettingElementSettingDataIndex : CIM_ElementSettingData
{
  [Description("A power setting.") : Amended ToSubclass] Win32_PowerSetting Ref ManagedElement;
  [Description("The setting data associated with a power setting.") : Amended ToSubclass] Win32_PowerSettingDataIndex Ref SettingData;
  [Description("An enumerated integer that indicates that the referenced setting is used when the system is running in AC. \nFor a given ManagedElement and all instances of a SettingData subclass, there shall be at most one instance of ElementSettingData which references the ManagedElement and an instance of the SettingData sub-class where there is a specified non-null, non-key property of the SettingData sub-class, and the IsACSetting property on the referencing ElementSettingData instance has a value of \"Is AC Setting\".") : Amended ToSubclass,ValueMap{"0", "1", "2"} : Amended ToSubclass,Values{"Unknown", "Is AC Setting", "Is Not AC Setting"} : Amended ToSubclass] uint16 IsACSetting;
};

[DisplayName("Power Setting Definition Data") : Amended ToSubclass,Description("This class represents the setting definition data for a power setting in the system.") : Amended ToSubclass,AMENDMENT, LOCALE("ms_409")] 
class Win32_PowerSettingDefinitionRangeData : CIM_SettingData
{
  [DisplayName("Setting Definition Value") : Amended ToSubclass,Description("A value used to define a power setting. This value is readable. The InstanceID of this class will encode whether this setting is a Min/Max/Inc or a possible value.") : Amended ToSubclass] uint32 SettingValue;
};

[DisplayName("Power Setting Definition Data") : Amended ToSubclass,Description("This class represents the setting definition data for a power setting in the system.") : Amended ToSubclass,AMENDMENT, LOCALE("ms_409")] 
class Win32_PowerSettingDefinitionPossibleValue : CIM_SettingData
{
  [DisplayName("Setting Definition Value Index") : Amended ToSubclass,Description("A value used to define a power setting. This value is readable. The SettingIndex is only used if the power setting is defined as a list of possible values.") : Amended ToSubclass] uint32 SettingIndex;
  [DisplayName("UINT32 Value") : Amended ToSubclass,Description("A value used to define a UINT32 value. This value is readable.") : Amended ToSubclass] uint32 UInt32Value;
  [DisplayName("UINT64 Value") : Amended ToSubclass,Description("A value used to define a UINT64 value. This value is readable.") : Amended ToSubclass] uint64 UInt64Value;
  [DisplayName("String Value") : Amended ToSubclass,Description("A value used to define a UINT64 value. This value is readable.") : Amended ToSubclass] string StringValue;
  [DisplayName("Binary Array Value") : Amended ToSubclass,Description("A value used to define an array of binary values. This value is readable.") : Amended ToSubclass] uint8 BinaryValue[];
};

[AMENDMENT, LOCALE("ms_409")] 
class CIM_ElementCapabilities
{
  [ValueMap{"2", "3", "..", "32768..65535"} : Amended ToSubclass] uint16 Characteristics[];
};

[DisplayName("Power Setting") : Amended ToSubclass,Description("This class represents a power setting in the system.") : Amended ToSubclass,AMENDMENT, LOCALE("ms_409")] 
class Win32_PowerSettingCapabilities : CIM_ElementCapabilities
{
};

[AMENDMENT, LOCALE("ms_409")] 
class CIM_Component
{
};

[AMENDMENT, LOCALE("ms_409")] 
class CIM_SettingsDefineCapabilities : CIM_Component
{
  [ValueMap{"0", "1", ".."} : Amended ToSubclass] uint16 PropertyPolicy;
  [ValueMap{"0", "1", "2", "3", ".."} : Amended ToSubclass] uint16 ValueRole;
  [ValueMap{"0", "1", "2", "3", ".."} : Amended ToSubclass] uint16 ValueRange;
};

[Description("This class associates a power setting definition data with the power setting definition.") : Amended ToSubclass,AMENDMENT, LOCALE("ms_409")] 
class Win32_PowerSettingDefineCapabilities : CIM_SettingsDefineCapabilities
{
  [Description("A power setting definition.") : Amended ToSubclass] Win32_PowerSettingDefinition Ref GroupComponent;
};

[AMENDMENT, LOCALE("ms_409")] 
class CIM_ConcreteComponent : CIM_Component
{
};

[Description("This class associates a power setting with a subgroup.") : Amended ToSubclass,AMENDMENT, LOCALE("ms_409")] 
class Win32_PowerSettingInSubgroup : CIM_ConcreteComponent
{
  [Description("A power setting subgroup.") : Amended ToSubclass] Win32_PowerSettingSubgroup Ref GroupComponent;
  [Description("A power setting.") : Amended ToSubclass] Win32_PowerSetting Ref PartComponent;
};

[Description("This class associates a power setting with a plan.") : Amended ToSubclass,AMENDMENT, LOCALE("ms_409")] 
class Win32_PowerSettingDataIndexInPlan : CIM_ConcreteComponent
{
  [Description("A power plan.") : Amended ToSubclass] Win32_PowerPlan Ref GroupComponent;
  [Description("A power setting data.") : Amended ToSubclass] Win32_PowerSettingDataIndex Ref PartComponent;
};
