# NetworkManager D-Bus Interface Specification

## Version 1.0.4

Copyright (C) 2008 - 2011 Red Hat, Inc.
Copyright (C) 2008 - 2009 Novell, Inc.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

## Interfaces

- `org.freedesktop.NetworkManager`
- `org.freedesktop.NetworkManager.AccessPoint`
- `org.freedesktop.NetworkManager.Device`
- `org.freedesktop.NetworkManager.Device.Wired`
- `org.freedesktop.NetworkManager.Device.Wireless`
- `org.freedesktop.NetworkManager.Device.Modem`
- `org.freedesktop.NetworkManager.Device.Bluetooth`
- `org.freedesktop.NetworkManager.Device.OlpcMesh`
- `org.freedesktop.NetworkManager.Device.WiMax`
- `org.freedesktop.NetworkManager.Device.Infiniband`
- `org.freedesktop.NetworkManager.Device.Bond`
- `org.freedesktop.NetworkManager.Device.Bridge`
- `org.freedesktop.NetworkManager.Device.Team`
- `org.freedesktop.NetworkManager.Device.Generic`
- `org.freedesktop.NetworkManager.Device.Vlan`
- `org.freedesktop.NetworkManager.Device.Adsl`
- `org.freedesktop.NetworkManager.WiMax.Nsp`
- `org.freedesktop.NetworkManager.IP4Config`
- `org.freedesktop.NetworkManager.IP6Config`
- `org.freedesktop.NetworkManager.DHCP4Config`
- `org.freedesktop.NetworkManager.DHCP6Config`
- `org.freedesktop.NetworkManager.Settings`
- `org.freedesktop.NetworkManager.Settings.Connection`
- `org.freedesktop.NetworkManager.Connection.Active`
- `org.freedesktop.NetworkManager.AgentManager`
- `org.freedesktop.NetworkManager.SecretAgent`
- `org.freedesktop.NetworkManager.VPN.Connection`
- `org.freedesktop.NetworkManager.VPN.Plugin`

# org.freedesktop.NetworkManager

## Methods:

### GetDevices ( ) → ao

Get the list of network devices.

#### Returns

`devices` - `ao`
  List of object paths of network devices known to the system.

### GetDeviceByIpIface ( s: iface ) → o

Return the object path of the network device referenced by its IP interface name. Note that some devices (usually modems) only have an IP interface name when they are connected.

#### Parameters

`iface` - `s`
  Interface name of the device to find.

#### Returns

`device` - `o`
  Object path of the network device.

### ActivateConnection ( o: connection, o: device, o: specific_object ) → o

Activate a connection using the supplied device.

#### Parameters

`connection` - `o`
  The connection to activate. If "/" is given, a valid device path must be given, and NetworkManager picks the best connection to activate for the given device. VPN connections must always pass a valid connection path.
`device` - `o`
  The object path of device to be activated for physical connections. This parameter is ignored for VPN connections, because the specific_object (if provided) specifies the device to use.
`specific_object` - `o`
  The path of a connection-type-specific object this activation should use. This parameter is currently ignored for wired and mobile broadband connections, and the value of "/" should be used (ie, no specific object). For WiFi connections, pass the object path of a specific AP from the card's scan list, or "/" to pick an AP automatically. For VPN connections, pass the object path of an ActiveConnection object that should serve as the "base" connection (to which the VPN connections lifetime will be tied), or pass "/" and NM will automatically use the current default device.

#### Returns

`active_connection` - `o`
  The path of the active connection object representing this active connection.

### AddAndActivateConnection ( a{sa{sv}}: connection, o: device, o: specific_object ) → o, o

Adds a new connection using the given details (if any) as a template (automatically filling in missing settings with the capabilities of the given device and specific object), then activate the new connection. Cannot be used for VPN connections at this time.

#### Parameters

`connection` - `a{sa{sv}}`
  Connection settings and properties; if incomplete missing settings will be automatically completed using the given device and specific object.
`device` - `o`
  The object path of device to be activated using the given connection.
`specific_object` - `o`
  The path of a connection-type-specific object this activation should use. This parameter is currently ignored for wired and mobile broadband connections, and the value of "/" should be used (ie, no specific object). For WiFi connections, pass the object path of a specific AP from the card's scan list, which will be used to complete the details of the newly added connection.

#### Returns

`path` - `o`
  Object path of the new connection that was just added.
`active_connection` - `o`
  The path of the active connection object representing this active connection.

### DeactivateConnection ( o: active_connection ) → nothing

Deactivate an active connection.

#### Parameters

`active_connection` - `o`
  The currently active connection to deactivate.

### Sleep ( b: sleep ) → nothing

Control the NetworkManager daemon's sleep state. When asleep, all interfaces that it manages are deactivated. When awake, devices are available to be activated. This command should not be called directly by users or clients; it is intended for system suspend/resume tracking.

#### Parameters

`sleep` - `b`
  Indicates whether the NetworkManager daemon should sleep or wake.

### Enable ( b: enable ) → nothing

Control whether overall networking is enabled or disabled. When disabled, all interfaces that NM manages are deactivated. When enabled, all managed interfaces are re-enabled and available to be activated. This command should be used by clients that provide to users the ability to enable/disable all networking.

#### Parameters

`enable` - `b`
  If FALSE, indicates that all networking should be disabled. If TRUE, indicates that NetworkManager should begin managing network devices.

### GetPermissions ( ) → a{ss}

Returns the permissions a caller has for various authenticated operations that NetworkManager provides, like Enable/Disable networking, changing WiFi, WWAN, and WiMAX state, etc.

#### Returns

`permissions` - `a{ss}`
  Dictionary of available permissions and results. Each permission is represented by a name (ie "org.freedesktop.NetworkManager.Foobar") and each result is one of the following values: "yes" (the permission is available), "auth" (the permission is available after a successful authentication), or "no" (the permission is denied). Clients may use these values in the UI to indicate the ability to perform certain operations.

### SetLogging ( s: level, s: domains ) → nothing

Set logging verbosity and which operations are logged.

#### Parameters

`level` - `s`
  One of [ERR, WARN, INFO, DEBUG, TRACE].
`domains` - `s`
  A combination of logging domains separated by commas (','), or "NONE" to disable logging. Each domain enables logging for operations related to that domain. Available domains are: [PLATFORM, RFKILL, ETHER, WIFI, BT, MB, DHCP4, DHCP6, PPP, WIFI_SCAN, IP4, IP6, AUTOIP4, DNS, VPN, SHARING, SUPPLICANT, AGENTS, SETTINGS, SUSPEND, CORE, DEVICE, OLPC, WIMAX, INFINIBAND, FIREWALL, ADSL, BOND, VLAN, BRIDGE, DBUS_PROPS, TEAM, CONCHECK, DCB, DISPATCH]. In addition to these domains, the following special domains can be used: [NONE, ALL, DEFAULT, DHCP, IP]. You can also specify that some domains should log at a different level from the default by appending a colon (':') and a log level (eg, 'WIFI:DEBUG'). If an empty string is given, the log level is changed but the current set of log domains remains unchanged.

### GetLogging ( ) → s, s

Get current logging verbosity level and operations domains.

#### Returns

`level` - `s`
  One of [ERR, WARN, INFO, DEBUG, TRACE].
`domains` - `s`
  For available domains see SetLogging() call.

### CheckConnectivity ( ) → u

Re-check the network connectivity state.

#### Returns

`connectivity` - `u` (NM_CONNECTIVITY)
  The current connectivity state.

### state ( ) → u

The overall networking state as determined by the NetworkManager daemon, based on the state of network devices under it's management.

#### Returns

`state` - `u` (NM_STATE)

## Signals:

### CheckPermissions ( )

Emitted when system authorization details change, indicating that clients may wish to recheck permissions with GetPermissions.

### StateChanged ( u: state )

NetworkManager's state changed.

#### Parameters

`state` - `u` (NM_STATE)
  The new state of NetworkManager.

### PropertiesChanged ( a{sv}: properties )

NetworkManager's properties changed.

#### Parameters

`properties` - `a{sv}` (String_Variant_Map)
  The changed properties.

### DeviceAdded ( o: device_path )

A device was added to the system

#### Parameters

`device_path` - `o`
  The object path of the newly added device.

### DeviceRemoved ( o: device_path )

A device was removed from the system, and is no longer available.

#### Parameters

`device_path` - `o`
  The object path of the device that was just removed.

## Properties:

`Devices` - `ao` - `(read)`
  The list of network devices/interfaces NetworkManager knows about.
`NetworkingEnabled` - `b` - `(read)`
  Indicates if overall networking is currently enabled or not. See the Enable() method.
`WirelessEnabled` - `b` - `(readwrite)`
  Indicates if wireless is currently enabled or not.
`WirelessHardwareEnabled` - `b` - `(read)`
  Indicates if the wireless hardware is currently enabled, i.e. the state of the RF kill switch.
`WwanEnabled` - `b` - `(readwrite)`
  Indicates if mobile broadband devices are currently enabled or not.
`WwanHardwareEnabled` - `b` - `(read)`
  Indicates if the mobile broadband hardware is currently enabled, i.e. the state of the RF kill switch.
`WimaxEnabled` - `b` - `(readwrite)`
  Indicates if WiMAX devices are currently enabled or not.
`WimaxHardwareEnabled` - `b` - `(read)`
  Indicates if the WiMAX hardware is currently enabled, i.e. the state of the RF kill switch.
`ActiveConnections` - `ao` - `(read)`
  List of active connection object paths.
`PrimaryConnection` - `o` - `(read)`
  The object path of the "primary" active connection being used to access the network. In particular, if there is no VPN active, or the VPN does not have the default route, then this indicates the connection that has the default route. If there is a VPN active with the default route, then this indicates the connection that contains the route to the VPN endpoint.
`PrimaryConnectionType` - `s` - `(read)`
  The connection type of the "primary" active connection being used to access the network. This is the same as the Type property on the object indicated by PrimaryConnection.
`ActivatingConnection` - `o` - `(read)`
  The object path of an active connection that is currently being activated and which is expected to become the new PrimaryConnection when it finishes activating.
`Startup` - `b` - `(read)`
  Indicates whether NM is still starting up; this becomes FALSE when NM has finished attempting to activate every connection that it might be able to activate at startup.
`Version` - `s` - `(read)`
  NetworkManager version.
`State` - `u` - `(read)` (NM_STATE)
  The overall state of the NetworkManager daemon.
`Connectivity` - `u` - `(read)` (NM_CONNECTIVITY)
  The network connectivity state.

## Enumerated types:

### NM_STATE

Describes the overall state of the daemon.

`NM_STATE_UNKNOWN = 0`
  Networking state is unknown.
`NM_STATE_ASLEEP = 10`
  Networking is inactive and all devices are disabled.
