
#pragma namespace ("/interop")

#pragma Locale ("en-US")

// Abstract

Qualifier Abstract : boolean = false,
    Scope(association, class, indication),
    Flavor(restricted);

// ArrayType

Qualifier ArrayType : string = "Bag",
    Scope(parameter, property),
    Flavor(disableoverride);

// Deprecated

Qualifier Deprecated : string[],
    Scope(association, class, indication, method, parameter, property, reference),
    Flavor(restricted);

// Description

Qualifier Description : string = null,
    Scope(association, class, indication, method, parameter, property, reference),
    Flavor(translatable);

// Experimental

Qualifier Experimental : boolean = false,
    Scope(association, class, indication, method, parameter, property, reference),
    Flavor(restricted);

// IN

Qualifier In : boolean = true,
    Scope(parameter),
    Flavor(disableoverride);

// Key

Qualifier Key : boolean = false,
    Scope(property, reference),
    Flavor(disableoverride);

// MappingStrings

Qualifier MappingStrings : string[],
    Scope(association, class, indication, method, parameter, property, reference);

// MaxLen

Qualifier MaxLen : uint32 = null,
    Scope(method, parameter, property);

// ModelCorrespondence

Qualifier ModelCorrespondence : string[],
    Scope(association, class, indication, method, parameter, property, reference);

// OUT

Qualifier Out : boolean = false,
    Scope(parameter),
    Flavor(disableoverride);

// Override

Qualifier Override : string = null,
    Scope(method, property, reference),
    Flavor(disableoverride);

// Propagated

Qualifier Propagated : string = null,
    Scope(property),
    Flavor(disableoverride);

// Provider

Qualifier Provider : string = null,
    Scope(association, class, indication, method, parameter, property, reference);

// Required

Qualifier Required : boolean = false,
    Scope(parameter, property, reference),
    Flavor(disableoverride);

// Units

Qualifier Units : string = null,
    Scope(method, parameter, property),
    Flavor(translatable);

// ValueMap

Qualifier ValueMap : string[],
    Scope(method, parameter, property);

// Values

Qualifier Values : string[],
    Scope(method, parameter, property),
    Flavor(translatable);

// Version

Qualifier Version : string = null,
    Scope(association, class, indication),
    Flavor(restricted, translatable);

// Write

Qualifier Write : boolean = false,
    Scope(property);

// WBEMSolutions_JavaProviderPath

    [Version("1.0.0"),
     Description("Each instance becomes part of the path used by WBEMSolutions Provider Path"),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider")
    ]
class WBEMSolutions_JavaProviderPath {
    [Key(true),
     Description("A URL pointing to a library, file or directory to place on the library path for the Java provider adapter. If this specifies a file, you can use a complete path or the special identifier {0} to indicate that the BASEDIR should be used. The BASEDIR is the installation directory of the WBEM Server. For example, file:{0}/usr/sadm/lib/wbem/myjar.jar.")
    ]
    string url;

};

// CIM_ManagedElement

    [Abstract(true),
     Version("2.7.0"),
     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.")
    ]
class CIM_ManagedElement {
    [Description("The Caption property is a short textual description (one- line string) of the object."),
     MaxLen(64)
    ]
    string Caption;

     [Description("The Description property provides a textual description of the object.")
    ]
    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 ManagedSystemElement\'s Name property 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 MAY be present in both the Name and ElementName properties.")
    ]
    string ElementName;

};

// CIM_IndicationFilter

    [Version("2.6.0"),
     Description("CIM_IndicationFilter defines the criteria for generating an Indication and what data should be returned in the Indication. It is derived from CIM_ManagedElement to allow modeling the dependency of the filter on a specific service."),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider")
    ]
class CIM_IndicationFilter : CIM_ManagedElement {
    [Key(true),
     Description("A System\'s CreationClassName. The Filter is defined in the context of a CIM_System, where it is hosted or to which it applies. In a future release, a weak relationship will be explicitly added to the model. This is not done now to allow further refinement of the Filter definition and its inheritance tree. Keys are defined now to allow the class to be instantiated."),
     MaxLen(256)
    ]
    string SystemCreationClassName;

     [Key(true),
     Description("A System\'s Name. The Filter is defined in the context of a CIM_System, where it is hosted or to which it applies. In a future release, a weak relationship will be explicitly added to the model. This is not done now to allow further refinement of the Filter definition and its inheritance tree. Keys are defined now to allow the class to be instantiated."),
     MaxLen(256)
    ]
    string SystemName;

     [Key(true),
     Description("Indicates the name of the class or the subclass used in the creation of an instance. When used with the other key properties of this class, it allows all instances of this class and its subclasses to be uniquely identified."),
     MaxLen(256)
    ]
    string CreationClassName;

     [Key(true),
     Description("The name of the filter.")
    ]
    string Name;

     [Description("The path to a local namespace where the Indications originate. If NULL, the namespace of the Filter registration is assumed.")
    ]
    string SourceNamespace;

     [Required(true),
     Description("A query expression that defines the condition(s) under which Indications will be generated. For some Indication classes, the query expression may also define the instance properties to be copied to the CIM_InstIndication\'s SourceInstance and PreviousInstance properties. Query language semantics include projection (e.g., Select), range (e.g., From) and predicate (e.g., Where)."),
     ModelCorrespondence{"CIM_IndicationFilter.QueryLanguage"}
    ]
    string Query;

     [Required(true),
     Description("The language in which the query is expressed.")
    ]
    string QueryLanguage;

};

// CIM_ListenerDestination

    [Abstract(true),
     Version("2.8.0"),
     Description("The description of a CIM Listener destination. A CIM_Listener is an entity capable of receiving CIM Export Messages (e.g., Indications or responses to an asynchronous CIM Operation).")
    ]
class CIM_ListenerDestination : CIM_ManagedElement {
    [Key(true),
     Description("A System\'s CreationClassName. A CIM Listener destination is defined in context of a CIM_System (e.g., the sending system."),
     MaxLen(256)
    ]
    string SystemCreationClassName;

     [Key(true),
     Description("A System\'s Name. A CIM Listener destination is defined in context of a CIM_System (e.g., the sending system."),
     MaxLen(256)
    ]
    string SystemName;

     [Key(true),
     Description("Indicates the name of the class or the subclass used in the creation of an instance. When used with the other key properties of this class, it allows all instances of this class and its subclasses to be uniquely identified."),
     MaxLen(256)
    ]
    string CreationClassName;

     [Key(true),
     Description("Indicates the name of the CIM Listener destination."),
     MaxLen(256)
    ]
    string Name;

     [Description("Describes the Persistence Type of the destination defined by this instance. If the value of PersistenceType is not specified, the value of PersistenceType MUST be treated as 2 (\"Permanent\"). A value of 2 (\"Permanent\") declares that the destination is always expected to be available (e.g., system log file). Inability to access this destination MUST be treated as an error condition. A value of 3 (\"Transient\") indicates that the destination is short-lived. Inability to access the destination MAY be treated as a normal termination condition. Subscriptions with \"Transient\" destinations MAY be deleted when the destination terminates or is no longer available."),
     ValueMap{"1", "2", "3"},
     Values{"Other", "Permanent", "Transient"},
     ModelCorrespondence{"CIM_ListenerDestination.OtherPersistenceType"}
    ]
    uint16 PersistenceType;

     [Description("A string describing (\"Other\") values for PersistenceType. This value MUST be set to a non NULL value when the PersistenceType is 1 (\"Other\"). For all other values of PersistenceType, the value of OtherPersistenceType MUST be NULL."),
     ModelCorrespondence{"CIM_ListenerDestination.PersistenceType"}
    ]
    string OtherPersistenceType;

};

// CIM_IndicationSubscription

    [Association(true),
     Version("2.7.0"),
     Description("CIM_IndicationSubscription describes a flow of Indications. The flow is specified by the referenced Filter, and directed to the referenced destination or process in the Handler. Property values of the referenced CIM_IndicationFilter instance and CIM_ListenerDestination instance MAY significantly effect the definition of the subscription. E.g., a subscription associated with a \"Transient\" destination MAY be deleted when the destination terminates or is no longer available."),
     Provider("internal:cim_indicationsubscription")
    ]
class CIM_IndicationSubscription {
    [Key(true),
     Description("The Filter that defines the criteria and data of the possible Indications of this subscription.")
    ]
    CIM_IndicationFilter REF Filter;

     [Key(true),
     Description("The Handler addressing delivery of the possible Indications of this subscription.")
    ]
    CIM_ListenerDestination REF Handler;

     [Description("Defines the desired behavior for a subscription when a fatal error occurs in one of the Indication processing subcomponents (e.g., Indication processor, Indication or instance provider, or Indication handler) and the Indication cannot be successfully sent. Specifically, a failure implies that some aspect of Indication generation, processing or dispatch is no longer functioning and Indications may be lost. If the value of OnFatalErrorPolicy is 2 (\"Ignore\") or not set (NULL), the subscription MUST continue to be processed in a \'best effort\' mode. This mode of operation can lead to unpredictable, and potentially misleading results, because Indications may be lost. If the value is 3 (\"Disable\"), the subscription MUST be disabled. With this policy, no new Indications will be generated or dispatched until the subscription is explicitly enabled. This is accomplished via the property, SubscriptionState. If the value is 4 (\"Remove\"), the subscription MUST be deleted. Selecting this policy has the same effect as issuing a DeleteInstance operation on this subscription instance."),
     ValueMap{"1", "2", "3", "4"},
     Values{"Other", "Ignore", "Disable", "Remove"}
    ]
    uint16 OnFatalErrorPolicy;

     [Description("A string defining \"Other\" values for OnFatalErrorPolicy. This value MUST be set to a non NULL value when OnFatalErrorPolicy is set to a value of 1 (\"Other\"). For all other values, the OtherOnFatalErrorPolicy MUST be NULL.")
    ]
    string OtherOnFatalErrorPolicy;

     [Description("The FailureTriggerTimeInterval is used by the client to specify a recommended minimum delay before the OnFatalErrorPolicy is implemented."),
     Units("Seconds")
    ]
    uint64 FailureTriggerTimeInterval;

     [Write(true),
     Description("Indicates the current processing state of the subscription."),
     ValueMap{"0", "1", "2", "3", "4"},
     Values{"Unknown", "Other", "Enabled", "Enabled Degraded", "Disabled"}
    ]
    uint16 SubscriptionState;

     [Description("A string defining \"Other\" values for SubscriptionState. This value MUST be set to a non NULL value when SubscriptionState is set to a value of 1 (\"Other\"). For all other values, the OtherSubscriptionState MUST be NULL.")
    ]
    string OtherSubscriptionState;

     [Description("Date and time of the last state change. This value is based on the notion of local date and time of the Managed System Element running the Indication processing subcomponents.")
    ]
    datetime TimeOfLastStateChange;

     [Write(true),
     Description("SubscriptionDuration defines the desired length of the subscription. Indications generated after the duration of the subscription has exceeded SubscriptionDuration MUST NOT be sent. The duration of a subscription MAY be changed by modifying this property. An expired subscription MAY be deleted and MUST NOT be modified. If the value of SubscriptionDuration is not set, the subscription MUST be treated as having no expiration date."),
     Units("Seconds")
    ]
    uint64 SubscriptionDuration;

     [Description("SubscriptionStartTime is the time the subscription was started. The value of this property is computed based on the notion of date and time of the ManagedSystemElement running the Indication processing subcomponents.")
    ]
    datetime SubscriptionStartTime;

     [Description("SubscriptionTimeRemaining is a computed value that provides a snapshot of the time remaining in the Subscription."),
     Units("Seconds")
    ]
    uint64 SubscriptionTimeRemaining;

     [Description("The RepeatNotificationPolicy property defines the desired behavior for handling Indications that report the occurrence of the same underlying event (e.g., the disk is still generating I/O errors and has not yet been repaired). The defined semantics for the RepeatNotificationCount, RepeatNotificationInterval, and RepeatNotificationGap properties depend on the value of RepeatNotificationPolicy, but values for these properties MUST be set if the property is defined for the selected policy. If the value of RepeatNotificationPolicy is 0 (\"Unknown\") or not set, no special processing for repeat Indications is defined by the subscription. The semantics associated with the handling of repeat Indications MAY be defined by the Indication processing subcomponents. If the value of RepeatNotificationPolicy is 2 (\"None\"), special processing of repeat Indications MUST NOT be performed. If the value is 3 (\"Suppress\") the first RepeatNotificationCount Indications, describing the same event, MUST be sent and all subsequent Indications for this event suppressed for the remainder of the time interval RepeatNotificationInterval. A new interval starts when the next Indication for this event is received. If the value of RepeatNotificationPolicy is 4 (\"Delay\") and an Indication is received, this Indication MUST be suppressed if, including this Indication, RepeatNoticationCount or fewer Indications for this event have been received during the prior time interval defined by RepeatNotificationInterval. If this Indication is the RepeatNotificationCount + 1 Indication, this Indication MUST be sent and all subsequent Indications for this event ignored until the RepeatNotificationGap has elapsed. A RepeatNotificationInterval MAY NOT overlap a RepeatNotificationGap time interval."),
     ValueMap{"0", "1", "2", "3", "4"},
     Values{"Unknown", "Other", "None", "Suppress", "Delay"}
    ]
    uint16 RepeatNotificationPolicy;

     [Description("A string defining \"Other\" values for RepeatNotificationPolicy. This value MUST be set to a non NULL value when RepeatNotificationPolicy is set to a value of 1 (\"Other\"). For all other values, the OtherRepeatNotificationPolicy MUST be NULL.")
    ]
    string OtherRepeatNotificationPolicy;

     [Description("Defines the time interval for the repeat notification policy calculation."),
     Units("Seconds")
    ]
    uint64 RepeatNotificationInterval;

     [Description("Defines the gap interval for the repeat notification policy calculation."),
     Units("Seconds")
    ]
    uint64 RepeatNotificationGap;

     [Description("Defines the count property for the repeat notification policy calculation.")
    ]
    uint16 RepeatNotificationCount;

};

// CIM_Dependency

    [Association(true),
     Abstract(true),
     Version("2.6.0"),
     Description("CIM_Dependency is a generic association used to establish dependency relationships between ManagedElements.")
    ]
class CIM_Dependency {
    [Key(true),
     Description("Antecedent represents the independent object in this association.")
    ]
    CIM_ManagedElement REF Antecedent;

     [Key(true),
     Description("Dependent represents the object dependent on the Antecedent.")
    ]
    CIM_ManagedElement REF Dependent;

};

// CIM_Component

    [Association(true),
     Abstract(true),
     Aggregation(true),
     Version("2.7.0"),
     Description("CIM_Component is a generic association used to establish \'part of\' relationships between Managed Elements. For example, it could be used to define the components or parts of a System.")
    ]
class CIM_Component {
    [Key(true),
     Aggregate(true),
     Description("The parent element in the association.")
    ]
    CIM_ManagedElement REF GroupComponent;

     [Key(true),
     Description("The child element in the association.")
    ]
    CIM_ManagedElement REF PartComponent;

};

// CIM_Namespace

    [Version("2.8.0"),
     Description("Namespace provides a domain (in other words, a container), in which the instances [of a class] are guaranteed to be unique per the KEY qualifier definitions. It is named relative to the CIM_ObjectManager implementation that provides such a domain."),
     Provider("internal:CIM_Namespace")
    ]
class CIM_Namespace : CIM_ManagedElement {
    [Key(true),
     Propagated("CIM_ObjectManager.SystemCreationClassName"),
     Description("The scoping System\'s CreationClassName."),
     MaxLen(256)
    ]
    string SystemCreationClassName;

     [Key(true),
     Propagated("CIM_ObjectManager.SystemName"),
     Description("The scoping System\'s Name."),
     MaxLen(256)
    ]
    string SystemName;

     [Key(true),
     Propagated("CIM_ObjectManager.CreationClassName"),
     Description("The scoping ObjectManager\'s CreationClassName."),
     MaxLen(256)
    ]
    string ObjectManagerCreationClassName;

     [Key(true),
     Propagated("CIM_ObjectManager.Name"),
     Description("The scoping ObjectManager\'s Name."),
     MaxLen(256)
    ]
    string ObjectManagerName;

     [Key(true),
     Description("CreationClassName indicates the name of the class or the subclass used in the creation of an instance. When used with the other key properties of this class, this property allows all instances of this class and its subclasses to be uniquely identified."),
     MaxLen(256)
    ]
    string CreationClassName;

     [Key(true),
     Description("A string to uniquely identify the Namespace within the ObjectManager."),
     MaxLen(256)
    ]
    string Name;

     [Deprecated{"CIM_Namespace.ClassType"},
     Required(true),
     Write(true),
     Description("Enumeration indicating the organization/schema of the Namespace\'s objects. For example, they may be instances of classes of a specific CIM version."),
     ValueMap{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "200", "201", "202"},
     Values{"Unknown", "Other", "CIM 1.0", "CIM 2.0", "CIM 2.1", "CIM 2.2", "CIM 2.3", "CIM 2.4", "CIM 2.5", "CIM 2.6", "CIM 2.7", "CIM 2.8", "DMI Recast", "SNMP Recast", "CMIP Recast"},
     ModelCorrespondence{"CIM_Namespace.DescriptionOfClassInfo"}
    ]
    uint16 ClassInfo;

     [Deprecated{"CIM_Namespace.DescriptionOfClassType"},
     Write(true),
     Description("A string providing more detail (beyond the general classification in ClassInfo) for the object hierarchy of the Namespace."),
     ModelCorrespondence{"CIM_Namespace.ClassInfo"}
    ]
    string DescriptionOfClassInfo;

     [Write(true),
     Description("Enumeration indicating the schema of the Namespace\'s objects. For example, they may be instances of classes of a specific CIM version or a mapping from another standard, such as SNMP. If \'Other\' is selected, the DescriptionOfClassType property MUST be populated."),
     ValueMap{"0", "1", "2", "200", "201", "202"},
     Values{"Unknown", "Other", "CIM", "DMI Recast", "SNMP Recast", "CMIP Recast"},
     ModelCorrespondence{"CIM_Namespace.DescriptionOfClassType", "CIM_Namespace.ClassTypeVersion"}
    ]
    uint16 ClassType;

     [Write(true),
     Description("The version of the objects in this namespace. The string representing the version MUST 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)"),
     ModelCorrespondence{"CIM_Namespace.DescriptionOfClassType", "CIM_Namespace.ClassType"}
    ]
    string ClassTypeVersion;

     [Write(true),
     Description("A string providing more detail (beyond the general classification in ClassInfo) for the object hierarchy of the Namespace."),
     ModelCorrespondence{"CIM_Namespace.ClassType", "CIM_Namespace.ClassTypeVersion"}
    ]
    string DescriptionOfClassType;

};

// CIM_SystemIdentification

    [Version("2.7.0"),
     Description("A Namespace may represent data for one or many systems, that are local, remote (different than the system on which the ObjectManager is running) or aggregated. The System Identification class provides enough data to identify the system(s) represented in the Namespace. It is weak to the Namespace.")
    ]
class CIM_SystemIdentification : CIM_ManagedElement {
    [Key(true),
     Propagated("CIM_Namespace.SystemCreationClassName"),
     Description("The scoping System\'s CreationClassName."),
     MaxLen(256)
    ]
    string SystemCreationClassName;

     [Key(true),
     Propagated("CIM_Namespace.SystemName"),
     Description("The scoping System\'s Name."),
     MaxLen(256)
    ]
    string SystemName;

     [Key(true),
     Propagated("CIM_Namespace.ObjectManagerCreationClassName"),
     Description("The scoping ObjectManager\'s CreationClassName."),
     MaxLen(256)
    ]
    string ObjectManagerCreationClassName;

     [Key(true),
     Propagated("CIM_Namespace.ObjectManagerName"),
     Description("The scoping ObjectManager\'s Name."),
     MaxLen(256)
    ]
    string ObjectManagerName;

     [Key(true),
     Propagated("CIM_Namespace.CreationClassName"),
     Description("The scoping Namespace\'s CreationClassName."),
     MaxLen(256)
    ]
    string NamespaceCreationClassName;

     [Key(true),
     Propagated("CIM_Namespace.Name"),
     Description("The scoping Namespace\'s Name."),
     MaxLen(256)
    ]
    string NamespaceName;

     [Key(true),
     Description("CreationClassName indicates the name of the class or the subclass used in the creation of an instance. When used with the other key properties of this class, this property allows all instances of this class and its subclasses to be uniquely identified."),
     MaxLen(256)
    ]
    string CreationClassName;

     [Key(true),
     Description("A string uniquely identifying the name of the system represented in the Namespace."),
     MaxLen(256)
    ]
    string Name;

     [Required(true),
     Write(true),
     Description("Enumeration indicating the format of the system identification and/or addressing information."),
     ValueMap{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11"},
     Values{"Unknown", "Other", "Short DNS Name", "Fully qualified DNS Name", "Windows Domain Name", "NetWare Server Name", "Unix Hostname", "Globally Unique System Identifier", "IP Address", "Modem Dialup String", "MAC Address", "IPMI Address"},
     ArrayType("Indexed"),
     ModelCorrespondence{"CIM_SystemIdentification.IdentificationData", "CIM_SystemIdentification.FormatDescriptions"}
    ]
    uint16 IdentificationFormats[];

     [Write(true),
     Description("Strings further describing the format of the system identification information."),
     ArrayType("Indexed"),
     ModelCorrespondence{"CIM_SystemIdentification.IdentificationFormats", "CIM_SystemIdentification.IdentificationData"}
    ]
    string FormatDescriptions[];

     [Write(true),
     Description("Strings containing the system identification information. The format is described by the corresponding array item in IdentificationFormats."),
     ArrayType("Indexed"),
     ModelCorrespondence{"CIM_SystemIdentification.IdentificationFormats", "CIM_SystemIdentification.FormatDescriptions"}
    ]
    string IdentificationData[];

};

// CIM_SystemInNamespace

    [Association(true),
     Version("2.6.0"),
     Description("SystemInNamespace is an association that allows enumeration of the system(s) represented in a Namespace.")
    ]
class CIM_SystemInNamespace {
    [Key(true),
     Min(1),
     Max(1),
     Description("The Namespace containing management objects from one or more systems.")
    ]
    CIM_Namespace REF ManagedNamespace;

     [Key(true),
     Weak(true),
     Description("Identification information for systems in the Namespace.")
    ]
    CIM_SystemIdentification REF Identification;

     [Required(true),
     Write(true),
     Description("A list of enumerated values providing a high level description of the data contained and allowed in the Namespace. Additional clarification is provided in the DescriptionOfContainedData array."),
     ValueMap{"0", "1", "2", "3", "4"},
     Values{"Unknown", "Other", "Local System Data", "Data Aggregated from Multiple Systems", "Proxied Data"},
     ArrayType("Indexed"),
     ModelCorrespondence{"CIM_SystemInNamespace.DescriptionOfContainedData"}
    ]
    uint16 ScopeOfContainedData[];

