### 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. ```