`NM_STATE_DISCONNECTED = 20`
  There is no active network connection.
`NM_STATE_DISCONNECTING = 30`
  Network connections are being cleaned up.
`NM_STATE_CONNECTING = 40`
  A network device is connecting to a network and there is no other available network connection.
`NM_STATE_CONNECTED_LOCAL = 50`
  A network device is connected, but there is only link-local connectivity.
`NM_STATE_CONNECTED_SITE = 60`
  A network device is connected, but there is only site-local connectivity.
`NM_STATE_CONNECTED_GLOBAL = 70`
  A network device is connected, with global network connectivity.

### NM_CONNECTIVITY

Describes the network-connectivity state.

`NM_CONNECTIVITY_UNKNOWN = 0`
  Network connectivity is unknown.
`NM_CONNECTIVITY_NONE = 1`
  The host is not connected to any network.
`NM_CONNECTIVITY_PORTAL = 2`
  The host is behind a captive portal and cannot reach the full Internet.
`NM_CONNECTIVITY_LIMITED = 3`
  The host is connected to a network, but does not appear to be able to reach the full Internet.
`NM_CONNECTIVITY_FULL = 4`
  The host is connected to a network, and appears to be able to reach the full Internet

# org.freedesktop.NetworkManager.AccessPoint

Interface has no methods.

## Signals:

### PropertiesChanged ( a{sv}: properties )

#### Parameters

`properties` - `a{sv}` (String_Variant_Map)
  A dictionary mapping property names to variant boxed values

## Properties:

`Flags` - `u` - `(read)` (NM_802_11_AP_FLAGS)
  Flags describing the capabilities of the access point.
`WpaFlags` - `u` - `(read)` (NM_802_11_AP_SEC)
  Flags describing the access point's capabilities according to WPA (Wifi Protected Access).
`RsnFlags` - `u` - `(read)` (NM_802_11_AP_SEC)
  Flags describing the access point's capabilities according to the RSN (Robust Secure Network) protocol.
`Ssid` - `ay` - `(read)`
  The Service Set Identifier identifying the access point.
`Frequency` - `u` - `(read)`
  The radio channel frequency in use by the access point, in MHz.
`HwAddress` - `s` - `(read)`
  The hardware address (BSSID) of the access point.
`Mode` - `u` - `(read)` (NM_802_11_MODE)
  Describes the operating mode of the access point.
`MaxBitrate` - `u` - `(read)`
  The maximum bitrate this access point is capable of, in kilobits/second (Kb/s).
`Strength` - `y` - `(read)`
  The current signal quality of the access point, in percent.

## Sets of flags:

### NM_802_11_AP_FLAGS

Flags describing the general capabilities of the access point.

`NM_802_11_AP_FLAGS_NONE = 0x0`
  Null capability - says nothing about the access point.
`NM_802_11_AP_FLAGS_PRIVACY = 0x1`
  Access point supports privacy measures.

### NM_802_11_AP_SEC

Flags describing the security capabilities of the access point.

`NM_802_11_AP_SEC_NONE = 0x0`
  Null flag.
`NM_802_11_AP_SEC_PAIR_WEP40 = 0x1`
  Access point supports pairwise 40-bit WEP encryption.
`NM_802_11_AP_SEC_PAIR_WEP104 = 0x2`
  Access point supports pairwise 104-bit WEP encryption.
`NM_802_11_AP_SEC_PAIR_TKIP = 0x4`
  Access point supports pairwise TKIP encryption.
`NM_802_11_AP_SEC_PAIR_CCMP = 0x8`
  Access point supports pairwise CCMP encryption.
`NM_802_11_AP_SEC_GROUP_WEP40 = 0x10`
  Access point supports a group 40-bit WEP cipher.
`NM_802_11_AP_SEC_GROUP_WEP104 = 0x20`
  Access point supports a group 104-bit WEP cipher.
`NM_802_11_AP_SEC_GROUP_TKIP = 0x40`
  Access point supports a group TKIP cipher.
`NM_802_11_AP_SEC_GROUP_CCMP = 0x80`
  Access point supports a group CCMP cipher.
`NM_802_11_AP_SEC_KEY_MGMT_PSK = 0x100`
  Access point supports PSK key management.
`NM_802_11_AP_SEC_KEY_MGMT_802_1X = 0x200`
  Access point supports 802.1x key management.

# org.freedesktop.NetworkManager.Device

## Methods:

### Disconnect ( ) → nothing

Disconnects a device and prevents the device from automatically activating further connections without user intervention.

### Delete ( ) → nothing

Deletes a software device from NetworkManager and removes the interface from the system. The method returns an error when called for a hardware device.

## Signals:

### StateChanged ( u: new_state, u: old_state, u: reason )

#### Parameters

`new_state` - `u` (NM_DEVICE_STATE)
  The new state of the device.
`old_state` - `u` (NM_DEVICE_STATE)
  The previous state of the device.
`reason` - `u` (NM_DEVICE_STATE_REASON)
  A reason for the state transition.

## Properties:

`Udi` - `s` - `(read)`
  Operating-system specific transient device hardware identifier. This is an opaque string representing the underlying hardware for the device, and shouldn't be used to keep track of individual devices. For some device types (Bluetooth, Modems) it is an identifier used by the hardware service (ie bluez or ModemManager) to refer to that device, and client programs use it get additional information from those services which NM does not provide. The Udi is not guaranteed to be consistent across reboots or hotplugs of the hardware. If you're looking for a way to uniquely track each device in your application, use the object path. If you're looking for a way to track a specific piece of hardware across reboot or hotplug, use a MAC address or USB serial number.
`Interface` - `s` - `(read)`
  The name of the device's control (and often data) interface.
`IpInterface` - `s` - `(read)`
  The name of the device's data interface when available. This property may not refer to the actual data interface until the device has successfully established a data connection, indicated by the device's State becoming ACTIVATED.
`Driver` - `s` - `(read)`
  The driver handling the device.
`DriverVersion` - `s` - `(read)`
  The version of the driver handling the device.
`FirmwareVersion` - `s` - `(read)`
  The firmware version for the device.
`Capabilities` - `u` - `(read)` (NM_DEVICE_CAP)
  Flags describing the capabilities of the device.
`Ip4Address` - `u` - `(read)`
  DEPRECATED; use the 'Addresses' property of the 'Ip4Config' object instead.
`State` - `u` - `(read)` (NM_DEVICE_STATE)
  The current state of the device.
`StateReason` - `(uu)` - `(read)` (NM_DEVICE_STATE_REASON_STRUCT)
  The current state and reason for changing to that state.
`ActiveConnection` - `o` - `(read)`
  Object path of an ActiveConnection object that "owns" this device during activation. The ActiveConnection object tracks the life-cycle of a connection to a specific network and implements the org.freedesktop.NetworkManager.Connection.Active D-Bus interface.
`Ip4Config` - `o` - `(read)`
  Object path of the Ip4Config object describing the configuration of the device. Only valid when the device is in the NM_DEVICE_STATE_ACTIVATED state.
`Dhcp4Config` - `o` - `(read)`
  Object path of the Dhcp4Config object describing the DHCP options returned by the DHCP server. Only valid when the device is in the NM_DEVICE_STATE_ACTIVATED state.
`Ip6Config` - `o` - `(read)`
  Object path of the Ip6Config object describing the configuration of the device. Only valid when the device is in the NM_DEVICE_STATE_ACTIVATED state.
`Dhcp6Config` - `o` - `(read)`
  Object path of the Dhcp6Config object describing the DHCP options returned by the DHCP server. Only valid when the device is in the NM_DEVICE_STATE_ACTIVATED state.
`Managed` - `b` - `(read)`
  Whether or not this device is managed by NetworkManager.
`Autoconnect` - `b` - `(readwrite)`
  If TRUE, indicates the device is allowed to autoconnect. If FALSE, manual intervention is required before the device will automatically connect to a known network, such as activating a connection using the device, or setting this property to TRUE. This property cannot be set to TRUE for default-unmanaged devices, since they never autoconnect.
`FirmwareMissing` - `b` - `(read)`
  If TRUE, indicates the device is likely missing firmware necessary for its operation.
`DeviceType` - `u` - `(read)` (NM_DEVICE_TYPE)
  The general type of the network device; ie Ethernet, WiFi, etc.
`AvailableConnections` - `ao` - `(read)`
  An array of object paths of every configured connection that is currently 'available' through this device.
`PhysicalPortId` - `s` - `(read)`
  If non-empty, an (opaque) indicator of the physical network port associated with the device. This can be used to recognize when two seemingly-separate hardware devices are actually just different virtual interfaces to the same physical port.
`Mtu` - `u` - `(read)`
  The device MTU (maximum transmission unit).

## Enumerated types:

### NM_DEVICE_STATE

`NM_DEVICE_STATE_UNKNOWN = 0`
  The device is in an unknown state.
`NM_DEVICE_STATE_UNMANAGED = 10`
  The device is recognized but not managed by NetworkManager.
`NM_DEVICE_STATE_UNAVAILABLE = 20`
  The device cannot be used (carrier off, rfkill, etc).
`NM_DEVICE_STATE_DISCONNECTED = 30`
  The device is not connected.
`NM_DEVICE_STATE_PREPARE = 40`
  The device is preparing to connect.
`NM_DEVICE_STATE_CONFIG = 50`
  The device is being configured.
`NM_DEVICE_STATE_NEED_AUTH = 60`
  The device is awaiting secrets necessary to continue connection.
`NM_DEVICE_STATE_IP_CONFIG = 70`
  The IP settings of the device are being requested and configured.
`NM_DEVICE_STATE_IP_CHECK = 80`
  The device's IP connectivity ability is being determined.
`NM_DEVICE_STATE_SECONDARIES = 90`
  The device is waiting for secondary connections to be activated.
`NM_DEVICE_STATE_ACTIVATED = 100`
  The device is active.
`NM_DEVICE_STATE_DEACTIVATING = 110`
  The device's network connection is being torn down.
`NM_DEVICE_STATE_FAILED = 120`
  The device is in a failure state following an attempt to activate it.

### NM_DEVICE_TYPE

`NM_DEVICE_TYPE_UNKNOWN = 0`
  The device type is unknown.
`NM_DEVICE_TYPE_ETHERNET = 1`
  The device is wired Ethernet device.
`NM_DEVICE_TYPE_WIFI = 2`
  The device is an 802.11 WiFi device.
`NM_DEVICE_TYPE_UNUSED1 = 3`
  Unused
`NM_DEVICE_TYPE_UNUSED2 = 4`
  Unused
`NM_DEVICE_TYPE_BT = 5`
  The device is Bluetooth device that provides PAN or DUN capabilities.
