## NMSettingVPN NMSettingVPN |

## Synopsis

    #define             NM_SETTING_VPN_SETTING_NAME
    enum                NMSettingVpnError;
    #define             NM_TYPE_SETTING_VPN_ERROR
    #define             NM_SETTING_VPN_ERROR
    GQuark              nm_setting_vpn_error_quark          (void);
    #define             NM_SETTING_VPN_SERVICE_TYPE
    #define             NM_SETTING_VPN_USER_NAME
    #define             NM_SETTING_VPN_DATA
    #define             NM_SETTING_VPN_SECRETS
                        NMSettingVPN;
                        NMSettingVPNClass;
    void                (*VPNIterFunc)                      (const char *key,
                                                             const char *value,
                                                             gpointer user_data);
    GType               nm_setting_vpn_get_type             (void);
    NMSetting *         nm_setting_vpn_new                  (void);
    const char *        nm_setting_vpn_get_service_type     (NMSettingVPN *setting);
    const char *        nm_setting_vpn_get_user_name        (NMSettingVPN *setting);
    void                nm_setting_vpn_add_data_item        (NMSettingVPN *setting,
                                                             const char *key,
                                                             const char *item);
    const char *        nm_setting_vpn_get_data_item        (NMSettingVPN *setting,
                                                             const char *key);
    void                nm_setting_vpn_remove_data_item     (NMSettingVPN *setting,
                                                             const char *key);
    void                nm_setting_vpn_foreach_data_item    (NMSettingVPN *setting,
                                                             VPNIterFunc func,
                                                             gpointer user_data);
    void                nm_setting_vpn_add_secret           (NMSettingVPN *setting,
                                                             const char *key,
                                                             const char *secret);
    const char *        nm_setting_vpn_get_secret           (NMSettingVPN *setting,
                                                             const char *key);
    void                nm_setting_vpn_remove_secret        (NMSettingVPN *setting,
                                                             const char *key);
    void                nm_setting_vpn_foreach_secret       (NMSettingVPN *setting,
                                                             VPNIterFunc func,
                                                             gpointer user_data);

## Object Hierarchy

      GObject
       +----NMSetting
             +----NMSettingVPN

## Properties

      "data"                     GHashTable_gchararray+gchararray_*  : Read / Write
      "secrets"                  GHashTable_gchararray+gchararray_*  : Read / Write
      "service-type"             gchar*                : Read / Write
      "user-name"                gchar*                : Read / Write

## Description

## Details

### NM_SETTING_VPN_SETTING_NAME

    #define NM_SETTING_VPN_SETTING_NAME "vpn"

### enum NMSettingVpnError

    typedef enum
    {
    	NM_SETTING_VPN_ERROR_UNKNOWN = 0,
    	NM_SETTING_VPN_ERROR_INVALID_PROPERTY,
    	NM_SETTING_VPN_ERROR_MISSING_PROPERTY,
    } NMSettingVpnError;

### NM_TYPE_SETTING_VPN_ERROR

    #define NM_TYPE_SETTING_VPN_ERROR (nm_setting_vpn_error_get_type ())

### NM_SETTING_VPN_ERROR

    #define NM_SETTING_VPN_ERROR nm_setting_vpn_error_quark ()

### nm_setting_vpn_error_quark ()

    GQuark              nm_setting_vpn_error_quark          (void);

Returns : |

### NM_SETTING_VPN_SERVICE_TYPE

    #define NM_SETTING_VPN_SERVICE_TYPE "service-type"

### NM_SETTING_VPN_USER_NAME

    #define NM_SETTING_VPN_USER_NAME    "user-name"

### NM_SETTING_VPN_DATA

    #define NM_SETTING_VPN_DATA         "data"

### NM_SETTING_VPN_SECRETS

    #define NM_SETTING_VPN_SECRETS      "secrets"

### NMSettingVPN

    typedef struct _NMSettingVPN NMSettingVPN;

### NMSettingVPNClass

    typedef struct {
    	NMSettingClass parent;

    	/* Padding for future expansion */
    	void (*_reserved1) (void);
    	void (*_reserved2) (void);
    	void (*_reserved3) (void);
    	void (*_reserved4) (void);
    } NMSettingVPNClass;

### VPNIterFunc ()

    void                (*VPNIterFunc)                      (const char *key,
                                                             const char *value,
                                                             gpointer user_data);

`key` : |
`value` : |
`user_data` : |

### nm_setting_vpn_get_type ()

    GType               nm_setting_vpn_get_type             (void);

Returns : |

### nm_setting_vpn_new ()

    NMSetting *         nm_setting_vpn_new                  (void);

Returns : |

### nm_setting_vpn_get_service_type ()

    const char *        nm_setting_vpn_get_service_type     (NMSettingVPN *setting);

`setting` : |
Returns : |

### nm_setting_vpn_get_user_name ()

    const char *        nm_setting_vpn_get_user_name        (NMSettingVPN *setting);

`setting` : |
Returns : |

### nm_setting_vpn_add_data_item ()

    void                nm_setting_vpn_add_data_item        (NMSettingVPN *setting,
                                                             const char *key,
                                                             const char *item);

`setting` : |
`key` : |
`item` : |

### nm_setting_vpn_get_data_item ()

    const char *        nm_setting_vpn_get_data_item        (NMSettingVPN *setting,
                                                             const char *key);

`setting` : |
`key` : |
Returns : |

### nm_setting_vpn_remove_data_item ()

    void                nm_setting_vpn_remove_data_item     (NMSettingVPN *setting,
                                                             const char *key);

`setting` : |
`key` : |

### nm_setting_vpn_foreach_data_item ()

    void                nm_setting_vpn_foreach_data_item    (NMSettingVPN *setting,
                                                             VPNIterFunc func,
                                                             gpointer user_data);

`setting` : |
`func` : |
`user_data` : |

### nm_setting_vpn_add_secret ()

    void                nm_setting_vpn_add_secret           (NMSettingVPN *setting,
                                                             const char *key,
                                                             const char *secret);

`setting` : |
`key` : |
`secret` : |

### nm_setting_vpn_get_secret ()

    const char *        nm_setting_vpn_get_secret           (NMSettingVPN *setting,
                                                             const char *key);

`setting` : |
`key` : |
Returns : |

### nm_setting_vpn_remove_secret ()

    void                nm_setting_vpn_remove_secret        (NMSettingVPN *setting,
                                                             const char *key);

`setting` : |
`key` : |

### nm_setting_vpn_foreach_secret ()

    void                nm_setting_vpn_foreach_secret       (NMSettingVPN *setting,
                                                             VPNIterFunc func,
                                                             gpointer user_data);

`setting` : |
`func` : |
`user_data` : |

## Property Details

### The `"data"` property

      "data"                     GHashTable_gchararray+gchararray_*  : Read / Write

Dictionary of key/value pairs of VPN plugin specific data. Both keys and values must be strings.

### The `"secrets"` property

      "secrets"                  GHashTable_gchararray+gchararray_*  : Read / Write

Dictionary of key/value pairs of VPN plugin specific secrets like passwords or private keys. Both keys and values must be strings.

### The `"service-type"` property

      "service-type"             gchar*                : Read / Write

D-Bus service name of the VPN plugin that this setting uses to connect to its network. i.e. org.freedesktop.NetworkManager.vpnc for the vpnc plugin.

Default value: NULL

### The `"user-name"` property

      "user-name"                gchar*                : Read / Write

User name of the currently logged in user for connections provided by the user settings service. This name is provided to the VPN plugin to use in lieu of a custom username provided by that VPN plugins specific configuration. The VPN plugin itself decides which user name to use.

Default value: NULL