     [Write(true),
     Description("An array of free-form strings providing more detailed explanations for the data/objects contained in the Namespace, as described by the ContainedData array. Note, each entry of this array is related to the entry in the ContainedData array that is located at the same index."),
     ArrayType("Indexed"),
     ModelCorrespondence{"CIM_SystemInNamespace.ScopeOfContainedData"}
    ]
    string DescriptionOfContainedData[];

};

// CIM_SettingData

    [Abstract(true),
     Version("2.7.0"),
     Description("The SettingData class represents configuration-related and operational parameters for one or more ManagedElement(s). A ManagedElement may have multiple SettingData objects associated with it. The current operational values for an Element\'s parameters are reflected by properties in the Element itself or by properties in its associations. These properties do not have to be the same values present in the SettingData object. For example, a modem may have a SettingData baud rate of 56Kb/sec but be operating at 19.2Kb/sec. \nNote that the CIM_SettingData class is very similar to CIM_Setting, yet both classes are present in the model. This is because many implementations have successfully used CIM_Setting. However, issues have arisen that could not be resolved without defining a new class. Therefore, until a new major release occurs, both classes will exist in the model. Refer to the Core White Paper for additional information.")
    ]
class CIM_SettingData : CIM_ManagedElement {
    [Key(true),
     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 business 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\'.")
    ]
    string InstanceID;

     [Required(true),
     Override("ElementName"),
     Description("The user friendly name for this instance of SettingData. In addition, the user friendly name can be used as a index property for a search of query. (Note: Name does not have to be unique within a namespace.)")
    ]
    string ElementName;

};

// CIM_ElementSettingData

    [Association(true),
     Version("2.7.0"),
     Description("ElementSettingData represents the association between ManagedElements and applicable setting data. This association also describes whether this is a default or current setting.")
    ]
class CIM_ElementSettingData {
    [Key(true),
     Description("The managed element.")
    ]
    CIM_ManagedElement REF ManagedElement;

     [Key(true),
     Description("The SettingData object associated with the element.")
    ]
    CIM_SettingData REF SettingData;

     [Description("An enumerated integer indicating that the referenced setting is a default setting for the element, or that this information is unknown."),
     ValueMap{"0", "1", "2"},
     Values{"Unknown", "Is Default", "Is Not Default"}
    ]
    uint16 IsDefault;

     [Description("An enumerated integer indicating that the referenced setting is currently being used in the operation of the element, or that this information is unknown."),
     ValueMap{"0", "1", "2"},
     Values{"Unknown", "Is Current", "Is Not Current"}
    ]
    uint16 IsCurrent;

};

// CIM_Indication

    [Indication(true),
     Abstract(true),
     Version("2.7.0"),
     Description("CIM_Indication is the abstract root class for all notifications about changes in schema, objects and their data, and about events detected by providers and instrumentation. Subclasses represent specific types of notifications. \n\nTo receive an Indication, a consumer (or subscriber) must create an instance of CIM_IndicationFilter describing the criteria of the notification, an instance of CIM_ListenerDestination describing the delivery of the notification, and an instance of CIM_IndicationSubscription associating the Filter and Handler.")
    ]
class CIM_Indication {
    [Description("An identifier for the Indication. This property is similar to a key value in that it can be used for identification, when correlating Indications (see the CorrelatedIndications array). Its value SHOULD be unique as long as Alert correlations are reported, but MAY be reused or left NULL if no future Indications will reference it in their CorrelatedIndications array."),
     MappingStrings{"Recommendation.ITU|X733.Notification identifier"}
    ]
    string IndicationIdentifier;

     [Description("A list of IndicationIdentifiers whose notifications are correlated with (related to) this one."),
     MappingStrings{"Recommendation.ITU|X733.Correlated notifications"}
    ]
    string CorrelatedIndications[];

     [Description("The time and date of creation of the Indication. The property may be set to NULL if the entity creating the Indication is not capable of determing this information. Note that IndicationTime may be the same for two Indications that are generated in rapid succession.")
    ]
    datetime IndicationTime;

};

// WBEMSolutions_WBEMServerLibraryPath

    [Version("1.0.0"),
     Description("Each instance becomes part of the path used by WBEMSolutions WBEM Server"),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider")
    ]
class WBEMSolutions_WBEMServerLibraryPath {
    [Key(true),
     Description("A URL pointing to a library, file or directory to place on the library path for the WBEM Server. If this specifies a file, you can use a complete path or the special identifier {0} to indicate that the BASEDIR should be used. The BASEDIR is the installation directory of the WBEM Server. If this specified a directory, ensure that the last character is a / \nFor example: \tfile:{0}/usr/sadm/lib/wbem/myjar.jar \n\tfile://opt/mydir/")
    ]
    string url;

};

// CIM_RegisteredProfile

    [Version("2.8.0"),
     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.")
    ]
class CIM_RegisteredProfile : CIM_ManagedElement {
    [Key(true),
     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\'.")
    ]
    string InstanceID;

     [Required(true),
     Description("The organization that defines this profile."),
     ValueMap{"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"},
     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"},
     ModelCorrespondence{"CIM_RegisteredProfile.OtherRegisteredOrganization"}
    ]
    uint16 RegisteredOrganization;

     [Description("A free-form string providing a description of the organization when 1, \"Other\", is specified for the RegisteredOrganization."),
     MaxLen(256),
     ModelCorrespondence{"CIM_RegisteredProfile.RegisteredOrganization"}
    ]
    string OtherRegisteredOrganization;

     [Required(true),
     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."),
     MaxLen(256)
    ]
    string RegisteredName;

     [Required(true),
     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.")
    ]
    string RegisteredVersion;

     [Required(true),
     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\"."),
     ValueMap{"1", "2", "3"},
     Values{"Other", "Not Advertised", "SLP"},
     ArrayType("Indexed"),
     ModelCorrespondence{"CIM_RegisteredProfile.AdvertiseTypeDescriptions"}
    ]
    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."),
     ArrayType("Indexed"),
     ModelCorrespondence{"CIM_RegisteredProfile.AdvertiseTypes"}
    ]
    string AdvertiseTypeDescriptions[];

};

// CIM_ElementConformsToProfile

    [Association(true),
     Version("2.8.0"),
     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.")
    ]
class CIM_ElementConformsToProfile {
    [Key(true),
     Description("The RegisteredProfile to which the ManagedElement conforms.")
    ]
    CIM_RegisteredProfile REF ConformantStandard;

     [Key(true),
     Description("The ManagedElement that conforms to the RegisteredProfile.")
    ]
    CIM_ManagedElement REF ManagedElement;

};

// CIM_LogicalIdentity

    [Association(true),
     Abstract(true),
     Version("2.7.0"),
     Description("CIM_LogicalIdentity is an abstract and generic association, indicating that two ManagedElements represent different aspects of the same underlying entity. This relationship conveys what could be defined with multiple inheritance. In most scenarios, the Identity relationship is determined by the equivalence of Keys or some other identifying properties of the related Elements. \n\nOne of the scenarios where this relationship is reasonable is to represent that a LogicalDevice is both a \'bus\' entity and a \'functional\' entity. For example, a Device could be both a USB (bus) and a Keyboard (functional) entity.")
    ]
class CIM_LogicalIdentity {
    [Key(true),
     Description("SystemElement represents one aspect of the Managed Element. The use of \'System\' in the role name does not limit the scope of the association. The role name was defined in the original association, where the referenced elements were limited to LogicalElements. Since that time, it has been found valuable to instantiate these types of relationships for ManagedElements, such as Collections. So, the referenced elements of the association were redefined to be ManagedElements. Unfortunately, the role name could not be changed without deprecating the entire association. This was not deemed necessary just to correct the role name.")
    ]
    CIM_ManagedElement REF SystemElement;

     [Key(true),
     Description("SameElement represents an alternate aspect of the ManagedElement.")
    ]
    CIM_ManagedElement REF SameElement;

};

// WBEMSolutions_WindowsDomain

    [Version("1.0.0"),
     Description("WBEMSolutions_WindowsDomain is used by the Windows Security provider to know which domains it will try to authenticate users against."),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider")
    ]
class WBEMSolutions_WindowsDomain {
    [Key(true),
     Description("Name of a Windows domain")
    ]
    string name;

};

// CIM_Capabilities

    [Abstract(true),
     Version("2.7.0"),
     Description("Capabilities is an abstract class whose subclasses describe abilities and/or potential for use. For example, one may describe the maximum number of VLANs that can be supported on a system using a subclass of Capabilities. Capabilities are tied to the elements which they describe using the ElementCapabilities association. Note that the cardinality of the ManagedElement reference is Min(1), Max(1). This cardinality mandates the instantiation of the ElementCapabilities association for the referenced instance of Capabilities. ElementCapabilities describes the existence requirements and context for the referenced instance of ManagedElement. Specifically, the ManagedElement MUST exist and provides the context for the Capabilities. Note that Capabilities do not indicate what IS configured or operational, but what CAN or CANNOT exist, be defined or be used. Note that it is possible to describe both supported and excluded abilities and functions (both capabilities and limitations) using this class.")
    ]
class CIM_Capabilities : CIM_ManagedElement {
    [Key(true),
     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 business 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\'.")
    ]
    string InstanceID;

     [Required(true),
     Override("ElementName"),
     Description("The user friendly name for this instance of Capabilities. In addition, the user friendly name can be used as a index property for a search of query. (Note: Name does not have to be unique within a namespace.)")
    ]
    string ElementName;

};

// CIM_ElementCapabilities

    [Association(true),
     Version("2.7.0"),
     Description("ElementCapabilities represents the association between ManagedElements and their Capabilities. Note that the cardinality of the ManagedElement reference is Min(1), Max(1). This cardinality mandates the instantiation of the ElementCapabilities association for the referenced instance of Capabilities. ElementCapabilities describes the existence requirements and context for the referenced instance of ManagedElement. Specifically, the ManagedElement MUST exist and provides the context for the Capabilities.")
    ]
class CIM_ElementCapabilities {
    [Key(true),
     Min(1),
     Max(1),
     Description("The managed element.")
    ]
    CIM_ManagedElement REF ManagedElement;

     [Key(true),
     Description("The Capabilities object associated with the element.")
    ]
    CIM_Capabilities REF Capabilities;

};

// CIM_ManagedSystemElement

    [Abstract(true),
     Version("2.8.0"),
     Description("CIM_ManagedSystemElement is the base class for the System Element hierarchy. Any distinguishable component of a System is a candidate for inclusion in this class. Examples of system components include: \n- software components such as application servers, databases, and applications \n- operating system components such as files, processes, and threads \n- device components such as disk drives, controllers, processors, and printers \n- physical components such as chips and cards.")
    ]
class CIM_ManagedSystemElement : CIM_ManagedElement {
    [Description("A datetime value indicating when the object was installed. A lack of a value does not indicate that the object is not installed."),
     MappingStrings{"MIF.DMTF|ComponentID|001.5"}
    ]
    datetime InstallDate;

     [Description("The Name property defines the label by which the object is known. When subclassed, the Name property can be overridden to be a Key property."),
     MaxLen(1024)
    ]
    string Name;

     [Description("Indicates the current status(es) of the element. Various health and operational statuses are defined. Many of the enumeration\'s values are self- explanatory. However, a few are not and are described in more detail. \n\"Stressed\" indicates that the element is functioning, but needs attention. Examples of \"Stressed\" states are overload, overheated, etc. \n\"Predictive Failure\" indicates that an element is functioning nominally but predicting a failure in the near future. \n\"In Service\" describes an element being configured, maintained, cleaned, or otherwise administered. \n\"No Contact\" indicates that the monitoring system has knowledge of this element, but has never been able to establish communications with it. \n\"Lost Communication\" indicates that the ManagedSystem Element is known to exist and has been contacted successfully in the past, but is currently unreachable. \n\"Stopped\" and \"Aborted\" are similar, although the former implies a clean and orderly stop, while the latter implies an abrupt stop where the element\'s state and configuration may need to be updated. \n\"Dormant\" indicates that the element is inactive or quiesced. \n\"Supporting Entity in Error\" describes that this element may be \"OK\" but that another element, on which it is dependent, is in error. An example is a network service or endpoint that cannot function due to lower layer networking problems. \n\"Completed\" indicates the element has completed its operation. This value should be combined with either OK, Error, or Degraded so that a client can till if the complete operation passed (Completed with OK), and failure (Completed with Error). Completed with Degraded would imply the operation finished, but did not complete OK or report an error. \n\"Power Mode\" indicates the element has additional power model information contained in the Associated PowerManagementService association. \nOperationalStatus replaces the Status property on ManagedSystemElement to provide a consistent approach to enumerations, to address implementation needs for an array property, and to provide a migration path from today\'s environment to the future. This change was not made earlier since it required the DEPRECATED qualifier. Due to the widespread use of the existing Status property in management applications, it is strongly RECOMMENDED that providers/instrumentation provide BOTH the Status and OperationalStatus properties. Further, the first value of OperationalStatus SHOULD contain the primary status for the element. When instrumented, Status (since it is single-valued) SHOULD also provide the primary status of the element."),
     ValueMap{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "..", "0x8000.."},
     Values{"Unknown", "Other", "OK", "Degraded", "Stressed", "Predictive Failure", "Error", "Non-Recoverable Error", "Starting", "Stopping", "Stopped", "In Service", "No Contact", "Lost Communication", "Aborted", "Dormant", "Supporting Entity in Error", "Completed", "Power Mode", "DMTF Reserved", "Vendor Reserved"},
     ArrayType("Indexed"),
     ModelCorrespondence{"CIM_ManagedSystemElement.StatusDescriptions"}
    ]
    uint16 OperationalStatus[];

     [Description("Strings describing the various OperationalStatus array values. For example, if \"Stopping\" is the value assigned to OperationalStatus, then this property may contain an explanation as to why an object is being stopped. Note that entries in this array are correlated with those at the same array index in OperationalStatus."),
     ArrayType("Indexed"),
     ModelCorrespondence{"CIM_ManagedSystemElement.OperationalStatus"}
    ]
    string StatusDescriptions[];

     [Deprecated{"CIM_ManagedSystemElement.OperationalStatus"},
     Description("A string indicating the current status of the object. Various operational and non-operational statuses are defined. This property is deprecated in lieu of OperationalStatus, which includes the same semantics in its enumeration. This change is made for 3 reasons: 1) Status is more correctly defined as an array. This overcomes the limitation of describing status via a single value, when it is really a multi-valued property (for example, an element may be OK AND Stopped. 2) A MaxLen of 10 is too restrictive and leads to unclear enumerated values. And, 3) The change to a uint16 data type was discussed when CIM V2.0 was defined. However, existing V1.0 implementations used the string property and did not want to modify their code. Therefore, Status was grandfathered into the Schema. Use of the Deprecated qualifier allows the maintenance of the existing property, but also permits an improved definition using OperationalStatus."),
     ValueMap{"OK", "Error", "Degraded", "Unknown", "Pred Fail", "Starting", "Stopping", "Service", "Stressed", "NonRecover", "No Contact", "Lost Comm", "Stopped"},
     MaxLen(10)
    ]
    string Status;

};

// CIM_LogicalElement

    [Abstract(true),
     Version("2.6.0"),
     Description("CIM_LogicalElement is a base class for all the components of a System that represent abstract system components, such as Files, Processes, or LogicalDevices.")
    ]
class CIM_LogicalElement : CIM_ManagedSystemElement {
};

// CIM_EnabledLogicalElement

    [Abstract(true),
     Version("2.8.0"),
     Description("This class extends LogicalElement to abstract the concept of an element that is enabled and disabled, such as a LogicalDevice or a ServiceAccessPoint.")
    ]