`NM_DEVICE_TYPE_OLPC_MESH = 6`
  The device is an OLPC mesh networking device.
`NM_DEVICE_TYPE_WIMAX = 7`
  The device is an 802.16e Mobile WiMAX device.
`NM_DEVICE_TYPE_MODEM = 8`
  The device is a modem supporting one or more of analog telephone, CDMA/EVDO, GSM/UMTS/HSPA, or LTE standards to access a cellular or wireline data network.
`NM_DEVICE_TYPE_INFINIBAND = 9`
  The device is an IP-capable InfiniBand interface.
`NM_DEVICE_TYPE_BOND = 10`
  The device is a bond master interface.
`NM_DEVICE_TYPE_VLAN = 11`
  The device is a VLAN interface.
`NM_DEVICE_TYPE_ADSL = 12`
  The device is an ADSL device supporting PPPoE and PPPoATM protocols.
`NM_DEVICE_TYPE_BRIDGE = 13`
  The device is a bridge interface.
`NM_DEVICE_TYPE_GENERIC = 14`
  The device is a generic interface type unrecognized by NetworkManager.
`NM_DEVICE_TYPE_TEAM = 15`
  The device is a team master interface.

### NM_DEVICE_STATE_REASON

`NM_DEVICE_STATE_REASON_UNKNOWN = 0`
  The reason for the device state change is unknown.
`NM_DEVICE_STATE_REASON_NONE = 1`
  The state change is normal.
`NM_DEVICE_STATE_REASON_NOW_MANAGED = 2`
  The device is now managed.
`NM_DEVICE_STATE_REASON_NOW_UNMANAGED = 3`
  The device is no longer managed.
`NM_DEVICE_STATE_REASON_CONFIG_FAILED = 4`
  The device could not be readied for configuration.
`NM_DEVICE_STATE_REASON_CONFIG_UNAVAILABLE = 5`
  IP configuration could not be reserved (no available address, timeout, etc).
`NM_DEVICE_STATE_REASON_CONFIG_EXPIRED = 6`
  The IP configuration is no longer valid.
`NM_DEVICE_STATE_REASON_NO_SECRETS = 7`
  Secrets were required, but not provided.
`NM_DEVICE_STATE_REASON_SUPPLICANT_DISCONNECT = 8`
  The 802.1X supplicant disconnected from the access point or authentication server.
`NM_DEVICE_STATE_REASON_SUPPLICANT_CONFIG_FAILED = 9`
  Configuration of the 802.1X supplicant failed.
`NM_DEVICE_STATE_REASON_SUPPLICANT_FAILED = 10`
  The 802.1X supplicant quit or failed unexpectedly.
`NM_DEVICE_STATE_REASON_SUPPLICANT_TIMEOUT = 11`
  The 802.1X supplicant took too long to authenticate.
`NM_DEVICE_STATE_REASON_PPP_START_FAILED = 12`
  The PPP service failed to start within the allowed time.
`NM_DEVICE_STATE_REASON_PPP_DISCONNECT = 13`
  The PPP service disconnected unexpectedly.
`NM_DEVICE_STATE_REASON_PPP_FAILED = 14`
  The PPP service quit or failed unexpectedly.
`NM_DEVICE_STATE_REASON_DHCP_START_FAILED = 15`
  The DHCP service failed to start within the allowed time.
`NM_DEVICE_STATE_REASON_DHCP_ERROR = 16`
  The DHCP service reported an unexpected error.
`NM_DEVICE_STATE_REASON_DHCP_FAILED = 17`
  The DHCP service quit or failed unexpectedly.
`NM_DEVICE_STATE_REASON_SHARED_START_FAILED = 18`
  The shared connection service failed to start.
`NM_DEVICE_STATE_REASON_SHARED_FAILED = 19`
  The shared connection service quit or failed unexpectedly.
`NM_DEVICE_STATE_REASON_AUTOIP_START_FAILED = 20`
  The AutoIP service failed to start.
`NM_DEVICE_STATE_REASON_AUTOIP_ERROR = 21`
  The AutoIP service reported an unexpected error.
`NM_DEVICE_STATE_REASON_AUTOIP_FAILED = 22`
  The AutoIP service quit or failed unexpectedly.
`NM_DEVICE_STATE_REASON_MODEM_BUSY = 23`
  Dialing failed because the line was busy.
`NM_DEVICE_STATE_REASON_MODEM_NO_DIAL_TONE = 24`
  Dialing failed because there was no dial tone.
`NM_DEVICE_STATE_REASON_MODEM_NO_CARRIER = 25`
  Dialing failed because there was carrier.
`NM_DEVICE_STATE_REASON_MODEM_DIAL_TIMEOUT = 26`
  Dialing timed out.
`NM_DEVICE_STATE_REASON_MODEM_DIAL_FAILED = 27`
  Dialing failed.
`NM_DEVICE_STATE_REASON_MODEM_INIT_FAILED = 28`
  Modem initialization failed.
`NM_DEVICE_STATE_REASON_GSM_APN_FAILED = 29`
  Failed to select the specified GSM APN.
`NM_DEVICE_STATE_REASON_GSM_REGISTRATION_NOT_SEARCHING = 30`
  Not searching for networks.
`NM_DEVICE_STATE_REASON_GSM_REGISTRATION_DENIED = 31`
  Network registration was denied.
`NM_DEVICE_STATE_REASON_GSM_REGISTRATION_TIMEOUT = 32`
  Network registration timed out.
`NM_DEVICE_STATE_REASON_GSM_REGISTRATION_FAILED = 33`
  Failed to register with the requested GSM network.
`NM_DEVICE_STATE_REASON_GSM_PIN_CHECK_FAILED = 34`
  PIN check failed.
`NM_DEVICE_STATE_REASON_FIRMWARE_MISSING = 35`
  Necessary firmware for the device may be missing.
`NM_DEVICE_STATE_REASON_REMOVED = 36`
  The device was removed.
`NM_DEVICE_STATE_REASON_SLEEPING = 37`
  NetworkManager went to sleep.
`NM_DEVICE_STATE_REASON_CONNECTION_REMOVED = 38`
  The device's active connection was removed or disappeared.
`NM_DEVICE_STATE_REASON_USER_REQUESTED = 39`
  A user or client requested the disconnection.
`NM_DEVICE_STATE_REASON_CARRIER = 40`
  The device's carrier/link changed.
`NM_DEVICE_STATE_REASON_CONNECTION_ASSUMED = 41`
  The device's existing connection was assumed.
`NM_DEVICE_STATE_REASON_SUPPLICANT_AVAILABLE = 42`
  The 802.1x supplicant is now available.
`NM_DEVICE_STATE_REASON_MODEM_NOT_FOUND = 43`
  The modem could not be found.
`NM_DEVICE_STATE_REASON_BT_FAILED = 44`
  The Bluetooth connection timed out or failed.
`NM_DEVICE_STATE_REASON_GSM_SIM_NOT_INSERTED = 45`
  GSM Modem's SIM Card not inserted.
`NM_DEVICE_STATE_REASON_GSM_SIM_PIN_REQUIRED = 46`
  GSM Modem's SIM Pin required.
`NM_DEVICE_STATE_REASON_GSM_SIM_PUK_REQUIRED = 47`
  GSM Modem's SIM Puk required.
`NM_DEVICE_STATE_REASON_GSM_SIM_WRONG = 48`
  GSM Modem's SIM wrong
`NM_DEVICE_STATE_REASON_INFINIBAND_MODE = 49`
  InfiniBand device does not support connected mode.
`NM_DEVICE_STATE_REASON_DEPENDENCY_FAILED = 50`
  A dependency of the connection failed.
`NM_DEVICE_STATE_REASON_BR2684_FAILED = 51`
  Problem with the RFC 2684 Ethernet over ADSL bridge.
`NM_DEVICE_STATE_REASON_MODEM_MANAGER_UNAVAILABLE = 52`
  ModemManager was not running or quit unexpectedly.
`NM_DEVICE_STATE_REASON_SSID_NOT_FOUND = 53`
  The 802.11 Wi-Fi network could not be found.
`NM_DEVICE_STATE_REASON_SECONDARY_CONNECTION_FAILED = 54`
  A secondary connection of the base connection failed.
`NM_DEVICE_STATE_REASON_DCB_FCOE_FAILED = 55`
  DCB or FCoE setup failed.
`NM_DEVICE_STATE_REASON_TEAMD_CONTROL_FAILED = 56`
  teamd control failed.
`NM_DEVICE_STATE_REASON_MODEM_FAILED = 57`
  Modem failed or no longer available.
`NM_DEVICE_STATE_REASON_MODEM_AVAILABLE = 58`
  Modem now ready and available.
`NM_DEVICE_STATE_REASON_SIM_PIN_INCORRECT = 59`
  The SIM PIN was incorrect.
`NM_DEVICE_STATE_REASON_NEW_ACTIVATION = 60`
  A new connection activation was enqueued.
`NM_DEVICE_STATE_REASON_PARENT_CHANGED = 61`
  The device's parent changed.
`NM_DEVICE_STATE_REASON_PARENT_MANAGED_CHANGED = 62`
  The device parent's management changed.

## Sets of flags:

### NM_DEVICE_CAP

`NM_DEVICE_CAP_NONE = 0x0`
  Null capability.
`NM_DEVICE_CAP_NM_SUPPORTED = 0x1`
  The device is supported by NetworkManager.
`NM_DEVICE_CAP_CARRIER_DETECT = 0x2`
  The device supports carrier detection.

## Structure types:

### NM_DEVICE_STATE_REASON_STRUCT - ( u: state, u: reason )

Arrays of NM_DEVICE_STATE_REASON_STRUCT don't generally make sense.

#### Members

`state` - `u` (NM_DEVICE_STATE)
  The device state.
`reason` - `u` (NM_DEVICE_STATE_REASON)
  The reason for originally changing to the device state.

# org.freedesktop.NetworkManager.Device.Wired

Interface has no methods.

## Signals:

### PropertiesChanged ( a{sv}: properties )

#### Parameters

`properties` - `a{sv}` (String_Variant_Map)
  A dictionary mapping property names to variant boxed values

## Properties:

`HwAddress` - `s` - `(read)`
  Active hardware address of the device.
`PermHwAddress` - `s` - `(read)`
  Permanent hardware address of the device.
`Speed` - `u` - `(read)`
  Design speed of the device, in megabits/second (Mb/s).
`Carrier` - `b` - `(read)`
  Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not).

# org.freedesktop.NetworkManager.Device.Wireless

## Methods:

### GetAccessPoints ( ) → ao

DEPRECATED. Get the list of access points visible to this device. Note that this list does not include access points which hide their SSID. To retrieve a list of all access points (including hidden ones) use the GetAllAccessPoints() method.

#### Returns

