---
title: NEVPNConnection
framework: networkextension
role: symbol
role_heading: Class
path: networkextension/nevpnconnection
---

# NEVPNConnection

An object to start and stop a Personal VPN connection and get its status.

## Declaration

```swift
class NEVPNConnection
```

## Overview

Overview NEVPNConnection objects are not instantiated directly. Instead, each NEVPNManager object has an associated NEVPNConnection object as a read-only property. The NEVPNConnection class provides methods for starting and stopping the VPN programmatically. The other way that the VPN can be started and stopped is through VPN On Demand. See the onDemandRules property in NEVPNManager and NEOnDemandRule. Instances of this class are thread safe.

## Topics

### Controlling the VPN connection

- [startVPNTunnel()](networkextension/nevpnconnection/startvpntunnel().md)
- [startVPNTunnel(options:)](networkextension/nevpnconnection/startvpntunnel(options:).md)
- [NEVPNConnectionStartOptionUsername](networkextension/nevpnconnectionstartoptionusername.md)
- [NEVPNConnectionStartOptionPassword](networkextension/nevpnconnectionstartoptionpassword.md)
- [stopVPNTunnel()](networkextension/nevpnconnection/stopvpntunnel().md)

### Getting VPN connection status

- [manager](networkextension/nevpnconnection/manager.md)
- [status](networkextension/nevpnconnection/status.md)
- [NEVPNStatus](networkextension/nevpnstatus.md)
- [connectedDate](networkextension/nevpnconnection/connecteddate.md)

### Notifications

- [NEVPNStatusDidChange](foundation/nsnotification/name-swift.struct/nevpnstatusdidchange.md)

### Handling errors

- [fetchLastDisconnectError(completionHandler:)](networkextension/nevpnconnection/fetchlastdisconnecterror(completionhandler:).md)
- [NEVPNConnectionErrorDomain](networkextension/nevpnconnectionerrordomain.md)
- [NEVPNConnectionError](networkextension/nevpnconnectionerror.md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Inherited By

- [NETunnelProviderSession](networkextension/netunnelprovidersession.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### VPN control

- [NETunnelProviderSession](networkextension/netunnelprovidersession.md)