class CIM_EnabledLogicalElement : CIM_LogicalElement {
    [Description("EnabledState is an integer enumeration that indicates the enabled/disabled states of an element. It can also indicate the transitions between these requested states. For example, shutting down (value = 4) and starting (value=10) are transient states between enabled and disabled. The following text briefly summarizes the various enabled/disabled states: \nEnabled (2) indicates that the element is/could be executing commands, will process any queued commands, and queues new requests. \nDisabled (3) indicates that the element will not execute commands and will drop any new requests. \nShutting Down (4) indicates that the element is in the process of going to a Disabled state. \nNot Applicable (5) indicates the element doesn\'t support being enabled/disabled. \nEnabled but Offline (6) indicates that the element may be completing commands, and will drop any new requests. \nTest (7) indicates that the element is in a test state. \nDeferred (8) indicates that the element may be completing commands, but will queue any new requests. \nQuiesce (9) indicates that the element is enabled but in a restricted mode. The element\'s behavior is similar to the Enabled state, but it only processes a restricted set of commands. All other requests are queued. \nStarting (10) indicates that the element is in the process of going to an Enabled state. New requests are queued."),
     ValueMap{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11..32767", "32768..65535"},
     Values{"Unknown", "Other", "Enabled", "Disabled", "Shutting Down", "Not Applicable", "Enabled but Offline", "In Test", "Deferred", "Quiesce", "Starting", "DMTF Reserved", "Vendor Reserved"},
     ModelCorrespondence{"CIM_EnabledLogicalElement.OtherEnabledState"}
    ]
    uint16 EnabledState = 5;

     [Description("A string describing the element\'s enabled/disabled state when the EnabledState property is set to 1 (\"Other\"). This property MUST be set to NULL when EnabledState is any value other than 1."),
     ModelCorrespondence{"CIM_EnabledLogicalElement.EnabledState"}
    ]
    string OtherEnabledState;

     [Description("RequestedState is an integer enumeration indicating the last requested or desired state for the element. The actual state of the element is represented by EnabledState. This property is provided to compare the last requested and current enabled/disabled states. Note that when EnabledState is set to 5 (\"Not Applicable\"), then this property has no meaning. By default, the element\'s RequestedState is 5 (\"No Change\"). Refer to the EnabledState\'s property Description for explanations of the values in the RequestedState enumeration. \n\nIt should be noted that there are two new values in RequestedState that build on the statuses of EnabledState. These are \"Reboot\" (10) and \"Reset\" (11). The former, Reboot, refers to doing a \"Shut Down\" and then moving to an \"Enabled\" state. The latter, Reset, indicates that the element is first \"Disabled\" and then \"Enabled\". The distinction between requesting \"Shut Down\" and \"Disabled\" should also be noted. The former, Shut Down, requests an orderly transition to the Disabled state, and MAY involve removing power, to completely erase any existing state. The latter, the Disabled state, requests an immediate disabling of the element, such that it will not execute or accept any commands or processing requests. \n\nThis property is set as the result of a method invocation (such as Start or StopService on CIM_Service), or may be overridden and defined as WRITEable in a subclass. The method approach is considered superior to a WRITEable property, since it allows an explicit invocation of the operation and the return of a result code."),
     ValueMap{"2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "..", "32768..65535"},
     Values{"Enabled", "Disabled", "Shut Down", "No Change", "Offline", "Test", "Deferred", "Quiesce", "Reboot", "Reset", "DMTF Reserved", "Vendor Reserved"},
     ModelCorrespondence{"CIM_EnabledLogicalElement.EnabledState"}
    ]
    uint16 RequestedState = 5;

     [Write(true),
     Description("An enumerated value indicating an administrator\'s default/startup configuration for an element\'s Enabled State. By default, the element is \"Enabled\" (value=2)."),
     ValueMap{"2", "3", "5", "6", "7", "8..32767", "32768..65535"},
     Values{"Enabled", "Disabled", "Not Applicable", "Enabled but Offline", "No Default", "DMTF Reserved", "Vendor Reserved"}
    ]
    uint16 EnabledDefault = 2;

     [Description("The date/time when the element\'s EnabledState last changed. If the state of the element has not changed and this property is populated, then it MUST be set to a 0 interval value. If a state change was requested, but rejected or not yet processed, the property MUST NOT be updated.")
    ]
    datetime TimeOfLastStateChange;

    [Description("Requests that the element\'s state be changed to the value specified in the RequestedState parameter. When the requested state change takes place, the element\'s EnabledState and RequestedState will be the same. Invoking the RequestStateChange method multiple times could result in earlier requests being overwritten/lost. \nIf 0 is returned, then the task completed successfully and the use of ConcreteJob was not required. If 4096 (0x1000) is returned, then the task will take some time to complete, ConcreteJob will be created, and its reference returned in the output parameter Job. Any other return code indicates an error condition."),
     ValueMap{"0", "1", "2", "3", "4", "5", "6", "..", "4096", "4097", "4098", "4099", "4100..32767", "32768..65535"},
     Values{"Completed with No Error", "Not Supported", "Unknown/Unspecified Error", "Can NOT complete within Timeout Period", "Failed", "Invalid Parameter", "In Use", "DMTF Reserved", "Method Parameters Checked - Job Started", "Invalid State Transition", "Use of Timeout Parameter Not Supported", "Busy", "Method Reserved", "Vendor Specific"},
     ModelCorrespondence{"CIM_EnabledLogicalElement.RequestedState"}
    ]
    uint32 RequestStateChange([IN(true), Description("The state requested for the element. This information will be placed into the instance\'s RequestedState property if the RequestStateChange method\'s return code is 0, 3, or 4096 (0x1000) - \'Completed with No Error\', \'Timeout\', or \'Job Started\' respectively. Refer to the description of the EnabledState and RequestedState properties for the detailed meanings of the RequestedState values."), ValueMap{"2", "3", "4", "6", "7", "8", "9", "10", "11", "..", "32768..65535"}, Values{"Enabled", "Disabled", "Shut Down", "Offline", "Test", "Defer", "Quiesce", "Reboot", "Reset", "DMTF Reserved", "Vendor Reserved"}, ModelCorrespondence{"CIM_EnabledLogicalElement.RequestedState"}] uint16 RequestedState, [IN(false), OUT(true), Description("Reference to the job (may be null if task completed).")] CIM_ConcreteJob REF Job, [IN(true), Description("A timeout period that specifies the maximum amount of time that the client expects the transition to the new state to take. The interval format MUST be used to specify the TimeoutPeriod. A value of 0 or a null parameter indicates that the client has no time requirements for the transition. \nIf this property does not contain 0 or null and the implementation doesn\'t support this parameter. A return code of \'Use Of Timeout Parameter Not Supported\' MUST be returned.")] datetime TimeoutPeriod);
};

// CIM_System

    [Abstract(true),
     Version("2.7.0"),
     Description("CIM_System represents an entity made up of component parts (defined by the SystemComponent relationship), that operates as a \'functional whole\'. Systems are top level objects in the CIM hierarchy, requiring no scoping or weak relationships in order to exist and have context. It should be reasonable to uniquely name and manage a System at an enterprise level. For example, a ComputerSystem is a kind of System that can be uniquely named and independently managed in an enterprise. However, this is not true for the power supply (or the power supply sub-\'system\') within the computer. \n\nAlthough a System may be viewed as a Collection, this is not the correct model. A Collection is simply a \'bag\' that \'holds\' its members. A System is a higher level abstraction, built out of its individual components. It is more than a sum of its parts. Note that System is a subclass of EnabledLogicalElement which allows the entire abstraction to be functionally enabled/disabled - at a higher level than enabling/disabling its component parts.")
    ]
class CIM_System : CIM_EnabledLogicalElement {
    [Key(true),
     Description("CreationClassName indicates the name of the class or the subclass used in the creation of an instance. When used with the other key properties of this class, this property allows all instances of this class and its subclasses to be uniquely identified."),
     MaxLen(256)
    ]
    string CreationClassName;

     [Key(true),
     Override("Name"),
     Description("The inherited Name serves as key of a System instance in an enterprise environment."),
     MaxLen(256)
    ]
    string Name;

     [Description("The System object and its derivatives are Top Level Objects of CIM. They provide the scope for numerous components. Having unique System keys is required. A heuristic can be defined in individual System subclasses to attempt to always generate the same System Name Key. The NameFormat property identifies how the System name was generated, using the subclass\' heuristic."),
     MaxLen(64)
    ]
    string NameFormat;

     [Write(true),
     Description("The name of the primary system owner. The system owner is the primary user of the system."),
     MaxLen(64),
     MappingStrings{"MIF.DMTF|General Information|001.3"}
    ]
    string PrimaryOwnerName;

     [Write(true),
     Description("A string that provides information on how the primary system owner can be reached (e.g. phone number, email address, ...)."),
     MaxLen(256),
     MappingStrings{"MIF.DMTF|General Information|001.4"}
    ]
    string PrimaryOwnerContact;

     [Write(true),
     Description("An array (bag) of strings that specify the administrator -defined roles this System plays in the managed environment. Examples might be \'Building 8 print server\' or \'Boise user directories\'. A single system may perform multiple roles. \nNote that instrumentation\'s view of a System\'s \'roles\' is defined by instantiating a specific subclass of System and/ or by properties in a subclass. For example, a ComputerSystem\'s purpose is defined using the Dedicated and OtherDedicatedDescription properties.")
    ]
    string Roles[];

};

// CIM_IdentificationOfManagedSystem

    [Association(true),
     Version("2.6.0"),
     Description("IdentificationOfManagedSystem is an association that links the SystemIdentification object to the CIM_System(s) that are being identified and represented in the Namespace.")
    ]
class CIM_IdentificationOfManagedSystem : CIM_Dependency {
    [Override("Antecedent"),
     Max(1),
     Description("The System which is identified."),
     Key(true)
    ]
    CIM_System REF Antecedent;

     [Override("Dependent"),
     Max(1),
     Description("The SystemIdentification information."),
     Key(true)
    ]
    CIM_SystemIdentification REF Dependent;

};

// CIM_SoftwareIdentity

    [Version("2.8.0"),
     Description("SoftwareIdentity represents software, viewed as an asset and/or individually identifiable entity (similar to Physical Element). It does NOT indicate whether the software is installed, executing, etc. (The latter is the role of the SoftwareFeature/ SoftwareElement classes and the Application Model.) Since software may be acquired, SoftwareIdentity can be associated with a Product using the ProductSoftwareComponent relationship. \nNote that the Application Model manages the deployment and installation of software via the classes, SoftwareFeatures and SoftwareElements. The deployment/installation concepts are related to the asset/identity one. In fact, a SoftwareIdentity may correspond to a Product, or to one or more SoftwareFeatures or SoftwareElements - depending on the granularity of these classes and the deployment model. The correspondence of Software Identity to Product, SoftwareFeature or SoftwareElement is indicated using the ConcreteIdentity association. Note that there may not be sufficient detail or instrumentation to instantiate ConcreteIdentity. And, if the association is instantiated, some duplication of information may result. For example, the Vendor described in the instances of Product and SoftwareIdentity MAY be the same. However, this is not necessarily true, and it is why vendor and similar information are duplicated in this class. \nNote that ConcreteIdentity can also be used to describe the relationship of the software to any LogicalFiles that result from installing it. As above, there may not be sufficient detail or instrumentation to instantiate this association.")
    ]
class CIM_SoftwareIdentity : CIM_LogicalElement {
    [Key(true),
     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 business 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\'.")
    ]
    string InstanceID;

     [Description("The major number component of the software\'s version information - for example, \'12\' from version 12.1(3)T. This property is defined as a numeric value to allow the determination of \'newer\' vs. \'older\' releases. A \'newer\' major release is indicated by a larger numeric value.")
    ]
    uint16 MajorVersion;

     [Description("The minor number component of the software\'s version information - for example, \'1\' from version 12.1(3)T. This property is defined as a numeric value to allow the determination of \'newer\' vs. \'older\' releases. A \'newer\' minor release is indicated by a larger numeric value.")
    ]
    uint16 MinorVersion;

     [Description("The revision or maintenance release component of the software\'s version information - for example, \'3\' from version 12.1(3)T. This property is defined as a numeric value to allow the determination of \'newer\' vs. \'older\' releases. A \'newer\' revision is indicated by a larger numeric value.")
    ]
    uint16 RevisionNumber;

     [Description("The build number of the software.")
    ]
    uint16 BuildNumber;

     [Description("A string representing the complete software version information - for example, \'12.1(3)T\'. This string and the numeric major/minor/revision/build properties are complementary. Since vastly different representations and semantics exist for versions, it is not assumed that one representation is sufficient to permit a client to perform computations (i.e., the values are numeric) and a user to recognize the software\'s version (i.e., the values are understandable and readable). Hence, both numeric and string representations of version are provided.")
    ]
    string VersionString;

     [Description("Specifies the target operating systems of the software. Due to the extreme variability in operating systems, this property is defined as a string array.")
    ]
    string TargetOperatingSystems[];

     [Description("Manufacturer of this software.")
    ]
    string Manufacturer;

     [Description("The language editions supported by the software. The language codes defined in ISO 639 should be used.")
    ]
    string Languages[];

     [Description("An array of enumerated integers that classify this software. For example, the software MAY be instrumentation (value=5) or firmware and diagnostic software (10 and 7). The use of value 6, Firmware/BIOS, is being deprecated. Instead, either the value 10 (Firmware) and/or 11 (BIOS/FCode) SHOULD be used."),
     ValueMap{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "..", "0x8000..0xFFFF"},
     Values{"Unknown", "Other", "Driver", "Configuration Software", "Application Software", "Instrumentation", "Firmware/BIOS", "Diagnostic Software", "Operating System", "Middleware", "Firmware", "BIOS/FCode", "DMTF Reserved", "Vendor Reserved"},
     ArrayType("Indexed"),
     ModelCorrespondence{"CIM_SoftwareIdentity.ClassificationDescriptions"}
    ]
    uint16 Classifications[];

     [Description("An array of free-form strings providing more detailed explanations for any of the entries in the Classifications array. Note that each entry is related to one in the Classifications array located at the same index."),
     ArrayType("Indexed"),
     ModelCorrespondence{"CIM_SoftwareIdentity.Classifications"}
    ]
    string ClassificationDescriptions[];

     [Description("A manufacturer-allocated number used to identify the software.")
    ]
    string SerialNumber;

};

// CIM_ElementSoftwareIdentity

    [Association(true),
     Version("2.8.0"),
     Description("ElementSoftwareIdentity allows a Managed Element to report its software related asset information (firmware, drivers, configuration software, and etc.)")
    ]
class CIM_ElementSoftwareIdentity : CIM_Dependency {
    [Override("Antecedent"),
     Description("A LogicalElement\'s Software Asset."),
     Key(true)
    ]
    CIM_SoftwareIdentity REF Antecedent;

     [Override("Dependent"),
     Description("The ManagedElement that requires or uses the software."),
     Key(true)
    ]
    CIM_ManagedElement REF Dependent;

     [Description("Indicates the element\'s ability to upgrade this software asset. \n\'Resides off element\'(2), indicates the persistence of the software is outside of the element. Typically for a element this software is part of the OperatingSystem is typically upgradeable. \n\'Owner Upgradeable\' (3), indicates the persistence of the software is on the element and is upgradeable by the owner. \n\'FactoryUpgradeable\' (4),indicates the persistence of the software is on the element and is upgradeable by the manufacturer. \n\'Not Upgradeable\' (5), indicates the presistence of the software is on the element and is not upgradeable. (i.e. burned into a non replaceable ROM chip."),
     ValueMap{"0", "1", "2", "3", "4", "5", "..", "0x8000..0xFFFF"},
     Values{"Unknown", "Other", "Resides off device", "Owner Upgradeable", "Factory Upgradeable", "Not Upgradeable", "DMTF Reserved", "Vendor Reserved"},
     ModelCorrespondence{"CIM_ElementSoftwareIdentity.OtherUpgradeCondition"}
    ]
    uint16 UpgradeCondition;

     [Description("Describes the upgrade condition, when UpgradeCondition is set to 1 (\"Other\")."),
     ModelCorrespondence{"CIM_ElementSoftwareIdentity.UpgradeCondition"}
    ]
    string OtherUpgradeCondition;

};

// CIM_HostedDependency

    [Association(true),
     Version("2.8.0"),
     Description("HostedDependency defines a ManagedElement in the context of another ManagedElement in which it resides.")
    ]
class CIM_HostedDependency : CIM_Dependency {
    [Override("Antecedent"),
     Max(1),
     Description("The scoping ManagedElement."),
     Key(true)
    ]
    CIM_ManagedElement REF Antecedent;

     [Override("Dependent"),
     Description("The hosted ManagedElement."),
     Key(true)
    ]
    CIM_ManagedElement REF Dependent;

};

// CIM_Service

    [Abstract(true),
     Version("2.7.0"),
     Description("A CIM_Service is a Logical Element that contains the information necessary to represent and manage the functionality provided by a Device and/or SoftwareFeature. A Service is a general-purpose object to configure and manage the implementation of functionality. It is not the functionality itself.")
    ]
class CIM_Service : CIM_EnabledLogicalElement {
    [Key(true),
     Propagated("CIM_System.CreationClassName"),
     Description("The scoping System\'s CreationClassName."),
     MaxLen(256)
    ]
    string SystemCreationClassName;

     [Key(true),
     Propagated("CIM_System.Name"),
     Description("The scoping System\'s Name."),
     MaxLen(256)
    ]
    string SystemName;

     [Key(true),
     Description("CreationClassName indicates the name of the class or the subclass used in the creation of an instance. When used with the other key properties of this class, this property allows all instances of this class and its subclasses to be uniquely identified."),
     MaxLen(256)
    ]
    string CreationClassName;

     [Key(true),
     Override("Name"),
     Description("The Name property uniquely identifies the Service and provides an indication of the functionality that is managed. This functionality is described in more detail in the object\'s Description property."),
     MaxLen(256)
    ]
    string Name;

     [Write(true),
     Description("The name of the primary owner for the service, if one is defined. The primary owner is the initial support contact for the Service."),
     MaxLen(64),
     MappingStrings{"MIF.DMTF|General Information|001.3"}
    ]
    string PrimaryOwnerName;

     [Write(true),
     Description("A string that provides information on how the primary owner of the Service can be reached (e.g. phone number, email address, ...)."),
     MaxLen(256),
     MappingStrings{"MIF.DMTF|General Information|001.4"}
    ]
    string PrimaryOwnerContact;

     [Deprecated{"CIM_Service.EnabledDefault"},
     Description("StartMode is a string value indicating whether the Service is automatically started by a System, Operating System, etc. or only started upon request. This property is deprecated in lieu of the EnabledDefault property inherited from EnabledLogicalElement, which addresses the same semantics. The change to a uint16 data type was discussed when CIM V2.0 was defined. However, existing V1.0 implementations used the string property and did not want to modify their code. Therefore, StartMode was grandfathered into the Schema. Use of the Deprecated qualifier allows the maintenance of the existing property, but also permits an improved, clarified definition using EnabledDefault."),
     ValueMap{"Automatic", "Manual"},
     MaxLen(10)
    ]
    string StartMode;

     [Description("Started is a boolean indicating whether the Service has been started (TRUE), or stopped (FALSE).")
    ]
    boolean Started;

    [Description("The StartService method places the Service in the started state. Note that this method\'s function overlaps with the RequestedState property. RequestedState was added to the model to maintain a record (i.e., a persisted value) of the last state request. Invoking the StartService method should set the RequestedState property appropriately. The method returns an integer value of 0 if the Service was successfully started, 1 if the request is not supported and any other number to indicate an error. In a subclass, the set of possible return codes could be specified, using a ValueMap qualifier on the method. The strings to which the ValueMap contents are \'translated\' may also be specified in the subclass as a Values array qualifier. \n\nNote that this method overlaps in semantics with the RequestStateChange method inherited from EnabledLogicalElement. This method is maintained since it has been widely implemented, and its simple \'start\' semantics are convenient to use.")
    ]
    uint32 StartService();
     [Description("The StopService method places the Service in the stopped state. Note that this method\'s function overlaps with the RequestedState property. RequestedState was added to the model to maintain a record (i.e., a persisted value) of the last state request. Invoking the StopService method should set the RequestedState property appropriately. The method returns an integer value of 0 if the Service was successfully stopped, 1 if the request is not supported and any other number to indicate an error. In a subclass, the set of possible return codes could be specified, using a ValueMap qualifier on the method. The strings to which the ValueMap contents are \'translated\' may also be specified in the subclass as a Values array qualifier. \n\nNote that this method overlaps in semantics with the RequestStateChange method inherited from EnabledLogicalElement. This method is maintained since it has been widely implemented, and its simple \'stop\' semantics are convenient to use.")
    ]
    uint32 StopService();
};

// CIM_WBEMService

    [Abstract(true),
     Version("2.6.0"),
     Description("An abstract class for WBEM services such as the ObjectManager (CIM Server), Providers, protocol adapters, or other pluggable components. A type of CIM_Service that provides associated capabilities and details about the communication capabilities, namespaces, etc. for a specific WBEMService.")
    ]
class CIM_WBEMService : CIM_Service {
};

// CIM_ObjectManagerAdapter

    [Version("2.8.0"),
     Description("A ObjectManagerAdapter is a Service of the CIM Object Manager. An adapter can be any service of the Object Manager that needs to be managed (e.g. started, stopped, monitored, ...). There MUST be an instance for each Adapter type.")
    ]
class CIM_ObjectManagerAdapter : CIM_WBEMService {
    [Description("A human-readable name that uniquely identifies the ObjectManager within a system."),
     Key(true),
     Override("Name"),
     MaxLen(256)
    ]
    string Name;

     [Override("ElementName"),
     Description("The ElmentName property is used as a name of the Object Manager Adapter for human interfaces. For example, \"ACME ObjectManager Adapter\".")
    ]
    string ElementName;

     [Required(true),
     Description("An implementation specific string that identifies the handle to the Object Manager Adapter.")
    ]
    string Handle;

     [Required(true),
     Description("AdapterType enumerates the kind of Object Manager Adapter. If \'Other\' is specified, the OtherAdapterTypeDescription property MUST be populated. \nOther - If the adapter does not fit into one of the other catagories in the list. If specified, the OtherAdapterTypeDescription property MUST be populated. \nClient - A client side adapter that responds to client operation requests, such as CIM-XML or CIM-SOAP. \nProvider - A provider adapter, such as DMI, SNMP, JSR48 or CMPI. \nIndication Handler - An Indication Handler is a service that delivers indications to a subscriber. Examples of possible Indication Handlers are CIM-XML, CIM-SOAP, SMPT (e-mail) or any other delivery mechanism. \nRepository - A repository is an adapter that can store/retrieve persistent data, such as CIM Qualifier Types, CIM Classes and CIM Instances. An Object Manager could use multiple repositiories at one time, for example one could be used for CIM Schema information only, while another is used for instance information. Repositories MAY be remote or local to the CIM Object Manager. Examples of repository implementations could be databases, LDAP or files."),
     ValueMap{"1", "2", "3", "4", "5"},
     Values{"Other", "Client", "Provider", "Indication Handler", "Repository"},
     ModelCorrespondence{"CIM_ObjectManagerAdapter.OtherAdapterTypeDescription"}
    ]
    uint16 AdapterType;

     [Description("The type(s) of ObjectManagerAdapter when \"Other\" is included in ObjectManagerAdapterType property."),
     ModelCorrespondence{"CIM_ObjectManagerAdapter.AdapterType"}
    ]
    string OtherAdapterTypeDescription;

};

// CIM_ServiceAccessPoint

    [Abstract(true),
     Version("2.6.0"),
     Description("CIM_ServiceAccessPoint represents the ability to utilize or invoke a Service. Access points represent that a Service is made available to other entities for use.")
    ]
class CIM_ServiceAccessPoint : CIM_EnabledLogicalElement {
    [Key(true),
     Propagated("CIM_System.CreationClassName"),
     Description("The scoping System\'s CreationClassName."),
     MaxLen(256)
    ]
    string SystemCreationClassName;

     [Key(true),
     Propagated("CIM_System.Name"),
     Description("The scoping System\'s Name."),
     MaxLen(256)
    ]
    string SystemName;

     [Key(true),
     Description("CreationClassName indicates the name of the class or the subclass used in the creation of an instance. When used with the other key properties of this class, this property allows all instances of this class and its subclasses to be uniquely identified."),
     MaxLen(256)
    ]
    string CreationClassName;

     [Key(true),
     Override("Name"),
     Description("The Name property uniquely identifies the ServiceAccessPoint and provides an indication of the functionality that is managed. This functionality is described in more detail in the object\'s Description property."),
     MaxLen(256)
    ]
    string Name;

};

// CIM_ObjectManagerCommunicationMechanism

    [Version("2.7.0"),
     Description("The class, ObjectManagerCommunicationMechanism, describes access to an ObjectManager. It describes a protocol and data encoding that can be used for communication. When all instances of this class are enumerated for an ObjectManager (using the CommMechanismForManager association), all possible protocol and encoding schemes will be known. Also, specific capabilities (for example, basic read or query) that are supported in the protocol/encoding are described - using the ProfilesSupported property.")
    ]
class CIM_ObjectManagerCommunicationMechanism : CIM_ServiceAccessPoint {
    [Required(true),
     Description("CommunicationMechanism describes an encoding and protocol which can be used to communicate with the ObjectManager. At this time, only one encoding and protocol are standardized by the DMTF - \"CIM-XML\". If this is supported by an ObjectManager, the specified string should be indicated. Other \'standard\' strings may be defined. In addition, a vendor specific encoding/protocol string may be used."),
     ValueMap{"0", "1", "2"},
     Values{"Unknown", "Other", "CIM-XML"},
     ModelCorrespondence{"CIM_ObjectManagerCommunicationMechanism.OtherCommunicationMechanismDescription"}
    ]
    uint16 CommunicationMechanism;

     [Description("A free-form string providing a description of the supported protocols when 1, \"Other\", is specified in the CommunicationMechanism."),
     ModelCorrespondence{"CIM_ObjectManagerCommunicationMechanism.CommunicationMechanism"}
    ]
    string OtherCommunicationMechanismDescription;

     [Required(true),
     Description("Enumerated array describing the types of operations supported by the ObjectManager, using this encoding/protocol. The enumeration is based on the Functional Profiles defined for conformance in the DMTF document, Specification for CIM Operations over HTTP."),
     ValueMap{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"},
     Values{"Unknown", "Other", "Basic Read", "Basic Write", "Schema Manipulation", "Instance Manipulation", "Association Traversal", "Query Execution", "Qualifier Declaration", "Indications"},
     ArrayType("Indexed"),
     ModelCorrespondence{"CIM_ObjectManagerCommunicationMechanism.FunctionalProfileDescriptions"}
    ]
    uint16 FunctionalProfilesSupported[];

     [Description("Free-form strings providing descriptions of the supported operations of the object manager. Entries in the array are correlated with those in the ProfilesSupported array. An entry in this Descriptions array MUST be provided when 1, \"Other\", is specified in the FunctionalProfilesSupported array."),
     ArrayType("Indexed"),
     ModelCorrespondence{"CIM_ObjectManagerCommunicationMechanism.FunctionalProfilesSupported"}
    ]
    string FunctionalProfileDescriptions[];

     [Required(true),
     Description("Boolean indicating whether the ObjectManager supports multiple operation requests (TRUE) or only simple requests (FALSE).")
    ]
    boolean MultipleOperationsSupported;

     [Required(true),
     Description("Enumerated array describing the types of authentication supported by the ObjectManager, using the encoding/protocol. specified in the property, CommunicationMechanism. The defined values represent the authentication defined in the DMTF document, Specification for CIM Operations over HTTP."),
     ValueMap{"0", "1", "2", "3", "4"},
     Values{"Unknown", "Other", "None", "Basic", "Digest"},
     ArrayType("Indexed"),
     ModelCorrespondence{"CIM_ObjectManagerCommunicationMechanism.AuthenticationMechanismDescriptions"}
    ]
    uint16 AuthenticationMechanismsSupported[];

     [Description("Free-form strings providing descriptions of the supported mechanisms. Entries in this array are correlated with those in the AuthenticationMechanismsSupported array. An entry in this Descriptions array MUST be provided when 1, \"Other\", is specified in AuthenticationMechanismsSupported."),
     ArrayType("Indexed"),
     ModelCorrespondence{"CIM_ObjectManagerCommunicationMechanism.AuthenticationMechanismsSupported"}
    ]
    string AuthenticationMechanismDescriptions[];

     [Required(true),
     Description("Provides the protocol version for this service access point. Version information MUST be in the form of M.N, where M is a numeric that describes the Major version and N is a numeric that describes the minor version.")
    ]
    string Version;

};

// CIM_CommMechanismForObjectManagerAdapter

    [Association(true),
     Version("2.8.0"),
     Description("CommMechanismForObjectManagerAdapter is an association between an ObjectManager\'s communication mechanism and a ObjectManagerAdapter that supports that mechanism to translate requests and responses for the Object Manager.")
    ]
class CIM_CommMechanismForObjectManagerAdapter : CIM_Dependency {
    [Override("Antecedent"),
     Description("The specific ObjectManagerAdapter whose communication mechanism with the CIM Object Manager is described."),
     Key(true)
    ]
    CIM_ObjectManagerAdapter REF Antecedent;

     [Override("Dependent"),
     Min(1),
     Description("The encoding/protocol/set of operations that may be used to communicate between the Object Manager and the referenced ProtocolAdapter."),
     Key(true)
    ]
    CIM_ObjectManagerCommunicationMechanism REF Dependent;

};

// CIM_ServiceAccessBySAP

    [Association(true),
     Version("2.6.0"),
     Description("CIM_ServiceAccessBySAP is an association that identifies the access points for a Service. For example, a printer may be accessed by Netware, MacIntosh or Windows ServiceAccess Points, potentially hosted on different Systems.")
    ]
class CIM_ServiceAccessBySAP : CIM_Dependency {
    [Override("Antecedent"),
     Description("The Service."),
     Key(true)
    ]
    CIM_Service REF Antecedent;

     [Override("Dependent"),
     Description("An Access Point for a Service. Access points are dependent in this relationship since they have no function without a corresponding Service."),
     Key(true)
    ]
    CIM_ServiceAccessPoint REF Dependent;

};

// CIM_ProvidesServiceToElement

    [Association(true),
     Deprecated{"CIM_ServiceAvailableToElement"},
     Version("2.7.0"),
     Description("The use of the CIM_ProvidesServiceToElement class has been deprecated. Instead, ServiceAvailableToElement conveys the semantics of \'use\', while the subclasses of ProvidesService ToElement (or the ConcreteDependency association) describe dependency relationships. CIM_ProvidesServiceToElement was meant to generalize the ServiceServiceDependency association. It tried to indicate that ManagedElements may use the functionality provided by one or more Services. An example is that a Processor and an enclosure (a PhysicalElement) may use AlertOnLAN Services to signal an incomplete or erroneous boot. In reality, AlertOnLAN is simply a HostedService on a computer system that is generally \'available for \'use\' and not a dependency of the processor or enclosure. To describe that use of the service may be restricted or have limited availability/ applicability, then the CIM_ServiceAvailableToElement association would be instantiated.")
    ]
class CIM_ProvidesServiceToElement : CIM_Dependency {
    [Deprecated{"CIM_ServiceAvailableToElement.ServiceProvided"},
     Override("Antecedent"),
     Description("The Service provided."),
     Key(true)
    ]
    CIM_Service REF Antecedent;

     [Deprecated{"CIM_ServiceAvailableToElement.UserOfService"},
     Override("Dependent"),
     Description("The ManagedElement dependent on the Service."),
     Key(true)
    ]
    CIM_ManagedElement REF Dependent;

};

// CIM_ReferencedProfile

    [Association(true),
     Version("2.8.0"),
     Description("A profile that is referenced by another RegisteredProfile.")
    ]
class CIM_ReferencedProfile : CIM_Dependency {
    [Override("Antecedent"),
     Description("The RegisteredProfile that is referenced by the Dependent Profile."),
     Key(true)
    ]
    CIM_RegisteredProfile REF Antecedent;

     [Override("Dependent"),
     Description("A RegisteredProfile that references other profiles."),
     Key(true)
    ]
    CIM_RegisteredProfile REF Dependent;

};

// CIM_ProtocolAdapter

    [Deprecated{"CIM_ObjectManagerAdapter"},
     Version("2.8.0"),
     Description("CIM_ProtocolAdapter is deprecated in lieu of CIM_ObjectManagerAdapter. Since the CIM_ProtocolAdapter class does not have to support the protocols and can be any type of adapter, it was decided to change the name to ObjectManagerAdapter to better reflect the true meaning of the class. A ProtocolAdapter is a Service of the CIM Object Manager. It is responsible for accepting incoming requests on a particular protocol, and translating and forwarding the request to the CIM Object Manager. It is also responsible for translating and sending the response from the CIM Object Manager.")
    ]
class CIM_ProtocolAdapter : CIM_WBEMService {
    [Deprecated{"CIM_ObjectManagerAdapter.Name"},
     Description("A human-readable name that uniquely identifies the Protocol Adapter within a system."),
     Key(true),
     Override("Name"),
     MaxLen(256)
    ]
    string Name;

     [Deprecated{"CIM_ObjectManagerAdapter.Handle"},
     Required(true),
     Description("An implementation specific string that identifies the handle to the ProtocolAdapter.")
    ]
    string Handle;

     [Deprecated{"CIM_ObjectManagerAdapter.AdapterType"},
     Required(true),
     Description("ProtocolAdapterType enumerates the kind of Protocol Adapter."),
     ValueMap{"1", "2", "3"},
     Values{"Other", "Client", "Provider"},
     ModelCorrespondence{"CIM_ProtocolAdapter.OtherProtocolAdapterType"}
    ]
    uint16 ProtocolAdapterType;

     [Deprecated{"CIM_ObjectManagerAdapter.OtherAdapterTypeDescription"},
     Description("The type(s) of ProtocolAdapter when \"Other\" is included in ProtocolAdapterType property."),
     ModelCorrespondence{"CIM_ProtocolAdapter.ProtocolAdapterType"}
    ]
    string OtherProtocolAdapterType;

};

// CIM_CommMechanismForAdapter

    [Association(true),
     Deprecated{"CIM_CommMechanismForObjectManagerAdapter"},
     Version("2.8.0"),
     Description("CommMechanismForAdapter is an association between an ObjectManager\'s communication mechanism and a ProtocolAdapter that supports that mechanism to translate requests and responses for the Object Manager.")
    ]
class CIM_CommMechanismForAdapter : CIM_Dependency {
    [Deprecated{"CIM_CommMechanismForObjectManagerAdapter.Antecedent"},
     Override("Antecedent"),
     Description("The specific ProtocolAdapter whose communication mechanism with the CIM Object Manager is described."),
     Key(true)
    ]
    CIM_ProtocolAdapter REF Antecedent;

     [Deprecated{"CIM_CommMechanismForObjectManagerAdapter.Dependent"},
     Override("Dependent"),
     Min(1),
     Description("The encoding/protocol/set of operations that may be used to communicate between the Object Manager and the referenced ProtocolAdapter."),
     Key(true)
    ]
    CIM_ObjectManagerCommunicationMechanism REF Dependent;

};

// CIM_Product

    [Version("2.7.0"),
     Description("CIM_Product is a concrete class that aggregates PhysicalElements, software (SoftwareIdentity and SoftwareFeatures), Services and/or other Products, and is acquired as a unit. Acquisition implies an agreement between supplier and consumer which may have implications to Product licensing, support and warranty. Non-commercial (e.g., in-house developed Products) should also be identified as an instance of CIM_Product. \nNote that software is handled a bit differently in the list of aggregated entities, above. This is because software can be viewed as a tangible asset (similar to PhysicalElements) AND/ OR as a set of features that make up a Product and are deployed. These are two different concepts, usually managed by different units in a business\' organization. When software \'features\' are described, the CIM_SoftwareFeature class from the Application Model is instantiated (where Features are Weak to/scoped by a Product). When a specific piece of software is acquired and perhaps warrantied as part of a Product, this is addressed by the class, SoftwareIdentity.")
    ]
class CIM_Product : CIM_ManagedElement {
    [Key(true),
     Description("Commonly used Product name."),
     MaxLen(256),
     MappingStrings{"MIF.DMTF|ComponentID|001.2"},
     ModelCorrespondence{"PRS_Product.ProductName"}
    ]
    string Name;

     [Key(true),
     Description("Product identification such as a serial number on software, a die number on a hardware chip, or (for non-commercial Products) a project number."),
     MaxLen(64),
     MappingStrings{"MIF.DMTF|ComponentID|001.4"}
    ]
    string IdentifyingNumber;

     [Key(true),
     Description("The name of the Product\'s supplier, or entity selling the Product (the manufacturer, reseller, OEM, etc.). Corresponds to the Vendor property in the Product object in the DMTF Solution Exchange Standard."),
     MaxLen(256),
     MappingStrings{"MIF.DMTF|ComponentID|001.1"},
     ModelCorrespondence{"PRS_Product.Vendor"}
    ]
    string Vendor;

     [Key(true),
     Description("Product version information."),
     MaxLen(64),
     MappingStrings{"MIF.DMTF|ComponentID|001.3"},
     ModelCorrespondence{"PRS_Product.Version"}
    ]
    string Version;

     [Description("Product SKU (stock keeping unit) information."),
     MaxLen(64)
    ]
    string SKUNumber;

     [Description("If this Product is under warranty, the start date of the warranty."),
     MappingStrings{"MIF.DMTF|FRU|002.9"},
     ModelCorrespondence{"CIM_Product.WarrantyDuration"}
    ]
    datetime WarrantyStartDate;

     [Description("If this Product is under warranty, the duration of the warranty in days."),
     Units("Days"),
     MappingStrings{"MIF.DMTF|FRU|002.10"},
     ModelCorrespondence{"CIM_Product.WarrantyStartDate"}
    ]
    uint32 WarrantyDuration;

};

// CIM_ProductSoftwareComponent

    [Association(true),
     Composition(true),
     Version("2.7.0"),
     Description("Indicates that the referenced SoftwareIdentity is acquired as part of a Product."),
     Aggregation(true)
    ]
class CIM_ProductSoftwareComponent : CIM_Component {
    [Override("GroupComponent"),
     Max(1),
     Description("The Product."),
     Key(true),
     Aggregate(true)
    ]
    CIM_Product REF GroupComponent;

     [Override("PartComponent"),
     Description("The software which is a part of the Product."),
     Key(true)
    ]
    CIM_SoftwareIdentity REF PartComponent;

};

// CIM_SystemComponent

    [Association(true),
     Version("2.7.0"),
     Description("CIM_SystemComponent is a specialization of the CIM_Component association that establishes \'part of\' relationships between a System and any ManagedSystemElements of which it is composed. \nThe use of this association is cautioned - versus the use of a subclass such as SystemDevice, or a peer association such as HostedService. This class is very broadly defined which can lead to erroneous use. For example, Access Points that are dependent on (and hosted on) a System are NOT Components of the System. The System is not made up of any AccessPoint \'parts\', which is why a Dependency association, HostedAccessPoint, was defined. Similarly, a PhysicalPackage is not a \'part\' of a System, since the physical element exists independently of any internal components, software, etc. In fact, again, a Dependency relationship is true - where a ComputerSystem is Dependent on its packaging, as described by the ComputerSystemPackage association."),
     Aggregation(true)
    ]
class CIM_SystemComponent : CIM_Component {
    [Override("GroupComponent"),
     Description("The parent System in the Association."),
     Key(true),
     Aggregate(true)
    ]
    CIM_System REF GroupComponent;

     [Override("PartComponent"),
     Description("The child element that is a component of a System."),
     Key(true)
    ]
    CIM_ManagedSystemElement REF PartComponent;

};

// CIM_ProductComponent

    [Association(true),
     Composition(true),
     Version("2.7.0"),
     Description("The CIM_ProductComponent association defines a containment and component relationship among Products. For example, a Product may come bundled with other Products. \nNote that this association duplicates ProductParentChild. The latter association is maintained for legacy reasons. This association, ProductComponent, is added for ease of query and modeling consistency. Using ProductComponent, an application can query for all Component relationships for a Product, versus querying the various Component relationships AND ProductParentChild."),
     Aggregation(true)
    ]
class CIM_ProductComponent : CIM_Component {
    [Override("GroupComponent"),
     Description("The Product which contains another Product as a component. The cardinality of this reference takes the default values (no minimum or maximum) since an instance of Product can describe either a general product type, or a specific item that is acquired. In the case of a specific item, a cardinality of Max(1) is indicated. However, when dealing with the general description/templating of a Product, then it may be a component of several others and a cardinality of Max(1) would be invalid."),
     ModelCorrespondence{"PRS_ProductComponent.Antecedent"},
     Key(true),
     Aggregate(true)
    ]
    CIM_Product REF GroupComponent;

     [Override("PartComponent"),
     Description("The contained Product."),
     ModelCorrespondence{"PRS_ProductComponent.Dependent"},
     Key(true)
    ]
    CIM_Product REF PartComponent;

};

// WBEMSolutions_ObjectManagerAdapter

    [Version("1.0.0"),
     Description("A ObjectManagerAdapter is a Service of the CIM Object Manager. An adapter can be any service of the Object Manager that needs to be managed (e.g. started, stopped, monitored, ...). There MUST be an instance for each Adapter type."),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider")
    ]
class WBEMSolutions_ObjectManagerAdapter : CIM_ObjectManagerAdapter {
    [Description("Class path for all the supporting classes that this protocol adapter needs.")
    ]
    string classPath[];

     [Description("This is the port number used by the protocol adapter.")
    ]
    uint32 PortNumber;

     [Description("The protocolType is the keyword used in Provider qualifiers to denote the provider protocol to be used when contacting the specific provider.")
    ]
    string ProtocolType;

};

// WBEMSolutions_HttpsCPASettingData

    [Version("1.0.0"),
     Description("This class contains the setting data for the Java PPA."),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider")
    ]
class WBEMSolutions_HttpsCPASettingData : CIM_SettingData {
    [Override("InstanceID"),
     Description("This property uniquely identifies this instance of setting data. The format of the property value is:\n \'WBEMSolutions:<ID>\'"),
     Key(true)
    ]
    string InstanceID;

     [Description("The user friendly name for this instance of SettingData."),
     Required(true),
     Override("ElementName")
    ]
    string ElementName;

     [Description("If True, then Client SSL Authentication is enabled.")
    ]
    boolean ClientAuthenticationEnabled = false;

     [Description("The encrypted password for the Server\'s Client AuthenticationKeystore file."),
     MaxLen(256)
    ]
    string ServerKeyStorePassword;

     [Description("The encrypted password for the Server\'s Client AuthenticationTrustStore file."),
     MaxLen(256)
    ]
    string ServerTrustStorePassword;

};

// WBEMSolutions_HttpsCPASettingDataSetting

    [Association(true),
     Version("1.0.0"),
     Description("The association between the Java PPA and its SettingData."),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider")
    ]
class WBEMSolutions_HttpsCPASettingDataSetting : CIM_ElementSettingData {
    [Override("ManagedElement"),
     Description("The HTTPS CPA ObjectManagerAdapter is the managed element."),
     Key(true)
    ]
    WBEMSolutions_ObjectManagerAdapter REF ManagedElement;

     [Override("SettingData"),
     Description("The settings for the ObjectManager Adapter."),
     Key(true)
    ]
    WBEMSolutions_HttpsCPASettingData REF SettingData;

};

// WBEMSolutions_JavaPPASettingData

    [Version("1.0.0"),
     Description("This class contains the setting data for the Java PPA."),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider")
    ]
class WBEMSolutions_JavaPPASettingData : CIM_SettingData {
    [Override("InstanceID"),
     Description("This property uniquely identifies this instance of setting data. The format of the property value is:\n \'WBEMSolutions:<ID>\'"),
     Key(true)
    ]
    string InstanceID;

     [Description("The user friendly name for this instance of SettingData."),
     Required(true),
     Override("ElementName")
    ]
    string ElementName;

     [Description("If True, then Java Provider Authentication is enabled.")
    ]
    boolean ProviderAuthenticationEnabled = false;

     [Description("The encrypted password for the Provider AuthenticationKeyStore file."),
     MaxLen(256)
    ]
    string ProviderAuthenticationPassword;

};

// WBEMSolutions_JavaPPASettingDataSetting

    [Association(true),
     Version("1.0.0"),
     Description("The association between the Java PPA and its SettingData."),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider")
    ]
class WBEMSolutions_JavaPPASettingDataSetting : CIM_ElementSettingData {
    [Override("ManagedElement"),
     Description("The Java PPA ObjectManagerAdapter is the managed element."),
     Key(true)
    ]
    WBEMSolutions_ObjectManagerAdapter REF ManagedElement;

     [Override("SettingData"),
     Description("The settings for the ObjectManager."),
     Key(true)
    ]
    WBEMSolutions_JavaPPASettingData REF SettingData;

};

// CIM_InstIndication

    [Indication(true),
     Abstract(true),
     Version("2.6.0"),
     Description("CIM_InstIndication is an abstract superclass describing changes to instances. Subclasses represent specific types of change notifications, such as instance creation, deletion and modification.")
    ]
class CIM_InstIndication : CIM_Indication {
    [Required(true),
     Description("A copy of the instance that changed to generate the Indication. SourceInstance contains the current values of the properties selected by the Indication Filter\'s Query. In the case of CIM_InstDeletion, the property values are copied before the instance is deleted."),
     EmbeddedObject(true)
    ]
    string SourceInstance;

};

// CIM_ClassIndication

    [Indication(true),
     Abstract(true),
     Version("2.6.0"),
     Description("CIM_ClassIndication is an abstract superclass describing changes in the definition of the schema. Subclasses represent specific types of change notifications, such as class creation, deletion and modification.")
    ]
class CIM_ClassIndication : CIM_Indication {
    [Required(true),
     Description("The current definition of the class that is created, changed or deleted in the schema. In the case of a CIM_ClassDeletion Indication, the definition for the class just prior to deletion should be placed in this property."),
     EmbeddedObject(true)
    ]
    string ClassDefinition;

};

// CIM_ProcessIndication

    [Indication(true),
     Abstract(true),
     Version("2.6.0"),
     Description("An abstract superclass for specialized Indication classes, addressing specific changes and alerts published by providers and instrumentation. Subclasses include AlertIndication (with properties such as PerceivedSeverity and ProbableCause), and SNMPTrapIndication (which recasts Traps as CIM indications).")
    ]
class CIM_ProcessIndication : CIM_Indication {
};

// Brocade_RegisteredProfile

    [Description("Brocade supports two registered profiles: Fabric and Switch.  The Server profile is natively supported in the CIMOM."),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider")
    ]
class Brocade_RegisteredProfile : CIM_RegisteredProfile {
    [Override("InstanceID"),
     Description("Opaque identifier to uniquely identify the RegisteredProfile."),
     Key(true)
    ]
    string InstanceID;

     [Override("RegisteredOrganization"),
     Description("The organization that defines this profile."),
     ModelCorrespondence{"CIM_RegisteredProfile.OtherRegisteredOrganization"},
     ValueMap{"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"},
     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"},
     Required(true)
    ]
    uint16 RegisteredOrganization = 11;

     [Override("RegisteredName"),
     MaxLen(256),
     Description("Defined by the SNIA: either Fabric or Switch."),
     Required(true)
    ]
    string RegisteredName;

     [Override("RegisteredVersion"),
     Description("The version of this profile.  The string representing the version MUST be in the form:\n   M + \".\" + N + \".\" + U \n\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 (for example, errata, patch, and so on, in numeric form) describing the profile\'s creation or last modification."),
     Required(true)
    ]
    string RegisteredVersion = "1.1.0";

     [Override("AdvertiseTypes"),
     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 the profile MIGHT be advertised using several mechanisms.\nNote: If this property is null or uninitialized, this is equivalent to specifying the value 2, \"Not Advertised\"."),
     ModelCorrespondence{"CIM_RegisteredProfile.AdvertiseTypeDescriptions"},
     ValueMap{"1", "2", "3"},
     Values{"Other", "Not Advertised", "SLP"},
     Required(true),
     ArrayType("Indexed")
    ]
    uint16 AdvertiseTypes[] = {3};

};

// Brocade_ElementConformsToProfile

    [Association(true),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider"),
     Description("This is an association between RegisteredProfile for Fabric and Brocade_Fabric, and an association between RegisteredProfile for Switch and Brocade_Switch.  Only supported switches are guaranteed to be associated with a switch profile.  This includes Brocade switches with firmware versions 2.6.x, 3.0.x, 4.0.x, 3.1.x, 3.2.x,4.1.x,4.2.x,4.4.x, 5.0.x and 7.3.x")
    ]
class Brocade_ElementConformsToProfile : CIM_ElementConformsToProfile {
    [Override("ConformantStandard"),
     Description("The registered profile to which the managed element conforms."),
     Key(true)
    ]
    Brocade_RegisteredProfile REF ConformantStandard;

     [Override("ManagedElement"),
     Description("The managed element that conforms to the registered profile."),
     Key(true)
    ]
    CIM_System REF ManagedElement;

};

// WBEMSolutions_RegisteredProfile

    [Version("1.0.0"),
     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."),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider")
    ]
class WBEMSolutions_RegisteredProfile : CIM_RegisteredProfile {
};

// CIM_ObjectManager