`access_points` - `ao`
  List of access point object paths.

### GetAllAccessPoints ( ) → ao

Get the list of all access points visible to this device, including hidden ones for which the SSID is not yet known.

#### Returns

`access_points` - `ao`
  List of access point object paths.

### RequestScan ( a{sv}: options ) → nothing

Request the device to scan

#### Parameters

`options` - `a{sv}`
  Options of scan (currently unused argument).

## Signals:

### PropertiesChanged ( a{sv}: properties )

Emitted when the wireless device's properties changed.

#### Parameters

`properties` - `a{sv}` (String_Variant_Map)
  A dictionary containing the FIXME: check changed parameters.

### AccessPointAdded ( o: access_point )

Emitted when a new access point is found by the device.

#### Parameters

`access_point` - `o`
  The object path of the newly found access point.

### AccessPointRemoved ( o: access_point )

Emitted when an access point disappears from view of the device.

#### Parameters

`access_point` - `o`
  The object path of the access point that has disappeared.

## Properties:

`HwAddress` - `s` - `(read)`
  The active hardware address of the device.
`PermHwAddress` - `s` - `(read)`
  The permanent hardware address of the device.
`Mode` - `u` - `(read)` (NM_802_11_MODE)
  The operating mode of the wireless device.
`Bitrate` - `u` - `(read)`
  The bit rate currently used by the wireless device, in kilobits/second (Kb/s).
`AccessPoints` - `ao` - `(read)`
  List of object paths of access point visible to this wireless device.
`ActiveAccessPoint` - `o` - `(read)`
  Object path of the access point currently used by the wireless device.
`WirelessCapabilities` - `u` - `(read)` (NM_802_11_DEVICE_CAP)
  The capabilities of the wireless device.

## Sets of flags:

### NM_802_11_DEVICE_CAP

Flags describing the capabilities of a wireless device.

`NM_802_11_DEVICE_CAP_NONE = 0x0`
  Null capability - syntactic sugar for no capabilities supported. Do not AND this with other capabilities!
`NM_802_11_DEVICE_CAP_CIPHER_WEP40 = 0x1`
  The device supports the 40-bit WEP cipher.
`NM_802_11_DEVICE_CAP_CIPHER_WEP104 = 0x2`
  The device supports the 104-bit WEP cipher.
`NM_802_11_DEVICE_CAP_CIPHER_TKIP = 0x4`
  The device supports the TKIP cipher.
`NM_802_11_DEVICE_CAP_CIPHER_CCMP = 0x8`
  The device supports the CCMP cipher.
`NM_802_11_DEVICE_CAP_WPA = 0x10`
  The device supports the WPA encryption/authentication protocol.
`NM_802_11_DEVICE_CAP_RSN = 0x20`
  The device supports the RSN encryption/authentication protocol.
`NM_802_11_DEVICE_CAP_AP = 0x40`
  The device supports Access Point mode.
`NM_802_11_DEVICE_CAP_ADHOC = 0x80`
  The device supports Ad-Hoc mode.
`NM_802_11_DEVICE_CAP_FREQ_VALID = 0x100`
  The device properly reports information about supported frequencies and thus both NM_802_11_DEVICE_CAP_FREQ_2GHZ and NM_802_11_DEVICE_CAP_FREQ_5GHZ are valid.
`NM_802_11_DEVICE_CAP_FREQ_2GHZ = 0x200`
  The device supports 2.4GHz frequencies.
`NM_802_11_DEVICE_CAP_FREQ_5GHZ = 0x400`
  The device supports 5GHz frequencies.

# org.freedesktop.NetworkManager.Device.Modem

Interface has no methods.

## Signals:

### PropertiesChanged ( a{sv}: properties )

#### Parameters

`properties` - `a{sv}` (String_Variant_Map)
  A dictionary mapping property names to variant boxed values

## Properties:

`ModemCapabilities` - `u` - `(read)` (NM_DEVICE_MODEM_CAPABILITIES)
  The generic family of access technologies the modem supports. Not all capabilities are available at the same time however; some modems require a firmware reload or other reinitialization to switch between eg CDMA/EVDO and GSM/UMTS.
`CurrentCapabilities` - `u` - `(read)` (NM_DEVICE_MODEM_CAPABILITIES)
  The generic family of access technologies the modem currently supports without a firmware reload or reinitialization.

## Sets of flags:

### NM_DEVICE_MODEM_CAPABILITIES

Flags describing one or more of the general access technology families that a modem device supports.

`NM_DEVICE_MODEM_CAPABILITY_NONE = 0x0`
  Modem has no capabilties.
`NM_DEVICE_MODEM_CAPABILITY_POTS = 0x1`
  Modem supports the analog wired telephone network (ie 56k dialup) and does not have wireless/cellular capabilities.
`NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO = 0x2`
  Modem supports at least one of CDMA 1xRTT, EVDO revision 0, EVDO revision A, or EVDO revision B.
`NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS = 0x4`
  Modem supports at least one of GSM, GPRS, EDGE, UMTS, HSDPA, HSUPA, or HSPA+ packet switched data capability.
`NM_DEVICE_MODEM_CAPABILITY_LTE = 0x8`
  Modem has at LTE data capability.

# org.freedesktop.NetworkManager.Device.Bluetooth

Interface has no methods.

## Signals:

### PropertiesChanged ( a{sv}: properties )

#### Parameters

`properties` - `a{sv}` (String_Variant_Map)
  A dictionary mapping property names to variant boxed values

## Properties:

`HwAddress` - `s` - `(read)`
  Bluetooth hardware address of the device.
`Name` - `s` - `(read)`
  Bluetooth name of the device.
`BtCapabilities` - `u` - `(read)` (NM_BT_CAPABILITIES)
  Bluetooth capabilities of the device (either DUN or NAP).

## Sets of flags:

### NM_BT_CAPABILITIES

Flags describing the capabilities of a Bluetooth device.

`NM_BT_CAPABILITY_NONE = 0x0`
  The device has no recognized capabilities.
`NM_BT_CAPABILITY_DUN = 0x1`
  The device supports Bluetooth Dial-Up Networking.
`NM_BT_CAPABILITY_PAN = 0x2`
  The device supports Bluetooth Personal Area Networking.

# org.freedesktop.NetworkManager.Device.OlpcMesh

Interface has no methods.

## Signals:

### PropertiesChanged ( a{sv}: properties )

Emitted when the wireless device's properties changed.

#### Parameters

`properties` - `a{sv}` (String_Variant_Map)
  A dictionary containing the FIXME: check changed parameters.

## Properties:

`HwAddress` - `s` - `(read)`
  The hardware address of the device.
`Companion` - `o` - `(read)`
  The object path of the companion device.
`ActiveChannel` - `u` - `(read)`
  The currently active channel.

# org.freedesktop.NetworkManager.Device.WiMax

## Methods:

### GetNspList ( ) → ao

Get the list of NSPs visible to this device.

#### Returns

`nsps` - `ao`
  List of NSP object paths

## Signals:

### PropertiesChanged ( a{sv}: properties )

Emitted when the WiMax device's properties changed.

#### Parameters

`properties` - `a{sv}` (String_Variant_Map)
  A dictionary mapping property names to variant boxed values.

### NspAdded ( o: nsp )

Emitted when a new NSP is found by the device.

#### Parameters

`nsp` - `o`
  The object path of the newly found NSP.

### NspRemoved ( o: nsp )

Emitted when an NSP disappears from view of the device.

#### Parameters

`nsp` - `o`
  The object path of the NSP that has disappeared.

## Properties:

`Nsps` - `ao` - `(read)`
  List of object paths of Network Service Providers (NSPs) visible to this WiMAX device.
`HwAddress` - `s` - `(read)`
  Hardware address of the device.
`CenterFrequency` - `u` - `(read)`
  Center frequency (in KHz) of the radio channel the device is using to communicate with the network when connected. Has no meaning when the device is not connected.
`Rssi` - `i` - `(read)`
  RSSI of the current radio link in dBm. This value indicates how strong the raw received RF signal from the base station is, but does not indicate the overall quality of the radio link. Has no meaning when the device is not connected.
`Cinr` - `i` - `(read)`
  CINR (Carrier to Interference + Noise Ratio) of the current radio link in dB. CINR is a more accurate measure of radio link quality. Has no meaning when the device is not connected.
`TxPower` - `i` - `(read)`
  Average power of the last burst transmitted by the device, in units of 0.5 dBm. i.e. a TxPower of -11 represents an actual device TX power of -5.5 dBm. Has no meaning when the device is not connected.
`Bsid` - `s` - `(read)`
  The ID of the serving base station as received from the network. Has no meaning when the device is not connected.
`ActiveNsp` - `o` - `(read)`
  Object path of the NSP currently used by the WiMax device.

# org.freedesktop.NetworkManager.Device.Infiniband

Interface has no methods.

## Signals:

### PropertiesChanged ( a{sv}: properties )

#### Parameters

`properties` - `a{sv}` (String_Variant_Map)
  A dictionary mapping property names to variant boxed values

## Properties:

`HwAddress` - `s` - `(read)`
  Hardware address of the device.
`Carrier` - `b` - `(read)`
  Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not).

# org.freedesktop.NetworkManager.Device.Bond

Interface has no methods.

## Signals:

### PropertiesChanged ( a{sv}: properties )

#### Parameters

`properties` - `a{sv}` (String_Variant_Map)
  A dictionary mapping property names to variant boxed values

## Properties:

`HwAddress` - `s` - `(read)`
  Hardware address of the device.
`Carrier` - `b` - `(read)`
  Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not).
`Slaves` - `ao` - `(read)`
  Array of object paths representing devices which are currently slaved to this device.

# org.freedesktop.NetworkManager.Device.Bridge

Interface has no methods.

## Signals:

### PropertiesChanged ( a{sv}: properties )

#### Parameters

`properties` - `a{sv}` (String_Variant_Map)
  A dictionary mapping property names to variant boxed values

## Properties:

`HwAddress` - `s` - `(read)`
  Hardware address of the device.
`Carrier` - `b` - `(read)`
  Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not).
`Slaves` - `ao` - `(read)`
  Array of object paths representing devices which are currently slaved to this device.

# org.freedesktop.NetworkManager.Device.Team

Interface has no methods.

## Signals:

### PropertiesChanged ( a{sv}: properties )

#### Parameters

`properties` - `a{sv}` (String_Variant_Map)
  A dictionary mapping property names to variant boxed values

## Properties:

`HwAddress` - `s` - `(read)`
  Hardware address of the device.
`Carrier` - `b` - `(read)`
  Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not).
`Slaves` - `ao` - `(read)`
  Array of object paths representing devices which are currently slaved to this device.

# org.freedesktop.NetworkManager.Device.Generic

