[ogsa-wg] Material for F2F model discussion

Hiro Kishimoto hiro.kishimoto at jp.fujitsu.com
Thu Aug 11 18:55:10 CDT 2005


Thanks Fred,

May I ask you to upload your documents in the "2005 Aug interim" folder
on GridForge for the convenience of attendees?

https://forge.gridforum.org/docman2/ViewCategory.php?group_id=42&category_id=1107

Thanks again,
----
Hiro Kishimoto

Fred Maciel wrote:
> Hi,
> 
> (1) Here is a new version of the document (Word file). I didn't receive many
> comments, so there were only minor changes on the contents compared to the
> version I posted last week. Notice that we will try to sort out the resource
> model vs information model vs data model nomenclature problem (and perhaps
> other ones) on the teleconference on Friday. I'm posting the document before
> we have a conclusion so that you can print it and read it on the plane.
> 
> (2) I'm including the model proposal that Andrea created (already posted to
> the mailing list during GGF14) for your convenience. I re-created the PDF
> file to put everything in two sheets (watch out the paper size when you
> print it).
> 
> I also created a text file with the description of the classes, properties
> and methods in this model, so you can see what they mean. I created this
> file by copying-and-pasting from the CIM MOF (Manageable Object Format)
> files, so apologies for the syntax. Remember that the model proposal
> "flattens" the CIM classes (which I did in the text file also), erases
> deprecated stuff (idem), and erases stuff out of scope wrt JSDL, containers
> and activities (which I also erased from the text file, but not
> exhaustively).
> 
> (3) Here is an updated list of pointers on related specs. 
> 
> - JSIM: the spec (GFD-I.028) is at:
> https://forge.gridforum.org/projects/ggf-editor/document/GFD.28/en/1
> There is also a UML diagram:
> https://forge.gridforum.org/projects/ogsa-wg/document/JSIM_PDF/en/1
> 
> - CIM: the schemas are under:
> http://www.dmtf.org/standards/cim
> JSIM classes are in 2.10 experimental (awaiting implementation experience to
> become final).
> You can find a tutorial (HTML and PDF) at:
> http://www.wbemsolutions.com/tutorials/CIM/
> 
> - JSDL:
> http://www.ggf.org/Public_Comment_Docs/Documents/July-2005/draft-ggf-jsdl-sp
> ec-021.pdf
> There's a nice introduction at:
> https://forge.gridforum.org/projects/jsdl-wg/document/JSDL-Introduction/en/
> 
> - GLUE 1.1: the schemas are in
> http://infnforge.cnaf.infn.it/glueinfomodel/
> There's a good presentation on GLUE 1.1:
> http://www.dma.unina.it/~murli/SummerSchool/presentations/InformationModelin
> g-GLUE.ppt
> 
> - GLUE 1.2: 
> http://infnforge.cnaf.infn.it/glueinfomodel/
> The latest draft can be found under:
> http://infnforge.cnaf.infn.it/glueinfomodel/uploads/Spec/GLUEInfoModel_1_2_d
> raft_8.pdf
> There is a very good presentation at:
> http://infnforge.cnaf.infn.it/cdsagenda//askArchive.php?base=agenda&categ=a0
> 56&id=a056s0t1/transparencies
> 
> Regards,
> 
> Fred Maciel
> 
> 
> 
> 
> 
> ------------------------------------------------------------------------
> 
> // ==================================================================
> //  CIM_LogicalElement
> // ==================================================================
>    [Abstract, 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 {
> 
> (Comment by Fred: stuff below inherited from 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. \n"
>           "Note that the Name property of ManagedSystemElement is also "
>           "defined as a user-friendly name. But, it is often "
>           "subclassed to be a Key. It is not reasonable that the same "
>           "property can convey both identity and a user-friendly name, "
>           "without inconsistencies. Where Name exists and is not a Key "
>           "(such as for instances of LogicalDevice), the same "
>           "information can be present in both the Name and ElementName "
>           "properties.")]
>    string ElementName;
> 
> (Comment by Fred: stuff below inherited from ManagedSystemElement)
> 
>       [Description (
>           "A datetime value that indicates when the object was "
>           "installed. 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 statuses of the element. Various "
>           "operational statuses are defined. Many of the enumeration's "
>           "values are self-explanatory. However, a few are not and are "
>           "described here in more detail. \n"
>           "\"Stressed\" indicates that the element is functioning, but "
>           "needs attention. Examples of \"Stressed\" states are "
>           "overload, overheated, and so on. \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 state and configuration of "
>           "the element might need to be updated. \n"
>           "\"Dormant\" indicates that the element is inactive or "
>           "quiesced. \n"
>           "\"Supporting Entity in Error\" indicates 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"
>           "\"Completed\" indicates that the element has completed its "
>           "operation. This value should be combined with either OK, "
>           "Error, or Degraded so that a client can tell if the "
>           "complete operation Completed with OK (passed), Completed "
>           "with Error (failed), or Completed with Degraded (the "
>           "operation finished, but it did not complete OK or did not "
>           "report an error). \n"
>           "\"Power Mode\" indicates that the element has additional "
>           "power model information contained in the Associated "
>           "PowerManagementService association. \n"
>           "OperationalStatus 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 "
>           "because it required the deprecated qualifier. Due to the "
>           "widespread use of the existing Status property in "
>           "management applications, it is strongly recommended that "
>           "providers or 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 (because 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[];
> 
>       [Experimental, Description (
>           "Indicates the current health of the element. This attribute "
>           "expresses the health of this element but not necessarily "
>           "that of its subcomponents. The possible values are 0 to 30, "
>           "where 5 means the element is entirely healthy and 30 means "
>           "the element is completely non-functional. The following "
>           "continuum is defined: \n"
>           "\"Non-recoverable Error\" (30) - The element has completely "
>           "failed, and recovery is not possible. All functionality "
>           "provided by this element has been lost. \n"
>           "\"Critical Failure\" (25) - The element is non-functional "
>           "and recovery might not be possible. \n"
>           "\"Major Failure\" (20) - The element is failing. It is "
>           "possible that some or all of the functionality of this "
>           "component is degraded or not working. \n"
>           "\"Minor Failure\" (15) - All functionality is available but "
>           "some might be degraded. \n"
>           "\"Degraded/Warning\" (10) - The element is in working order "
>           "and all functionality is provided. However, the element is "
>           "not working to the best of its abilities. For example, the "
>           "element might not be operating at optimal performance or it "
>           "might be reporting recoverable errors. \n"
>           "\"OK\" (5) - The element is fully functional and is "
>           "operating within normal operational parameters and without "
>           "error. \n"
>           "\"Unknown\" (0) - The implementation cannot report on "
>           "HealthState at this time. \n"
>           "DMTF has reserved the unused portion of the continuum for "
>           "additional HealthStates in the future."), 
>        ValueMap { "0", "5", "10", "15", "20", "25", "30", ".." }, 
>        Values { "Unknown", "OK", "Degraded/Warning", "Minor failure",
>           "Major failure", "Critical failure", "Non-recoverable error",
>           "DMTF Reserved" }]
>    uint16 HealthState;
> 
> };
> 
> // ==================================================================
> //  CIM_BatchJob
> // ==================================================================
>    [Experimental, Version ( "2.8.1000" ), Description (
>        "Description of a batch request that is either waiting on a "
>        "BatchQueue to run, in the process of running, or that has "
>        "previously run. Jobs that are completed and not recurring will "
>        "NOT be associated with a BatchQueue. Jobs that are completed "
>        "but recurring WILL be associated with a BatchQueue, since they "
>        "are waiting to run given the scheduling information in the "
>        "associated JobSettingData instance.")]
> class CIM_BatchJob : CIM_ConcreteJob {
> 
> (Comment by Fred: stuff below inherited from ConcreteJob)
> 
>       [Key, 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> \n"
>           "Where <OrgID> and <LocalID> are separated by a colon ':', "
>           "and where <OrgID> must include a copyrighted, trademarked "
>           "or otherwise unique name that is owned by the business "
>           "entity that is creating or defining the InstanceID, or that "
>           "is a registered ID that is assigned to the business entity "
>           "by a recognized global authority. (This requirement is "
>           "similar to the <Schema Name>_<Class Name> structure of "
>           "Schema class names.) In addition, to ensure uniqueness "
>           "<OrgID> must not contain a colon (':'). When using this "
>           "algorithm, the first colon to appear in InstanceID must "
>           "appear between <OrgID> and <LocalID>. \n"
>           "<LocalID> is chosen by the business entity and should not "
>           "be re-used to identify different underlying (real-world) "
>           "elements. If the above 'preferred' algorithm is not used, "
>           "the defining entity must assure that the resulting "
>           "InstanceID is not re-used across any InstanceIDs produced "
>           "by this or other providers for the NameSpace of this "
>           "instance. \n"
>           "For DMTF defined instances, the 'preferred' algorithm must "
>           "be used with the <OrgID> set to 'CIM'.")]
>    string InstanceID;
> 
>       [Required, Override ( "Name" ), Description (
>           "The user-friendly name for this instance of a Job. In "
>           "addition, the user-friendly name can be used as a property "
>           "for a search or query. (Note: Name does not have to be "
>           "unique within a namespace.)")]
>    string Name;
> 
>       [Description (
>           "JobState is an integer enumeration that indicates the "
>           "operational state of a Job. It can also indicate "
>           "transitions between these states, for example, 'Shutting "
>           "Down' and 'Starting'. Following is a brief description of "
>           "the states: \n"
>           "New (2) indicates that the job has never been started. \n"
>           "Starting (3) indicates that the job is moving from the "
>           "'New', 'Suspended', or 'Service' states into the 'Running' "
>           "state. \n"
>           "Running (4) indicates that the Job is running. \n"
>           "Suspended (5) indicates that the Job is stopped, but can be "
>           "restarted in a seamless manner. \n"
>           "Shutting Down (6) indicates that the job is moving to a "
>           "'Completed', 'Terminated', or 'Killed' state. \n"
>           "Completed (7) indicates that the job has completed "
>           "normally. \n"
>           "Terminated (8) indicates that the job has been stopped by a "
>           "'Terminate' state change request. The job and all its "
>           "underlying processes are ended and can be restarted (this "
>           "is job-specific) only as a new job. \n"
>           "Killed (9) indicates that the job has been stopped by a "
>           "'Kill' state change request. Underlying processes might "
>           "have been left running, and cleanup might be required to "
>           "free up resources. \n"
>           "Exception (10) indicates that the Job is in an abnormal "
>           "state that might be indicative of an error condition. "
>           "Actual status might be displayed though job-specific "
>           "objects. \n"
>           "Service (11) indicates that the Job is in a vendor-specific "
>           "state that supports problem discovery, or resolution, or "
>           "both."), 
>        ValueMap { "2", "3", "4", "5", "6", "7", "8", "9", "10", "11",
>           "12..32767", "32768..65535" }, 
>        Values { "New", "Starting", "Running", "Suspended",
>           "Shutting Down", "Completed", "Terminated", "Killed",
>           "Exception", "Service", "DMTF Reserved", "Vendor Reserved" }]
>    uint16 JobState;
> 
>       [Description (
>           "The date or time when the state of the Job last changed. If "
>           "the state of the Job 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 state of the job be changed to the value "
>           "specified in the RequestedState parameter. Invoking the "
>           "RequestStateChange method multiple times could result in "
>           "earlier requests being overwritten or lost. \n"
>           "If 0 is returned, then the task completed successfully. 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 - Transition Started",
>           "Invalid State Transition",
>           "Use of Timeout Parameter Not Supported", "Busy",
>           "Method Reserved", "Vendor Specific" }]
>    uint32 RequestStateChange( 
>          [IN, Description (
>              "RequestStateChange changes the state of a job. The "
>              "possible values are as follows: \n"
>              "Start (2) changes the state to 'Running'. \n"
>              "Suspend (3) stops the job temporarily. The intention is "
>              "to subsequently restart the job with 'Start'. It might "
>              "be possible to enter the 'Service' state while "
>              "suspended. (This is job-specific.) \n"
>              "Terminate (4) stops the job cleanly, saving data, "
>              "preserving the state, and shutting down all underlying "
>              "processes in an orderly manner. \n"
>              "Kill (5) terminates the job immediately with no "
>              "requirement to save data or preserve the state. \n"
>              "Service (6) puts the job into a vendor-specific service "
>              "state. It might be possible to restart the job."), 
>           ValueMap { "2", "3", "4", "5", "6", "7..32767",
>              "32768..65535" }, 
>           Values { "Start", "Suspend", "Terminate", "Kill", "Service",
>              "DMTF Reserved", "Vendor Reserved" }]
>       uint16 RequestedState, 
>          [IN, 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"
>              "If 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); 
> 
>       [Experimental, Description (
>           "When the job is executing or has terminated without error, "
>           "then this method returns no CIM_Error instance. However, if "
>           "the job has failed because of some internal problem or "
>           "because the job has been terminated by a client, then a "
>           "CIM_Error instance is returned."), 
>        ValueMap { "0", "1", "2", "3", "4", "5", "6", "4098..32767",
>           "32768..65535" }, 
>        Values { "Success", "Not Supported", "Unspecified Error",
>           "Timeout", "Failed", "Invalid Parameter", "Access Denied",
>           "DMTF Reserved", "Vendor Specific" }]
>    uint32 GetError ( 
>          [OUT, Description (
>              "If the OperationalStatus on the Job is not \"OK\", then "
>              "this method will return a CIM Error instance. Otherwise, "
>              "when the Job is \"OK\", null is returned."), 
>           EmbeddedInstance ( "CIM_Error" )]
>       string Error); 
> 
>       [Required, Write, Description (
>           "The amount of time that the Job is retained after it has "
>           "finished executing, either succeeding or failing in that "
>           "execution. The job must remain in existence for some period "
>           "of time regardless of the value of the DeleteOnCompletion "
>           "property. \n"
>           "The default is five minutes.")]
>    datetime TimeBeforeRemoval = "00000000000500.000000:000";
> 
> (Comment from Fred: stuff below inherited from Job)
> 
>       [Description (
>           "A free-form string that represents the status of the job. "
>           "The primary status is reflected in the inherited "
>           "OperationalStatus property. JobStatus provides additional, "
>           "implementation-specific details."), 
>        ModelCorrespondence { 
>           "CIM_ManagedSystemElement.OperationalStatus" }]
>    string JobStatus;
> 
>       [Description (
>           "The time that the Job was submitted to execute. A value of "
>           "all zeroes indicates that the owning element is not capable "
>           "of reporting a date and time. Therefore, the "
>           "ScheduledStartTime and StartTime are reported as intervals "
>           "relative to the time their values are requested.")]
>    datetime TimeSubmitted;
> 
>       [Deprecated { "CIM_Job.RunMonth", "CIM_Job.RunDay",
>           "CIM_Job.RunDayOfWeek", "CIM_Job.RunStartInterval" }, Write, 
>        Description (
>           "The time that the current Job is scheduled to start. This "
>           "time can be represented by the actual date and time, or an "
>           "interval relative to the time that this property is "
>           "requested. A value of all zeroes indicates that the Job is "
>           "already executing. The property is deprecated in lieu of "
>           "the more expressive scheduling properties, RunMonth, "
>           "RunDay, RunDayOfWeek, and RunStartInterval.")]
>    datetime ScheduledStartTime;
> 
>       [Description (
>           "The time that the Job was actually started. This time can "
>           "be represented by an actual date and time, or by an "
>           "interval relative to the time that this property is "
>           "requested. Note that this property is also present in the "
>           "JobProcessingStatistics class. This class is necessary to "
>           "capture the processing information for recurring Jobs, "
>           "because only the 'last' run time can be stored in this "
>           "single-valued property.")]
>    datetime StartTime;
> 
>       [Description (
>           "The time interval that the Job has been executing or the "
>           "total execution time if the Job is complete. Note that this "
>           "property is also present in the JobProcessingStatistics "
>           "class. This class is necessary to capture the processing "
>           "information for recurring Jobs, because only the 'last' run "
>           "time can be stored in this single-valued property.")]
>    datetime ElapsedTime;
> 
>       [Write, Description (
>           "The number of times that the Job should be run. A value of "
>           "1 indicates that the Job is not recurring, while any "
>           "non-zero value indicates a limit to the number of times "
>           "that the Job will recur. Zero indicates that there is no "
>           "limit to the number of times that the Job can be processed, "
>           "but that it is terminated either after the UntilTime or by "
>           "manual intervention. By default, a Job is processed once.")]
>    uint32 JobRunTimes = 1;
> 
>       [Write, Description (
>           "The month during which the Job should be processed. Specify "
>           "0 for January, 1 for February, and so on."), 
>        ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
>           "10", "11" }, 
>        Values { "January", "February", "March", "April", "May", "June",
>           "July", "August", "September", "October", "November",
>           "December" }, 
>        ModelCorrespondence { "CIM_Job.RunDay", "CIM_Job.RunDayOfWeek",
>           "CIM_Job.RunStartInterval" }]
>    uint8 RunMonth;
> 
>       [Write, Description (
>           "The day in the month on which the Job should be processed. "
>           "There are two different interpretations for this property, "
>           "depending on the value of DayOfWeek. In one case, RunDay "
>           "defines the day-in-month on which the Job is processed. "
>           "This interpretation is used when the DayOfWeek is 0. A "
>           "positive or negative integer indicates whether the RunDay "
>           "should be calculated from the beginning or end of the "
>           "month. For example, 5 indicates the fifth day in the "
>           "RunMonth and -1 indicates the last day in the RunMonth. \n"
>           "\n"
>           "When RunDayOfWeek is not 0, RunDay is the day-in-month on "
>           "which the Job is processed, defined in conjunction with "
>           "RunDayOfWeek. For example, if RunDay is 15 and RunDayOfWeek "
>           "is Saturday, then the Job is processed on the first "
>           "Saturday on or after the 15th day in the RunMonth (for "
>           "example, the third Saturday in the month). If RunDay is 20 "
>           "and RunDayOfWeek is -Saturday, then this indicates the "
>           "first Saturday on or before the 20th day in the RunMonth. "
>           "If RunDay is -1 and RunDayOfWeek is -Sunday, then this "
>           "indicates the last Sunday in the RunMonth."), 
>        MinValue ( -31 ), MaxValue ( 31 ), 
>        ModelCorrespondence { "CIM_Job.RunMonth",
>           "CIM_Job.RunDayOfWeek", "CIM_Job.RunStartInterval" }]
>    sint8 RunDay;
> 
>       [Write, Description (
>           "A positive or negative integer used in conjunction with "
>           "RunDay to indicate the day of the week on which the Job is "
>           "processed. RunDayOfWeek is set to 0 to indicate an exact "
>           "day of the month, such as March 1. A positive integer "
>           "(representing Sunday, Monday, ..., Saturday) means that the "
>           "day of week is found on or after the specified RunDay. A "
>           "negative integer (representing -Sunday, -Monday, ..., "
>           "-Saturday) means that the day of week is found on or BEFORE "
>           "the RunDay."), 
>        ValueMap { "-7", "-6", "-5", "-4", "-3", "-2", "-1", "0", "1",
>           "2", "3", "4", "5", "6", "7" }, 
>        Values { "-Saturday", "-Friday", "-Thursday", "-Wednesday",
>           "-Tuesday", "-Monday", "-Sunday", "ExactDayOfMonth",
>           "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday",
>           "Friday", "Saturday" }, 
>        ModelCorrespondence { "CIM_Job.RunMonth", "CIM_Job.RunDay",
>           "CIM_Job.RunStartInterval" }]
>    sint8 RunDayOfWeek;
> 
>       [Write, Description (
>           "The time interval after midnight when the Job should be "
>           "processed. For example, \n"
>           "00000000020000.000000:000 \n"
>           "indicates that the Job should be run on or after two "
>           "o'clock, local time or UTC time (distinguished using the "
>           "LocalOrUtcTime property."), 
>        ModelCorrespondence { "CIM_Job.RunMonth", "CIM_Job.RunDay",
>           "CIM_Job.RunDayOfWeek", "CIM_Job.RunStartInterval" }]
>    datetime RunStartInterval;
> 
>       [Write, Description (
>           "This property indicates whether the times represented in "
>           "the RunStartInterval and UntilTime properties represent "
>           "local times or UTC times. Time values are synchronized "
>           "worldwide by using the enumeration value 2, \"UTC Time\"."), 
>        ValueMap { "1", "2" }, 
>        Values { "Local Time", "UTC Time" }]
>    uint16 LocalOrUtcTime;
> 
>       [Write, Description (
>           "The time after which the Job is invalid or should be "
>           "stopped. This time can be represented by an actual date and "
>           "time, or by an interval relative to the time that this "
>           "property is requested. A value of all nines indicates that "
>           "the Job can run indefinitely."), 
>        ModelCorrespondence { "CIM_Job.LocalOrUtcTime" }]
>    datetime UntilTime;
> 
>       [Write, Description (
>           "The User who is to be notified upon the Job completion or "
>           "failure.")]
>    string Notify;
> 
>       [Description (
>           "The User that submitted the Job, or the Service or method "
>           "name that caused the job to be created."), 
>        ModelCorrespondence { "CIM_OwningJobElement" }]
>    string Owner;
> 
>       [Write, Description (
>           "Indicates the urgency or importance of execution of the "
>           "Job. The lower the number, the higher the priority. Note "
>           "that this property is also present in the "
>           "JobProcessingStatistics class. This class is necessary to "
>           "capture the setting information that would influence the "
>           "results of a job.")]
>    uint32 Priority;
> 
>       [Description (
>           "The percentage of the job that has completed at the time "
>           "that this value is requested. Note that this property is "
>           "also present in the JobProcessingStatistics class. This "
>           "class is necessary to capture the processing information "
>           "for recurring Jobs, because only the 'last' run data can be "
>           "stored in this single-valued property. \n"
>           "Note that the value 101 is undefined and will be not be "
>           "allowed in the next major revision of the specification."), 
>        Units ( "Percent" ), MinValue ( 0 ), MaxValue ( 101 )]
>    uint16 PercentComplete;
> 
>       [Write, Description (
>           "Indicates whether or not the job should be automatically "
>           "deleted upon completion. Note that the 'completion' of a "
>           "recurring job is defined by its JobRunTimes or UntilTime "
>           "properties, or when the Job is terminated by manual "
>           "intervention. If this property is set to false and the job "
>           "completes, then the extrinsic method DeleteInstance must be "
>           "used to delete the job instead of updating this property.")]
>    boolean DeleteOnCompletion;
> 
>       [Description (
>           "A vendor-specific error code. The value must be set to zero "
>           "if the Job completed without error. Note that this property "
>           "is also present in the JobProcessingStatistics class. This "
>           "class is necessary to capture the processing information "
>           "for recurring Jobs, because only the 'last' run error can "
>           "be stored in this single-valued property."), 
>        ModelCorrespondence { "CIM_Job.ErrorDescription" }]
>    uint16 ErrorCode;
> 
>       [Description (
>           "A free-form string that contains the vendor error "
>           "description. Note that this property is also present in the "
>           "JobProcessingStatistics class. This class is necessary to "
>           "capture the processing information for recurring Jobs, "
>           "because only the 'last' run error can be stored in this "
>           "single-valued property."), 
>        ModelCorrespondence { "CIM_Job.ErrorCode" }]
>    string ErrorDescription;
> 
>       [Description (
>           "Describes the recovery action to be taken for an "
>           "unsuccessfully run Job. The possible values are: \n"
>           "0 = \"Unknown\", meaning it is unknown as to what recovery "
>           "action to take \n"
>           "1 = \"Other\", indicating that the recovery action will be "
>           "specified in the OtherRecoveryAction property \n"
>           "2 = \"Do Not Continue\", meaning stop the execution of the "
>           "job and appropriately update its status \n"
>           "3 = \"Continue With Next Job\", meaning continue with the "
>           "next job in the queue \n"
>           "4 = \"Re-run Job\", indicating that the job should be "
>           "re-run \n"
>           "5 = \"Run Recovery Job\", meaning run the Job associated "
>           "using the RecoveryJob relationship. Note that the recovery "
>           "Job must already be in the queue from which it will run."), 
>        ValueMap { "0", "1", "2", "3", "4", "5" }, 
>        Values { "Unknown", "Other", "Do Not Continue",
>           "Continue With Next Job", "Re-run Job", "Run Recovery Job" }, 
>        ModelCorrespondence { "CIM_Job.OtherRecoveryAction" }]
>    uint16 RecoveryAction;
> 
>       [Description (
>           "A string describing the recovery action when the "
>           "RecoveryAction property of the instance is 1 (\"Other\")."), 
>        ModelCorrespondence { "CIM_Job.RecoveryAction" }]
>    string OtherRecoveryAction;
> 
> (Comment from Fred: stuff below in BatchJob)
> 
>       [Required, Override ( "Name" ), Description (
>           "Uniquely identifies this Job within a BatchQueue and "
>           "BatchService. This property can be used in the construction "
>           "of the InstanceID key inherited from ConcreteJob.")]
>    string Name;
> 
>       [Write, Description (
>           "Specifies the maximum number of milliseconds of CPU time "
>           "that this job can use in any individual run."), 
>        Units ( "MilliSeconds" )]
>    uint32 MaxCPUTime;
> 
>       [Description (
>           "Time when this BatchJob was completed. This value is only "
>           "valid if the inherited JobState property has been set to "
>           "\"Completed\" (value=7), \"Terminated\" (value=8), or "
>           "\"Killed\" (value=9)."), 
>        ModelCorrespondence { "CIM_BatchJob.JobState" }]
>    datetime TimeCompleted;
> 
>       [Write, Description (
>           "Provides additional information, beyond Job Owner inherited "
>           "from CIM_Job, to identify the origins of the BatchJob. This "
>           "property could include information such as the System, "
>           "application or Process that created the BatchJob.")]
>    string JobOrigination;
> 
>       [Description (
>           "Provides the command and parameters, in string form, for "
>           "the execution of this job.")]
>    string Task;
> };
> 
> // ==================================================================
> //  CIM_EnabledLogicalElement
> // ==================================================================
>    [Abstract, Version ( "2.10.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 and 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 and disabled states: \n"
>           "Enabled (2) indicates that the element is or could be "
>           "executing commands, will process any queued commands, and "
>           "queues new requests. \n"
>           "Disabled (3) indicates that the element will not execute "
>           "commands and will drop any new requests. \n"
>           "Shutting Down (4) indicates that the element is in the "
>           "process of going to a Disabled state. \n"
>           "Not Applicable (5) indicates the element does not support "
>           "being enabled or disabled. \n"
>           "Enabled but Offline (6) indicates that the element might be "
>           "completing commands, and will drop any new requests. \n"
>           "Test (7) indicates that the element is in a test state. \n"
>           "Deferred (8) indicates that the element might be completing "
>           "commands, but will queue any new requests. \n"
>           "Quiesce (9) indicates that the element is enabled but in a "
>           "restricted mode. The behavior of the element is similar to "
>           "the Enabled state, but it processes only a restricted set "
>           "of commands. All other requests are queued. \n"
>           "Starting (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 that describes the enabled or disabled state of "
>           "the element 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 that indicates 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 or disabled states. Note that when "
>           "EnabledState is set to 5 (\"Not Applicable\"), then this "
>           "property has no meaning. By default, the RequestedState of "
>           "the element is 5 (\"No Change\"). Refer to the EnabledState "
>           "property description for explanations of the values in the "
>           "RequestedState enumeration. \n"
>           "\n"
>           "It 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). Reboot refers "
>           "to doing a \"Shut Down\" and then moving to an \"Enabled\" "
>           "state. Reset indicates that the element is first "
>           "\"Disabled\" and then \"Enabled\". The distinction between "
>           "requesting \"Shut Down\" and \"Disabled\" should also be "
>           "noted. Shut Down requests an orderly transition to the "
>           "Disabled state, and might involve removing power, to "
>           "completely erase any existing state. The Disabled state "
>           "requests an immediate disabling of the element, such that "
>           "it will not execute or accept any commands or processing "
>           "requests. \n"
>           "\n"
>           "This property is set as the result of a method invocation "
>           "(such as Start or StopService on CIM_Service), or can be "
>           "overridden and defined as WRITEable in a subclass. The "
>           "method approach is considered superior to a WRITEable "
>           "property, because it allows an explicit invocation of the "
>           "operation and the return of a result code. \n"
>           "\n"
>           "A particular instance of EnabledLogicalElement might not "
>           "support RequestedStateChange. If this occurs, the value 12 "
>           "(\"Not Applicable\") is used."), 
>        ValueMap { "2", "3", "4", "5", "6", "7", "8", "9", "10", "11",
>           "12", "..", "32768..65535" }, 
>        Values { "Enabled", "Disabled", "Shut Down", "No Change",
>           "Offline", "Test", "Deferred", "Quiesce", "Reboot", "Reset",
>           "Not Applicable", "DMTF Reserved", "Vendor Reserved" }, 
>        ModelCorrespondence { "CIM_EnabledLogicalElement.EnabledState" }]
>    uint16 RequestedState = 12;
> 
>       [Write, Description (
>           "An enumerated value indicating an administrator's default "
>           "or startup configuration for the Enabled State of an "
>           "element. 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 or time when the EnabledState of the element 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 state of the element be changed to the "
>           "value specified in the RequestedState parameter. When the "
>           "requested state change takes place, the EnabledState and "
>           "RequestedState of the element will be the same. Invoking "
>           "the RequestStateChange method multiple times could result "
>           "in earlier requests being overwritten or lost. \n"
>           "If 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 or Unspecified Error",
>           "Cannot 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, Description (
>              "The state requested for the element. This information "
>              "will be placed into the RequestedState property of the "
>              "instance if the return code of the RequestStateChange "
>              "method is 0 ('Completed with No Error'), 3 ('Timeout'), "
>              "or 4096 (0x1000) ('Job Started'). Refer to the "
>              "description of the EnabledState and RequestedState "
>              "properties for the detailed explanations 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, Description (
>              "Reference to the job (can be null if the task is "
>              "completed).")]
>       CIM_ConcreteJob REF Job, 
>          [IN, 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"
>              "If 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); 
> };
> 
> // ===================================================================
> // CIM_LogicalDevice
> // ===================================================================
>    [Abstract, Version ( "2.10.0" ), Description (
>        "An abstraction or emulation of a hardware entity, that might "
>        "or might not be Realized in physical hardware. Any "
>        "characteristics of a LogicalDevice that are used to manage its "
>        "operation or configuration are contained in, or associated "
>        "with, the LogicalDevice object. Examples of the operational "
>        "properties of a Printer would be paper sizes supported or "
>        "detected errors. Examples of the configuration properties of a "
>        "Sensor Device would be threshold settings. Various "
>        "configurations could exist for a LogicalDevice. These "
>        "configurations could be contained in Setting objects and "
>        "associated with the LogicalDevice.")]
> class CIM_LogicalDevice : CIM_EnabledLogicalElement {
> 
>       [Key, Propagated ( "CIM_System.CreationClassName" ), 
>        Description (
>           "The CreationClassName of the scoping system."), 
>        MaxLen ( 256 )]
>    string SystemCreationClassName;
> 
>       [Key, Propagated ( "CIM_System.Name" ), Description (
>           "The System Name of the scoping system."), 
>        MaxLen ( 256 )]
>    string SystemName;
> 
>       [Key, 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, Description (
>           "An address or other identifying information used to "
>           "uniquely name the LogicalDevice."), 
>        MaxLen ( 64 )]
>    string DeviceID;
> 
>       [Description (
>           "OtherIdentifyingInfo captures data, in addition to DeviceID "
>           "information, that could be used to identify a "
>           "LogicalDevice. For example, you could use this property to "
>           "hold the operating system's user-friendly name for the "
>           "Device."), 
>        MaxLen ( 256 ), ArrayType ( "Indexed" ), 
>        ModelCorrespondence { 
>           "CIM_LogicalDevice.IdentifyingDescriptions" }]
>    string OtherIdentifyingInfo[];
> 
>       [Description (
>           "An array of free-form strings providing explanations and "
>           "details behind the entries in the OtherIdentifyingInfo "
>           "array. Note that each entry of this array is related to the "
>           "entry in OtherIdentifyingInfo that is located at the same "
>           "index."), 
>        ArrayType ( "Indexed" ), 
>        ModelCorrespondence { "CIM_LogicalDevice.OtherIdentifyingInfo" }]
>    string IdentifyingDescriptions[];
> 
>       [Description (
>           "Additional availability and status of the Device in "
>           "addition to that specified in the Availability property. "
>           "The Availability property denotes the primary status and "
>           "availability of the Device. In some cases, this property "
>           "will not be sufficient to denote the complete status of the "
>           "Device. In those cases, the AdditionalAvailability property "
>           "can be used to provide further information. For example, "
>           "the primary Availability of a device might be \"Off line\" "
>           "(value=8) or in a low-power state (AdditionalAvailability "
>           "value=14), or the Device could be running Diagnostics "
>           "(AdditionalAvailability value=5, \"In Test\")."), 
>        ValueMap { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
>           "11", "12", "13", "14", "15", "16", "17", "18", "19", "20",
>           "21" }, 
>        Values { "Other", "Unknown", "Running/Full Power", "Warning",
>           "In Test", "Not Applicable", "Power Off", "Off Line",
>           "Off Duty", "Degraded", "Not Installed", "Install Error",
>           "Power Save - Unknown", "Power Save - Low Power Mode",
>           "Power Save - Standby", "Power Cycle",
>           "Power Save - Warning", "Paused", "Not Ready",
>           "Not Configured", "Quiesced" }, 
>        ModelCorrespondence { "CIM_LogicalDevice.Availability" }]
>    uint16 AdditionalAvailability[];
> 
>       [Description (
>           "Requests a reset of the LogicalDevice. The return value "
>           "should be 0 if the request was successfully executed, 1 if "
>           "the request is not supported, and some other value if an "
>           "error occurred. 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' can also be specified in the subclass as a "
>           "Values array qualifier.")]
>    uint32 Reset(); 
> 
> };
> 
> // ==================================================================
> //  CIM_LogicalDisk
> // ==================================================================
>    [Version ( "2.8.1000" ), Description (
>        "A LogicalDisk is a presentation of a contiguous range of "
>        "logical blocks that is identifiable by applications such as "
>        "filesystems via the Name field. (DeviceID (key) may use the "
>        "same name or some other unique text such as a UUID.) For "
>        "example in a Windows environment, the Name field MAY contain a "
>        "drive letter. In a Unix environment, it would contain the "
>        "access path (for example, '/dev/...'); and in a NetWare "
>        "environment, MaY contain the volume name. LogicalDisks are "
>        "typically built on a DiskPartition or other LogicalDisks (for "
>        "instance, those exposed by a software volume manager). "
>        "However, it can be based on other StorageExtents, like "
>        "CIM_Memory, in the case of a RAM disk. \n"
>        "\n"
>        "LogicalDisks SHOULD set the 'Exported' value in ExtentStatus[] "
>        "if they are intended for application use.")]
> class CIM_LogicalDisk : CIM_StorageExtent {
> 
> (Comment from Fred: stuff below inherited from CIM_StorageExtent)
> 
>       [Description (
>           "A free form string describing the media and/or its use."), 
>        MappingStrings { "MIB.IETF|HOST-RESOURCES-MIB.hrStorageDescr" }]
>    string Purpose;
> 
>       [Description (
>           "Access describes whether the media is readable (value=1), "
>           "writeable (value=2), or both (value=3). \"Unknown\" (0) and "
>           "\"Write Once\" (4) can also be defined."), 
>        ValueMap { "0", "1", "2", "3", "4" }, 
>        Values { "Unknown", "Readable", "Writeable",
>           "Read/Write Supported", "Write Once" }]
>    uint16 Access;
> 
>       [Description (
>           "Size in bytes of the blocks which form this StorageExtent. "
>           "If variable block size, then the maximum block size in "
>           "bytes should be specified. If the block size is unknown or "
>           "if a block concept is not valid (for example, for "
>           "AggregateExtents, Memory or LogicalDisks), enter a 1."), 
>        Units ( "Bytes" ), 
>        MappingStrings { "MIF.DMTF|Host Storage|001.4",
>           "MIB.IETF|HOST-RESOURCES-MIB.hrStorageAllocationUnits",
>           "MIF.DMTF|Storage Devices|001.5" }]
>    uint64 BlockSize;
> 
>       [Description (
>           "Total number of logically contiguous blocks, of size Block "
>           "Size, which form this Extent. The total size of the Extent "
>           "can be calculated by multiplying BlockSize by "
>           "NumberOfBlocks. If the BlockSize is 1, this property is the "
>           "total size of the Extent."), 
>        MappingStrings { "MIF.DMTF|Host Storage|001.5",
>           "MIB.IETF|HOST-RESOURCES-MIB.hrStorageSize" }]
>    uint64 NumberOfBlocks;
> 
> };
> 
> // ==================================================================
> //  CIM_LogicalPort
> // ==================================================================
>    [Version ( "2.10.0" ), Description (
>        "The abstraction of a port or connection point of a Device. "
>        "This object should be instantiated when the Port has "
>        "independent management characteristics from the Device that "
>        "includes it. Examples are a Fibre Channel Port and a USB Port.")]
> class CIM_LogicalPort : CIM_LogicalDevice {
> 
>       [Description (
>           "The bandwidth of the Port in Bits per Second."), 
>        Units ( "Bits per Second" )]
>    uint64 Speed;
> 
>       [Description (
>           "The maximum bandwidth of the Port in Bits per Second."), 
>        Units ( "Bits per Second" )]
>    uint64 MaxSpeed;
> 
>       [Description (
>           "PortType is defined to force consistent naming of the "
>           "'type' property in subclasses and to guarantee unique enum "
>           "values for all instances of NetworkPort. When set to 1 "
>           "(\"Other\"), related property OtherPortType contains a "
>           "string description of the type of port. A range of values, "
>           "DMTF_Reserved, has been defined that allows subclasses to "
>           "override and define their specific types of ports."), 
>        ValueMap { "0", "1", "2", "3..15999", "16000..65535" }, 
>        Values { "Unknown", "Other", "Not Applicable", "DMTF Reserved",
>           "Vendor Reserved" }, 
>        ModelCorrespondence { "CIM_NetworkPort.OtherNetworkPortType" }]
>    uint16 PortType;
> 
>       [Description (
>           "Describes the type of module, when PortType is set to 1 "
>           "(\"Other\")."), 
>        ModelCorrespondence { "CIM_LogicalPort.PortType" }]
>    string OtherPortType;
> };
> 
> // ==================================================================
> //  CIM_Processor
> // ==================================================================
>    [Version ( "2.10.0" ), Description (
>        "Capabilities and management of the Processor LogicalDevice.")]
> class CIM_Processor : CIM_LogicalDevice {
> 
>       [Description (
>           "A free-form string that describes the role of the "
>           "Processor, for example, \"Central Processor\" or \"Math "
>           "Processor\".")]
>    string Role;
> 
>       [Description (
>           "The Processor family type. For example, values include "
>           "\"Pentium(R) processor with MMX(TM) technology\" (value=14) "
>           "and \"68040\" (value=96)."), 
> //#pragma inLine ("Includes\ProcessorFamily.inc")      
>        ValueMap { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
>           // 11                  
>           "11", "12", "13", "14", "15", "16", "17", "18", "19", 
>           // 24                  
>           "24", "25", "26", "27", "28", "29", "30", "31", "32", "33",
>           "34", "35", "36", "37", "38", "39", 
>           // 48                  
>           "48", "49", "50", "51", "52", "53", "54", "55", 
>           // 64                  
>           "64", "65", "66", "67", "68", "69", 
>           // 80                  
>           "80", "81", "82", "83", "84", "85", "86", "87", "88", 
>           // 96                     
>           "96", "97", "98", "99", "100", "101", 
>           // 112                  
>           "112", "120", "121", "122", "128", "130", "131", "132",
>           "133", "134", 
>           // 144                     
>           "144", "145", "146", "147", "148", "149", "150", 
>           // 160                     
>           "160", "176", "177", "178", "179", "180", "181", "182",
>           "183", "184", "185", 
>           // 190                  
>           "190", 
>           // 200                  
>           "200", "201", "202", "203", "204", 
>           // 250                  
>           "250", "251", "260", "261", "280", "281", 
>           // 300                  
>           "300", "301", "302", "320", "350", "500" }, 
>        Values { "Other", "Unknown", "8086", "80286", "80386", "80486",
>           "8087", "80287", "80387", "80487", 
>           // 11                    
>           "Pentium(R) brand", "Pentium(R) Pro", "Pentium(R) II",
>           "Pentium(R) processor with MMX(TM) technology",
>           "Celeron(TM)", "Pentium(R) II Xeon(TM)", "Pentium(R) III",
>           "M1 Family", "M2 Family", 
>           // 24                   
>           "K5 Family", "K6 Family", "K6-2", "K6-3",
>           "AMD Athlon(TM) Processor Family",
>           "AMD(R) Duron(TM) Processor", "AMD29000 Family", 
>           // 31                   
>           "K6-2+", "Power PC Family", "Power PC 601", "Power PC 603",
>           "Power PC 603+", "Power PC 604", "Power PC 620",
>           "Power PC X704", "Power PC 750", 
>           // 48                    
>           "Alpha Family", "Alpha 21064", "Alpha 21066", "Alpha 21164",
>           "Alpha 21164PC", "Alpha 21164a", "Alpha 21264",
>           "Alpha 21364", 
>           // 64                    
>           "MIPS Family", "MIPS R4000", "MIPS R4200", "MIPS R4400",
>           "MIPS R4600", "MIPS R10000", 
>           // 80                    
>           "SPARC Family", "SuperSPARC", "microSPARC II",
>           "microSPARC IIep", "UltraSPARC", "UltraSPARC II",
>           "UltraSPARC IIi", "UltraSPARC III", "UltraSPARC IIIi", 
>           // 96                    
>           "68040", "68xxx Family", "68000", "68010", "68020", "68030", 
>           // 112                    
>           "Hobbit Family", "Crusoe(TM) TM5000 Family",
>           "Crusoe(TM) TM3000 Family", "Efficeon(TM) TM8000 Family",
>           "Weitek", "Itanium(TM) Processor",
>           "AMD Athlon(TM) 64 Processor Family",
>           "AMD Opteron(TM) Processor Family",
>           "AMD Sempron(TM) Processor Family",
>           "AMD Turion(TM) 64 Mobile Technology", 
>           // 144                    
>           "PA-RISC Family", "PA-RISC 8500", "PA-RISC 8000",
>           "PA-RISC 7300LC", "PA-RISC 7200", "PA-RISC 7100LC",
>           "PA-RISC 7100", 
>           // 160                    
>           "V30 Family", "Pentium(R) III Xeon(TM)",
>           "Pentium(R) III Processor with Intel(R) SpeedStep(TM) " 
>           "Technology", "Pentium(R) 4", "Intel(R) Xeon(TM)", 
>           // 180                    
>           "AS400 Family", "Intel(R) Xeon(TM) processor MP",
>           "AMD Athlon(TM) XP Family", "AMD Athlon(TM) MP Family",
>           "Intel(R) Itanium(R) 2", "Intel(R) Pentium(R) M processor", 
>           // 190                    
>           "K7", 
>           // 200                    
>           "S/390 and zSeries Family", "ESA/390 G4", "ESA/390 G5",
>           "ESA/390 G6", "z/Architectur base", 
>           // 250                    
>           "i860", "i960", "SH-3", "SH-4", "ARM", "StrongARM", 
>           // 300                    
>           "6x86", "MediaGX", "MII", "WinChip", "DSP",
>           "Video Processor" }, 
> //#pragma inLine
>          MappingStrings { "MIF.DMTF|Processor|017.3" }, 
>        ModelCorrespondence { "CIM_Processor.OtherFamilyDescription" }]
>    uint16 Family;
> 
>       [Description (
>           "A string that describes the Processor Family type. It is "
>           "used when the Family property is set to 1 (\"Other\"). This "
>           "string should be set to NULL when the Family property is "
>           "any value other than 1."), 
>        MaxLen ( 64 ), 
>        ModelCorrespondence { "CIM_Processor.Family" }]
>    string OtherFamilyDescription;
> 
>       [Description (
>           "The maximum speed (in MHz) of this Processor."), 
>        Units ( "MegaHertz" ), 
>        MappingStrings { "MIF.DMTF|Processor|017.5" }]
>    uint32 MaxClockSpeed;
> 
>       [Description (
>           "The current speed (in MHz) of this Processor."), 
>        Units ( "MegaHertz" ), 
>        MappingStrings { "MIF.DMTF|Processor|017.6" }]
>    uint32 CurrentClockSpeed;
> 
>       [Description (
>           "Loading of this Processor, averaged over the last minute, "
>           "in Percent."), 
>        Units ( "Percent" ), Gauge, 
>        MappingStrings { "MIB.IETF|HOST-RESOURCES-MIB.hrProcessorLoad" }]
>    uint16 LoadPercentage;
> 
> };
> 
> // ==================================================================
> //  CIM_SoftwareIdentity
> // ==================================================================
>    [Version ( "2.10.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. \n"
>        "Note 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. \n"
>        "Note 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, 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> \n"
>           "Where <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. \n"
>           "For 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 (
>           "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", "12", "..", "0x8000..0xFFFF" }, 
>        Values { "Unknown", "Other", "Driver", "Configuration Software",
>           "Application Software", "Instrumentation", "Firmware/BIOS",
>           "Diagnostic Software", "Operating System", "Middleware",
>           "Firmware", "BIOS/FCode", "Support/Service Pack",
>           "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[];
> 
> };
> 
> // ==================================================================
> //  CIM_System
> // ==================================================================
>    [Abstract, Version ( "2.10.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, these qualities are not true for the power supply (or "
>        "the power supply sub-'system') within the computer. \n"
>        "\n"
>        "Although a System can be viewed as a Collection, this view 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 the "
>        "sum of its parts. Note that System is a subclass of "
>        "EnabledLogicalElement which allows the entire abstraction to "
>        "be functionally enabled or disabled at a higher level than "
>        "enabling or disabling its component parts.")]
> class CIM_System : CIM_EnabledLogicalElement {
> 
>       [Key, 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, Override ( "Name" ), Description (
>           "The inherited Name serves as the 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 heuristic of the subclass."), 
>        MaxLen ( 64 )]
>    string NameFormat;
> 
>       [Write, 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, Description (
>           "A string that provides information on how the primary "
>           "system owner can be reached (for example, phone number, "
>           "e-mail address, and so on)."), 
>        MaxLen ( 256 ), 
>        MappingStrings { "MIF.DMTF|General Information|001.4" }]
>    string PrimaryOwnerContact;
> 
>       [Write, Description (
>           "An array (bag) of strings that specifies 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. \n"
>           "Note that the instrumentation view of the 'roles' of a "
>           "System is defined by instantiating a specific subclass of "
>           "System, or by properties in a subclass, or both. For "
>           "example, the purpose of a ComputerSystem is defined using "
>           "the Dedicated and OtherDedicatedDescription properties.")]
>    string Roles[];
> };
> 
> // ==================================================================
> //  CIM_ComputerSystem
> // ==================================================================
>    [Version ( "2.10.0" ), Description (
>        "A class derived from System that is a special collection of "
>        "ManagedSystemElements. This collection is related to the "
>        "providing of compute capabilities and MAY serve as an "
>        "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" }]
>    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). \n"
>           "A 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. \n"
>           "A value of \"Management\" indicates this instance is "
>           "dedicated to hosting system management software. \n"
>           "A value of \"Management Controller\" indicates this "
>           "instance represents specialized hardware dedicated to "
>           "systems management (i.e., a Baseboard Management Controller "
>           "(BMC) or service processor). \n"
>           "The management scope of a \"Management Controller\" is "
>           "typically a single managed system in which it is contained. "
>           "\nA value of \"Chassis Manager\" indicates this instance "
>           "represents a system dedicated to management of a blade "
>           "chassis and its contained devices. This value would be used "
>           "to represent a Shelf Controller. A \"Chassis Manager\" is "
>           "an aggregation point for management and may rely on "
>           "subordinate management controllers for the management of "
>           "constituent parts."), 
>        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",
>           "28..32567", "32568..65535" }, 
>        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", "Storage Virtualizer",
>           "Media Library", "ExtenderNode", "NAS Head",
>           "Self-contained NAS", "UPS", "IP Phone",
>           "Management Controller", "Chassis Manager", "DMTF Reserved",
>           "Vendor Reserved" }, 
>        MappingStrings { "MIB.IETF|MIB-II.sysServices",
>           "FC-GS.INCITS-T11 | Platform | PlatformType" },
>           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[];
> 
> };
> 
> // ==================================================================
> //  CIM_FileSystem
> // ==================================================================
>    [Version ( "2.8.1000" ), Description (
>        "A file or dataset store local to a System (such as a "
>        "ComputerSystem or an ApplicationSystem) or remotely mounted "
>        "from a file server.")]
> class CIM_FileSystem : CIM_EnabledLogicalElement {
> 
>       [Key, 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, Override ( "Name" ), Description (
>           "The inherited Name serves as key of a FileSystem instance "
>           "within a ComputerSystem."), 
>        MaxLen ( 256 )]
>    string Name;
> 
>       [Description (
>           "Path name or other information defining the root of the "
>           "FileSystem."), 
>        MappingStrings { "MIB.IETF|HOST-RESOURCES-MIB.hrFSMountPoint",
>           "MIF.DMTF|Host File System|001.2" }]
>    string Root;
> 
>       [Description (
>           "The FileSystemSize property stores the total size of the "
>           "File System in bytes. If unknown, enter 0."), 
>        Units ( "Bytes" ), 
>        MappingStrings { "MIF.DMTF|Host File System|001.13" }]
>    uint64 FileSystemSize;
> 
>       [Description (
>           "AvailableSpace indicates the total amount of free space for "
>           "the FileSystem, in bytes. If unknown, enter 0."), 
>        Units ( "Bytes" ), Gauge, 
>        MappingStrings { "MIF.DMTF|Host File System|001.14",
>           "MIF.DMTF|Partition|002.4" }]
>    uint64 AvailableSpace;
> 
>       [Description (
>           "Indicates that the FileSystem is designated as read only."), 
>        MappingStrings { "MIB.IETF|HOST-RESOURCES-MIB.hrFSAccess",
>           "MIF.DMTF|Host File System|001.5" }]
>    boolean ReadOnly;
> 
>       [Description (
>           "Integer indicating the maximum length of a file name within "
>           "the FileSystem. 0 indicates that there is no limit on file "
>           "name length.")]
>    uint32 MaxFileNameLength;
> 
>       [Description (
>           "String describing the type of FileSystem and therefore, its "
>           "conventions. For example, \"NTFS\" or \"S5\" may be listed "
>           "as well as any additional information on the FileSystem's "
>           "implementation. Since various flavors of FileSystems (like "
>           "S5) exist, this property is defined as a string."), 
>        MappingStrings { "MIF.DMTF|Partition|002.6",
>           "MIF.DMTF|Host File System|001.4" }]
>    string FileSystemType;
> 
> };
> 
> // ==================================================================
> //  CIM_OperatingSystem
> // ==================================================================
>    [Version ( "2.7.0" ), Description (
>        "An OperatingSystem is software/firmware that makes a "
>        "ComputerSystem's hardware usable, and implements and/or "
>        "manages the resources, file systems, processes, user "
>        "interfaces, services, ... available on the ComputerSystem.")]
> class CIM_OperatingSystem : CIM_EnabledLogicalElement {
> 
>       [Key, 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, Override ( "Name" ), Description (
>           "The inherited Name serves as key of an OperatingSystem "
>           "instance within a ComputerSystem."), 
>        MaxLen ( 256 ), 
>        MappingStrings { "MIF.DMTF|Operating System|001.2" }]
>    string Name;
> 
>       [Description (
>           "A integer indicating the type of OperatingSystem."), 
> //#pragma inLine ("Includes\OSTypes.inc") 
>        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" }, 
>        Values { "Unknown", "Other", "MACOS", "ATTUNIX", "DGUX",
>           "DECNT", "Tru64 UNIX", "OpenVMS", "HPUX", "AIX", 
>           //10 
>           "MVS", "OS400", "OS/2", "JavaVM", "MSDOS", "WIN3x", "WIN95",
>           "WIN98", "WINNT", "WINCE", 
>           //20 
>           "NCR3000", "NetWare", "OSF", "DC/OS", "Reliant UNIX",
>           "SCO UnixWare", "SCO OpenServer", "Sequent", "IRIX",
>           "Solaris", 
>           //30 
>           "SunOS", "U6000", "ASERIES",
>           "HP NonStop OS" , "HP NonStop OSS", "BS2000", "LINUX",
>           "Lynx", "XENIX", "VM", 
>           //40 
>           "Interactive UNIX", "BSDUNIX", "FreeBSD", "NetBSD",
>           "GNU Hurd", "OS9", "MACH Kernel", "Inferno", "QNX", "EPOC", 
>           //50 
>           "IxWorks", "VxWorks", "MiNT", "BeOS", "HP MPE", "NextStep",
>           "PalmPilot", "Rhapsody", "Windows 2000", "Dedicated", 
>           //60 
>           "OS/390", "VSE", "TPF", "Windows (R) Me",
>           "Caldera Open UNIX", "OpenBSD", "Not Applicable",
>           "Windows XP", "z/OS", "Microsoft Windows Server 2003",
>              "Microsoft Windows Server 2003 64-Bit" }, 
> //#pragma inLine
>          ModelCorrespondence { 
>           "CIM_OperatingSystem.OtherTypeDescription",
>           "CIM_SoftwareElement.TargetOperatingSystem" }]
>    uint16 OSType;
> 
>       [Description (
>           "A string describing the manufacturer and OperatingSystem "
>           "type - used when the OperatingSystem property, OSType, is "
>           "set to 1 or 59 (\"Other\" or \"Dedicated\"). The format of "
>           "the string inserted in OtherTypeDescription should be "
>           "similar in format to the Values strings defined for OSType. "
>           "OtherTypeDescription should be set to NULL when OSType is "
>           "any value other than 1 or 59."), 
>        MaxLen ( 64 ), 
>        ModelCorrespondence { "CIM_OperatingSystem.OSType" }]
>    string OtherTypeDescription;
> 
>       [Description (
>           "A string describing the Operating System's version number. "
>           "The format of the version information is as follows: <Major "
>           "Number>.<Minor Number>.<Revision> or <Major Number>.<Minor "
>           "Number>.<Revision Letter>."), 
>        MappingStrings { "MIF.DMTF|Operating System|001.3" }]
>    string Version;
> 
>       [Description (
>           "Time when the OperatingSystem was last booted."), 
>        MappingStrings { "MIF.DMTF|General Information|001.5" }]
>    datetime LastBootUpTime;
> 
>       [Description (
>           "OperatingSystem's notion of the local date and time of day."), 
>        MappingStrings { "MIB.IETF|HOST-RESOURCES-MIB.hrSystemDate",
>           "MIF.DMTF|General Information|001.6" }]
>    datetime LocalDateTime;
> 
>       [Description (
>           "Number of user licenses for the OperatingSystem. If "
>           "unlimited, enter 0.")]
>    uint32 NumberOfLicensedUsers;
> 
>       [Description (
>           "Number of user sessions for which the OperatingSystem is "
>           "currently storing state information."), 
>        Gauge, 
>        MappingStrings { "MIF.DMTF|Host System|001.4",
>           "MIB.IETF|HOST-RESOURCES-MIB.hrSystemNumUsers" }]
>    uint32 NumberOfUsers;
> 
>       [Description (
>           "Number of process contexts currently loaded or running on "
>           "the OperatingSystem."), 
>        Gauge, 
>        MappingStrings { "MIF.DMTF|Host System|001.5",
>           "MIB.IETF|HOST-RESOURCES-MIB.hrSystemProcesses" }]
>    uint32 NumberOfProcesses;
> 
>       [Description (
>           "Maximum number of process contexts the OperatingSystem can "
>           "support. If there is no fixed maximum, the value should be "
>           "0. On systems that have a fixed maximum, this object can "
>           "help diagnose failures that occur when the maximum is "
>           "reached."), 
>        MappingStrings { "MIF.DMTF|Host System|001.6",
>           "MIB.IETF|HOST-RESOURCES-MIB.hrSystemMaxProcesses" }]
>    uint32 MaxNumberOfProcesses;
> 
>       [Description (
>           "Total swap space in Kbytes. This value may be NULL "
>           "(unspecified) if swap space is not distinguished from page "
>           "files. However, some Operating Systems distinguish these "
>           "concepts. For example, in UNIX, whole processes can be "
>           "'swapped out' when the free page list falls and remains "
>           "below a specified amount."), 
>        Units ( "KiloBytes" )]
>    uint64 TotalSwapSpaceSize;
> 
>       [Description (
>           "Number of Kbytes of virtual memory. For example, this may "
>           "be calculated by adding the amount of total RAM to the "
>           "amount of paging space (ie, adding the amount of memory "
>           "in/aggregated by the ComputerSystem to the property, "
>           "SizeStoredInPagingFiles."), 
>        Units ( "KiloBytes" ), 
>        MappingStrings { "MIF.DMTF|System Memory Settings|001.5" }]
>    uint64 TotalVirtualMemorySize;
> 
>       [Description (
>           "Number of Kbytes of virtual memory currently unused and "
>           "available. For example, this may be calculated by adding "
>           "the amount of free RAM to the amount of free paging space "
>           "(ie, adding the properties, FreePhysicalMemory and "
>           "FreeSpace InPagingFiles)."), 
>        Units ( "KiloBytes" ), Gauge, 
>        MappingStrings { "MIF.DMTF|System Memory Settings|001.6" }]
>    uint64 FreeVirtualMemory;
> 
>       [Description (
>           "Number of Kbytes of physical memory currently unused and "
>           "available."), 
>        Units ( "KiloBytes" ), Gauge, 
>        MappingStrings { "MIF.DMTF|System Memory Settings|001.2",
>           "MIF.UNIX|Host Physical Memory|6.1" }]
>    uint64 FreePhysicalMemory;
> 
>       [Description (
>           "The total amount of physical memory (in Kbytes) available "
>           "to the OperatingSystem. This value does not necessarily "
>           "indicate the true amount of physical memory, but what is "
>           "reported to the OperatingSystem as available to it."), 
>        Units ( "KiloBytes" )]
>    uint64 TotalVisibleMemorySize;
> 
>       [Description (
>           "The total number of KBytes that can be stored in the "
>           "OperatingSystem's paging files. 0 indicates that there are "
>           "no paging files."), 
>        Units ( "KiloBytes" ), 
>        MappingStrings { "MIF.DMTF|System Memory Settings|001.3" }]
>    uint64 SizeStoredInPagingFiles;
> 
>       [Description (
>           "The total number of KBytes that can be mapped into the "
>           "OperatingSystem's paging files without causing any other "
>           "pages to be swapped out. 0 indicates that there are no "
>           "paging files."), 
>        Units ( "KiloBytes" ), Gauge, 
>        MappingStrings { "MIF.DMTF|System Memory Settings|001.4" }]
>    uint64 FreeSpaceInPagingFiles;
> 
>       [Description (
>           "Maximum number of Kbytes of memory that can be allocated to "
>           "a Process. For Operating Systems with no virtual memory, "
>           "this value is typically equal to the total amount of "
>           "physical Memory minus memory used by the BIOS and OS. For "
>           "some Operating Systems, this value may be infinity - in "
>           "which case, 0 should be entered. In other cases, this value "
>           "could be a constant - for example, 2G or 4G."), 
>        Units ( "KiloBytes" )]
>    uint64 MaxProcessMemorySize;
> 
>       [Description (
>           "Boolean indicating whether the OperatingSystem is "
>           "distributed across several ComputerSystem nodes. If so, "
>           "these nodes should be grouped as a Cluster.")]
>    boolean Distributed;
> 
>       [Description (
>           "A value that indicates the maximum processes that a user "
>           "can have associate with it.")]
>    uint32  MaxProcessesPerUser;
> 
>       [Description (
>           "Requests a reboot of the OperatingSystem. The return value "
>           "should be 0 if the request was successfully executed, 1 if "
>           "the request is not supported and some other value if an "
>           "error occurred. 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.")]
>    uint32 Reboot(); 
> 
>       [Description (
>           "Requests a shutdown of the OperatingSystem. The return "
>           "value should be 0 if the request was successfully executed, "
>           "1 if the request is not supported and some other value if "
>           "an error occurred. It is up to the implementation or "
>           "subclass of OperatingSystem to establish dependencies "
>           "between the Shutdown and Reboot methods, and for example, "
>           "to provide more sophisticated capabilities such as "
>           "scheduled shutdown/ reboot, etc. 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.")]
>    uint32 Shutdown(); 
> };
> 
> // ==================================================================
> //  CIM_LogicalFile
> // ==================================================================
>    [Version ( "2.6.0" ), Description (
>        "A LogicalFile is a named collection of data or executable "
>        "code, or represents a LogicalDevice or Directory. It is "
>        "located within the context of a FileSystem, on a Storage "
>        "Extent.")]
> class CIM_LogicalFile : CIM_LogicalElement {
> 
>       [Key, 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, Override ( "Name" ), Description (
>           "The inherited Name serves as part of the key of a "
>           "LogicalFile instance within a FileSystem. A unique "
>           "identifier (such as a full path name) is required as a Name "
>           "value. Since Files are weak to their FileSystem (and not to "
>           "a Directory which would provide a more granular naming "
>           "algorithm), care must be taken to make LogicalFile's Name "
>           "unique for a given Creation ClassName and FileSystem. A "
>           "full path name is one way to do this."), 
>        MaxLen ( 1024 )]
>    string Name;
> 
>       [Description (
>           "Size of the File in bytes."), 
>        Units ( "Bytes" ), Gauge]
>    uint64 FileSize;
> 
>       [Description (
>           "File's creation date.")]
>    datetime CreationDate;
> 
>       [Description (
>           "Time that the File was last modified.")]
>    datetime LastModified;
> 
>       [Description (
>           "Time that the File was last accessed.")]
>    datetime LastAccessed;
> 
>       [Description (
>           "Boolean indicating that the File can be read.")]
>    boolean Readable;
> 
>       [Description (
>           "Boolean indicating that the File can be written.")]
>    boolean Writeable;
> 
>       [Description (
>           "Indicates the file is executable.")]
>    boolean Executable;
> 
> };
> 
> // ==================================================================
> //  CIM_Directory
> // ==================================================================
>    [Version ( "2.6.0" ), Description (
>        "Directory is a type of File that logically groups Files "
>        "'contained' in it, and provides path information for the "
>        "grouped Files.")]
> class CIM_Directory : CIM_LogicalFile {
> };
> 
> // ==================================================================
> //  CIM_ConcreteCollection
> // ==================================================================
>    [Version ( "2.10.0" ), Description (
>        "A concrete version of Collection. This class represents a "
>        "generic and instantiable collection, such as a group of "
>        "ComputerSystems (for example, a pool of hosts available for "
>        "executing jobs). It is defined as a concrete subclass of the "
>        "abstract CIM_Collection class, to be used in place of many "
>        "specific subclasses that add no semantics. Note that when "
>        "defining additional semantics for Collection, this class must "
>        "not be subclassed. Specific semantics continue to be defined "
>        "as subclasses of the abstract CIM_Collection. "
>        "ConcreteCollection is limited in its use as a concrete form of "
>        "a general collection or bag. It was deemed more prudent to "
>        "create this concrete subclass than to change Collection from "
>        "an abstract to a concrete class.")]
> class CIM_ConcreteCollection : CIM_Collection {
> 
> (Comment from Fred: stuff below inherited from ManagedElement through Collection)
> 
>       [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. \n"
>           "Note that the Name property of ManagedSystemElement is also "
>           "defined as a user-friendly name. But, it is often "
>           "subclassed to be a Key. It is not reasonable that the same "
>           "property can convey both identity and a user-friendly name, "
>           "without inconsistencies. Where Name exists and is not a Key "
>           "(such as for instances of LogicalDevice), the same "
>           "information can be present in both the Name and ElementName "
>           "properties.")]
>    string ElementName;
> 
>       [Key, Description (
>           "Within the scope of the instantiating Namespace, InstanceID "
>           "opaquely and uniquely identifies an instance of this class. "
>           "To ensure uniqueness within the NameSpace, the value of "
>           "InstanceID should be constructed using the following "
>           "'preferred' algorithm: \n"
>           "<OrgID>:<LocalID> \n"
>           "Where <OrgID> and <LocalID> are separated by a colon ':', "
>           "and where <OrgID> must include a unique name. It can be a "
>           "copyrighted, trademarked, or otherwise unique name that is "
>           "owned by the business entity that is creating or defining "
>           "the InstanceID. Or, it could be a registered ID that is "
>           "assigned to the business entity by a recognized global "
>           "authority. (This requirement is similar to the <Schema "
>           "Name>_<Class Name> structure of Schema class names.) In "
>           "addition, to ensure uniqueness <OrgID> must not contain a "
>           "colon (':'). When using this algorithm, the first colon to "
>           "appear in InstanceID must appear between <OrgID> and "
>           "<LocalID>. \n"
>           "\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 ensure that the resulting "
>           "InstanceID is not re-used as any of the InstanceIDs "
>           "produced by this or other providers for the NameSpace of "
>           "this instance.")]
>    string InstanceID;
> };
> 
> 
> // ==================================================================
> //  CIM_SettingData
> // ==================================================================
>    [Abstract, Version ( "2.10.0" ), Description (
>        "The SettingData class represents configuration-related and "
>        "operational parameters for one or more ManagedElements. A "
>        "ManagedElement can have multiple SettingData objects "
>        "associated with it. The current operational values for the "
>        "parameters of the element are reflected by properties in the "
>        "Element itself or by properties in its associations. These "
>        "properties do not have to be the same values that are present "
>        "in the SettingData object. For example, a modem might have a "
>        "SettingData baud rate of 56Kb/sec but be operating at "
>        "19.2Kb/sec. \n"
>        "Note: The CIM_SettingData class is very similar to "
>        "CIM_Setting, yet both classes are present in the model 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. SettingData "
>        "instances can be aggregated together into higher- level "
>        "SettingData objects using ConcreteComponent associations.")]
> class CIM_SettingData : CIM_ManagedElement {
> 
> (Comment from Fred: stuff below inherited from 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;
> 
>       [Key, Description (
>           "Within the scope of the instantiating Namespace, InstanceID "
>           "opaquely and uniquely identifies an instance of this class. "
>           "To ensure uniqueness within the NameSpace, the value of "
>           "InstanceID should be constructed using the following "
>           "\"preferred\" algorithm: \n"
>           "<OrgID>:<LocalID> \n"
>           "Where <OrgID> and <LocalID> are separated by a colon (:), "
>           "and where <OrgID> must include a copyrighted, trademarked, "
>           "or otherwise unique name that is owned by the business "
>           "entity that is creating or defining the InstanceID or that "
>           "is a registered ID assigned to the business entity by a "
>           "recognized global authority. (This requirement is similar "
>           "to the <Schema Name>_<Class Name> structure of Schema class "
>           "names.) In addition, to ensure uniqueness, <OrgID> must not "
>           "contain a colon (:). When using this algorithm, the first "
>           "colon to appear in InstanceID must appear between <OrgID> "
>           "and <LocalID>. \n"
>           "<LocalID> is chosen by the business entity and should not "
>           "be reused to identify different underlying (real-world) "
>           "elements. If the above \"preferred\" algorithm is not used, "
>           "the defining entity must assure that the resulting "
>           "InstanceID is not reused across any InstanceIDs produced by "
>           "this or other providers for the NameSpace of this instance. "
>           "\nFor DMTF-defined instances, the \"preferred\" algorithm "
>           "must be used with the <OrgID> set to CIM.")]
>    string InstanceID;
> 
>       [Required, Override ( "ElementName" ), Description (
>           "The user-friendly name for this instance of SettingData. In "
>           "addition, the user-friendly name can be used as an index "
>           "property for a search or query. (Note: The name does not "
>           "have to be unique within a namespace.)")]
>    string ElementName;
> };





More information about the ogsa-wg mailing list