    [Version("2.8.0"),
     Description("A type of CIM_Service that defines the capabilities of the CIM Server in which this ObjectManager class resides. Details related to communicating with the ObjectManager, and the Manager\'s basic capabilities, are stored in instances of the associated CommunicationMechanism class available through the CommMechanismForManager association. It is assumed that Basic Read operations must be supported by all ObjectManager\'s in order to retrieve any additional detail.")
    ]
class CIM_ObjectManager : CIM_WBEMService {
    [Write(true),
     Description("The GatherStatisticalData property is used to control the gathering of statistical data made accessible through the CIM_CIMOMStatisticalData objects. If set to true, the data is gathered and can be accessed. If false, the CIM_CIMOMStatisticalData instance MAY exist but MUST show zero values for the counter properties.")
    ]
    boolean GatherStatisticalData = true;

     [Description("The Name property is used to uniquely identify a CIM Server. The CIM Server MUST ensure that this value is globally unique. In order to ensure uniqueness, this value SHOULD be constructed in the following manner. <Vendor ID>:<Unique ID> \n<Vendor ID> MUST include a copyrighted, trademarked or otherwise unique name that is owned by the business entity or a registered ID that is assigned to the business entity that is defining the Name. (This is similar to the <Schema Name>_<Class Name> structure of Schema class names.) The purpose of <Vendor ID> is to ensure that <ID> is truly unique across multiple vendor implementations. If such a name is not used, the defining entity MUST assure that the <ID> portion of the Instance ID is unique when compared with other instance providers. For DMTF defined instances, the <Vendor ID> is \'CIM\'. \n<Unique ID> MUST include a vendor specified unique identifier. \nNote: Name is semantically the same as InstanceID. In the next major version of the CIM Schema, Name will be renamed to InstanceID and become the only key of this class."),
     Key(true),
     Override("Name"),
     MaxLen(256)
    ]
    string Name;

     [Override("ElementName"),
     Description("The ElmentName property is used as a name of the CIM Server for human interfaces. For example, \"ACME CIM Server\"). This property is required to support the SLP discovery mechanism. In the next major release this property MAY include the required qualifier.")
    ]
    string ElementName;

     [Override("Description"),
     Description("The description property is used as a description of the CIM Server for human interfaces. For example, \" ACME CIM Server version 2.2\"). This property is required to support the SLP discovery mechanism. In the next major release this property MAY include the required qualifier.")
    ]
    string Description;

};

// WBEMSolutions_ObjectManager

    [Version("1.0.0"),
     Description("WBEM Solutions WBEM Server."),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider")
    ]
class WBEMSolutions_ObjectManager : CIM_ObjectManager {
    [Description("The Version of this WBEM Server. This will be in the same format as the Version qualifier (e.g. 1.0.0)")
    ]
    string Version;

     [Description("The Build information for the WBEM Server.")
    ]
    string Build;

     [Description("The Version of the WBEM API this WBEM Server is using. This will be in the same format as the Version qualifier (e.g. 1.0.0)")
    ]
    string APIVersion;

     [Description("The Vendor information for the WBEM API.")
    ]
    string APIVendor;

     [Description("The Build information for the WBEM API.")
    ]
    string APIBuild;

    [Description("This method forces the WBEM Server to process MOF files that have been placed in the MOF registration directories. The WBEM Server automatically processes these files on startup. This method is used during runtime.")
    ]
    sint8 registerMOF();
     [Description("This method will find the services that need to be registered with SLP and then will register those services with SLP")
    ]
    sint8 SLPRegistration();
};

// WBEMSolutions_ObjectManagerConformsToProfile

