#pragma autorecover
#pragma namespace("\\\\.\\root\\Microsoft\\Windows\\Powershellv3")
instance of __namespace{ name="MS_804";};
#pragma namespace("\\\\.\\root\\Microsoft\\Windows\\Powershellv3\\MS_804")

[Version("2.10.0") : Amended,Description("CIM_Dependency is a generic association used to establish dependency relationships between ManagedElements.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class CIM_Dependency
{
  [key,Description("Antecedent represents the independent object in this association.") : Amended ToSubclass] CIM_ManagedElement Ref Antecedent;
  [key,Description("Dependent represents the object that is dependent on the Antecedent.") : Amended ToSubclass] CIM_ManagedElement Ref Dependent;
};

[Version("2.19.0") : Amended,Description("ManagedElement is an abstract class that provides a common superclass (or top of the inheritance tree) for the non-association classes in the CIM Schema.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class CIM_ManagedElement
{
  [Description("InstanceID is an optional property that may be used to opaquely and uniquely identify an instance of this class within the scope of the instantiating Namespace. Various subclasses of this class may override this property to make it required, or a key. Such subclasses may also modify the preferred algorithms for ensuring uniqueness that are defined below.\nTo ensure uniqueness within the NameSpace, the value of InstanceID should be constructed using the following \"preferred\" algorithm: \n<OrgID>:<LocalID> \nWhere <OrgID> and <LocalID> are separated by a colon (:), and where <OrgID> must include a copyrighted, trademarked, or otherwise unique name that is owned by the business entity that is creating or defining the InstanceID or that is a registered ID assigned to the business entity by a recognized global authority. (This requirement is similar to the <Schema Name>_<Class Name> structure of Schema class names.) In addition, to ensure uniqueness, <OrgID> must not contain a colon (:). When using this algorithm, the first colon to appear in InstanceID must appear between <OrgID> and <LocalID>. \n<LocalID> is chosen by the business entity and should not be reused to identify different underlying (real-world) elements. If not null and the above \"preferred\" algorithm is not used, the defining entity must assure that the resulting InstanceID is not reused across any InstanceIDs produced by this or other providers for the NameSpace of this instance. \nIf not set to null for DMTF-defined instances, the \"preferred\" algorithm must be used with the <OrgID> set to CIM.") : Amended ToSubclass] string InstanceID;
  [Description("The Caption property is a short textual description (one- line string) of the object.") : Amended ToSubclass] string Caption;
  [Description("The Description property provides a textual description of the object.") : Amended ToSubclass] string Description;
  [Description("A user-friendly name for the object. This property allows each instance to define a user-friendly name in addition to its key properties, identity data, and description information. \nNote that the Name property of ManagedSystemElement is also defined as a user-friendly name. But, it is often subclassed to be a Key. It is not reasonable that the same property can convey both identity and a user-friendly name, without inconsistencies. Where Name exists and is not a Key (such as for instances of LogicalDevice), the same information can be present in both the Name and ElementName properties. Note that if there is an associated instance of CIM_EnabledLogicalElementCapabilities, restrictions on this properties may exist as defined in ElementNameMask and MaxElementNameLen properties defined in that class.") : Amended ToSubclass] string ElementName;
};

[Description("ManagedElement is an abstract class that provides a common superclass (or top of the inheritance tree) for the non-association classes in the CIM Schema.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class PS_Module : CIM_ManagedElement
{
  [Description("Full Path of the module") : Amended ToSubclass,key] string InstanceID;
  [Description("Name of the module ") : Amended ToSubclass] string ModuleName;
  [Description("Type of the module.") : Amended ToSubclass,Values{"Other", "CIM"} : Amended ToSubclass] uint16 moduleType;
  [Description("Module Manifest data") : Amended ToSubclass] uint8 moduleManifestFileData[];
};

[Description("ManagedElement is an abstract class that provides a common superclass (or top of the inheritance tree) for the non-association classes in the CIM Schema.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class PS_ModuleFile : CIM_ManagedElement
{
  [Description("Within the scope of the instantiating Namespace, InstanceID opaquely and uniquely identifies an instance of this class.") : Amended ToSubclass,key] string InstanceID;
  [Description("File name of the file represented by this instance.") : Amended ToSubclass] string FileName;
  [Description("File data represented as byte array") : Amended ToSubclass] uint8 FileData[];
};

[Description("CIM_Dependency is a generic association used to establish dependency relationships between ManagedElements.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class PS_ModuleToModuleFile : CIM_Dependency
{
  [key,Description("Antecedent represents the independent object in this association.") : Amended ToSubclass] PS_Module Ref Antecedent;
  [key,Description("Dependent represents the object that is dependent on the Antecedent.") : Amended ToSubclass] PS_ModuleFile Ref Dependent;
};