Interface has no methods.

## Signals:

### PropertiesChanged ( a{sv}: properties )

#### Parameters

`properties` - `a{sv}` (String_Variant_Map)
  A dictionary mapping property names to variant boxed values

## Properties:

`HwAddress` - `s` - `(read)`
  Hardware address of the device.
`TypeDescription` - `s` - `(read)`
  A (non-localized) description of the interface type, if known.

# org.freedesktop.NetworkManager.Device.Vlan

Interface has no methods.

## Signals:

### PropertiesChanged ( a{sv}: properties )

#### Parameters

`properties` - `a{sv}` (String_Variant_Map)
  A dictionary mapping property names to variant boxed values

## Properties:

`HwAddress` - `s` - `(read)`
  Hardware address of the device.
`Carrier` - `b` - `(read)`
  Indicates whether the physical carrier is found (e.g. whether a cable is plugged in or not).
`Parent` - `o` - `(read)`
  Object path of the parent device of this VLAN device.
`VlanId` - `u` - `(read)`
  The VLAN ID of this VLAN interface.

# org.freedesktop.NetworkManager.Device.Adsl

Interface has no methods.

## Signals:

### PropertiesChanged ( a{sv}: properties )

#### Parameters

`properties` - `a{sv}` (String_Variant_Map)
  A dictionary mapping property names to variant boxed values

## Properties:

`Carrier` - `b` - `(read)`
  Indicates whether the physical carrier is found.

# org.freedesktop.NetworkManager.WiMax.Nsp

Interface has no methods.

## Signals:

### PropertiesChanged ( a{sv}: properties )

#### Parameters

`properties` - `a{sv}` (String_Variant_Map)
  A dictionary mapping property names to variant boxed values.

## Properties:

`Name` - `s` - `(read)`
  The name of the NSP.
`SignalQuality` - `u` - `(read)`
  The current signal quality of the NSP, in percent.
`NetworkType` - `u` - `(read)` (NM_WIMAX_NSP_NETWORK_TYPE)
  The network type of the NSP.

## Sets of flags:

### NM_WIMAX_NSP_NETWORK_TYPE

Network type of the NSP.

`NM_WIMAX_NSP_NETWORK_TYPE_UNKNOWN = 0x0`
  Unknown network.
`NM_WIMAX_NSP_NETWORK_TYPE_HOME = 0x1`
  Home network.
`NM_WIMAX_NSP_NETWORK_TYPE_PARTNER = 0x2`
  Partner network.
`NM_WIMAX_NSP_NETWORK_TYPE_ROAMING_PARTNER = 0x3`
  Roaming partner network.

# org.freedesktop.NetworkManager.IP4Config

Interface has no methods.

## Signals:

### PropertiesChanged ( a{sv}: properties )

#### Parameters

`properties` - `a{sv}` (String_Variant_Map)
  A dictionary mapping property names to variant boxed values

## Properties:

`Addresses` - `aau` - `(read)`
  Array of arrays of IPv4 address/prefix/gateway. All 3 elements of each array are in network byte order. Essentially: [(addr, prefix, gateway), (addr, prefix, gateway), ...] Deprecated: use AddressData and Gateway
`AddressData` - `aa{sv}` - `(read)`
  Array of IP address data objects. All addresses will include "address" (an IP address string), and "prefix" (a uint). Some addresses may include additional attributes.
`Gateway` - `s` - `(read)`
  The gateway in use.
`Routes` - `aau` - `(read)`
  Arrays of IPv4 route/prefix/next-hop/metric. All 4 elements of each tuple are in network byte order. 'route' and 'next hop' are IPv4 addresses, while prefix and metric are simple unsigned integers. Essentially: [(route, prefix, next-hop, metric), (route, prefix, next-hop, metric), ...] Deprecated: use RouteData
`RouteData` - `aa{sv}` - `(read)`
  Array of IP route data objects. All routes will include "dest" (an IP address string) and "prefix" (a uint). Some routes may include "next-hop" (an IP address string), "metric" (a uint), and additional attributes.
`Nameservers` - `au` - `(read)`
  The nameservers in use.
`Domains` - `as` - `(read)`
  A list of domains this address belongs to.
`Searches` - `as` - `(read)`
  A list of dns searches.
`WinsServers` - `au` - `(read)`
  The Windows Internet Name Service servers associated with the connection. Each address is in network byte order.

# org.freedesktop.NetworkManager.IP6Config

Interface has no methods.

## Signals:

### PropertiesChanged ( a{sv}: properties )

#### Parameters

`properties` - `a{sv}` (String_Variant_Map)
  A dictionary mapping property names to variant boxed values

## Properties:

`Addresses` - `a(ayuay)` - `(read)`
  Array of tuples of IPv6 address/prefix/gateway. Deprecated: use AddressData and Gateway.
`AddressData` - `aa{sv}` - `(read)`
  Array of IP address data objects. All addresses will include "address" (an IP address string), and "prefix" (a uint). Some addresses may include additional attributes.
`Gateway` - `s` - `(read)`
  The gateway in use.
`Routes` - `a(ayuayu)` - `(read)`
  Tuples of IPv6 route/prefix/next-hop/metric. Deprecated: use RouteData
`RouteData` - `aa{sv}` - `(read)`
  Array of IP route data objects. All routes will include "dest" (an IP address string) and "prefix" (a uint). Some routes may include "next-hop" (an IP address string), "metric" (a uint), and additional attributes.
`Nameservers` - `aay` - `(read)`
  The nameservers in use.
`Domains` - `as` - `(read)`
  A list of domains this address belongs to.
`Searches` - `as` - `(read)`
  A list of dns searches.

# org.freedesktop.NetworkManager.DHCP4Config

Options and configuration returned by the IPv4 DHCP server.

Interface has no methods.

## Signals:

### PropertiesChanged ( a{sv}: properties )

#### Parameters

`properties` - `a{sv}` (String_Variant_Map)
  A dictionary mapping property names to variant boxed values

## Properties:

`Options` - `a{sv}` - `(read)`
  Configuration options returned by a DHCP server, if any.

# org.freedesktop.NetworkManager.DHCP6Config

Options and configuration returned by the IPv6 DHCP server.

Interface has no methods.

## Signals:

### PropertiesChanged ( a{sv}: properties )

#### Parameters

`properties` - `a{sv}` (String_Variant_Map)
  A dictionary mapping property names to variant boxed values

## Properties:

`Options` - `a{sv}` - `(read)`
  Configuration options returned by a DHCP server, if any.

# org.freedesktop.NetworkManager.Settings

The Settings interface allows clients to view and administrate the connections stored and used by NetworkManager.

## Methods:

### ListConnections ( ) → ao

List the saved network connections known to NetworkManager.

#### Returns

`connections` - `ao`
  List of connections.

### GetConnectionByUuid ( s: uuid ) → o

Retrieve the object path of a connection, given that connection's UUID.

#### Parameters

`uuid` - `s`
  The UUID to find the connection object path for.

#### Returns

`connection` - `o`
  The connection's object path.

### AddConnection ( a{sa{sv}}: connection ) → o

Add new connection and save it to disk. This operation does not start the network connection unless (1) device is idle and able to connect to the network described by the new connection, and (2) the connection is allowed to be started automatically.

#### Parameters

`connection` - `a{sa{sv}}`
  Connection settings and properties.

#### Returns

`path` - `o`
  Object path of the new connection that was just added.

### AddConnectionUnsaved ( a{sa{sv}}: connection ) → o

Add new connection but do not save it to disk immediately. This operation does not start the network connection unless (1) device is idle and able to connect to the network described by the new connection, and (2) the connection is allowed to be started automatically. Use the 'Save' method on the connection to save these changes to disk. Note that unsaved changes will be lost if the connection is reloaded from disk (either automatically on file change or due to an explicit ReloadConnections call).

#### Parameters

`connection` - `a{sa{sv}}`
  Connection settings and properties.

#### Returns

`path` - `o`
  Object path of the new connection that was just added.

### LoadConnections ( as: filenames ) → b, as

Loads or reloads the indicated connections from disk. You should call this after making changes directly to an on-disk connection file to make sure that NetworkManager sees the changes. (If "monitor-connection-files" in NetworkManager.conf is "true", then this will have no real effect, but is harmless.) As with AddConnection(), this operation does not necessarily start the network connection.

#### Parameters

`filenames` - `as`
  Array of paths to on-disk connection profiles in directories monitored by NetworkManager.

#### Returns

`status` - `b`
  Success or failure of the operation as a whole. True if NetworkManager at least tried to load the indicated connections, even if it did not succeed. False if an error occurred before trying to load the connections (eg, permission denied).
`failures` - `as`
  Paths of connection files that could not be loaded.

### ReloadConnections ( ) → b

Tells NetworkManager to reload all connection files from disk, including noticing any added or deleted connection files. By default, connections are re-read automatically any time they change, so you only need to use this command if you have set "monitor-connection-files=false" in NetworkManager.conf.

#### Returns

`status` - `b`
  Success or failure.

### SaveHostname ( s: hostname ) → nothing

Save the hostname to persistent configuration.

#### Parameters

`hostname` - `s`
  The hostname to save to persistent configuration. If blank, the persistent hostname is cleared.

## Signals:

### PropertiesChanged ( a{sv}: properties )

#### Parameters

`properties` - `a{sv}` (String_Variant_Map)
  A dictionary mapping property names to variant boxed values

### NewConnection ( o: connection )

Emitted when a new connection has been added after NetworkManager has started up and initialized. This signal is not emitted for connections read while starting up, because NetworkManager's D-Bus service is only available after all connections have been read, and to prevent spamming listeners with too many signals at one time. To retrieve the initial connection list, call the ListConnections() method once, and then listen for individual Settings.NewConnection and Settings.Connection.Deleted signals for further updates.

#### Parameters

`connection` - `o`
  Object path of the new connection.

### ConnectionRemoved ( o: connection )

Emitted when a connection is no longer available. This happens when the connection is deleted or if it is no longer accessible by any of the system's logged-in users. After receipt of this signal, the connection no longer exists and cannot be used. Also see the Settings.Connection.Removed signal.

#### Parameters

`connection` - `o`
  Object path of the removed connection.

## Properties:

`Connections` - `ao` - `(read)`
  List of object paths of available network connection profiles.
`Hostname` - `s` - `(read)`
  The machine hostname stored in persistent configuration.
`CanModify` - `b` - `(read)`
  If true, adding and modifying connections is supported.

# org.freedesktop.NetworkManager.Settings.Connection

Represents a single network connection configuration.

## Methods:

### Update ( a{sa{sv}}: properties ) → nothing

Update the connection with new settings and properties (replacing all previous settings and properties) and save the connection to disk. Secrets may be part of the update request, and will be either stored in persistent storage or sent to a Secret Agent for storage, depending on the flags associated with each secret.