    [Association(true),
     Version("1.0.0"),
     Description("The ObjectManagerConformsToProfile 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."),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider")
    ]
class WBEMSolutions_ObjectManagerConformsToProfile : CIM_ElementConformsToProfile {
    [Override("ConformantStandard"),
     Min(1),
     Max(1),
     Description("The RegisteredProfile to which the ManagedElement conforms."),
     Key(true)
    ]
    WBEMSolutions_RegisteredProfile REF ConformantStandard;

     [Override("ManagedElement"),
     Min(1),
     Max(1),
     Description("The ManagedElement that conforms to the RegisteredProfile."),
     Key(true)
    ]
    WBEMSolutions_ObjectManager REF ManagedElement;

};

// CIM_StatisticalData

    [Abstract(true),
     Version("2.8.0"),
     Description("CIM_StatisticalData is a root class for any arbitrary collection of statistical data and/or metrics applicable to one or more ManagedElements. These statistics MUST represent the most recent observations and MUST NOT be provided if irrelevant or stale. Note that this class uses a simplified naming/identity algorithm as compared to CIM_StatisticalInformation.")
    ]
class CIM_StatisticalData : CIM_ManagedElement {
    [Key(true),
     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 business 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\'.")
    ]
    string InstanceID;

     [Required(true),
     Override("ElementName"),
     Description("The user friendly name for this instance of StatisticalData. In addition, the user friendly name can be used as a index property for a search of query. (Note: Name does not have to be unique within a namespace.)")
    ]
    string ElementName;

     [Description("The time, relative to managed element where the statistic was collected, when the first measurement was taken. If the statistic is reset, the StartStatisticTime is the time when the reset was performed.")
    ]
    datetime StartStatisticTime;

     [Description("The time the most recent measurement was taken, relative to the managed element where the statistic was collected.")
    ]
    datetime StatisticTime;

     [Description("Some statistics are sampled at consistent time intervals. This property provides the sample interval so that client applications can determine the minimum time that new statistics should be pulled. If the statistics are not sampled at consistent time intervals, this property must be set to a zero time interval.")
    ]
    datetime SampleInterval ;

    [Description("Method to reset one or more of the instance\'s statistics. The method takes one parameter as input - an array of strings indicating which statistics to reset. If all the statistics in the instance should be reset, the first element of the array MUST be set to \"All\" or \"ALL\". If one or more individual statistics should be reset, the corresponding property names are entered into the elements of the array. \nThe method returns 0 if successful, 1 if not supported, and any other value if an error occurred. A method is specified so that the StatisticalInformation\'s provider/ instrumentation, which calculates the statistics, can reset its internal processing, counters, etc. \nIn a subclass, the set of possible return codes could be specified, using a ValueMap qualifier on the method. The strings to which the ValueMap contents are \'translated\' may also be specified in the subclass as a Values array qualifier.")
    ]
    uint32 ResetSelectedStats([IN(true), Description("Array of strings indicating which statistics to reset.")] string SelectedStatistics[]);
};

// WBEMSolutions_WBEMAgentSoftware

    [Version("1.0.0"),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider"),
     Description("SoftwareIdentity represents software, viewed as an asset and/or individually identifiable entity (similar to Physical Element). It does NOT indicate whether the software is installed, executing, etc. (The latter is the role of the SoftwareFeature/ SoftwareElement classes and the Application Model.) Since software may be acquired, SoftwareIdentity can be associated with a Product using the ProductSoftwareComponent relationship. \nNote that the Application Model manages the deployment and installation of software via the classes, SoftwareFeatures and SoftwareElements. The deployment/installation concepts are related to the asset/identity one. In fact, a SoftwareIdentity may correspond to a Product, or to one or more SoftwareFeatures or SoftwareElements - depending on the granularity of these classes and the deployment model. The correspondence of Software Identity to Product, SoftwareFeature or SoftwareElement is indicated using the ConcreteIdentity association. Note that there may not be sufficient detail or instrumentation to instantiate ConcreteIdentity. And, if the association is instantiated, some duplication of information may result. For example, the Vendor described in the instances of Product and SoftwareIdentity MAY be the same. However, this is not necessarily true, and it is why vendor and similar information are duplicated in this class. \nNote that ConcreteIdentity can also be used to describe the relationship of the software to any LogicalFiles that result from installing it. As above, there may not be sufficient detail or instrumentation to instantiate this association.")
    ]
class WBEMSolutions_WBEMAgentSoftware : CIM_SoftwareIdentity {
};

// WBEMSolutions_ElementSoftwareIdentity

    [Association(true),
     Version("1.0.0"),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider"),
     Description("ElementSoftwareIdentity allows a Managed Element to report its software related asset information (firmware, drivers, configuration software, and etc.)")
    ]
class WBEMSolutions_ElementSoftwareIdentity : CIM_ElementSoftwareIdentity {
    [Description("A LogicalElement\'s Software Asset."),
     Override("Antecedent"),
     Key(true)
    ]
    WBEMSolutions_WBEMAgentSoftware REF Antecedent;

     [Description("The ManagedElement that requires or uses the software."),
     Override("Dependent"),
     Key(true)
    ]
    WBEMSolutions_RegisteredProfile REF Dependent;

};

// CIM_RegisteredSubProfile

    [Version("2.8.0"),
     Description("A RegisteredSubProfile subclasses RegisteredProfile to indicate that a scoping profile is required to provide context. The latter is specified by the mandatory association, SubProfileRequiresProfile.")
    ]
class CIM_RegisteredSubProfile : CIM_RegisteredProfile {
};

// WBEMSolutions_RegisteredSubProfile

    [Version("1.0.0"),
     Description("A RegisteredSubProfile subclasses RegisteredProfile to indicate that a scoping profile is required to provide context. The latter is specified by the mandatory association, SubProfileRequiresProfile."),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider")
    ]
class WBEMSolutions_RegisteredSubProfile : CIM_RegisteredSubProfile {
};

// WBEMSolutions_SubProfileSoftwareIdentity

    [Association(true),
     Version("1.0.0"),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider"),
     Description("ElementSoftwareIdentity allows a Managed Element to report its software related asset information (firmware, drivers, configuration software, and etc.)")
    ]
class WBEMSolutions_SubProfileSoftwareIdentity : CIM_ElementSoftwareIdentity {
    [Description("A LogicalElement\'s Software Asset."),
     Override("Antecedent"),
     Key(true)
    ]
    WBEMSolutions_WBEMAgentSoftware REF Antecedent;

     [Description("The ManagedElement that requires or uses the software."),
     Override("Dependent"),
     Key(true)
    ]
    WBEMSolutions_RegisteredSubProfile REF Dependent;

};

// Brocade_AgentSoftwareIdentity

    [Version("2.8.0"),
     Description("Brocade_AgentSoftwareIdentity represents the providers for  a profile/sub-profile"),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider")
    ]
class Brocade_AgentSoftwareIdentity : CIM_SoftwareIdentity {
    [Override("InstanceID"),
     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 business 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\'. InstanceID will be the same as Brocade_RegisteredProfile.InstanceID or Brocade_RegisteredSubProfile.InstanceID"),
     Key(true)
    ]
    string InstanceID;

     [Override("MajorVersion"),
     Description("The major number component of the software\'s version information - for example, \'12\' from version 12.1(3)T. This property is defined as a numeric value to allow the determination of \'newer\' vs. \'older\' releases. A \'newer\' major release is indicated by a larger numeric value.")
    ]
    uint16 MajorVersion;

     [Override("MinorVersion"),
     Description("The minor number component of the software\'s version information - for example, \'1\' from version 12.1(3)T. This property is defined as a numeric value to allow the determination of \'newer\' vs. \'older\' releases. A \'newer\' minor release is indicated by a larger numeric value.")
    ]
    uint16 MinorVersion;

     [Override("VersionString"),
     Description("A string representing the complete software version information - for example, \'12.1(3)T\'. This string and the numeric major/minor/revision/build properties are complementary. Since vastly different representations and semantics exist for versions, it is not assumed that one representation is sufficient to permit a client to perform computations (i.e., the values are numeric) and a user to recognize the software\'s version (i.e., the values are understandable and readable). Hence, both numeric and string representations of version are provided. VersionString will have the value same value as present in bofmsversion.txt file")
    ]
    string VersionString;

     [Override("Manufacturer"),
     Description("Manufacturer of this software.")
    ]
    string Manufacturer;

};

// Brocade_AgentSoftwareIdentityForElement

    [Association(true),
     Version("2.8.0"),
     Description("ElementSoftwareIdentity allows a Managed Element to report its software related asset information (firmware, drivers, configuration software, and etc.)"),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider")
    ]
class Brocade_AgentSoftwareIdentityForElement : CIM_ElementSoftwareIdentity {
    [Description("Brocade_AgentSoftwareIdentity instance corresponding to a profile/sub-profile."),
     Override("Antecedent"),
     Key(true)
    ]
    Brocade_AgentSoftwareIdentity REF Antecedent;

     [Description("Instance of Brocade_RegisteredProfile/Brocade_RegisteredSubProfile"),
     Override("Dependent"),
     Key(true)
    ]
    CIM_ManagedElement REF Dependent;

};

// CIM_HostedAccessPoint

    [Association(true),
     Version("2.8.0"),
     Description("CIM_HostedAccessPoint is an association between a Service AccessPoint and the System on which it is provided. The cardinality of this association is 1-to-many and is weak with respect to the System. Each System may host many ServiceAccessPoints. Heuristic: If the implementation of the ServiceAccessPoint is modeled, it must be implemented by a Device or SoftwareFeature that is part of the System hosting the ServiceAccessPoint.")
    ]
class CIM_HostedAccessPoint : CIM_HostedDependency {
    [Min(1),
     Max(1),
     Description("The hosting System."),
     Override("Antecedent"),
     Key(true)
    ]
    CIM_System REF Antecedent;

     [Weak(true),
     Description("The SAP(s) that are hosted on this System."),
     Override("Dependent"),
     Key(true)
    ]
    CIM_ServiceAccessPoint REF Dependent;

};

// CIM_NamespaceInManager

    [Association(true),
     Version("2.7.0"),
     Description("NamespaceInManager is an association describing the Namespaces hosted by a CIM ObjectManager."),
     Provider("internal:CIM_NamespaceInManager")
    ]
class CIM_NamespaceInManager : CIM_HostedDependency {
    [Min(1),
     Max(1),
     Description("The ObjectManager containing a Namespace."),
     Override("Antecedent"),
     Key(true)
    ]
    CIM_ObjectManager REF Antecedent;

     [Weak(true),
     Description("The Namespace in an ObjectManager."),
     Override("Dependent"),
     Key(true)
    ]
    CIM_Namespace REF Dependent;

};

// CIM_HostedService

    [Association(true),
     Version("2.8.0"),
     Description("CIM_HostedService is an association between a Service and the System on which the functionality resides. The cardinality of this association is 1-to-many. A System may host many Services. Services are weak with respect to their hosting System. Heuristic: A Service is hosted on the System where the LogicalDevices or SoftwareFeatures that implement the Service are located. The model does not represent Services hosted across multiple systems. This is modeled as an ApplicationSystem that acts as an aggregation point for Services, that are each located on a single host.")
    ]
class CIM_HostedService : CIM_HostedDependency {
    [Min(1),
     Max(1),
     Description("The hosting System."),
     Override("Antecedent"),
     Key(true)
    ]
    CIM_System REF Antecedent;

     [Weak(true),
     Description("The Service hosted on the System."),
     Override("Dependent"),
     Key(true)
    ]
    CIM_Service REF Dependent;

};

// WBEMSolutions_CIMXMLObjectManagerAdapter

    [Version("1.0.0"),
     Description("The WBEM Solutions CIM-XML Adapter."),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider")
    ]
class WBEMSolutions_CIMXMLObjectManagerAdapter : WBEMSolutions_ObjectManagerAdapter {
};

// CIM_CIMXMLCommunicationMechanism

    [Version("2.6.0"),
     Description("This class specializes ObjectManagerCommunicationMechanism, adding properties specific to the CIM-XML protocol (XML encoding and CIM Operations).")
    ]
class CIM_CIMXMLCommunicationMechanism : CIM_ObjectManagerCommunicationMechanism {
    [Override("CommunicationMechanism"),
     Required(true),
     Description("CommunicationMechanism describes an encoding and protocol which can be used to communicate with the ObjectManager. At this time, only one encoding and protocol are standardized by the DMTF - \"CIM-XML\". If this is supported by an ObjectManager, the specified string should be indicated. Other \'standard\' strings may be defined. In addition, a vendor specific encoding/protocol string may be used."),
     ValueMap{"0", "1", "2"},
     Values{"Unknown", "Other", "CIM-XML"},
     ModelCorrespondence{"CIM_ObjectManagerCommunicationMechanism.OtherCommunicationMechanismDescription"}
    ]
    uint16 CommunicationMechanism = 2;

     [Override("Version"),
     Description("Enumeration describing the CIM-XML protocol version supported by the ObjectManager."),
     ValueMap{"1.0", "1.1", "1.2"},
     Required(true)
    ]
    string Version;

     [Deprecated{"CIM_CIMXMLCommunicationMechanism.Version"},
     Required(true),
     Description("Enumeration describing the CIM-XML protocol version supported by the ObjectManager. It is deprecated in lieu of a more general, inherited property (Version)."),
     ValueMap{"0", "1"},
     Values{"Unknown", "1.0"}
    ]
    uint16 CIMXMLProtocolVersion;

     [Required(true),
     Description("Describes whether the CIM Server is strictly validating (validates the XML document against the DTD) or not (loosely validating).")
    ]
    boolean CIMValidated;

};

// WBEMSolutions_CIMXMLCommunicationMechanism

    [Version("1.0.0"),
     Description("The WBEM Solutions CIM-XML Adapter."),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider")
    ]
class WBEMSolutions_CIMXMLCommunicationMechanism : CIM_CIMXMLCommunicationMechanism {
};

// WBEMSolutions_CIMXMLCommMechanismForObjectManagerAdapter

    [Association(true),
     Version("1.0.0"),
     Description("CommMechanismForObjectManagerAdapter is an association between an ObjectManager\'s communication mechanism and a Object Manager Adapter that supports that mechanism to translate requests and responses for the Object Manager."),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider")
    ]
class WBEMSolutions_CIMXMLCommMechanismForObjectManagerAdapter : CIM_CommMechanismForObjectManagerAdapter {
    [Description("The specific Object Manager Adapter whose communication mechanism with the CIM Object Manager is described."),
     Override("Antecedent"),
     Key(true)
    ]
    WBEMSolutions_CIMXMLObjectManagerAdapter REF Antecedent;

     [Min(1),
     Description("The encoding/protocol/set of operations that may be used to communicate between the Object Manager and the referenced Object Manager Adapter."),
     Override("Dependent"),
     Key(true)
    ]
    WBEMSolutions_CIMXMLCommunicationMechanism REF Dependent;

};

// WBEMSolutions_CIMXMLSObjectManagerAdapter

    [Version("1.0.0"),
     Description("The WBEM Solutions CIM-XML Adapter using SSL."),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider")
    ]
class WBEMSolutions_CIMXMLSObjectManagerAdapter : WBEMSolutions_ObjectManagerAdapter {
};

// WBEMSolutions_CIMXMLSCommunicationMechanism

    [Version("1.0.0"),
     Description("The WBEM Solutions CIM-XML Adapter."),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider")
    ]
class WBEMSolutions_CIMXMLSCommunicationMechanism : CIM_CIMXMLCommunicationMechanism {
};

// WBEMSolutions_CIMXMLSCommMechanismForObjectManagerAdapter

    [Association(true),
     Version("1.0.0"),
     Description("CommMechanismForObjectManagerAdapter is an association between an ObjectManager\'s communication mechanism and a Object Manager Adapter that supports that mechanism to translate requests and responses for the Object Manager."),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider")
    ]
class WBEMSolutions_CIMXMLSCommMechanismForObjectManagerAdapter : CIM_CommMechanismForObjectManagerAdapter {
    [Description("The specific Object Manager Adapter whose communication mechanism with the CIM Object Manager is described."),
     Override("Antecedent"),
     Key(true)
    ]
    WBEMSolutions_CIMXMLSObjectManagerAdapter REF Antecedent;

     [Min(1),
     Description("The encoding/protocol/set of operations that may be used to communicate between the Object Manager and the referenced Object Manager Adapter."),
     Override("Dependent"),
     Key(true)
    ]
    WBEMSolutions_CIMXMLSCommunicationMechanism REF Dependent;

};

// CIM_CommMechanismForManager

    [Association(true),
     Version("2.6.0"),
     Description("CommMechanismForManager is an association between an ObjectManager and an ObjectManagerCommunicationMechanism class. The latter describes a possible encoding/protocol/ set of operations for accessing the referenced ObjectManager.")
    ]
class CIM_CommMechanismForManager : CIM_ServiceAccessBySAP {
    [Min(1),
     Max(1),
     Description("The specific ObjectManager whose communication mechanism is described."),
     Override("Antecedent"),
     Key(true)
    ]
    CIM_ObjectManager REF Antecedent;

     [Min(1),
     Description("The encoding/protocol/set of operations that may be used to communicate with the referenced ObjectManager."),
     Override("Dependent"),
     Key(true)
    ]
    CIM_ObjectManagerCommunicationMechanism REF Dependent;

};

// CIM_ServiceServiceDependency

    [Association(true),
     Version("2.7.0"),
     Description("CIM_ServiceServiceDependency is an association between a Service and another Service, indicating that the latter is required to be present, required to have completed, or must be absent for the former Service to provide its functionality. For example, Boot Services may be dependent upon underlying system initialization Services. In the case of the initialization Services, the Boot Service may be dependent on the init Services completing. \nExamining the ServiceServiceDependency class definition, note that its superclass ProvidesServiceToElement is deprecated. Unfortunately, ProvidesServiceToElement cannot be removed from the object hierarchy without a major Schema release. When/if this occurs, the ProvidesServiceToElement superclass will be removed, and ServiceServiceDependency will subclass from CIM_Dependency directly.")
    ]
class CIM_ServiceServiceDependency : CIM_ProvidesServiceToElement {
    [Description("The required Service."),
     Override("Antecedent"),
     Key(true)
    ]
    CIM_Service REF Antecedent;

     [Description("The Service that is dependent on an underlying Service."),
     Override("Dependent"),
     Key(true)
    ]
    CIM_Service REF Dependent;

     [Description("The nature of the Service to Service dependency. This property describes that the associated Service must have completed (value=2), must be started (3) or must not be started (4) in order for the Service to function."),
     ValueMap{"0", "1", "2", "3", "4"},
     Values{"Unknown", "Other", "Service Must Have Completed", "Service Must Be Started", "Service Must Not Be Started"}
    ]
    uint16 TypeOfDependency;

     [Description("This property describes that the Antecedent Service must be restarted after the Dependent operation is complete.")
    ]
    boolean RestartService;

};

// CIM_SubProfileRequiresProfile

    [Association(true),
     Version("2.8.0"),
     Description("A subprofile requires another RegisteredProfile for context. This association mandates the scoping relationship between a subprofile and its scoping profile.")
    ]
class CIM_SubProfileRequiresProfile : CIM_ReferencedProfile {
    [Min(1),
     Description("The RegisteredProfile that is referenced/required by the subprofile."),
     Override("Antecedent"),
     Key(true)
    ]
    CIM_RegisteredProfile REF Antecedent;

     [Description("A RegisteredSubProfile that requires a scoping profile, for context."),
     Override("Dependent"),
     Key(true)
    ]
    CIM_RegisteredSubProfile REF Dependent;

};

// Brocade_AgentProduct

    [Version("2.7.0"),
     Description("Brocade_AgentProduct represents the Brocade provider classes. "),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider")
    ]
class Brocade_AgentProduct : CIM_Product {
    [Override("Name"),
     Description("Commonly used Product name."),
     MaxLen(256),
     MappingStrings{"MIF.DMTF|ComponentID|001.2"},
     Key(true),
     ModelCorrespondence{"PRS_Product.ProductName"}
    ]
    string Name;

     [Override("IdentifyingNumber"),
     Description("Product identification such as a serial number on software, a die number on a hardware chip, or (for non-commercial Products) a project number."),
     MaxLen(64),
     MappingStrings{"MIF.DMTF|ComponentID|001.4"},
     Key(true)
    ]
    string IdentifyingNumber;

     [Override("Vendor"),
     Description("The name of the Product\'s supplier, or entity selling the Product (the manufacturer, reseller, OEM, etc.). Corresponds to the Vendor property in the Product object in the DMTF Solution Exchange Standard."),
     MaxLen(256),
     MappingStrings{"MIF.DMTF|ComponentID|001.1"},
     Key(true),
     ModelCorrespondence{"PRS_Product.Vendor"}
    ]
    string Vendor;

     [Override("Version"),
     Description("Product version information."),
     MaxLen(64),
     MappingStrings{"MIF.DMTF|ComponentID|001.3"},
     Key(true),
     ModelCorrespondence{"PRS_Product.Version"}
    ]
    string Version;

     [Override("Caption"),
     Description("The Caption property is a short textual description (one- line string) of the object."),
     MaxLen(64)
    ]
    string Caption;

     [Override("Description"),
     Description("The Description property provides a textual description of the object.")
    ]
    string Description;

     [Override("ElementName"),
     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 ManagedSystemElement\'s Name property 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 MAY be present in both the Name and ElementName properties.")
    ]
    string ElementName;

};

// Brocade_AgentSoftwareIdentityInAgentProduct

    [Association(true),
     Version("2.7.0"),
     Description("Indicates that the referenced SoftwareIdentity is acquired as part of a Product."),
     Composition(true),
     Aggregation(true),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider")
    ]
class Brocade_AgentSoftwareIdentityInAgentProduct : CIM_ProductSoftwareComponent {
    [Max(1),
     Description("Instance of Brocade_AgentProduct."),
     Override("GroupComponent"),
     Key(true),
     Aggregate(true)
    ]
    Brocade_AgentProduct REF GroupComponent;

     [Description("Instance of Brocade_AgentSoftwareIdentity corresponding to a profile/sub-profile"),
     Override("PartComponent"),
     Key(true)
    ]
    Brocade_AgentSoftwareIdentity REF PartComponent;

};

// WBEMSolutions_ProductSoftwareComponent

    [Association(true),
     Version("1.0.0"),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider"),
     Composition(true),
     Description("Indicates that the referenced SoftwareIdentity is acquired as part of a Product."),
     Aggregation(true)
    ]
class WBEMSolutions_ProductSoftwareComponent : CIM_ProductSoftwareComponent {
};

// WBEMSolutions_WBEMAgentProduct

