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

#pragma autorecover
#pragma classflags(64)
#pragma namespace("\\\\.\\Root")

[Locale(1033) : ToInstance] 
Instance of __Namespace
{
  Name = "Interop";
};
#pragma namespace("\\\\.\\Root\\Interop")

[Association : ToSubclass DisableOverride,Version("2.8.0"),UMLPackagePath("CIM::Interop"),Locale(1033) : ToInstance] 
class CIM_ElementConformsToProfile
{
  [Key : ToSubclass DisableOverride] CIM_RegisteredProfile Ref ConformantStandard;
  [Key : ToSubclass DisableOverride] CIM_ManagedElement Ref ManagedElement;
};

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

[Version("2.22.0"),UMLPackagePath("CIM::Interop"),Locale(1033) : ToInstance] 
class CIM_RegisteredProfile : CIM_ManagedElement
{
  [Key : ToSubclass DisableOverride,Override("InstanceID")] string InstanceID;
  [Required,ModelCorrespondence{"CIM_RegisteredProfile.OtherRegisteredOrganization"}] uint16 RegisteredOrganization;
  [MaxLen(256),ModelCorrespondence{"CIM_RegisteredProfile.RegisteredOrganization"}] string OtherRegisteredOrganization;
  [Required,MaxLen(256)] string RegisteredName;
  [Required] string RegisteredVersion;
  [Required,ArrayType("Indexed"),ModelCorrespondence{"CIM_RegisteredProfile.AdvertiseTypeDescriptions"}] uint16 AdvertiseTypes[];
  [ArrayType("Indexed"),ModelCorrespondence{"CIM_RegisteredProfile.AdvertiseTypes"}] string AdvertiseTypeDescriptions[];
};

[Association : ToSubclass DisableOverride,Abstract,Version("2.10.0"),UMLPackagePath("CIM::Core::CoreElements"),Locale(1033) : ToInstance] 
class CIM_Dependency
{
  [Key : ToSubclass DisableOverride] CIM_ManagedElement Ref Antecedent;
  [Key : ToSubclass DisableOverride] CIM_ManagedElement Ref Dependent;
};

[Association : ToSubclass DisableOverride,Version("2.8.0"),UMLPackagePath("CIM::Interop"),Locale(1033) : ToInstance] 
class CIM_ReferencedProfile : CIM_Dependency
{
  [Override("Antecedent")] CIM_RegisteredProfile Ref Antecedent;
  [Override("Dependent")] CIM_RegisteredProfile Ref Dependent;
};

[Experimental,Version("2.22.0"),UMLPackagePath("CIM::Interop"),Locale(1033) : ToInstance] 
class CIM_RegisteredSpecification : CIM_ManagedElement
{
  [Key : ToSubclass DisableOverride,Override("InstanceID")] string InstanceID;
  [ModelCorrespondence{"CIM_RegisteredSpecification.OtherSpecificationType"}] uint16 SpecificationType;
  [MaxLen(256),ModelCorrespondence{"CIM_RegisteredSpecification.SpecificationType"}] string OtherSpecificationType;
  [Required,ModelCorrespondence{"CIM_RegisteredSpecification.OtherRegisteredOrganization"}] uint16 RegisteredOrganization;
  [MaxLen(256),ModelCorrespondence{"CIM_RegisteredSpecification.RegisteredOrganization"}] string OtherRegisteredOrganization;
  [Required,MaxLen(256)] string RegisteredName;
  [Required] string RegisteredVersion;
  [Required,ArrayType("Indexed"),ModelCorrespondence{"CIM_RegisteredSpecification.AdvertiseTypeDescriptions"}] uint16 AdvertiseTypes[];
  [ArrayType("Indexed"),ModelCorrespondence{"CIM_RegisteredSpecification.AdvertiseTypes"}] string AdvertiseTypeDescriptions[];
};
#pragma autorecover
#pragma classflags(64)
#pragma namespace("\\\\.\\Root\\Interop")
instance of __namespace{ name="ms_409";};
#pragma namespace("\\\\.\\Root\\Interop\\ms_409")

[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("ms_409") : 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("ms_409") : ToInstance] 
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.") : 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("ms_409") : 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("ms_409") : 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("ms_409") : 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;
};

[Description("A RegisteredSpecification is used to advertise the implementation of a specification within a WBEM server. The specification may be authored by the DMTF or another standards organization. In this context, specification is used to describe a named and versioned set of constraints. There may be a one to one correspondence between the set of constraints and the document in which they are published. An example of a one to one correspondence is the mechanism used by the DMTF to publish its profiles. An example of one to many documents to specifications is an SMI-S book published by SNIA.") : Amended ToSubclass,AMENDMENT, LOCALE("ms_409") : ToInstance] 
class CIM_RegisteredSpecification : 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 shall be constructed using the following 'preferred' algorithm: \n: \nWhere and are separated by a colon ':', and where shall 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 _ structure of Schema class names.) In addition, to ensure uniqueness, shall not contain a colon (':'). The first colon to appear in InstanceID shall appear between and . is chosen by the organizational entity and should not be re-used to identify different underlying (real-world) elements. \nFor DMTF defined instances, shall be set to 'CIM'.") : Amended ToSubclass] string InstanceID;
  [Description("The type of specification.") : Amended ToSubclass,ValueMap{"1", "2", "3", "4", ".."} : Amended ToSubclass,Values{"Other", "Profile", "Initiative Wrapper", "Mapping", "DMTF Reserved"} : Amended ToSubclass] uint16 SpecificationType;
  [Description("OtherSpecificationType shall be a a free-form string providing a description of the specification type if 1, \"Other\" is specified for the SpecificationType.") : Amended ToSubclass] string OtherSpecificationType;
  [Description("The organization that defines this specification. \n\"The Green Grid\" identifies \"The Green Grid Association\"") : Amended ToSubclass,ValueMap{"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", ".."} : 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", "The Green Grid", "DMTF Reserved"} : Amended ToSubclass] uint16 RegisteredOrganization;
  [Description("OtherRegisteredOrganization shall be a a free-form string providing a description of the organization if 1, \"Other\" is specified for the RegisteredOrganization.") : Amended ToSubclass] string OtherRegisteredOrganization;
  [Description("The name of this registered specification. Since multiple versions can exist for the same RegisteredName, the combination of RegisteredName, RegisteredOrganization, and RegisteredVersion shall uniquely identify the registered specification within the scope of the organization. \nThe value of this property shall correspond to the name given to the set of versioned constraings by a specification or standard. The value does not identify the name of the document or publishing media, unless it happens to be the same as the name given to the versioned constraints.") : Amended ToSubclass] string RegisteredName;
  [Description("The version describing the creation or last modificationof the specification. The string representing the version shall be in the form: \nM + \".\" + N + \".\" + U \nWhere: \nM - The major version (in numeric form). \nN - The minor version (in numeric form). \nU - The update (e.g. errata, patch, ..., in numeric form).") : Amended ToSubclass] string RegisteredVersion;
  [Description("This property signifies the requested network advertisement for specification 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 specification may be advertised using several mechanisms. Note: If this property is null/uninitialized, shall be equivalent to specifying the value 2, \"Not Advertised\".") : Amended ToSubclass,ValueMap{"1", "2", "3", "4"} : Amended ToSubclass,Values{"Other", "Not Advertised", "SLP", "WS-Identify"} : Amended ToSubclass] uint16 AdvertiseTypes[];
  [Description("A free-form string providing additional information related to the AdvertiseTypes. A description shall be provided for each occurrence of AdvertiseTypes. 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[];
};