#### Parameters

`properties` - `a{sa{sv}}`
  New connection settings, properties, and (optionally) secrets.

### UpdateUnsaved ( a{sa{sv}}: properties ) → nothing

Update the connection with new settings and properties (replacing all previous settings and properties) but do not immediately save the connection to disk. Secrets may be part of the update request and may sent to a Secret Agent for storage, depending on the flags associated with each secret. Use the 'Save' method to save these changes to disk. Note that unsaved changes will be lost if the connection is reloaded from disk (either automatically on file change or due to an explicit ReloadConnections call).

#### Parameters

`properties` - `a{sa{sv}}`
  New connection settings, properties, and (optionally) secrets.

### Delete ( ) → nothing

Delete the connection.

### GetSettings ( ) → a{sa{sv}}

Get the settings maps describing this network configuration. This will never include any secrets required for connection to the network, as those are often protected. Secrets must be requested separately using the GetSecrets() call.

#### Returns

`settings` - `a{sa{sv}}` (String_String_Variant_Map_Map)
  The nested settings maps describing this object.

### GetSecrets ( s: setting_name ) → a{sa{sv}}

Get the secrets belonging to this network configuration. Only secrets from persistent storage or a Secret Agent running in the requestor's session will be returned. The user will never be prompted for secrets as a result of this request.

#### Parameters

`setting_name` - `s`
  Name of the setting to return secrets for. If empty, all all secrets will be returned.

#### Returns

`secrets` - `a{sa{sv}}` (String_String_Variant_Map_Map)
  Nested settings maps containing secrets.

### ClearSecrets ( ) → nothing

Clear the secrets belonging to this network connection profile.

### Save ( ) → nothing

Saves a "dirty" connection (that had previously been updated with UpdateUnsaved) to persistent storage.

## Signals:

### Updated ( )

Emitted when any settings or permissions change. When handling this signal, clients should re-read the connection using the GetSettings method to get the changes and to ensure the client still has permission to access the connection.

### Removed ( )

Emitted when this connection is no longer available. This happens when the connection is deleted or if it is no longer accessible by any of the system's logged-in users. After receipt of this signal, the object no longer exists. Also see the Settings.ConnectionRemoved signal.

### PropertiesChanged ( a{sv}: properties )

#### Parameters

`properties` - `a{sv}` (String_Variant_Map)
  A dictionary mapping property names to variant boxed values.

## Properties:

`Unsaved` - `b` - `(read)`
  If set, indicates that the in-memory state of the connection does not match the on-disk state. This flag will be set when UpdateUnsaved() is called or when any connection details change, and cleared when the connection is saved to disk via Save() or from internal operations.

# org.freedesktop.NetworkManager.Connection.Active

Objects that implement the Connection.Active interface represent an attempt to connect to a network using the details provided by a Connection object. The Connection.Active object tracks the life-cycle of the connection attempt and if successful indicates whether the connected network is the "default" or preferred network for access.

Interface has no methods.

## Signals:

### PropertiesChanged ( a{sv}: properties )

#### Parameters

`properties` - `a{sv}` (String_Variant_Map)
  A dictionary mapping property names to variant boxed values

## Properties:

`Connection` - `o` - `(read)`
  The path of the connection.
`SpecificObject` - `o` - `(read)`
  A specific object associated with the active connection. This property reflects the specific object used during connection activation, and will not change over the lifetime of the ActiveConnection once set.
`Id` - `s` - `(read)`
  The ID of the connection, provided as a convenience so that clients do not have to retrieve all connection details.
`Uuid` - `s` - `(read)`
  The UUID of the connection, provided as a convenience so that clients do not have to retrieve all connection details.
`Type` - `s` - `(read)`
  The type of the connection, provided as a convenience so that clients do not have to retrieve all connection details.
`Devices` - `ao` - `(read)`
  Array of object paths representing devices which are part of this active connection.
`State` - `u` - `(read)` (NM_ACTIVE_CONNECTION_STATE)
  The state of this active connection.
`Default` - `b` - `(read)`
  Whether this active connection is the default IPv4 connection, i.e. whether it currently owns the default IPv4 route.
`Ip4Config` - `o` - `(read)`
  Object path of the Ip4Config object describing the configuration of the connection. Only valid when the connection is in the NM_ACTIVE_CONNECTION_STATE_ACTIVATED state.
`Dhcp4Config` - `o` - `(read)`
  Object path of the Dhcp4Config object describing the DHCP options returned by the DHCP server (assuming the connection used DHCP). Only valid when the connection is in the NM_ACTIVE_CONNECTION_STATE_ACTIVATED state.
`Default6` - `b` - `(read)`
  Whether this active connection is the default IPv6 connection, i.e. whether it currently owns the default IPv6 route.
`Ip6Config` - `o` - `(read)`
  Object path of the Ip6Config object describing the configuration of the connection. Only valid when the connection is in the NM_ACTIVE_CONNECTION_STATE_ACTIVATED state.
`Dhcp6Config` - `o` - `(read)`
  Object path of the Dhcp6Config object describing the DHCP options returned by the DHCP server (assuming the connection used DHCP). Only valid when the connection is in the NM_ACTIVE_CONNECTION_STATE_ACTIVATED state.
`Vpn` - `b` - `(read)`
  Whether this active connection is also a VPN connection.
`Master` - `o` - `(read)`
  The path to the master device if the connection is a slave.

## Enumerated types:

### NM_ACTIVE_CONNECTION_STATE

`NM_ACTIVE_CONNECTION_STATE_UNKNOWN = 0`
  The active connection is in an unknown state.
`NM_ACTIVE_CONNECTION_STATE_ACTIVATING = 1`
  The connection is activating.
`NM_ACTIVE_CONNECTION_STATE_ACTIVATED = 2`
  The connection is activated.
`NM_ACTIVE_CONNECTION_STATE_DEACTIVATING = 3`
  The connection is being torn down and cleaned up.
`NM_ACTIVE_CONNECTION_STATE_DEACTIVATED = 4`
  The connection is no longer active.

# org.freedesktop.NetworkManager.AgentManager

## Methods:

### Register ( s: identifier ) → nothing

Called by secret Agents to register their ability to provide and save network secrets.

#### Parameters

`identifier` - `s`
  Identifies this agent; only one agent in each user session may use the same identifier. Identifier formatting follows the same rules as D-Bus bus names with the exception that the ':' character is not allowed. The valid set of characters is "[A-Z][a-z][0-9]_-." and the identifier is limited in length to 255 characters with a minimum of 3 characters. An example valid identifier is 'org.gnome.nm-applet' (without quotes).

### RegisterWithCapabilities ( s: identifier, u: capabilities ) → nothing

Like Register() but indicates agent capabilities to NetworkManager.

#### Parameters

`identifier` - `s`
  See the Register() method's identifier argument.
`capabilities` - `u` (NM_SECRET_AGENT_CAPABILITIES)
  Indicates various agent capabilities to NetworkManager.

### Unregister ( ) → nothing

Called by secret Agents to notify NetworkManager that they will no longer handle requests for network secrets. Agents are automatically unregistered when they disconnect from D-Bus.

Interface has no signals.

Interface has no properties.

# org.freedesktop.NetworkManager.SecretAgent

Private D-Bus interface used by secret agents that store and provide secrets to NetworkManager. If an agent provides secrets to NetworkManager as part of connection creation, and the some of those secrets are "agent owned" the agent should store those secrets itself and should not expect its SaveSecrets() method to be called. SaveSecrets() will be called eg if some program other than the agent itself (like a connection editor) changes the secrets out of band. The agent should implement this D-Bus interface on an object with the path /org/freedesktop/NetworkManager/SecretAgent.

## Methods:

### GetSecrets ( a{sa{sv}}: connection, o: connection_path, s: setting_name, as: hints, u: flags ) → a{sa{sv}}

Retrieve and return stored secrets, if any, or request new secrets from the agent's user. If user interaction is allowed and the user enters new secrets, the agent is expected to save the new secrets to persistent storage (if the secret's flags include AGENT_OWNED) as NetworkManager will not send these secrets back to the same agent via a SaveSecrets() call. If the user canceled any interaction, the agent should return the UserCanceled error (see below).

#### Parameters

`connection` - `a{sa{sv}}` (String_String_Variant_Map_Map)
  Nested settings maps containing the connection for which secrets are being requested. This may contain system-owned secrets if the agent has successfully authenticated to modify system network settings and the GetSecrets request flags allow user interaction.
`connection_path` - `o`
  Object path of the connection for which secrets are being requested.
`setting_name` - `s`
  Setting name for which secrets are being requested.
`hints` - `as`
  Array of strings of key names in the requested setting for which NetworkManager thinks a secrets may be required, and/or well-known identifiers and data that may be useful to the client in processing the secrets request. Note that it's not always possible to determine which secret is required, so in some cases no hints may be given. The Agent should return any secrets it has, or that it thinks are required, regardless of what hints NetworkManager sends in this request. Some hints have special prefixes that provide information to the agent; for example, VPN requests may send server-specific messages prefixed with "x-vpn-message:".
`flags` - `u` (NM_SECRET_AGENT_GET_SECRETS_FLAGS)
  Flags which modify the behavior of the secrets request. If true, new secrets are assumed to be invalid or incorrect, and the agent should ask the user for new secrets. If false, existing secrets should be retrieved from storage and returned without interrupting the user.

#### Returns

`secrets` - `a{sa{sv}}` (String_String_Variant_Map_Map)
  Nested settings maps containing secrets. Each setting MUST contain at least the 'name' field, containing the name of the setting, and one or more secrets.

#### Possible errors

`org.freedesktop.NetworkManager.SecretAgent.NotAuthorized`
  Should be returned when the process requesting secrets is not authorized to do so (like if the caller is not root or not NetworkManager).
`org.freedesktop.NetworkManager.SecretAgent.InvalidConnection`
  Should be returned if the 'connection' argument is invalid.
`org.freedesktop.NetworkManager.SecretAgent.UserCanceled`
  Should be returned when the user has canceled the request.
`org.freedesktop.NetworkManager.SecretAgent.AgentCanceled`
  Should be returned when NetworkManager has requested that the agent cancel the request.
`org.freedesktop.NetworkManager.SecretAgent.InternalError`
  Should be returned if the agent has encountered some internal error processing the request.
`org.freedesktop.NetworkManager.SecretAgent.NoSecrets`
  Should be returned if there are no available secrets, for example if user interaction is not allowed and there are no secrets stored by the agent for this connection.

### CancelGetSecrets ( o: connection_path, s: setting_name ) → nothing

Cancel a pending GetSecrets request for secrets of the given connection. Any GetSecrets request with the same 'connection_path' and 'setting_name' that are given in a CancelGetSecrets request should be canceled.