    [Version("1.0.0"),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider"),
     Description("CIM_Product is a concrete class that aggregates PhysicalElements, software (SoftwareIdentity and SoftwareFeatures), Services and/or other Products, and is acquired as a unit. Acquisition implies an agreement between supplier and consumer which may have implications to Product licensing, support and warranty. Non-commercial (e.g., in-house developed Products) should also be identified as an instance of CIM_Product. \nNote that software is handled a bit differently in the list of aggregated entities, above. This is because software can be viewed as a tangible asset (similar to PhysicalElements) AND/ OR as a set of features that make up a Product and are deployed. These are two different concepts, usually managed by different units in a business\' organization. When software \'features\' are described, the CIM_SoftwareFeature class from the Application Model is instantiated (where Features are Weak to/scoped by a Product). When a specific piece of software is acquired and perhaps warrantied as part of a Product, this is addressed by the class, SoftwareIdentity.")
    ]
class WBEMSolutions_WBEMAgentProduct : CIM_Product {
};

// Brocade_CIMOMInAgentProduct

    [Association(true),
     Version("2.7.0"),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider"),
     Description("The CIM_ProductComponent association defines a containment and component relationship among Products. For example, a Product may come bundled with other Products. \nNote that this association duplicates ProductParentChild. The latter association is maintained for legacy reasons. This association, ProductComponent, is added for ease of query and modeling consistency. Using ProductComponent, an application can query for all Component relationships for a Product, versus querying the various Component relationships AND ProductParentChild. This association associates Brocade_AgentProduct instance and WBEMSolutions CIMOM instance"),
     Composition(true),
     Aggregation(true)
    ]
class Brocade_CIMOMInAgentProduct : CIM_ProductComponent {
    [Description("The Product which contains another Product as a component. The cardinality of this reference takes the default values (no minimum or maximum) since an instance of Product can describe either a general product type, or a specific item that is acquired. In the case of a specific item, a cardinality of Max(1) is indicated. However, when dealing with the general description/templating of a Product, then it may be a component of several others and a cardinality of Max(1) would be invalid. This represents an instance of Brocade_AgentProduct"),
     Override("GroupComponent"),
     ModelCorrespondence{"PRS_ProductComponent.Antecedent"},
     Key(true),
     Aggregate(true)
    ]
    Brocade_AgentProduct REF GroupComponent;

     [Description("It represents the instance of WBEMSolutions CIMOM."),
     Override("PartComponent"),
     ModelCorrespondence{"PRS_ProductComponent.Dependent"},
     Key(true)
    ]
    WBEMSolutions_WBEMAgentProduct REF PartComponent;

};

// CIM_InstDeletion

    [Indication(true),
     Version("2.6.0"),
     Description("CIM_InstDeletion notifies when an existing instance is deleted.")
    ]
class CIM_InstDeletion : CIM_InstIndication {
};

// CIM_InstModification

    [Indication(true),
     Version("2.6.0"),
     Description("CIM_InstModification notifies when an instance is modified.")
    ]
class CIM_InstModification : CIM_InstIndication {
    [Required(true),
     Description("A copy of the \'previous\' instance whose change generated the Indication. PreviousInstance contains \'older\' values of an instance\'s properties (as compared to SourceInstance), selected by the IndicationFilter\'s Query."),
     EmbeddedObject(true)
    ]
    string PreviousInstance;

};

// CIM_InstCreation

    [Indication(true),
     Version("2.6.0"),
     Description("CIM_InstCreation notifies when a new instance is created.")
    ]
class CIM_InstCreation : CIM_InstIndication {
};

// CIM_InstMethodCall

    [Indication(true),
     Version("2.6.0"),
     Description("CIM_InstMethodCall notifies when an instance\'s method is invoked.")
    ]
class CIM_InstMethodCall : CIM_InstIndication {
    [Required(true),
     Description("The name of the method invoked.")
    ]
    string MethodName;

     [Description("The parameters of the method, formatted as an EmbeddedObject (with a predefined class name of \"__MethodParameters\"."),
     EmbeddedObject(true)
    ]
    string MethodParameters;

     [Description("ReturnValue\'s data is dependent on the PreCall property. When PreCall is TRUE, this property is NULL describing that there is no method return value (since the method has not yet executed). When PreCall is FALSE, ReturnValue contains a string representation of the method\'s return value."),
     ModelCorrespondence{"CIM_InstMethodCall.PreCall"}
    ]
    string ReturnValue;

     [Required(true),
     Description("Boolean indicating whether the Indication is sent before the method begins executing (TRUE) or when the method completes (FALSE). When TRUE, the inherited property SourceInstance contains the value of the instance (the properties defined by the Filter\'s Query clause), before execution of the method. When PreCall is FALSE, SourceInstance embeds the instance as it appears after the completion of the method.")
    ]
    boolean PreCall;

};

// CIM_InstRead

    [Indication(true),
     Version("2.6.0"),
     Description("CIM_InstRead notifies when an instance is read but not modified.")
    ]
class CIM_InstRead : CIM_InstIndication {
};

// CIM_ClassDeletion

    [Indication(true),
     Version("2.6.0"),
     Description("CIM_ClassDeletion notifies when a class is deleted from the schema.")
    ]
class CIM_ClassDeletion : CIM_ClassIndication {
};

// CIM_ClassCreation

    [Indication(true),
     Version("2.6.0"),
     Description("CIM_ClassCreation notifies when a new class is defined in the schema.")
    ]
class CIM_ClassCreation : CIM_ClassIndication {
};

// CIM_ClassModification

    [Indication(true),
     Version("2.6.0"),
     Description("CIM_ClassModification notifies when a class definition in the schema is modified.")
    ]
class CIM_ClassModification : CIM_ClassIndication {
    [Required(true),
     Description("A copy of the \'previous\' class definition whose change generated the Indication. PreviousClassDefinition contains an \'older\' copy of the class\' information, as compared to what is found in the ClassDefinition property (inherited from ClassIndication)."),
     EmbeddedObject(true)
    ]
    string PreviousClassDefinition;

};

// CIM_AlertIndication

    [Indication(true),
     Version("2.8.0"),
     Description("A concrete superclass for CIM Alert notifications. An AlertIndication is a specialized type of CIM_Indication that contains information about the severity, cause, recommended actions and other data of a real world event. This event and its data may or may not be modeled in the CIM class hierarchy.")
    ]
class CIM_AlertIndication : CIM_ProcessIndication {
    [Description("A short description of the Indication."),
     MappingStrings{"Recommendation.ITU|X733.Additional text"}
    ]
    string Description;

     [Description("The identifying information of the entity (ie, the instance) for which this Indication is generated. The property contains the path of an instance, encoded as a string parameter - if the instance is modeled in the CIM Schema. If not a CIM instance, the property contains some identifying string that names the entity for which the Alert is generated. The path or identifying string is formatted per the AlertingElementFormat property."),
     ModelCorrespondence{"CIM_AlertIndication.AlertingElementFormat"}
    ]
    string AlertingManagedElement;

     [Description("The format of the AlertingManagedElement property is interpretable based upon the value of this property. Values are defined as: \n0 - Unknown. The format is unknown or not meaningfully interpretable by a CIM client application. \n1 - Other. The format is defined by the value of the OtherAlertingElementFormat property. \n2 - CIMObjectPath. The format is a CIMObjectPath, with format <NamespacePath>:<ClassName>.<Prop1>=\"<Value1>\", <Prop2>=\"<Value2>\", . . . specifying an instance in the CIM Schema."),
     ValueMap{"0", "1", "2"},
     Values{"Unknown", "Other", "CIMObjectPath"},
     ModelCorrespondence{"CIM_AlertIndication.AlertingManagedElement", "CIM_AlertIndication.OtherAlertingElementFormat"}
    ]
    uint16 AlertingElementFormat = 0;

     [Description("A string defining \"Other\" values for AlertingElementFormat. This value MUST be set to a non NULL value when AlertingElementFormat is set to a value of 1 (\"Other\"). For all other values of AlertingElementFormat, the value of this string must be set to NULL."),
     ModelCorrespondence{"CIM_AlertIndication.AlertingElementFormat"}
    ]
    string OtherAlertingElementFormat;

     [Required(true),
     Description("Primary classification of the Indication. The following values are defined: \n1 - Other. The Indication\'s OtherAlertType property conveys its classification. Use of \"Other\" in an enumeration is a standard CIM convention. It means that the current Indication does not fit into the categories described by this enumeration. \n2 - Communications Alert. An Indication of this type is principally associated with the procedures and/or processes required to convey information from one point to another. \n3 - Quality of Service Alert. An Indication of this type is principally associated with a degradation or errors in the performance or function of an entity. \n4 - Processing Error. An Indication of this type is principally associated with a software or processing fault. \n5 - Device Alert. An Indication of this type is principally associated with an equipment or hardware fault. \n6 - Environmental Alert. An Indication of this type is principally associated with a condition relating to an enclosure in which the hardware resides, or other environmental considerations. \n7 - Model Change. The Indication addresses changes in the Information Model. For example, it may embed a Lifecycle Indication to convey the specific model change being alerted. \n8 - Security Alert. An Indication of this type is associated with security violations, detection of viruses, and similar issues."),
     ValueMap{"1", "2", "3", "4", "5", "6", "7", "8"},
     Values{"Other", "Communications Alert", "Quality of Service Alert", "Processing Error", "Device Alert", "Environmental Alert", "Model Change", "Security Alert"},
     MappingStrings{"Recommendation.ITU|X733.Event type"}
    ]
    uint16 AlertType;

     [Description("A string describing the Alert type - used when the AlertType property is set to 1, \"Other State Change\"."),
     ModelCorrespondence{"CIM_AlertIndication.AlertType"}
    ]
    string OtherAlertType;

     [Required(true),
     Description("An enumerated value that describes the severity of the Alert Indication from the notifier\'s point of view: \n1 - Other, by CIM convention, is used to indicate that the Severity\'s value can be found in the OtherSeverity property. \n3 - Degraded/Warning should be used when its appropriate to let the user decide if action is needed. \n4 - Minor should be used to indicate action is needed, but the situation is not serious at this time. \n5 - Major should be used to indicate action is needed NOW. \n6 - Critical should be used to indicate action is needed NOW and the scope is broad (perhaps an imminent outage to a critical resource will result). \n7 - Fatal/NonRecoverable should be used to indicate an error occurred, but it\'s too late to take remedial action. \n2 and 0 - Information and Unknown (respectively) follow common usage. Literally, the AlertIndication is purely informational or its severity is simply unknown."),
     ValueMap{"0", "1", "2", "3", "4", "5", "6", "7"},
     Values{"Unknown", "Other", "Information", "Degraded/Warning", "Minor", "Major", "Critical", "Fatal/NonRecoverable"},
     MappingStrings{"Recommendation.ITU|X733.Perceived severity"}
    ]
    uint16 PerceivedSeverity;

     [Description("Holds the value of the user defined severity value when \'Severity\' is 1 (\"Other\")."),
     ModelCorrespondence{"CIM_AlertIndication.PerceivedSeverity"}
    ]
    string OtherSeverity;

     [Required(true),
     Description("An enumerated value that describes the probable cause of the situation which resulted in the AlertIndication."),
     ValueMap{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", "100", "101", "102", "103", "104", "105", "106", "107", "108", "109", "110", "111", "112", "113", "114", "115", "116", "117", "118", "119", "120", "121", "122", "123", "124", "125", "126", "127", "128", "129", "130"},
     Values{"Unknown", "Other", "Adapter/Card Error", "Application Subsystem Failure", "Bandwidth Reduced", "Connection Establishment Error", "Communications Protocol Error", "Communications Subsystem Failure", "Configuration/Customization Error", "Congestion", "Corrupt Data", "CPU Cycles Limit Exceeded", "Dataset/Modem Error", "Degraded Signal", "DTE-DCE Interface Error", "Enclosure Door Open", "Equipment Malfunction", "Excessive Vibration", "File Format Error", "Fire Detected", "Flood Detected", "Framing Error", "HVAC Problem", "Humidity Unacceptable", "I/O Device Error", "Input Device Error", "LAN Error", "Non-Toxic Leak Detected", "Local Node Transmission Error", "Loss of Frame", "Loss of Signal", "Material Supply Exhausted", "Multiplexer Problem", "Out of Memory", "Output Device Error", "Performance Degraded", "Power Problem", "Pressure Unacceptable", "Processor Problem (Internal Machine Error)", "Pump Failure", "Queue Size Exceeded", "Receive Failure", "Receiver Failure", "Remote Node Transmission Error", "Resource at or Nearing Capacity", "Response Time Excessive", "Retransmission Rate Excessive", "Software Error", "Software Program Abnormally Terminated", "Software Program Error (Incorrect Results)", "Storage Capacity Problem", "Temperature Unacceptable", "Threshold Crossed", "Timing Problem", "Toxic Leak Detected", "Transmit Failure", "Transmitter Failure", "Underlying Resource Unavailable", "Version MisMatch", "Previous Alert Cleared", "Login Attempts Failed", "Software Virus Detected", "Hardware Security Breached", "Denial of Service Detected", "Security Credential MisMatch", "Unauthorized Access", "Alarm Received", "Loss of Pointer", "Payload Mismatch", "Transmission Error", "Excessive Error Rate", "Trace Problem", "Element Unavailable", "Element Missing", "Loss of Multi Frame", "Broadcast Channel Failure", "Invalid Message Received", "Routing Failure", "Backplane Failure", "Identifier Duplication", "Protection Path Failure", "Sync Loss or Mismatch", "Terminal Problem", "Real Time Clock Failure", "Antenna Failure", "Battery Charging Failure", "Disk Failure", "Frequency Hopping Failure", "Loss of Redundancy", "Power Supply Failure", "Signal Quality Problem", "Battery Discharging", "Battery Failure", "Commercial Power Problem", "Fan Failure", "Engine Failure", "Sensor Failure", "Fuse Failure", "Generator Failure", "Low Battery", "Low Fuel", "Low Water", "Explosive Gas", "High Winds", "Ice Buildup", "Smoke", "Memory Mismatch", "Out of CPU Cycles", "Software Environment Problem", "Software Download Failure", "Element Reinitialized", "Timeout", "Logging Problems", "Leak Detected", "Protection Mechanism Failure", "Protecting Resource Failure", "Database Inconsistency", "Authentication Failure", "Breach of Confidentiality", "Cable Tamper", "Delayed Information", "Duplicate Information", "Information Missing", "Information Modification", "Information Out of Sequence", "Key Expired", "Non-Repudiation Failure", "Out of Hours Activity", "Out of Service", "Procedural Error", "Unexpected Information"},
     MappingStrings{"Recommendation.ITU|X733.Probable cause", "Recommendation.ITU|M3100.probableCause", "ITU-IANA-ALARM-TC"},
     ModelCorrespondence{"CIM_AlertIndication.ProbableCauseDescription", "CIM_AlertIndication.EventID", "CIM_AlertIndication.EventTime"}
    ]
    uint16 ProbableCause;

     [Description("Provides additional information related to the ProbableCause."),
     ModelCorrespondence{"CIM_AlertIndication.ProbableCause"}
    ]
    string ProbableCauseDescription;

     [Description("Provides information on trending - trending up, down or no change."),
     ValueMap{"0", "1", "2", "3", "4"},
     Values{"Unknown", "Not Applicable", "Trending Up", "Trending Down", "No Change"},
     MappingStrings{"Recommendation.ITU|X733.TrendIndication"}
    ]
    uint16 Trending;

     [Description("Free form descriptions of the recommended actions to take to resolve the cause of the notification."),
     MappingStrings{"Recommendation.ITU|X733.Proposed repair actions"}
    ]
    string RecommendedActions[];

     [Description("An instrumentation or provider specific value that describes the underlying \"real-world\" event represented by the Indication. Two Indications with the same, non NULL EventID value are considered, by the creating entity, to represent the same event. The comparison of two EventID values is only defined for Alert Indications with identical, non NULL values of SystemCreateClassName, SystemName and ProviderName."),
     ModelCorrespondence{"CIM_AlertIndication.ProbableCause"}
    ]
    string EventID;

     [Description("The time and date the underlying event was first detected. If specified, this property MUST be set to NULL if the creating entity is not capable of providing this information. This value is based on the notion of local date and time of the Managed System Element generating the Indication."),
     ModelCorrespondence{"CIM_AlertIndication.ProbableCause"}
    ]
    datetime EventTime;

     [Description("The scoping System\'s CreationClassName for the Provider generating this Indication."),
     MaxLen(256)
    ]
    string SystemCreationClassName;

     [Description("The scoping System\'s Name for the Provider generating this Indication."),
     MaxLen(256)
    ]
    string SystemName;

     [Description("The name of the Provider generating this Indication."),
     MaxLen(256)
    ]
    string ProviderName;

};

// CIM_SNMPTrapIndication

    [Indication(true),
     Version("2.7.0"),
     Description("A concrete class for mapping an SNMP Trap to CIM based on the IETF RFC 1157. The usefulness of this class is to describe common trap semantics. But, a complete understanding of any trap data received relies on the Indicaton recipient having access to the sender\'s MIB. Understanding can be improved by mapping the SNMP domain to CIM, and using CIM LifeCycle and standard subclasses of CIM_ProcessIndication.")
    ]
class CIM_SNMPTrapIndication : CIM_ProcessIndication {
    [Description("Type of object generating the trap."),
     MappingStrings{"PDU.IETF|RFC1157-TRAP-PDU.enterprise"}
    ]
    string Enterprise;

     [Description("Address of the object generating the trap."),
     MappingStrings{"PDU.IETF|RFC1157-TRAP-PDU.agent-addr"}
    ]
    string AgentAddress;

     [Description("An enumerated value that describes the generic trap type: \n- The coldStart(0) trap signifies that the sending protocol entity is reinitializing itself such that the agent\'s configuration or the protocol entity implementation may be altered. \n- The warmStart(1) trap signifies that the sending protocol entity is reinitializing itself such that neither the agent configuration nor the protocol entity implementation is altered. \n- The linkDown(2) trap signifies that the sending protocol recognizes a failure in one of the communication links represented in the agent\'s configuration. The Trap-PDU of type linkDown contains as the first element of its variable-bindings the name and value of the ifIndex instance for the affected interface. \n- The linkUp(3) trap signifies that the sending protocol entity recognizes that one of the communication links represented in the agent\'s configuration has come up. The Trap-PDU of type linkUp contains as the first element of its variable-bindings, the name and value of the ifIndex instance for the affected interface. \n- An authenticationFailure(4) trap signifies that the sending protocol entity is the adressee of a protocol message that was not properly authenticated. While implementations of SNMP must be capable of generating this trap, they must also be capable of suppressing the emission of such traps via an implementation- specific mechanism. \n- An egpNeighborLoss(5) trap signifies that an EGP neighbor for whom the sending protocol entity was an EGP peer has been marked as down and the peer relationship no longer pertains. The Trap-PDU of type egpNeighborLoss contains as the first element of its variable-bindings, the name and value of the egpNeighAddr instance for the affected neighbor. \n- An enterpriseSpecific(6) trap signifies that the sending protocol entity recognizes that some enterprise-specific event has occurred. The specific-trap field identifies the particular trap which occurred."),
     ValueMap{"0", "1", "2", "3", "4", "5", "6"},
     Values{"Cold Start", "Warm Start", "Link Down", "Link Up", "Authentication Failure", "EGP Neighbor Loss", "Enterprise Specific"},
     MappingStrings{"PDU.IETF|RFC1157-TRAP-PDU.generic-trap"}
    ]
    uint16 GenericTrap;

     [Description("Specific trap code."),
     MappingStrings{"PDU.IETF|RFC1157-TRAP-PDU.specific-trap"}
    ]
    uint32 SpecificTrap;

     [Description("Time elapsed between the last (re)intialization of the managed entity and the generation of the trap."),
     MappingStrings{"PDU.IETF|RFC1157-TRAP-PDU.time-stamp"}
    ]
    datetime TimeStamp;

     [Description("Object naming information (an OID) from the \'variable binding\' portion of the Trap. This array is correlated with the VarBindSyntaxes and VarBindValues arrays. Each entry is related to the entries in the other arrays, that are located at the same index. In this way, the variable binding\'s name/syntax/value tuple can be constructed."),
     MappingStrings{"PDU.IETF|RFC1157-TRAP-PDU.variable-bindings"},
     ArrayType("Indexed"),
     ModelCorrespondence{"CIM_SNMPTrapIndication.VarBindSyntaxes", "CIM_SNMPTrapIndication.VarBindValues"}
    ]
    string VarBindNames[];

     [Description("Object syntax information (defined as an enumerated value) from the \'variable binding\' portion of the Trap. This array is correlated with the VarBindNames and VarBindValues arrays. Each entry is related to the entries in the other arrays, that are located at the same index. In this way, the variable binding\'s name/syntax/value tuple can be constructed."),
     ValueMap{"1", "2", "3", "4", "5", "6", "7", "8"},
     Values{"Integer", "OctetString", "ObjectIdentifier", "NetworkAddress", "Counter", "Gauge", "TimeTicks", "Opaque"},
     MappingStrings{"PDU.IETF|RFC1157-TRAP-PDU.variable-bindings"},
     ArrayType("Indexed"),
     ModelCorrespondence{"CIM_SNMPTrapIndication.VarBindNames", "CIM_SNMPTrapIndication.VarBindValues"}
    ]
    uint16 VarBindSyntaxes[];

     [Description("An OctetString representing object value information from the \'variable binding\' portion of the Trap. This array is correlated with the VarBindNames and VarBindSyntaxes arrays. Each entry is related to the entries in the other arrays, that are located at the same index. In this way, the variable binding\'s name/syntax/value tuple can be constructed."),
     OctetString(true),
     MappingStrings{"PDU.IETF|RFC1157-TRAP-PDU.variable-bindings"},
     ArrayType("Indexed"),
     ModelCorrespondence{"CIM_SNMPTrapIndication.VarBindNames", "CIM_SNMPTrapIndication.VarBindSyntaxes"}
    ]
    string VarBindValues[];

};

// CIM_CIMOMStatisticalData

    [Version("2.7.0"),
     Description("CIM_CIMOMStatisticalData provides statistical data about the performance of the CIM Object Manager. Each object of this class provides elapsed time and size data for a particular type of CIM operation. All operations of that type, regardless of the CIM operations protocol being used, are accumulated in one object and covers the CIM operations issued by all clients of the Object Manager scoping the instance. Batched CIM operations are accumulated into a separate operation type for \"Batched\". The counters in this class SHOULD be implemented such that they always increment and naturally wrap around when their numerical limit is exceeded. A client that calculates the difference of two snapshots of a counter at the beginning and end of a measurement interval should get the correct result, even if there was a wrap-around in between obtaining the two snapshots. (Two or more wrap arounds will result in wrong data being calculated.) The gathering of the data can be controlled through the property, CIM_ObjectManager.GatherStatisticalData. The time interval to which the statistical data applies, ends at the current time and therefore includes the most current CIM operations. The interval starts when the statistical data gathering was last turned on for the Object Manager.")
    ]
class CIM_CIMOMStatisticalData : CIM_StatisticalData {
    [Override("InstanceID"),
     Description("The InstanceID property opaquely identifies a unique instance of CIMOMStatisticalData and MUST be unique within a namespace. In order to ensure uniqueness, the value of InstanceID MUST be constructed in the following manner: \nCIM<ID> \nThe <ID> MUST include a CIM Object Manager specified unique identifier."),
     Key(true)
    ]
    string InstanceID;

