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

#pragma autorecover
#pragma classflags(64)
#pragma namespace("\\\\.\\Root\\Interop")
instance of __namespace{ name="ms_804";};
#pragma namespace("\\\\.\\Root\\Interop\\ms_804")

[Description("The CIM_ElementConformsToProfile association defines the RegisteredProfiles to which the referenced ManagedElement is conformant. Note: This association may apply to any Managed Element. Typical usage will apply it to a higher level instance, such as a System, NameSpace, or Service. When applied to a higher level instance, all constituent parts MUST behave appropriately in support of the ManagedElement's conformance to the named RegisteredProfile.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class CIM_ElementConformsToProfile
{
  [Key : ToSubclass DisableOverride,Description("The RegisteredProfile to which the ManagedElement conforms.") : Amended ToSubclass] CIM_RegisteredProfile Ref ConformantStandard;
  [Key : ToSubclass DisableOverride,Description("The ManagedElement that conforms to the RegisteredProfile.") : Amended ToSubclass] CIM_ManagedElement Ref ManagedElement;
};

[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(0x0804) : ToInstance] 
class CIM_ManagedElement
{
  [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.") : Amended ToSubclass] string ElementName;
};

[Description("A RegisteredProfile describes a set of CIM Schema classes with required properties and/or methods, necessary to manage a real-world entity or to support a usage scenario, in an interoperable fashion. RegisteredProfiles can be defined by the DMTF or other standards organizations. Note that this class should not be confused with CIM_Profile, which collects SettingData instances, to be applied as a 'configuration profile' for an element. \nA RegisteredProfile is a named 'standard' for CIM-based management of a particular System, subsystem, Service or other entity, for a specified set of uses. It is a complete, standalone definition, as opposed to the subclass RegisteredSubProfile, which requires a scoping profile for context. \nThe uses for a RegisteredProfile or SubProfile MUST be specified in the document that defines the profile. Examples of Profiles are to manage various aspects of an Operating System, Storage Array, or Database. The name of the profile is defined and scoped by its authoring organization.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class CIM_RegisteredProfile : CIM_ManagedElement
{
  [Key : ToSubclass DisableOverride,Description("Within the scope of the instantiating Namespace, InstanceID opaquely and uniquely identifies an instance of this class. In order to 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 creating/defining the InstanceID, or is a registered ID that is assigned to the business entity by a recognized global authority. (This 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 organizational entity and SHOULD not be re-used to identify different underlying (real-world) elements. If the above 'preferred' algorithm is not used, the defining entity MUST assure that the resultant InstanceID is not re-used across any InstanceIDs produced by this or other providers for this instance's NameSpace. \nFor DMTF defined instances, the 'preferred' algorithm MUST be used with the <OrgID> set to 'CIM'.") : Amended ToSubclass] string InstanceID;
  [Description("The organization that defines this profile.") : Amended ToSubclass,ValueMap{"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", ".."} : Amended ToSubclass,Values{"Other", "DMTF", "CompTIA", "Consortium for Service Innovation", "FAST", "GGF", "INTAP", "itSMF", "NAC", "Northwest Energy Efficiency Alliance", "SNIA", "TM Forum", "The Open Group", "ANSI", "IEEE", "IETF", "INCITS", "ISO", "W3C", "OGF", "DMTF Reserved"} : Amended ToSubclass] uint16 RegisteredOrganization;
  [Description("A free-form string providing a description of the organization when 1, \"Other\", is specified for the RegisteredOrganization.") : Amended ToSubclass] string OtherRegisteredOrganization;
  [Description("The name of this registered profile. Since multiple versions can exist for the same RegisteredName, the combination of RegisteredName, RegisteredOrganization, and RegisteredVersion MUST uniquely identify the registered profile within the scope of the organization.") : Amended ToSubclass] string RegisteredName;
  [Description("The version of this profile. The string representing the version MUST be in the form: \nM + \".\" + N + \".\" + U \nWhere: \nM - The major version (in numeric form) describing the profile's creation or last modification. \nN - The minor version (in numeric form) describing the profile's creation or last modification. \nU - The update (e.g. errata, patch, ..., in numeric form) describing the profile's creation or last modification.") : Amended ToSubclass] string RegisteredVersion;
  [Description("This property signifies the advertisement for the profile information. It is used by the advertising services of the WBEM infrastructure to determine what should be advertised, via what mechanisms. The property is an array so that the profile MAY be advertised using several mechanisms. Note: If this property is null/uninitialized, this is equivalent to specifying the value 2, \"Not Advertised\".") : Amended ToSubclass,ValueMap{"1", "2", "3"} : Amended ToSubclass,Values{"Other", "Not Advertised", "SLP"} : Amended ToSubclass] uint16 AdvertiseTypes[];
  [Description("A free-form string providing additional information related to the AdvertiseType. A description MUST be provided when the AdvertiseType is 1, \"Other\". An entry in this array corresponds to the entry in the AdvertiseTypes array at the same index. It is not expected that additional descriptions are needed if the Type is set to \"Not Advertised\" or \"SLP\". However, as the SLP template expands, or as other advertisement mechanisms are defined, support for additional descriptions may be needed. This array is defined to support this.") : Amended ToSubclass] string AdvertiseTypeDescriptions[];
};

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

[Description("A profile that is referenced by another RegisteredProfile.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class CIM_ReferencedProfile : CIM_Dependency
{
  [Description("The RegisteredProfile that is referenced by the Dependent Profile.") : Amended ToSubclass] CIM_RegisteredProfile Ref Antecedent;
  [Description("A RegisteredProfile that references other profiles.") : Amended ToSubclass] CIM_RegisteredProfile Ref Dependent;
};