#### Parameters

`connection_path` - `o`
  Object path of the connection for which, if secrets for the given 'setting_name' are being requested, the request should be canceled.
`setting_name` - `s`
  Setting name for which secrets for this connection were originally being requested.

### SaveSecrets ( a{sa{sv}}: connection, o: connection_path ) → nothing

Save given secrets to backing storage.

#### Parameters

`connection` - `a{sa{sv}}` (String_String_Variant_Map_Map)
  Nested settings maps containing the entire connection (including secrets), for which the agent should save the secrets to backing storage. This method will not be called when the agent itself is the process creating or updating a connection; in that case the agent is assumed to have already saved those secrets since it had them already.
`connection_path` - `o`
  Object path of the connection for which the agent should save secrets to backing storage.

### DeleteSecrets ( a{sa{sv}}: connection, o: connection_path ) → nothing

Delete secrets from backing storage.

#### Parameters

`connection` - `a{sa{sv}}` (String_String_Variant_Map_Map)
  Nested settings maps containing the connection properties (sans secrets), for which the agent should delete the secrets from backing storage.
`connection_path` - `o`
  Object path of the connection for which the agent should delete secrets from backing storage.

Interface has no signals.

Interface has no properties.

## Sets of flags:

### NM_SECRET_AGENT_GET_SECRETS_FLAGS

Flags modifying the behavior of GetSecrets request.

`NM_SECRET_AGENT_GET_SECRETS_FLAG_NONE = 0x0`
  No special behavior; by default no user interaction is allowed and requests for secrets are fulfilled from persistent storage, or if no secrets are available an error is returned.
`NM_SECRET_AGENT_GET_SECRETS_FLAG_ALLOW_INTERACTION = 0x1`
  Allows the request to interact with the user, possibly prompting via UI for secrets if any are required, or if none are found in persistent storage.
`NM_SECRET_AGENT_GET_SECRETS_FLAG_REQUEST_NEW = 0x2`
  Explicitly prompt for new secrets from the user. This flag signals that NetworkManager thinks any existing secrets are invalid or wrong. This flag implies that interaction is allowed.
`NM_SECRET_AGENT_GET_SECRETS_FLAG_USER_REQUESTED = 0x4`
  Set if the request was initiated by user-requested action via the D-Bus interface, as opposed to automatically initiated by NetworkManager in response to (for example) scan results or carrier changes.

### NM_SECRET_AGENT_CAPABILITIES

`NM_SECRET_AGENT_CAPABILITY_NONE = 0x0`
  No special capabilities.
`NM_SECRET_AGENT_CAPABILITY_VPN_HINTS = 0x1`
  The agent supports passing hints to VPN plugin authentication dialogs.

# org.freedesktop.NetworkManager.VPN.Connection

Represents an active connection to a Virtual Private Network.

Interface has no methods.

## Signals:

### PropertiesChanged ( a{sv}: properties )

#### Parameters

`properties` - `a{sv}` (String_Variant_Map)
  A dictionary mapping property names to variant boxed values

### VpnStateChanged ( u: state, u: reason )

Emitted when the state of the VPN connection has changed.

#### Parameters

`state` - `u` (NM_VPN_CONNECTION_STATE)
  The new state of the VPN connection.
`reason` - `u` (NM_VPN_CONNECTION_STATE_REASON)
  Reason code describing the change to the new state.

## Properties:

`VpnState` - `u` - `(read)` (NM_VPN_CONNECTION_STATE)
  The VPN-specific state of the connection.
`Banner` - `s` - `(read)`
  The banner string of the VPN connection.

## Enumerated types:

### NM_VPN_CONNECTION_STATE

`NM_VPN_CONNECTION_STATE_UNKNOWN = 0`
  The state of the VPN connection is unknown.
`NM_VPN_CONNECTION_STATE_PREPARE = 1`
  The VPN connection is preparing to connect.
`NM_VPN_CONNECTION_STATE_NEED_AUTH = 2`
  The VPN connection needs authorization credentials.
`NM_VPN_CONNECTION_STATE_CONNECT = 3`
  The VPN connection is being established. FIXME: Should be CONNECTING or CONNECTED.
`NM_VPN_CONNECTION_STATE_IP_CONFIG_GET = 4`
  The VPN connection is getting an IP address. FIXME: Should be an -ING
`NM_VPN_CONNECTION_STATE_ACTIVATED = 5`
  The VPN connection is active.
`NM_VPN_CONNECTION_STATE_FAILED = 6`
  The VPN connection failed.
`NM_VPN_CONNECTION_STATE_DISCONNECTED = 7`
  The VPN connection is disconnected.

### NM_VPN_CONNECTION_STATE_REASON

`NM_VPN_CONNECTION_STATE_REASON_UNKNOWN = 0`
  The reason for the VPN connection state change is unknown.
`NM_VPN_CONNECTION_STATE_REASON_NONE = 1`
  No reason was given for the VPN connection state change.
`NM_VPN_CONNECTION_STATE_REASON_USER_DISCONNECTED = 2`
  The VPN connection changed state because the user disconnected it.
`NM_VPN_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED = 3`
  The VPN connection changed state because the device it was using was disconnected.
`NM_VPN_CONNECTION_STATE_REASON_SERVICE_STOPPED = 4`
  The service providing the VPN connection was stopped.
`NM_VPN_CONNECTION_STATE_REASON_IP_CONFIG_INVALID = 5`
  The IP config of the VPN connection was invalid.
`NM_VPN_CONNECTION_STATE_REASON_CONNECT_TIMEOUT = 6`
  The connection attempt to the VPN service timed out.
`NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_TIMEOUT = 7`
  A timeout occurred while starting the service providing the VPN connection.
`NM_VPN_CONNECTION_STATE_REASON_SERVICE_START_FAILED = 8`
  Starting the service starting the service providing the VPN connection failed.
`NM_VPN_CONNECTION_STATE_REASON_NO_SECRETS = 9`
  Necessary secrets for the VPN connection were not provided.
`NM_VPN_CONNECTION_STATE_REASON_LOGIN_FAILED = 10`
  Authentication to the VPN server failed.
`NM_VPN_CONNECTION_STATE_REASON_CONNECTION_REMOVED = 11`
  The connection was deleted from settings.

# org.freedesktop.NetworkManager.VPN.Plugin

This interface is provided by plugins providing VPN services to the NetworkManager daemon.

## Methods:

### Connect ( a{sa{sv}}: connection ) → nothing

Tells the plugin to connect. Interactive secrets requests (eg, emitting the SecretsRequired signal) are not allowed.

#### Parameters

`connection` - `a{sa{sv}}` (String_String_Variant_Map_Map)
  Describes the connection to be established.

#### Possible errors

`org.freedesktop.NetworkManager.VPN.Error.StartingInProgress`
  The plugin is already starting, and another connect request was received. (generic description)
`org.freedesktop.NetworkManager.VPN.Error.AlreadyStarted`
  The plugin is already connected, and another connect request was received. (generic description)
`org.freedesktop.NetworkManager.VPN.Error.StoppingInProgress`
  The plugin is already stopping, and another stop request was received. (generic description)
`org.freedesktop.NetworkManager.VPN.Error.BadArguments`
  The request could not be processed because it contained malformed arguments, or arguments of unexpected type. It usually means that one of the VPN setting data items or secrets was not of the expected type (i.e. int, string, bool, etc). (generic description)
`org.freedesktop.NetworkManager.VPN.Error.LaunchFailed`
  A binary providing the service failed to launch. (generic description)
`org.freedesktop.NetworkManager.VPN.Error.WrongState`
  The request could not be processed because the VPN plugin is in the wrong state for this type of request. (generic description)

### ConnectInteractive ( a{sa{sv}}: connection, a{sv}: details ) → nothing

Tells the plugin to connect, allowing interactive secrets requests (eg the plugin is allowed to emit the SecretsRequired signal if the VPN service indicates that it needs additional secrets during the connect process).

#### Parameters

`connection` - `a{sa{sv}}` (String_String_Variant_Map_Map)
  Describes the connection to be established.
`details` - `a{sv}` (String_Variant_Map)
  Additional details about the Connect process.

#### Possible errors

`org.freedesktop.NetworkManager.VPN.Error.StartingInProgress`
  The plugin is already starting, and another connect request was received. (generic description)
`org.freedesktop.NetworkManager.VPN.Error.AlreadyStarted`
  The plugin is already connected, and another connect request was received. (generic description)
`org.freedesktop.NetworkManager.VPN.Error.StoppingInProgress`
  The plugin is already stopping, and another stop request was received. (generic description)
`org.freedesktop.NetworkManager.VPN.Error.BadArguments`
  The request could not be processed because it contained malformed arguments, or arguments of unexpected type. It usually means that one of the VPN setting data items or secrets was not of the expected type (i.e. int, string, bool, etc). (generic description)
`org.freedesktop.NetworkManager.VPN.Error.LaunchFailed`
  A binary providing the service failed to launch. (generic description)
`org.freedesktop.NetworkManager.VPN.Error.WrongState`
  The request could not be processed because the VPN plugin is in the wrong state for this type of request. (generic description)
`org.freedesktop.NetworkManager.VPN.Error.InteractiveNotSupported`
  The request could not be processed because the plugin does not support interactive operations, such as ConnectInteractive() or NewSecrets(). (generic description)

### NeedSecrets ( a{sa{sv}}: settings ) → s

Asks the plugin whether the provided connection will require secrets to connect successfully.

#### Parameters

`settings` - `a{sa{sv}}` (String_String_Variant_Map_Map)
  Describes the connection that may need secrets.

#### Returns

`setting_name` - `s`
  The setting name within the provided connection that requires secrets, if any.

#### Possible errors

`org.freedesktop.NetworkManager.VPN.Error.ConnectionInvalid`
  The request could not be processed because the connection was invalid. It usually means that the connection's VPN setting was missing some required data item or secret. (generic description)

### Disconnect ( ) → nothing

Disconnect the plugin.

#### Possible errors

`org.freedesktop.NetworkManager.VPN.Error.StoppingInProgress`
  The plugin is already stopping, and another stop request was received. (generic description)
`org.freedesktop.NetworkManager.VPN.Error.AlreadyStopped`
  The plugin is already stopped, and another disconnect request was received. (generic description)

### SetConfig ( a{sv}: config ) → nothing

Set generic connection details on the connection.

#### Parameters

`config` - `a{sv}` (String_Variant_Map)
  Generic configuration details for the connection.

### SetIp4Config ( a{sv}: config ) → nothing

Set IPv4 details on the connection.

#### Parameters

`config` - `a{sv}` (String_Variant_Map)
  Ip4Config details for the connection. You must call SetConfig() before calling this.