     [Required(true),
     Description("The OperationType property identifies the type of CIM operation for which data is reported in this instance. Batched CIM operations (consisting of multiple simple CIM operations) are reported against the \"Batched\" type only."),
     ValueMap{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26"},
     Values{"Unknown", "Other", "Batched", "GetClass", "GetInstance", "DeleteClass", "DeleteInstance", "CreateClass", "CreateInstance", "ModifyClass", "ModifyInstance", "EnumerateClasses", "EnumerateClassNames", "EnumerateInstances", "EnumerateInstanceNames", "ExecQuery", "Associators", "AssociatorNames", "References", "ReferenceNames", "GetProperty", "SetProperty", "GetQualifier", "SetQualifier", "DeleteQualifier", "EnumerateQualifiers", "IndicationDelivery"},
     ModelCorrespondence{"CIM_CIMOMStatisticalData.OtherOperationType"}
    ]
    uint16 OperationType;

     [Description("The OtherOperationType property identifies the operation if the OperationType property has a value of 1 (\"Other\"). For all other values of OperationType, the property is NULL."),
     MaxLen(64),
     ModelCorrespondence{"CIM_CIMOMStatisticalData.OperationType"}
    ]
    string OtherOperationType;

     [Required(true),
     Description("The NumberOfOperations property contains the number of CIM operations of the specified type. This property can be used to calculate average values per CIM operation."),
     Counter(true)
    ]
    uint64 NumberOfOperations;

     [Required(true),
     Description("The CimomElapsedTime property contains the elapsed time spent in the CIM Object Manager for this operation type, not counting the elapsed time spent in providers and the underlying instrumentation. The measurement points for this property SHOULD be at the transport layer interface on the network side, and at the provider interface on the instrumentation side of the CIM Object Manager.")
    ]
    datetime CimomElapsedTime;

     [Required(true),
     Description("The ProviderElapsedTime property contains the elapsed time spent in all providers involved with this operation type, including the underlying instrumentation. The measurement point for this property SHOULD be from the provider interface of the CIM Object Manager.")
    ]
    datetime ProviderElapsedTime;

     [Description("The RequestSize property contains the size of the operation requests sent to the CIM Object Manager. Any overhead of protocols above the transport protocol SHOULD be included in the count. For example, for the HTTP protocol, the size would include the size of the HTTP payload and the size of the HTTP headers."),
     Units("Bytes"),
     Counter(true)
    ]
    uint64 RequestSize;

     [Description("The ResponseSize property contains the size of the operation responses sent back from the CIM Object Manager. Any overhead of protocols above the transport protocol SHOULD be included in the count. For example, for the HTTP protocol, the size would include the size of the HTTP payload and the size of the HTTP headers."),
     Units("Bytes"),
     Counter(true)
    ]
    uint64 ResponseSize;

};

// CIM_IndicationHandler

    [Deprecated{"CIM_ListenerDestination"},
     Abstract(true),
     Version("2.8.0"),
     Description("CIM_IndicationHandler is an abstract superclass describing how an Indication is to be processd/delivered/\'handled\'. This may define a destination and protocol for delivering Indications, or it may define a process to invoke. This class is derived from CIM_ManagedElement to allow modeling the dependency of the Handler on a specific service.")
    ]
class CIM_IndicationHandler : CIM_ListenerDestination {
    [Deprecated{"No value"},
     Description("The name of the entity that created and/or maintains this Handler.")
    ]
    string Owner;

};

// CIM_ListenerDestinationCIMXML

    [Version("2.8.0"),
     Description("CIM_ListenerDestinationCIMXML describes the destination for CIM Export Messages to be delivered via CIM-XML.")
    ]
class CIM_ListenerDestinationCIMXML : CIM_ListenerDestination {
    [Required(true),
     Description("The destination URL to which CIM-XML Export Messages are to be delivered.The scheme prefix MUST be consistent with the DMTF CIM-XML specifications.If a scheme prefix is not specified, the scheme \"http:\" MUST be assumed.")
    ]
    string Destination;

};

// WBEMSolutions_HttpsIndicationSettingData

    [Version("1.0.0"),
     Description("This class contains the setting data for the SSL Indications"),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider")
    ]
class WBEMSolutions_HttpsIndicationSettingData : CIM_SettingData {
    [Override("InstanceID"),
     Description("This property uniquely identifies this instance of setting data. The format of the property value is:\n \'WBEMSolutions:<ID>\'"),
     Key(true)
    ]
    string InstanceID;

     [Description("The user friendly name for this instance of SettingData."),
     Required(true),
     Override("ElementName")
    ]
    string ElementName;

     [Description("If True, then Indication SSL Authentication is enabled.")
    ]
    boolean IndicationAuthenticationEnabled = false;

     [Description("The encrypted password for the Server\'s Indication AuthenticationKeystore file."),
     MaxLen(256)
    ]
    string IndicationKeyStorePassword;

};

// CIM_ComputerSystem

    [Version("2.7.0"),
     Description("A class derived from System that is a special collection of ManagedSystemElements. This collection provides compute capabilities and serves as aggregation point to associate one or more of the following elements: FileSystem, OperatingSystem, Processor and Memory (Volatile and/or NonVolatile Storage).")
    ]
class CIM_ComputerSystem : CIM_System {
    [Override("NameFormat"),
     Description("The ComputerSystem object and its derivatives are Top Level Objects of CIM. They provide the scope for numerous components. Having unique System keys is required. The NameFormat property identifies how the ComputerSystem Name is generated. The NameFormat ValueMap qualifier defines the various mechanisms for assigning the name. Note that another name can be assigned and used for the ComputerSystem that better suit a business, using the inherited ElementName property."),
     ValueMap{"Other", "IP", "Dial", "HID", "NWA", "HWA", "X25", "ISDN", "IPX", "DCC", "ICD", "E.164", "SNA", "OID/OSI", "WWN", "NAA"},
     MaxLen(64)
    ]
    string NameFormat;

     [Description("OtherIdentifyingInfo captures additional data, beyond System Name information, that could be used to identify a ComputerSystem. One example would be to hold the Fibre Channel World-Wide Name (WWN) of a node. Note that if only the Fibre Channel name is available and is unique (able to be used as the System key), then this property would be NULL and the WWN would become the System key, its data placed in the Name property."),
     MaxLen(256),
     ArrayType("Indexed"),
     ModelCorrespondence{"CIM_ComputerSystem.IdentifyingDescriptions"}
    ]
    string OtherIdentifyingInfo[];

     [Description("An array of free-form strings providing explanations and details behind the entries in the OtherIdentifying Info array. Note, each entry of this array is related to the entry in OtherIdentifyingInfo that is located at the same index."),
     ArrayType("Indexed"),
     ModelCorrespondence{"CIM_ComputerSystem.OtherIdentifyingInfo"}
    ]
    string IdentifyingDescriptions[];

     [Description("Enumeration indicating whether the ComputerSystem is a special-purpose System (ie, dedicated to a particular use), versus being \'general purpose\'. For example, one could specify that the System is dedicated to \"Print\" (value=11) or acts as a \"Hub\" (value=8). \nA clarification is needed with respect to the value 17 (\"Mobile User Device\"). An example of a dedicated user device is a mobile phone or a barcode scanner in a store that communicates via radio frequency. These systems are quite limited in functionality and programmability, and are not considered \'general purpose\' computing platforms. Alternately, an example of a mobile system that is \'general purpose\' (i.e., is NOT dedicated) is a hand-held computer. Although limited in its programmability, new software can be downloaded and its functionality expanded by the user."),
     ValueMap{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20"},
     Values{"Not Dedicated", "Unknown", "Other", "Storage", "Router", "Switch", "Layer 3 Switch", "Central Office Switch", "Hub", "Access Server", "Firewall", "Print", "I/O", "Web Caching", "Management", "Block Server", "File Server", "Mobile User Device", "Repeater", "Bridge/Extender", "Gateway"},
     MappingStrings{"MIB.IETF|MIB-II.sysServices"},
     ArrayType("Indexed"),
     ModelCorrespondence{"CIM_ComputerSystem.OtherDedicatedDescriptions"}
    ]
    uint16 Dedicated[];

     [Description("A string describing how or why the system is dedicated when the Dedicated array includes the value 2, \"Other\"."),
     ArrayType("Indexed"),
     ModelCorrespondence{"CIM_ComputerSystem.Dedicated"}
    ]
    string OtherDedicatedDescriptions[];

     [Description("If enabled (value = 4), the ComputerSystem can be reset via hardware (e.g. the power and reset buttons). If disabled (value = 3), hardware reset is not allowed. In addition to Enabled and Disabled, other Values for the property are also defined - \"Not Implemented\" (5), \"Other\" (1) and \"Unknown\" (2)."),
     ValueMap{"1", "2", "3", "4", "5"},
     Values{"Other", "Unknown", "Disabled", "Enabled", "Not Implemented"},
     MappingStrings{"MIF.DMTF|System Hardware Security|001.4"}
    ]
    uint16 ResetCapability;

     [Deprecated{"CIM_PowerManagementCapabilities.PowerCapabilities"},
     Description("An enumerated array describing the power management capabilities of the ComputerSystem. The use of this property has been deprecated. Instead, the Power Capabilites property in an associated PowerManagement Capabilities class should be used."),
     ValueMap{"0", "1", "2", "3", "4", "5", "6", "7"},
     Values{"Unknown", "Not Supported", "Disabled", "Enabled", "Power Saving Modes Entered Automatically", "Power State Settable", "Power Cycling Supported", "Timed Power On Supported"},
     MappingStrings{"MIF.DMTF|System Power Controls|001.2"}
    ]
    uint16 PowerManagementCapabilities[];

    [Deprecated{"CIM_PowerManagementService.SetPowerState"},
     Description("Sets the power state of the computer. The use of this method has been deprecated. Instead, use the SetPowerState method in the associated PowerManagementService class.")
    ]
    uint32 SetPowerState([IN(true), Description("The Desired state for the COmputerSystem."), ValueMap{"1", "2", "3", "4", "5", "6", "7", "8"}, Values{"Full Power", "Power Save - Low Power Mode", "Power Save - Standby", "Power Save - Other", "Power Cycle", "Power Off", "Hibernate", "Soft Off"}] uint32 PowerState, [IN(true), Description("Time indicates when the power state should be set, either as a regular date-time value or as an interval value (where the interval begins when the method invocation is received.")] datetime Time);
};

// WBEMSolutions_ComputerSystem

    [Version("1.0.0"),
     Description("WBEMSolutions Computer System"),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider")
    ]
class WBEMSolutions_ComputerSystem : CIM_ComputerSystem {
};

// WBEMSolutions_CommMechanismForSystem

    [Association(true),
     Version("1.0.0"),
     Description("CommMechanismForSystem is an association between a ObjectManagerCommunicationMechanism and the System on which it is provided. The cardinality of this association is 1-to-many and is weak with respect to the System."),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider")
    ]
class WBEMSolutions_CommMechanismForSystem : CIM_HostedAccessPoint {
    [Min(1),
     Max(1),
     Description("The hosting System."),
     Override("Antecedent"),
     Key(true)
    ]
    WBEMSolutions_ComputerSystem REF Antecedent;

     [Description("The SAP(s) that are hosted on this System."),
     Weak(true),
     Override("Dependent"),
     Key(true)
    ]
    CIM_ObjectManagerCommunicationMechanism REF Dependent;

};

// WBEMSolutions_ObjectManagerForSystem

    [Association(true),
     Version("1.0.0"),
     Description("ObjectManagerForSystemis an association between a Service and the System on which the functionality resides. The cardinality of this association is 1-to-many. A System may host many Object Managers."),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider")
    ]
class WBEMSolutions_ObjectManagerForSystem : CIM_HostedService {
    [Min(1),
     Max(1),
     Description("The hosting System."),
     Override("Antecedent"),
     Key(true)
    ]
    WBEMSolutions_ComputerSystem REF Antecedent;

     [Description("The Service hosted on the System."),
     Weak(true),
     Override("Dependent"),
     Key(true)
    ]
    WBEMSolutions_ObjectManager REF Dependent;

};

// WBEMSolutions_CIMXMLCommMechanismForManager

    [Association(true),
     Version("1.0.0"),
     Description("CommMechanismForManager is an association between an ObjectManager and an ObjectManagerCommunicationMechanism class. The latter describes a possible encoding/protocol/ set of operations for accessing the referenced ObjectManager."),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider")
    ]
class WBEMSolutions_CIMXMLCommMechanismForManager : CIM_CommMechanismForManager {
    [Min(1),
     Max(1),
     Description("The specific ObjectManager whose communication mechanism is described."),
     Override("Antecedent"),
     Key(true)
    ]
    WBEMSolutions_ObjectManager REF Antecedent;

     [Min(1),
     Description("The encoding/protocol/set of operations that may be used to communicate with the referenced ObjectManager."),
     Override("Dependent"),
     Key(true)
    ]
    WBEMSolutions_CIMXMLCommunicationMechanism REF Dependent;

};

// WBEMSolutions_CIMXMLSCommMechanismForManager

    [Association(true),
     Version("1.0.0"),
     Description("CommMechanismForManager is an association between an ObjectManager and an ObjectManagerCommunicationMechanism class. The latter describes a possible encoding/protocol/ set of operations for accessing the referenced ObjectManager."),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider")
    ]
class WBEMSolutions_CIMXMLSCommMechanismForManager : CIM_CommMechanismForManager {
    [Min(1),
     Max(1),
     Description("The specific ObjectManager whose communication mechanism is described."),
     Override("Antecedent"),
     Key(true)
    ]
    WBEMSolutions_ObjectManager REF Antecedent;

     [Min(1),
     Description("The encoding/protocol/set of operations that may be used to communicate with the referenced ObjectManager."),
     Override("Dependent"),
     Key(true)
    ]
    WBEMSolutions_CIMXMLSCommunicationMechanism REF Dependent;

};

// Brocade_RegisteredSubProfile

    [Version("2.7.1000"),
     Experimental(true),
     Description("Brocade supports the following subprofiles for Fabric: Zone Control, Enhanced Zoning and Enhanced Zoning Control, and FDMI;  for Switch: Blades."),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider")
    ]
class Brocade_RegisteredSubProfile : CIM_RegisteredSubProfile {
    [Override("InstanceID"),
     Description("Opaque identifier to uniquely identify the registered subprofile."),
     Key(true)
    ]
    string InstanceID;

     [Override("RegisteredOrganization"),
     Description("The organization that defines this subprofile."),
     ModelCorrespondence{"CIM_RegisteredProfile.OtherRegisteredOrganization"},
     ValueMap{"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"},
     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"},
     Required(true)
    ]
    uint16 RegisteredOrganization = 11;

     [Override("RegisteredName"),
     MaxLen(256),
     Description("The value is either Zone Control, Enhanced Zoning and Enhanced Zoning Control, FDMI, or Blades."),
     Required(true)
    ]
    string RegisteredName;

     [Override("RegisteredVersion"),
     Description("The version of this profile. The string representing the version MUST be in the form:\n   M + \".\" + N + \".\" + U \n\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 (for example, errata, patch, and so on, in numeric form) describing the profile\'s creation or last modification."),
     Required(true)
    ]
    string RegisteredVersion = "1.1.0";

     [Override("AdvertiseTypes"),
     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 the profile MIGHT be advertised using several mechanisms.\nNote: If this property is null or uninitialized, this is equivalent to specifying the value 2, \"Not Advertised\"."),
     ModelCorrespondence{"CIM_RegisteredProfile.AdvertiseTypeDescriptions"},
     ValueMap{"1", "2", "3"},
     Values{"Other", "Not Advertised", "SLP"},
     Required(true),
     ArrayType("Indexed")
    ]
    uint16 AdvertiseTypes[] = {3};

};

// Brocade_SubProfileRequiresProfile

    [Association(true),
     Version("2.7.1000"),
     Experimental(true),
     Description("This is an association between the Profile and SubProfile; association between Fabric and Zone Control, Enhanced Zoning and Enhanced Zoning Control, and FDMI; and an association between Switch and Blades."),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider")
    ]
class Brocade_SubProfileRequiresProfile : CIM_SubProfileRequiresProfile {
    [Min(1),
     Description("The registered profile that is referenced or required by the subprofile."),
     Override("Antecedent"),
     Key(true)
    ]
    Brocade_RegisteredProfile REF Antecedent;

     [Description("A registered subprofile that requires a scoping profile, for context."),
     Override("Dependent"),
     Key(true)
    ]
    Brocade_RegisteredSubProfile REF Dependent;

};

// WBEMSolutions_SubProfileRequiresProfile

    [Association(true),
     Version("1.0.0"),
     Description("A subprofile requires another RegisteredProfile for context. This association mandates the scoping relationship between a subprofile and its scoping profile."),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider")
    ]
class WBEMSolutions_SubProfileRequiresProfile : CIM_SubProfileRequiresProfile {
    [Min(1),
     Description("The RegisteredProfile that is referenced/required by the subprofile."),
     Override("Antecedent"),
     Key(true)
    ]
    WBEMSolutions_RegisteredProfile REF Antecedent;

     [Description("A RegisteredSubProfile that requires a scoping profile, for context."),
     Override("Dependent"),
     Key(true)
    ]
    WBEMSolutions_RegisteredSubProfile REF Dependent;

};

// CIM_AlertInstIndication

    [Indication(true),
     Version("2.6.0"),
     Description("A subclass of CIM_AlertIndication that embeds a CIM_Inst Indication. It is used when adding AlertIndication data to a LifeCycle Indication.")
    ]
class CIM_AlertInstIndication : CIM_AlertIndication {
    [Override("AlertType"),
     Description("The primary classification of the Indication, defaulted to 7, \"Model Change\", for this class. This is done because: 1) the primary purpose of AlertInstIndication is to add Alert data to a LifeCycle Indication; and 2) LifeCycle Indications deal with \'model changes\'."),
     Required(true),
     ValueMap{"1", "2", "3", "4", "5", "6", "7", "8"},
     Values{"Other", "Communications Alert", "Quality of Service Alert", "Processing Error", "Device Alert", "Environmental Alert", "Model Change", "Security Alert"},
     MappingStrings{"Recommendation.ITU|X733.Event type"}
    ]
    uint16 AlertType = 7;

     [Required(true),
     Description("Embeds the InstIndication that is part of this Alert Indication. Only the properties selected by the Indication Filter\'s Query are included."),
     EmbeddedObject(true)
    ]
    string IndObject;

};

// CIM_ThresholdIndication

    [Indication(true),
     Version("2.6.0"),
     Description("A subclass of CIM_AlertIndications carrying additional threshold information related to the notification. This subclass is used when one of the ProbableCauses is set to 53, \"Threshold Crossed\".")
    ]
class CIM_ThresholdIndication : CIM_AlertIndication {
    [Description("A string describing the threshold or naming the property that represents the threshold, if modeled in the CIM hierarchy. In the latter case, the value should be written as <schema name>_ <class name>.<property name>."),
     MappingStrings{"Recommendation.ITU|X733.Threshold information"}
    ]
    string ThresholdIdentifier;

     [Description("A string holding the current value of the threshold. This is modeled as a string for universal mapping, similar to the CIM_Sensor properties in the Device Model."),
     MappingStrings{"Recommendation.ITU|X733.Threshold information"}
    ]
    string ThresholdValue;

     [Description("A string holding the current reading value that exceeds the threshold. This is modeled as a string for universal mapping, similar to the CIM_Sensor properties in the Device Model."),
     MappingStrings{"Recommendation.ITU|X733.Threshold information"}
    ]
    string ObservedValue;

};

// CIM_IndicationHandlerCIMXML

    [Deprecated{"CIM_ListenerDestinationCIMXML"},
     Version("2.8.0"),
     Description("CIM_IndicationHandlerCIMXML describes the destination for Indications to be delivered via CIM-XML.")
    ]
class CIM_IndicationHandlerCIMXML : CIM_IndicationHandler {
    [Deprecated{"CIM_ListenerDestinationCIMXML.Destination"},
     Required(true),
     Description("The destination URL to which CIM-XML Indication messages are to be delivered. The scheme prefix MUST be consistent with the DMTF CIM-XML Specifications. If a scheme prefix is not specified, the scheme \"http:\" MUST be assumed.")
    ]
    string Destination;

};

// WBEMSolutions_ListenerDestinationCIMXML

    [Version("1.0.0"),
     Description("WBEMSolutions_ListenerDestinationCIMXML describes the destination for CIM Export Messages to be delivered via CIM-XML."),
     Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider")
    ]
class WBEMSolutions_ListenerDestinationCIMXML : CIM_ListenerDestinationCIMXML {
    [Description("The name of the entity that created and/or maintains this Handler.")
    ]
    string Owner;

};

// CIM_AdminDomain

    [Version("2.8.0"),
     Description("This is a special grouping of ManagedSystemElements. The grouping is viewed as a single entity, reflecting that all of its components are administered similarly - either by the same user, group of users or policy. It serves as an aggregation point to associate one or more of the following elements: network devices, such as routers and switches, servers, and other resources that can be accessed by end systems. This grouping of devices plays an essential role in ensuring that the same administrative policy and actions are applied to all of the devices in the grouping. The specific behavior and/or semantics of the AdminDomain can be identified through its aggregated and associated entities.")
    ]
class CIM_AdminDomain : CIM_System {
    [Override("NameFormat"),
     Description("The NameFormat property identifies how the Name of the AdminDomain is generated, using the heuristic specified in the CIM V2 System Model spec. It assumes that the documented rules are traversed in order, to determine and assign a Name. The NameFormat Values list defines the precedence order for assigning the Name of the AdminDomain. \n\n\"FC\" has been deprecated and replaced by \"WWN\" to be consistent with the other ValueMaps."),
     ValueMap{"Other", "AS", "NAP", "NOC", "POP", "RNP", "IP", "IPX", "SNA", "Dial", "WAN", "LAN", "ISDN", "Frame Relay", "ATM", "E.164", "IB", "FC", "Policy Repository", "WWN"},
     Values{"Other", "Autonomous System", "Network Access Provider", "Network Operations Center", "Point of Presence", "Regional Network Provider", "IP", "IPX", "SNA", "Dial", "WAN", "LAN", "ISDN", "Frame Relay", "ATM", "E.164", "Infiniband", "Fibre Channel", "Policy Repository", "Fibre Channel Worldwide Name"},
     ModelCorrespondence{"CIM_AdminDomain.Name"},
     MaxLen(64)
    ]
    string NameFormat;

};

// Brocade_Fabric

