### startProxy(options:completionHandler:)
Source: https://developer.apple.com/documentation/networkextension/nednsproxyprovider/startproxy%28options%3Acompletionhandler%3A%29
Starts the DNS proxy by performing necessary setup steps for handling network data flows.
```APIDOC
## startProxy(options:completionHandler:)
### Description
Starts the DNS proxy. Subclasses of NEDNSProxyProvider must override this method to perform any necessary steps to ready the proxy for handling flows of network data.
### Parameters
#### Parameters
- **options** ([String : Any]?) - Optional - A dictionary defined as part of a device configuration profile or modified via NEDNSProxyManager.
- **completionHandler** (@escaping @Sendable ((any Error)?) -> Void) - Required - A block executed when the proxy is fully established or fails to start.
### Request Example
```swift
func startProxy(
options: [String : Any]? = nil,
completionHandler: @escaping @Sendable ((any Error)?) -> Void
)
```
### Response
#### Success Response
- **error** (nil) - Indicates the proxy was successfully established.
```
--------------------------------
### start()
Source: https://developer.apple.com/documentation/networkextension/nehotspotauthenticationprovider/start%28%29
Tells the extension to start the authentication provider in response to a request from the framework.
```APIDOC
## start()
### Description
Tells the extension to start the authentication provider, in response to a request from the framework. Use this method to prepare your provider to handle future calls to handleCommand(_:).
### Method
async
### Return Value
- **Bool** - true if the provider started successfully; false, otherwise.
```
--------------------------------
### Instance Method: start()
Source: https://developer.apple.com/documentation/networkextension/neapppushprovider/start%28%29
Indicates that the framework has started the provider. Subclasses must override this method to create a connection with their server.
```APIDOC
## start()
### Description
Indicates that the framework has started the provider. An NEAppPushProvider subclass must override this method to create a connection with its server.
### Method
Instance Method
### Availability
- iOS 15.0+
- iPadOS 15.0+
- Mac Catalyst 15.0+
- visionOS 1.0+
### Declaration
```func start()```
```
--------------------------------
### start(completionHandler:) Method
Source: https://developer.apple.com/documentation/networkextension/neapppushprovider/start%28completionhandler%3A%29
The start(completionHandler:) method is an instance method used to indicate that the framework has started the provider and provides a completion handler for subclasses to signal their readiness.
```APIDOC
## start(completionHandler:)
### Description
Indicates that the framework has started the provider, and provides a completion handler for subclasses to signal their readiness. An NEAppPushProvider subclass must override this method to create a connection with its server.
### Method
Instance Method
### Parameters
- **completionHandler** (closure/block) - Required - A Swift closure or ObjectiveC block for your provider subclass to call after it begins connecting to the server. If you can’t connect, pass a non-nil error that describes the error, otherwise pass nil.
### Request Example
```swift
func start(completionHandler: @escaping ((any Error)?) -> Void)
```
```
--------------------------------
### Start Push Provider Extension
Source: https://developer.apple.com/documentation/networkextension/maintaining-a-reliable-network-connection
Implement the `start(completionHandler:)` method in your `NEAppPushProvider` extension to establish a connection to your server. Ensure the provider configuration includes the host, and handle potential connection errors.
```swift
override func start(completionHandler: @escaping (Error?) -> Void) {
guard let host = providerConfiguration?["host"] as? String else {
let error = MyPushProviderError("Provider configuration is missing value for key: `host`")
completionHandler(error)
return
}
myChannel.setHost(host)
myChannel.connect()
completionHandler(nil)
}
```
--------------------------------
### Define start provider methods
Source: https://developer.apple.com/documentation/networkextension/neapppushprovider/handletimerevent%28%29
Methods used to signal the start of the provider, with an optional completion handler for readiness.
```swift
func start()
```
```swift
func start(completionHandler: ((any Error)?) -> Void)
```
--------------------------------
### Install Swift Protobuf
Source: https://developer.apple.com/documentation/networkextension/using-the-bloom-filter-tool
Use Homebrew to install the protoc utility required for the project's Protobuf serialization build phase.
```shell
brew install swift-protobuf
```
--------------------------------
### Start NEAppPushProvider
Source: https://developer.apple.com/documentation/networkextension/neapppushprovider/start%28completionhandler%3A%29
This method indicates that the framework has started the provider. It is a related method for managing the provider's lifecycle.
```swift
func start()
```
--------------------------------
### NEURLFilterControlProvider start()
Source: https://developer.apple.com/documentation/networkextension/neurlfiltercontrolprovider/start%28%29
Prepares the filter to start, in response to a call from the framework. Override this method in your conformance to NEURLFilterControlProvider and perform whatever steps are necessary to prepare for fetching pre-filter data.
```APIDOC
## Instance Method
# start()
### Description
Prepares the filter to start, in response to a call from the framework.
### Method Signature
```swift
func start() async throws
```
### Availability
iOS 26.0+ iPadOS 26.0+ Mac Catalyst 26.0+ macOS 26.0+
### Discussion
Override this method in your conformance to `NEURLFilterControlProvider` and perform whatever steps are necessary to prepare for fetching pre-filter data.
### See Also
- `func stop(reason: NEProviderStopReason) async throws`
Prepares the filter to stop, in response to a call from the framework.
```
--------------------------------
### startSystemExtensionMode()
Source: https://developer.apple.com/documentation/networkextension/neprovider/startsystemextensionmode%28%29
Starts the Network Extension machinery from inside a System Extension. Call this method as early as possible after your system extension starts.
```APIDOC
## startSystemExtensionMode()
### Description
Starts the Network Extension machinery from inside a System Extension.
### Method
`class func`
### Endpoint
N/A (This is a class method)
### Discussion
Call this method as early as possible after your system extension starts. Once called, this class method causes your system extension to start handling requests from the Network Extension session manager daemon to instantiate appropriate `NEProvider` subclass instances. The system extension must declare a mapping of Network Extension extension points to `NEProvider` subclass instances in its `Info.plist`.
### Request Body
N/A
### Response
N/A (This method initiates internal system processes)
### Example
```swift
import NetworkExtension
// Inside your system extension's main entry point
func main() {
NEAppProxyProvider.startSystemExtensionMode()
// Or other NEProvider subclasses depending on your extension type
}
```
### Info.plist Configuration Example
```xml
NetworkExtension
NEProviderClasses
com.apple.networkextension.app-proxy
$(PRODUCT_MODULE_NAME).AppProxyProvider
com.apple.networkextension.filter-data
$(PRODUCT_MODULE_NAME).FilterDataProvider
```
```
--------------------------------
### Start the network proxy
Source: https://developer.apple.com/documentation/networkextension/neappproxyprovider/startproxy%28options%3Acompletionhandler%3A%29
Two variants for starting the proxy: one using a completion handler and one using Swift concurrency.
```Swift
func startProxy(
options: [String : Any]? = nil,
completionHandler: @escaping @Sendable ((any Error)?) -> Void
)
```
```Swift
func startProxy(options: [String : Any]? = nil) async throws
```
--------------------------------
### Start the container system
Source: https://developer.apple.com/documentation/networkextension/setting-up-a-pir-server-for-url-filtering
Initializes the container environment required for the PIR server.
```bash
container system start
```
--------------------------------
### Start Network Extension Mode
Source: https://developer.apple.com/documentation/networkextension/neprovider/startsystemextensionmode%28%29
Call this method as early as possible after your system extension starts. It causes your system extension to start handling requests from the Network Extension session manager daemon.
```swift
class func startSystemExtensionMode()
```
--------------------------------
### Start the network proxy
Source: https://developer.apple.com/documentation/networkextension/neappproxyprovider/cancelproxywitherror%28_%3A%29
Initiates the network proxy with optional configuration.
```swift
func startProxy(options: [String : Any]?, completionHandler: ((any Error)?) -> Void)
```
--------------------------------
### Start URL Filter
Source: https://developer.apple.com/documentation/networkextension/neurlfiltercontrolprovider/stop%28reason%3A%29
This method prepares the URL filter to start in response to a framework call. It is a required method for providers.
```swift
func start() async throws
```
--------------------------------
### Start VPN Tunnel in Swift
Source: https://developer.apple.com/documentation/networkextension/nevpnconnection/startvpntunnel%28%29
Initiates the VPN connection process. This method throws an error if the connection fails to start.
```Swift
func startVPNTunnel() throws
```
--------------------------------
### Start the filter with a completion handler
Source: https://developer.apple.com/documentation/networkextension/nefilterprovider/startfilter%28completionhandler%3A%29
Override this method to start the filter. The completion handler must be executed when the filter is ready to process network content.
```swift
func startFilter(completionHandler: @escaping @Sendable ((any Error)?) -> Void)
```
--------------------------------
### Start Authentication Provider
Source: https://developer.apple.com/documentation/networkextension/nehotspotauthenticationprovider/start%28%29
Initiates the provider to handle subsequent authentication commands.
```swift
func start() async -> Bool
```
--------------------------------
### VPN Connection Start Options
Source: https://developer.apple.com/documentation/networkextension/nevpnconnection/stopvpntunnel%28%29
Constants used for VPN connection configuration.
```swift
let NEVPNConnectionStartOptionUsername: String
```
```swift
let NEVPNConnectionStartOptionPassword: String
```
--------------------------------
### Get NEURLFilterManager Status
Source: https://developer.apple.com/documentation/networkextension/neurlfiltermanager/status-swift.property
Access the current status of the URL filter. This property is asynchronous and available on iOS, iPadOS, and macOS starting from version 26.0.
```swift
var status: NEURLFilterManager.Status { get async }
```
--------------------------------
### Get http3RelayURL
Source: https://developer.apple.com/documentation/networkextension/nerelay/http3relayurl
Retrieve the URL of the relay server accessible using HTTP/3. This property is available on multiple Apple platforms starting from iOS 17.0.
```swift
var http3RelayURL: URL? { get set }
```
--------------------------------
### startProxy(options:completionHandler:)
Source: https://developer.apple.com/documentation/networkextension/neappproxyprovider/startproxy%28options%3Acompletionhandler%3A%29
Starts the network proxy. This method must be overridden by NEAppProxyProvider subclasses to handle proxy initialization.
```APIDOC
## startProxy(options:completionHandler:)
### Description
Starts the network proxy. This method is called by the system and must be overridden by NEAppProxyProvider subclasses. When the proxy is ready, the completion handler must be executed.
### Method
Instance Method
### Parameters
#### Path Parameters
- **options** ([String : Any]?) - Optional - A dictionary passed by the app that requested the proxy start. Nil if not specified or started via Connect On Demand.
- **completionHandler** (@escaping @Sendable ((any Error)?) -> Void) - Required - A block executed when the proxy is established or fails. Pass nil to indicate success, or an NSError object to indicate failure.
### Request Example
```swift
func startProxy(options: [String : Any]? = nil, completionHandler: @escaping @Sendable ((any Error)?) -> Void)
```
### Response
#### Success Response
- **error** (nil) - Indicates the proxy was successfully established.
```
--------------------------------
### Start Network Tunnel
Source: https://developer.apple.com/documentation/networkextension/nepackettunnelprovider
Override this method to start the network tunnel. It is called when the extension is launched.
```swift
func startTunnel(options: [String : NSObject]?, completionHandler: ((any Error)?) -> Void)
```
--------------------------------
### init(upgradeFor:)
Source: https://developer.apple.com/documentation/networkextension/nwudpsession/init%28upgradefor%3A%29
Initializes a new NWUDPSession based on an existing session to facilitate network path upgrades.
```APIDOC
## init(upgradeFor:)
### Description
Creates a new session based on the original session’s endpoint and parameters. This method is deprecated; use `nw_connection_create(_:_:)` from the Network framework instead.
### Method
Initializer
### Parameters
#### Path Parameters
- **session** (NWUDPSession) - Required - The existing session to upgrade from.
### Discussion
The caller should monitor the `hasBetterPath` property. When `true`, use this initializer to create a new session, transfer data, and tear down the original session.
```
--------------------------------
### Start the filter asynchronously
Source: https://developer.apple.com/documentation/networkextension/nefilterprovider/startfilter%28completionhandler%3A%29
An alternative asynchronous signature for starting the filter, which can be used in modern Swift codebases.
```swift
func startFilter() async throws
```
--------------------------------
### GET loadAllFromPreferences
Source: https://developer.apple.com/documentation/networkextension/netransparentproxymanager/loadallfrompreferences%28completionhandler%3A%29
Loads all previously-saved transparent proxy configurations for the calling app.
```APIDOC
## CLASS METHOD loadAllFromPreferences
### Description
Loads all previously-saved transparent proxy configurations associated with the calling app.
### Parameters
- **completionHandler** (closure/block) - Optional - A closure that receives an array of NETransparentProxyManager instances and an error object.
### Request Example
NETransparentProxyManager.loadAllFromPreferences { managers, error in
// Handle results
}
### Response
- **managers** ([NETransparentProxyManager]?) - An array of transparent proxy manager instances loaded from disk.
- **error** ((any Error)?) - An error object if the operation failed, otherwise nil.
```
--------------------------------
### Get authenticationProviderBundleIdentifier
Source: https://developer.apple.com/documentation/networkextension/nehotspotmanager/authenticationproviderbundleidentifier
Retrieve the bundle identifier of the hotspot authentication provider. This property is available for setting and getting.
```swift
final var authenticationProviderBundleIdentifier: String? { get set }
```
--------------------------------
### init(upgradeFor:)
Source: https://developer.apple.com/documentation/networkextension/nwtcpconnection/init%28upgradefor%3A%29
Initializes a new connection that upgrades to a better path determined by the system.
```APIDOC
## init(upgradeFor:)
### Description
This convenience initializer creates a new connection that will only be connected if there exists a better path to the remote endpoint of the original connection.
### Method
Initializer
### Parameters
#### Parameters
- **connection** (NWTCPConnection) - Required - The original connection to upgrade from.
### Request Example
init(upgradeFor: connection)
### Discussion
An upgraded connection uses the same remote endpoint and parameters as the original. The caller should monitor the `hasBetterPath` property and create an upgrade connection when it becomes true to optimize network usage.
```
--------------------------------
### startVPNTunnel(options:)
Source: https://developer.apple.com/documentation/networkextension/nevpnconnection/startvpntunnel%28options%3A%29
Initiates the VPN connection process with optional parameters passed to the tunnel provider.
```APIDOC
## startVPNTunnel(options:)
### Description
Starts the process of connecting the VPN. This method returns immediately after the process is initiated.
### Method
Swift Instance Method
### Parameters
#### Path Parameters
- **options** ([String : NSObject]?) - Optional - An NSDictionary that will be passed to the tunnel provider during the process of starting the tunnel.
### Response
#### Success Response
- **Void** - Returns immediately upon successful initiation of the connection process.
### Discussion
To be notified when the VPN is fully connected, register to observe the NEVPNStatusDidChangeNotification notification on the NEVPNConnection object and examine the status property.
```
--------------------------------
### NETunnelProviderSession - startTunnel(options:)
Source: https://developer.apple.com/documentation/networkextension/netunnelprovidersession/starttunnel%28options%3A%29
Starts the process of connecting the VPN tunnel. This method returns immediately. To monitor connection status, observe NEVPNStatusDidChangeNotification.
```APIDOC
## NETunnelProviderSession - startTunnel(options:)
### Description
Starts the process of connecting the tunnel. This method returns immediately after initiating the connection.
### Method
Instance Method
### Endpoint
N/A (This is a method call within an application)
### Parameters
#### Path Parameters
None
#### Query Parameters
None
#### Request Body
None
### Request Example
```swift
let options: [String: Any]? = nil // Or provide specific options
try session.startTunnel(options: options)
```
### Response
#### Success Response (Void)
This method returns `Void` upon successful initiation of the tunnel connection process.
#### Response Example
```
// No direct response body, but the tunnel connection process is initiated.
```
### Error Handling
This method is marked with `throws` and can throw errors. Handle potential errors using Swift's `do-catch` blocks.
```swift
do {
try session.startTunnel(options: options)
print("Tunnel connection process started.")
} catch {
print("Error starting tunnel: \(error)")
}
```
### See Also
- `func stopTunnel()`: Disconnects the tunnel.
```
--------------------------------
### apply(_:completionHandler:)
Source: https://developer.apple.com/documentation/networkextension/nehotspotconfigurationmanager/apply%28_%3Acompletionhandler%3A%29
Adds or updates a Wi-Fi network configuration after prompting the user for permission, and then attempts to join the network under certain conditions. This is the asynchronous version using a completion handler.
```APIDOC
## POST /websites/developer_apple_networkextension/apply
### Description
Adds or updates a Wi-Fi network configuration after prompting the user for permission, and then attempts to join the network under certain conditions.
### Method
POST
### Endpoint
/websites/developer_apple_networkextension/apply
### Parameters
#### Request Body
- **configuration** (NEHotspotConfiguration) - Required - The configuration to apply to the Wi-Fi network.
- **completionHandler** (function) - Optional - A completion handler called by the method that takes a single argument indicating the outcome of the operation. A value of `NEHotspotConfigurationError.userDenied` indicates the user refuses to accept the new configuration.
### Request Example
```json
{
"configuration": {
"ssid": "MyWiFiNetwork",
"password": "password123"
},
"completionHandler": "(error) => { if (error) { console.error(error); } else { console.log('Configuration applied successfully'); } }"
}
```
### Response
#### Success Response (200)
- **status** (string) - Indicates the success of the operation.
#### Response Example
```json
{
"status": "success"
}
```
```
--------------------------------
### apply(_:)
Source: https://developer.apple.com/documentation/networkextension/nehotspotconfigurationmanager/apply%28_%3Acompletionhandler%3A%29
Adds or updates a Wi-Fi network configuration after prompting the user for permission, and then attempts to join the network under certain conditions. This is the asynchronous version using async/await.
```APIDOC
## POST /websites/developer_apple_networkextension/apply_async
### Description
Adds or updates a Wi-Fi network configuration after prompting the user for permission, and then attempts to join the network under certain conditions. This is the asynchronous version using async/await.
### Method
POST
### Endpoint
/websites/developer_apple_networkextension/apply_async
### Parameters
#### Request Body
- **configuration** (NEHotspotConfiguration) - Required - The configuration to apply to the Wi-Fi network.
### Request Example
```json
{
"configuration": {
"ssid": "MyWiFiNetwork",
"password": "password123"
}
}
```
### Response
#### Success Response (200)
- **status** (string) - Indicates the success of the operation.
#### Response Example
```json
{
"status": "success"
}
```
```
--------------------------------
### NEHotspotEvaluationProvider start()
Source: https://developer.apple.com/documentation/networkextension/nehotspotevaluationprovider/start%28%29
Initiates the NEHotspotEvaluationProvider to prepare it for handling commands. This method is called by the framework in response to a request.
```APIDOC
## start()
### Description
Tells the extension to start the evaluation provider, in response to a request from the framework.
### Method
`async`
### Endpoint
N/A (Instance Method)
### Parameters
None
### Request Body
None
### Response
#### Success Response (Bool)
- **true** - Indicates the provider started successfully.
- **false** - Indicates the provider failed to start.
### Discussion
Use this method to prepare your provider to handle future calls to `handleCommand(_:)`.
### See Also
- `stop(reason:)`
```
--------------------------------
### Start VPN Tunnel with Options in Swift
Source: https://developer.apple.com/documentation/networkextension/nevpnconnection/startvpntunnel%28%29
Initiates the VPN connection process with optional configuration parameters.
```Swift
func startVPNTunnel(options: [String : NSObject]?) throws
```
--------------------------------
### Start VPN Tunnel with Options
Source: https://developer.apple.com/documentation/networkextension/nevpnconnection/startvpntunnel%28options%3A%29
Initiates the VPN connection process with optional dictionary parameters for the tunnel provider.
```Swift
func startVPNTunnel(options: [String : NSObject]? = nil) throws
```
--------------------------------
### Get and Set router Property
Source: https://developer.apple.com/documentation/networkextension/neipv4settings/router
Access the router property to get or set the next-hop gateway router's address. This property is ignored for TUN interfaces.
```swift
var router: String? { get set }
```
--------------------------------
### startVPNTunnel()
Source: https://developer.apple.com/documentation/networkextension/nevpnconnection/startvpntunnel%28%29
Initiates the VPN connection process. This method is asynchronous and returns immediately; status updates are provided via NEVPNStatusDidChangeNotification.
```APIDOC
## startVPNTunnel()
### Description
Starts the process of connecting the VPN. This method returns immediately after the process is initiated.
### Method
Instance Method
### Parameters
None
### Request Example
```swift
try vpnConnection.startVPNTunnel()
```
### Response
#### Success Response
- **Void** - Returns immediately upon successful initiation of the connection process.
#### Error Handling
- **Throws** - This method is marked with the 'throws' keyword. Errors should be handled using a 'do-catch' block.
```
--------------------------------
### Get and Set mtu Property
Source: https://developer.apple.com/documentation/networkextension/nepackettunnelnetworksettings/mtu
Use this property to get or set the maximum transmission unit size in bytes for the TUN interface. The system ignores 'tunnelOverheadBytes' if 'mtu' is set.
```swift
@NSCopying
var mtu: NSNumber? { get set }
```
--------------------------------
### Start NEAppPushProvider with Completion Handler
Source: https://developer.apple.com/documentation/networkextension/neapppushprovider/start%28completionhandler%3A%29
Override this method in your `NEAppPushProvider` subclass to establish a connection with your server. Call the completion handler after initiating the connection, passing an error if connection fails.
```swift
func start(completionHandler: @escaping ((any Error)?) -> Void)
```
--------------------------------
### Get and Set Network Interface
Source: https://developer.apple.com/documentation/networkextension/neappproxyflow/networkinterface
Use this property to get or set the network interface for a flow. Setting this property allows you to transport the flow's data over a different interface than the default.
```swift
@NSCopying
var networkInterface: nw_interface_t? { get set }
```
--------------------------------
### init(ssidPrefix:)
Source: https://developer.apple.com/documentation/networkextension/nehotspotconfiguration/init%28ssidprefix%3A%29-1v8bx
Creates a new hotspot configuration, identified by an SSID prefix string, for an open Wi-Fi network. This is useful when you know a prefix of the SSID but not the full SSID.
```APIDOC
## init(ssidPrefix:)
### Description
Creates a new hotspot configuration, identified by an SSID prefix string, for an open Wi-Fi network.
### Parameters
#### Path Parameters
- **SSIDPrefix** (String) - Required - A prefix string to match the SSID of an open Wi-Fi Network. This value must be between 3 and 32 characters.
### Discussion
Use this initializer when you want to match a known SSID prefix, but don’t have a full SSID. If the system finds multiple Wi-Fi networks whose SSID string matches the given prefix, it selects the network with the greatest signal strength.
```
--------------------------------
### Get and Set identityReference
Source: https://developer.apple.com/documentation/networkextension/nednsoverhttpssettings/identityreference
Use this property to get or set a persistent keychain reference to a keychain item that contains the certificate and private key for the DNS client credential. The keychain item must be of class kSecClassIdentity.
```swift
var identityReference: Data? { get set }
```
--------------------------------
### Get and Set Filter Packet Provider Bundle Identifier
Source: https://developer.apple.com/documentation/networkextension/nefilterproviderconfiguration/filterpacketproviderbundleidentifier
Use this property to get or set the bundle identifier of the filter packet provider system extension. If nil, the framework uses the extension in the calling app's bundle. This applies only to system extensions.
```swift
var filterPacketProviderBundleIdentifier: String? { get set }
```
--------------------------------
### NEURLFilterManager.Status.starting
Source: https://developer.apple.com/documentation/networkextension/neurlfiltermanager/status-swift.enum/starting
Represents the state where the URL filter is currently starting up.
```APIDOC
## NEURLFilterManager.Status.starting
### Description
The URL filter is starting.
### Availability
iOS 26.0+
iPadOS 26.0+
Mac Catalyst 26.0+
macOS 26.0+
### Case
```swift
case starting
```
### See Also
- `NEURLFilterManager.Status.invalid`: The URL filter isn’t configured.
- `NEURLFilterManager.Status.stopped`: The URL filter is stopped.
- `NEURLFilterManager.Status.running`: The URL filter is running.
- `NEURLFilterManager.Status.stopping`: The URL filter is stopping.
```
--------------------------------
### init(addresses:networkPrefixLengths:)
Source: https://developer.apple.com/documentation/networkextension/neipv6settings/init%28addresses%3Anetworkprefixlengths%3A%29
Initializes an NEIPv6Settings object with a specified array of IPv6 addresses and their corresponding network prefix lengths.
```APIDOC
## init(addresses:networkPrefixLengths:)
### Description
Initializes the IPv6 settings object for a tunnel's TUN interface.
### Parameters
- **addresses** ([String]) - Required - An array of IPv6 address strings to be assigned to the tunnel.
- **networkPrefixLengths** ([NSNumber]) - Required - An array of IPv6 network prefix lengths (0-128) corresponding to the addresses.
### Return Value
The initialized NEIPv6Settings object.
```
--------------------------------
### NEEvaluateConnectionRuleAction.neverConnect
Source: https://developer.apple.com/documentation/networkextension/neevaluateconnectionruleaction/neverconnect
Defines the action to never start the VPN connection.
```APIDOC
## NEEvaluateConnectionRuleAction.neverConnect
### Description
Specifies that the VPN should not be started for the matching hostname.
### Availability
- iOS 8.0+
- iPadOS 8.0+
- Mac Catalyst 13.1+
- macOS 10.11+
- tvOS 17.0+
- visionOS 1.0+
### Definition
```swift
case neverConnect
```
```
--------------------------------
### Initializing a configuration
Source: https://developer.apple.com/documentation/networkextension/nehotspotconfiguration
Create new hotspot configurations for open, WEP, WPA/WPA2 personal, WPA/WPA2 enterprise, and Hotspot 2.0 Wi-Fi networks.
```APIDOC
## Initializers
### `init(ssid: String)`
Creates a new hotspot configuration, identified by an SSID, for an open Wi-Fi network.
### `init(ssid: String, passphrase: String, isWEP: Bool)`
Creates a new hotspot configuration, identified by an SSID, for a protected WEP or WPA/WPA2 personal Wi-Fi network.
### `init(ssid: String, eapSettings: NEHotspotEAPSettings)`
Creates a new hotspot configuration, identified by an SSID, for a WPA/WPA2 enterprise Wi-Fi network with EAP settings.
### `init(hs20Settings: NEHotspotHS20Settings, eapSettings: NEHotspotEAPSettings)`
Creates a new hotspot configuration, identified by a domain name, for a Hotspot 2.0 Wi-Fi network with HS 2.0 and EAP settings.
### `init(ssidPrefix: String)`
Creates a new hotspot configuration, identified by an SSID prefix string, for an open Wi-Fi network.
### `init(ssidPrefix: String, passphrase: String, isWEP: Bool)`
Creates a new hotspot configuration, identified by an SSID prefix string, for a protected WEP or WPA/WPA2 personal Wi-Fi network.
```
--------------------------------
### Describing the Filter
Source: https://developer.apple.com/documentation/networkextension/neurlfiltermanager
Get a localized description of the URL filter.
```APIDOC
### Describing the filter
`var localizedDescription: LocalizedStringResource?`
A string containing a description of the URL filter.
```
--------------------------------
### Start NEAppPushProvider with Completion Handler
Source: https://developer.apple.com/documentation/networkextension/neapppushprovider/start%28%29
Use this variant to signal readiness to the framework via a completion handler.
```swift
func start(completionHandler: ((any Error)?) -> Void)
```
--------------------------------
### GET NEPacket.direction
Source: https://developer.apple.com/documentation/networkextension/nepacket/direction
Retrieves the direction of the packet as a NETrafficDirection value.
```APIDOC
## GET NEPacket.direction
### Description
The direction of the packet.
### Endpoint
var direction: NETrafficDirection { get }
### Availability
macOS 10.15+
### See Also
- var data: Data
- var metadata: NEFlowMetaData?
- var protocolFamily: sa_family_t
- enum NETrafficDirection
```
--------------------------------
### GET NENetworkRule.matchProtocol
Source: https://developer.apple.com/documentation/networkextension/nenetworkrule/matchprotocol
Retrieves the protocol associated with the network rule.
```APIDOC
## GET NENetworkRule.matchProtocol
### Description
The matchProtocol property returns the network protocol that the rule matches.
### Method
GET
### Endpoint
NENetworkRule.matchProtocol
### Response
- **matchProtocol** (NENetworkRule.Protocol) - The protocol that the rule matches.
### Response Example
{
"matchProtocol": "TCP"
}
```
--------------------------------
### GET /NEHotspotNetwork/fetchCurrent
Source: https://developer.apple.com/documentation/networkextension/nehotspotnetwork
Fetches information about the current Wi-Fi network.
```APIDOC
## GET /NEHotspotNetwork/fetchCurrent
### Description
Fetches information about the current Wi-Fi network.
### Method
GET
### Endpoint
NEHotspotNetwork.fetchCurrent(completionHandler: (NEHotspotNetwork?) -> Void)
### Response
#### Success Response (200)
- **NEHotspotNetwork** (object) - An object containing network details such as ssid, bssid, signalStrength, and securityType.
```
--------------------------------
### Start VPN Tunnel Method Signatures
Source: https://developer.apple.com/documentation/networkextension/nevpnconnection/stopvpntunnel%28%29
Method signatures for initiating a VPN connection, including an optional configuration dictionary.
```swift
func startVPNTunnel() throws
```
```swift
func startVPNTunnel(options: [String : NSObject]?) throws
```
--------------------------------
### GET NEHotspotHelperCommand.networkList
Source: https://developer.apple.com/documentation/networkextension/nehotspothelpercommand/networklist
Retrieves the list of networks associated with the command.
```APIDOC
## Property: networkList
### Description
The list of networks associated with the command. This property returns nil unless the commandType is kNEHotspotHelperCommandTypeFilterScanList.
### Declaration
`var networkList: [NEHotspotNetwork]? { get }`
### Availability
- iOS 9.0+
- iPadOS 9.0+
- Mac Catalyst 13.1+
- visionOS 1.0+
### See Also
- commandType: The type of the command.
- network: The network associated with the command.
```
--------------------------------
### startTunnel(options:completionHandler:)
Source: https://developer.apple.com/documentation/networkextension/nepackettunnelprovider/starttunnel%28options%3Acompletionhandler%3A%29
Starts the network tunnel. Subclasses of NEPacketTunnelProvider must override this method to establish the tunnel connection.
```APIDOC
## startTunnel(options:completionHandler:)
### Description
Starts the network tunnel. This method is called by the system, and subclasses must override it to handle tunnel establishment.
### Parameters
#### options ([String : NSObject]?)
- Optional - A dictionary passed by the app that requested the tunnel start. Nil if not specified or started via Connect On Demand.
#### completionHandler (@escaping @Sendable ((any Error)?) -> Void)
- Required - A block executed when the tunnel is established or fails. Must be called after setTunnelNetworkSettings(_:completionHandler:) completes.
### Discussion
When the completionHandler is executed with a nil error, it signals to the system that the provider is ready to handle network data. The provider should ensure network settings are configured before calling this handler.
```
--------------------------------
### Supporting System Extensions
Source: https://developer.apple.com/documentation/networkextension/neprovider
Class method to start the Network Extension machinery from within a System Extension.
```APIDOC
## Supporting system extensions
### `startSystemExtensionMode()`
```swift
class func startSystemExtensionMode()
```
Starts the Network Extension machinery from inside a System Extension.
```
--------------------------------
### GET filterConfiguration
Source: https://developer.apple.com/documentation/networkextension/nefilterprovider/filterconfiguration
Access the current filter configuration for the NEFilterProvider.
```APIDOC
## GET filterConfiguration
### Description
Retrieves the current `NEFilterProviderConfiguration` object. The Filter Provider can observe this property to be notified when the configuration changes using KVO.
### Property
`var filterConfiguration: NEFilterProviderConfiguration { get }`
### Availability
- iOS 9.0+
- iPadOS 9.0+
- Mac Catalyst 13.1+
- macOS 10.15+
- visionOS 1.0+
```
--------------------------------
### Initialize NEVPNIKEv2PPKConfiguration
Source: https://developer.apple.com/documentation/networkextension/nevpnikev2ppkconfiguration/init%28identifier%3Akeychainreference%3A%29
Use this initializer to create a quantum-secure pre-shared key (PPK) configuration. It requires a string identifier and a Data object representing a persistent reference to a keychain item.
```swift
init(
identifier: String,
keychainReference: Data
)
```
--------------------------------
### NEEvaluateConnectionRuleAction.neverConnect Case Definition
Source: https://developer.apple.com/documentation/networkextension/neevaluateconnectionruleaction/neverconnect
Represents the action to prevent the VPN from starting.
```swift
case neverConnect
```
--------------------------------
### Creating a Local Push Provider Extension
Source: https://developer.apple.com/documentation/networkextension/neapppushprovider
Instructions on how to create and configure a Local Push Provider extension, including Info.plist settings and build phase configurations.
```APIDOC
### Creating a Local Push Provider Extension
Local Push Providers run as App Extensions for the `app-push-provider` extension point, which is a possible value the `Network Extensions Entitlement`.
To create a Local Push Provider extension, first create a new App Extension target in your project.
For an example of an Xcode build target for this app extension, see the Receiving Voice and Text Communications on a Local Network sample code project.
Once you have an extension target, create a subclass of `NEAppPushProvider`. Then set the `NSExtensionPrincipalClass` key in the extension’s `Info.plist` to the name of your subclass. Set the `NSExtensionPointIdentifier` key in the extension’s `Info.plist` to `com.apple.networkextension.app-push`, if it’s not set already.
Here’s an example of the `NSExtension` dictionary in a Local Push Provider extension’s `Info.plist`:
```xml
NSExtension
NSExtensionPointIdentifier
com.apple.networkextension.app-push
NSExtensionPrincipalClass
$(PRODUCT_MODULE_NAME).MyPushProvider
```
Finally, add your Local Push Provider extension target to your app’s Embed App Extensions build phase.
```
--------------------------------
### Getting session properties
Source: https://developer.apple.com/documentation/networkextension/nwudpsession
Methods to retrieve properties of the UDP session.
```APIDOC
## NWUDPSession Properties
### `endpoint` property
**Description**: The destination endpoint with which this session was created.
**Type**: `NWEndpoint`
### `currentPath` property
**Description**: The current evaluated path for the session’s `resolvedEndpoint` property.
**Type**: `NWPath?`
```
--------------------------------
### GET resolvedEndpoint
Source: https://developer.apple.com/documentation/networkextension/nwudpsession/resolvedendpoint
Retrieves the currently targeted remote endpoint for an NWUDPSession.
```APIDOC
## GET resolvedEndpoint
### Description
The currently targeted remote endpoint for the NWUDPSession. This property is deprecated.
### Method
GET
### Endpoint
resolvedEndpoint
### Discussion
Use Key-Value Observing (KVO) to watch this property. Use the `nw_connection_copy_current_path(_:)` function from the Network framework instead.
### Response
- **resolvedEndpoint** (NWEndpoint?) - The currently targeted remote endpoint.
```
--------------------------------
### Match DNS queries for a domain
Source: https://developer.apple.com/documentation/networkextension/nenetworkrule/init%28destinationhost%3Aprotocol%3A%29
Creates a rule matching all DNS queries and responses for hosts in the example.com domain.
```Swift
let endpoint = NWHostEndpoint(hostname: "example.com", port: "53")
let rule = NENetworkRule(destinationHost: endpoint, protocol: .any)
```
```Objective-C
NWHostEndpoint *endpoint = [NWHostEndpoint endpointWithHostname:@"example.com"
port:@"53"];
NENetworkRule *rule = [[NENetworkRule alloc] initWithDestinationHost:endpoint
protocol:NENetworkRuleProtocolAny];
```
--------------------------------
### GET NEVPNProtocolIPSec.remoteIdentifier
Source: https://developer.apple.com/documentation/networkextension/nevpnprotocolipsec/remoteidentifier
Accessing the remoteIdentifier property to identify the IPSec server.
```APIDOC
## Property: remoteIdentifier
### Description
A string identifying the IPSec server for authentication purposes.
### Declaration
`var remoteIdentifier: String? { get set }`
### Availability
- iOS 8.0+
- iPadOS 8.0+
- Mac Catalyst 13.1+
- macOS 10.11+
- tvOS 17.0+
- visionOS 1.0+
```
--------------------------------
### loadAllFromPreferences(completionHandler:)
Source: https://developer.apple.com/documentation/networkextension/neapppushmanager/loadallfrompreferences%28completionhandler%3A%29
Loads all saved NEAppPushManager configurations asynchronously from the persistent store.
```APIDOC
## class func loadAllFromPreferences(completionHandler:)
### Description
Loads all saved manager configurations asynchronously.
### Parameters
#### completionHandler
- **completionHandler** (closure) - Required - A completion block that the framework calls after it loads the configurations. The managers parameter contains an array of all managers that the framework loads from the persistent store. If loading failed, the error parameter indicates the reason for the failure.
### Request Example
NEAppPushManager.loadAllFromPreferences { managers, error in
if let error = error {
print("Error loading: \(error)")
} else {
print("Loaded \(managers?.count ?? 0) managers")
}
}
```
--------------------------------
### init(passBytes:peekBytes:)
Source: https://developer.apple.com/documentation/networkextension/nefilterdataverdict/init%28passbytes%3Apeekbytes%3A%29
Creates a verdict that tells the system to pass a chunk of network data to its final destination, and specifies the next chunk of data to provide.
```APIDOC
## init(passBytes:peekBytes:)
### Description
Creates a verdict that tells the system to pass a chunk of network data to its final destination, and specifies the next chunk of data to provide.
### Parameters
- **passBytes** (Int) - Required - The number of bytes to pass to its final destination.
- **peekBytes** (Int) - Required - The number of bytes after the end of the passBytes that the Filter Data Provider expects in the next call. Set to NEFilterFlowBytesMax to see all subsequent bytes.
### Return Value
A NEFilterDataVerdict object.
```
--------------------------------
### GET shared()
Source: https://developer.apple.com/documentation/networkextension/nevpnmanager/shared%28%29
Access the single instance of NEVPNManager for the calling application.
```APIDOC
## GET shared()
### Description
Access the single instance of `NEVPNManager`.
### Method
class func
### Return Value
The `NEVPNManager` instance for the calling application.
```
--------------------------------
### GET NEVPNError.errorDomain
Source: https://developer.apple.com/documentation/networkextension/nevpnerror-swift.struct/errordomain
Retrieves the error domain string for NEVPNError objects.
```APIDOC
## GET NEVPNError.errorDomain
### Description
Returns the error domain string associated with NEVPNError, used to identify the source of VPN-related errors.
### Method
static var
### Endpoint
NEVPNError.errorDomain
### Response
- **errorDomain** (String) - The domain string for NEVPNError.
```
--------------------------------
### init(address:port:)
Source: https://developer.apple.com/documentation/networkextension/neproxyserver/init%28address%3Aport%3A%29
Initializes a newly-allocated NEProxyServer object with a specified address and port.
```APIDOC
## init(address:port:)
### Description
Initialize a newly-allocated NEProxyServer object.
### Parameters
- **address** (String) - Required - The address of the proxy server.
- **port** (Int) - Required - The TCP port on which the proxy server is listening for connections.
### Request Example
init(address: "127.0.0.1", port: 8080)
```
--------------------------------
### GET protocolConfiguration
Source: https://developer.apple.com/documentation/networkextension/netunnelprovider/protocolconfiguration
Retrieves the configuration object for the current tunneling session.
```APIDOC
## GET protocolConfiguration
### Description
The protocolConfiguration property returns the configuration of the current tunneling session. This configuration is typically created by the containing app using NETunnelProviderManager or via configuration profile payloads.
### Property
var protocolConfiguration: NEVPNProtocol { get }
### Discussion
- For NEPacketTunnelProvider and NEAppProxyProvider subclasses, this property returns a NETunnelProviderProtocol object.
- NETunnelProvider subclasses can observe this property using Key-Value Observing (KVO) to detect configuration changes.
### Availability
- iOS 9.0+
- iPadOS 9.0+
- Mac Catalyst 13.1+
- macOS 10.11+
- tvOS 17.0+
- visionOS 1.0+
```
--------------------------------
### NEAppExtensionConfiguration.accept(connection:)
Source: https://developer.apple.com/documentation/networkextension/neappextensionconfiguration
Accepts an incoming XPC connection from the host process.
```APIDOC
## func accept(connection: NSXPCConnection) -> Bool
### Description
Accepts incoming XPC connections from the host process.
### Parameters
- **connection** (NSXPCConnection) - Required - The XPC connection to accept.
### Returns
- **Bool** - Returns true if the connection is accepted, otherwise false.
```
--------------------------------
### GET shared()
Source: https://developer.apple.com/documentation/networkextension/nerelaymanager/shared%28%29
Access the single instance of the network relay manager.
```APIDOC
## GET shared()
### Description
Access the single instance of a network relay manager.
### Method
class func
### Return Value
The network relay manager instance for the calling application.
```
--------------------------------
### loadAllFromPreferences
Source: https://developer.apple.com/documentation/networkextension/netransparentproxymanager
Loads all previously-saved transparent proxy configurations from the system preferences.
```APIDOC
## class func loadAllFromPreferences
### Description
Loads all previously-saved transparent proxy configurations.
### Method
Class Method
### Parameters
#### Parameters
- **completionHandler** (([NETransparentProxyManager]?, (any Error)?) -> Void) - Required - A closure that receives an array of NETransparentProxyManager objects or an error if the operation fails.
```
--------------------------------
### GET NEPacket.protocolFamily
Source: https://developer.apple.com/documentation/networkextension/nepacket/protocolfamily
Retrieves the protocol family associated with the network packet.
```APIDOC
## GET NEPacket.protocolFamily
### Description
The protocolFamily property returns the socket address family (sa_family_t) of the packet.
### Endpoint
NEPacket.protocolFamily
### Response
- **protocolFamily** (sa_family_t) - The socket address family of the packet.
```
--------------------------------
### NWBonjourServiceEndpoint Initialization
Source: https://developer.apple.com/documentation/networkextension/nwbonjourserviceendpoint
Documentation for initializing a new Bonjour service endpoint.
```APIDOC
## init(name: String, type: String, domain: String)
### Description
Creates an endpoint with a Bonjour service name, type, and domain.
### Parameters
- **name** (String) - Required - The Bonjour service name (e.g., "MyMusicStudio").
- **type** (String) - Required - The Bonjour service type (e.g., "_music._tcp").
- **domain** (String) - Required - The Bonjour service domain (e.g., "local").
```
--------------------------------
### init(rawValue:)
Source: https://developer.apple.com/documentation/networkextension/neproviderstopreason/init%28rawvalue%3A%29
Initializes a NEProviderStopReason instance from a raw integer value.
```APIDOC
## init(rawValue:)
### Description
Creates a new NEProviderStopReason instance from the specified raw integer value.
### Method
Initializer
### Parameters
#### Parameters
- **rawValue** (Int) - Required - The raw integer value representing the stop reason.
### Request Example
init?(rawValue: Int)
```
--------------------------------
### GET NENetworkRule.matchRemotePrefix
Source: https://developer.apple.com/documentation/networkextension/nenetworkrule/matchremoteprefix
Retrieves the remote sub-network prefix for a network rule.
```APIDOC
## Property: matchRemotePrefix
### Description
A number that specifies the remote sub-network that the rule matches. This property is set to NSNotFound for rules where matchRemoteEndpoint does not contain an IP address.
### Availability
- macOS 10.15+
### Declaration
var matchRemotePrefix: Int { get }
```
--------------------------------
### NWUDPSession init(upgradeForSession:)
Source: https://developer.apple.com/documentation/networkextension/nwudpsession/init%28upgradeforsession%3A%29
Initializes a new UDP session, upgrading an existing session if provided. This method is deprecated.
```APIDOC
## init(upgradeForSession:)
### Description
Initializes a new UDP session, potentially upgrading an existing session. This initializer is deprecated.
### Parameters
#### Path Parameters
* **session** (NWUDPSession) - Required - The existing NWUDPSession to upgrade.
### Deprecated
This method is deprecated and should not be used in new code. It is available on iOS 9.0–18.0, iPadOS 9.0–18.0, Mac Catalyst 13.1–18.0, macOS 10.11–15.0, tvOS 17.0–18.0, and visionOS 1.0–2.0.
```
--------------------------------
### GET NEHotspotManager.isEnabled
Source: https://developer.apple.com/documentation/networkextension/nehotspotmanager/isenabled
Retrieves or sets the enabled state of the NEHotspotManager configuration.
```APIDOC
## Property: isEnabled
### Description
A Boolean value that indicates whether the configuration is enabled. The system starts the providers only when this property is true.
### Declaration
`final var isEnabled: Bool { get set }`
### Availability
- iOS 26.0+
- iPadOS 26.0+
- Mac Catalyst 26.0+
- visionOS 26.0+
```
--------------------------------
### init(rawValue:)
Source: https://developer.apple.com/documentation/networkextension/nevpnikev2postquantumkeyexchangemethod/init%28rawvalue%3A%29
Initializes a new NEVPNIKEv2PostQuantumKeyExchangeMethod instance with a raw integer value.
```APIDOC
## init(rawValue:)
### Description
Creates an instance of NEVPNIKEv2PostQuantumKeyExchangeMethod from a raw integer value.
### Parameters
#### Parameters
- **rawValue** (Int) - Required - The raw integer value representing the key exchange method.
### Request Example
init?(rawValue: Int)
```
--------------------------------
### GET interface
Source: https://developer.apple.com/documentation/networkextension/nehotspothelpercommand/interface-46dq
Retrieves the network interface associated with the NEHotspotHelperCommand instance.
```APIDOC
## Property: interface
### Description
The interface property returns the network interface associated with the NEHotspotHelperCommand. This property is available on iOS 18.0+, iPadOS 18.0+, Mac Catalyst, and visionOS 2.0+.
### Declaration
`var interface: NWInterface { get }`
```
--------------------------------
### GET socketFamily
Source: https://developer.apple.com/documentation/networkextension/nefiltersocketflow/socketfamily
Retrieves the protocol family of the socket, such as PF_INET or PF_INET6.
```APIDOC
## GET socketFamily
### Description
The socketFamily property returns the protocol family of the socket. Examples include symbols like PF_INET and PF_INET6.
### Property Definition
`var socketFamily: Int32 { get }`
### Availability
- iOS 9.0+
- iPadOS 9.0+
- Mac Catalyst 13.1+
- macOS 10.15+
- visionOS 1.0+
```
--------------------------------
### init(rawValue:)
Source: https://developer.apple.com/documentation/networkextension/nevpnikev2integrityalgorithm/init%28rawvalue%3A%29
Initializes a new NEVPNIKEv2IntegrityAlgorithm instance from a raw integer value.
```APIDOC
## init(rawValue:)
### Description
Creates an instance of NEVPNIKEv2IntegrityAlgorithm from the specified raw integer value.
### Parameters
#### Parameters
- **rawValue** (Int) - Required - The raw integer value representing the integrity algorithm.
### Request Example
init?(rawValue: Int)
```
--------------------------------
### Load All Preferences with Completion Handler
Source: https://developer.apple.com/documentation/networkextension/netunnelprovidermanager/loadallfrompreferences%28completionhandler%3A%29
Use this method to asynchronously load all previously saved VPN configurations. The completion handler is executed on the main thread upon completion. If no configurations exist, both parameters will be nil. Errors are reported via the `error` parameter.
```swift
class func loadAllFromPreferences(completionHandler: @escaping @Sendable ([NETunnelProviderManager]?, (any Error)?) -> Void)
```
--------------------------------
### GET remoteFlowEndpoint
Source: https://developer.apple.com/documentation/networkextension/nefiltersocketflow/remoteflowendpoint-6bnas
Retrieves the remote endpoint for a given socket flow.
```APIDOC
## GET remoteFlowEndpoint
### Description
The remoteFlowEndpoint property provides the remote NWEndpoint associated with the socket flow.
### Availability
- iOS 18.0+
- iPadOS 18.0+
- Mac Catalyst
- macOS 15.0+
- visionOS 2.0+
### Property Definition
`var remoteFlowEndpoint: NWEndpoint? { get }`
```
--------------------------------
### GET remoteEndpoint
Source: https://developer.apple.com/documentation/networkextension/nefiltersocketflow/remoteendpoint
Retrieves the remote endpoint details for a socket flow.
```APIDOC
## GET remoteEndpoint
### Description
An object containing details about the socket’s remote endpoint. This property may be nil when the system calls handleNewFlow(_:), but may be populated as network data is received.
### Endpoint
remoteEndpoint
### Response
- **remoteEndpoint** (NWEndpoint?) - An object containing details about the socket’s remote endpoint.
```
--------------------------------
### Load transparent proxy configurations
Source: https://developer.apple.com/documentation/networkextension/netransparentproxymanager/loadallfrompreferences%28completionhandler%3A%29
Provides both completion handler and async/await interfaces for retrieving saved proxy configurations.
```swift
class func loadAllFromPreferences(completionHandler: @escaping @Sendable ([NETransparentProxyManager]?, (any Error)?) -> Void)
```
```swift
class func loadAllFromPreferences() async throws -> [NETransparentProxyManager]
```
--------------------------------
### Initialize NEProxyServer
Source: https://developer.apple.com/documentation/networkextension/neproxyserver
Initializes a new NEProxyServer object with the specified address and port. This is used to set up proxy server details.
```swift
init(address: String, port: Int)
```
--------------------------------
### GET localFlowEndpoint
Source: https://developer.apple.com/documentation/networkextension/nefiltersocketflow/localflowendpoint-89z3l
Retrieves the local endpoint associated with the socket flow.
```APIDOC
## GET localFlowEndpoint
### Description
The localFlowEndpoint property returns the local NWEndpoint for the socket flow.
### Endpoint
NEFilterSocketFlow.localFlowEndpoint
### Response
- **localFlowEndpoint** (NWEndpoint?) - The local endpoint of the flow, or nil if not available.
```
--------------------------------
### init(SSID:passphrase:isWEP:)
Source: https://developer.apple.com/documentation/networkextension/nehotspotconfiguration/init%28ssid%3Apassphrase%3Aiswep%3A%29-35lmk
Initializes a new hotspot configuration with the provided network name (SSID), password (passphrase), and WEP security setting.
```APIDOC
## init(SSID:passphrase:isWEP:)
### Description
Initializes a new hotspot configuration with the provided network name (SSID), password (passphrase), and WEP security setting.
### Parameters
#### Path Parameters
* **SSID** (String) - Required - The name of the Wi-Fi network.
* **passphrase** (String) - Required - The password for the Wi-Fi network.
* **isWEP** (Bool) - Required - A boolean value indicating whether WEP security is used.
```