#pragma autorecover
#pragma classflags("safeupdate")
#pragma namespace("\\\\.\\root\\standardcimv2")
instance of __namespace{ name="MS_804";};
#pragma namespace("\\\\.\\root\\standardcimv2\\MS_804")

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

[Description("CIM_SAPSAPDependency is an association between one ServiceAccessPoint and another ServiceAccessPoint that indicates that the latter is required for the former to utilize or connect with its Service. For example, to print to a network printer, local Print Access Points must utilize underlying network-related SAPs, or ProtocolEndpoints, to send the print request.") : Amended ToSubclass,Version("2.10.0") : Amended,AMENDMENT, LOCALE("MS_804")] 
class CIM_SAPSAPDependency : CIM_Dependency
{
  [key,Description("The required ServiceAccessPoint.") : Amended ToSubclass] CIM_ServiceAccessPoint Ref Antecedent;
  [key,Description("The ServiceAccessPoint that is dependent on an underlying SAP.") : Amended ToSubclass] CIM_ServiceAccessPoint Ref Dependent;
};

[Description("This association establishes a ServiceAccessPoint as a requestor of protocol services from a ProtocolEndpoint. Typically, this association runs between SAPs and endpoints on a single system. Because a ProtocolEndpoint is a kind of ServiceAccessPoint, this binding can be used to establish a layering of two protocols, with the upper layer represented by the Dependent and the lower layer represented by the Antecedent.") : Amended ToSubclass,Version("2.10.0") : Amended,AMENDMENT, LOCALE("MS_804")] 
class CIM_BindsTo : CIM_SAPSAPDependency
{
  [key,Description("The lower-level endpoint that is accessed by the SAP.") : Amended ToSubclass] CIM_ProtocolEndpoint Ref Antecedent;
  [key,Description("The AccessPoint or ProtocolEndpoint that is dependent on the lower-level endpoint.") : Amended ToSubclass] CIM_ServiceAccessPoint Ref Dependent;
};

[Description("This association makes explicit the dependency of a SAP or ProtocolEndpoint on an underlying LANEndpoint, on the same system.") : Amended ToSubclass,Version("2.6.0") : Amended,AMENDMENT, LOCALE("MS_804")] 
class CIM_BindsToLANEndpoint : CIM_BindsTo
{
  [key,Description("The underlying LANEndpoint, which is depended upon.") : Amended ToSubclass] CIM_LANEndpoint Ref Antecedent;
  [key,Description("The AccessPoint or ProtocolEndpoint dependent on the LANEndpoint.") : Amended ToSubclass] CIM_ServiceAccessPoint Ref Dependent;
  [Description("This describes the framing method for the upper layer SAP or Endpoint that is bound to the LANEndpoint. Note: \"Raw802.3\" is only known to be used with the IPX protocol.") : Amended ToSubclass,Values{"Unknown", "Ethernet", "802.2", "SNAP", "Raw802.3"} : Amended ToSubclass] uint16 FrameType;
};

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