    [Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider"),
     Description("Brocade_Fabric represents one or more switches connected by interswitch links (ISLs).  Each fabric is uniquely identified by the WWN of the proxy switch in the fabric.")
    ]
class Brocade_Fabric : CIM_AdminDomain {
    [Description("An opaque key that identifies the fabric.  This is equivalent to the WWN of the proxy switch."),
     Key(true),
     Override("Name"),
     MaxLen(256)
    ]
    string Name;

     [Override("ElementName"),
     Description("The 8-byte World Wide Name of the principal switch in the fabric, as per FC-GS-3, which is also considered the fabric World Wide Name."),
     MappingStrings{"API.Brocade | Fabric | WWN"}
    ]
    string ElementName;

     [Override("CreationClassName"),
     MaxLen(256),
     Description("CreationClassName indicates the name of the class or the subclass used in the creation of an instance.  When used with the other key properties of this class, this property allows all instances of this class and its subclasses to be uniquely identified."),
     Key(true)
    ]
    string CreationClassName;

     [Description("The NameFormat property identifies how the name of Brocade_Fabric is generated, using the heuristic specified in the CIM V2 System Model specification.  It assumes that the documented rules are traversed in order, to determine and assign a Name.  The NameFormat Values list defines the precedence order for assigning the name of Brocade_Fabric."),
     ValueMap{"Other", "WWN"},
     Values{"Other", "Fibre Channel Worldwide Name"},
     ModelCorrespondence{"Brocade_Fabric.Name"},
     Override("NameFormat"),
     MaxLen(64)
    ]
    string NameFormat;

};

// Brocade_Switch

    [Provider("java:org.eclipse.aperi.simulator.cimom.sunwbem.provider.Provider"),
     Description("Brocade_Switch corresponds to the logical aspects of a single Brocade_Switch instance.  Any number of these switch instances can be associated with a Brocade_Chassis.  A switch instance corresponds to a single port, to a group of ports, or to all ports.  When enumerating switches, instances of \'unreachable\' switches are not shown.  \'Unreachable\' switches are switches that are not in any fabric that the CIM agent is managing, but might still be running in the same physical chassis as a switch that is in a fabric being managed by the agent.")
    ]
class Brocade_Switch : CIM_ComputerSystem {
    [Override("CreationClassName"),
     MaxLen(256),
     Description("CreationClassName indicates the name of the class or the subclass used in the creation of an instance.  When used with the other key properties of this class, this property allows all instances of this class and its subclasses to be uniquely identified."),
     Key(true)
    ]
    string CreationClassName = "Brocade_Switch";

     [MaxLen(256),
     Description("The switch WWN, which is a unique numeric identifier for the switch.  The WWN is factory-assigned and is typically used in license keys and digital certificates."),
     MappingStrings{"API.Brocade | Switch | WWN"},
     Key(true),
     Override("Name")
    ]
    string Name;

     [Override("Dedicated"),
     Description("Indicates that the computer system is a switch."),
     ValueMap{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20"},
     Values{"Not Dedicated", "Unknown", "Other", "Storage", "Router", "Switch", "Layer 3 Switch", "Central Office Switch", "Hub", "Access Server", "Firewall", "Print", "I/O", "Web Caching", "Management", "Block Server", "File Server", "Mobile User Device", "Repeater", "Bridge/Extender", "Gateway"},
     MappingStrings{"MIB.IETF|MIB-II.sysServices"},
     ArrayType("Indexed"),
     ModelCorrespondence{"CIM_ComputerSystem.OtherDedicatedDescriptions"}
    ]
    uint16 Dedicated[] = {5};

     [Override("OtherIdentifyingInfo"),
     MaxLen(256),
     MappingStrings{"API.Brocade | Switch | DomainId"},
     Description("The domain ID is a fabric-assigned identifier that uniquely identifies a switch in the fabric."),
     ArrayType("Indexed"),
     ModelCorrespondence{"CIM_ComputerSystem.IdentifyingDescriptions"}
    ]
    string OtherIdentifyingInfo[];

     [Override("IdentifyingDescriptions"),
     Description("An array of free-form strings providing explanations and details of the entries in the OtherIdentifyingInfo array.  Each entry of this array is related to the entry in OtherIdentifyingInfo that is located at the same index."),
     ModelCorrespondence{"CIM_ComputerSystem.OtherIdentifyingInfo"},
     ArrayType("Indexed")
    ]
    string IdentifyingDescriptions[] = {"DomainID"};

     [Description("Switch embedded port destination identifier (D_ID)."),
     MappingStrings{"API.Brocade | Switch | SwitchId"}
    ]
    string SwitchID;

     [Override("ElementName"),
     Write(true),
     MaxLen(15),
     Description("Switch symbolic name."),
     MappingStrings{"API.Brocade | Switch | SwitchName"}
    ]
    string ElementName;

     [Description("The ComputerSystem object and its derivatives are CIM top level objects.  They provide the scope for numerous components.  Having unique system keys is required.  The NameFormat property identifies how ComputerSystem Name is generated.  The NameFormat ValueMap qualifier defines the various mechanisms for assigning the name.  Note that another name can be assigned and used for the computer system that better suits a business, using the inherited ElementName property."),
     ValueMap{"Other", "IP", "Dial", "HID", "NWA", "HWA", "X25", "ISDN", "IPX", "DCC", "ICD", "E.164", "SNA", "OID/OSI", "WWN"},
     Override("NameFormat"),
     MaxLen(64)
    ]
    string NameFormat = "WWN";

     [Description("This property tells whether the switch is a real switch or a virtual switch. In the case of Front Phantoms and Xlate phantoms this property will be true, and false for all other real switches in the fabric.\n\n")
    ]
    boolean IsVirtual;

     [Override("OperationalStatus"),
     Description("Indicates the current status of the switch.  Various health and operational statuses and the mappings to Brocade statuses are defined.  Many of the enumeration values are self-explanatory.  A few are described here in more detail.\n\n\"Stressed\" indicates that the switch instance is functioning, but needs attention.  Examples of \"Stressed\" states are overload, overheated, and so on.\n\n\"Predictive Failure\" indicates that the switch instance is functioning normally but predicting a failure in the near future.\n\n\"In Service\" indicates that the switch instance is being configured, maintained, cleaned, or otherwise administered.\n\n\"No Contact\" indicates that the monitoring system has knowledge of this switch instance, but has never been able to establish communication with it.\n\n\"Lost Communication\" indicates that the switch instance is known to exist and has been contacted successfully in the past, but is currently unreachable.\n\n\"Stopped\" and \"Aborted\" are similar, although the former implies a clean and orderly stop, while the latter implies an abrupt stop where the switch instance\'s state and configuration might need to be updated.\n\n\"Dormant\" indicates that the switch instance is inactive or quiesced or is used as a standby instance for failover.\n\n\"Supporting Entity in Error\" describes that this element might be \"OK\" but that another element, on which it is dependent, is in error.  An example is a network service or endpoint that cannot function due to lower layer networking problems.\n\n\"Completed\" indicates that the element has completed its operation.  This value is combined with either OK, Error, or Degraded so that a client can tell if the operation passed (Completed with OK), failed (Completed with Error), or finished, but did not complete OK or report an error (Completed with Degraded).\n\n\"Power Mode\" indicates the element has additional power model information contained in the AssociatedPowerManagementService association.\n\nThe following mappings must be made to these status values from the status values defined in Brocade API:\n\"Warning\" maps to \"Stressed\",\n\"Faulty\" maps to \"Error\"."),
     ValueMap{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18"},
     Values{"Unknown", "Other", "OK", "Degraded", "Stressed", "Predictive Failure", "Error", "Non-Recoverable Error", "Starting", "Stopping", "Stopped", "In Service", "No Contact", "Lost Communication", "Aborted", "Dormant", "Supporting Entity in Error", "Completed", "Power Mode"},
     MappingStrings{"API.Brocade | Switch | SwitchStatus"},
     ArrayType("Indexed"),
     ModelCorrespondence{"CIM_ManagedSystemElement.StatusDescriptions"}
    ]
    uint16 OperationalStatus[];

     [Description("A description of the reason for switch operational status.")
    ]
    string StatusReason;

     [Override("EnabledState"),
     Description("EnabledState is an integer enumeration that indicates the enabled and disabled states of the switch.  It can also indicate the transitions between these requested states.  For example, shutting down (value = 4) and starting (value = 10) are transient states between enabled and disabled.  The following summarizes the various states:\n\nEnabled (2) indicates that the element is or could be executing commands, processes any queued commands, and queues new requests.\n\nDisabled (3) indicates that the element does not execute commands and drops any new requests.\n\nShutting Down (4) indicates that the element is in the process of going to a Disabled state.\n\nNot Applicable (5) indicates the element does not support being enabled or disabled.\n\nEnabled but Offline (6) indicates that the element might be completing commands, but will drop any new requests.\n\nTest (7) indicates that the element is in a test state.\n\nDeferred (8) indicates that the element might be completing commands, but queues any new requests.\n\nQuiesce (9) indicates that the element is enabled but in a restricted mode.  The element\'s behavior is similar to the Enabled state, but it processes only a restricted set of commands.  All other requests are queued.\n\nStarting (10) indicates that the element is in the process of going to an Enabled state.  New requests are queued.\n\n\"In Test\" maps to the Brocade API \"Testing\",\n\"Not Applicable\" maps to the Brocade API \"Not Supported\"."),
     ValueMap{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11..32767", "32768..65535"},
     Values{"Unknown", "Other", "Enabled", "Disabled", "Shutting Down", "Not Applicable", "Enabled but Offline", "In Test", "Deferred", "Quiesce", "Starting", "DMTF Reserved", "Vendor Reserved"},
     MappingStrings{"API.Brocade | Switch | SwitchState"},
     ModelCorrespondence{"CIM_EnabledLogicalElement.OtherEnabledState"}
    ]
    uint16 EnabledState = 5;

     [Override("RequestedState"),
     Description("RequestedState is an integer enumeration indicating the new requested state for the Switch.  The actual state of the element is represented by EnabledState.  This property is provided to get the current requested state of the Switch during the state change.  After the state change is done the EnabledState property will have the new value and RequestedState will be set back to 5.\n\nNote that when EnabledState is set to 5 (\"Not Applicable\"), then this property has no meaning.  By default, the element\'s RequestedState is 5 (\"No Change\").  Refer to the EnabledState\'s property description for explanations of the values in the RequestedState enumeration. \n."),
     ValueMap{"2", "3", "4", "5", "6", "7", "8", "9", "10..32767", "32768..65535"},
     Values{"Enabled", "Disabled", "Shut Down", "No Change", "Offline", "Test", "Deferred", "Quiesce", "DMTF Reserved", "Vendor Reserved"},
     ModelCorrespondence{"CIM_EnabledLogicalElement.EnabledState"}
    ]
    uint16 RequestedState = 5;

     [Write(true),
     Description("The switch\'s notion of time-of-day (number of seconds since midnight, January 1, 1970)."),
     MappingStrings{"API.Brocade | Switch | SwitchTime"}
    ]
    datetime SwitchTime;

     [Write(true),
     Description("The time zone, the total offset (hour and minute), reported in minutes.\n\nSupported by Proxy Firmware versions: 2.6.x, 3.1.x,3.2.x,4.1.x, 4.2.x,4.4.x,5.0.x\nSupported by Target Firmware versions: 2.6.x, 3.1.x,3.2.x, 4.1.x, 4.2.x,4.4.x,5.0.x\n"),
     ValueMap{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35"},
     Values{"Unknown Timezone", "-12:00Hrs (Enitwetok, Kwajalien)", "-11:00Hrs (Midway Island, Samoa)", "-10:00Hrs (Hawaii)", "-9:30Hrs", "-9:00Hrs (Alaska)", "-8:30Hrs", "-8.00Hrs (Pacific Time (US & Canada))", "-7:00Hrs (Mountain Time (US & Canada), Arizona)", "-6:00Hrs (Central Time (US & Canada), Mexico City)", "-5:00Hrs (Eastern Time (US & Canada), Bogota, Lima, Quito)", "-4:00Hrs (Atlantic Time (Canada), Caracas, La Paz)", "-3:30Hrs (Newfoundland)", "-3:00Hrs (Brazil, Buenos Aires, Georgetown, Greenland)", "-2:00Hrs (Mid-Atlantic, Ascention Is., St Helena)", "-1:00Hrs (Azores, Cape Verde Islands)", "0Hrs (Casablanca, Dublin, Edinburgh, London, Lisbon, Monrovia)", "1:00Hrs (Berlin, Brussels, Copenhagen, Madrid, Paris, Rome)", "2:00Hrs (Kaliningrad, South Africa, Warsaw)", "3:00Hrs (Baghdad, Riyadh, Moscow, Nairobi)", "3:30Hrs (Tehran)", "4:00Hrs (Adu Dhabi, Baku, Muscat, Tbilisi)", "4:30Hrs (Kabul)", "5:00Hrs (Ekaterinburg, Islamabad, Karachi, Tashkent)", "5:30Hrs (Bombay, Calcutta, Madras, New Delhi)", "6:00Hrs (Almaty, Colombo, Dhaka)", "6:30Hrs (Rangoon)", "7:00Hrs (Bangkok, Hanoi, Jakarta)", "8:00Hrs (Beijing, Hong Kong, Perth, Singapore, Taipei)", "9:00Hrs (Osaka, Sapporo, Seoul, Tokyo, Yakutsk)", "9:30Hrs (Adelaide, Darwin)", "10:00Hrs (Melbourne, Canberra, Sydney, Vladivostok)", "10:30Hrs", "11:00Hrs (Magadan, New Caledonia, Solomon Islands)", "11:30Hrs", "12:00Hrs (Auckland, Wellington, Fiji, Marshall Island)"},
     MappingStrings{"API.Brocade | Switch | SwitchTimeZone"}
    ]
    uint16 SwitchTimeZone;

     [Description("The current role of the switch.  As part of the fabric bringup, one switch in the fabric assumes the role of a principal switch; every other switch assumes a subordinate role unless the principal switch is disabled."),
     ValueMap{"0", "1", "2", "3"},
     Values{"Unknown", "Principal", "Subordinate", "Disabled"},
     MappingStrings{"API.Brocade | Switch | SwitchRole"}
    ]
    uint16 SwitchRole;

     [Write(true),
     Maxlen(1022),
     Description("A message (specified by the administrator) that is displayed whenever a user logs in to a switch.  This is the same capability provided by the MOTD (message of the day) daemon in UNIX systems.\n\nSupported by Proxy Firmware versions: 3.1.x,3.2.x,4.1.x,4.2.x,4.4.x,5.0.x,7.3.x.\nSupported by Target Firmware versions: 3.1.x,3.2.x,4.1.x,4.2.x,4.4.x,5.0.x,7.3.x."),
     MappingStrings{"API.Brocade | Switch | SecureBanner"}
    ]
    string Banner;

     [Description("The period of time elapsed since last reboot.  This value represents an absolute time interval that the switch has been up and NOT the time measured between the last reboot and midnight, January 1, 1970 UTC.\n\nSupported by Proxy Firmware versions: 3.1.x,3.2.x,4.1.x,4.2.x,4.4.x,5.0.x,7.3.x.\nSupported by Target Firmware versions: 3.1.x,3.2.x,4.1.x, 4.2.x,4.4.x,5.0.x,7.3.x."),
     MappingStrings{"API.Brocade | Switch | UpTime"}
    ]
    datetime UpTime;

     [Description("The period of time elapsed since the last configuration change.\n\nSupported by Proxy Firmware versions: 3.1.x,3.2.x,4.1.x,4.2.x,4.4.x,5.0.x,7.3.x.\nSupported by Target Firmware versions: 3.1.x,3.2.x,4.1.x,4.2.x,4.4.x,5.0.x,7.3.x."),
     MappingStrings{"API.Brocade | Switch | LastConfigChangeTime"}
    ]
    datetime LastConfigChangeTime;

     [Description("Reason for most recent switch reboot.\n\nSupported by Proxy Firmware versions: 3.1.x,3.2.x,4.1.x,4.2.x,4.4.x,5.0.x\nSupported by Target Firmware versions: 3.1.x,3.2.x,4.1.x,4.2.x,4.4.x,5.0.x"),
     MappingStrings{"API.Brocade | Switch | BootUpReason"}
    ]
    string RebootReason;

     [Write(true),
     Description("True if beacon is turned on, false if off.\n\nSupported by Proxy Firmware versions: 3.1.x,3.2.x,4.1.x,4.2.x,4.4.x,5.0.x,7.3.x.\nSupported by Target Firmware versions: 3.1.x,3.2.x,4.1.x,4.2.x,4.4.x,5.0.x,7.3.x."),
     MappingStrings{"API.Brocade | Switch | BeaconEnable"}
    ]
    boolean Beacon;

     [Description("Domain IDs are assigned by the principal switch at fabric configuration.  DomainIdConfirmed indicates whether the switch currently has a valid domain ID.\n\nSupported by Proxy Firmware versions: 3.1.x,3.2.x,4.1.x,4.2.x,4.4.x,5.0.x,7.3.x.\nSupported by Target Firmware versions: 3.1.x,3.2.x,4.1.x,4.2.x,4.4.x,5.0.x,7.3.x."),
     MappingStrings{"API.Brocade | Switch | DomainConfirmed"}
    ]
    boolean DomainIdConfirmed;

     [Write(true),
     Description("Each IP address specified should be the IP address of an NTP server.  The Time Server on the switch synchronizes fabric time by sending updates of the principal or primary FCS local switch time periodically to every switch in the fabric.  The Time Server runs on all switches in the fabric, but only the principal switch (when the Security feature not enabled) or the primary FCS switch (when the Security feature is enabled) connect to the NTP server and broadcast Time Service updates.\n\nSupported by Proxy Firmware versions: 3.1.x,3.2.x,4.1.x,4.2.x,4.4.x,5.0.x.\nSupported by Target Firmware versions: 3.1.x,3.2.x,4.1.x,4.2.x,4.4.x,5.0.x."),
     MappingStrings{"API.Brocade | Switch | SNTPAddressList"}
    ]
    string SNTPAddressList[];

     [Write(true),
     Description("Syslog daemon (syslogd) is a process available on most UNIX systems that reads and forwards system messages to the appropriate log files and users, depending on the system configuration.  When one or more IP addresses are configured, the switch forwards all error log entries to the syslogd on all the specified servers.  Up to six servers are supported.\n\nSupported by Proxy Firmware versions: 3.1.x,3.2.x,4.1.x,4.2.x,4.4.x,5.0.x.\nSupported by Target Firmware versions: 3.1.x,3.2.x,4.1.x,4.2.x,4.4.x,5.0.x."),
     MappingStrings{"API.Brocade | Switch | SysLogDIPSet"}
    ]
    string SysLogAddressList[];

     [Description("DNS-assigned domain for the switch.\n\nSupported by Proxy Firmware versions: 3.1.x,3.2.x,4.1.x,4.2.x,4.4.x,5.0.x.\nSupported by Target Firmware versions: 3.1.x,3.2.x,4.1.x,4.2.x,4.4.x,5.0.x."),
     MappingStrings{"API.Brocade | Switch | DNSInfo.DomainName"}
    ]
    string DomainName;

     [Description("Addresses of DNS Servers that can map between a connection endpoint address and the hostname of the switch.\n\nSupported by Proxy Firmware versions: 3.1.x,3.2.x,4.1.x,4.2.x,4.4.x,5.0.x.\nSupported by Target Firmware versions: 3.1.x,3.2.x,4.1.x,4.2.x,4.4.x,5.0.x."),
     MappingStrings{"API.Brocade | Switch | DNSInfo.NameServerAddrSet"}
    ]
    string DNSServerAddressList[];

    [Override("RequestStateChange"),
     Description("Requests that switch state be changed to one of the values from the input list.  When the requested state change takes place, the element\'s EnabledState and RequestedState will be the same.  The use of ConcreteJob (if the operation is performed asynchronously) is not supported and hence should always return NULL."),
     ValueMap{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "32768"},
     Values{"Completed with No Error", "Not Supported", "Unknown/Unspecified Error", "Can NOT complete within Timeout Period", "Failed", "Invalid Parameter", "In Use", "Not_Found", "Already_Exists", "Insufficient_Resources", "Access_Denied"},
     ModelCorrespondence{"CIM_EnabledLogicalElement.RequestedState"}
    ]
    uint32 RequestStateChange([IN(true), Required(true), Description("The state requested for the element.  This information will be placed into the instance\'s RequestedState property if the RequestStateChange method\'s return code is 0, 3 (\'Completed with No Error\', \'Timeout\') respectively.  Refer to the description of the EnabledState property for the detailed meanings of the RequestedState Values. WarmBoot and ColdBoot states are deprecated. Only Enabled, Offline and Reboot states are supported. \'WarmBoot\' state is the same as Reboot. Attempting to set \'ColdBoot\' will return \'Not Supported\'. Setting \'Disabled\' state is equivalent to setting \'Offline\' state."), ModelCorrespondence{"CIM_EnabledLogicalElement.RequestedState"}, ValueMap{"2", "3", "6", "10", "32768", "32769"}, Values{"Enabled", "Disabled", "Offline", "Reboot", "ColdBoot", "WarmBoot"}] uint16 RequestedState, [OUT(true), IN(false), Description("Reference to the job (can be null if task completed).")] CIM_ConcreteJob REF Job, [IN(true), Description("A timeout period that specifies the maximum amount of time that the client expects the transition to the new state to take.  The interval format MUST be used to specify the TimeoutPeriod.  A value of 0 or a null parameter indicates that the client has no time requirements for the transition.\n\nIf this property does not contain 0 or null and the implementation does not support this parameter, a return code of \'Use Of Timeout Parameter Not Supported\' MUST be returned")] datetime TimeoutPeriod);
     [Description("Configure the DNS Information viz. Domain Name and DNS Server AddressList.\nSupported by Proxy Firmware versions: 3.1.x,3.2.x,4.1.x,4.2.x,4.4.x,5.0.x.\nSupported by Target Firmware versions: 3.1.x,3.2.x,4.1.x,4.2.x,4.4.x,5.0.x."),
     ValueMap{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"},
     Values{"Completed with No Error", "Not Supported", "Unknown/Unspecified Error", "Can NOT complete within Timeout Period", "Failed", "Invalid Parameter", "Access_Denied", "Not_Found", "Already_Exists", "Insufficient_Resources"}
    ]
    uint32 ConfigureDNSParameters([IN(true), Required(true), Description("DNS-assigned domain for the switch"), ModelCorrespondence{"DomainName"}] string DomainName, [IN(true), Required(true), Description("Addresses of DNS Servers that can map between a connection endpoint address and the hostname of the switch"), ModelCorrespondence{"DNSServerAddressList"}] string DNSServerAddressList[]);
};
