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

[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_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("Superclass SettingData for networking") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetSettingData : CIM_SettingData
{
};

[Description("A QoS policy.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetQosPolicySettingData : MSFT_NetSettingData
{
  [Description("Policy name.") : Amended ToSubclass] string Name;
  [Description("Policy version if read from GPO.") : Amended ToSubclass] string Version;
  [Description("The owner of this policy.") : Amended ToSubclass] string Owner;
  [BitValues{"Domain", "Public", "Private"} : Amended ToSubclass,Description("The network profiles for which the policy applies.") : Amended ToSubclass] uint32 NetworkProfile;
  [Description("The precedence value of the policy.") : Amended ToSubclass] uint32 Precedence;
  [Values{"None", "Default", "iSCSI", "FCoE", "SMB", "NFS", "LiveMigration"} : Amended ToSubclass,Description("The optional match condition template that, if specified, overrides all other match conditions with predefined conditions. For example, the iSCSI template has a predefined match on TCP well-known port 3260.") : Amended ToSubclass] uint32 TemplateMatchCondition;
  [Description("The user SID or name filter match condition.") : Amended ToSubclass] string UserMatchCondition;
  [Description("The application path name filter condition.") : Amended ToSubclass] string AppPathNameMatchCondition;
  [Values{"N/A", "TCP", "UDP", "Both"} : Amended ToSubclass,Description("The IP protocol filter condition. If set to 0, then all the following fields are ignored: IPPortMatchCondition, IPSrcPrefixMatchCondition, IPSrcPortStartMatchCondition, IPSrcPortEndMatchCondition, IPDstPrefixMatchCondition, IPDstPrefixMatchCondition, and IPDstPortEndMatchCondition.") : Amended ToSubclass] uint32 IPProtocolMatchCondition;
  [Description("The IP well-known port filter condition. This matches either the local port number or the remote port number of a supported IP connection. This type of filter is especially effective if the port number is a well-known number assigned by the IANA. If the value of this field is non-zero, then all the following fields are ignored: IPSrcPrefixMatchCondition, IPSrcPortStartMatchCondition, IPSrcPortEndMatchCondition, IPDstPrefixMatchCondition, IPDstPortMatchCondition, and IPDstPortEndMatchCondition.") : Amended ToSubclass] uint16 IPPortMatchCondition;
  [Description("The optional source IP prefix filter condition. Where applicable, both the source and destination prefix families must match. Examples of valid prefixes: 192.168.1.1, 192.168.1.0/24, or fe80::1001:2046/128") : Amended ToSubclass] string IPSrcPrefixMatchCondition;
  [Description("The optional lower-bound of the source port filter condition. If only a single port value is required, then IPSrcPortStartMatchCondition and IPSrcPortEndMatchCondition must match. If the source port filter condition is not required, set both fields to zero.") : Amended ToSubclass] uint16 IPSrcPortStartMatchCondition;
  [Description("The upper-bound of the source port filter condition. This field complements IPSrcPortStartMatchCondition.") : Amended ToSubclass] uint16 IPSrcPortEndMatchCondition;
  [Description("The optional destination IP prefix filter condition. Where applicable, both the source and destination prefix families must match. Examples of valid prefixes: 192.168.1.1, 192.168.1.0/24, or fe80::1001:2046/128") : Amended ToSubclass] string IPDstPrefixMatchCondition;
  [Description("The optional lower-bound of the destination port filter condition. If only a single port value is required, then IPDstPortStartMatchCondition and IPDstPortEndMatchCondition must match. If the destination port filter condition is not required, set both fields to zero.") : Amended ToSubclass] uint16 IPDstPortStartMatchCondition;
  [Description("The upper-bound of the destination port filter condition. This field complements IPDstPortStartMatchCondition.") : Amended ToSubclass] uint16 IPDstPortEndMatchCondition;
  [Description("The optional URI filter condition. This condition may only be combined with the URIRecursiveMatchCondition, IPDstAddressMatchCondition, IPDstPortStartMatchCondition, and IPDstPortEndMatchCondition fields.") : Amended ToSubclass] string URIMatchCondition;
  [Description("This filter condition supplements URIMatchCondition. If set, the URI match happens for all resources with the base path indicated by URIMatchCondition. Otherwise, a match only happens for a resource with the exact URI.") : Amended ToSubclass] boolean URIRecursiveMatchCondition;
  [Description("The NetworkDirect port filter condition. This filter is only applicable if the Data Center Bridging server feature is installed. Otherwise, the policy is effectively no-op.") : Amended ToSubclass] uint16 NetDirectPortMatchCondition;
  [Description("The NT Job Object identifier filter condition.") : Amended ToSubclass] string JobObjectMatchCondition;
  [Description("The 802.1p priority action. Set to -1 if not used.") : Amended ToSubclass] sint8 PriorityValue8021Action;
  [Description("The DSCP action. Set to -1 if not used.") : Amended ToSubclass] sint8 DSCPAction;
  [Description("The minimum bandwidth weight action. Set to 0 if not used.") : Amended ToSubclass] uint8 MinBandwidthWeightAction;
  [Units("Bits per Second") : Amended ToSubclass,Description("The bandwidth throttle rate action in bits per second unit. Set to 0 if not used.") : Amended ToSubclass] uint64 ThrottleRateAction;
};
