//
// Copyright (c) Microsoft Corporation. All rights reserved.
// 
//
// File generated by WinMDIDL version 8.00.0021
//

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "windowscontracts.idl";
import "Windows.Foundation.idl";
import "Windows.ApplicationModel.Activation.idl";
import "Windows.Networking.idl";
import "Windows.Networking.Sockets.idl";
import "Windows.Security.Credentials.idl";
import "Windows.Security.Cryptography.Certificates.idl";
import "Windows.Storage.Streams.idl";

// Forward Declare
namespace Windows
{
    namespace ApplicationModel
    {
        namespace Activation
        {
            interface IActivatedEventArgs;

            interface IActivatedEventArgsWithUser;
        }
    }
}
namespace Windows
{
    namespace Foundation
    {
        namespace Collections
        {
            runtimeclass ValueSet;
        }
    }
}
namespace Windows
{
    namespace Foundation
    {
        interface IAsyncAction;

        apicontract UniversalApiContract;

        runtimeclass Uri;
    }
}
namespace Windows
{
    namespace Networking
    {
        runtimeclass HostName;
    }
}
namespace Windows
{
    namespace Networking
    {
        namespace Sockets
        {
            typedef enum ControlChannelTriggerStatus ControlChannelTriggerStatus;
        }
    }
}
namespace Windows
{
    namespace Security
    {
        namespace Credentials
        {
            runtimeclass PasswordCredential;
        }
    }
}
namespace Windows
{
    namespace Security
    {
        namespace Cryptography
        {
            namespace Certificates
            {
                runtimeclass Certificate;
            }
        }
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            runtimeclass Buffer;
        }
    }
}
namespace Windows
{
    namespace Networking
    {
        namespace Vpn
        {
            typedef enum VpnAppIdType VpnAppIdType;

            typedef enum VpnAuthenticationMethod VpnAuthenticationMethod;

            typedef enum VpnChannelActivityEventType VpnChannelActivityEventType;

            typedef enum VpnChannelRequestCredentialsOptions VpnChannelRequestCredentialsOptions;

            typedef enum VpnCredentialType VpnCredentialType;

            typedef enum VpnDataPathType VpnDataPathType;

            typedef enum VpnDomainNameType VpnDomainNameType;

            typedef enum VpnIPProtocol VpnIPProtocol;

            typedef enum VpnManagementConnectionStatus VpnManagementConnectionStatus;

            typedef enum VpnManagementErrorStatus VpnManagementErrorStatus;

            typedef enum VpnNativeProtocolType VpnNativeProtocolType;

            typedef enum VpnPacketBufferStatus VpnPacketBufferStatus;

            typedef enum VpnRoutingPolicyType VpnRoutingPolicyType;

            interface IVpnAppId;

            interface IVpnAppIdFactory;

            interface IVpnChannel;

            interface IVpnChannel2;

            interface IVpnChannel4;

            interface IVpnChannel5;

            interface IVpnChannel6;

            interface IVpnChannelActivityEventArgs;

            interface IVpnChannelActivityStateChangedArgs;

            interface IVpnChannelConfiguration;

            interface IVpnChannelConfiguration2;

            interface IVpnChannelStatics;

            interface IVpnCredential;

            interface IVpnCustomCheckBox;

            interface IVpnCustomComboBox;

            interface IVpnCustomEditBox;

            interface IVpnCustomErrorBox;

            interface IVpnCustomPrompt;

            interface IVpnCustomPromptBooleanInput;

            interface IVpnCustomPromptElement;

            interface IVpnCustomPromptOptionSelector;

            interface IVpnCustomPromptText;

            interface IVpnCustomPromptTextInput;

            interface IVpnCustomTextBox;

            interface IVpnDomainNameAssignment;

            interface IVpnDomainNameInfo;

            interface IVpnDomainNameInfo2;

            interface IVpnDomainNameInfoFactory;

            interface IVpnForegroundActivatedEventArgs;

            interface IVpnForegroundActivationOperation;

            interface IVpnInterfaceId;

            interface IVpnInterfaceIdFactory;

            interface IVpnManagementAgent;

            interface IVpnNamespaceAssignment;

            interface IVpnNamespaceInfo;

            interface IVpnNamespaceInfoFactory;

            interface IVpnNativeProfile;

            interface IVpnNativeProfile2;

            interface IVpnPacketBuffer;

            interface IVpnPacketBuffer2;

            interface IVpnPacketBuffer3;

            interface IVpnPacketBufferFactory;

            interface IVpnPacketBufferList;

            interface IVpnPacketBufferList2;

            interface IVpnPickedCredential;

            interface IVpnPlugIn;

            interface IVpnPlugInProfile;

            interface IVpnPlugInProfile2;

            interface IVpnPlugInReconnectTransport;

            interface IVpnProfile;

            interface IVpnRoute;

            interface IVpnRouteAssignment;

            interface IVpnRouteFactory;

            interface IVpnSystemHealth;

            interface IVpnTrafficFilter;

            interface IVpnTrafficFilterAssignment;

            interface IVpnTrafficFilterFactory;

            runtimeclass VpnAppId;

            runtimeclass VpnChannel;

            runtimeclass VpnChannelActivityEventArgs;

            runtimeclass VpnChannelActivityStateChangedArgs;

            runtimeclass VpnChannelConfiguration;

            runtimeclass VpnCredential;

            runtimeclass VpnCustomCheckBox;

            runtimeclass VpnCustomComboBox;

            runtimeclass VpnCustomEditBox;

            runtimeclass VpnCustomErrorBox;

            runtimeclass VpnCustomPromptBooleanInput;

            runtimeclass VpnCustomPromptOptionSelector;

            runtimeclass VpnCustomPromptText;

            runtimeclass VpnCustomPromptTextInput;

            runtimeclass VpnCustomTextBox;

            runtimeclass VpnDomainNameAssignment;

            runtimeclass VpnDomainNameInfo;

            runtimeclass VpnForegroundActivatedEventArgs;

            runtimeclass VpnForegroundActivationOperation;

            runtimeclass VpnInterfaceId;

            runtimeclass VpnManagementAgent;

            runtimeclass VpnNamespaceAssignment;

            runtimeclass VpnNamespaceInfo;

            runtimeclass VpnNativeProfile;

            runtimeclass VpnPacketBuffer;

            runtimeclass VpnPacketBufferList;

            runtimeclass VpnPickedCredential;

            runtimeclass VpnPlugInProfile;

            runtimeclass VpnRoute;

            runtimeclass VpnRouteAssignment;

            runtimeclass VpnSystemHealth;

            runtimeclass VpnTrafficFilter;

