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

[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_809")] 
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_809")] 
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_809")] 
class MSFT_NetSettingData : CIM_SettingData
{
};

[Description("Configuration settings for Nat") : Amended ToSubclass,AMENDMENT, LOCALE("MS_809")] 
class MSFT_NetNat : MSFT_NetSettingData
{
  [Description("Name of this instance of NAT") : Amended ToSubclass] string Name;
  [Description("Store in which this NAT instance object is stored") : Amended ToSubclass,Values{"Local", "Cluster"} : Amended ToSubclass] uint32 Store;
  [Description("Address Prefix of external interface") : Amended ToSubclass] string ExternalIPInterfaceAddressPrefix;
  [Description("Routing domain ID of internal interface (GUID)") : Amended ToSubclass] string InternalRoutingDomainId;
  [Description("Icmp Query Timeout") : Amended ToSubclass] uint32 IcmpQueryTimeout;
  [Description("Session Timeout for an established TCP connection") : Amended ToSubclass] uint32 TcpEstablishedConnectionTimeout;
  [Description("Session Timeout for a transient TCP connection") : Amended ToSubclass] uint32 TcpTransientConnectionTimeout;
  [Description("TCP filtering behavior") : Amended ToSubclass,Values{"EndpointIndepedentFiltering", "AddressDependentFiltering"} : Amended ToSubclass] uint8 TcpFilteringBehavior;
  [Description("UDP filtering behavior") : Amended ToSubclass,Values{"EndpointIndepedentFiltering", "AddressDependentFiltering"} : Amended ToSubclass] uint8 UdpFilteringBehavior;
  [Description("Session Timeout for idle UDP") : Amended ToSubclass] uint32 UdpIdleSessionTimeout;
  [Description("Inbound UDP Refresh") : Amended ToSubclass] uint8 UdpInboundRefresh;
  [Description("Indicates if this instance is active") : Amended ToSubclass] uint8 Active;
  [Description("Address Prefix of internal interface") : Amended ToSubclass] string InternalIPInterfaceAddressPrefix;
};

[Description("Configuration settings for NAT External Address") : Amended ToSubclass,AMENDMENT, LOCALE("MS_809")] 
class MSFT_NetNatExternalAddress : MSFT_NetSettingData
{
  [Description("Identifier for ExternalAddress") : Amended ToSubclass] uint32 ExternalAddressID;
  [Description("Name of NAT to which this address belongs") : Amended ToSubclass] string NatName;
  [Description("IP Address") : Amended ToSubclass] string IPAddress;
  [Description("Start port specifying the beginning of the port range") : Amended ToSubclass] uint16 PortStart;
  [Description("End port specifying the end of the port range") : Amended ToSubclass] uint16 PortEnd;
  [Description("Indicates if this instance is active") : Amended ToSubclass] uint8 Active;
};

[Description("Global configuration settings for NAT") : Amended ToSubclass,AMENDMENT, LOCALE("MS_809")] 
class MSFT_NetNatGlobal : MSFT_NetSettingData
{
  [Description("Hairpinning mode between different routing domains") : Amended ToSubclass,Values{"Local", "External"} : Amended ToSubclass] uint32 InterRoutingDomainHairpinningMode;
};

[Description("Nat Sessions") : Amended ToSubclass,AMENDMENT, LOCALE("MS_809")] 
class MSFT_NetNatSession : MSFT_NetSettingData
{
  [Description("Internal Source Address") : Amended ToSubclass] string InternalSourceAddress;
  [Description("Internal Source Port") : Amended ToSubclass] uint16 InternalSourcePort;
  [Description("Internal Destination Address") : Amended ToSubclass] string InternalDestinationAddress;
  [Description("Internal Destination Port") : Amended ToSubclass] uint16 InternalDestinationPort;
  [Description("External Source Address") : Amended ToSubclass] string ExternalSourceAddress;
  [Description("External Source Port") : Amended ToSubclass] uint16 ExternalSourcePort;
  [Description("External Destination Address") : Amended ToSubclass] string ExternalDestinationAddress;
  [Description("External Destination Port") : Amended ToSubclass] uint16 ExternalDestinationPort;
  [Description("Protocol") : Amended ToSubclass,Values{"TCP", "UDP"} : Amended ToSubclass] uint32 Protocol;
  [Description("Routing domain ID of internal interface (GUID)") : Amended ToSubclass] string InternalRoutingDomainId;
  [Description("Name of NAT to which this session belongs") : Amended ToSubclass] string NatName;
  [Description("Creation time of the session") : Amended ToSubclass] datetime CreationTime;
};

[Description("Configuration settings for NAT static mapping") : Amended ToSubclass,AMENDMENT, LOCALE("MS_809")] 
class MSFT_NetNatStaticMapping : MSFT_NetSettingData
{
  [Description("Identifier for Static Mapping") : Amended ToSubclass] uint32 StaticMappingID;
  [Description("Name of NAT to which this mapping belongs") : Amended ToSubclass] string NatName;
  [Description("Protocol") : Amended ToSubclass,Values{"TCP", "UDP"} : Amended ToSubclass] uint32 Protocol;
  [Description("Remote address based on which the mapping is chosen") : Amended ToSubclass] string RemoteExternalIPAddressPrefix;
  [Description("External IP address") : Amended ToSubclass] string ExternalIPAddress;
  [Description("External Port") : Amended ToSubclass] uint16 ExternalPort;
  [Description("Internal IP address") : Amended ToSubclass] string InternalIPAddress;
  [Description("Internal Port") : Amended ToSubclass] uint16 InternalPort;
  [Description("Routing domain ID of internal interface") : Amended ToSubclass] string InternalRoutingDomainId;
  [Description("Indicates if this instance is active") : Amended ToSubclass] uint8 Active;
};