### SetIp6Config ( a{sv}: config ) → nothing

Set IPv6 details on the connection.

#### Parameters

`config` - `a{sv}` (String_Variant_Map)
  Ip6Config details for the connection. You must call SetConfig() before calling this.

### SetFailure ( s: reason ) → nothing

Indicate a failure to the plugin.

#### Parameters

`reason` - `s`
  The reason for the failure.

### NewSecrets ( a{sa{sv}}: connection ) → nothing

Called in response to a SecretsRequired signal to deliver updated secrets or other information to the plugin.

#### Parameters

`connection` - `a{sa{sv}}` (String_String_Variant_Map_Map)
  Describes the connection including the new secrets.

#### Possible errors

`org.freedesktop.NetworkManager.VPN.Error.WrongState`
  The request could not be processed because the VPN plugin is in the wrong state for this type of request. (generic description)
`org.freedesktop.NetworkManager.VPN.Error.BadArguments`
  The request could not be processed because it contained malformed arguments, or arguments of unexpected type. It usually means that one of the VPN setting data items or secrets was not of the expected type (i.e. int, string, bool, etc). (generic description)
`org.freedesktop.NetworkManager.VPN.Error.LaunchFailed`
  A binary providing the service failed to launch. (generic description)
`org.freedesktop.NetworkManager.VPN.Error.InteractiveNotSupported`
  The request could not be processed because the plugin does not support interactive operations, such as ConnectInteractive() or NewSecrets(). (generic description)

## Signals:

### StateChanged ( u: state )

Emitted when the plugin state changes.

#### Parameters

`state` - `u` (NM_VPN_SERVICE_STATE)
  The new state of the plugin.

### SecretsRequired ( s: message, as: secrets )

Emitted during an ongoing ConnectInteractive() request when the plugin has determined that new secrets are required. NetworkManager will then call the NewSecrets() method with a connection hash including the new secrets.

#### Parameters

`message` - `s`
  Informational message, if any, about the request. For example, if a second PIN is required, could indicate to the user to wait for the token code to change until entering the next PIN.
`secrets` - `as`
  Array of strings of VPN secret names which the plugin thinks secrets may be required for, or other VPN-specific data to be processed by the VPN's front-end.

### Config ( a{sv}: config )

The plugin obtained generic configuration information.

#### Parameters

`config` - `a{sv}` (String_Variant_Map)
  The configuration information.

### Ip4Config ( a{sv}: ip4config )

The plugin obtained an IPv4 configuration.

#### Parameters

`ip4config` - `a{sv}` (String_Variant_Map)
  The IPv4 configuration.

### Ip6Config ( a{sv}: ip6config )

The plugin obtained an IPv6 configuration.

#### Parameters

`ip6config` - `a{sv}` (String_Variant_Map)
  The IPv6 configuration.

### LoginBanner ( s: banner )

Emitted when the plugin receives a login banner from the VPN service.

#### Parameters

`banner` - `s`
  The login banner string.

### Failure ( u: reason )

Emitted when a failure in the VPN plugin occurs.

#### Parameters

`reason` - `u` (NM_VPN_PLUGIN_FAILURE)
  Reason code for the failure.

## Properties:

`State` - `u` - `(read)` (NM_VPN_SERVICE_STATE)
  The state of the plugin.

## Enumerated types:

### NM_VPN_SERVICE_STATE

`NM_VPN_SERVICE_STATE_UNKNOWN = 0`
  The state of the VPN plugin is unknown.
`NM_VPN_SERVICE_STATE_INIT = 1`
  The VPN plugin is initialized.
`NM_VPN_SERVICE_STATE_SHUTDOWN = 2`
  (Not used.)
`NM_VPN_SERVICE_STATE_STARTING = 3`
  The plugin is attempting to connect to a VPN server.
`NM_VPN_SERVICE_STATE_STARTED = 4`
  The plugin has connected to a VPN server.
`NM_VPN_SERVICE_STATE_STOPPING = 5`
  The plugin is disconnecting from the VPN server.
`NM_VPN_SERVICE_STATE_STOPPED = 6`
  The plugin has disconnected from the VPN server.

### NM_VPN_PLUGIN_FAILURE

`NM_VPN_PLUGIN_FAILURE_LOGIN_FAILED = 0`
  Login failed.
`NM_VPN_PLUGIN_FAILURE_CONNECT_FAILED = 1`
  Connect failed.
`NM_VPN_PLUGIN_FAILURE_BAD_IP_CONFIG = 2`
  Invalid IP configuration returned from the VPN plugin.

# Generic types:

## Enumerated types:

### NM_802_11_MODE

`NM_802_11_MODE_UNKNOWN = 0`
  Mode is unknown.
`NM_802_11_MODE_ADHOC = 1`
  For both devices and access point objects, indicates the object is part of an Ad-Hoc 802.11 network without a central coordinating access point.
`NM_802_11_MODE_INFRA = 2`
  The wireless device or access point is in infrastructure mode. For devices, this indicates the device is an 802.11 client/station. For access point objects, this indicates the object is an access point that provides connectivity to clients.
`NM_802_11_MODE_AP = 3`
  The device is an access point/hotspot. Not valid for access point objects themselves.

## Mapping types:

### String_Variant_Map - a{ s: Key → v: Value }

A mapping from strings to variants representing extra key-value pairs.

#### Members

`Key` - `s`
  (undocumented)
`Value` - `v`
  (undocumented)

### String_String_Map - a{ s: Key → s: Value }

A mapping from strings to strings representing extra key-value pairs.

#### Members

`Key` - `s`
  (undocumented)
`Value` - `s`
  (undocumented)

### String_String_Variant_Map_Map - a{ s: Key → a{sv}: Value }

A mapping from strings to a map of string to variant.

#### Members

`Key` - `s`
  (undocumented)
`Value` - `a{sv}` (String_Variant_Map)
  (undocumented)

# Errors:

## org.freedesktop.NetworkManager.Error.UnknownConnection

Connection was not provided by the settings service.

## org.freedesktop.NetworkManager.Error.UnknownDevice

Unknown device.

## org.freedesktop.NetworkManager.Error.PermissionDenied

User does not have the permission to activate this connection.

# Errors:

## org.freedesktop.NetworkManager.VPN.Error.General

General failure without further details.

## org.freedesktop.NetworkManager.VPN.Error.StartingInProgress

The plugin is already starting, and another connect request was received.

## org.freedesktop.NetworkManager.VPN.Error.AlreadyStarted

The plugin is already connected, and another connect request was received.

## org.freedesktop.NetworkManager.VPN.Error.StoppingInProgress

The plugin is already stopping, and another stop request was received.

## org.freedesktop.NetworkManager.VPN.Error.AlreadyStopped

The plugin is already stopped, and another disconnect request was received.

## org.freedesktop.NetworkManager.VPN.Error.WrongState

The request could not be processed because the VPN plugin is in the wrong state for this type of request.

## org.freedesktop.NetworkManager.VPN.Error.BadArguments

The request could not be processed because it contained malformed arguments, or arguments of unexpected type. It usually means that one of the VPN setting data items or secrets was not of the expected type (i.e. int, string, bool, etc).

## org.freedesktop.NetworkManager.VPN.Error.LaunchFailed

A binary providing the service failed to launch.

## org.freedesktop.NetworkManager.VPN.Error.ConnectionInvalid

The request could not be processed because the connection was invalid. It usually means that the connection's VPN setting was missing some required data item or secret.

## org.freedesktop.NetworkManager.VPN.Error.InteractiveNotSupported

The request could not be processed because the plugin does not support interactive operations, such as ConnectInteractive() or NewSecrets().

# Index

## Index of interfaces

- `org.freedesktop.NetworkManager`
- `org.freedesktop.NetworkManager.AccessPoint`
- `org.freedesktop.NetworkManager.Device`
- `org.freedesktop.NetworkManager.Device.Wired`
- `org.freedesktop.NetworkManager.Device.Wireless`
- `org.freedesktop.NetworkManager.Device.Modem`
- `org.freedesktop.NetworkManager.Device.Bluetooth`
- `org.freedesktop.NetworkManager.Device.OlpcMesh`
- `org.freedesktop.NetworkManager.Device.WiMax`
- `org.freedesktop.NetworkManager.Device.Infiniband`
- `org.freedesktop.NetworkManager.Device.Bond`
- `org.freedesktop.NetworkManager.Device.Bridge`
- `org.freedesktop.NetworkManager.Device.Team`
- `org.freedesktop.NetworkManager.Device.Generic`
- `org.freedesktop.NetworkManager.Device.Vlan`
- `org.freedesktop.NetworkManager.Device.Adsl`
- `org.freedesktop.NetworkManager.WiMax.Nsp`
- `org.freedesktop.NetworkManager.IP4Config`
- `org.freedesktop.NetworkManager.IP6Config`
- `org.freedesktop.NetworkManager.DHCP4Config`
- `org.freedesktop.NetworkManager.DHCP6Config`
- `org.freedesktop.NetworkManager.Settings`
- `org.freedesktop.NetworkManager.Settings.Connection`
- `org.freedesktop.NetworkManager.Connection.Active`
- `org.freedesktop.NetworkManager.AgentManager`
- `org.freedesktop.NetworkManager.SecretAgent`
- `org.freedesktop.NetworkManager.VPN.Connection`
- `org.freedesktop.NetworkManager.VPN.Plugin`

## Index of types

- `NM_802_11_AP_FLAGS` - u
- `NM_802_11_AP_SEC` - u
- `NM_802_11_DEVICE_CAP` - u
- `NM_802_11_MODE` - u
- `NM_ACTIVE_CONNECTION_STATE` - u
- `NM_BT_CAPABILITIES` - u
- `NM_CONNECTIVITY` - u
- `NM_DEVICE_CAP` - u
- `NM_DEVICE_MODEM_CAPABILITIES` - u
- `NM_DEVICE_STATE` - u
- `NM_DEVICE_STATE_REASON` - u
- `NM_DEVICE_STATE_REASON_STRUCT` - ( u, u )
- `NM_DEVICE_TYPE` - u
- `NM_SECRET_AGENT_CAPABILITIES` - u
- `NM_SECRET_AGENT_GET_SECRETS_FLAGS` - u
- `NM_STATE` - u
- `NM_VPN_CONNECTION_STATE` - u
- `NM_VPN_CONNECTION_STATE_REASON` - u
- `NM_VPN_PLUGIN_FAILURE` - u
- `NM_VPN_SERVICE_STATE` - u
- `NM_WIMAX_NSP_NETWORK_TYPE` - u
- `String_String_Map` - a{ s → s }
- `String_String_Variant_Map_Map` - a{ s → a{sv} }
- `String_Variant_Map` - a{ s → v }