            runtimeclass VpnTrafficFilterAssignment;
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace Networking
    {
        namespace Vpn
        {
            declare
            {
                interface Windows.Foundation.Collections.IIterable<Windows.Networking.Vpn.IVpnCustomPrompt*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Networking.Vpn.IVpnCustomPromptElement*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Networking.Vpn.IVpnProfile*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Networking.Vpn.VpnAppId*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Networking.Vpn.VpnDomainNameInfo*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Networking.Vpn.VpnNamespaceInfo*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Networking.Vpn.VpnPacketBuffer*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Networking.Vpn.VpnRoute*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Networking.Vpn.VpnTrafficFilter*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Networking.Vpn.IVpnCustomPrompt*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Networking.Vpn.IVpnCustomPromptElement*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Networking.Vpn.IVpnProfile*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Networking.Vpn.VpnAppId*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Networking.Vpn.VpnDomainNameInfo*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Networking.Vpn.VpnNamespaceInfo*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Networking.Vpn.VpnPacketBuffer*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Networking.Vpn.VpnRoute*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Networking.Vpn.VpnTrafficFilter*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Networking.Vpn.IVpnCustomPrompt*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Networking.Vpn.IVpnCustomPromptElement*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Networking.Vpn.IVpnProfile*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Networking.Vpn.VpnAppId*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Networking.Vpn.VpnDomainNameInfo*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Networking.Vpn.VpnNamespaceInfo*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Networking.Vpn.VpnRoute*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Networking.Vpn.VpnTrafficFilter*>;

                interface Windows.Foundation.Collections.IVector<Windows.Networking.Vpn.VpnAppId*>;

                interface Windows.Foundation.Collections.IVector<Windows.Networking.Vpn.VpnDomainNameInfo*>;

                interface Windows.Foundation.Collections.IVector<Windows.Networking.Vpn.VpnNamespaceInfo*>;

                interface Windows.Foundation.Collections.IVector<Windows.Networking.Vpn.VpnRoute*>;

                interface Windows.Foundation.Collections.IVector<Windows.Networking.Vpn.VpnTrafficFilter*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Networking.Vpn.IVpnProfile*>*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Networking.Vpn.VpnCredential*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Networking.Vpn.VpnManagementErrorStatus>;

                interface Windows.Foundation.TypedEventHandler<Windows.Networking.Vpn.VpnChannel*, Windows.Networking.Vpn.VpnChannelActivityEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Networking.Vpn.VpnChannel*, Windows.Networking.Vpn.VpnChannelActivityStateChangedArgs*>;
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace Networking
    {
        namespace Vpn
        {
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum VpnAppIdType
            {
                PackageFamilyName        = 0,
                FullyQualifiedBinaryName = 1,
                FilePath                 = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum VpnAuthenticationMethod
            {
                Mschapv2     = 0,
                Eap          = 1,
                Certificate  = 2,
                PresharedKey = 3
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum VpnChannelActivityEventType
            {
                Idle   = 0,
                Active = 1
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [flags]
            enum VpnChannelRequestCredentialsOptions
            {
                None               = 0x0,
                Retrying           = 0x1,
                UseForSingleSignIn = 0x2
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum VpnCredentialType
            {
                UsernamePassword       = 0,
                UsernameOtpPin         = 1,
                UsernamePasswordAndPin = 2,
                UsernamePasswordChange = 3,
                SmartCard              = 4,
                ProtectedCertificate   = 5,
                UnProtectedCertificate = 6
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum VpnDataPathType
            {
                Send    = 0,
                Receive = 1
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum VpnDomainNameType
            {
                Suffix         = 0,
                FullyQualified = 1,
                Reserved       = 65535
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum VpnIPProtocol
            {
                None     = 0,
                Tcp      = 6,
                Udp      = 17,
                Icmp     = 1,
                Ipv6Icmp = 58,
                Igmp     = 2,
                Pgm      = 113
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum VpnManagementConnectionStatus
            {
                Disconnected  = 0,
                Disconnecting = 1,
                Connected     = 2,
                Connecting    = 3
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum VpnManagementErrorStatus
            {
                Ok                           = 0,
                Other                        = 1,
                InvalidXmlSyntax             = 2,
                ProfileNameTooLong           = 3,
                ProfileInvalidAppId          = 4,
                AccessDenied                 = 5,
                [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                CannotFindProfile            = 6,
                [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                AlreadyDisconnecting         = 7,
                [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                AlreadyConnected             = 8,
                [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                GeneralAuthenticationFailure = 9,
                [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                EapFailure                   = 10,
                [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                SmartCardFailure             = 11,
                [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                CertificateFailure           = 12,
                [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                ServerConfiguration          = 13,
                [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                NoConnection                 = 14,
                [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                ServerConnection             = 15,
                [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                UserNamePassword             = 16,
                [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                DnsNotResolvable             = 17,
                [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                InvalidIP                    = 18
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum VpnNativeProtocolType
            {
                Pptp       = 0,
                L2tp       = 1,
                IpsecIkev2 = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum VpnPacketBufferStatus
            {
                Ok                = 0,
                InvalidBufferSize = 1
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum VpnRoutingPolicyType
            {
                SplitRouting           = 0,
                ForceAllTrafficOverVpn = 1
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnAppId)]
            [uuid(7B06A635-5C58-41D9-94A7-BFBCF1D8CA54)]
            interface IVpnAppId : IInspectable
            {
                [propget] HRESULT Type([out] [retval] Windows.Networking.Vpn.VpnAppIdType* value);
                [propput] HRESULT Type([in] Windows.Networking.Vpn.VpnAppIdType value);
                [propget] HRESULT Value([out] [retval] HSTRING* value);
                [propput] HRESULT Value([in] HSTRING value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnAppId)]
            [uuid(46ADFD2A-0AAB-4FDB-821D-D3DDC919788B)]
            interface IVpnAppIdFactory : IInspectable
            {
                HRESULT Create([in] Windows.Networking.Vpn.VpnAppIdType type, [in] HSTRING value, [out] [retval] Windows.Networking.Vpn.VpnAppId** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnChannel)]
            [uuid(4AC78D07-D1A8-4303-A091-C8D2E0915BC3)]
            interface IVpnChannel : IInspectable
            {
                HRESULT AssociateTransport([in] IInspectable* mainOuterTunnelTransport, [in] IInspectable* optionalOuterTunnelTransport);
                [overload("Start")] HRESULT Start([in] Windows.Foundation.Collections.IVectorView<Windows.Networking.HostName*>* assignedClientIPv4list, [in] Windows.Foundation.Collections.IVectorView<Windows.Networking.HostName*>* assignedClientIPv6list, [in] Windows.Networking.Vpn.VpnInterfaceId* vpnInterfaceId, [in] Windows.Networking.Vpn.VpnRouteAssignment* routeScope, [in] Windows.Networking.Vpn.VpnNamespaceAssignment* namespaceScope, [in] UINT32 mtuSize, [in] UINT32 maxFrameSize, [in] boolean optimizeForLowCostNetwork, [in] IInspectable* mainOuterTunnelTransport, [in] IInspectable* optionalOuterTunnelTransport);
                HRESULT Stop();
                HRESULT RequestCredentials([in] Windows.Networking.Vpn.VpnCredentialType credType, [in] boolean isRetry, [in] boolean isSingleSignOnCredential, [in] Windows.Security.Cryptography.Certificates.Certificate* certificate, [out] [retval] Windows.Networking.Vpn.VpnPickedCredential** credential);
                HRESULT RequestVpnPacketBuffer([in] Windows.Networking.Vpn.VpnDataPathType type, [out] Windows.Networking.Vpn.VpnPacketBuffer** vpnPacketBuffer);
                HRESULT LogDiagnosticMessage([in] HSTRING message);
                [propget] HRESULT Id([out] [retval] UINT32* value);
                [propget] HRESULT Configuration([out] [retval] Windows.Networking.Vpn.VpnChannelConfiguration** value);
                [eventadd] HRESULT ActivityChange([in] Windows.Foundation.TypedEventHandler<Windows.Networking.Vpn.VpnChannel*, Windows.Networking.Vpn.VpnChannelActivityEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT ActivityChange([in] EventRegistrationToken token);
                [propput] HRESULT PlugInContext([in] IInspectable* value);
                [propget] HRESULT PlugInContext([out] [retval] IInspectable** value);
                [propget] HRESULT SystemHealth([out] [retval] Windows.Networking.Vpn.VpnSystemHealth** value);
                HRESULT RequestCustomPrompt([in] Windows.Foundation.Collections.IVectorView<Windows.Networking.Vpn.IVpnCustomPrompt*>* customPrompt);
                HRESULT SetErrorMessage([in] HSTRING message);
                HRESULT SetAllowedSslTlsVersions([in] IInspectable* tunnelTransport, [in] boolean useTls12);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnChannel)]
            [uuid(2255D165-993B-4629-AD60-F1C3F3537F50)]
            interface IVpnChannel2 : IInspectable
            {
                HRESULT StartWithMainTransport([in] Windows.Foundation.Collections.IVectorView<Windows.Networking.HostName*>* assignedClientIPv4list, [in] Windows.Foundation.Collections.IVectorView<Windows.Networking.HostName*>* assignedClientIPv6list, [in] Windows.Networking.Vpn.VpnInterfaceId* vpnInterfaceId, [in] Windows.Networking.Vpn.VpnRouteAssignment* assignedRoutes, [in] Windows.Networking.Vpn.VpnDomainNameAssignment* assignedDomainName, [in] UINT32 mtuSize, [in] UINT32 maxFrameSize, [in] boolean Reserved, [in] IInspectable* mainOuterTunnelTransport);
                HRESULT StartExistingTransports([in] Windows.Foundation.Collections.IVectorView<Windows.Networking.HostName*>* assignedClientIPv4list, [in] Windows.Foundation.Collections.IVectorView<Windows.Networking.HostName*>* assignedClientIPv6list, [in] Windows.Networking.Vpn.VpnInterfaceId* vpnInterfaceId, [in] Windows.Networking.Vpn.VpnRouteAssignment* assignedRoutes, [in] Windows.Networking.Vpn.VpnDomainNameAssignment* assignedDomainName, [in] UINT32 mtuSize, [in] UINT32 maxFrameSize, [in] boolean Reserved);
                [eventadd] HRESULT ActivityStateChange([in] Windows.Foundation.TypedEventHandler<Windows.Networking.Vpn.VpnChannel*, Windows.Networking.Vpn.VpnChannelActivityStateChangedArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT ActivityStateChange([in] EventRegistrationToken token);
                HRESULT GetVpnSendPacketBuffer([out] [retval] Windows.Networking.Vpn.VpnPacketBuffer** vpnSendPacketBuffer);
                HRESULT GetVpnReceivePacketBuffer([out] [retval] Windows.Networking.Vpn.VpnPacketBuffer** vpnReceivePacketBuffer);
                HRESULT RequestCustomPromptAsync([in] Windows.Foundation.Collections.IVectorView<Windows.Networking.Vpn.IVpnCustomPromptElement*>* customPromptElement, [out] [retval] Windows.Foundation.IAsyncAction** action);
                [overload("RequestCredentialsAsync")] HRESULT RequestCredentialsWithCertificateAsync([in] Windows.Networking.Vpn.VpnCredentialType credType, [in] UINT32 credOptions, [in] Windows.Security.Cryptography.Certificates.Certificate* certificate, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Networking.Vpn.VpnCredential*>** credential);
                [overload("RequestCredentialsAsync")] HRESULT RequestCredentialsWithOptionsAsync([in] Windows.Networking.Vpn.VpnCredentialType credType, [in] UINT32 credOptions, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Networking.Vpn.VpnCredential*>** credential);
                [overload("RequestCredentialsAsync")] HRESULT RequestCredentialsSimpleAsync([in] Windows.Networking.Vpn.VpnCredentialType credType, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Networking.Vpn.VpnCredential*>** credential);
                HRESULT TerminateConnection([in] HSTRING message);
                [overload("StartWithTrafficFilter")] HRESULT StartWithTrafficFilter([in] Windows.Foundation.Collections.IVectorView<Windows.Networking.HostName*>* assignedClientIpv4List, [in] Windows.Foundation.Collections.IVectorView<Windows.Networking.HostName*>* assignedClientIpv6List, [in] Windows.Networking.Vpn.VpnInterfaceId* vpnInterfaceId, [in] Windows.Networking.Vpn.VpnRouteAssignment* assignedRoutes, [in] Windows.Networking.Vpn.VpnDomainNameAssignment* assignedNamespace, [in] UINT32 mtuSize, [in] UINT32 maxFrameSize, [in] boolean reserved, [in] IInspectable* mainOuterTunnelTransport, [in] IInspectable* optionalOuterTunnelTransport, [in] Windows.Networking.Vpn.VpnTrafficFilterAssignment* assignedTrafficFilters);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnChannel)]
            [uuid(D7266EDE-2937-419D-9570-486AEBB81803)]
            interface IVpnChannel4 : IInspectable
            {
                HRESULT AddAndAssociateTransport([in] IInspectable* transport, [in] IInspectable* context);
                [overload("StartWithTrafficFilter")] HRESULT StartWithMultipleTransports([in] Windows.Foundation.Collections.IIterable<Windows.Networking.HostName*>* assignedClientIpv4Addresses, [in] Windows.Foundation.Collections.IIterable<Windows.Networking.HostName*>* assignedClientIpv6Addresses, [in] Windows.Networking.Vpn.VpnInterfaceId* vpninterfaceId, [in] Windows.Networking.Vpn.VpnRouteAssignment* assignedRoutes, [in] Windows.Networking.Vpn.VpnDomainNameAssignment* assignedNamespace, [in] UINT32 mtuSize, [in] UINT32 maxFrameSize, [in] boolean reserved, [in] Windows.Foundation.Collections.IIterable<IInspectable*>* transports, [in] Windows.Networking.Vpn.VpnTrafficFilterAssignment* assignedTrafficFilters);
                HRESULT ReplaceAndAssociateTransport([in] IInspectable* transport, [in] IInspectable* context);
                HRESULT StartReconnectingTransport([in] IInspectable* transport, [in] IInspectable* context);
                HRESULT GetSlotTypeForTransportContext([in] IInspectable* context, [out] [retval] Windows.Networking.Sockets.ControlChannelTriggerStatus* slotType);
                [propget] HRESULT CurrentRequestTransportContext([out] [retval] IInspectable** context);
            }

            [contract(Windows.Foundation.UniversalApiContract, 12.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnChannel)]
            [uuid(DE7A0992-8384-4FBC-882C-1FD23124CD3B)]
            interface IVpnChannel5 : IInspectable
            {
                HRESULT AppendVpnReceivePacketBuffer([in] Windows.Networking.Vpn.VpnPacketBuffer* decapsulatedPacketBuffer);
                HRESULT AppendVpnSendPacketBuffer([in] Windows.Networking.Vpn.VpnPacketBuffer* encapsulatedPacketBuffer);
                HRESULT FlushVpnReceivePacketBuffers();
                HRESULT FlushVpnSendPacketBuffers();
            }

            [contract(Windows.Foundation.UniversalApiContract, 13.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnChannel)]
            [uuid(55843696-BD63-49C5-ABCA-5DA77885551A)]
            interface IVpnChannel6 : IInspectable
            {
                HRESULT ActivateForeground([in] HSTRING packageRelativeAppId, [in] Windows.Foundation.Collections.ValueSet* sharedContext, [out] [retval] Windows.Foundation.Collections.ValueSet** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnChannelActivityEventArgs)]
            [uuid(A36C88F2-AFDC-4775-855D-D4AC0A35FC55)]
            interface IVpnChannelActivityEventArgs : IInspectable
            {
                [propget] HRESULT Type([out] [retval] Windows.Networking.Vpn.VpnChannelActivityEventType* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnChannelActivityStateChangedArgs)]
            [uuid(3D750565-FDC0-4BBE-A23B-45FFFC6D97A1)]
            interface IVpnChannelActivityStateChangedArgs : IInspectable
            {
                [propget] HRESULT ActivityState([out] [retval] Windows.Networking.Vpn.VpnChannelActivityEventType* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnChannelConfiguration)]
            [uuid(0E2DDCA2-2012-4FE4-B179-8C652C6D107E)]
            interface IVpnChannelConfiguration : IInspectable
            {
                [propget] HRESULT ServerServiceName([out] [retval] HSTRING* value);
                [propget] HRESULT ServerHostNameList([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Networking.HostName*>** value);
                [propget] HRESULT CustomField([out] [retval] HSTRING* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnChannelConfiguration)]
            [uuid(F30B574C-7824-471C-A118-63DBC93AE4C7)]
            interface IVpnChannelConfiguration2 : IInspectable
            {
                [propget] HRESULT ServerUris([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Foundation.Uri*>** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [uuid(88EB062D-E818-4FFD-98A6-363E3736C95D)]
            interface IVpnChannelStatics : IInspectable
            {
                HRESULT ProcessEventAsync([in] IInspectable* thirdPartyPlugIn, [in] IInspectable* @event);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [uuid(B7E78AF3-A46D-404B-8729-1832522853AC)]
            interface IVpnCredential : IInspectable
            {
                [propget] HRESULT PasskeyCredential([out] [retval] Windows.Security.Credentials.PasswordCredential** value);
                [propget] HRESULT CertificateCredential([out] [retval] Windows.Security.Cryptography.Certificates.Certificate** value);
                [propget] HRESULT AdditionalPin([out] [retval] HSTRING* value);
                [propget] HRESULT OldPasswordCredential([out] [retval] Windows.Security.Credentials.PasswordCredential** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnCustomCheckBox)]
            [uuid(43878753-03C5-4E61-93D7-A957714C4282)]
            interface IVpnCustomCheckBox : IInspectable
                requires
                    Windows.Networking.Vpn.IVpnCustomPrompt
            {
                [propput] HRESULT InitialCheckState([in] boolean value);
                [propget] HRESULT InitialCheckState([out] [retval] boolean* value);
                [propget] HRESULT Checked([out] [retval] boolean* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnCustomComboBox)]
            [uuid(9A24158E-DBA1-4C6F-8270-DCF3C9761C4C)]
            interface IVpnCustomComboBox : IInspectable
                requires
                    Windows.Networking.Vpn.IVpnCustomPrompt
            {
                [propput] HRESULT OptionsText([in] Windows.Foundation.Collections.IVectorView<HSTRING>* value);
                [propget] HRESULT OptionsText([out] [retval] Windows.Foundation.Collections.IVectorView<HSTRING>** value);
                [propget] HRESULT Selected([out] [retval] UINT32* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnCustomEditBox)]
            [uuid(3002D9A0-CFBF-4C0B-8F3C-66F503C20B39)]
            interface IVpnCustomEditBox : IInspectable
                requires
                    Windows.Networking.Vpn.IVpnCustomPrompt
            {
                [propput] HRESULT DefaultText([in] HSTRING value);
                [propget] HRESULT DefaultText([out] [retval] HSTRING* value);
                [propput] HRESULT NoEcho([in] boolean value);
                [propget] HRESULT NoEcho([out] [retval] boolean* value);
                [propget] HRESULT Text([out] [retval] HSTRING* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnCustomErrorBox)]
            [uuid(9EC4EFB2-C942-42AF-B223-588B48328721)]
            interface IVpnCustomErrorBox : IInspectable
                requires
                    Windows.Networking.Vpn.IVpnCustomPrompt
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [uuid(9B2EBE7B-87D5-433C-B4F6-EEE6AA68A244)]
            interface IVpnCustomPrompt : IInspectable
            {
                [propput] HRESULT Label([in] HSTRING value);
                [propget] HRESULT Label([out] [retval] HSTRING* value);
                [propput] HRESULT Compulsory([in] boolean value);
                [propget] HRESULT Compulsory([out] [retval] boolean* value);
                [propput] HRESULT Bordered([in] boolean value);
                [propget] HRESULT Bordered([out] [retval] boolean* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnCustomPromptBooleanInput)]
            [uuid(C4C9A69E-FF47-4527-9F27-A49292019979)]
            interface IVpnCustomPromptBooleanInput : IInspectable
                requires
                    Windows.Networking.Vpn.IVpnCustomPromptElement
            {
                [propput] HRESULT InitialValue([in] boolean value);
                [propget] HRESULT InitialValue([out] [retval] boolean* value);
                [propget] HRESULT Value([out] [retval] boolean* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [uuid(73BD5638-6F04-404D-93DD-50A44924A38B)]
            interface IVpnCustomPromptElement : IInspectable
            {
                [propput] HRESULT DisplayName([in] HSTRING value);
                [propget] HRESULT DisplayName([out] [retval] HSTRING* value);
                [propput] HRESULT Compulsory([in] boolean value);
                [propget] HRESULT Compulsory([out] [retval] boolean* value);
                [propput] HRESULT Emphasized([in] boolean value);
                [propget] HRESULT Emphasized([out] [retval] boolean* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnCustomPromptOptionSelector)]
            [uuid(3B8F34D9-8EC1-4E95-9A4E-7BA64D38F330)]
            interface IVpnCustomPromptOptionSelector : IInspectable
                requires
                    Windows.Networking.Vpn.IVpnCustomPromptElement
            {
                [propget] HRESULT Options([out] [retval] Windows.Foundation.Collections.IVector<HSTRING>** value);
                [propget] HRESULT SelectedIndex([out] [retval] UINT32* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnCustomPromptText)]
            [uuid(3BC8BDEE-3A42-49A3-ABDD-07B2EDEA752D)]
            interface IVpnCustomPromptText : IInspectable
                requires
                    Windows.Networking.Vpn.IVpnCustomPromptElement
            {
                [propput] HRESULT Text([in] HSTRING value);
                [propget] HRESULT Text([out] [retval] HSTRING* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnCustomPromptTextInput)]
            [uuid(C9DA9C75-913C-47D5-88BA-48FC48930235)]
            interface IVpnCustomPromptTextInput : IInspectable
                requires
                    Windows.Networking.Vpn.IVpnCustomPromptElement
            {
                [propput] HRESULT PlaceholderText([in] HSTRING value);
                [propget] HRESULT PlaceholderText([out] [retval] HSTRING* value);
                [propput] HRESULT IsTextHidden([in] boolean value);
                [propget] HRESULT IsTextHidden([out] [retval] boolean* value);
                [propget] HRESULT Text([out] [retval] HSTRING* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnCustomTextBox)]
            [uuid(DAA4C3CA-8F23-4D36-91F1-76D937827942)]
            interface IVpnCustomTextBox : IInspectable
                requires
                    Windows.Networking.Vpn.IVpnCustomPrompt
            {
                [propput] HRESULT DisplayText([in] HSTRING value);
                [propget] HRESULT DisplayText([out] [retval] HSTRING* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnDomainNameAssignment)]
            [uuid(4135B141-CCDB-49B5-9401-039A8AE767E9)]
            interface IVpnDomainNameAssignment : IInspectable
            {
                [propget] HRESULT DomainNameList([out] [retval] Windows.Foundation.Collections.IVector<Windows.Networking.Vpn.VpnDomainNameInfo*>** value);
                [propput] HRESULT ProxyAutoConfigurationUri([in] Windows.Foundation.Uri* value);
                [propget] HRESULT ProxyAutoConfigurationUri([out] [retval] Windows.Foundation.Uri** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnDomainNameInfo)]
            [uuid(AD2EB82F-EA8E-4F7A-843E-1A87E32E1B9A)]
            interface IVpnDomainNameInfo : IInspectable
            {
                [propput] HRESULT DomainName([in] Windows.Networking.HostName* value);
                [propget] HRESULT DomainName([out] [retval] Windows.Networking.HostName** value);
                [propput] HRESULT DomainNameType([in] Windows.Networking.Vpn.VpnDomainNameType value);
                [propget] HRESULT DomainNameType([out] [retval] Windows.Networking.Vpn.VpnDomainNameType* value);
                [propget] HRESULT DnsServers([out] [retval] Windows.Foundation.Collections.IVector<Windows.Networking.HostName*>** value);
                [propget] HRESULT WebProxyServers([out] [retval] Windows.Foundation.Collections.IVector<Windows.Networking.HostName*>** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnDomainNameInfo)]
            [uuid(AB871151-6C53-4828-9883-D886DE104407)]
            interface IVpnDomainNameInfo2 : IInspectable
            {
                [propget] HRESULT WebProxyUris([out] [retval] Windows.Foundation.Collections.IVector<Windows.Foundation.Uri*>** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [uuid(2507BB75-028F-4688-8D3A-C4531DF37DA8)]
            interface IVpnDomainNameInfoFactory : IInspectable
            {
                HRESULT CreateVpnDomainNameInfo([in] HSTRING name, [in] Windows.Networking.Vpn.VpnDomainNameType nameType, [in] Windows.Foundation.Collections.IIterable<Windows.Networking.HostName*>* dnsServerList, [in] Windows.Foundation.Collections.IIterable<Windows.Networking.HostName*>* proxyServerList, [out] [retval] Windows.Networking.Vpn.VpnDomainNameInfo** domainNameInfo);
            }

            [contract(Windows.Foundation.UniversalApiContract, 13.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnForegroundActivatedEventArgs)]
            [uuid(85B465B0-CADB-4D70-AC92-543A24DC9EBC)]
            interface IVpnForegroundActivatedEventArgs : IInspectable
            {
                [propget] HRESULT ProfileName([out] [retval] HSTRING* name);
                [propget] HRESULT SharedContext([out] [retval] Windows.Foundation.Collections.ValueSet** sharedContext);
                [propget] HRESULT ActivationOperation([out] [retval] Windows.Networking.Vpn.VpnForegroundActivationOperation** activationOperation);
            }

            [contract(Windows.Foundation.UniversalApiContract, 13.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnForegroundActivationOperation)]
            [uuid(9E010D57-F17A-4BD5-9B6D-F984F1297D3C)]
            interface IVpnForegroundActivationOperation : IInspectable
            {
                HRESULT Complete([in] Windows.Foundation.Collections.ValueSet* result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnInterfaceId)]
            [uuid(9E2DDCA2-1712-4CE4-B179-8C652C6D1011)]
            interface IVpnInterfaceId : IInspectable
            {
                HRESULT GetAddressInfo([out] UINT32* __idSize, [out] [size_is(, *__idSize)] BYTE** id);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [uuid(9E2DDCA2-1712-4CE4-B179-8C652C6D1000)]
            interface IVpnInterfaceIdFactory : IInspectable
            {
                HRESULT CreateVpnInterfaceId([range(0x00000000, 0x00000008)] [in] UINT32 __addressSize, [in] [size_is(__addressSize)] BYTE* address, [out] [retval] Windows.Networking.Vpn.VpnInterfaceId** vpnInterfaceId);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnManagementAgent)]
            [uuid(193696CD-A5C4-4ABE-852B-785BE4CB3E34)]
            interface IVpnManagementAgent : IInspectable
            {
                HRESULT AddProfileFromXmlAsync([in] HSTRING xml, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Networking.Vpn.VpnManagementErrorStatus>** operation);
                HRESULT AddProfileFromObjectAsync([in] Windows.Networking.Vpn.IVpnProfile* profile, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Networking.Vpn.VpnManagementErrorStatus>** operation);
                HRESULT UpdateProfileFromXmlAsync([in] HSTRING xml, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Networking.Vpn.VpnManagementErrorStatus>** operation);
                HRESULT UpdateProfileFromObjectAsync([in] Windows.Networking.Vpn.IVpnProfile* profile, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Networking.Vpn.VpnManagementErrorStatus>** operation);
                HRESULT GetProfilesAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.Networking.Vpn.IVpnProfile*>*>** operation);
                HRESULT DeleteProfileAsync([in] Windows.Networking.Vpn.IVpnProfile* profile, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Networking.Vpn.VpnManagementErrorStatus>** operation);
                HRESULT ConnectProfileAsync([in] Windows.Networking.Vpn.IVpnProfile* profile, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Networking.Vpn.VpnManagementErrorStatus>** operation);
                HRESULT ConnectProfileWithPasswordCredentialAsync([in] Windows.Networking.Vpn.IVpnProfile* profile, [in] Windows.Security.Credentials.PasswordCredential* passwordCredential, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Networking.Vpn.VpnManagementErrorStatus>** operation);
                HRESULT DisconnectProfileAsync([in] Windows.Networking.Vpn.IVpnProfile* profile, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Networking.Vpn.VpnManagementErrorStatus>** operation);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnNamespaceAssignment)]
            [uuid(D7F7DB18-307D-4C0E-BD62-8FA270BBADD6)]
            interface IVpnNamespaceAssignment : IInspectable
            {
                [propput] HRESULT NamespaceList([in] Windows.Foundation.Collections.IVector<Windows.Networking.Vpn.VpnNamespaceInfo*>* value);
                [propget] HRESULT NamespaceList([out] [retval] Windows.Foundation.Collections.IVector<Windows.Networking.Vpn.VpnNamespaceInfo*>** value);
                [propput] HRESULT ProxyAutoConfigUri([in] Windows.Foundation.Uri* value);
                [propget] HRESULT ProxyAutoConfigUri([out] [retval] Windows.Foundation.Uri** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnNamespaceInfo)]
            [uuid(30EDFB43-444F-44C5-8167-A35A91F1AF94)]
            interface IVpnNamespaceInfo : IInspectable
            {
                [propput] HRESULT Namespace([in] HSTRING value);
                [propget] HRESULT Namespace([out] [retval] HSTRING* value);
                [propput] HRESULT DnsServers([in] Windows.Foundation.Collections.IVector<Windows.Networking.HostName*>* value);
                [propget] HRESULT DnsServers([out] [retval] Windows.Foundation.Collections.IVector<Windows.Networking.HostName*>** value);
                [propput] HRESULT WebProxyServers([in] Windows.Foundation.Collections.IVector<Windows.Networking.HostName*>* value);
                [propget] HRESULT WebProxyServers([out] [retval] Windows.Foundation.Collections.IVector<Windows.Networking.HostName*>** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [uuid(CB3E951A-B0CE-442B-ACBB-5F99B202C31C)]
            interface IVpnNamespaceInfoFactory : IInspectable
            {
                HRESULT CreateVpnNamespaceInfo([in] HSTRING name, [in] Windows.Foundation.Collections.IVector<Windows.Networking.HostName*>* dnsServerList, [in] Windows.Foundation.Collections.IVector<Windows.Networking.HostName*>* proxyServerList, [out] [retval] Windows.Networking.Vpn.VpnNamespaceInfo** namespaceInfo);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnNativeProfile)]
            [uuid(A4AEE29E-6417-4333-9842-F0A66DB69802)]
            interface IVpnNativeProfile : IInspectable
                requires
                    Windows.Networking.Vpn.IVpnProfile
            {
                [propget] HRESULT Servers([out] [retval] Windows.Foundation.Collections.IVector<HSTRING>** value);
                [propget] HRESULT RoutingPolicyType([out] [retval] Windows.Networking.Vpn.VpnRoutingPolicyType* value);
                [propput] HRESULT RoutingPolicyType([in] Windows.Networking.Vpn.VpnRoutingPolicyType value);
                [propget] HRESULT NativeProtocolType([out] [retval] Windows.Networking.Vpn.VpnNativeProtocolType* value);
                [propput] HRESULT NativeProtocolType([in] Windows.Networking.Vpn.VpnNativeProtocolType value);
                [propget] HRESULT UserAuthenticationMethod([out] [retval] Windows.Networking.Vpn.VpnAuthenticationMethod* value);
                [propput] HRESULT UserAuthenticationMethod([in] Windows.Networking.Vpn.VpnAuthenticationMethod value);
                [propget] HRESULT TunnelAuthenticationMethod([out] [retval] Windows.Networking.Vpn.VpnAuthenticationMethod* value);
                [propput] HRESULT TunnelAuthenticationMethod([in] Windows.Networking.Vpn.VpnAuthenticationMethod value);
                [propget] HRESULT EapConfiguration([out] [retval] HSTRING* Value);
                [propput] HRESULT EapConfiguration([in] HSTRING value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnNativeProfile)]
            [uuid(0FEC2467-CDB5-4AC7-B5A3-0AFB5EC47682)]
            interface IVpnNativeProfile2 : IInspectable
            {
                [propget] HRESULT RequireVpnClientAppUI([out] [retval] boolean* value);
                [propput] HRESULT RequireVpnClientAppUI([in] boolean value);
                [propget] HRESULT ConnectionStatus([out] [retval] Windows.Networking.Vpn.VpnManagementConnectionStatus* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnPacketBuffer)]
            [uuid(C2F891FC-4D5C-4A63-B70D-4E307EACCE55)]
            interface IVpnPacketBuffer : IInspectable
            {
                [propget] HRESULT Buffer([out] [retval] Windows.Storage.Streams.Buffer** value);
                [propput] HRESULT Status([in] Windows.Networking.Vpn.VpnPacketBufferStatus value);
                [propget] HRESULT Status([out] [retval] Windows.Networking.Vpn.VpnPacketBufferStatus* value);
                [propput] HRESULT TransportAffinity([in] UINT32 value);
                [propget] HRESULT TransportAffinity([out] [retval] UINT32* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnPacketBuffer)]
            [uuid(665E91F0-8805-4BF5-A619-2E84882E6B4F)]
            interface IVpnPacketBuffer2 : IInspectable
            {
                [propget] HRESULT AppId([out] [retval] Windows.Networking.Vpn.VpnAppId** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnPacketBuffer)]
            [uuid(E256072F-107B-4C40-B127-5BC53E0AD960)]
            interface IVpnPacketBuffer3 : IInspectable
            {
                [propput] HRESULT TransportContext([in] IInspectable* value);
                [propget] HRESULT TransportContext([out] [retval] IInspectable** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [uuid(9E2DDCA2-1712-4CE4-B179-8C652C6D9999)]
            interface IVpnPacketBufferFactory : IInspectable
            {
                HRESULT CreateVpnPacketBuffer([in] Windows.Networking.Vpn.VpnPacketBuffer* parentBuffer, [in] UINT32 offset, [in] UINT32 length, [out] [retval] Windows.Networking.Vpn.VpnPacketBuffer** vpnPacketBuffer);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnPacketBufferList)]
            [uuid(C2F891FC-4D5C-4A63-B70D-4E307EACCE77)]
            interface IVpnPacketBufferList : IInspectable
                requires
                    Windows.Foundation.Collections.IIterable<Windows.Networking.Vpn.VpnPacketBuffer*>
            {
                HRESULT Append([in] Windows.Networking.Vpn.VpnPacketBuffer* nextVpnPacketBuffer);
                HRESULT AddAtBegin([in] Windows.Networking.Vpn.VpnPacketBuffer* nextVpnPacketBuffer);
                HRESULT RemoveAtEnd([out] [retval] Windows.Networking.Vpn.VpnPacketBuffer** nextVpnPacketBuffer);
                HRESULT RemoveAtBegin([out] [retval] Windows.Networking.Vpn.VpnPacketBuffer** nextVpnPacketBuffer);
                HRESULT Clear();
                [propput] HRESULT Status([in] Windows.Networking.Vpn.VpnPacketBufferStatus value);
                [propget] HRESULT Status([out] [retval] Windows.Networking.Vpn.VpnPacketBufferStatus* value);
                [propget] HRESULT Size([out] [retval] UINT32* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnPacketBufferList)]
            [uuid(3E7ACFE5-EA1E-482A-8D98-C065F57D89EA)]
            interface IVpnPacketBufferList2 : IInspectable
                requires
                    Windows.Foundation.Collections.IIterable<Windows.Networking.Vpn.VpnPacketBuffer*>
            {
                HRESULT AddLeadingPacket([in] Windows.Networking.Vpn.VpnPacketBuffer* nextVpnPacketBuffer);
                HRESULT RemoveLeadingPacket([out] [retval] Windows.Networking.Vpn.VpnPacketBuffer** nextVpnPacketBuffer);
                HRESULT AddTrailingPacket([in] Windows.Networking.Vpn.VpnPacketBuffer* nextVpnPacketBuffer);
                HRESULT RemoveTrailingPacket([out] [retval] Windows.Networking.Vpn.VpnPacketBuffer** nextVpnPacketBuffer);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnPickedCredential)]
            [uuid(9A793AC7-8854-4E52-AD97-24DD9A842BCE)]
            interface IVpnPickedCredential : IInspectable
            {
                [propget] HRESULT PasskeyCredential([out] [retval] Windows.Security.Credentials.PasswordCredential** value);
                [propget] HRESULT AdditionalPin([out] [retval] HSTRING* value);
                [propget] HRESULT OldPasswordCredential([out] [retval] Windows.Security.Credentials.PasswordCredential** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [uuid(CEB78D07-D0A8-4703-A091-C8C2C0915BC4)]
            interface IVpnPlugIn : IInspectable
            {
                HRESULT Connect([in] Windows.Networking.Vpn.VpnChannel* channel);
                HRESULT Disconnect([in] Windows.Networking.Vpn.VpnChannel* channel);
                HRESULT GetKeepAlivePayload([in] Windows.Networking.Vpn.VpnChannel* channel, [out] Windows.Networking.Vpn.VpnPacketBuffer** keepAlivePacket);
                HRESULT Encapsulate([in] Windows.Networking.Vpn.VpnChannel* channel, [in] Windows.Networking.Vpn.VpnPacketBufferList* packets, [in] Windows.Networking.Vpn.VpnPacketBufferList* encapulatedPackets);
                HRESULT Decapsulate([in] Windows.Networking.Vpn.VpnChannel* channel, [in] Windows.Networking.Vpn.VpnPacketBuffer* encapBuffer, [in] Windows.Networking.Vpn.VpnPacketBufferList* decapsulatedPackets, [in] Windows.Networking.Vpn.VpnPacketBufferList* controlPacketsToSend);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnPlugInProfile)]
            [uuid(0EDF0DA4-4F00-4589-8D7B-4BF988F6542C)]
            interface IVpnPlugInProfile : IInspectable
                requires
                    Windows.Networking.Vpn.IVpnProfile
            {
                [propget] HRESULT ServerUris([out] [retval] Windows.Foundation.Collections.IVector<Windows.Foundation.Uri*>** value);
                [propget] HRESULT CustomConfiguration([out] [retval] HSTRING* value);
                [propput] HRESULT CustomConfiguration([in] HSTRING value);
                [propget] HRESULT VpnPluginPackageFamilyName([out] [retval] HSTRING* value);
                [propput] HRESULT VpnPluginPackageFamilyName([in] HSTRING value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnPlugInProfile)]
            [uuid(611C4892-CF94-4AD6-BA99-00F4FF34565E)]
            interface IVpnPlugInProfile2 : IInspectable
                requires
                    Windows.Networking.Vpn.IVpnProfile
            {
                [propget] HRESULT RequireVpnClientAppUI([out] [retval] boolean* value);
                [propput] HRESULT RequireVpnClientAppUI([in] boolean value);
                [propget] HRESULT ConnectionStatus([out] [retval] Windows.Networking.Vpn.VpnManagementConnectionStatus* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 15.0)]
            [uuid(9D5A1092-BB46-4D34-9D88-F217893076F4)]
            interface IVpnPlugInReconnectTransport : IInspectable
            {
                HRESULT ReconnectTransport([in] Windows.Networking.Vpn.VpnChannel* channel, [in] IInspectable* context);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [uuid(7875B751-B0D7-43DB-8A93-D3FE2479E56A)]
            interface IVpnProfile : IInspectable
            {
                [propget] HRESULT ProfileName([out] [retval] HSTRING* value);
                [propput] HRESULT ProfileName([in] HSTRING value);
                [propget] HRESULT AppTriggers([out] [retval] Windows.Foundation.Collections.IVector<Windows.Networking.Vpn.VpnAppId*>** value);
                [propget] HRESULT Routes([out] [retval] Windows.Foundation.Collections.IVector<Windows.Networking.Vpn.VpnRoute*>** value);
                [propget] HRESULT DomainNameInfoList([out] [retval] Windows.Foundation.Collections.IVector<Windows.Networking.Vpn.VpnDomainNameInfo*>** value);
                [propget] HRESULT TrafficFilters([out] [retval] Windows.Foundation.Collections.IVector<Windows.Networking.Vpn.VpnTrafficFilter*>** value);
                [propget] HRESULT RememberCredentials([out] [retval] boolean* value);
                [propput] HRESULT RememberCredentials([in] boolean value);
                [propget] HRESULT AlwaysOn([out] [retval] boolean* value);
                [propput] HRESULT AlwaysOn([in] boolean value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnRoute)]
            [uuid(B5731B83-0969-4699-938E-7776DB29CFB3)]
            interface IVpnRoute : IInspectable
            {
                [propput] HRESULT Address([in] Windows.Networking.HostName* value);
                [propget] HRESULT Address([out] [retval] Windows.Networking.HostName** value);
                [propput] HRESULT PrefixSize([in] [range(0x00000000, 0x00000080)] BYTE value);
                [propget] HRESULT PrefixSize([out] [retval] BYTE* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnRouteAssignment)]
            [uuid(DB64DE22-CE39-4A76-9550-F61039F80E48)]
            interface IVpnRouteAssignment : IInspectable
            {
                [propput] HRESULT Ipv4InclusionRoutes([in] Windows.Foundation.Collections.IVector<Windows.Networking.Vpn.VpnRoute*>* value);
                [propput] HRESULT Ipv6InclusionRoutes([in] Windows.Foundation.Collections.IVector<Windows.Networking.Vpn.VpnRoute*>* value);
                [propget] HRESULT Ipv4InclusionRoutes([out] [retval] Windows.Foundation.Collections.IVector<Windows.Networking.Vpn.VpnRoute*>** value);
                [propget] HRESULT Ipv6InclusionRoutes([out] [retval] Windows.Foundation.Collections.IVector<Windows.Networking.Vpn.VpnRoute*>** value);
                [propput] HRESULT Ipv4ExclusionRoutes([in] Windows.Foundation.Collections.IVector<Windows.Networking.Vpn.VpnRoute*>* value);
                [propput] HRESULT Ipv6ExclusionRoutes([in] Windows.Foundation.Collections.IVector<Windows.Networking.Vpn.VpnRoute*>* value);
                [propget] HRESULT Ipv4ExclusionRoutes([out] [retval] Windows.Foundation.Collections.IVector<Windows.Networking.Vpn.VpnRoute*>** value);
                [propget] HRESULT Ipv6ExclusionRoutes([out] [retval] Windows.Foundation.Collections.IVector<Windows.Networking.Vpn.VpnRoute*>** value);
                [propput] HRESULT ExcludeLocalSubnets([in] boolean value);
                [propget] HRESULT ExcludeLocalSubnets([out] [retval] boolean* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [uuid(BDEAB5FF-45CF-4B99-83FB-DB3BC2672B02)]
            interface IVpnRouteFactory : IInspectable
            {
                HRESULT CreateVpnRoute([in] Windows.Networking.HostName* address, [in] [range(0x00000000, 0x00000080)] BYTE prefixSize, [out] [retval] Windows.Networking.Vpn.VpnRoute** route);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnSystemHealth)]
            [uuid(99A8F8AF-C0EE-4E75-817A-F231AEE5123D)]
            interface IVpnSystemHealth : IInspectable
            {
                [propget] HRESULT StatementOfHealth([out] [retval] Windows.Storage.Streams.Buffer** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnTrafficFilter)]
            [uuid(2F691B60-6C9F-47F5-AC36-BB1B042E2C50)]
            interface IVpnTrafficFilter : IInspectable
            {
                [propget] HRESULT AppId([out] [retval] Windows.Networking.Vpn.VpnAppId** value);
                [propput] HRESULT AppId([in] Windows.Networking.Vpn.VpnAppId* value);
                [propget] HRESULT AppClaims([out] [retval] Windows.Foundation.Collections.IVector<HSTRING>** value);
                [propget] HRESULT Protocol([out] [retval] Windows.Networking.Vpn.VpnIPProtocol* value);
                [propput] HRESULT Protocol([in] Windows.Networking.Vpn.VpnIPProtocol value);
                [propget] HRESULT LocalPortRanges([out] [retval] Windows.Foundation.Collections.IVector<HSTRING>** value);
                [propget] HRESULT RemotePortRanges([out] [retval] Windows.Foundation.Collections.IVector<HSTRING>** value);
                [propget] HRESULT LocalAddressRanges([out] [retval] Windows.Foundation.Collections.IVector<HSTRING>** value);
                [propget] HRESULT RemoteAddressRanges([out] [retval] Windows.Foundation.Collections.IVector<HSTRING>** value);
                [propget] HRESULT RoutingPolicyType([out] [retval] Windows.Networking.Vpn.VpnRoutingPolicyType* value);
                [propput] HRESULT RoutingPolicyType([in] Windows.Networking.Vpn.VpnRoutingPolicyType value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnTrafficFilterAssignment)]
            [uuid(56CCD45C-E664-471E-89CD-601603B9E0F3)]
            interface IVpnTrafficFilterAssignment : IInspectable
            {
                [propget] HRESULT TrafficFilterList([out] [retval] Windows.Foundation.Collections.IVector<Windows.Networking.Vpn.VpnTrafficFilter*>** value);
                [propget] HRESULT AllowOutbound([out] [retval] boolean* value);
                [propput] HRESULT AllowOutbound([in] boolean value);
                [propget] HRESULT AllowInbound([out] [retval] boolean* value);
                [propput] HRESULT AllowInbound([in] boolean value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Networking.Vpn.VpnTrafficFilter)]
            [uuid(480D41D5-7F99-474C-86EE-96DF168318F1)]
            interface IVpnTrafficFilterFactory : IInspectable
            {
                HRESULT Create([in] Windows.Networking.Vpn.VpnAppId* appId, [out] [retval] Windows.Networking.Vpn.VpnTrafficFilter** result);
            }

            [activatable(Windows.Networking.Vpn.IVpnAppIdFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(mta)]
            runtimeclass VpnAppId
            {
                [default] interface Windows.Networking.Vpn.IVpnAppId;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Networking.Vpn.IVpnChannelStatics, Windows.Foundation.UniversalApiContract, 1.0)]
            [threading(mta)]
            runtimeclass VpnChannel
            {
                [default] interface Windows.Networking.Vpn.IVpnChannel;
                [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Networking.Vpn.IVpnChannel2;
                [contract(Windows.Foundation.UniversalApiContract, 6.0)] interface Windows.Networking.Vpn.IVpnChannel4;
                [contract(Windows.Foundation.UniversalApiContract, 12.0)] interface Windows.Networking.Vpn.IVpnChannel5;
                [contract(Windows.Foundation.UniversalApiContract, 13.0)] interface Windows.Networking.Vpn.IVpnChannel6;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(mta)]
            runtimeclass VpnChannelActivityEventArgs
            {
                [default] interface Windows.Networking.Vpn.IVpnChannelActivityEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(mta)]
            runtimeclass VpnChannelActivityStateChangedArgs
            {
                [default] interface Windows.Networking.Vpn.IVpnChannelActivityStateChangedArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(mta)]
            runtimeclass VpnChannelConfiguration
            {
                [default] interface Windows.Networking.Vpn.IVpnChannelConfiguration;
                [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Networking.Vpn.IVpnChannelConfiguration2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(mta)]
            runtimeclass VpnCredential
            {
                [default] interface Windows.Networking.Vpn.IVpnCredential;
            }

            [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(mta)]
            runtimeclass VpnCustomCheckBox
            {
                [default] interface Windows.Networking.Vpn.IVpnCustomCheckBox;
                interface Windows.Networking.Vpn.IVpnCustomPrompt;
            }

            [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(mta)]
            runtimeclass VpnCustomComboBox
            {
                [default] interface Windows.Networking.Vpn.IVpnCustomComboBox;
                interface Windows.Networking.Vpn.IVpnCustomPrompt;
            }

            [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(mta)]
            runtimeclass VpnCustomEditBox
            {
                [default] interface Windows.Networking.Vpn.IVpnCustomEditBox;
                interface Windows.Networking.Vpn.IVpnCustomPrompt;
            }

            [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(mta)]
            runtimeclass VpnCustomErrorBox
            {
                [default] interface Windows.Networking.Vpn.IVpnCustomErrorBox;
                interface Windows.Networking.Vpn.IVpnCustomPrompt;
            }

            [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(mta)]
            runtimeclass VpnCustomPromptBooleanInput
            {
                [default] interface Windows.Networking.Vpn.IVpnCustomPromptBooleanInput;
                interface Windows.Networking.Vpn.IVpnCustomPromptElement;
            }

            [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(mta)]
            runtimeclass VpnCustomPromptOptionSelector
            {
                [default] interface Windows.Networking.Vpn.IVpnCustomPromptOptionSelector;
                interface Windows.Networking.Vpn.IVpnCustomPromptElement;
            }

            [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(mta)]
            runtimeclass VpnCustomPromptText
            {
                [default] interface Windows.Networking.Vpn.IVpnCustomPromptText;
                interface Windows.Networking.Vpn.IVpnCustomPromptElement;
            }

            [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(mta)]
            runtimeclass VpnCustomPromptTextInput
            {
                [default] interface Windows.Networking.Vpn.IVpnCustomPromptTextInput;
                interface Windows.Networking.Vpn.IVpnCustomPromptElement;
            }

            [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(mta)]
            runtimeclass VpnCustomTextBox
            {
                [default] interface Windows.Networking.Vpn.IVpnCustomTextBox;
                interface Windows.Networking.Vpn.IVpnCustomPrompt;
            }

            [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(mta)]
            runtimeclass VpnDomainNameAssignment
            {
                [default] interface Windows.Networking.Vpn.IVpnDomainNameAssignment;
            }

            [activatable(Windows.Networking.Vpn.IVpnDomainNameInfoFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(mta)]
            runtimeclass VpnDomainNameInfo
            {
                [default] interface Windows.Networking.Vpn.IVpnDomainNameInfo;
                [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.Networking.Vpn.IVpnDomainNameInfo2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 13.0)]
            [marshaling_behavior(agile)]
            runtimeclass VpnForegroundActivatedEventArgs
            {
                [default] interface Windows.Networking.Vpn.IVpnForegroundActivatedEventArgs;
                interface Windows.ApplicationModel.Activation.IActivatedEventArgs;
                interface Windows.ApplicationModel.Activation.IActivatedEventArgsWithUser;
            }

            [contract(Windows.Foundation.UniversalApiContract, 13.0)]
            [marshaling_behavior(agile)]
            runtimeclass VpnForegroundActivationOperation
            {
                [default] interface Windows.Networking.Vpn.IVpnForegroundActivationOperation;
            }

            [activatable(Windows.Networking.Vpn.IVpnInterfaceIdFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(mta)]
            runtimeclass VpnInterfaceId
            {
                [default] interface Windows.Networking.Vpn.IVpnInterfaceId;
            }

            [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(mta)]
            runtimeclass VpnManagementAgent
            {
                [default] interface Windows.Networking.Vpn.IVpnManagementAgent;
            }

            [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(mta)]
            runtimeclass VpnNamespaceAssignment
            {
                [default] interface Windows.Networking.Vpn.IVpnNamespaceAssignment;
            }

            [activatable(Windows.Networking.Vpn.IVpnNamespaceInfoFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(mta)]
            runtimeclass VpnNamespaceInfo
            {
                [default] interface Windows.Networking.Vpn.IVpnNamespaceInfo;
            }

            [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(mta)]
            runtimeclass VpnNativeProfile
            {
                [default] interface Windows.Networking.Vpn.IVpnNativeProfile;
                interface Windows.Networking.Vpn.IVpnProfile;
                [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.Networking.Vpn.IVpnNativeProfile2;
            }

            [activatable(Windows.Networking.Vpn.IVpnPacketBufferFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(mta)]
            runtimeclass VpnPacketBuffer
            {
                [default] interface Windows.Networking.Vpn.IVpnPacketBuffer;
                [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Networking.Vpn.IVpnPacketBuffer2;
                [contract(Windows.Foundation.UniversalApiContract, 6.0)] interface Windows.Networking.Vpn.IVpnPacketBuffer3;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(mta)]
            runtimeclass VpnPacketBufferList
            {
                [default] interface Windows.Networking.Vpn.IVpnPacketBufferList;
                interface Windows.Foundation.Collections.IIterable<Windows.Networking.Vpn.VpnPacketBuffer*>;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(mta)]
            runtimeclass VpnPickedCredential
            {
                [default] interface Windows.Networking.Vpn.IVpnPickedCredential;
            }

            [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(mta)]
            runtimeclass VpnPlugInProfile
            {
                [default] interface Windows.Networking.Vpn.IVpnPlugInProfile;
                interface Windows.Networking.Vpn.IVpnProfile;
                [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.Networking.Vpn.IVpnPlugInProfile2;
            }

            [activatable(Windows.Networking.Vpn.IVpnRouteFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(mta)]
            runtimeclass VpnRoute
            {
                [default] interface Windows.Networking.Vpn.IVpnRoute;
            }

            [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(mta)]
            runtimeclass VpnRouteAssignment
            {
                [default] interface Windows.Networking.Vpn.IVpnRouteAssignment;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(mta)]
            runtimeclass VpnSystemHealth
            {
                [default] interface Windows.Networking.Vpn.IVpnSystemHealth;
            }

            [activatable(Windows.Networking.Vpn.IVpnTrafficFilterFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(mta)]
            runtimeclass VpnTrafficFilter
            {
                [default] interface Windows.Networking.Vpn.IVpnTrafficFilter;
            }

            [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(mta)]
            runtimeclass VpnTrafficFilterAssignment
            {
                [default] interface Windows.Networking.Vpn.IVpnTrafficFilterAssignment;
            }
        }
    }
}
