#pragma autorecover
#pragma namespace("\\\\.\\root\\Microsoft\\Windows\\RemoteAccess\\Client")
instance of __namespace{ name="MS_804";};
#pragma namespace("\\\\.\\root\\Microsoft\\Windows\\RemoteAccess\\Client\\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("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("EAP Configuration object.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class EapConfiguration
{
  [Description("This is an XML Stream containing the detailed EAP Configuration for the VPN profile.") : Amended ToSubclass] string EapConfigXmlStream;
};

[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("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] datetime ValidLifetime,[In] datetime PreferredLifetime,[In] string PolicyStore,[In] uint16 AddressFamily,[In] boolean PassThru,[Out] MSFT_NetRoute CmdletOutput[]);
  [Description("Selects the best local IP address and best route to reach the specified remote address.") : Amended ToSubclass] uint32 Select([In] uint32 InterfaceIndex,[In] string LocalIPAddress,[In] string RemoteIPAddress,[Out] CIM_ManagedElement CmdletOutput[]);
};

[Description("VPN Connection profile management and remediation class") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_VpnConnection
{
  [key,Description("The Name of the VPN Connection profile.") : Amended ToSubclass] string Name;
  [key,Description("Whether the Connection profile is an AllUser or Local User profile.") : Amended ToSubclass] boolean AllUserConnection;
  [Description("The serialized encoded string form of the VPN Connection profile.") : Amended ToSubclass] string Profile;
  [Description("The Set method creates or modifies the VPN connection profile  as specified by the method parameter Profile. ") : Amended ToSubclass] uint32 Set([In,Description("String representation of the VPN connection profile to be modified or created.") : Amended ToSubclass] string Profile);
};

[Description("Advanced EAP Configuration") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class PS_EapConfiguration
{
  [Description("Generates a new XML file with the specified EAP configuration parameters.") : Amended ToSubclass] uint32 NewByEapMsChapv2Auth([In,Description("Specifies that EAP-MSCHAPv2 should be used as the authentication method, and Windows logon credentials should be used automatically when connecting with the VPN connection profile.") : Amended ToSubclass] boolean UseWinlogonCredential,[Out,Description("EapConfiguration consists of the following fields: 
\n    EapConfigXmlStream  - a string that specifies the content of XML file containing the EAP Configuration.
\n") : Amended ToSubclass] EapConfiguration cmdletOutput);
  [Description("Generates a new XML file with the specified EAP configuration parameters.") : Amended ToSubclass] uint32 NewByEapTlsAuth([In,Description("Specifies that  EAP-TLS (smart card or user certificate) should be used as the authentication method. ") : Amended ToSubclass] boolean Tls,[In,Description("Specifies whether a User certificate should be used for authentication.  This parameter is used with EAP-TLS. If it is not set, a smart card is used for authentication.") : Amended ToSubclass] boolean UserCertificate,[In,Description("Specifies whether server identity validation should be performed for the VPN connection.  This parameter is used with PEAP and EAP-TLS (with tunneled EAP client authentication).") : Amended ToSubclass] boolean VerifyServerIdentity,[Out,Description("EapConfiguration consists of the following fields: 
\n    EapConfigXmlStream  - a string that specifies the content of XML file containing the EAP Configuration.
\n") : Amended ToSubclass] EapConfiguration cmdletOutput);
  [Description("Generates a new XML file with the specified EAP configuration parameters.") : Amended ToSubclass] uint32 NewByEapTtlsAuth([In,Description("Specifies that TTLS should be used as the authentication method.") : Amended ToSubclass] boolean Ttls,[In,Description("Specifies that EAP-MSCHAPv2 should be used as the authentication method, and Windows logon credentials should be used automatically when connecting with the VPN connection profile.") : Amended ToSubclass] boolean UseWinlogonCredential,[In,Values{"Pap", "Chap", "MsChap", "MsChapv2"} : Amended ToSubclass,Description("Specifies the simple EAP-TTLS client authentication methods. ") : Amended ToSubclass] string TunnledNonEapAuthMethod,[In,Description("Specifies the configuration XML blob for tunneled EAP, EAP-TTLS, or PEAP authentication. ") : Amended ToSubclass] string TunnledEapAuthMethod,[Out,Description("EapConfiguration consists of the following fields: 
\n    EapConfigXmlStream  - a string that specifies the content of XML file containing the EAP Configuration.
\n") : Amended ToSubclass] EapConfiguration cmdletOutput);
  [Description("Generates a new XML file with the specified EAP configuration parameters.") : Amended ToSubclass] uint32 NewByPeapAuth([In,Description("Specifies that PEAP should be used as the authentication method.") : Amended ToSubclass] boolean Peap,[In,Description("Specifies whether server identity validation should be performed for the VPN connection.  This parameter is used with PEAP and EAP-TLS (with tunneled EAP client authentication).") : Amended ToSubclass] boolean VerifyServerIdentity,[In,Description("Specifies whether Network Access Protection (NAP) should be enabled for PEAP. ") : Amended ToSubclass] boolean EnableNap,[In,Description("Specifies whether FastReconnect is enabled or disabled in current configuration for PEAP.") : Amended ToSubclass] boolean FastReconnect,[In,Description("Specifies the configuration XML blob for tunneled EAP, EAP-TTLS, or PEAP authentication. ") : Amended ToSubclass] string TunnledEapAuthMethod,[Out,Description("EapConfiguration consists of the following fields: 
\n    EapConfigXmlStream  - a string that specifies the content of XML file containing the EAP Configuration.
\n") : Amended ToSubclass] EapConfiguration cmdletOutput);
};

[Description("GCW profile management class") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class PS_VpnConnection
{
  [key,Description("Name of the current VPN Connection profile.") : Amended ToSubclass] string Name;
  [key,Description("Flag to represent All User VPN Connection profile or Single user profile.") : Amended ToSubclass] boolean AllUserConnection;
  [Description("Address of the Remote VPN Server.") : Amended ToSubclass] string ServerAddress;
  [Description("This parameter contains the Vpn Connection Profile Type") : Amended ToSubclass,Values{"Inbox", "ThirdParty"} : Amended ToSubclass] string ProfileType;
  [Description("Provisioning Authority of the VPN Profile.") : Amended ToSubclass] string ProvisioningAuthority;
  [Description("This flag shall store the credentials for the VPN Connection to the credman after first successful connection.") : Amended ToSubclass] boolean RememberCredential;
  [Description("This flag specifies whether Split Tunneling has to be enabled or disabled.") : Amended ToSubclass] boolean SplitTunneling;
  [Description("The read-only GUID (Globally Unique Identifier) that represents this phone-book entry.") : Amended ToSubclass] string Guid;
  [Description("This property reflects the current connection status of the VPN connection.") : Amended ToSubclass,Values{"Connected", "NotConnected", "Connecting", "Limited", "Dormant"} : Amended ToSubclass] string ConnectionStatus;
  [Description("A value that specifies the time, in seconds, after which an idle connection is terminated. Unless the idle time-out is disabled, the entire connection is terminated if the connection is idle for the specified interval.") : Amended ToSubclass] uint32 IdleDisconnectSeconds;
  [Description("Specifies the DNS Suffix.") : Amended ToSubclass] string DnsSuffix;
  [Description("This parameter contains the PPP Tunnel Type configured in the RAS config blob. This tunnel is decided after first successful connection.") : Amended ToSubclass,Values{"Pptp", "L2tp", "Sstp", "Ikev2", "Automatic"} : Amended ToSubclass] string TunnelType;
  [Description("This flag is only used for MsChapv2/EAP-MsChapv2 Authentication Methods. It indicated whether the User Winlogon Credentials are to be automatically used for connection using the current VPN connection profile.") : Amended ToSubclass] boolean UseWinlogonCredential;
  [Description("This parameter contains the Authentication method configured for the current VPN connection profile.") : Amended ToSubclass,Values{"Pap", "Chap", "MsChapv2", "Eap", "MachineCertificate"} : Amended ToSubclass] string AuthenticationMethod[];
  [Description("This parameter is to specify the Encryption level to be used with the current VPN connection.") : Amended ToSubclass,Values{"NoEncryption", "Optional", "Required", "Maximum", "Custom"} : Amended ToSubclass] string EncryptionLevel;
  [Description("Specifies the value of Pre-Shared Key to be used for L2TP authentication. If this parameter is not specified, by default a certificate will be used for L2TP.") : Amended ToSubclass] string L2tpPsk;
  [Description("This parameter specifies whether the L2TP IPSec Authentication method is Machine Certificate or Pre Shared Key.") : Amended ToSubclass,Values{"Certificate", "Psk"} : Amended ToSubclass] string L2tpIPsecAuth;
  [Description("This is an XML Stream containing the detailed EAP Configuration for the VPN profile.") : Amended ToSubclass] string EapConfigXmlStream;
  [Description("This property reflects the NAP (Health) status of the connection if it is configured to use PEAP authentication method and is currently connected to the Remote VPN Server.") : Amended ToSubclass,Values{"Success", "NotNapCapable", "NoConnection", "Error"} : Amended ToSubclass] string NapState;
  [Description("An XML representation of this instance, which can be used as input for MSFT_VpnConnection::Set") : Amended ToSubclass] string VpnConfigurationXml;
  [Description("Array of Certificate EKU Filter, EKU Name for standard EKU else EKU OID.") : Amended ToSubclass] string MachineCertificateEKUFilter[];
  [Description("Root Certificate Issuer Filter.") : Amended ToSubclass] string MachineCertificateIssuerFilter;
  [Description("Unique identifier for an application.") : Amended ToSubclass] string ApplicationID[];
  [Description("Specifies the VPN Server List.") : Amended ToSubclass] PS_VpnServerAddress ServerList[];
  [Description("Specifies the routes to be plumbed.") : Amended ToSubclass] PS_VpnConnectionRoute Routes[];
  [Description("Specifies Trigger DNS Configurations.") : Amended ToSubclass] PS_VpnConnectionTriggerDnsConfiguration DnsConfig[];
  [Description("Dns Suffix search list for the auto-triggered VPN connection.") : Amended ToSubclass] string DnsSuffixSearchList[];
  [Description("Trusted network DNS suffixes for the auto-triggered VPN connection.") : Amended ToSubclass] string TrustedNetwork[];
  [Description("Proxy settings of the VPN connection.") : Amended ToSubclass] PS_VpnConnectionProxy Proxy;
  [Description("Identifier for the third party application.") : Amended ToSubclass] string PlugInApplicationID;
  [Description("Used by Third Party VPN plugins to specify custom configuration.") : Amended ToSubclass] string CustomConfiguration;
  [Description("This flag indicates whether the VPN Connection is auto-trigger enabled.") : Amended ToSubclass] boolean IsAutoTriggerEnabled;
  [Description("Removes the specified VPN connection profile. ") : Amended ToSubclass] uint32 Remove([In,Description("Specifies the name of the VPN connection profile to be removed.") : Amended ToSubclass] string Name[],[In,Description("Forces the removal of the VPN profile from the phonebook.") : Amended ToSubclass] boolean Force,[In,Description("Returns the VpnConnection object that contains the VpnConnection configuration settings. ") : Amended ToSubclass] boolean PassThru,[In,Description("Specifies that the VPN connection should be removed from the AllUserConnection phone book entries.") : Amended ToSubclass] boolean AllUserConnection,[Out,Description("VpnCommonConfig consists of the following fields: 
\n    Name (string) Specifies the name of the VPN connection profile. 
\n    ServerAddress (string) Specifies the address of the Remote VPN Server.
\n    RememberCredential (boolean) Specifies whether the credentials for the VPN Connection are stored in cache after first successful connection.
\n    SplitTunneling (boolean) Specifies whether split tunneling is enabled or disabled.
\n    UseWinlogonCredential (boolean) Specifies whether the Windows logon user credentials should be automatically for VPN connection profile.
\n    Guid (Guid) Specifies the read-only GUID that represents the phone-book entry
\n    ConnectionStatus (string) Specifies the connection status of the VPN connection profile. Available values: Connected, NotConnected, Connecting, Limited, Dormant
\n    IdleDisconnectSeconds (uint32) Specifies the idle time before the VPN connection is disconnected
\n    ServerList (VpnServerAddress[]) Specifies the address of the Remote VPN Server.
\n    Routes (MSFT_NetRoute[]) Specifies the route to be plumbed.
\n    VpnTrigger (VpnConnectionTrigger) Specifies Trigger properties of VPN connection.
\n    DnsSuffix (string) Specifies the connection specific DNS suffix    
\nInbox GCW profile consist of following additional fields: 
\n    AllUserConnection (boolean) Specifies that the VPN connection is in AllUserConnection phone book entries.
\n    TunnelType (string) Specifies the VPN Tunnel Type in the VPN Connection profile. Available values: Automatic, Pptp, L2tp, Sstp, Ikev2
\n    AuthenticationMethod (string[]) Specifies the authentication method set configured for the VPN Connection profile. Available values: Pap, Chap, MsChapv2, Eap
\n    EncryptionLevel (string) Specifies the encryption level for the VPN connection profile. Available values: NoEncrytpion, Optional, Required, Maximum
\n    L2tpIPsecAuth (string) Specifies whether the L2TP/IPSec authentication uses a certificate or Pre-Shared key. Available values: Certificate, Psk
\n    EapConfigXmlStream (XML) Specifies the contents of the XML file containing the EAP Configuration for the VPN connection profile.
\n    NapState (string) Specifies the NAP status for PEAP authentication method. Available values: Success, NotNapCapable, NoConnection, Error
\n    MachineCertifiacateEKUFilter (string[]) Specifies the EKU filters for Machine certificate selection
\n    MachineCertificateIssuerFilter (X509Certificate2) Specifies the Certificate Issuer filter for machine certificate selection
\n3rd Party profile consist of following additional fields: 
\n    PlugInApplicationID (string) Specifies Identifier for the third party application. 
\n    CustomConfiguration (string) Specifies custom configuration used by Third Party VPN plugins. 
\n") : Amended ToSubclass] VpnCommonConfig cmdletOutput[]);
  [Description("Retrieves the VPN connection profile specified by the parameters.") : Amended ToSubclass] uint32 Get([In,Description("Specifies the name of the VPN connection profile to be retrieved.") : Amended ToSubclass] string Name[],[In,Description("Specifies that the VPN connection should be retrieved from the AllUserConnection phone book entries.") : Amended ToSubclass] boolean AllUserConnection,[Out,Description("VpnCommonConfig consists of the following fields: 
\n    Name (string) Specifies the name of the VPN connection profile. 
\n    ServerAddress (string) Specifies the address of the Remote VPN Server.
\n    RememberCredential (boolean) Specifies whether the credentials for the VPN Connection are stored in cache after first successful connection.
\n    SplitTunneling (boolean) Specifies whether split tunneling is enabled or disabled.
\n    UseWinlogonCredential (boolean) Specifies whether the Windows logon user credentials should be automatically for VPN connection profile.
\n    Guid (Guid) Specifies the read-only GUID that represents the phone-book entry
\n    ConnectionStatus (string) Specifies the connection status of the VPN connection profile. Available values: Connected, NotConnected, Connecting, Limited, Dormant
\n    IdleDisconnectSeconds (uint32) Specifies the idle time before the VPN connection is disconnected
\n    ServerList (VpnServerAddress[]) Specifies the address of the Remote VPN Server.
\n    Routes (MSFT_NetRoute[]) Specifies the route to be plumbed.
\n    VpnTrigger (VpnConnectionTrigger) Specifies Trigger properties of VPN connection.
\n    DnsSuffix (string) Specifies the connection specific DNS suffix    
\nInbox GCW profile consist of following additional fields: 
\n    AllUserConnection (boolean) Specifies that the VPN connection is in AllUserConnection phone book entries.
\n    TunnelType (string) Specifies the VPN Tunnel Type in the VPN Connection profile. Available values: Automatic, Pptp, L2tp, Sstp, Ikev2
\n    AuthenticationMethod (string[]) Specifies the authentication method set configured for the VPN Connection profile. Available values: Pap, Chap, MsChapv2, Eap
\n    EncryptionLevel (string) Specifies the encryption level for the VPN connection profile. Available values: NoEncrytpion, Optional, Required, Maximum
\n    L2tpIPsecAuth (string) Specifies whether the L2TP/IPSec authentication uses a certificate or Pre-Shared key. Available values: Certificate, Psk
\n    EapConfigXmlStream (XML) Specifies the contents of the XML file containing the EAP Configuration for the VPN connection profile.
\n    NapState (string) Specifies the NAP status for PEAP authentication method. Available values: Success, NotNapCapable, NoConnection, Error
\n    MachineCertifiacateEKUFilter (string[]) Specifies the EKU filters for Machine certificate selection
\n    MachineCertificateIssuerFilter (X509Certificate2) Specifies the Certificate Issuer filter for machine certificate selection
\n3rd Party profile consist of following additional fields: 
\n    PlugInApplicationID (string) Specifies Identifier for the third party application. 
\n    CustomConfiguration (string) Specifies custom configuration used by Third Party VPN plugins. 
\n") : Amended ToSubclass] VpnCommonConfig cmdletOutput[]);
  [Description("Modifies an existing VPN connection profile. ") : Amended ToSubclass] uint32 Set([In,Description("Specifies the address of the remote VPN server to which the client will connect. Can be specified as a URL, IPv4, or IPv6 address.") : Amended ToSubclass] string ServerAddress,[In,Description("Specifies that the VPN connection being modified is in the AllUserConnection phone book entries. ") : Amended ToSubclass] boolean AllUserConnection,[In,Description("Specifies that split tunnel should be enabled for the VPN connection profile. ") : Amended ToSubclass] boolean SplitTunneling,[In,Description("Specifies whether the credentials supplied at the time of first successful connection should be stored in the cache.") : Amended ToSubclass] boolean RememberCredential,[In,Values{"Pptp", "L2tp", "Sstp", "Ikev2", "Automatic"} : Amended ToSubclass,Description("Specifies the type of tunnel used for the VPN connection. Options include  PPTP, L2TP (for L2TP/IPSec), SSTP, IKEv2 and Automatic (IKEv2, L2TP)") : Amended ToSubclass] string TunnelType,[In,Description("Returns the VpnConnection object that contains the VpnConnection configuration settings. ") : Amended ToSubclass] boolean PassThru,[In,Description("If L2TP is used, enforces supplying the Pre-Shared Key value over unsecure channel.") : Amended ToSubclass] boolean Force,[In,Description("Specifies the value of Pre-Shared Key to be used for L2TP authentication. If this parameter is not specified, by default a certificate will be used for L2TP.") : Amended ToSubclass] string L2tpPsk,[In,Values{"Pap", "Chap", "MsChapv2", "Eap", "MachineCertificate"} : Amended ToSubclass,Description("Specifies the authentication method to be used for the VPN connection. Available methods include PAP, CHAP, MSCHAPv2, and EAP.") : Amended ToSubclass] string AuthenticationMethod[],[In,Description("Specifies the contents of the EAP XML configuration file (including the EAP method ID).") : Amended ToSubclass] string EapConfigXmlStream,[In,Description("Specifies the name of the VPN connection profile to be modified.  ") : Amended ToSubclass] string Name,[In,Description("Specifies that MSCHAPv2 should be used as the authentication method, and Windows logon credentials should be used automatically when connecting with the VPN connection profile.") : Amended ToSubclass] boolean UseWinlogonCredential,[In,Values{"NoEncryption", "Optional", "Required", "Maximum", "Custom"} : Amended ToSubclass,Description("Specifies the encryption level for the VPN connection.") : Amended ToSubclass] string EncryptionLevel,[In,Description("EKU filter for IKEv2 machine certificate selection") : Amended ToSubclass] string MachineCertificateEKUFilter[],[In,Description("Certificate issuer filter for IKEv2 machine certificate selection") : Amended ToSubclass] uint8 MachineCertificateIssuerFilter[],[In,Description("List of VPN servers the VPN client can connect to") : Amended ToSubclass] VpnServerAddress ServerList[],[In,Description("Idle time before the VPN connection is disconnected") : Amended ToSubclass] uint32 IdleDisconnectSeconds,[In,Description("DNS suffix of the VPN connection") : Amended ToSubclass] string DnsSuffix,[Out,Description("VpnConnection consists of the following fields: 
\n    Name (string) Specifies the name of the VPN connection profile. 
\n    ServerAddress (string) Specifies the address of the Remote VPN Server.
\n    RememberCredential (boolean) Specifies whether the credentials for the VPN Connection are stored in cache after first successful connection.
\n    SplitTunneling (boolean) Specifies whether split tunneling is enabled or disabled.
\n    UseWinlogonCredential (boolean) Specifies whether the Windows logon user credentials should be automatically for VPN connection profile.
\n    Guid (Guid) Specifies the read-only GUID that represents the phone-book entry
\n    ConnectionStatus (string) Specifies the connection status of the VPN connection profile. Available values: Connected, NotConnected, Connecting, Limited, Dormant
\n    IdleDisconnectSeconds (uint32) Specifies the idle time before the VPN connection is disconnected
\n    ServerList (VpnServerAddress[]) Specifies the address of the Remote VPN Server.
\n    Routes (MSFT_NetRoute[]) Specifies the route to be plumbed.
\n    VpnTrigger (VpnConnectionTrigger) Specifies Trigger properties of VPN connection.
\n    DnsSuffix (string) Specifies the connection specific DNS suffix    
\n    AllUserConnection (boolean) Specifies that the VPN connection is in AllUserConnection phone book entries.
\n    TunnelType (string) Specifies the VPN Tunnel Type in the VPN Connection profile. Available values: Automatic, Pptp, L2tp, Sstp, Ikev2
\n    AuthenticationMethod (string[]) Specifies the authentication method set configured for the VPN Connection profile. Available values: Pap, Chap, MsChapv2, Eap
\n    EncryptionLevel (string) Specifies the encryption level for the VPN connection profile. Available values: NoEncrytpion, Optional, Required, Maximum
\n    L2tpIPsecAuth (string) Specifies whether the L2TP/IPSec authentication uses a certificate or Pre-Shared key. Available values: Certificate, Psk
\n    EapConfigXmlStream (XML) Specifies the contents of the XML file containing the EAP Configuration for the VPN connection profile.
\n    NapState (string) Specifies the NAP status for PEAP authentication method. Available values: Success, NotNapCapable, NoConnection, Error
\n    MachineCertifiacateEKUFilter (string[]) Specifies the EKU filters for Machine certificate selection
\n    MachineCertificateIssuerFilter (X509Certificate2) Specifies the Certificate Issuer filter for machine certificate selection
\n") : Amended ToSubclass] VpnConnection cmdletOutput);
  [Description("Adds a Third Party VPN connection to the Connection Manager phonebook. ") : Amended ToSubclass] uint32 SetByThirdParty([In,Description("Specifies the name of the VPN connection profile to be created.") : Amended ToSubclass] string Name,[In,Description("Specifies the address of the remote VPN server to which the client will connect. Can be specified as a URL, friendly name, IPv4, or IPv6 address.") : Amended ToSubclass] string ServerAddress,[In,Description("Specifies whether the credentials supplied at the time of first successful connection should be stored in the cache.") : Amended ToSubclass] boolean RememberCredential,[In,Description("Specifies that split tunnel should be enabled for the VPN connection profile. If this parameter is not specified, split tunneling is disabled.") : Amended ToSubclass] boolean SplitTunneling,[In,Description("Returns the VpnConnection object that contains the VpnConnection configuration settings. ") : Amended ToSubclass] boolean PassThru,[In,Description("If L2TP is used, enforces supplying the Pre-Shared Key value over unsecure channel. ") : Amended ToSubclass] boolean Force,[In,Description("List of VPN servers the VPN client can connect to") : Amended ToSubclass] VpnServerAddress ServerList[],[In,Description("DNS suffix of the VPN connection") : Amended ToSubclass] string DnsSuffix,[In,Description("Idle time before the VPN connection is disconnected") : Amended ToSubclass] uint32 IdleDisconnectSeconds,[In,Description("Identifier for the third party application") : Amended ToSubclass] string PlugInApplicationID,[In,Description("Used by Third Party VPN plugins to specify custom configuration") : Amended ToSubclass] string CustomConfiguration,[In,Description("Switch parameter to denote that the cmdlet is being executed for a third party profile") : Amended ToSubclass] boolean ThirdPartyVpn,[Out,Description("ThirdPartyVpnConnection consists of the following fields: 
\n    Name (string) Specifies the name of the VPN connection profile. 
\n    ServerAddress (string) Specifies the address of the Remote VPN Server.
\n    RememberCredential (boolean) Specifies whether the credentials for the VPN Connection are stored in cache after first successful connection.
\n    SplitTunneling (boolean) Specifies whether split tunneling is enabled or disabled.
\n    UseWinlogonCredential (boolean) Specifies whether the Windows logon user credentials should be automatically for VPN connection profile.
\n    Guid (Guid) Specifies the read-only GUID that represents the phone-book entry
\n    ConnectionStatus (string) Specifies the connection status of the VPN connection profile. Available values: Connected, NotConnected, Connecting, Limited, Dormant
\n    IdleDisconnectSeconds (uint32) Specifies the idle time before the VPN connection is disconnected
\n    ServerList (VpnServerAddress[]) Specifies the address of the Remote VPN Server.
\n    Routes (MSFT_NetRoute[]) Specifies the route to be plumbed.
\n    VpnTrigger (VpnConnectionTrigger) Specifies Trigger properties of VPN connection.
\n    DnsSuffix (string) Specifies the connection specific DNS suffix    
\n    PlugInApplicationID (string) Specifies Identifier for the third party application. 
\n    CustomConfiguration (string) Specifies custom configuration used by Third Party VPN plugins. 
\n") : Amended ToSubclass] ThirdPartyVpnConnection cmdletOutput);
  [Description("Adds a VPN connection to the Connection Manager phonebook. ") : Amended ToSubclass] uint32 Add([In,Description("Specifies the name of the VPN connection profile to be created.") : Amended ToSubclass] string Name,[In,Description("Specifies the address of the remote VPN server to which the client will connect. Can be specified as a URL, friendly name, IPv4, or IPv6 address.") : Amended ToSubclass] string ServerAddress,[In,Values{"Pptp", "L2tp", "Ikev2", "Sstp"} : Amended ToSubclass,Description("Specifies the type of tunnel used for the VPN connection. Options include  PPTP, L2TP (for L2TP/IPSec), SSTP, IKEv2 and Automatic (IKEv2, L2TP)") : Amended ToSubclass] string TunnelType,[In,Description("Specifies that the VPN connection should be added to the AllUserConnection phone book entries.") : Amended ToSubclass] boolean AllUserConnection,[In,Description("Specifies whether the credentials supplied at the time of first successful connection should be stored in the cache.") : Amended ToSubclass] boolean RememberCredential,[In,Description("Idle time before the VPN connection is disconnected") : Amended ToSubclass] uint32 IdleDisconnectSeconds,[In,Description("DNS suffix of the VPN connection") : Amended ToSubclass] string DnsSuffix,[In,Description("Specifies that split tunnel should be enabled for the VPN connection profile. If this parameter is not specified, split tunneling is disabled.") : Amended ToSubclass] boolean SplitTunneling,[In,Description("If L2TP is used, enforces supplying the Pre-Shared Key value over unsecure channel. ") : Amended ToSubclass] boolean Force,[In,Description("Returns the VpnConnection object that contains the VpnConnection configuration settings. ") : Amended ToSubclass] boolean PassThru,[In,Description("Specifies the value of Pre-Shared Key to be used for L2TP authentication. If this parameter is not specified, by default a certificate will be used for L2TP.") : Amended ToSubclass] string L2tpPsk,[In,Description("Specifies that MSCHAPv2 should be used as the authentication method, and Windows logon credentials should be used automatically when connecting with the VPN connection profile.") : Amended ToSubclass] boolean UseWinlogonCredential,[In,Description("Specifies the contents of the EAP XML configuration file (including the EAP method ID).") : Amended ToSubclass] string EapConfigXmlStream,[In,Values{"Pap", "Chap", "MsChapv2", "Eap"} : Amended ToSubclass,Description("Specifies the authentication method to be used for the VPN connection. Available methods include PAP, CHAP, MSCHAPv2, and EAP.") : Amended ToSubclass] string AuthenticationMethod[],[In,Values{"NoEncryption", "Optional", "Required", "Maximum"} : Amended ToSubclass,Description("Specifies the encryption level for the VPN connection.") : Amended ToSubclass] string EncryptionLevel,[In,Description("Certificate issuer filter for IKEv2 machine certificate selection") : Amended ToSubclass] uint8 MachineCertificateIssuerFilter[],[In,Description("EKU filter for IKEv2 machine certificate selection") : Amended ToSubclass] string MachineCertificateEKUFilter[],[In,Description("List of VPN servers the VPN client can connect to") : Amended ToSubclass] VpnServerAddress ServerList[],[Out,Description("VpnConnection consists of the following fields: 
\n    Name (string) Specifies the name of the VPN connection profile. 
\n    ServerAddress (string) Specifies the address of the Remote VPN Server.
\n    RememberCredential (boolean) Specifies whether the credentials for the VPN Connection are stored in cache after first successful connection.
\n    SplitTunneling (boolean) Specifies whether split tunneling is enabled or disabled.
\n    UseWinlogonCredential (boolean) Specifies whether the Windows logon user credentials should be automatically for VPN connection profile.
\n    Guid (Guid) Specifies the read-only GUID that represents the phone-book entry
\n    ConnectionStatus (string) Specifies the connection status of the VPN connection profile. Available values: Connected, NotConnected, Connecting, Limited, Dormant
\n    IdleDisconnectSeconds (uint32) Specifies the idle time before the VPN connection is disconnected
\n    ServerList (VpnServerAddress[]) Specifies the address of the Remote VPN Server.
\n    Routes (MSFT_NetRoute[]) Specifies the route to be plumbed.
\n    VpnTrigger (VpnConnectionTrigger) Specifies Trigger properties of VPN connection.
\n    DnsSuffix (string) Specifies the connection specific DNS suffix    
\n    AllUserConnection (boolean) Specifies that the VPN connection is in AllUserConnection phone book entries.
\n    TunnelType (string) Specifies the VPN Tunnel Type in the VPN Connection profile. Available values: Automatic, Pptp, L2tp, Sstp, Ikev2
\n    AuthenticationMethod (string[]) Specifies the authentication method set configured for the VPN Connection profile. Available values: Pap, Chap, MsChapv2, Eap
\n    EncryptionLevel (string) Specifies the encryption level for the VPN connection profile. Available values: NoEncrytpion, Optional, Required, Maximum
\n    L2tpIPsecAuth (string) Specifies whether the L2TP/IPSec authentication uses a certificate or Pre-Shared key. Available values: Certificate, Psk
\n    EapConfigXmlStream (XML) Specifies the contents of the XML file containing the EAP Configuration for the VPN connection profile.
\n    NapState (string) Specifies the NAP status for PEAP authentication method. Available values: Success, NotNapCapable, NoConnection, Error
\n    MachineCertifiacateEKUFilter (string[]) Specifies the EKU filters for Machine certificate selection
\n    MachineCertificateIssuerFilter (X509Certificate2) Specifies the Certificate Issuer filter for machine certificate selection
\n") : Amended ToSubclass] VpnConnection cmdletOutput);
  [Description("Adds a Third Party VPN connection to the Connection Manager phonebook. ") : Amended ToSubclass] uint32 NewByThirdParty([In,Description("Specifies the name of the VPN connection profile to be created.") : Amended ToSubclass] string Name,[In,Description("Specifies the address of the remote VPN server to which the client will connect. Can be specified as a URL, friendly name, IPv4, or IPv6 address.") : Amended ToSubclass] string ServerAddress,[In,Description("Specifies whether the credentials supplied at the time of first successful connection should be stored in the cache.") : Amended ToSubclass] boolean RememberCredential,[In,Description("Specifies that split tunnel should be enabled for the VPN connection profile. If this parameter is not specified, split tunneling is disabled.") : Amended ToSubclass] boolean SplitTunneling,[In,Description("Returns the VpnConnection object that contains the VpnConnection configuration settings. ") : Amended ToSubclass] boolean PassThru,[In,Description("If L2TP is used, enforces supplying the Pre-Shared Key value over unsecure channel. ") : Amended ToSubclass] boolean Force,[In,Description("List of VPN servers the VPN client can connect to") : Amended ToSubclass] VpnServerAddress ServerList[],[In,Description("DNS suffix of the VPN connection") : Amended ToSubclass] string DnsSuffix,[In,Description("Idle time before the VPN connection is disconnected") : Amended ToSubclass] uint32 IdleDisconnectSeconds,[In,Description("Identifier for the third party application") : Amended ToSubclass] string PlugInApplicationID,[In,Description("Used by Third Party VPN plugins to specify custom configuration") : Amended ToSubclass] string CustomConfiguration,[Out,Description("ThirdPartyVpnConnection consists of the following fields: 
\n    Name (string) Specifies the name of the VPN connection profile. 
\n    ServerAddress (string) Specifies the address of the Remote VPN Server.
\n    RememberCredential (boolean) Specifies whether the credentials for the VPN Connection are stored in cache after first successful connection.
\n    SplitTunneling (boolean) Specifies whether split tunneling is enabled or disabled.
\n    UseWinlogonCredential (boolean) Specifies whether the Windows logon user credentials should be automatically for VPN connection profile.
\n    Guid (Guid) Specifies the read-only GUID that represents the phone-book entry
\n    ConnectionStatus (string) Specifies the connection status of the VPN connection profile. Available values: Connected, NotConnected, Connecting, Limited, Dormant
\n    IdleDisconnectSeconds (uint32) Specifies the idle time before the VPN connection is disconnected
\n    ServerList (VpnServerAddress[]) Specifies the address of the Remote VPN Server.
\n    Routes (MSFT_NetRoute[]) Specifies the route to be plumbed.
\n    VpnTrigger (VpnConnectionTrigger) Specifies Trigger properties of VPN connection.
\n    DnsSuffix (string) Specifies the connection specific DNS suffix    
\n    PlugInApplicationID (string) Specifies Identifier for the third party application. 
\n    CustomConfiguration (string) Specifies custom configuration used by Third Party VPN plugins. 
\n") : Amended ToSubclass] ThirdPartyVpnConnection cmdletOutput);
};

[Description("IPsec configuration of a VPN connection") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class PS_VpnConnectionIPsecConfiguration
{
  [Description("Configures the IPsec parameter of the specified VPN connection") : Amended ToSubclass] uint32 SetByCustomPolicy([In,Description("Specifies the name of the VPN connection profile to be created.") : Amended ToSubclass] string ConnectionName,[In,Description("Auth Transform plumbed in IPsec policy") : Amended ToSubclass] uint32 AuthenticationTransformConstants,[In,Description("Cipher plumbed in IPsec Policy") : Amended ToSubclass] uint32 CipherTransformConstants,[In,Description("Encryption method plumbed in IPsec policy") : Amended ToSubclass] uint32 EncryptionMethod,[In,Description("Integrity method plumbed in IPsec policy") : Amended ToSubclass] uint32 IntegrityCheckMethod,[In,Description("PFS Group plumbed in Ipsec policy.") : Amended ToSubclass] uint32 PfsGroup,[In,Description("DH Group Plumbed in Ipsec policy.") : Amended ToSubclass] uint32 DHGroup,[In,Description("Returns the VpnConnection object that contains the VpnConnection configuration settings") : Amended ToSubclass] boolean PassThru,[In] boolean Force,[In,Description("Specifies that the VPN connection being modified is in the AllUserConnection phone book entries. ") : Amended ToSubclass] boolean AllUserConnection,[Out,Description("class VpnConnectionIPsecConfiguration VpnClientIPSecPolicy
\n{
\nEncryptionMethod (uint32)
\nIntegrityCheckMethod ( uint32)
\nCipherTransformConstants (uint32)
\nDHGroup (uint32)
\nAuthenticationTransformConstants (uint32)
\nPfsGroup (uint32)
\n};
\n") : Amended ToSubclass] VpnConnectionIPsecConfiguration cmdletOutput);
  [Description("Configures the IPsec parameter of the specified VPN connection") : Amended ToSubclass] uint32 SetIpSecByDefault([In,Description("Specifies the name of the VPN connection profile to be created.") : Amended ToSubclass] string ConnectionName,[In,Description("Sets the IPsec parameters to default value") : Amended ToSubclass] boolean RevertToDefault,[In,Description("Returns the VpnConnection object that contains the VpnConnection configuration settings") : Amended ToSubclass] boolean PassThru,[In] boolean Force,[In,Description("Specifies that the VPN connection being modified is in the AllUserConnection phone book entries. ") : Amended ToSubclass] boolean AllUserConnection,[Out,Description("class VpnConnectionIPsecConfiguration VpnClientIPSecPolicy
\n{
\nEncryptionMethod (uint32)
\nIntegrityCheckMethod ( uint32)
\nCipherTransformConstants (uint32)
\nDHGroup (uint32)
\nAuthenticationTransformConstants (uint32)
\nPfsGroup (uint32)
\n};
\n") : Amended ToSubclass] VpnConnectionIPsecConfiguration cmdletOutput);
};

[Description("Web-proxy configuration for VPN connection") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class PS_VpnConnectionProxy
{
  [key,Description("Switch parameter used to Automatically detect proxy settings") : Amended ToSubclass] boolean AutoDetect;
  [key,Description("Specifies that the automatic configuration WPAD script specified for web-proxy configuration should be used.") : Amended ToSubclass] string AutoConfigurationScript;
  [key,Description("Specifies the web-proxy server address and port number pair in colon separated format.") : Amended ToSubclass] string ProxyServer;
  [Description("Switch parameter used to bypass web-proxy for local (intranet) addresses.") : Amended ToSubclass] boolean BypassProxyForLocal;
  [Description("Specifies the prefixes for the addresses for which the proxy should not be used.") : Amended ToSubclass] string ExceptionPrefix[];
  [Description("Configures the Web-proxy for the specified VPN connection") : Amended ToSubclass] uint32 Set([In,Description("Switch parameter used to Automatically detect proxy settings") : Amended ToSubclass] boolean AutoDetect,[In,Description("Specifies that the automatic configuration WPAD script specified for web-proxy configuration should be used.") : Amended ToSubclass] string AutoConfigurationScript,[In,Description("Specifies the web-proxy server address and port number pair in colon separated format.") : Amended ToSubclass] string ProxyServer,[In,Description("Switch parameter used to bypass web-proxy for local (intranet) addresses.") : Amended ToSubclass] boolean BypassProxyForLocal,[In,Description("Specifies the prefixes for the addresses for which the proxy should not be used") : Amended ToSubclass] string ExceptionPrefix[],[In,Description("Name of the VPN connection profile") : Amended ToSubclass] string ConnectionName,[In,Description("Returns the VpnConnectionProxy object that contains the proxy configuration for the specified VPN Connection") : Amended ToSubclass] boolean PassThru,[Out,Description("VpnConnectionProxy
\nObject") : Amended ToSubclass] VpnConnectionProxy cmdletOutput);
};

[Description("Route for a VPN connection") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class PS_VpnConnectionRoute
{
  [key,Description("Destination prefix of the route to be added") : Amended ToSubclass] string DestinationPrefix;
  [Description("Metric of the route being added") : Amended ToSubclass] uint32 RouteMetric;
  [Description("To indicate whether the address family for this route is v4 or v6.") : Amended ToSubclass,Values{"IPv4", "IPv6"} : Amended ToSubclass] uint16 AddressFamily;
  [Description("Adds a route to the specified VPN connection") : Amended ToSubclass] uint32 Add([In,Description("Specifies the name of the VPN connection profile to be modified.  ") : Amended ToSubclass] string ConnectionName,[In,Description("Destination prefix of the route to be added") : Amended ToSubclass] string DestinationPrefix,[In,Description("Metric of the route being added") : Amended ToSubclass] uint32 RouteMetric,[In,Description("Returns the MSFT_NetRoute object") : Amended ToSubclass] boolean PassThru,[In,Description("Specifies that the VPN connection being modified is in the AllUserConnection phone book entries. ") : Amended ToSubclass] boolean AllUserConnection,[Out,Description("MSFT_NetRoute object.
\nThe destination prefix and metric field are populated") : Amended ToSubclass] MSFT_NetRoute cmdletOutput);
  [Description("Removes a route from the specified VPN connection") : Amended ToSubclass] uint32 Remove([In,Description("Specifies the name of the VPN connection profile to be modified.  ") : Amended ToSubclass] string ConnectionName,[In,Description("Destination prefix of the route to be removed") : Amended ToSubclass] string DestinationPrefix,[In,Description("Specifies that the VPN connection being modified is in the AllUserConnection phone book entries. ") : Amended ToSubclass] boolean AllUserConnection,[In,Description("Returns the MSFT_NetRoute object") : Amended ToSubclass] boolean PassThru,[Out,Description("MSFT_NetRoute object.
\nThe destination prefix and metric field are populated") : Amended ToSubclass] MSFT_NetRoute cmdletOutput);
};

[Description("Triggering properties of VPN connection") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class PS_VpnConnectionTrigger
{
  [Description("Returns the trigger properties of a VPN connection") : Amended ToSubclass] uint32 Get([In,Description("Specifies the name of the VPN connection profile for which trigger properties to be retrieved.") : Amended ToSubclass] string ConnectionName,[Out,Description("Triggering properties of VPN connection") : Amended ToSubclass] VpnConnectionTrigger cmdletOutput);
};

[Description("Applications for VPN triggering") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class PS_VpnConnectionTriggerApplication
{
  [Description("The Add-VpnConnectionTriggerApplication adds applications, which when launched will auto-trigger the VPN connection") : Amended ToSubclass] uint32 Add([In,Description("Name of the VPN connection profile") : Amended ToSubclass] string ConnectionName,[In,Description("Unique identifier for an application") : Amended ToSubclass] string ApplicationID[],[In,Description("Returns the VpnConnectionTriggerApplication object that contains the trigger application settings. ") : Amended ToSubclass] boolean PassThru,[In,Description("Forces the addition of Application ID to the VPN profile.") : Amended ToSubclass] boolean Force,[Out,Description("Unique identifier for an application.") : Amended ToSubclass] VpnConnectionTriggerApplication cmdletOutput);
  [Description("Removes one or more applications from trigger properties for a VPN connection") : Amended ToSubclass] uint32 Remove([In,Description("Name of the VPN connection profile") : Amended ToSubclass] string ConnectionName,[In,Description("Unique identifier for an application") : Amended ToSubclass] string ApplicationID[],[In,Description("Returns the VpnConnectionTriggerApplication object that contains the applications configured for VPN trigger") : Amended ToSubclass] boolean PassThru,[In,Description("Forces the removal of Application ID from the VPN profile.") : Amended ToSubclass] boolean Force,[Out,Description("Unique identifier for an application.") : Amended ToSubclass] VpnConnectionTriggerApplication cmdletOutput);
};

[Description("DNS configuration for VPN triggering") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class PS_VpnConnectionTriggerDnsConfiguration
{
  [key,Description("Specifies a single DNS suffix.") : Amended ToSubclass] string DnsSuffix;
  [Description("IPv4/IPv6 address of the corresponding DNS servers that should be used for the specified DNS suffix.") : Amended ToSubclass] string DnsIPAddress[];
  [Description("This cmdlet adds a DNS suffix to the trigger properties. Whenever client tries to access a resource that matches the DNS suffix, VPN connection is auto-triggered.") : Amended ToSubclass] uint32 Add([In,Description("Name of the VPN connection profile") : Amended ToSubclass] string ConnectionName,[In,Description("Specifies a single DNS suffix") : Amended ToSubclass] string DnsSuffix,[In,Description("IPv4/IPv6 address of the corresponding DNS servers that should be used for the specified DNS suffix") : Amended ToSubclass] string DnsIPAddress[],[In,Description("Returns the VPN connection DNS trigger properties, DNS suffixes and their corresponding DNS servers") : Amended ToSubclass] boolean PassThru,[In,Description("Forces the addition of the DNS servers for the given DNS Suffix.") : Amended ToSubclass] boolean Force,[Out,Description("DNS configuration for VPN triggering.") : Amended ToSubclass] VpnConnectionTriggerDnsConfiguration cmdletOutput);
  [Description("Sets the DNS servers for a specific DNS suffix") : Amended ToSubclass] uint32 Set([In,Description("Name of the VPN connection profile") : Amended ToSubclass] string ConnectionName,[In,Description("Specifies a single DNS suffix") : Amended ToSubclass] string DnsSuffix,[In,Description("IPv4/IPv6 address of the corresponding DNS servers that should be used for the specified DNS suffix") : Amended ToSubclass] string DnsIPAddress[],[In,Description("Dns Suffix search list for the auto-triggered VPN connection") : Amended ToSubclass] string DnsSuffixSearchList[],[In,Description("Returns the VpnConnectionTriggerDnsConfiguration object that contains the DNS suffixes and their corresponding DNS servers") : Amended ToSubclass] boolean PassThru,[In,Description("Forces the resetting of the DNS servers for the given DNS Suffix.") : Amended ToSubclass] boolean Force,[Out,Description("DNS configuration for VPN triggering.") : Amended ToSubclass] VpnConnectionTriggerDnsConfiguration cmdletOutput);
  [Description("Removes a DNS suffix and corresponding DNS servers from the trigger properties") : Amended ToSubclass] uint32 Remove([In,Description("Name of the VPN connection profile") : Amended ToSubclass] string ConnectionName,[In,Description("List of DNS suffixes") : Amended ToSubclass] string DnsSuffix[],[In,Description("Returns the VpnConnectionTriggerDnsConfiguration object containing the list of DNS suffixes and their corresponding DNS servers") : Amended ToSubclass] boolean PassThru,[In,Description("Forces the removal of Nrpt Rule from the VPN profile.") : Amended ToSubclass] boolean Force,[Out,Description("DNS configuration for VPN triggering.") : Amended ToSubclass] VpnConnectionTriggerDnsConfiguration cmdletOutput[]);
};

[Description("Trusted Network configuration for VPN triggering") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class PS_VpnConnectionTriggerTrustedNetwork
{
  [Description("The Add-VpnConnectionTriggerTrustedNetwork adds DNS suffixes to the VPN profile. When any of these DNS suffixes is present on physical interface on the client, VPN connection will not be auto triggered.") : Amended ToSubclass] uint32 Add([In,Description("Name of the VPN connection profile") : Amended ToSubclass] string ConnectionName,[In,Description("Specifies a list of DNS suffixes") : Amended ToSubclass] string DnsSuffix[],[In,Description("Returns the VpnConnectionTriggerTrustedNetwork object containing the list of trusted networks for auto triggering") : Amended ToSubclass] boolean PassThru,[In,Description("Supplying this parameter will automatically add the supplied DNS suffixes to the current Trusted Network List.") : Amended ToSubclass] boolean Force,[Out] VpnConnectionTriggerTrustedNetwork cmdletOutput);
  [Description("The Remove-VpnConnectionTriggerTrustedNetwork removes DNS suffixes from the VPN profile. When any of these DNS suffixes is present on physical interface on the client, VPN connection will not be auto triggered.") : Amended ToSubclass] uint32 Remove([In,Description("Name of the VPN connection profile") : Amended ToSubclass] string ConnectionName,[In,Description("Specifies a list of DNS suffixes") : Amended ToSubclass] string DnsSuffix[],[In,Description("Returns the VpnConnectionTriggerTrustedNetwork object containing the list of trusted networks for auto triggering") : Amended ToSubclass] boolean PassThru,[In,Description("Supplying this parameter will automatically remove the supplied DNS suffixes from the current Trusted Network List.") : Amended ToSubclass] boolean Force,[Out] VpnConnectionTriggerTrustedNetwork cmdletOutput);
  [Description("The Set-VpnConnectionTriggerTrustedNetwork sets the trusted network list with the NRPT DNS suffixes that have been configured as part of triggering properties. The NRPT exemption entries are ignored.") : Amended ToSubclass] uint32 Set([In,Description("Name of the VPN connection profile") : Amended ToSubclass] string ConnectionName,[In,Description("Switch parameter to specify that all DNS suffixes in the VpnConnectionTriggerDnsConfiguration object must be copied into the DNS suffixes for VpnConnectionTriggerTrustedNetwork. DNS suffixes without corresponding DNS servers will not be copied.") : Amended ToSubclass] boolean DefaultDnsSuffixes,[In,Description("Returns the VpnConnectionTriggerTrustedNetwork object containing the list of trusted networks for auto triggering") : Amended ToSubclass] boolean PassThru,[In,Description("Supplying this parameter will automatically replace the current Trusted Network List with the DNS suffixes present in VpnConnectionTriggerDnsConfiguration. Note that only DNS suffixes with corresponding DNS server addresses are copied from  VpnConnectionTriggerDnsConfiguration") : Amended ToSubclass] boolean Force,[Out] VpnConnectionTriggerTrustedNetwork cmdletOutput);
};

[Description("VPN server address class") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class PS_VpnServerAddress
{
  [key,Description("Friendly Name of Remote VPN Server.") : Amended ToSubclass] string FriendlyName;
  [Description("Address of Remote VPN Server.") : Amended ToSubclass] string ServerAddress;
  [Description("Generates a VPN server object") : Amended ToSubclass] uint32 New([In,Description("Address of the VPN server") : Amended ToSubclass] string ServerAddress,[In,Description("User friendly name of the VPN server") : Amended ToSubclass] string FriendlyName,[In,Description("Returns the VpnServerAddress object") : Amended ToSubclass] boolean PassThru,[Out,Description("class VpnServerAddress
\n{
\nVPNServerNameAddress (string)
\n
\nVPNServerFriendlyName (string)
\n};
\n") : Amended ToSubclass] VpnServerAddress cmdletOutput);
};

[Description("VPN Common Config") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class VpnCommonConfig
{
  [Description("Name of the current VPN Connection profile.") : Amended ToSubclass] string Name;
  [Description("This parameter contains the Vpn Connection Profile Type") : Amended ToSubclass,Values{"Inbox", "ThirdParty"} : Amended ToSubclass] string ProfileType;
  [Description("Address of the Remote VPN Server.") : Amended ToSubclass] string ServerAddress;
  [Description("Provisioning Authority of the VPN Profile.") : Amended ToSubclass] string ProvisioningAuthority;
  [Description("This flag shall store the credentials for the VPN Connection to the credman after first successful connection.") : Amended ToSubclass] boolean RememberCredential;
  [Description("This flag specifies whether Split Tunneling has to be enabled or disabled.") : Amended ToSubclass] boolean SplitTunneling;
  [Description("The read-only GUID (Globally Unique Identifier) that represents this phone-book entry.") : Amended ToSubclass] string Guid;
  [Description("This property reflects the current connection status of the VPN connection.") : Amended ToSubclass,Values{"Connected", "NotConnected", "Connecting", "Limited", "Dormant"} : Amended ToSubclass] string ConnectionStatus;
  [Description("A value that specifies the time, in seconds, after which an idle connection is terminated. Unless the idle time-out is disabled, the entire connection is terminated if the connection is idle for the specified interval.") : Amended ToSubclass] uint32 IdleDisconnectSeconds;
  [Description("Specifies the VPN Server List.") : Amended ToSubclass] VpnServerAddress ServerList[];
  [Description("Specifies the routes to be plumbed.") : Amended ToSubclass] MSFT_NetRoute Routes[];
  [Description("Specifies Trigger properties of VPN Connection.") : Amended ToSubclass] VpnConnectionTrigger VpnTrigger;
  [Description("Specifies the DNS Suffix.") : Amended ToSubclass] string DnsSuffix;
  [Description("Proxy settings of the VPN connection.") : Amended ToSubclass] VpnConnectionProxy Proxy;
  [Description("This flag indicates whether the VPN Connection is auto-trigger enabled.") : Amended ToSubclass] boolean IsAutoTriggerEnabled;
};

[Description("Third Party VPN Profile") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class ThirdPartyVpnConnection : VpnCommonConfig
{
  [Description("An XML representation of this instance, which can be used as input for MSFT_ThirdPartyVpnConnection::Set") : Amended ToSubclass] string VpnConfigurationXml;
  [Description("Identifier for the third party application.") : Amended ToSubclass] string PlugInApplicationID;
  [Description("Used by Third Party VPN plugins to specify custom configuration.") : Amended ToSubclass] string CustomConfiguration;
};

[Description("GCW Profile") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class VpnConnection : VpnCommonConfig
{
  [Description("Flag to represent All User VPN Connection profile or Single user profile.") : Amended ToSubclass] boolean AllUserConnection;
  [Description("This parameter contains the PPP Tunnel Type configured in the RAS config blob. This tunnel is decided after first successful connection.") : Amended ToSubclass,Values{"Automatic", "Pptp", "L2tp", "Sstp", "Ikev2"} : Amended ToSubclass] string TunnelType;
  [Description("This flag is only used for MsChapv2/EAP-MsChapv2 Authentication Methods. It indicated whether the User Winlogon Credentials are to be automatically used for connection using the current VPN connection profile.") : Amended ToSubclass] boolean UseWinlogonCredential;
  [Description("This parameter contains the Authentication method configured for the current VPN connection profile.") : Amended ToSubclass,Values{"Pap", "Chap", "MsChapv2", "Eap", "MachineCertificate"} : Amended ToSubclass] string AuthenticationMethod[];
  [Description("This parameter is to specify the Encryption level to be used with the current VPN connection.") : Amended ToSubclass,Values{"NoEncryption", "Optional", "Required", "Maximum"} : Amended ToSubclass] string EncryptionLevel;
  [Description("This parameter specifies whether the L2TP IPSec Authentication method is Machine Certificate or Pre Shared Key.") : Amended ToSubclass,Values{"Certificate", "Psk"} : Amended ToSubclass] string L2tpIPsecAuth;
  [Description("This is an XML Stream containing the detailed EAP Configuration for the VPN profile.") : Amended ToSubclass] string EapConfigXmlStream;
  [Description("This property reflects the NAP (Health) status of the connection if it is configured to use PEAP authentication method and is currently connected to the Remote VPN Server.") : Amended ToSubclass,Values{"Success", "NotNapCapable", "NoConnection", "Error"} : Amended ToSubclass] string NapState;
  [Description("An XML representation of this instance, which can be used as input for MSFT_VpnConnection::Set") : Amended ToSubclass] string VpnConfigurationXml;
  [Description("Associated IPSec Custom Policy.") : Amended ToSubclass] VpnConnectionIPsecConfiguration IPSecCustomPolicy[];
  [Description("Array of Certificate EKU Filter, EKU Name for standard EKU else EKU OID.") : Amended ToSubclass] string MachineCertificateEKUFilter[];
  [Description("Root Certificate Issuer Filter.") : Amended ToSubclass] uint8 MachineCertificateIssuerFilter[];
};

[AMENDMENT, LOCALE("MS_804")] 
class VpnConnectionIPsecConfiguration
{
  [Description("Encryption method plumbed in IKE policy.") : Amended ToSubclass] uint32 EncryptionMethod;
  [Description("Integrity method plumbed in IPsec policy.") : Amended ToSubclass] uint32 IntegrityCheckMethod;
  [Description("Cipher plumbed in IPsec policy.") : Amended ToSubclass] uint32 CipherTransformConstants;
  [Description("DH group plumbed in IPsec policy.") : Amended ToSubclass] uint32 DHGroup;
  [Description("Auth transform plumbed in IPsec policy.") : Amended ToSubclass] uint32 AuthenticationTransformConstants;
  [Description("PFS group plumbed in IPsec policy.") : Amended ToSubclass] uint32 PfsGroup;
};

[Description("Proxy settings for VPN connection") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class VpnConnectionProxy
{
  [Description("Name of the current VPN Connection profile.") : Amended ToSubclass] string ConnectionName;
  [Description("Switch parameter used to Automatically detect proxy settings") : Amended ToSubclass] boolean AutoDetect;
  [Description("Specifies that the automatic configuration WPAD script specified for web-proxy configuration should be used.") : Amended ToSubclass] string AutoConfigurationScript;
  [Description("Switch parameter used to bypass web-proxy for local (intranet) addresses.") : Amended ToSubclass] boolean BypassProxyForLocal;
  [Description("Specifies the web-proxy server address and port number pair in colon separated format.") : Amended ToSubclass] string ProxyServer;
  [Description("Specifies the prefixes for the addresses for which the proxy should not be used.") : Amended ToSubclass] string ExceptionPrefix[];
};

[Description("Triggering properties of VPN connection") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class VpnConnectionTrigger
{
  [Description("Name of the current VPN Connection profile.") : Amended ToSubclass] string ConnectionName;
  [Description("Unique identifier for an application.") : Amended ToSubclass] string ApplicationID[];
  [Description("Specifies Trigger DNS Configurations.") : Amended ToSubclass] VpnConnectionTriggerDnsConfiguration dnsConfig[];
  [Description("Dns Suffix search list for the auto-triggered VPN connection.") : Amended ToSubclass] string DnsSuffixSearchList[];
  [Description("Trusted network DNS suffixes for the auto-triggered VPN connection.") : Amended ToSubclass] string TrustedNetwork[];
};

[Description("Applications for VPN triggering") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class VpnConnectionTriggerApplication
{
  [Description("Name of the current VPN Connection profile.") : Amended ToSubclass] string ConnectionName;
  [Description("Unique identifier for an application.") : Amended ToSubclass] string ApplicationID[];
};

[Description("DNS configuration for VPN triggering") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class VpnConnectionTriggerDnsConfiguration
{
  [Description("Name of the current VPN Connection profile.") : Amended ToSubclass] string ConnectionName;
  [Description("Specifies a single DNS suffix.") : Amended ToSubclass] string DnsSuffix;
  [Description("IPv4/IPv6 address of the corresponding DNS servers that should be used for the specified DNS suffix.") : Amended ToSubclass] string DnsIPAddress[];
  [Description("Dns Suffix search list for the auto-triggered VPN connection.") : Amended ToSubclass] string DnsSuffixSearchList[];
};

[Description("Trusted Network configuration for VPN triggering") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class VpnConnectionTriggerTrustedNetwork
{
  [Description("Name of the VPN Connection profile.") : Amended ToSubclass] string ConnectionName;
  [Description("Specifies a list of DNS suffixes.") : Amended ToSubclass] string DnsSuffix[];
};

[AMENDMENT, LOCALE("MS_804")] 
class VpnServerAddress
{
  [Description("Address of Remote VPN Server.") : Amended ToSubclass] string ServerAddress;
  [Description("Friendly Name of Remote VPN Server.") : Amended ToSubclass] string FriendlyName;
};