[Description("CIM_ManagedSystemElement is the base class for the System Element hierarchy. Any distinguishable component of a System is a candidate for inclusion in this class. Examples of system components include: \n- software components such as application servers, databases, and applications \n- operating system components such as files, processes, and threads \n- device components such as disk drives, controllers, processors, and printers \n- physical components such as chips and cards.") : Amended ToSubclass,Version("2.22.0") : Amended,AMENDMENT, LOCALE("MS_804")] 
class CIM_ManagedSystemElement : CIM_ManagedElement
{
  [Description("A datetime value that indicates when the object was installed. Lack of a value does not indicate that the object is not installed.") : Amended ToSubclass] 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.") : Amended ToSubclass] 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. \nOperationalStatus replaces the Status property on ManagedSystemElement to provide a consistent approach to enumerations, to address implementation needs for an array property, and to provide a migration path from today\\'s environment to the future. This change was not made earlier 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.") : Amended ToSubclass,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"} : Amended ToSubclass] 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.") : Amended ToSubclass] string StatusDescriptions[];
  [Description("A string indicating the current status of the object. Various operational and non-operational statuses are defined. This property is deprecated in lieu of OperationalStatus, which includes the same semantics in its enumeration. This change is made for 3 reasons: \n1) Status is more correctly defined as an array. This definition overcomes the limitation of describing status using a single value, when it is really a multi-valued property (for example, an element might be OK AND Stopped. \n2) A MaxLen of 10 is too restrictive and leads to unclear enumerated values. \n3) The change to a uint16 data type was discussed when CIM V2.0 was defined. However, existing V1.0 implementations used the string property and did not want to modify their code. Therefore, Status was grandfathered into the Schema. Use of the deprecated qualifier allows the maintenance of the existing property, but also permits an improved definition using OperationalStatus.") : Amended ToSubclass] string Status;
  [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. \nDMTF has reserved the unused portion of the continuum for additional HealthStates in the future.") : Amended ToSubclass,Values{"Unknown", "OK", "Degraded/Warning", "Minor failure", "Major failure", "Critical failure", "Non-recoverable error", "DMTF Reserved"} : Amended ToSubclass] uint16 HealthState;
  [Description("CommunicationStatus indicates the ability of the instrumentation to communicate with the underlying ManagedElement. CommunicationStatus consists of one of the following values: Unknown, None, Communication OK, Lost Communication, or No Contact. \nA Null return indicates the implementation (provider) does not implement this property. \n\"Unknown\" indicates the implementation is in general capable of returning this property, but is unable to do so at this time. \n\"Not Available\" indicates that the implementation (provider) is capable of returning a value for this property, but not ever for this particular piece of hardware/software or the property is intentionally not used because it adds no meaningful information (as in the case of a property that is intended to add additional info to another property). \n\"Communication OK \" indicates communication is established with the element, but does not convey any quality of service. \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 Managed Element is known to exist and has been contacted successfully in the past, but is currently unreachable.") : Amended ToSubclass,Values{"Unknown", "Not Available", "Communication OK", "Lost Communication", "No Contact", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 CommunicationStatus;
  [Description("DetailedStatus compliments PrimaryStatus with additional status detail. It consists of one of the following values: Not Available, No Additional Information, Stressed, Predictive Failure, Error, Non-Recoverable Error, SupportingEntityInError. Detailed status is used to expand upon the PrimaryStatus of the element. \nA Null return indicates the implementation (provider) does not implement this property. \n\"Not Available\" indicates that the implementation (provider) is capable of returning a value for this property, but not ever for this particular piece of hardware/software or the property is intentionally not used because it adds no meaningful information (as in the case of a property that is intended to add additional info to another property). \n\"No Additional Information\" indicates that the element is functioning normally as indicated by PrimaryStatus = \"OK\". \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 normally but a failure is predicted in the near future. \n\"Non-Recoverable Error \" indicates that this element is in an error condition that requires human intervention. \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.") : Amended ToSubclass,Values{"Not Available", "No Additional Information", "Stressed", "Predictive Failure", "Non-Recoverable Error", "Supporting Entity in Error", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 DetailedStatus;
  [Description("OperatingStatus provides a current status value for the operational condition of the element and can be used for providing more detail with respect to the value of EnabledState. It can also provide the transitional states when an element is transitioning from one state to another, such as when an element is transitioning between EnabledState and RequestedState, as well as other transitional conditions.\nOperatingStatus consists of one of the following values: Unknown, Not Available, In Service, Starting, Stopping, Stopped, Aborted, Dormant, Completed, Migrating, Emmigrating, Immigrating, Snapshotting. Shutting Down, In Test \nA Null return indicates the implementation (provider) does not implement this property. \n\"Unknown\" indicates the implementation is in general capable of returning this property, but is unable to do so at this time. \n\"None\" indicates that the implementation (provider) is capable of returning a value for this property, but not ever for this particular piece of hardware/software or the property is intentionally not used because it adds no meaningful information (as in the case of a property that is intended to add additional info to another property). \n\"Servicing\" describes an element being configured, maintained, cleaned, or otherwise administered. \n\"Starting\" describes an element being initialized. \n\"Stopping\" describes an element being brought to an orderly stop. \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\"Completed\" indicates that the element has completed its operation. This value should be combined with either OK, Error, or Degraded in the PrimaryStatus 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\"Migrating\" element is being moved between host elements. \n\"Immigrating\" element is being moved to new host element. \n\"Emigrating\" element is being moved away from host element. \n\"Shutting Down\" describes an element being brought to an abrupt stop. \n\"In Test\" element is performing test functions. \n\"Transitioning\" describes an element that is between states, that is, it is not fully available in either its previous state or its next state. This value should be used if other values indicating a transition to a specific state are not applicable.\n\"In Service\" describes an element that is in service and operational.") : Amended ToSubclass,Values{"Unknown", "Not Available", "Servicing", "Starting", "Stopping", "Stopped", "Aborted", "Dormant", "Completed", "Migrating", "Emigrating", "Immigrating", "Snapshotting", "Shutting Down", "In Test", "Transitioning", "In Service", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 OperatingStatus;
  [Description("PrimaryStatus provides a high level status value, intended to align with Red-Yellow-Green type representation of status. It should be used in conjunction with DetailedStatus to provide high level and detailed health status of the ManagedElement and its subcomponents. \nPrimaryStatus consists of one of the following values: Unknown, OK, Degraded or Error. \"Unknown\" indicates the implementation is in general capable of returning this property, but is unable to do so at this time. \n\"OK\" indicates the ManagedElement is functioning normally. \n\"Degraded\" indicates the ManagedElement is functioning below normal. \n\"Error\" indicates the ManagedElement is in an Error condition.") : Amended ToSubclass,Values{"Unknown", "OK", "Degraded", "Error", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 PrimaryStatus;
};

[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.") : Amended ToSubclass,Version("2.6.0") : Amended,AMENDMENT, LOCALE("MS_804")] 
class CIM_LogicalElement : CIM_ManagedSystemElement
{
};

[Description("A Job is a LogicalElement that represents an executing unit of work, such as a script or a print job. A Job is distinct from a Process in that a Job can be scheduled or queued, and its execution is not limited to a single system.") : Amended ToSubclass,Version("2.10.0") : Amended,AMENDMENT, LOCALE("MS_804")] 
class CIM_Job : CIM_LogicalElement
{
  [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.") : Amended ToSubclass] 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.") : Amended ToSubclass] datetime TimeSubmitted;
  [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.") : Amended ToSubclass] 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.") : Amended ToSubclass] 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.") : Amended ToSubclass] datetime ElapsedTime;
  [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.") : Amended ToSubclass] uint32 JobRunTimes;
  [Description("The month during which the Job should be processed. Specify 0 for January, 1 for February, and so on.") : Amended ToSubclass,Values{"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"} : Amended ToSubclass] uint8 RunMonth;
  [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\nWhen 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.") : Amended ToSubclass] sint8 RunDay;
  [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.") : Amended ToSubclass,Values{"-Saturday", "-Friday", "-Thursday", "-Wednesday", "-Tuesday", "-Monday", "-Sunday", "ExactDayOfMonth", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"} : Amended ToSubclass] sint8 RunDayOfWeek;
  [Description("The time interval after midnight when the Job should be processed. For example, \n00000000020000.000000:000 \nindicates that the Job should be run on or after two o\\'clock, local time or UTC time (distinguished using the LocalOrUtcTime property.") : Amended ToSubclass] datetime RunStartInterval;
  [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\".") : Amended ToSubclass,Values{"Local Time", "UTC Time"} : Amended ToSubclass] uint16 LocalOrUtcTime;
  [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.") : Amended ToSubclass] datetime UntilTime;
  [Description("The User who is to be notified upon the Job completion or failure.") : Amended ToSubclass] string Notify;
  [Description("The User that submitted the Job, or the Service or method name that caused the job to be created.") : Amended ToSubclass] string Owner;
  [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.") : Amended ToSubclass] 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. \nNote that the value 101 is undefined and will be not be allowed in the next major revision of the specification.") : Amended ToSubclass,Units("Percent") : Amended ToSubclass] uint16 PercentComplete;
  [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.") : Amended ToSubclass] 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.") : Amended ToSubclass] 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.") : Amended ToSubclass] string ErrorDescription;
  [Description("Describes the recovery action to be taken for an unsuccessfully run Job. The possible values are: \n0 = \"Unknown\", meaning it is unknown as to what recovery action to take \n1 = \"Other\", indicating that the recovery action will be specified in the OtherRecoveryAction property \n2 = \"Do Not Continue\", meaning stop the execution of the job and appropriately update its status \n3 = \"Continue With Next Job\", meaning continue with the next job in the queue \n4 = \"Re-run Job\", indicating that the job should be re-run \n5 = \"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.") : Amended ToSubclass,Values{"Unknown", "Other", "Do Not Continue", "Continue With Next Job", "Re-run Job", "Run Recovery Job"} : Amended ToSubclass] uint16 RecoveryAction;
  [Description("A string describing the recovery action when the RecoveryAction property of the instance is 1 (\"Other\").") : Amended ToSubclass] string OtherRecoveryAction;
  [Description("KillJob is being deprecated because there is no distinction made between an orderly shutdown and an immediate kill. CIM_ConcreteJob.RequestStateChange() provides \\'Terminate\\' and \\'Kill\\' options to allow this distinction. \nA method to kill this job and any underlying processes, and to remove any \\'dangling\\' associations.") : Amended ToSubclass,Values{"Success", "Not Supported", "Unknown", "Timeout", "Failed", "Access Denied", "Not Found", "DMTF Reserved", "Vendor Specific"} : Amended ToSubclass] uint32 KillJob([In,Description("Indicates whether or not the Job should be automatically deleted upon termination. This parameter takes precedence over the property, DeleteOnCompletion.") : Amended ToSubclass] boolean DeleteOnKill);
};

[Description("A concrete version of Job. This class represents a generic and instantiable unit of work, such as a batch or a print job.") : Amended ToSubclass,Version("2.22.0") : Amended,AMENDMENT, LOCALE("MS_804")] 
class CIM_ConcreteJob : CIM_Job
{
  [Description("Within the scope of the instantiating Namespace, InstanceID opaquely and uniquely identifies an instance of this class. In order to ensure uniqueness within the NameSpace, the value of InstanceID SHOULD be constructed using the following \\'preferred\\' algorithm: \n<OrgID>:<LocalID> \nWhere <OrgID> and <LocalID> are separated by a colon \\':\\', and where <OrgID> must include a copyrighted, trademarked or otherwise unique name that is owned by the business entity 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. \nFor DMTF defined instances, the \\'preferred\\' algorithm must be used with the <OrgID> set to \\'CIM\\'.") : Amended ToSubclass,key] string InstanceID;
  [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.)") : Amended ToSubclass] 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: \nNew (2) indicates that the job has never been started. \nStarting (3) indicates that the job is moving from the \\'New\\', \\'Suspended\\', or \\'Service\\' states into the \\'Running\\' state. \nRunning (4) indicates that the Job is running. \nSuspended (5) indicates that the Job is stopped, but can be restarted in a seamless manner. \nShutting Down (6) indicates that the job is moving to a \\'Completed\\', \\'Terminated\\', or \\'Killed\\' state. \nCompleted (7) indicates that the job has completed normally. \nTerminated (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. \nKilled (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. \nException (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. \nService (11) indicates that the Job is in a vendor-specific state that supports problem discovery, or resolution, or both.\nQuery pending (12) waiting for a client to resolve a query") : Amended ToSubclass,Values{"New", "Starting", "Running", "Suspended", "Shutting Down", "Completed", "Terminated", "Killed", "Exception", "Service", "Query Pending", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] 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.") : Amended ToSubclass] datetime TimeOfLastStateChange;
  [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. \nThe default is five minutes.") : Amended ToSubclass] datetime TimeBeforeRemoval;
  [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. \nIf 0 is returned, then the task completed successfully. Any other return code indicates an error condition.") : Amended ToSubclass,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"} : Amended ToSubclass] uint32 RequestStateChange([In,Description("RequestStateChange changes the state of a job. The possible values are as follows: \nStart (2) changes the state to \\'Running\\'. \nSuspend (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.) \nTerminate (4) stops the job cleanly, saving data, preserving the state, and shutting down all underlying processes in an orderly manner. \nKill (5) terminates the job immediately with no requirement to save data or preserve the state. \nService (6) puts the job into a vendor-specific service state. It might be possible to restart the job.") : Amended ToSubclass,Values{"Start", "Suspend", "Terminate", "Kill", "Service", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] 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. \nIf this property does not contain 0 or null and the implementation does not support this parameter, a return code of \\'Use Of Timeout Parameter Not Supported\\' must be returned.") : Amended ToSubclass] datetime TimeoutPeriod);
  [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.") : Amended ToSubclass,Values{"Success", "Not Supported", "Unspecified Error", "Timeout", "Failed", "Invalid Parameter", "Access Denied", "DMTF Reserved", "Vendor Specific"} : Amended ToSubclass] 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.") : Amended ToSubclass] CIM_Error Error);
};

[Description("An association between a ServiceAccessPoint (SAP) and how it is implemented. The cardinality of this association is many-to-many. A SAP can be provided by more than one LogicalDevice, operating in conjunction. And, any Device can provide more than one ServiceAccessPoint. When many LogicalDevices are associated with a single SAP, it is assumed that these elements operate in conjunction to provide the AccessPoint. If different implementations of a SAP exist, each of these implementations would result in individual instantiations of the ServiceAccessPoint object. These individual instantiations would then have associations to the unique implementations.") : Amended ToSubclass,Version("2.10.0") : Amended,AMENDMENT, LOCALE("MS_804")] 
class CIM_DeviceSAPImplementation : CIM_Dependency
{
  [key,Description("The LogicalDevice.") : Amended ToSubclass] CIM_LogicalDevice Ref Antecedent;
  [key,Description("The ServiceAccessPoint implemented using the LogicalDevice.") : Amended ToSubclass] CIM_ServiceAccessPoint Ref Dependent;
};

[Description("This class extends LogicalElement to abstract the concept of an element that is enabled and disabled, such as a LogicalDevice or a ServiceAccessPoint.") : Amended ToSubclass,Version("2.22.0") : Amended,AMENDMENT, LOCALE("MS_804")] 
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: \nEnabled (2) indicates that the element is or could be executing commands, will process any queued commands, and queues new requests. \nDisabled (3) indicates that the element will not execute commands and will drop any new requests. \nShutting Down (4) indicates that the element is in the process of going to a Disabled state. \nNot Applicable (5) indicates the element does not support being enabled or disabled. \nEnabled but Offline (6) indicates that the element might be completing commands, and will drop any new requests. \nTest (7) indicates that the element is in a test state. \nDeferred (8) indicates that the element might be completing commands, but will queue any new requests. \nQuiesce (9) indicates that the element is enabled but in a restricted mode.\nStarting (10) indicates that the element is in the process of going to an Enabled state. New requests are queued.") : Amended ToSubclass,Values{"Unknown", "Other", "Enabled", "Disabled", "Shutting Down", "Not Applicable", "Enabled but Offline", "In Test", "Deferred", "Quiesce", "Starting", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 EnabledState;
  [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.") : Amended ToSubclass] string OtherEnabledState;
  [Description("RequestedState is an integer enumeration that indicates the last requested or desired state for the element, irrespective of the mechanism through which it was requested. 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. Refer to the EnabledState property description for explanations of the values in the RequestedState enumeration. \n\"Unknown\" (0) indicates the last requested state for the element is unknown.\nNote that the value \"No Change\" (5) has been deprecated in lieu of indicating the last requested state is \"Unknown\" (0). If the last requested or desired state is unknown, RequestedState should have the value \"Unknown\" (0), but may have the value \"No Change\" (5).Offline (6) indicates that the element has been requested to transition to the Enabled but Offline EnabledState. \nIt should be noted that there are two new values in RequestedState that build on the statuses of EnabledState. These are \"Reboot\" (10) and \"Reset\" (11). 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\nThis 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\nIf knowledge of the last RequestedState is not supported for the EnabledLogicalElement, the property shall be NULL or have the value 12 \"Not Applicable\".") : Amended ToSubclass,Values{"Unknown", "Enabled", "Disabled", "Shut Down", "No Change", "Offline", "Test", "Deferred", "Quiesce", "Reboot", "Reset", "Not Applicable", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 RequestedState;
  [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).") : Amended ToSubclass,Values{"Enabled", "Disabled", "Not Applicable", "Enabled but Offline", "No Default", "Quiesce", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 EnabledDefault;
  [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.") : Amended ToSubclass] datetime TimeOfLastStateChange;
  [Description("AvailableRequestedStates indicates the possible values for the RequestedState parameter of the method RequestStateChange, used to initiate a state change. The values listed shall be a subset of the values contained in the RequestedStatesSupported property of the associated instance of CIM_EnabledLogicalElementCapabilities where the values selected are a function of the current state of the CIM_EnabledLogicalElement. This property may be non-null if an implementation is able to advertise the set of possible values as a function of the current state. This property shall be null if an implementation is unable to determine the set of possible values as a function of the current state.") : Amended ToSubclass,Values{"Enabled", "Disabled", "Shut Down", "Offline", "Test", "Defer", "Quiesce", "Reboot", "Reset", "DMTF Reserved"} : Amended ToSubclass] uint16 AvailableRequestedStates[];
  [Description("TransitioningToState indicates the target state to which the instance is transitioning. \nA value of 5 \"No Change\" shall indicate that no transition is in progress.A value of 12 \"Not Applicable\" shall indicate the implementation does not support representing ongoing transitions. \nA value other than 5 or 12 shall identify the state to which the element is in the process of transitioning.") : Amended ToSubclass,Values{"Unknown", "Enabled", "Disabled", "Shut Down", "No Change", "Offline", "Test", "Defer", "Quiesce", "Reboot", "Reset", "Not Applicable", "DMTF Reserved"} : Amended ToSubclass] uint16 TransitioningToState;
  [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. \nA return code of 0 shall indicate the state change was successfully initiated. \nA return code of 3 shall indicate that the state transition cannot complete within the interval specified by the TimeoutPeriod parameter. \nA return code of 4096 (0x1000) shall indicate the state change was successfully initiated, a ConcreteJob has been created, and its reference returned in the output parameter Job. Any other return code indicates an error condition.") : Amended ToSubclass,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"} : Amended ToSubclass] 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\\'), or 4096 (0x1000) (\\'Job Started\\'). Refer to the description of the EnabledState and RequestedState properties for the detailed explanations of the RequestedState values.") : Amended ToSubclass,Values{"Enabled", "Disabled", "Shut Down", "Offline", "Test", "Defer", "Quiesce", "Reboot", "Reset", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 RequestedState,[Out,Description("May contain a reference to the ConcreteJob created to track the state transition initiated by the method invocation.") : Amended ToSubclass] 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. \nIf this property does not contain 0 or null and the implementation does not support this parameter, a return code of \\'Use Of Timeout Parameter Not Supported\\' shall be returned.") : Amended ToSubclass] datetime TimeoutPeriod);
};

[Version("2.22.1") : Amended,Description("CIM_Error is a specialized class that contains information about the severity, cause, recommended actions and other data related to the failure of a CIM Operation. Instances of this type MAY be included as part of the response to a CIM Operation.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class CIM_Error
{
  [Description("Primary classification of the error. The following values are defined: \n2 - Communications Error. Errors of this type are principally associated with the procedures and/or processes required to convey information from one point to another. \n3 - Quality of Service Error. Errors of this type are principally associated with failures that result in reduced functionality or performance. \n4 - Software Error. Error of this type are principally associated with a software or processing fault. \n5 - Hardware Error. Errors of this type are principally associated with an equipment or hardware failure. \n6 - Environmental Error. Errors of this type are principally associated with a failure condition relating the to facility, or other environmental considerations. \n7 - Security Error. Errors of this type are associated with security violations, detection of viruses, and similar issues. \n8 - Oversubscription Error. Errors of this type are principally associated with the failure to allocate sufficient resources to complete the operation. \n9 - Unavailable Resource Error. Errors of this type are principally associated with the failure to access a required resource. \n10 -Unsupported Operation Error. Errors of this type are principally associated with requests that are not supported.") : Amended ToSubclass,Values{"Unknown", "Other", "Communications Error", "Quality of Service Error", "Software Error", "Hardware Error", "Environmental Error", "Security Error", "Oversubscription Error", "Unavailable Resource Error", "Unsupported Operation Error", "DMTF Reserved"} : Amended ToSubclass] uint16 ErrorType;
  [Description("A free-form string describing the ErrorType when 1, \"Other\", is specified as the ErrorType.") : Amended ToSubclass] string OtherErrorType;
  [Description("A string that uniquely identifies the entity that owns the definition of the format of the Message described in this instance. OwningEntity MUST include a copyrighted, trademarked or otherwise unique name that is owned by the business entity or standards body defining the format.") : Amended ToSubclass] string OwningEntity;
  [Description("An opaque string that uniquely identifies, within the scope of the OwningEntity, the format of the Message.") : Amended ToSubclass] string MessageID;
  [Description("The formatted message. This message is constructed by combining some or all of the dynamic elements specified in the MessageArguments property with the static elements uniquely identified by the MessageID in a message registry or other catalog associated with the OwningEntity.") : Amended ToSubclass] string Message;
  [Description("An array containing the dynamic content of the message.") : Amended ToSubclass] string MessageArguments[];
  [Description("An enumerated value that describes the severity of the Indication from the notifier\\'s point of view: \n0 - the Perceived Severity of the indication is unknown or indeterminate. \n1 - Other, by CIM convention, is used to indicate that the Severity\\'s value can be found in the OtherSeverity property. \n2 - Information should be used when providing an informative response. \n3 - Degraded/Warning should be used when its appropriate to let the user decide if action is needed. \n4 - Minor should be used to indicate action is needed, but the situation is not serious at this time. \n5 - Major should be used to indicate action is needed NOW. \n6 - Critical should be used to indicate action is needed NOW and the scope is broad (perhaps an imminent outage to a critical resource will result). \n7 - Fatal/NonRecoverable should be used to indicate an error occurred, but it\\'s too late to take remedial action. \n2 and 0 - Information and Unknown (respectively) follow common usage. Literally, the Error is purely informational or its severity is simply unknown.") : Amended ToSubclass,Values{"Unknown", "Other", "Information", "Degraded/Warning", "Minor", "Major", "Critical", "Fatal/NonRecoverable", "DMTF Reserved"} : Amended ToSubclass] uint16 PerceivedSeverity;
  [Description("An enumerated value that describes the probable cause of the error.") : Amended ToSubclass,Values{"Unknown", "Other", "Adapter/Card Error", "Application Subsystem Failure", "Bandwidth Reduced", "Connection Establishment Error", "Communications Protocol Error", "Communications Subsystem Failure", "Configuration/Customization Error", "Congestion", "Corrupt Data", "CPU Cycles Limit Exceeded", "Dataset/Modem Error", "Degraded Signal", "DTE-DCE Interface Error", "Enclosure Door Open", "Equipment Malfunction", "Excessive Vibration", "File Format Error", "Fire Detected", "Flood Detected", "Framing Error", "HVAC Problem", "Humidity Unacceptable", "I/O Device Error", "Input Device Error", "LAN Error", "Non-Toxic Leak Detected", "Local Node Transmission Error", "Loss of Frame", "Loss of Signal", "Material Supply Exhausted", "Multiplexer Problem", "Out of Memory", "Output Device Error", "Performance Degraded", "Power Problem", "Pressure Unacceptable", "Processor Problem (Internal Machine Error)", "Pump Failure", "Queue Size Exceeded", "Receive Failure", "Receiver Failure", "Remote Node Transmission Error", "Resource at or Nearing Capacity", "Response Time Excessive", "Retransmission Rate Excessive", "Software Error", "Software Program Abnormally Terminated", "Software Program Error (Incorrect Results)", "Storage Capacity Problem", "Temperature Unacceptable", "Threshold Crossed", "Timing Problem", "Toxic Leak Detected", "Transmit Failure", "Transmitter Failure", "Underlying Resource Unavailable", "Version Mismatch", "Previous Alert Cleared", "Login Attempts Failed", "Software Virus Detected", "Hardware Security Breached", "Denial of Service Detected", "Security Credential Mismatch", "Unauthorized Access", "Alarm Received", "Loss of Pointer", "Payload Mismatch", "Transmission Error", "Excessive Error Rate", "Trace Problem", "Element Unavailable", "Element Missing", "Loss of Multi Frame", "Broadcast Channel Failure", "Invalid Message Received", "Routing Failure", "Backplane Failure", "Identifier Duplication", "Protection Path Failure", "Sync Loss or Mismatch", "Terminal Problem", "Real Time Clock Failure", "Antenna Failure", "Battery Charging Failure", "Disk Failure", "Frequency Hopping Failure", "Loss of Redundancy", "Power Supply Failure", "Signal Quality Problem", "Battery Discharging", "Battery Failure", "Commercial Power Problem", "Fan Failure", "Engine Failure", "Sensor Failure", "Fuse Failure", "Generator Failure", "Low Battery", "Low Fuel", "Low Water", "Explosive Gas", "High Winds", "Ice Buildup", "Smoke", "Memory Mismatch", "Out of CPU Cycles", "Software Environment Problem", "Software Download Failure", "Element Reinitialized", "Timeout", "Logging Problems", "Leak Detected", "Protection Mechanism Failure", "Protecting Resource Failure", "Database Inconsistency", "Authentication Failure", "Breach of Confidentiality", "Cable Tamper", "Delayed Information", "Duplicate Information", "Information Missing", "Information Modification", "Information Out of Sequence", "Key Expired", "Non-Repudiation Failure", "Out of Hours Activity", "Out of Service", "Procedural Error", "Unexpected Information", "DMTF Reserved"} : Amended ToSubclass] uint16 ProbableCause;
  [Description("A free-form string describing the probable cause of the error.") : Amended ToSubclass] string ProbableCauseDescription;
  [Description("A free-form string describing recommended actions to take to resolve the error.") : Amended ToSubclass] string RecommendedActions[];
  [Description("The identifying information of the entity (i.e., the instance) generating the error. If this entity is modeled in the CIM Schema, this property contains the path of the instance encoded as a string parameter. If not modeled, the property contains some identifying string that names the entity that generated the error. The path or identifying string is formatted per the ErrorSourceFormat property.") : Amended ToSubclass] string ErrorSource;
  [Description("The format of the ErrorSource property is interpretable based on the value of this property. Values are defined as: \n0 - Unknown. The format is unknown or not meaningfully interpretable by a CIM client application. \n1 - Other. The format is defined by the value of the OtherErrorSourceFormat property.2 - CIMObjectPath. A CIM Object Path as defined in the CIM Infrastructure specification. Note: CIM 2.5 and earlier used the term object names.") : Amended ToSubclass,Values{"Unknown", "Other", "CIMObjectPath", "DMTF Reserved"} : Amended ToSubclass] uint16 ErrorSourceFormat;
  [Description("A string defining \"Other\" values for ErrorSourceFormat. This value MUST be set to a non NULL value when ErrorSourceFormat is set to a value of 1 (\"Other\"). For all other values of ErrorSourceFormat, the value of this string must be set to NULL.") : Amended ToSubclass] string OtherErrorSourceFormat;
  [Description("The CIM status code that characterizes this instance. \nThis property defines the status codes that MAY be return by a conforming CIM Server or Listener. Note that not all status codes are valid for each operation. The specification for each operation SHOULD define the status codes that may be returned by that operation. \nThe following values for CIM status code are defined: \n1 - CIM_ERR_FAILED. A general error occurred that is not covered by a more specific error code. \n2 - CIM_ERR_ACCESS_DENIED. Access to a CIM resource was not available to the client. \n3 - CIM_ERR_INVALID_NAMESPACE. The target namespace does not exist. \n4 - CIM_ERR_INVALID_PARAMETER. One or more parameter values passed to the method were invalid. \n5 - CIM_ERR_INVALID_CLASS. The specified Class does not exist. \n6 - CIM_ERR_NOT_FOUND. The requested object could not be found. \n7 - CIM_ERR_NOT_SUPPORTED. The requested operation is not supported. \n8 - CIM_ERR_CLASS_HAS_CHILDREN. Operation cannot be carried out on this class since it has instances. \n9 - CIM_ERR_CLASS_HAS_INSTANCES. Operation cannot be carried out on this class since it has instances. \n10 - CIM_ERR_INVALID_SUPERCLASS. Operation cannot be carried out since the specified superclass does not exist. \n11 - CIM_ERR_ALREADY_EXISTS. Operation cannot be carried out because an object already exists. \n12 - CIM_ERR_NO_SUCH_PROPERTY. The specified Property does not exist. \n13 - CIM_ERR_TYPE_MISMATCH. The value supplied is incompatible with the type. \n14 - CIM_ERR_QUERY_LANGUAGE_NOT_SUPPORTED. The query language is not recognized or supported. \n15 - CIM_ERR_INVALID_QUERY. The query is not valid for the specified query language. \n16 - CIM_ERR_METHOD_NOT_AVAILABLE. The extrinsic Method could not be executed. \n17 - CIM_ERR_METHOD_NOT_FOUND. The specified extrinsic Method does not exist. \n18 - CIM_ERR_UNEXPECTED_RESPONSE. The returned response to the asynchronous operation was not expected. \n19 - CIM_ERR_INVALID_RESPONSE_DESTINATION. The specified destination for the asynchronous response is not valid. \n20 - CIM_ERR_NAMESPACE_NOT_EMPTY. The specified Namespace is not empty.\n21 - CIM_ERR_INVALID_ENUMERATION_CONTEXT. The enumeration context supplied is not valid.\n22 - CIM_ERR_INVALID_OPERATION_TIMEOUT. The specified Namespace is not empty.\n23 - CIM_ERR_PULL_HAS_BEEN_ABANDONED. The specified Namespace is not empty.\n24 - CIM_ERR_PULL_CANNOT_BE_ABANDONED. The attempt to abandon a pull operation has failed.\n25 - CIM_ERR_FILTERED_ENUMERATION_NOT_SUPPORTED. Filtered Enumeratrions are not supported.\n26 - CIM_ERR_CONTINUATION_ON_ERROR_NOT_SUPPORTED. Continue on error is not supported.\n27 - CIM_ERR_SERVER_LIMITS_EXCEEDED. The WBEM Server limits have been exceeded (e.g. memory, connections, ...).\n28 - CIM_ERR_SERVER_IS_SHUTTING_DOWN. The WBEM Server is shutting down.\n29 - CIM_ERR_QUERY_FEATURE_NOT_SUPPORTED. The specified Query Feature is not supported.") : Amended ToSubclass,Values{"CIM_ERR_FAILED", "CIM_ERR_ACCESS_DENIED", "CIM_ERR_INVALID_NAMESPACE", "CIM_ERR_INVALID_PARAMETER", "CIM_ERR_INVALID_CLASS", "CIM_ERR_NOT_FOUND", "CIM_ERR_NOT_SUPPORTED", "CIM_ERR_CLASS_HAS_CHILDREN", "CIM_ERR_CLASS_HAS_INSTANCES", "CIM_ERR_INVALID_SUPERCLASS", "CIM_ERR_ALREADY_EXISTS", "CIM_ERR_NO_SUCH_PROPERTY", "CIM_ERR_TYPE_MISMATCH", "CIM_ERR_QUERY_LANGUAGE_NOT_SUPPORTED", "CIM_ERR_INVALID_QUERY", "CIM_ERR_METHOD_NOT_AVAILABLE", "CIM_ERR_METHOD_NOT_FOUND", "CIM_ERR_UNEXPECTED_RESPONSE", "CIM_ERR_INVALID_RESPONSE_DESTINATION", "CIM_ERR_NAMESPACE_NOT_EMPTY", "CIM_ERR_INVALID_ENUMERATION_CONTEXT", "CIM_ERR_INVALID_OPERATION_TIMEOUT", "CIM_ERR_PULL_HAS_BEEN_ABANDONED", "CIM_ERR_PULL_CANNOT_BE_ABANDONED", "CIM_ERR_FILTERED_ENUMERATION_NOT_SUPPORTED", "CIM_ERR_CONTINUATION_ON_ERROR_NOT_SUPPORTED", "CIM_ERR_SERVER_LIMITS_EXCEEDED", "CIM_ERR_SERVER_IS_SHUTTING_DOWN", "CIM_ERR_QUERY_FEATURE_NOT_SUPPORTED", "DMTF Reserved"} : Amended ToSubclass] uint32 CIMStatusCode;
  [Description("A free-form string containing a human-readable description of CIMStatusCode. This description MAY extend, but MUST be consistent with, the definition of CIMStatusCode.") : Amended ToSubclass] string CIMStatusCodeDescription;
};

[Description("A FilterList aggregates instances of (subclasses of) FilterEntryBase via the aggregation EntriesInFilterList. The filter entries are always ANDed together when grouped by the FilterList. Note that it is possible to aggregate different types of filters into a single FilterList - for example, packet header filters (represented by the IpHeadersFilter class) and IPsec security filters. \n\nA FilterList is weak to the network device (e.g., the ComputerSystem) that contains it. Hence, the ComputerSystem keys are propagated to this class.") : Amended ToSubclass,Version("2.7.0") : Amended,AMENDMENT, LOCALE("MS_804")] 
class CIM_FilterEntryBase : CIM_LogicalElement
{
  [Description("The Name property defines the label by which the Filter Entry is known and uniquely identified.") : Amended ToSubclass,key] string Name;
  [key,Description("The scoping ComputerSystem\\'s CreationClassName.") : Amended ToSubclass] string SystemCreationClassName;
  [key,Description("The scoping ComputerSystem\\'s Name.") : Amended ToSubclass] 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.") : Amended ToSubclass] string CreationClassName;
  [Description("Boolean indicating that the match condition described in the properties of the FilterEntryBase subclass should be negated. This property is defined for ease of use when filtering on simple negations - for example, to select all source ports except 162. It is not recommended that this Boolean be set to True when filtering on multiple criteria, such as defining an IPHeadersFilter based on source/destination addresses, ports, and DiffServ Code Points.") : Amended ToSubclass] boolean IsNegated;
};

[Description("CIM_ServiceAccessPoint represents the ability to utilize or invoke a Service. Access points represent that a Service is made available for other entities to use.") : Amended ToSubclass,Version("2.10.0") : Amended,AMENDMENT, LOCALE("MS_804")] 
class CIM_ServiceAccessPoint : CIM_EnabledLogicalElement
{
  [Description("The Name property uniquely identifies the ServiceAccessPoint and provides an indication of the functionality that is managed. This functionality is described in more detail in the Description property of the object.") : Amended ToSubclass,key] string Name;
  [key,Description("The CreationClassName of the scoping System.") : Amended ToSubclass] string SystemCreationClassName;
  [key,Description("The Name of the scoping System.") : Amended ToSubclass] 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.") : Amended ToSubclass] string CreationClassName;
};

[Description("A communication point from which data can be sent or received. ProtocolEndpoints link system or computer interfaces to LogicalNetworks.") : Amended ToSubclass,Version("2.15.0") : Amended,AMENDMENT, LOCALE("MS_804")] 
class CIM_ProtocolEndpoint : CIM_ServiceAccessPoint
{
  [Description("The Description property provides a textual description of the object.") : Amended ToSubclass] string Description;
  [Description("A string that identifies this ProtocolEndpoint with either a port or an interface on a device. To ensure uniqueness, the Name property should be prepended or appended with information from the Type or OtherTypeDescription properties. The method selected is described in the NameFormat property of this class.") : Amended ToSubclass,key] 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. \nOperationalStatus replaces the Status property on ManagedSystemElement to provide a consistent approach to enumerations, to address implementation needs for an array property, and to provide a migration path from today\\'s environment to the future. This change was not made earlier 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.") : Amended ToSubclass,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"} : Amended ToSubclass] uint16 OperationalStatus[];
  [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: \nEnabled (2) indicates that the element is or could be executing commands, will process any queued commands, and queues new requests. \nDisabled (3) indicates that the element will not execute commands and will drop any new requests. \nShutting Down (4) indicates that the element is in the process of going to a Disabled state. \nNot Applicable (5) indicates the element does not support being enabled or disabled. \nEnabled but Offline (6) indicates that the element might be completing commands, and will drop any new requests. \nTest (7) indicates that the element is in a test state. \nDeferred (8) indicates that the element might be completing commands, but will queue any new requests. \nQuiesce (9) indicates that the element is enabled but in a restricted mode.\nStarting (10) indicates that the element is in the process of going to an Enabled state. New requests are queued.") : Amended ToSubclass,Values{"Unknown", "Other", "Enabled", "Disabled", "Shutting Down", "Not Applicable", "Enabled but Offline", "In Test", "Deferred", "Quiesce", "Starting", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 EnabledState;
  [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.") : Amended ToSubclass] datetime TimeOfLastStateChange;
  [Description("NameFormat contains the naming heuristic that is selected to ensure that the value of the Name property is unique. For example, you might choose to prepend the name of the port or interface with the Type of ProtocolEndpoint (for example, IPv4) of this instance followed by an underscore.") : Amended ToSubclass] string NameFormat;
  [Description("Note: This property is deprecated in lieu of the ProtocolIFType enumeration. This deprecation was done to have better alignment between the IF-MIB of the IETF and this CIM class. \nDeprecated description: ProtocolType is an enumeration that provides information to categorize and classify different instances of this class. For most instances, information in this enumeration and the definition of the subclass overlap. However, there are several cases where a specific subclass of ProtocolEndpoint is not required (for example, there is no Fibre Channel subclass of ProtocolEndpoint). Therefore, this property is needed to define the type of Endpoint.") : Amended ToSubclass,Values{"Unknown", "Other", "IPv4", "IPv6", "IPX", "AppleTalk", "DECnet", "SNA", "CONP", "CLNP", "VINES", "XNS", "ATM", "Frame Relay", "Ethernet", "TokenRing", "FDDI", "Infiniband", "Fibre Channel", "ISDN BRI Endpoint", "ISDN B Channel Endpoint", "ISDN D Channel Endpoint", "IPv4/v6", "BGP", "OSPF", "MPLS", "UDP", "TCP"} : Amended ToSubclass] uint16 ProtocolType;
  [Description("ProtocolIFType is an enumeration that is synchronized with the IANA ifType MIB. The ifType MIB is maintained at the URL, http://www.iana.org/assignments/ianaiftype-mib. Also, additional values defined by the DMTF are included. The property is used to categorize and classify instances of the ProtocolEndpoint class. Note that if the ProtocolIFType is set to 1 (Other), then the type information should be provided in the OtherTypeDescription string property.") : Amended ToSubclass,Values{"Unknown", "Other", "Regular 1822", "HDH 1822", "DDN X.25", "RFC877 X.25", "Ethernet CSMA/CD", "ISO 802.3 CSMA/CD", "ISO 802.4 Token Bus", "ISO 802.5 Token Ring", "ISO 802.6 MAN", "StarLAN", "Proteon 10Mbit", "Proteon 80Mbit", "HyperChannel", "FDDI", "LAP-B", "SDLC", "DS1", "E1", "Basic ISDN", "Primary ISDN", "Proprietary Point-to-Point Serial", "PPP", "Software Loopback", "EON", "Ethernet 3Mbit", "NSIP", "SLIP", "Ultra", "DS3", "SIP", "Frame Relay", "RS-232", "Parallel", "ARCNet", "ARCNet Plus", "ATM", "MIO X.25", "SONET", "X.25 PLE", "ISO 802.211c", "LocalTalk", "SMDS DXI", "Frame Relay Service", "V.35", "HSSI", "HIPPI", "Modem", "AAL5", "SONET Path", "SONET VT", "SMDS ICIP", "Proprietary Virtual/Internal", "Proprietary Multiplexor", "IEEE 802.12", "Fibre Channel", "HIPPI Interface", "Frame Relay Interconnect", "ATM Emulated LAN for 802.3", "ATM Emulated LAN for 802.5", "ATM Emulated Circuit", "Fast Ethernet (100BaseT)", "ISDN", "V.11", "V.36", "G703 at 64K", "G703 at 2Mb", "QLLC", "Fast Ethernet 100BaseFX", "Channel", "IEEE 802.11", "IBM 260/370 OEMI Channel", "ESCON", "Data Link Switching", "ISDN S/T Interface", "ISDN U Interface", "LAP-D", "IP Switch", "Remote Source Route Bridging", "ATM Logical", "DS0", "DS0 Bundle", "BSC", "Async", "Combat Net Radio", "ISO 802.5r DTR", "Ext Pos Loc Report System", "AppleTalk Remote Access Protocol", "Proprietary Connectionless", "ITU X.29 Host PAD", "ITU X.3 Terminal PAD", "Frame Relay MPI", "ITU X.213", "ADSL", "RADSL", "SDSL", "VDSL", "ISO 802.5 CRFP", "Myrinet", "Voice Receive and Transmit", "Voice Foreign Exchange Office", "Voice Foreign Exchange Service", "Voice Encapsulation", "Voice over IP", "ATM DXI", "ATM FUNI", "ATM IMA", "PPP Multilink Bundle", "IP over CDLC", "IP over CLAW", "Stack to Stack", "Virtual IP Address", "MPC", "IP over ATM", "ISO 802.5j Fibre Token Ring", "TDLC", "Gigabit Ethernet", "HDLC", "LAP-F", "V.37", "X.25 MLP", "X.25 Hunt Group", "Transp HDLC", "Interleave Channel", "FAST Channel", "IP (for APPN HPR in IP Networks)", "CATV MAC Layer", "CATV Downstream", "CATV Upstream", "Avalon 12MPP Switch", "Tunnel", "Coffee", "Circuit Emulation Service", "ATM SubInterface", "Layer 2 VLAN using 802.1Q", "Layer 3 VLAN using IP", "Layer 3 VLAN using IPX", "Digital Power Line", "Multimedia Mail over IP", "DTM", "DCN", "IP Forwarding", "MSDSL", "IEEE 1394", "IF-GSN/HIPPI-6400", "DVB-RCC MAC Layer", "DVB-RCC Downstream", "DVB-RCC Upstream", "ATM Virtual", "MPLS Tunnel", "SRP", "Voice over ATM", "Voice over Frame Relay", "ISDL", "Composite Link", "SS7 Signaling Link", "Proprietary P2P Wireless", "Frame Forward", "RFC1483 Multiprotocol over ATM", "USB", "IEEE 802.3ad Link Aggregate", "BGP Policy Accounting", "FRF .16 Multilink FR", "H.323 Gatekeeper", "H.323 Proxy", "MPLS", "Multi-Frequency Signaling Link", "HDSL-2", "S-HDSL", "DS1 Facility Data Link", "Packet over SONET/SDH", "DVB-ASI Input", "DVB-ASI Output", "Power Line", "Non Facility Associated Signaling", "TR008", "GR303 RDT", "GR303 IDT", "ISUP", "Proprietary Wireless MAC Layer", "Proprietary Wireless Downstream", "Proprietary Wireless Upstream", "HIPERLAN Type 2", "Proprietary Broadband Wireless Access Point to Mulipoint", "SONET Overhead Channel", "Digital Wrapper Overhead Channel", "ATM Adaptation Layer 2", "Radio MAC", "ATM Radio", "Inter Machine Trunk", "MVL DSL", "Long Read DSL", "Frame Relay DLCI Endpoint", "ATM VCI Endpoint", "Optical Channel", "Optical Transport", "Proprietary ATM", "Voice over Cable", "Infiniband", "TE Link", "Q.2931", "Virtual Trunk Group", "SIP Trunk Group", "SIP Signaling", "CATV Upstream Channel", "Econet", "FSAN 155Mb PON", "FSAN 622Mb PON", "Transparent Bridge", "Line Group", "Voice E&M Feature Group", "Voice FGD EANA", "Voice DID", "MPEG Transport", "6To4", "GTP", "Paradyne EtherLoop 1", "Paradyne EtherLoop 2", "Optical Channel Group", "HomePNA", "GFP", "ciscoISLvlan", "actelisMetaLOOP", "Fcip", "IANA Reserved", "IPv4", "IPv6", "IPv4/v6", "IPX", "DECnet", "SNA", "CONP", "CLNP", "VINES", "XNS", "ISDN B Channel Endpoint", "ISDN D Channel Endpoint", "BGP", "OSPF", "UDP", "TCP", "802.11a", "802.11b", "802.11g", "802.11h", "NFS", "CIFS", "DAFS", "WebDAV", "HTTP", "FTP", "NDMP", "Telnet", "SSH", "SM CLP", "SMTP", "LDAP", "RDP", "HTTPS", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 ProtocolIFType;
  [Description("A string that describes the type of ProtocolEndpoint when the Type property of this class (or any of its subclasses) is set to 1 (Other). This property should be set to null when the Type property is any value other than 1.") : Amended ToSubclass] string OtherTypeDescription;
};

[Description("A ProtocolEndpoint that is dedicated to running IP.") : Amended ToSubclass,Version("2.19.1") : Amended,AMENDMENT, LOCALE("MS_804")] 
class CIM_IPProtocolEndpoint : CIM_ProtocolEndpoint
{
  [Description("ProtocolIFType\\'s enumeration is limited to IP-related and reserved values for this subclass of ProtocolEndpoint.") : Amended ToSubclass,Values{"Other", "IANA Reserved", "IPv4", "IPv6", "IPv4/v6", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 ProtocolIFType;
  [Description("The IPv4 address that this ProtocolEndpoint represents.") : Amended ToSubclass] string IPv4Address;
  [Description("The IPv6 address that this ProtocolEndpoint represents.") : Amended ToSubclass] string IPv6Address;
  [Description("The IP address that this ProtocolEndpoint represents, formatted according to the appropriate convention as defined in the AddressType property of this class (e.g., 171.79.6.40). This single property is deprecated to replace it by specific IPv4 and v6 addresses.") : Amended ToSubclass] string Address;
  [Description("The mask for the IPv4 address of this ProtocolEndpoint, if one is defined.") : Amended ToSubclass] string SubnetMask;
  [Description("The prefix length for the IPv6 address of this Protocol Endpoint, if one is defined.") : Amended ToSubclass] uint8 PrefixLength;
  [Description("An enumeration that describes the format of the Address property. It is deprecated since it is not needed, as the class contains both IPv4 and v6 addresses).") : Amended ToSubclass,Values{"Unknown", "IPv4", "IPv6"} : Amended ToSubclass] uint16 AddressType;
  [Description("This property explicitly defines support for different versions of the IP protocol, for this Endpoint. It is deprecated since the ProtocolIFType also provides this functionality by describing an endpoint as IPv4 only (value=4096), IPv6 only (value=4097), or IPv4/v6 (value=4098).") : Amended ToSubclass,Values{"Unknown", "IPv4 Only", "IPv6 Only", "Both IPv4 and IPv6"} : Amended ToSubclass] uint16 IPVersionSupport;
  [Description("AddressOrigin identifies the method by which the IP Address, Subnet Mask, and Gateway were assigned to the IPProtocolEndpoint.A value of 3 \"Static\" shall indicate the values were assigned manually. A value of 4 \"DHCP\" shall indicate the values were assigned utilizing the Dynamic Host Configuration Protocol. See RFC 2131 and related. \nA value of 5 \"BOOTP\" shall indicate the values were assigned utilizing BOOTP. See RFC 951 and related. \nA value of 6 \"IPv4 Link Local\" shall indicate the values were assigned using the IPv4 Link Local protocol. See RFC 3927.\nA value of 7 \"DHCPv6\" shall indicate the values were assigned using DHCPv6. See RFC 3315. \nA value of 8 \"IPv6 AutoConfig\" shall indicate the values were assinged using the IPv6 AutoConfig Protocol. See RFC 4862.") : Amended ToSubclass,Values{"Unknown", "Other", "Not Applicable", "Static", "DHCP", "BOOTP", "IPv4 Link Local", "DHCPv6", "IPv6AutoConfig", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 AddressOrigin;
};

[Description("A communication endpoint which, when its associated interface device is connected to a LAN, may send and receive data frames. LANEndpoints include Ethernet, Token Ring and FDDI interfaces.") : Amended ToSubclass,Version("2.7.0") : Amended,AMENDMENT, LOCALE("MS_804")] 
class CIM_LANEndpoint : CIM_ProtocolEndpoint
{
  [Description("A label or identifier for the LAN Segment to which the Endpoint is connected. If the Endpoint is not currently active/connected or this information is not known, then LANID is NULL.") : Amended ToSubclass] string LANID;
  [Description("An indication of the kind of technology used on the LAN. This property is deprecated in lieu of ProtocolType, which is an enumeration inherited from ProtocolEndpoint and which includes the Values specified here.") : Amended ToSubclass,Values{"Unknown", "Other", "Ethernet", "TokenRing", "FDDI"} : Amended ToSubclass] uint16 LANType;
  [Description("A free-form string that describes the type of technology used on the LAN when the value of the LANType property is equal to 1 (i.e., \"Other\"). This property is deprecated since its purpose overlaps with OtherTypeDescription, which which is inherited from ProtocolEndpoint.") : Amended ToSubclass] string OtherLANType;
  [Description("The principal unicast address used in communication with the LANEndpoint. The MAC address is formatted as twelve hexadecimal digits (e.g., \"010203040506\"), with each pair representing one of the six octets of the MAC address in \"canonical\" bit order according to RFC 2469.") : Amended ToSubclass] string MACAddress;
  [Description("Other unicast addresses that may be used to communicate with the LANEndpoint.") : Amended ToSubclass] string AliasAddresses[];
  [Description("Multicast addresses to which the LANEndpoint listens.") : Amended ToSubclass] string GroupAddresses[];
  [Description("The largest information field that may be sent or received by the LANEndpoint.") : Amended ToSubclass,Units("Bits") : Amended ToSubclass] uint32 MaxDataSize;
};

[Description("An abstraction or emulation of a hardware entity, that may or may 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.") : Amended ToSubclass,Version("2.8.0") : Amended,AMENDMENT, LOCALE("MS_804")] 
class CIM_LogicalDevice : CIM_EnabledLogicalElement
{
  [key,Description("The scoping System\\'s CreationClassName.") : Amended ToSubclass] string SystemCreationClassName;
  [key,Description("The scoping System\\'s Name.") : Amended ToSubclass] 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.") : Amended ToSubclass] string CreationClassName;
  [key,Description("An address or other identifying information to uniquely name the LogicalDevice.") : Amended ToSubclass] string DeviceID;
  [Description("Boolean indicating that the Device can be power managed. The use of this property has been deprecated. Instead, the existence of an associated PowerManagementCapabilities class (associated using the ElementCapabilities relationhip) indicates that power management is supported.") : Amended ToSubclass] boolean PowerManagementSupported;
  [Description("An enumerated array describing the power management capabilities of the Device. The use of this property has been deprecated. Instead, the PowerCapabilites property in an associated PowerManagementCapabilities class should be used.") : Amended ToSubclass,Values{"Unknown", "Not Supported", "Disabled", "Enabled", "Power Saving Modes Entered Automatically", "Power State Settable", "Power Cycling Supported", "Timed Power On Supported"} : Amended ToSubclass] uint16 PowerManagementCapabilities[];
  [Description("The primary availability and status of the Device. (Additional status information can be specified using the Additional Availability array property.) For example, the Availability property indicates that the Device is running and has full power (value=3), or is in a warning (4), test (5), degraded (10) or power save state (values 13-15 and 17). Regarding the Power Save states, these are defined as follows: Value 13 (\"Power Save - Unknown\") indicates that the Device is known to be in a power save mode, but its exact status in this mode is unknown; 14 (\"Power Save - Low Power Mode\") indicates that the Device is in a power save state but still functioning, and may exhibit degraded performance; 15 (\"Power Save - Standby\") describes that the Device is not functioning but could be brought to full power \\'quickly\\'; and value 17 (\"Power Save - Warning\") indicates that the Device is in a warning state, though also in a power save mode.") : Amended ToSubclass,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"} : Amended ToSubclass] uint16 Availability;
  [Description("The StatusInfo property indicates whether the Logical Device is in an enabled (value = 3), disabled (value = 4) or some other (1) or unknown (2) state. If this property does not apply to the LogicalDevice, the value, 5 (\"Not Applicable\"), should be used. StatusInfo has been deprecated in lieu of a more clearly named property with additional enumerated values (EnabledState), that is inherited from ManagedSystemElement. \nIf a Device is (\"Enabled\")(value=3), it has been powered up, and is configured and operational. The Device may or may not be functionally active, depending on whether its Availability (or AdditionalAvailability) indicate that it is (\"Running/Full Power\")(value=3) or (\"Off line\") (value=8). In an enabled but offline mode, a Device may be performing out-of-band requests, such as running Diagnostics. If (\"Disabled\") StatusInfo value=4), a Device can only be \"enabled\" or powered off. In a personal computer environment, (\"Disabled\") means that the Device\\'s driver is not available in the stack. In other environments, a Device can be disabled by removing its configuration file. A disabled device is physically present in a System and consuming resources, but can not be communicated with until a load of a driver, a load of a configuration file or some other \"enabling\" activity has occurred.") : Amended ToSubclass,Values{"Other", "Unknown", "Enabled", "Disabled", "Not Applicable"} : Amended ToSubclass] uint16 StatusInfo;
  [Description("LastErrorCode captures the last error code reported by the LogicalDevice.") : Amended ToSubclass] uint32 LastErrorCode;
  [Description("ErrorDescription is a free-form string supplying more information about the error recorded in LastErrorCode, and information on any corrective actions that may be taken.") : Amended ToSubclass] string ErrorDescription;
  [Description("ErrorCleared is a boolean property indicating that the error reported in LastErrorCode is now cleared.") : Amended ToSubclass] boolean ErrorCleared;
  [Description("OtherIdentifyingInfo captures additional data, beyond DeviceID information, that could be used to identify a LogicalDevice. One example would be to hold the Operating System\\'s user friendly name for the Device in this property.") : Amended ToSubclass] string OtherIdentifyingInfo[];
  [Description("The number of consecutive hours that this Device has been powered, since its last power cycle.") : Amended ToSubclass,Units("Hours") : Amended ToSubclass] uint64 PowerOnHours;
  [Description("The total number of hours that this Device has been powered.") : Amended ToSubclass,Units("Hours") : Amended ToSubclass] uint64 TotalPowerOnHours;
  [Description("An array of free-form strings providing explanations and details behind the entries in the OtherIdentifyingInfo array. Note, each entry of this array is related to the entry in OtherIdentifyingInfo that is located at the same index.") : Amended ToSubclass] string IdentifyingDescriptions[];
  [Description("Additional availability and status of the Device, beyond that specified in the Availability property. The Availability property denotes the primary status and availability of the Device. In some cases, this 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, a Device\\'s primary Availability may be \"Off line\" (value=8), but it may also be in a low power state (AdditonalAvailability value=14), or the Device could be running Diagnostics (AdditionalAvailability value=5, \"In Test\").") : Amended ToSubclass,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"} : Amended ToSubclass] uint16 AdditionalAvailability[];
  [Description("The MaxQuiesceTime property has been deprecated. When evaluating the use of Quiesce, it was determine that this single property is not adequate for describing when a device will automatically exit a quiescent state. In fact, the most likely scenario for a device to exit a quiescent state was determined to be based on the number of outstanding requests queued rather than on a maximum time. This will be re-evaluated and repositioned later. \nMaximum time in milliseconds, that a Device can run in a \"Quiesced\" state. A Device\\'s state is defined in its Availability and AdditionalAvailability properties, where \"Quiesced\" is conveyed by the value 21. What occurs at the end of the time limit is device-specific. The Device may unquiesce, may offline or take other action. A value of 0 indicates that a Device can remain quiesced indefinitely.") : Amended ToSubclass,Units("MilliSeconds") : Amended ToSubclass] uint64 MaxQuiesceTime;
  [Description("Sets the power state of the Device. The use of this method has been deprecated. Instead, use the SetPowerState method in the associated PowerManagementService class.") : Amended ToSubclass] uint32 SetPowerState([In,Description("The power state to set.") : Amended ToSubclass,Values{"Full Power", "Power Save - Low Power Mode", "Power Save - Standby", "Power Save - Other", "Power Cycle", "Power Off"} : Amended ToSubclass] uint16 PowerState,[In,Description("Time indicates when the power state should be set, either as a regular date-time value or as an interval value (where the interval begins when the method invocation is received.") : Amended ToSubclass] datetime Time);
  [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\\' may also be specified in the subclass as a Values array qualifier.") : Amended ToSubclass] uint32 Reset();
  [Description("The EnableDevice method has been deprecated in lieu of the more general RequestStateChange method that directly overlaps with the functionality provided by this method. \nRequests that the LogicalDevice be enabled (\"Enabled\" input parameter = TRUE) or disabled (= FALSE). If successful, the Device\\'s StatusInfo/EnabledState properties should reflect the desired state (enabled/disabled). Note that this method\\'s function overlaps with the RequestedState property. RequestedState was added to the model to maintain a record (i.e., a persisted value) of the last state request. Invoking the EnableDevice method should set the RequestedState property appropriately. \nThe return code 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.") : Amended ToSubclass] uint32 EnableDevice([In,Description("If TRUE enable the device, if FALSE disable the device.") : Amended ToSubclass] boolean Enabled);
  [Description("The OnlineDevice method has been deprecated in lieu of the more general RequestStateChange method that directly overlaps with the functionality provided by this method. \nRequests that the LogicalDevice be brought online (\"Online\" input parameter = TRUE) or taken offline (= FALSE). \"Online\" indicates that the Device is ready to accept requests, and is operational and fully functioning. In this case, the Device\\'s Availability property would be set to a value of 3 (\"Running/Full Power\"). \"Offline\" indicates that a Device is powered up and operational, but not processing functional requests. In an offline state, a Device may be capable of running diagnostics or generating operational alerts. For example, when the \"Offline\" button is pushed on a Printer, the Device is no longer available to process print jobs, but could be available for diagnostics or maintenance. \nIf this method is successful, the Device\\'s Availability and AdditionalAvailability properties should reflect the updated status. If a failure occurs trying to bring the Device online or offline, it should remain in its current state. IE, the request, if unsuccessful, should not leave the Device in an indeterminate state. When bringing a Device back \"Online\", from an \"Offline\" mode, the Device should be restored to its last \"Online\" state, if at all possible. Only a Device that has an EnabledState/StatusInfo of \"Enabled\" and has been configured can be brought online or taken offline. \nOnlineDevice should return 0 if successful, 1 if the request is not supported at all, 2 if the request is not supported due to the current state of the Device, and some other value if any other 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. \nNote that this method\\'s function overlaps with the RequestedState property. RequestedState was added to the model to maintain a record (i.e., a persisted value) of the last state request. Invoking the OnlineDevice method should set the RequestedState property appropriately.") : Amended ToSubclass] uint32 OnlineDevice([In,Description("If TRUE, take the device online, if FALSE, take the device OFFLINE.") : Amended ToSubclass] boolean Online);
  [Description("The QuiesceDevice method has been deprecated in lieu of the more general RequestStateChange method that directly overlaps with the functionality provided by this method. \nRequests that the LogicalDevice cleanly cease all current activity (\"Quiesce\" input parameter = TRUE) or resume activity (= FALSE). For this method to quiesce a Device, that Device should have an Availability (or Additional Availability) of \"Running/Full Power\" (value=3) and an EnabledStatus/StatusInfo of \"Enabled\". For example, if quiesced, a Device may then be offlined for diagnostics, or disabled for power off and hot swap. For the method to \"unquiesce\" a Device, that Device should have an Availability (or AdditionalAvailability) of \"Quiesced\" (value=21) and an EnabledStatus/StatusInfo of \"Enabled\". In this case, the Device would be returned to an \"Enabled\" and \"Running/Full Power\" status. \nThe method\\'s return code should indicate the success or failure of the quiesce. It should return 0 if successful, 1 if the request is not supported at all, 2 if the request is not supported due to the current state of the Device, and some other value if any other 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.") : Amended ToSubclass] uint32 QuiesceDevice([In,Description("If set to TRUE then cleanly cease all activity, if FALSE resume activity.") : Amended ToSubclass] boolean Quiesce);
  [Description("Requests that the Device capture its current configuration, setup and/or state information in a backing store. The goal would be to use this information at a later time (via the RestoreProperties method), to return a Device to its present \"condition\". This method may not be supported by all Devices. The method should return 0 if successful, 1 if the request is not supported, and some other value if any other 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.") : Amended ToSubclass] uint32 SaveProperties();
  [Description("Requests that the Device re-establish its configuration, setup and/or state information from a backing store. The intent is to capture this information at an earlier time (via the SaveProperties method), and use it to return a Device to this earlier \"condition\". This method may not be supported by all Devices. The method should return 0 if successful, 1 if the request is not supported, and some other value if any other 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.") : Amended ToSubclass] uint32 RestoreProperties();
};

[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.") : Amended ToSubclass,Version("2.10.0") : Amended,AMENDMENT, LOCALE("MS_804")] 
class CIM_LogicalPort : CIM_LogicalDevice
{
  [Description("The bandwidth of the Port in Bits per Second.") : Amended ToSubclass,Units("Bits per Second") : Amended ToSubclass] uint64 Speed;
  [Description("The maximum bandwidth of the Port in Bits per Second.") : Amended ToSubclass,Units("Bits per Second") : Amended ToSubclass] uint64 MaxSpeed;
  [Description("The requested bandwidth of the Port in Bits per Second. The actual bandwidth is reported in LogicalPort.Speed.") : Amended ToSubclass,Units("Bits per Second") : Amended ToSubclass] uint64 RequestedSpeed;
  [Description("In some circumstances, a LogicalPort might be identifiable as a front end or back end port. An example of this situation would be a storage array that might have back end ports to communicate with disk drives and front end ports to communicate with hosts. If there is no restriction on the use of the port, then the value should be set to \\'not restricted\\'.") : Amended ToSubclass,Values{"Unknown", "Front-end only", "Back-end only", "Not restricted"} : Amended ToSubclass] uint16 UsageRestriction;
  [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.") : Amended ToSubclass,Values{"Unknown", "Other", "Not Applicable", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 PortType;
  [Description("Describes the type of module, when PortType is set to 1 (\"Other\").") : Amended ToSubclass] string OtherPortType;
};

[Description("NetworkPipe is a subclass of EnabledLogicalElement, representing the state and management of a connection or trail between endpoints. This object is different than the association between the endpoints (CIM_ActiveConnection) since the emphasis is NOT on the endpoints but on the management of the pipe itself - its state, configuration, etc. NetworkPipes are defined in the context of a CIM_Network and represent the \\'transfer of information . . . between . . . endpoints\\'. These concepts are aligned with the definition of the Pipe object in ITU\\'s M.3100 specification.") : Amended ToSubclass,Version("2.19.0") : Amended,AMENDMENT, LOCALE("MS_804")] 
class CIM_NetworkPipe : CIM_EnabledLogicalElement
{
  [Description("Within the scope of the instantiating Namespace, InstanceID opaquely and uniquely identifies an instance of this class. In order to ensure uniqueness within the NameSpace, the value of InstanceID SHOULD be constructed using the following \\'preferred\\' algorithm: \n<OrgID>:<LocalID> \nWhere <OrgID> and <LocalID> are separated by a colon \\':\\', and where <OrgID> MUST include a copyrighted, trademarked or otherwise unique name that is owned by the business entity creating/defining the InstanceID, or is a registered ID that is assigned to the business entity by a recognized global authority. (This is similar to the <Schema Name>_<Class Name> structure of Schema class names.) In addition, to ensure uniqueness <OrgID> MUST NOT contain a colon (\\':\\'). When using this algorithm, the first colon to appear in InstanceID MUST appear between <OrgID> and <LocalID>. (For DMTF defined instances, the \\'preferred\\' algorithm MUST be used with the <OrgID> set to \\'CIM\\'.) \n<LocalID> MUST include either a vendor specified unique identifier, or if mapping from an ITU M.3100 environment, the trailID, connectionID or subNetworkConnectionID of the instances of PipeR2.") : Amended ToSubclass,key] string InstanceID;
  [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: \nEnabled (2) indicates that the element is or could be executing commands, will process any queued commands, and queues new requests. \nDisabled (3) indicates that the element will not execute commands and will drop any new requests. \nShutting Down (4) indicates that the element is in the process of going to a Disabled state. \nNot Applicable (5) indicates the element does not support being enabled or disabled. \nEnabled but Offline (6) indicates that the element might be completing commands, and will drop any new requests. \nTest (7) indicates that the element is in a test state. \nDeferred (8) indicates that the element might be completing commands, but will queue any new requests. \nQuiesce (9) indicates that the element is enabled but in a restricted mode.\nStarting (10) indicates that the element is in the process of going to an Enabled state. New requests are queued.") : Amended ToSubclass,Values{"Unknown", "Other", "Enabled", "Disabled", "Shutting Down", "Not Applicable", "Enabled but Offline", "In Test", "Deferred", "Quiesce", "Starting", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 EnabledState;
  [Description("RequestedState is an integer enumeration that indicates the last requested or desired state for the element, irrespective of the mechanism through which it was requested. 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. Refer to the EnabledState property description for explanations of the values in the RequestedState enumeration. \n\"Unknown\" (0) indicates the last requested state for the element is unknown.\nNote that the value \"No Change\" (5) has been deprecated in lieu of indicating the last requested state is \"Unknown\" (0). If the last requested or desired state is unknown, RequestedState should have the value \"Unknown\" (0), but may have the value \"No Change\" (5).Offline (6) indicates that the element has been requested to transition to the Enabled but Offline EnabledState. \nIt should be noted that there are two new values in RequestedState that build on the statuses of EnabledState. These are \"Reboot\" (10) and \"Reset\" (11). 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\nThis 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\nIf knowledge of the last RequestedState is not supported for the EnabledLogicalElement, the property shall be NULL or have the value 12 \"Not Applicable\".") : Amended ToSubclass,Values{"Unknown", "Enabled", "Disabled", "Shut Down", "No Change", "Offline", "Test", "Deferred", "Quiesce", "Reboot", "Reset", "Not Applicable", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 RequestedState;
  [Description("Indicates whether the pipe is bi-directional (value = 2), unidirectional (value = 3), or this information is not known (value = 0). For unidirectional pipes, the source and sink are indicated by a property (SourceOrSink) of the association, EndpointOfNetworkPipe.") : Amended ToSubclass,Values{"Unknown", "Bi-Directional", "Unidirectional"} : Amended ToSubclass] uint16 Directionality;
  [Description("Indicates whether the pipe is composed of lower-level pipes, and if so, how these lower-level pipes are aggregated (in parallel or in sequence). The specific instances of NetworkPipe that are combined are described using the NetworkPipeComposition association. \n\nIn the context of M.3100, the ability to be composed of lower-level pipes is modeled as a Trail. A Trail is made up of one or more Connections. (Note that both Trails and Connections are subclasses of Pipe). Because of the flexibility of the NetworkPipeComposition association, there is no need to subclass NetworkPipe, as was done in M.3100, but merely to instantiate the NetworkPipeComposition association to describe the bundling of the lower-level pipes (i.e., the connections), or the sequencing of them.") : Amended ToSubclass,Values{"Unknown", "No Lower-Level Composition", "Combined In Parallel", "Combined In Sequence"} : Amended ToSubclass] uint16 AggregationBehavior;
};

[Description("NetworkPort is the logical representation of network communications hardware such as a physical connector and the setup or operation of the network chips, at the lowest layers of a network stack.") : Amended ToSubclass,Version("2.10.0") : Amended,AMENDMENT, LOCALE("MS_804")] 
class CIM_NetworkPort : CIM_LogicalPort
{
  [Description("The current bandwidth of the Port in Bits per Second. For ports that vary in bandwidth or for those where no accurate estimation can be made, this property should contain the nominal bandwidth.") : Amended ToSubclass,Units("Bits per Second") : Amended ToSubclass] uint64 Speed;
  [Description("Note: The use of this property is deprecated in lieu of CIM_LogicalPort.PortType. \nDeprecated description: The type of module, when PortType is set to 1 (\"Other\".)") : Amended ToSubclass] string OtherNetworkPortType;
  [Description("NetworkPorts are often numbered relative to either a logical module or a network element.") : Amended ToSubclass] uint16 PortNumber;
  [Description("An enumeration of the types of links. When set to 1 (\"Other\"), the related property OtherLinkTechnology contains a string description of the type of link.") : Amended ToSubclass,Values{"Unknown", "Other", "Ethernet", "IB", "FC", "FDDI", "ATM", "Token Ring", "Frame Relay", "Infrared", "BlueTooth", "Wireless LAN"} : Amended ToSubclass] uint16 LinkTechnology;
  [Description("A string value that describes LinkTechnology when it is set to 1, \"Other\".") : Amended ToSubclass] string OtherLinkTechnology;
  [Description("PermanentAddress defines the network address that is hardcoded into a port. This \\'hardcoded\\' address can be changed using a firmware upgrade or a software configuration. When this change is made, the field should be updated at the same time. PermanentAddress should be left blank if no \\'hardcoded\\' address exists for the NetworkAdapter.") : Amended ToSubclass] string PermanentAddress;
  [Description("An array of strings that indicates the network addresses for the port.") : Amended ToSubclass] string NetworkAddresses[];
  [Description("Boolean that indicates that the port is operating in full duplex mode.") : Amended ToSubclass] boolean FullDuplex;
  [Description("A Boolean that indicates whether the NetworkPort is capable of automatically determining the speed or other communications characteristics of the attached network media.") : Amended ToSubclass] boolean AutoSense;
  [Description("The maximum transmission unit (MTU) that can be supported.") : Amended ToSubclass,Units("Bytes") : Amended ToSubclass] uint64 SupportedMaximumTransmissionUnit;
  [Description("The active or negotiated maximum transmission unit (MTU) that can be supported.") : Amended ToSubclass,Units("Bytes") : Amended ToSubclass] uint64 ActiveMaximumTransmissionUnit;
};

[Description("NextHopRoute represents one of a series of \\'hops\\' to reach a network destination. A route is administratively defined, or calculated/learned by a particular routing process. A ConcreteDependency associaton may be instantiated between a route and its routing service to indicate this. (In this scenario, the route is dependent on the service.)") : Amended ToSubclass,Version("2.19.0") : Amended,AMENDMENT, LOCALE("MS_804")] 
class CIM_NextHopRoute : CIM_ManagedElement
{
  [Description("Within the scope of the instantiating Namespace, InstanceID opaquely and uniquely identifies an instance of this class. In order to ensure uniqueness within the NameSpace, the value of InstanceID SHOULD be constructed using the following \\'preferred\\' algorithm: \n<OrgID>:<LocalID> \nWhere <OrgID> and <LocalID> are separated by a colon \\':\\', and where <OrgID> MUST include a copyrighted, trademarked or otherwise unique name that is owned by the business entity creating/defining the InstanceID, or is a registered ID that is assigned to the business entity by a recognized global authority. (This is similar to the <Schema Name>_<Class Name> structure of Schema class names.) In addition, to ensure uniqueness <OrgID> MUST NOT contain a colon (\\':\\'). When using this algorithm, the first colon to appear in InstanceID MUST appear between <OrgID> and <LocalID>. \n<LocalID> is chosen by the business entity and SHOULD not be re-used to identify different underlying (real-world) elements. If the above \\'preferred\\' algorithm is not used, the defining entity MUST assure that the resultant InstanceID is not re-used across any InstanceIDs produced by this or other providers for this instance\\'s NameSpace. \nFor DMTF defined instances, the \\'preferred\\' algorithm MUST be used with the <OrgID> set to \\'CIM\\'.") : Amended ToSubclass,key] string InstanceID;
  [Description("The address which serves as the destination to be reached.") : Amended ToSubclass] string DestinationAddress;
  [Description("The specific administrative distance of this route, overriding any default distances specified by the system or routing service.") : Amended ToSubclass] uint16 AdminDistance;
  [Description("RouteMetric provides a numeric indication as to the preference of this route, compared to other routes that reach the same destination.") : Amended ToSubclass] uint16 RouteMetric;
  [Description("TRUE indicates that this is a static route, and FALSE indicates a dynamically-learned route.") : Amended ToSubclass] boolean IsStatic;
  [Description("An enumerated integer indicating whether the route is administrator-defined (value=2), computed (via a routing protocol/algorithm, value=3) or the actual route implemented in the network (value=4). The default is a computed route.") : Amended ToSubclass,Values{"Administrator Defined Route", "Computed Route", "Actual Route"} : Amended ToSubclass] uint16 TypeOfRoute;
};

[Description("An abstract class defining the common properties of the policy managed elements derived from CIM_Policy. The subclasses are used to create rules and groups of rules that work together to form a coherent set of policies within an administrative domain or set of domains.") : Amended ToSubclass,Version("2.6.0") : Amended,AMENDMENT, LOCALE("MS_804")] 
class CIM_Policy : CIM_ManagedElement
{
  [Description("A user-friendly name of this policy-related object.") : Amended ToSubclass] string CommonName;
  [Description("An array of keywords for characterizing / categorizing policy objects. Keywords are of one of two types: \n- Keywords defined in this and other MOFs, or in DMTF white papers. These keywords provide a vendor- independent, installation-independent way of characterizing policy objects. \n- Installation-dependent keywords for characterizing policy objects. Examples include \\'Engineering\\', \\'Billing\\', and \\'Review in December 2000\\'. \nThis MOF defines the following keywords: \\'UNKNOWN\\', \\'CONFIGURATION\\', \\'USAGE\\', \\'SECURITY\\', \\'SERVICE\\', \\'MOTIVATIONAL\\', \\'INSTALLATION\\', and \\'EVENT\\'. These concepts are self-explanatory and are further discussed in the SLA/Policy White Paper. One additional keyword is defined: \\'POLICY\\'. The role of this keyword is to identify policy-related instances that may not be otherwise identifiable, in some implementations. The keyword \\'POLICY\\' is NOT mutually exclusive of the other keywords specified above.") : Amended ToSubclass] string PolicyKeywords[];
};

[Description("A class representing a rule-specific or reusable policy action to be performed if the PolicyConditions for a Policy Rule evaluate to TRUE. Since all operational details of a PolicyAction are provided in subclasses of this object, this class is abstract.") : Amended ToSubclass,Version("2.8.0") : Amended,AMENDMENT, LOCALE("MS_804")] 
class CIM_PolicyAction : CIM_Policy
{
  [key,Description("The name of the class or the subclass used in the creation of the System object in whose scope this PolicyAction is defined. \n\nThis property helps to identify the System object in whose scope this instance of PolicyAction exists. For a rule-specific PolicyAction, this is the System in whose context the PolicyRule is defined. For a reusable PolicyAction, this is the instance of PolicyRepository (which is a subclass of System) that holds the Action. \n\nNote that this property, and the analogous property SystemName, do not represent propagated keys from an instance of the class System. Instead, they are properties defined in the context of this class, which repeat the values from the instance of System to which this PolicyAction is related, either directly via the PolicyActionInPolicyRepository association or indirectly via the PolicyActionInPolicyRule aggregation.") : Amended ToSubclass] string SystemCreationClassName;
  [key,Description("The name of the System object in whose scope this PolicyAction is defined. \n\nThis property completes the identification of the System object in whose scope this instance of PolicyAction exists. For a rule-specific PolicyAction, this is the System in whose context the PolicyRule is defined. For a reusable PolicyAction, this is the instance of PolicyRepository (which is a subclass of System) that holds the Action.") : Amended ToSubclass] string SystemName;
  [key,Description("For a rule-specific PolicyAction, the CreationClassName of the PolicyRule object with which this Action is associated. For a reusable PolicyAction, a special value, \\'NO RULE\\', should be used to indicate that this Action is reusable and not associated with a single PolicyRule.") : Amended ToSubclass] string PolicyRuleCreationClassName;
  [key,Description("For a rule-specific PolicyAction, the name of the PolicyRule object with which this Action is associated. For a reusable PolicyAction, a special value, \\'NO RULE\\', should be used to indicate that this Action is reusable and not associated with a single PolicyRule.") : Amended ToSubclass] string PolicyRuleName;
  [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.") : Amended ToSubclass] string CreationClassName;
  [key,Description("A user-friendly name of this PolicyAction.") : Amended ToSubclass] string PolicyActionName;
  [Description("DoActionLogging causes a log message to be generated when the action is performed.") : Amended ToSubclass] boolean DoActionLogging;
};

[Description("PortImplementsEndpoint associates a LogicalPort with one or more ProtocolEndpoints that are implemented on it. This class specializes the DeviceSAPImplementation association. It indicates that the referenced Endpoint is dependent on the operations of the Port Device.") : Amended ToSubclass,Version("2.10.0") : Amended,AMENDMENT, LOCALE("MS_804")] 
class CIM_PortImplementsEndpoint : CIM_DeviceSAPImplementation
{
  [key,Description("The LogicalPort that represents the Device behind the ProtocolEndpoint.") : Amended ToSubclass] CIM_LogicalPort Ref Antecedent;
  [key,Description("The ProtocolEndpoint that is implemented on the LogicalPort.") : Amended ToSubclass] CIM_ProtocolEndpoint Ref Dependent;
};

[Description("RemoteServiceAccessPoint describes access or addressing information or a combination of this information for a remote connection that is known to a local network element. This information is scoped or contained by the local network element, because this is the context in which the connection is remote. \nThe relevance of the remote access point and information on its use are described by subclassing RemoteServiceAccessPoint or by associating to it.") : Amended ToSubclass,Version("2.21.0") : Amended,AMENDMENT, LOCALE("MS_804")] 
class CIM_RemoteServiceAccessPoint : CIM_ServiceAccessPoint
{
  [Description("Access or addressing information or a combination of this information for a remote connection. This information can be a host name, network address, or similar information.") : Amended ToSubclass] string AccessInfo;
  [Description("An enumerated integer that describes the format and interpretation of the AccessInfo property.\n206\\'Parameterized URL\\'- a URL containing ${parameterName} strings. Those strings are intended to be replaced in their entirety by the value of the named parameter. The interpretation of such parameters is not defined by this subclass. \nAs an example use: If a parameter named \\'CompanyURL\\' has a value of \\'www.DMTF.org\\' and the value of AccessInfo was \\'http:\\${CompanyURL}\\', then the resultant URL is intended to be \\'http:\\www.dmtf.org\\'.") : Amended ToSubclass,Values{"Other", "Host Name", "IPv4 Address", "IPv6 Address", "IPX Address", "DECnet Address", "SNA Address", "Autonomous System Number", "MPLS Label", "IPv4 Subnet Address", "IPv6 Subnet Address", "IPv4 Address Range", "IPv6 Address Range", "Dial String", "Ethernet Address", "Token Ring Address", "ATM Address", "Frame Relay Address", "URL", "FQDN", "User FQDN", "DER ASN1 DN", "DER ASN1 GN", "Key ID", "Parameterized URL", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 InfoFormat;
  [Description("Describes the format when the property InfoFormat is set to 1 (Other).") : Amended ToSubclass] string OtherInfoFormatDescription;
  [Description("The AccessContext property identifies the role this RemoteServiceAccessPoint is playing in the hosting system.") : Amended ToSubclass,Values{"Unknown", "Other", "Default Gateway", "DNS Server", "SNMP Trap Destination", "MPLS Tunnel Destination", "DHCP Server", "SMTP Server", "LDAP Server", "Network Time Protocol (NTP) Server", "Management Service", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 AccessContext;
  [Description("When the AccessContext property contains a value of 1, \"Other\" then this is a free form string providing more information about the role of RemoteServiceAccessPoint in the hosting system.") : Amended ToSubclass] string OtherAccessContext;
};

[Description("RouteUsesEndpoint depicts the relationship between a next hop route and the local Endpoint that is used to transmit the traffic to the \\'next hop\\'.") : Amended ToSubclass,Version("2.7.0") : Amended,AMENDMENT, LOCALE("MS_804")] 
class CIM_RouteUsesEndpoint : CIM_Dependency
{
  [key,Description("The endpoint used to reach the route\\'s destination.") : Amended ToSubclass] CIM_ProtocolEndpoint Ref Antecedent;
  [key,Description("The route using the endpoint.") : Amended ToSubclass] CIM_NextHopRoute Ref Dependent;
};

[Description("CIM_SettingData is used to represent configuration and and operational parameters for CIM_ManagedElement instances. There are a number of different uses of CIM_SettingData supported in the model today. Additional uses may be defined in the future.\nInstances of CIM_SettingData may represent Aspects of a CIM_ManagedElement instance. This is modeled using the CIM_SettingsDefineState association. CIM_SettingData may be used to define capabilities when associated to an instance of CIM_Capabilities through the CIM_SettingsDefineCapabilities association. \nInstances of CIM_SettingData may represent different types of configurations for a CIM_ManagedElement, including persistent configurations, in progress configuration changes, or requested configurations. The CIM_ElementSettingData association is used to model the relationship between a CIM_SettingData instance and the CIM_ManagedElement for which it is a configuration. \nWhen an instance of CIM_SettingData represents a configuration, 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. \nNote: 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.") : Amended ToSubclass,Version("2.19.0") : Amended,AMENDMENT, LOCALE("MS_804")] 
class CIM_SettingData : CIM_ManagedElement
{
  [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> \nWhere <OrgID> and <LocalID> are separated by a colon (:), and where <OrgID> must include a copyrighted, trademarked, or otherwise unique name that is owned by the business entity that is creating or defining the InstanceID or that is a registered ID assigned to the business entity by a recognized global authority. (This requirement is similar to the <Schema Name>_<Class Name> structure of Schema class names.) In addition, to ensure uniqueness, <OrgID> must not contain a colon (:). When using this algorithm, the first colon to appear in InstanceID must appear between <OrgID> and <LocalID>. \n<LocalID> is chosen by the business entity and should not be reused to identify different underlying (real-world) elements. If 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.") : Amended ToSubclass,key] string InstanceID;
  [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.)") : Amended ToSubclass] string ElementName;
};

[Description("The base class of IPv4 and IPv6 protocol for Microsoft TCPIP WMIv2 provider.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetBaseIPProtocol : CIM_ProtocolEndpoint
{
  [Description("Default HopLimit of packets sent.") : Amended ToSubclass] uint32 DefaultHopLimit;
  [Description("Maximum number of neighbor cache entries.") : Amended ToSubclass] uint32 NeighborCacheLimit;
  [Description("Maximum number of route cache entries.") : Amended ToSubclass] uint32 RouteCacheLimit;
  [Description("Maximum size of reassembly buffer in bytes.") : Amended ToSubclass] uint32 ReassemblyLimit;
  [Description("Whether the path cache is updated in response to ICMP redirect packets.") : Amended ToSubclass,Values{"Disabled", "Enabled"} : Amended ToSubclass] uint8 IcmpRedirects;
  [Description("Determines the behavior for source routed packets. Per RFC 5095 support for forwarding of source routed IPv6 packets has been removed, and the setting forward now has the same effect as dontforward.") : Amended ToSubclass,Values{"Forward", "DontForward", "Drop"} : Amended ToSubclass] uint32 SourceRoutingBehavior;
  [Description("Whether media sense is enabled or not.") : Amended ToSubclass,Values{"Enabled", "Disabled"} : Amended ToSubclass] uint8 DhcpMediaSense;
  [Description("Whether media sense logging is enabled or not.") : Amended ToSubclass,Values{"Enabled", "Disabled"} : Amended ToSubclass] uint8 MediaSenseEventLog;
  [Description("Level of multicast support.  - None: Multicast packets can neither be sent nor received - SendOnly: Multicast packets can be sent but not received - All: Multicast packets can be sent as well as received") : Amended ToSubclass,Values{"None", "SendOnly", "All"} : Amended ToSubclass] uint32 MldLevel;
  [Description("Maximum IGMP/MLD version supported by the host.") : Amended ToSubclass,Values{"Version1", "Version2", "Version3"} : Amended ToSubclass] uint32 MldVersion;
  [Description("Whether multicast packets can be forwarded.") : Amended ToSubclass,Values{"Disabled", "Enabled"} : Amended ToSubclass] uint8 MulticastForwarding;
  [Description("Whether fragments should be collected into groups before being forwarded.") : Amended ToSubclass,Values{"Disabled", "Enabled"} : Amended ToSubclass] uint8 GroupForwardedFragments;
  [Description("Whether interface identifiers are randomized.") : Amended ToSubclass,Values{"Disabled", "Enabled"} : Amended ToSubclass] uint8 RandomizeIdentifiers;
  [Description("Whether the computer will respond to ICMP Address mask packets") : Amended ToSubclass,Values{"Disabled", "Enabled"} : Amended ToSubclass] uint8 AddressMaskReply;
  [Description("Whether dead gateway detection is enabled. Default is enabled.") : Amended ToSubclass,Values{"Disabled", "Enabled"} : Amended ToSubclass] uint8 DeadGatewayDetection;
};

[Description("Superclass SettingData for networking") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetSettingData : CIM_SettingData
{
};

[Description("Represents the Compartment for Microsoft TCPIP WMIv2 provider.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetCompartment : MSFT_NetSettingData
{
  [Description("Compartment identifier.") : Amended ToSubclass] uint32 CompartmentId;
  [Description("Compartment globally unique identifier.") : Amended ToSubclass] string CompartmentGuid;
  [Description("User-friendly compartment description.") : Amended ToSubclass] string CompartmentDescription;
  [Description("Compartment type.") : Amended ToSubclass,Values{"Unspecified", "Native", "RoutingDomain"} : Amended ToSubclass] uint32 CompartmentType;
};

[Description("The representation of IPv4 address and IPv6 address.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetIPAddress : CIM_IPProtocolEndpoint
{
  [Description("The user-friendly interface index.") : Amended ToSubclass] uint32 InterfaceIndex;
  [Description("The user-friendly interface name.") : Amended ToSubclass] string InterfaceAlias;
  [Description("The IP address.") : Amended ToSubclass] string IPAddress;
  [Description("To indicate whether the address family for this IP address is v4 or v6.") : Amended ToSubclass,Values{"IPv4", "IPv6"} : Amended ToSubclass] uint16 AddressFamily;
  [Description("One of the following values:   Unicast: Marks the address as a unicast address. This is the default.   Anycast: Marks the address as an anycast address.") : Amended ToSubclass,Values{"Unicast", "Anycast"} : Amended ToSubclass] uint8 Type;
  [Description("One of the following values:   Active: Set only lasts until next boot.   Persistent: Set is persistent (default).") : Amended ToSubclass,Values{"Persistent", "Active"} : Amended ToSubclass] uint8 Store;
  [Description("Prefix origin of this address.") : Amended ToSubclass,Values{"Other", "Manual", "WellKnown", "Dhcp", "RouterAdvertisement"} : Amended ToSubclass] uint16 PrefixOrigin;
  [Description("Suffix origin of this address.") : Amended ToSubclass,Values{"Other", "Manual", "WellKnown", "Dhcp", "Link", "Random"} : Amended ToSubclass] uint16 SuffixOrigin;
  [Description("Address lifetime state.") : Amended ToSubclass,Values{"Invalid", "Tentative", "Duplicate", "Deprecated", "Preferred"} : Amended ToSubclass] uint16 AddressState;
  [Description("Lifetime over which the address is valid. The default value is infinite.") : Amended ToSubclass] datetime ValidLifetime;
  [Description("Lifetime over which the address is preferred. The default value is infinite.") : Amended ToSubclass] datetime PreferredLifetime;
  [Description("Do not use the address as source address for any outgoing packet unless explictly asked to.") : Amended ToSubclass] boolean SkipAsSource;
  [Description("Create the IPAddress.") : Amended ToSubclass] uint32 Create([In] uint32 InterfaceIndex,[In] string InterfaceAlias,[In] string IPAddress,[In] uint16 AddressFamily,[In] uint8 PrefixLength,[In] uint8 Type,[In] uint16 PrefixOrigin,[In] uint16 SuffixOrigin,[In] uint16 AddressState,[In] datetime ValidLifetime,[In] datetime PreferredLifetime,[In] boolean SkipAsSource,[In] string DefaultGateway,[In] string PolicyStore,[In] boolean PassThru,[Out] MSFT_NetIPAddress CmdletOutput[]);
};

[Description("Represents the Interface class of Microsoft TCPIP WMIv2 provider.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetIPInterface : CIM_LANEndpoint
{
  [Description("The user-friendly interface index.") : Amended ToSubclass] uint32 InterfaceIndex;
  [Description("The user-friendly interface name.") : Amended ToSubclass] string InterfaceAlias;
  [Description("To indicate whether the address family for this interface is v4 or v6.") : Amended ToSubclass,Values{"IPv4", "IPv6"} : Amended ToSubclass] uint16 AddressFamily;
  [Description("Whether forwarding is enabled for incoming packets on this interface. Default is Disabled.") : Amended ToSubclass,Values{"Disabled", "Enabled"} : Amended ToSubclass] uint8 Forwarding;
  [Description("Whether MSS clamping is enabled for outgoing forwarded packets on this interface. Default is Disabled.") : Amended ToSubclass,Values{"Disabled", "Enabled"} : Amended ToSubclass] uint8 ClampMss;
  [Description("Whether router advertisments are to be sent on this interface.  Default is Disabled.") : Amended ToSubclass,Values{"Disabled", "Enabled"} : Amended ToSubclass] uint8 Advertising;
  [Description("The Network Layer MTU of this interface.  The default is the natural MTU of the link.") : Amended ToSubclass] uint32 NlMtu;
  [Description("Interface metric, added to route metrics for all routes over the interface. Default is automatic.") : Amended ToSubclass] uint32 InterfaceMetric;
  [Description("Whether neighbor unreachability detection is enabled. Default depends on type of interface.") : Amended ToSubclass,Values{"Disabled", "Enabled"} : Amended ToSubclass] uint8 NeighborUnreachabilityDetection;
  [Description("Base reachable time (in ms).") : Amended ToSubclass] uint32 BaseReachableTime;
  [Description("Retransmit time (in ms).") : Amended ToSubclass] uint32 RetransmitTime;
  [Description("Number of duplicate address detection transmits.") : Amended ToSubclass] uint32 DadTransmits;
  [Description("Can be enabled, disabled, or controlled by DHCP.") : Amended ToSubclass,Values{"Disabled", "Enabled", "ControlledByDHCP", "Unchanged"} : Amended ToSubclass] uint8 RouterDiscovery;
  [Description("Whether to use a stateful protocol (i.e., DHCP) to obtain an address. Setting this parameter will have no effect on an interface that has router discovery enabled & advertising disabled. In that case the parameter is controlled by router discovery.") : Amended ToSubclass,Values{"Disabled", "Enabled"} : Amended ToSubclass] uint8 ManagedAddressConfiguration;
  [Description("Whether to use a stateful protocol (i.e., DHCP) to obtain configuration information other than addresses. Setting this parameter will have no effect on an interface that has router discovery enabled & advertising disabled.  In that case the parameter is controlled by router discovery.") : Amended ToSubclass,Values{"Disabled", "Enabled"} : Amended ToSubclass] uint8 OtherStatefulConfiguration;
  [Description("Whether weak host sends are enabled.") : Amended ToSubclass,Values{"Disabled", "Enabled"} : Amended ToSubclass] uint8 WeakHostSend;
  [Description("Whether weak host receives are enabled.") : Amended ToSubclass,Values{"Disabled", "Enabled"} : Amended ToSubclass] uint8 WeakHostReceive;
  [Description("Ignores default routes on the interface. Default: Disabled.") : Amended ToSubclass,Values{"Disabled", "Enabled"} : Amended ToSubclass] uint8 IgnoreDefaultRoutes;
  [Description("Router lifetime. Default is 1800 seconds.") : Amended ToSubclass] datetime AdvertisedRouterLifetime;
  [Description("Whether the interface should advertise itself as a default router regardless of whether the node has a default route itself. Valid only for advertising interfaces.") : Amended ToSubclass,Values{"Disabled", "Enabled"} : Amended ToSubclass] uint8 AdvertiseDefaultRoute;
  [Description("Hop limit in outbound traffic.") : Amended ToSubclass] uint32 CurrentHopLimit;
  [Description("- active: Set only lasts until next boot. - persistent: Set is persistent.") : Amended ToSubclass,Values{"Persistent", "Active"} : Amended ToSubclass] uint8 Store;
  [Description("To indicate that ARP, Neighbor Discovery, Wake-On-LAN patterns should be turned on.") : Amended ToSubclass,Values{"Disabled", "Enabled"} : Amended ToSubclass] uint8 ForceArpNdWolPattern;
  [Description("To indicate that direct MAC Wake-On-LAN patterns should be turned on.") : Amended ToSubclass,Values{"Disabled", "Enabled"} : Amended ToSubclass] uint8 DirectedMacWolPattern;
  [Description("To control ECN codepoints for outgoing packets. Four possible values: - Disabled - UseEct1 - UseEct0 - AppDecide") : Amended ToSubclass,Values{"Disabled", "UseEct1", "UseEct0", "AppDecide"} : Amended ToSubclass] uint8 EcnMarking;
  [Description("To control whether DHCP is enabled on this IPInterface. Two possible values: - Disabled - Enabled") : Amended ToSubclass,Values{"Disabled", "Enabled"} : Amended ToSubclass] uint8 Dhcp;
  [Description("Reachable time (in ms).") : Amended ToSubclass] uint32 ReachableTime;
  [Description("To control whether to use automatic metric. Two possible values: - Disabled - Enabled") : Amended ToSubclass,Values{"Disabled", "Enabled"} : Amended ToSubclass] uint8 AutomaticMetric;
  [Description("To show whether to neighbor discovery is supported. Two possible values: - No - Yes") : Amended ToSubclass,Values{"No", "Yes"} : Amended ToSubclass] uint8 NeighborDiscoverySupported;
  [Description("To show whether the interface is connected or not. Two possible values: - Connected - Disconnected") : Amended ToSubclass,Values{"Disconnected", "Connected"} : Amended ToSubclass] uint8 ConnectionState;
  [Description("Duplicate address detection retransmit time (in ms).") : Amended ToSubclass] uint32 DadRetransmitTime;
  [Description("Routing compartment identifier.") : Amended ToSubclass] uint32 CompartmentId;
  [Description("Network isolation identifier.") : Amended ToSubclass] uint32 IsolationId;
  [Description("Locally unique identifier of the lowest interface in the stack.") : Amended ToSubclass] uint64 LowestIfNetLuid;
};

[Description("Represents the IPInterfaceAdapter association class in TCPIP WMIv2 provider.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetIPInterfaceAdapter : CIM_PortImplementsEndpoint
{
  [key,Description("The IPInterface associated with the NetworkPort.") : Amended ToSubclass] MSFT_NetIPInterface Ref Antecedent;
  [key,Description("The NetworkPort associated with the IPInterface") : Amended ToSubclass] CIM_NetworkPort Ref Dependent;
};

[Description("Represents the IPInterfaceIPAddress association class in TCPIP WMIv2 provider.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetIPInterfaceIPAddress : CIM_BindsToLANEndpoint
{
  [key,Description("The IPInterface associated with the IP addresses.") : Amended ToSubclass] MSFT_NetIPInterface Ref Antecedent;
  [key,Description("The IP address associated with the IP interface") : Amended ToSubclass] MSFT_NetIPAddress Ref Dependent;
};

[Description("Represents the IPInterfaceNeighbor association class in TCPIP WMIv2 provider.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetIPInterfaceNeighbor : CIM_BindsToLANEndpoint
{
  [key,Description("The IPInterface used to reach the neighbor.") : Amended ToSubclass] MSFT_NetIPInterface Ref Antecedent;
  [key,Description("The neighbor associated with the IP interface") : Amended ToSubclass] MSFT_NetNeighbor Ref Dependent;
};

[Description("Represents the IPInterfaceRoute association class in TCPIP WMIv2 provider.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetIPInterfaceRoute : CIM_RouteUsesEndpoint
{
  [key,Description("The endpoint used to reach the route\\'s destination.") : Amended ToSubclass] CIM_LANEndpoint Ref Antecedent;
  [key,Description("The route associated with the interface") : Amended ToSubclass] MSFT_NetRoute Ref Dependent;
};

[Description("Represents the IPv4 protocol of Microsoft TCPIP WMIv2 provider.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetIPv4Protocol : MSFT_NetBaseIPProtocol
{
  [Description("Minimum value of IPv4 MTU. The default value is 576. The value can range between 352 and 576.") : Amended ToSubclass] uint32 MinimumMtu;
};

[Description("Represents the IPv6 protocol for Microsoft TCPIP WMIv2 provider.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetIPv6Protocol : MSFT_NetBaseIPProtocol
{
  [Description("Whether temporary addresses are enabled. It takes one of the following values: - No: Don't use temporary addresses. - Yes: Use temporary addresses. - Always: Use temporary addresses and always generate a new temporary address each time a network is connected.") : Amended ToSubclass,Values{"No", "Yes", "Always"} : Amended ToSubclass] uint32 UseTemporaryAddresses;
  [Description("Maximum duplicate address detection attempts for temporary addresses. The default value is 3.") : Amended ToSubclass] uint32 MaxDadAttempts;
  [Description("Maximum lifetime over which a temporary address is valid. The default value is 7 days.") : Amended ToSubclass] datetime MaxValidLifetime;
  [Description("Maximum lifetime over which a temporary address is preferred. The default value is 1 day.") : Amended ToSubclass] datetime MaxPreferredLifetime;
  [Description("Time prior to deprecating a temporary address when a new address is generated. The default value is 5 seconds.") : Amended ToSubclass] datetime RegenerateTime;
  [Description("Maximum time to desynchronize temporary address preferred lifetimes. The default value is 10 minutes.") : Amended ToSubclass] datetime MaxRandomTime;
};

[Description("Represents the Neighbor in TCPIP WMIv2") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetNeighbor : CIM_RemoteServiceAccessPoint
{
  [Description("Network address of neighbor.") : Amended ToSubclass] string IPAddress;
  [Description("User-friendly interface index.") : Amended ToSubclass] uint32 InterfaceIndex;
  [Description("User-friendly interface name.") : Amended ToSubclass] string InterfaceAlias;
  [Description("Link layer address of neighbor.") : Amended ToSubclass] string LinkLayerAddress;
  [Description("One of the following values: - active: Address will disappear on next boot. - persistent: Address will be persistent. This is the default.") : Amended ToSubclass,Values{"Persistent", "Active"} : Amended ToSubclass] uint8 Store;
  [Description("Neighbor Discovery State.") : Amended ToSubclass,Values{"Unreachable", "Incomplete", "Probe", "Delay", "Stale", "Reachable", "Permanent"} : Amended ToSubclass] uint8 State;
  [Description("To indicate whether the address family for this neighbor is v4 or v6.") : Amended ToSubclass,Values{"IPv4", "IPv6"} : Amended ToSubclass] uint16 AddressFamily;
  [Description("Create the Neighbor.") : Amended ToSubclass] uint32 Create([In] uint32 InterfaceIndex,[In] string InterfaceAlias,[In] string IPAddress,[In] string PolicyStore,[In] string LinkLayerAddress,[In] uint8 State,[In] uint16 AddressFamily,[In] boolean PassThru,[Out] MSFT_NetNeighbor CmdletOutput[]);
};

[Description("Represents the offload global setting class for Microsoft TCPIP WMIv2 provider.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetOffloadGlobalSetting : MSFT_NetSettingData
{
  [Description("Whether to turn on receive side scaling. One of the following values:  - Disabled  - Enabled") : Amended ToSubclass,Values{"Disabled", "Enabled"} : Amended ToSubclass] uint8 ReceiveSideScaling;
  [Description("Whether to turn on receive segment coalescing. One of the following values:  - Disabled  - Enabled") : Amended ToSubclass,Values{"Disabled", "Enabled"} : Amended ToSubclass] uint8 ReceiveSegmentCoalescing;
  [Description("Whether to turn on Chimney offload. One of the following values:  - Disabled  - Enabled  - Automatic") : Amended ToSubclass,Values{"Disabled", "Enabled", "Automatic"} : Amended ToSubclass] uint8 Chimney;
  [Description("Whether to turn on task offload. One of the following values:  - Disabled  - Enabled") : Amended ToSubclass,Values{"Disabled", "Enabled"} : Amended ToSubclass] uint8 TaskOffload;
  [Description("Whether to turn on NetworkDirect. One of the following values:  - Disabled  - Enabled") : Amended ToSubclass,Values{"Disabled", "Enabled"} : Amended ToSubclass] uint8 NetworkDirect;
  [Description("Whether to turn on packet coalescing filters. One of the following values:  - Disabled  - Enabled") : Amended ToSubclass,Values{"Disabled", "Enabled"} : Amended ToSubclass] uint8 PacketCoalescingFilter;
  [Description("Whether NetworkDirect connectivity outside of local IP subnet is allowed or not. One of the following values:  - Blocked  - Allowed") : Amended ToSubclass,Values{"Blocked", "Allowed"} : Amended ToSubclass] uint8 NetworkDirectAcrossIPSubnets;
};

[Description("Represents the prefix policy for Microsoft TCPIP WMIv2 provider.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetPrefixPolicy : CIM_ManagedElement
{
  [Description("Prefix of the policy.") : Amended ToSubclass,key] string Prefix;
  [Description("Precedence value in the policy table, used for sorting destination addresses.") : Amended ToSubclass] uint32 Precedence;
  [Description("Label value that allows for policies that prefer a particular source address prefix for use with a destination address prefix.") : Amended ToSubclass] uint32 Label;
  [Description("One of the following values:  Active: Change only lasts until next boot.  Persistent: Change is persistent.") : Amended ToSubclass,Values{"Persistent", "Active"} : Amended ToSubclass,key] uint8 Store;
  [Description("Create the PrefixPolicy.") : Amended ToSubclass] uint32 Create([In] string Prefix,[In] uint32 Precedence,[In] uint32 Label,[In] string PolicyStore,[In] boolean PassThru,[Out] MSFT_NetPrefixPolicy CmdletOutput[]);
};

[Description("Represents the Route class in TCPIP WMIv2 provider.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetRoute : CIM_NextHopRoute
{
  [Description("The destination prefix.") : Amended ToSubclass] string DestinationPrefix;
  [Description("The user-friendly interface index.") : Amended ToSubclass] uint32 InterfaceIndex;
  [Description("The user-friendly interface name.") : Amended ToSubclass] string InterfaceAlias;
  [Description("The next hop address or gateway address.") : Amended ToSubclass] string NextHop;
  [Description("One of the following values:   No: Not advertised in Route Advertisements. This is the default.   Age: Advertised in Route Advertisements with a finite lifetime.   Yes: Advertised in Route Advertisements with an infinite lifetime.") : Amended ToSubclass,Values{"No", "Age", "Yes"} : Amended ToSubclass] uint8 Publish;
  [Description("Lifetime over which the route is valid. The default value is infinite.") : Amended ToSubclass] datetime ValidLifetime;
  [Description("Lifetime over which the route is preferred. The default value is infinite.") : Amended ToSubclass] datetime PreferredLifetime;
  [Description("One of the following values:  Active: Change only lasts until next boot.  Persistent: Change is persistent.  This is the default.") : Amended ToSubclass,Values{"Persistent", "Active"} : Amended ToSubclass] uint8 Store;
  [Description("To indicate whether the address family for this route is v4 or v6.") : Amended ToSubclass,Values{"IPv4", "IPv6"} : Amended ToSubclass] uint16 AddressFamily;
  [Description("The routing mechanism via which this route was learned.") : Amended ToSubclass,Values{"Other", "Local", "NetMgmt", "Icmp", "Egp", "Ggp", "Hello", "Rip", "IsIs", "EsIs", "Igrp", "Bbn", "Ospf", "Bgp", "Idpr", "Eigrp", "Dvmrp", "Rpl", "Dhcp"} : Amended ToSubclass] uint16 Protocol;
  [Description("The compartment in which route(s) are located.") : Amended ToSubclass] uint32 CompartmentId;
  [Description("State of the route.") : Amended ToSubclass,Values{"Alive", "Dead", "Probe"} : Amended ToSubclass] uint8 State;
  [Description("The metric of the route's interface.") : Amended ToSubclass] uint32 InterfaceMetric;
  [Description("Create the Route.") : Amended ToSubclass] uint32 Create([In] uint32 InterfaceIndex,[In] string InterfaceAlias,[In] string DestinationPrefix,[In] string NextHop,[In] uint8 Publish,[In] uint16 RouteMetric,[In] uint16 Protocol,[In] uint32 CompartmentId,[In] datetime ValidLifetime,[In] datetime PreferredLifetime,[In] string PolicyStore,[In] uint16 AddressFamily,[In] boolean PassThru,[Out] MSFT_NetRoute CmdletOutput[]);
  [Description("Finds the best local IP address and best route to reach the specified remote address.") : Amended ToSubclass] uint32 Find([In] uint32 InterfaceIndex,[In] string LocalIPAddress,[In] string RemoteIPAddress,[Out] CIM_ManagedElement CmdletOutput[]);
};

[Description("Represents the transport connection class for  Microsoft TCPIP WMIv2 provider.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetTransportConnection : CIM_NetworkPipe
{
  [Description("The local address of the connection.") : Amended ToSubclass] string LocalAddress;
  [Description("The local port of the connection.") : Amended ToSubclass] uint16 LocalPort;
  [Description("The PID of the owning process.") : Amended ToSubclass] uint32 OwningProcess;
  [Description("Creation time.") : Amended ToSubclass] datetime CreationTime;
};

[Description("Represents the TCP connection class for Microsoft TCPIP WMIv2 provider.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetTCPConnection : MSFT_NetTransportConnection
{
  [Description("The remote address of the TCP connection.") : Amended ToSubclass] string RemoteAddress;
  [Description("The remote port of the TCP connection.") : Amended ToSubclass] uint16 RemotePort;
  [Description("The state of the TCP connection. The value can be: - Closed,  - Listen,   - SynSent,   - SynReceived,   - Established,   - FinWait1,   - FinWait2,   - CloseWait,   - Closing,   - LastAck,   - TimeWait") : Amended ToSubclass,Values{"Closed", "Listen", "SynSent", "SynReceived", "Established", "FinWait1", "FinWait2", "CloseWait", "Closing", "LastAck", "TimeWait", "DeleteTCB"} : Amended ToSubclass] uint8 State;
  [Description("The setting applied for this TCP connection. The value can be: - Internet,  - Datacenter,   - Compat,   - InternetCustom,   - DatacenterCustom") : Amended ToSubclass,Values{"Internet", "Datacenter", "Compat", "DatacenterCustom", "InternetCustom"} : Amended ToSubclass] uint8 AppliedSetting;
  [Description("The TCP_CONNECTION_OFFLOAD_STATE of the TCP connection.") : Amended ToSubclass,Values{"InHost", "Offloading", "Offloaded", "Uploading"} : Amended ToSubclass] uint8 OffloadState;
};

[Description("Represents the TCP parameter setting for Microsoft TCPIP WMIv2 provider.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetTCPSetting : CIM_PolicyAction
{
  [Description("One of the following values:  - DatacenterCustom, InternetCustom, Datacenter, Compat, Internet, Automatic.") : Amended ToSubclass] string SettingName;
  [Description("Controls TCP retransmission timeout in milliseconds. Value can range from 20 milliseconds to 300 milliseconds.") : Amended ToSubclass] uint32 MinRto;
  [Description("Controls initial congestion window in Maximum Segment Size. Values can range from 2 to 64 MSS.") : Amended ToSubclass] uint32 InitialCongestionWindow;
  [Description("Controls whether congestion window is restarted.") : Amended ToSubclass,Values{"Disabled", "Enabled"} : Amended ToSubclass] uint8 CwndRestart;
  [Description("One of the following values:  - Disabled: Disable memory pressure protection.  - Enabled : Enable memory pressure protection.  - Default : Restore memory pressure protection state to the system default.") : Amended ToSubclass,Values{"Disabled", "Enabled", "Default"} : Amended ToSubclass] uint8 MemoryPressureProtection;
  [Description("Controls the congestion provider. One of the following values:  - Default - NewReno - CTCP  - DCTCP - LEDBAT - CUBIC") : Amended ToSubclass,Values{"Default", "NewReno", "CTCP", "DCTCP", "LEDBAT", "CUBIC"} : Amended ToSubclass] uint8 CongestionProvider;
  [Description("One of the following values:  - Disabled: Fix the receive window at its default value.  - HighlyRestricted: Allow the receive window to grow beyond its default value, but do so very conservatively.  - Restricted: Allow the receive window to grow beyond its default value, but limit such growth in some scenarios.  - Normal: Allow the receive window to grow to accommodate almost all scenarios.  - Experimental: Allow the receive window to grow to accomodate extreme scenarios.") : Amended ToSubclass,Values{"Disabled", "HighlyRestricted", "Restricted", "Normal", "Experimental"} : Amended ToSubclass] uint8 AutoTuningLevelLocal;
  [Description("Controls the TCP ECN Capability.  Disabled by default in client, enabled by default in server. The value can be one of the following values:  - Disabled: Disable ECN Capability.  - Enabled : Enable ECN Capability.") : Amended ToSubclass,Values{"Disabled", "Enabled"} : Amended ToSubclass] uint8 EcnCapability;
  [Description("One of the following values:  - Disabled: Disable RFC 1323 timestamps.  - Enabled: Enable RFC 1323 timestamps.") : Amended ToSubclass,Values{"Disabled", "Enabled"} : Amended ToSubclass] uint8 Timestamps;
  [Description("Connect (SYN) retransmit timeout (in milliseconds). default: 3000.") : Amended ToSubclass] uint32 InitialRto;
  [Description("One of the following values: - Disabled: Disable window scaling heuristics. - Enabled : Enable window scaling heuristics.") : Amended ToSubclass,Values{"Disabled", "Enabled"} : Amended ToSubclass] uint8 ScalingHeuristics;
  [Description("Starting port number between 1 and 65535.") : Amended ToSubclass] uint16 DynamicPortRangeStartPort;
  [Description("Number of ports starting from the DynamicPortRangeStartPort for dynamic port range.") : Amended ToSubclass] uint16 DynamicPortRangeNumberOfPorts;
  [Description("One of the following values:  - Disabled: Set the receive window at its default value.  - HighlyRestricted: Allow the receive window to grow beyond its default value, but do so very conservatively.  - Restricted: Allow the receive window to grow beyond its default value, but limit such growth in some scenarios.  - Normal: Allow the receive window to grow to accomodate almost all scenarios.  - Experimental: Allow the receive window to grow to accomodate extreme scenarios.") : Amended ToSubclass,Values{"Disabled", "HighlyRestricted", "Restricted", "Normal", "Experimental"} : Amended ToSubclass] uint8 AutoTuningLevelGroupPolicy;
  [Description("The effective setting of auto-tuning level. This can be one of the following value:  - Local: the effective auto-tuning level is from the local setting  - GroupPolicy: the effective auto-tuning level is from the group policy setting") : Amended ToSubclass,Values{"Local", "GroupPolicy"} : Amended ToSubclass] uint8 AutoTuningLevelEffective;
  [Description("Controls TCP delayed ACK time-out in milliseconds. Value can range from 10 milliseconds to 600 milliseconds.") : Amended ToSubclass] uint32 DelayedAckTimeout;
  [Description("Specifies the number of ACKs that will be outstanding before the delayed ACK timer is ignored. Value can range from 1 to 255.") : Amended ToSubclass] uint8 DelayedAckFrequency;
  [Description("Controls whether Automatic template chooses between custom templates. - Disabled: Automatic chooses between Datacenter and Internet. - Enabled: Automatic chooses between DatacenterCustom and InternetCustom.") : Amended ToSubclass,Values{"Disabled", "Enabled"} : Amended ToSubclass] uint8 AutomaticUseCustom;
  [Description("One of the following values: - Disabled: Disable rtt resiliency for non sack clients. - Enabled : Enable rtt resiliency for non sack clients.") : Amended ToSubclass,Values{"Disabled", "Enabled"} : Amended ToSubclass] uint8 NonSackRttResiliency;
  [Description("One of the following values: - Disabled: Disable force window scaling on retransmit. - Enabled : Enable force window scaling on retransmit.") : Amended ToSubclass,Values{"Disabled", "Enabled"} : Amended ToSubclass] uint8 ForceWS;
  [Description("Specifies the number of connect retry attempts using SYN packets. Value can range from 2 to 8.") : Amended ToSubclass] uint8 MaxSynRetransmissions;
  [Description("Starting automatic reuse port number between 1025 and 65535.") : Amended ToSubclass] uint16 AutoReusePortRangeStartPort;
  [Description("Number of ports starting from the AutoReusePortRangeStartPort for automatic reuse port range.") : Amended ToSubclass] uint16 AutoReusePortRangeNumberOfPorts;
};

[Description("Represents the filter for transport protocol parameter setting for Microsoft TCPIP WMI v2 provider.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetTransportFilter : CIM_FilterEntryBase
{
  [Description("One of the following protocols:  - TCP   - UDP") : Amended ToSubclass,Values{"TCP", "UDP"} : Amended ToSubclass] uint16 Protocol;
  [Description("The start of the local port number.") : Amended ToSubclass] uint16 LocalPortStart;
  [Description("The end of the local port number.") : Amended ToSubclass] uint16 LocalPortEnd;
  [Description("The start of the remote port number.") : Amended ToSubclass] uint16 RemotePortStart;
  [Description("The end of the remote port number.") : Amended ToSubclass] uint16 RemotePortEnd;
  [Description("The destination prefix to be filtered.") : Amended ToSubclass] string DestinationPrefix;
  [Description("The associated TCPSetting's SettingName.") : Amended ToSubclass] string SettingName;
};

[Description("Represents the TransportFilterTCPSetting association class in TCPIP WMIv2 provider.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetTransportFilterTCPSetting : CIM_Dependency
{
  [key,Description("The filter associated with the TCP setting.") : Amended ToSubclass] MSFT_NetTransportFilter Ref Antecedent;
  [key,Description("The TCP setting associated with the filter") : Amended ToSubclass] MSFT_NetTCPSetting Ref Dependent;
};

[Description("Represents the UDP connection class for Microsoft TCPIP WMIv2 provider.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetUDPEndpoint : MSFT_NetTransportConnection
{
};

[Description("Represents the UDP parameter setting for Microsoft TCPIP WMIv2 provider.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetUDPSetting : CIM_PolicyAction
{
  [Description("Starting port number between 1 and 65535.") : Amended ToSubclass] uint16 DynamicPortRangeStartPort;
  [Description("Number of ports starting from the DynamicPortRangeStartPort for dynamic port range.") : Amended ToSubclass] uint16 DynamicPortRangeNumberOfPorts;
};
