// This file is automatically generated, please don't edit manually.
package network

import (
	"fmt"
	. "pkg.deepin.io/lib/gettext"
)

// Origin file name ../nm_setting_virtual_section_gen.go

// Virtual section names
const (
	NM_SETTING_VS_GENERAL              = "vs-general"
	NM_SETTING_VS_ETHERNET             = "vs-ethernet"
	NM_SETTING_VS_MOBILE               = "vs-mobile"
	NM_SETTING_VS_MOBILE_GSM           = "vs-mobile-gsm"
	NM_SETTING_VS_MOBILE_CDMA          = "vs-mobile-cdma"
	NM_SETTING_VS_SECURITY             = "vs-security"
	NM_SETTING_VS_WIFI                 = "vs-wifi"
	NM_SETTING_VS_PPPOE                = "vs-pppoe"
	NM_SETTING_VS_PPP                  = "vs-ppp"
	NM_SETTING_VS_VPN                  = "vs-vpn"
	NM_SETTING_VS_VPN_L2TP             = "vs-vpn-l2tp"
	NM_SETTING_VS_VPN_L2TP_IPSEC       = "vs-vpn-l2tp-ipsec"
	NM_SETTING_VS_VPN_L2TP_PPP         = "vs-vpn-l2tp-ppp"
	NM_SETTING_VS_VPN_OPENCONNECT      = "vs-vpn-openconnect"
	NM_SETTING_VS_VPN_OPENVPN          = "vs-vpn-openvpn"
	NM_SETTING_VS_VPN_OPENVPN_SECURITY = "vs-vpn-openvpn-security"
	NM_SETTING_VS_VPN_OPENVPN_TLSAUTH  = "vs-vpn-openvpn-tlsauth"
	NM_SETTING_VS_VPN_OPENVPN_PROXIES  = "vs-vpn-openvpn-proxies"
	NM_SETTING_VS_VPN_OPENVPN_ADVANCED = "vs-vpn-openvpn-advanced"
	NM_SETTING_VS_VPN_PPTP             = "vs-vpn-pptp"
	NM_SETTING_VS_VPN_PPTP_PPP         = "vs-vpn-pptp-ppp"
	NM_SETTING_VS_VPN_VPNC             = "vs-vpn-vpnc"
	NM_SETTING_VS_VPN_VPNC_ADVANCED    = "vs-vpn-vpnc-advanced"
	NM_SETTING_VS_IPV4                 = "vs-ipv4"
	NM_SETTING_VS_IPV6                 = "vs-ipv6"
)

// Virtual section data
var virtualSections = make(map[string]VsectionInfo)

func initVirtualSections() {
	virtualSections[NM_SETTING_VS_GENERAL] = VsectionInfo{
		VirtualSection:  NM_SETTING_VS_GENERAL,
		relatedSections: []string{NM_SETTING_CONNECTION_SETTING_NAME},
		Name:            Tr("General"),
		Keys: []*GeneralKeyInfo{
			&GeneralKeyInfo{Section: "connection", Key: "id", Name: Tr("Name"), WidgetType: "EditLineTextInput", AlwaysUpdate: true, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "connection", Key: "vk-autoconnect", Name: Tr("Automatically connect"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "connection", Key: "vk-no-permission", Name: Tr("For All Users"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
		},
	}
	virtualSections[NM_SETTING_VS_ETHERNET] = VsectionInfo{
		VirtualSection:  NM_SETTING_VS_ETHERNET,
		relatedSections: []string{NM_SETTING_WIRED_SETTING_NAME},
		Name:            Tr("Ethernet"),
		Keys: []*GeneralKeyInfo{
			&GeneralKeyInfo{Section: "802-3-ethernet", Key: "mac-address", Name: Tr("Device MAC Addr"), WidgetType: "EditLineEditComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "802-3-ethernet", Key: "cloned-mac-address", Name: Tr("Cloned MAC Addr"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "802-3-ethernet", Key: "vk-enable-mtu", Name: Tr("Customize MTU"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "802-3-ethernet", Key: "mtu", Name: Tr("MTU"), WidgetType: "EditLineSpinner", AlwaysUpdate: false, UseValueRange: true, MinValue: 0, MaxValue: 10000},
		},
	}
	virtualSections[NM_SETTING_VS_MOBILE] = VsectionInfo{
		VirtualSection:  NM_SETTING_VS_MOBILE,
		relatedSections: []string{NM_SETTING_GSM_SETTING_NAME, NM_SETTING_CDMA_SETTING_NAME},
		Name:            Tr("Mobile"),
		Keys: []*GeneralKeyInfo{
			&GeneralKeyInfo{Section: "vs-mobile", Key: "vk-mobile-country", Name: Tr("Country or region"), WidgetType: "EditLineComboBox", AlwaysUpdate: true, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "vs-mobile", Key: "vk-mobile-provider", Name: Tr("Provider"), WidgetType: "EditLineComboBox", AlwaysUpdate: true, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "vs-mobile", Key: "vk-mobile-plan", Name: Tr("Plan"), WidgetType: "EditLineComboBox", AlwaysUpdate: true, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "vs-mobile", Key: "vk-mobile-service-type", Name: Tr("Service Type"), WidgetType: "EditLineComboBox", AlwaysUpdate: true, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "vs-mobile", Key: "vk-gsm-apn-readonly", Name: Tr("APN"), WidgetType: "EditLineLabel", AlwaysUpdate: true, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "gsm", Key: "apn", Name: Tr("APN"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "gsm", Key: "number", Name: Tr("Number"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "gsm", Key: "username", Name: Tr("Username"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "gsm", Key: "password", Name: Tr("Password"), WidgetType: "EditLinePasswordInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "gsm", Key: "network-id", Name: Tr("Network ID"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "gsm", Key: "home-only", Name: Tr("Home Network Only"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "gsm", Key: "pin", Name: Tr("PIN"), WidgetType: "EditLinePasswordInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "cdma", Key: "number", Name: Tr("Number"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "cdma", Key: "username", Name: Tr("Username"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "cdma", Key: "password", Name: Tr("Password"), WidgetType: "EditLinePasswordInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
		},
	}
	virtualSections[NM_SETTING_VS_MOBILE_GSM] = VsectionInfo{
		VirtualSection:  NM_SETTING_VS_MOBILE_GSM,
		relatedSections: []string{NM_SETTING_GSM_SETTING_NAME},
		Name:            Tr("Mobile"),
		Keys: []*GeneralKeyInfo{
			&GeneralKeyInfo{Section: "gsm", Key: "apn", Name: Tr("APN"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "gsm", Key: "number", Name: Tr("Number"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "gsm", Key: "username", Name: Tr("Username"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "gsm", Key: "password", Name: Tr("Password"), WidgetType: "EditLinePasswordInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "gsm", Key: "network-id", Name: Tr("Network ID"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "gsm", Key: "home-only", Name: Tr("Home Network Only"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "gsm", Key: "pin", Name: Tr("PIN"), WidgetType: "EditLinePasswordInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
		},
	}
	virtualSections[NM_SETTING_VS_MOBILE_CDMA] = VsectionInfo{
		VirtualSection:  NM_SETTING_VS_MOBILE_CDMA,
		relatedSections: []string{NM_SETTING_CDMA_SETTING_NAME},
		Name:            Tr("Mobile"),
		Keys: []*GeneralKeyInfo{
			&GeneralKeyInfo{Section: "cdma", Key: "number", Name: Tr("Number"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "cdma", Key: "username", Name: Tr("Username"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "cdma", Key: "password", Name: Tr("Password"), WidgetType: "EditLinePasswordInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
		},
	}
	virtualSections[NM_SETTING_VS_SECURITY] = VsectionInfo{
		VirtualSection:  NM_SETTING_VS_SECURITY,
		relatedSections: []string{NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_802_1X_SETTING_NAME},
		Name:            Tr("Security"),
		Keys: []*GeneralKeyInfo{
			&GeneralKeyInfo{Section: "vs-security", Key: "vk-enable-8021x", Name: Tr("Security Required"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "802-11-wireless-security", Key: "vk-key-mgmt", Name: Tr("Security"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "802-11-wireless-security", Key: "wep-key0", Name: Tr("Key"), WidgetType: "EditLinePasswordInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "802-11-wireless-security", Key: "psk", Name: Tr("Password"), WidgetType: "EditLinePasswordInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "802-1x", Key: "vk-eap", Name: Tr("EAP Auth"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "802-1x", Key: "identity", Name: Tr("Identity"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "802-1x", Key: "anonymous-identity", Name: Tr("Anonymous ID"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "802-1x", Key: "vk-ca-cert", Name: Tr("CA Cert"), WidgetType: "EditLineFileChooser", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "802-1x", Key: "vk-client-cert", Name: Tr("User Cert"), WidgetType: "EditLineFileChooser", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "802-1x", Key: "phase1-fast-provisioning", Name: Tr("Provisioning"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "802-1x", Key: "vk-pac-file", Name: Tr("PAC file"), WidgetType: "EditLineFileChooser", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "802-1x", Key: "phase1-peapver", Name: Tr("PEAP Version"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "802-1x", Key: "phase2-auth", Name: Tr("Inner Auth"), WidgetType: "EditLineComboBox", AlwaysUpdate: true, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "802-1x", Key: "vk-private-key", Name: Tr("Private Key"), WidgetType: "EditLineFileChooser", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "802-1x", Key: "password-flags", Name: Tr("Ask for Pwd"), WidgetType: "EditLineComboBox", AlwaysUpdate: true, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "802-1x", Key: "password", Name: Tr("Password"), WidgetType: "EditLinePasswordInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "802-1x", Key: "private-key-password-flags", Name: Tr("Ask for Pwd"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "802-1x", Key: "private-key-password", Name: Tr("Private Pwd"), WidgetType: "EditLinePasswordInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
		},
	}
	virtualSections[NM_SETTING_VS_WIFI] = VsectionInfo{
		VirtualSection:  NM_SETTING_VS_WIFI,
		relatedSections: []string{NM_SETTING_WIRELESS_SETTING_NAME},
		Name:            Tr("Wi-Fi"),
		Keys: []*GeneralKeyInfo{
			&GeneralKeyInfo{Section: "802-11-wireless", Key: "mode", Name: Tr("Mode"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "802-11-wireless", Key: "band", Name: Tr("Band"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "802-11-wireless", Key: "channel", Name: Tr("Channel"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "802-11-wireless", Key: "mac-address", Name: Tr("Device MAC Addr"), WidgetType: "EditLineEditComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "802-11-wireless", Key: "cloned-mac-address", Name: Tr("Cloned MAC Addr"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "802-11-wireless", Key: "vk-enable-mtu", Name: Tr("Customize MTU"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "802-11-wireless", Key: "mtu", Name: Tr("MTU"), WidgetType: "EditLineSpinner", AlwaysUpdate: false, UseValueRange: true, MinValue: 0, MaxValue: 10000},
		},
	}
	virtualSections[NM_SETTING_VS_PPPOE] = VsectionInfo{
		VirtualSection:  NM_SETTING_VS_PPPOE,
		relatedSections: []string{NM_SETTING_PPPOE_SETTING_NAME},
		Name:            Tr("PPPoE"),
		Keys: []*GeneralKeyInfo{
			&GeneralKeyInfo{Section: "pppoe", Key: "username", Name: Tr("Username"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "pppoe", Key: "service", Name: Tr("Service"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "pppoe", Key: "password", Name: Tr("Password"), WidgetType: "EditLinePasswordInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
		},
	}
	virtualSections[NM_SETTING_VS_PPP] = VsectionInfo{
		VirtualSection:  NM_SETTING_VS_PPP,
		relatedSections: []string{NM_SETTING_PPP_SETTING_NAME},
		Name:            Tr("PPP"),
		Keys: []*GeneralKeyInfo{
			&GeneralKeyInfo{Section: "ppp", Key: "require-mppe", Name: Tr("Use MPPE"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: true, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "ppp", Key: "require-mppe-128", Name: Tr("128-bit MPPE"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: true, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "ppp", Key: "mppe-stateful", Name: Tr("Stateful MPPE"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "ppp", Key: "refuse-eap", Name: Tr("Refuse EAP Authentication"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "ppp", Key: "refuse-pap", Name: Tr("Refuse PAP Authentication"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "ppp", Key: "refuse-chap", Name: Tr("Refuse CHAP Authentication"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "ppp", Key: "refuse-mschap", Name: Tr("Refuse MSCHAP Authentication"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "ppp", Key: "refuse-mschapv2", Name: Tr("Refuse MSCHAPv2 Authentication"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "ppp", Key: "nobsdcomp", Name: Tr("No BSD Data Compression"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "ppp", Key: "nodeflate", Name: Tr("No Deflate Data Compression"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "ppp", Key: "no-vj-comp", Name: Tr("No TCP Header Compression"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "ppp", Key: "vk-enable-lcp-echo", Name: Tr("Send PPP Echo Packets"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
		},
	}
	virtualSections[NM_SETTING_VS_VPN] = VsectionInfo{
		VirtualSection:  NM_SETTING_VS_VPN,
		relatedSections: []string{NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME},
		Name:            Tr("VPN"),
		Keys: []*GeneralKeyInfo{
			&GeneralKeyInfo{Section: "vs-vpn", Key: "vk-vpn-missing-plugin", Name: Tr("Need VPN Plugin"), WidgetType: "EditLineMissingPackage", AlwaysUpdate: true, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-l2tp", Key: "gateway", Name: Tr("Gateway"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-l2tp", Key: "user", Name: Tr("Username"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-l2tp", Key: "password-flags", Name: Tr("Ask for Pwd"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-l2tp", Key: "password", Name: Tr("Password"), WidgetType: "EditLinePasswordInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-l2tp", Key: "domain", Name: Tr("NT Domain"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openconnect", Key: "gateway", Name: Tr("Gateway"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openconnect", Key: "cacert", Name: Tr("CA Cert"), WidgetType: "EditLineFileChooser", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openconnect", Key: "proxy", Name: Tr("Proxy"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openconnect", Key: "enable_csd_trojan", Name: Tr("Allow Cisco Secure Desktop Trojan"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openconnect", Key: "csd_wrapper", Name: Tr("CSD Script"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openconnect", Key: "usercert", Name: Tr("User Cert"), WidgetType: "EditLineFileChooser", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openconnect", Key: "userkey", Name: Tr("Private Key"), WidgetType: "EditLineFileChooser", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openconnect", Key: "pem_passphrase_fsid", Name: Tr("Use FSID for Key Passphrase"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn", Key: "remote", Name: Tr("Gateway"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn", Key: "connection-type", Name: Tr("Auth Type"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn", Key: "username", Name: Tr("Username"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn", Key: "password-flags", Name: Tr("Ask for Pwd"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn", Key: "password", Name: Tr("Password"), WidgetType: "EditLinePasswordInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn", Key: "ca", Name: Tr("CA Cert"), WidgetType: "EditLineFileChooser", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn", Key: "cert", Name: Tr("User Cert"), WidgetType: "EditLineFileChooser", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn", Key: "key", Name: Tr("Private Key"), WidgetType: "EditLineFileChooser", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn", Key: "cert-pass-flags", Name: Tr("Ask for Pwd"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn", Key: "cert-pass", Name: Tr("Private Pwd"), WidgetType: "EditLinePasswordInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn", Key: "static-key", Name: Tr("Static Key"), WidgetType: "EditLineFileChooser", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn", Key: "vk-static-key-direction", Name: Tr("Customize Key Direction"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn", Key: "static-key-direction", Name: Tr("Key Direction"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn", Key: "remote-ip", Name: Tr("Remote IP"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn", Key: "local-ip", Name: Tr("Local IP"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-pptp", Key: "gateway", Name: Tr("Gateway"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-pptp", Key: "user", Name: Tr("Username"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-pptp", Key: "password-flags", Name: Tr("Ask for Pwd"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-pptp", Key: "password", Name: Tr("Password"), WidgetType: "EditLinePasswordInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-pptp", Key: "domain", Name: Tr("NT Domain"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-vpnc", Key: "IPSec gateway", Name: Tr("Gateway"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-vpnc", Key: "Xauth username", Name: Tr("Username"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-vpnc", Key: "Xauth password-flags", Name: Tr("Ask for Pwd"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-vpnc", Key: "Xauth password", Name: Tr("User Pwd"), WidgetType: "EditLinePasswordInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-vpnc", Key: "IPSec ID", Name: Tr("Group Name"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-vpnc", Key: "IPSec secret-flags", Name: Tr("Ask for Pwd"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-vpnc", Key: "IPSec secret", Name: Tr("Group Pwd"), WidgetType: "EditLinePasswordInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-vpnc", Key: "vk-hybrid-authmode", Name: Tr("Use Hybrid Authentication"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-vpnc", Key: "CA-File", Name: Tr("CA File"), WidgetType: "EditLineFileChooser", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
		},
	}
	virtualSections[NM_SETTING_VS_VPN_L2TP] = VsectionInfo{
		VirtualSection:  NM_SETTING_VS_VPN_L2TP,
		relatedSections: []string{NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME},
		Name:            Tr("VPN"),
		Keys: []*GeneralKeyInfo{
			&GeneralKeyInfo{Section: "alias-vpn-l2tp", Key: "gateway", Name: Tr("Gateway"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-l2tp", Key: "user", Name: Tr("Username"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-l2tp", Key: "password-flags", Name: Tr("Ask for Pwd"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-l2tp", Key: "password", Name: Tr("Password"), WidgetType: "EditLinePasswordInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-l2tp", Key: "domain", Name: Tr("NT Domain"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
		},
	}
	virtualSections[NM_SETTING_VS_VPN_L2TP_IPSEC] = VsectionInfo{
		VirtualSection:  NM_SETTING_VS_VPN_L2TP_IPSEC,
		relatedSections: []string{NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME},
		Name:            Tr("VPN IPsec"),
		Keys: []*GeneralKeyInfo{
			&GeneralKeyInfo{Section: "alias-vpn-l2tp-ipsec", Key: "ipsec-enabled", Name: Tr("Enable IPsec"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-l2tp-ipsec", Key: "ipsec-group-name", Name: Tr("Group Name"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-l2tp-ipsec", Key: "ipsec-gateway-id", Name: Tr("Group ID"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-l2tp-ipsec", Key: "ipsec-psk", Name: Tr("Pre-Shared Key"), WidgetType: "EditLinePasswordInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
		},
	}
	virtualSections[NM_SETTING_VS_VPN_L2TP_PPP] = VsectionInfo{
		VirtualSection:  NM_SETTING_VS_VPN_L2TP_PPP,
		relatedSections: []string{NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME},
		Name:            Tr("VPN PPP"),
		Keys: []*GeneralKeyInfo{
			&GeneralKeyInfo{Section: "alias-vpn-l2tp-ppp", Key: "vk-require-mppe", Name: Tr("Use MPPE"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-l2tp-ppp", Key: "vk-mppe-security", Name: Tr("Security"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-l2tp-ppp", Key: "mppe-stateful", Name: Tr("Stateful MPPE"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-l2tp-ppp", Key: "refuse-eap", Name: Tr("Refuse EAP Authentication"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-l2tp-ppp", Key: "refuse-pap", Name: Tr("Refuse PAP Authentication"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-l2tp-ppp", Key: "refuse-chap", Name: Tr("Refuse CHAP Authentication"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-l2tp-ppp", Key: "refuse-mschap", Name: Tr("Refuse MSCHAP Authentication"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-l2tp-ppp", Key: "refuse-mschapv2", Name: Tr("Refuse MSCHAPv2 Authentication"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-l2tp-ppp", Key: "nobsdcomp", Name: Tr("No BSD Data Compression"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-l2tp-ppp", Key: "nodeflate", Name: Tr("No Deflate Data Compression"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-l2tp-ppp", Key: "no-vj-comp", Name: Tr("No TCP Header Compression"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-l2tp-ppp", Key: "nopcomp", Name: Tr("No Protocol Field Compression"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-l2tp-ppp", Key: "noaccomp", Name: Tr("No Address/Control Compression"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-l2tp-ppp", Key: "vk-enable-lcp-echo", Name: Tr("Send PPP Echo Packets"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
		},
	}
	virtualSections[NM_SETTING_VS_VPN_OPENCONNECT] = VsectionInfo{
		VirtualSection:  NM_SETTING_VS_VPN_OPENCONNECT,
		relatedSections: []string{NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME},
		Name:            Tr("VPN"),
		Keys: []*GeneralKeyInfo{
			&GeneralKeyInfo{Section: "alias-vpn-openconnect", Key: "gateway", Name: Tr("Gateway"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openconnect", Key: "cacert", Name: Tr("CA Cert"), WidgetType: "EditLineFileChooser", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openconnect", Key: "proxy", Name: Tr("Proxy"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openconnect", Key: "enable_csd_trojan", Name: Tr("Allow Cisco Secure Desktop Trojan"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openconnect", Key: "csd_wrapper", Name: Tr("CSD Script"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openconnect", Key: "usercert", Name: Tr("User Cert"), WidgetType: "EditLineFileChooser", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openconnect", Key: "userkey", Name: Tr("Private Key"), WidgetType: "EditLineFileChooser", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openconnect", Key: "pem_passphrase_fsid", Name: Tr("Use FSID for Key Passphrase"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
		},
	}
	virtualSections[NM_SETTING_VS_VPN_OPENVPN] = VsectionInfo{
		VirtualSection:  NM_SETTING_VS_VPN_OPENVPN,
		relatedSections: []string{NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME},
		Name:            Tr("VPN"),
		Keys: []*GeneralKeyInfo{
			&GeneralKeyInfo{Section: "alias-vpn-openvpn", Key: "remote", Name: Tr("Gateway"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn", Key: "connection-type", Name: Tr("Auth Type"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn", Key: "username", Name: Tr("Username"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn", Key: "password-flags", Name: Tr("Ask for Pwd"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn", Key: "password", Name: Tr("Password"), WidgetType: "EditLinePasswordInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn", Key: "ca", Name: Tr("CA Cert"), WidgetType: "EditLineFileChooser", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn", Key: "cert", Name: Tr("User Cert"), WidgetType: "EditLineFileChooser", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn", Key: "key", Name: Tr("Private Key"), WidgetType: "EditLineFileChooser", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn", Key: "cert-pass-flags", Name: Tr("Ask for Pwd"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn", Key: "cert-pass", Name: Tr("Private Pwd"), WidgetType: "EditLinePasswordInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn", Key: "static-key", Name: Tr("Static Key"), WidgetType: "EditLineFileChooser", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn", Key: "vk-static-key-direction", Name: Tr("Customize Key Direction"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn", Key: "static-key-direction", Name: Tr("Key Direction"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn", Key: "remote-ip", Name: Tr("Remote IP"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn", Key: "local-ip", Name: Tr("Local IP"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
		},
	}
	virtualSections[NM_SETTING_VS_VPN_OPENVPN_SECURITY] = VsectionInfo{
		VirtualSection:  NM_SETTING_VS_VPN_OPENVPN_SECURITY,
		relatedSections: []string{NM_SETTING_ALIAS_VPN_OPENVPN_SECURITY_SETTING_NAME},
		Name:            Tr("VPN Security"),
		Keys: []*GeneralKeyInfo{
			&GeneralKeyInfo{Section: "alias-vpn-openvpn-security", Key: "cipher", Name: Tr("Cipher"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn-security", Key: "auth", Name: Tr("HMAC Auth"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
		},
	}
	virtualSections[NM_SETTING_VS_VPN_OPENVPN_TLSAUTH] = VsectionInfo{
		VirtualSection:  NM_SETTING_VS_VPN_OPENVPN_TLSAUTH,
		relatedSections: []string{NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME},
		Name:            Tr("VPN TLS Authentication"),
		Keys: []*GeneralKeyInfo{
			&GeneralKeyInfo{Section: "alias-vpn-openvpn-tlsauth", Key: "tls-remote", Name: Tr("Subject Match"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn-tlsauth", Key: "remote-cert-tls", Name: Tr("Remote Cert Type"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn-tlsauth", Key: "ta", Name: Tr("Key File"), WidgetType: "EditLineFileChooser", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn-tlsauth", Key: "vk-ta-dir", Name: Tr("Customize Key Direction"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn-tlsauth", Key: "ta-dir", Name: Tr("Key Direction"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
		},
	}
	virtualSections[NM_SETTING_VS_VPN_OPENVPN_PROXIES] = VsectionInfo{
		VirtualSection:  NM_SETTING_VS_VPN_OPENVPN_PROXIES,
		relatedSections: []string{NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME},
		Name:            Tr("VPN Proxies"),
		Keys: []*GeneralKeyInfo{
			&GeneralKeyInfo{Section: "alias-vpn-openvpn-proxies", Key: "proxy-type", Name: Tr("Proxy Type"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn-proxies", Key: "proxy-server", Name: Tr("Server IP"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn-proxies", Key: "proxy-port", Name: Tr("Port"), WidgetType: "EditLineSpinner", AlwaysUpdate: false, UseValueRange: true, MinValue: 0, MaxValue: 65535},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn-proxies", Key: "proxy-retry", Name: Tr("Retry Indefinitely When Failed"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn-proxies", Key: "http-proxy-username", Name: Tr("Username"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn-proxies", Key: "http-proxy-password", Name: Tr("Password"), WidgetType: "EditLinePasswordInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
		},
	}
	virtualSections[NM_SETTING_VS_VPN_OPENVPN_ADVANCED] = VsectionInfo{
		VirtualSection:  NM_SETTING_VS_VPN_OPENVPN_ADVANCED,
		relatedSections: []string{NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME},
		Name:            Tr("VPN Advanced"),
		Keys: []*GeneralKeyInfo{
			&GeneralKeyInfo{Section: "alias-vpn-openvpn-advanced", Key: "vk-enable-port", Name: Tr("Customize Gateway Port"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn-advanced", Key: "port", Name: Tr("Gateway Port"), WidgetType: "EditLineSpinner", AlwaysUpdate: false, UseValueRange: true, MinValue: 0, MaxValue: 65535},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn-advanced", Key: "vk-enable-reneg-seconds", Name: Tr("Customize Renegotiation Interval"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn-advanced", Key: "reneg-seconds", Name: Tr("Renegotiation Interval"), WidgetType: "EditLineSpinner", AlwaysUpdate: false, UseValueRange: true, MinValue: 0, MaxValue: 604800},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn-advanced", Key: "comp-lzo", Name: Tr("Use LZO data compression"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn-advanced", Key: "proto-tcp", Name: Tr("Use TCP connection"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn-advanced", Key: "tap-dev", Name: Tr("Use TAP device"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn-advanced", Key: "vk-enable-tunnel-mtu", Name: Tr("Customize Tunnel MTU"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn-advanced", Key: "tunnel-mtu", Name: Tr("MTU"), WidgetType: "EditLineSpinner", AlwaysUpdate: false, UseValueRange: true, MinValue: 0, MaxValue: 65535},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn-advanced", Key: "vk-enable-fragment-size", Name: Tr("Customize UDP Fragment Size"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn-advanced", Key: "fragment-size", Name: Tr("UDP Fragment Size"), WidgetType: "EditLineSpinner", AlwaysUpdate: false, UseValueRange: true, MinValue: 0, MaxValue: 65535},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn-advanced", Key: "mssfix", Name: Tr("Restrict Tunnel TCP MSS"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-openvpn-advanced", Key: "remote-random", Name: Tr("Randomize Remote Hosts"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
		},
	}
	virtualSections[NM_SETTING_VS_VPN_PPTP] = VsectionInfo{
		VirtualSection:  NM_SETTING_VS_VPN_PPTP,
		relatedSections: []string{NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME},
		Name:            Tr("VPN"),
		Keys: []*GeneralKeyInfo{
			&GeneralKeyInfo{Section: "alias-vpn-pptp", Key: "gateway", Name: Tr("Gateway"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-pptp", Key: "user", Name: Tr("Username"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-pptp", Key: "password-flags", Name: Tr("Ask for Pwd"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-pptp", Key: "password", Name: Tr("Password"), WidgetType: "EditLinePasswordInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-pptp", Key: "domain", Name: Tr("NT Domain"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
		},
	}
	virtualSections[NM_SETTING_VS_VPN_PPTP_PPP] = VsectionInfo{
		VirtualSection:  NM_SETTING_VS_VPN_PPTP_PPP,
		relatedSections: []string{NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME},
		Name:            Tr("VPN PPP"),
		Keys: []*GeneralKeyInfo{
			&GeneralKeyInfo{Section: "alias-vpn-pptp-ppp", Key: "vk-require-mppe", Name: Tr("Use MPPE"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-pptp-ppp", Key: "vk-mppe-security", Name: Tr("Security"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-pptp-ppp", Key: "mppe-stateful", Name: Tr("Stateful MPPE"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-pptp-ppp", Key: "refuse-eap", Name: Tr("Refuse EAP Authentication"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-pptp-ppp", Key: "refuse-pap", Name: Tr("Refuse PAP Authentication"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-pptp-ppp", Key: "refuse-chap", Name: Tr("Refuse CHAP Authentication"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-pptp-ppp", Key: "refuse-mschap", Name: Tr("Refuse MSCHAP Authentication"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-pptp-ppp", Key: "refuse-mschapv2", Name: Tr("Refuse MSCHAPv2 Authentication"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-pptp-ppp", Key: "nobsdcomp", Name: Tr("No BSD Data Compression"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-pptp-ppp", Key: "nodeflate", Name: Tr("No Deflate Data Compression"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-pptp-ppp", Key: "no-vj-comp", Name: Tr("No TCP Header Compression"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-pptp-ppp", Key: "vk-enable-lcp-echo", Name: Tr("Send PPP Echo Packets"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
		},
	}
	virtualSections[NM_SETTING_VS_VPN_VPNC] = VsectionInfo{
		VirtualSection:  NM_SETTING_VS_VPN_VPNC,
		relatedSections: []string{NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME},
		Name:            Tr("VPN"),
		Keys: []*GeneralKeyInfo{
			&GeneralKeyInfo{Section: "alias-vpn-vpnc", Key: "IPSec gateway", Name: Tr("Gateway"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-vpnc", Key: "Xauth username", Name: Tr("Username"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-vpnc", Key: "Xauth password-flags", Name: Tr("Ask for Pwd"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-vpnc", Key: "Xauth password", Name: Tr("User Pwd"), WidgetType: "EditLinePasswordInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-vpnc", Key: "IPSec ID", Name: Tr("Group Name"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-vpnc", Key: "IPSec secret-flags", Name: Tr("Ask for Pwd"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-vpnc", Key: "IPSec secret", Name: Tr("Group Pwd"), WidgetType: "EditLinePasswordInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-vpnc", Key: "vk-hybrid-authmode", Name: Tr("Use Hybrid Authentication"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-vpnc", Key: "CA-File", Name: Tr("CA File"), WidgetType: "EditLineFileChooser", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
		},
	}
	virtualSections[NM_SETTING_VS_VPN_VPNC_ADVANCED] = VsectionInfo{
		VirtualSection:  NM_SETTING_VS_VPN_VPNC_ADVANCED,
		relatedSections: []string{NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME},
		Name:            Tr("VPN Advanced"),
		Keys: []*GeneralKeyInfo{
			&GeneralKeyInfo{Section: "alias-vpn-vpnc-advanced", Key: "Domain", Name: Tr("Domain"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-vpnc-advanced", Key: "Vendor", Name: Tr("Vendor"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-vpnc-advanced", Key: "Application Version", Name: Tr("Version"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-vpnc-advanced", Key: "vk-encryption-method", Name: Tr("Encryption"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-vpnc-advanced", Key: "NAT Traversal Mode", Name: Tr("NAT Traversal"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-vpnc-advanced", Key: "IKE DH Group", Name: Tr("IKE DH Group"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-vpnc-advanced", Key: "Perfect Forward Secrecy", Name: Tr("Forward Secrecy"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "alias-vpn-vpnc-advanced", Key: "Local Port", Name: Tr("Local Port"), WidgetType: "EditLineSpinner", AlwaysUpdate: false, UseValueRange: true, MinValue: 0, MaxValue: 65535},
			&GeneralKeyInfo{Section: "alias-vpn-vpnc-advanced", Key: "vk-disable-dpd", Name: Tr("Disable Dead Peer Detection"), WidgetType: "EditLineSwitchButton", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
		},
	}
	virtualSections[NM_SETTING_VS_IPV4] = VsectionInfo{
		VirtualSection:  NM_SETTING_VS_IPV4,
		relatedSections: []string{NM_SETTING_IP4_CONFIG_SETTING_NAME},
		Name:            Tr("IPv4"),
		Keys: []*GeneralKeyInfo{
			&GeneralKeyInfo{Section: "ipv4", Key: "method", Name: Tr("Method"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "ipv4", Key: "vk-addresses-address", Name: Tr("IP Address"), WidgetType: "EditLineIpv4Input", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "ipv4", Key: "vk-addresses-mask", Name: Tr("Netmask"), WidgetType: "EditLineIpv4Input", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "ipv4", Key: "vk-addresses-gateway", Name: Tr("Gateway"), WidgetType: "EditLineIpv4Input", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "ipv4", Key: "vk-dns", Name: Tr("DNS Server"), WidgetType: "EditLineIpv4Input", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
		},
	}
	virtualSections[NM_SETTING_VS_IPV6] = VsectionInfo{
		VirtualSection:  NM_SETTING_VS_IPV6,
		relatedSections: []string{NM_SETTING_IP6_CONFIG_SETTING_NAME},
		Name:            Tr("IPv6"),
		Keys: []*GeneralKeyInfo{
			&GeneralKeyInfo{Section: "ipv6", Key: "method", Name: Tr("Method"), WidgetType: "EditLineComboBox", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "ipv6", Key: "vk-addresses-address", Name: Tr("IP Address"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "ipv6", Key: "vk-addresses-prefix", Name: Tr("Prefix"), WidgetType: "EditLineSpinner", AlwaysUpdate: false, UseValueRange: true, MinValue: 0, MaxValue: 128},
			&GeneralKeyInfo{Section: "ipv6", Key: "vk-addresses-gateway", Name: Tr("Gateway"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
			&GeneralKeyInfo{Section: "ipv6", Key: "vk-dns", Name: Tr("DNS Server"), WidgetType: "EditLineTextInput", AlwaysUpdate: false, UseValueRange: false, MinValue: 0, MaxValue: 0},
		},
	}
}

// Origin file name ../nm_setting_virtual_key_gen.go

// Virtual key names
const (
	NM_SETTING_VK_802_1X_ENABLE                               = "vk-enable-8021x"
	NM_SETTING_VK_802_1X_EAP                                  = "vk-eap"
	NM_SETTING_VK_802_1X_PAC_FILE                             = "vk-pac-file"
	NM_SETTING_VK_802_1X_CA_CERT                              = "vk-ca-cert"
	NM_SETTING_VK_802_1X_CLIENT_CERT                          = "vk-client-cert"
	NM_SETTING_VK_802_1X_PRIVATE_KEY                          = "vk-private-key"
	NM_SETTING_VK_CONNECTION_NO_PERMISSION                    = "vk-no-permission"
	NM_SETTING_VK_MOBILE_COUNTRY                              = "vk-mobile-country"
	NM_SETTING_VK_MOBILE_PROVIDER                             = "vk-mobile-provider"
	NM_SETTING_VK_MOBILE_PLAN                                 = "vk-mobile-plan"
	NM_SETTING_VK_MOBILE_SERVICE_TYPE                         = "vk-mobile-service-type"
	NM_SETTING_VK_MOBILE_APN_READONLY                         = "vk-gsm-apn-readonly"
	NM_SETTING_VK_IP4_CONFIG_ADDRESSES_ADDRESS                = "vk-addresses-address"
	NM_SETTING_VK_IP4_CONFIG_ADDRESSES_MASK                   = "vk-addresses-mask"
	NM_SETTING_VK_IP4_CONFIG_ADDRESSES_GATEWAY                = "vk-addresses-gateway"
	NM_SETTING_VK_IP4_CONFIG_DNS                              = "vk-dns"
	NM_SETTING_VK_IP4_CONFIG_ROUTES_ADDRESS                   = "vk-routes-address"
	NM_SETTING_VK_IP4_CONFIG_ROUTES_MASK                      = "vk-routes-mask"
	NM_SETTING_VK_IP4_CONFIG_ROUTES_NEXTHOP                   = "vk-routes-nexthop"
	NM_SETTING_VK_IP4_CONFIG_ROUTES_METRIC                    = "vk-routes-metric"
	NM_SETTING_VK_IP6_CONFIG_ADDRESSES_ADDRESS                = "vk-addresses-address"
	NM_SETTING_VK_IP6_CONFIG_ADDRESSES_PREFIX                 = "vk-addresses-prefix"
	NM_SETTING_VK_IP6_CONFIG_ADDRESSES_GATEWAY                = "vk-addresses-gateway"
	NM_SETTING_VK_IP6_CONFIG_DNS                              = "vk-dns"
	NM_SETTING_VK_IP6_CONFIG_ROUTES_ADDRESS                   = "vk-routes-address"
	NM_SETTING_VK_IP6_CONFIG_ROUTES_PREFIX                    = "vk-routes-prefix"
	NM_SETTING_VK_IP6_CONFIG_ROUTES_NEXTHOP                   = "vk-routes-nexthop"
	NM_SETTING_VK_IP6_CONFIG_ROUTES_METRIC                    = "vk-routes-metric"
	NM_SETTING_VK_PPP_ENABLE_LCP_ECHO                         = "vk-enable-lcp-echo"
	NM_SETTING_VK_CONNECTION_AUTOCONNECT                      = "vk-autoconnect"
	NM_SETTING_VK_VPN_TYPE                                    = "vk-vpn-type"
	NM_SETTING_VK_VPN_MISSING_PLUGIN                          = "vk-vpn-missing-plugin"
	NM_SETTING_VK_VPN_L2TP_REQUIRE_MPPE                       = "vk-require-mppe"
	NM_SETTING_VK_VPN_L2TP_MPPE_SECURITY                      = "vk-mppe-security"
	NM_SETTING_VK_VPN_L2TP_ENABLE_LCP_ECHO                    = "vk-enable-lcp-echo"
	NM_SETTING_VK_VPN_OPENVPN_KEY_ENABLE_PORT                 = "vk-enable-port"
	NM_SETTING_VK_VPN_OPENVPN_KEY_ENABLE_RENEG_SECONDS        = "vk-enable-reneg-seconds"
	NM_SETTING_VK_VPN_OPENVPN_KEY_ENABLE_TUNNEL_MTU           = "vk-enable-tunnel-mtu"
	NM_SETTING_VK_VPN_OPENVPN_KEY_ENABLE_FRAGMENT_SIZE        = "vk-enable-fragment-size"
	NM_SETTING_VK_VPN_OPENVPN_KEY_ENABLE_STATIC_KEY_DIRECTION = "vk-static-key-direction"
	NM_SETTING_VK_VPN_OPENVPN_KEY_ENABLE_TA_DIR               = "vk-ta-dir"
	NM_SETTING_VK_VPN_PPTP_REQUIRE_MPPE                       = "vk-require-mppe"
	NM_SETTING_VK_VPN_PPTP_MPPE_SECURITY                      = "vk-mppe-security"
	NM_SETTING_VK_VPN_PPTP_ENABLE_LCP_ECHO                    = "vk-enable-lcp-echo"
	NM_SETTING_VK_VPN_VPNC_KEY_HYBRID_AUTHMODE                = "vk-hybrid-authmode"
	NM_SETTING_VK_VPN_VPNC_KEY_ENCRYPTION_METHOD              = "vk-encryption-method"
	NM_SETTING_VK_VPN_VPNC_KEY_DISABLE_DPD                    = "vk-disable-dpd"
	NM_SETTING_VK_WIRED_ENABLE_MTU                            = "vk-enable-mtu"
	NM_SETTING_VK_WIRELESS_ENABLE_MTU                         = "vk-enable-mtu"
	NM_SETTING_VK_WIRELESS_SECURITY_KEY_MGMT                  = "vk-key-mgmt"
)

// Virtual key data
var virtualKeys = []vkeyInfo{
	{value: NM_SETTING_VK_802_1X_ENABLE, ktype: ktypeBoolean, vkType: vkTypeController, relatedSection: NM_SETTING_VS_SECURITY, relatedKeys: []string{}, available: true, childKey: false, optional: false},
	{value: NM_SETTING_VK_802_1X_EAP, ktype: ktypeString, vkType: vkTypeWrapper, relatedSection: NM_SETTING_802_1X_SETTING_NAME, relatedKeys: []string{NM_SETTING_802_1X_EAP}, available: true, childKey: false, optional: false},
	{value: NM_SETTING_VK_802_1X_PAC_FILE, ktype: ktypeString, vkType: vkTypeWrapper, relatedSection: NM_SETTING_802_1X_SETTING_NAME, relatedKeys: []string{NM_SETTING_802_1X_PAC_FILE}, available: true, childKey: false, optional: false},
	{value: NM_SETTING_VK_802_1X_CA_CERT, ktype: ktypeString, vkType: vkTypeWrapper, relatedSection: NM_SETTING_802_1X_SETTING_NAME, relatedKeys: []string{NM_SETTING_802_1X_CA_CERT}, available: true, childKey: false, optional: false},
	{value: NM_SETTING_VK_802_1X_CLIENT_CERT, ktype: ktypeString, vkType: vkTypeWrapper, relatedSection: NM_SETTING_802_1X_SETTING_NAME, relatedKeys: []string{NM_SETTING_802_1X_CLIENT_CERT}, available: true, childKey: false, optional: false},
	{value: NM_SETTING_VK_802_1X_PRIVATE_KEY, ktype: ktypeString, vkType: vkTypeWrapper, relatedSection: NM_SETTING_802_1X_SETTING_NAME, relatedKeys: []string{NM_SETTING_802_1X_PRIVATE_KEY}, available: true, childKey: false, optional: false},
	{value: NM_SETTING_VK_CONNECTION_NO_PERMISSION, ktype: ktypeBoolean, vkType: vkTypeWrapper, relatedSection: NM_SETTING_CONNECTION_SETTING_NAME, relatedKeys: []string{NM_SETTING_CONNECTION_PERMISSIONS}, available: true, childKey: false, optional: false},
	{value: NM_SETTING_VK_MOBILE_COUNTRY, ktype: ktypeString, vkType: vkTypeController, relatedSection: NM_SETTING_VS_MOBILE, relatedKeys: []string{}, available: true, childKey: false, optional: false},
	{value: NM_SETTING_VK_MOBILE_PROVIDER, ktype: ktypeString, vkType: vkTypeController, relatedSection: NM_SETTING_VS_MOBILE, relatedKeys: []string{}, available: true, childKey: false, optional: false},
	{value: NM_SETTING_VK_MOBILE_PLAN, ktype: ktypeString, vkType: vkTypeController, relatedSection: NM_SETTING_VS_MOBILE, relatedKeys: []string{}, available: true, childKey: false, optional: false},
	{value: NM_SETTING_VK_MOBILE_SERVICE_TYPE, ktype: ktypeString, vkType: vkTypeController, relatedSection: NM_SETTING_VS_MOBILE, relatedKeys: []string{}, available: true, childKey: false, optional: false},
	{value: NM_SETTING_VK_MOBILE_APN_READONLY, ktype: ktypeString, vkType: vkTypeController, relatedSection: NM_SETTING_VS_MOBILE, relatedKeys: []string{}, available: true, childKey: false, optional: false},
	{value: NM_SETTING_VK_IP4_CONFIG_ADDRESSES_ADDRESS, ktype: ktypeString, vkType: vkTypeWrapper, relatedSection: NM_SETTING_IP4_CONFIG_SETTING_NAME, relatedKeys: []string{NM_SETTING_IP4_CONFIG_ADDRESSES}, available: true, childKey: true, optional: false},
	{value: NM_SETTING_VK_IP4_CONFIG_ADDRESSES_MASK, ktype: ktypeString, vkType: vkTypeWrapper, relatedSection: NM_SETTING_IP4_CONFIG_SETTING_NAME, relatedKeys: []string{NM_SETTING_IP4_CONFIG_ADDRESSES}, available: true, childKey: true, optional: false},
	{value: NM_SETTING_VK_IP4_CONFIG_ADDRESSES_GATEWAY, ktype: ktypeString, vkType: vkTypeWrapper, relatedSection: NM_SETTING_IP4_CONFIG_SETTING_NAME, relatedKeys: []string{NM_SETTING_IP4_CONFIG_ADDRESSES}, available: true, childKey: true, optional: true},
	{value: NM_SETTING_VK_IP4_CONFIG_DNS, ktype: ktypeString, vkType: vkTypeWrapper, relatedSection: NM_SETTING_IP4_CONFIG_SETTING_NAME, relatedKeys: []string{NM_SETTING_IP4_CONFIG_DNS}, available: true, childKey: true, optional: false},
	{value: NM_SETTING_VK_IP4_CONFIG_ROUTES_ADDRESS, ktype: ktypeString, vkType: vkTypeWrapper, relatedSection: NM_SETTING_IP4_CONFIG_SETTING_NAME, relatedKeys: []string{NM_SETTING_IP4_CONFIG_ROUTES}, available: false, childKey: true, optional: false},
	{value: NM_SETTING_VK_IP4_CONFIG_ROUTES_MASK, ktype: ktypeString, vkType: vkTypeWrapper, relatedSection: NM_SETTING_IP4_CONFIG_SETTING_NAME, relatedKeys: []string{NM_SETTING_IP4_CONFIG_ROUTES}, available: false, childKey: true, optional: false},
	{value: NM_SETTING_VK_IP4_CONFIG_ROUTES_NEXTHOP, ktype: ktypeString, vkType: vkTypeWrapper, relatedSection: NM_SETTING_IP4_CONFIG_SETTING_NAME, relatedKeys: []string{NM_SETTING_IP4_CONFIG_ROUTES}, available: false, childKey: true, optional: false},
	{value: NM_SETTING_VK_IP4_CONFIG_ROUTES_METRIC, ktype: ktypeString, vkType: vkTypeWrapper, relatedSection: NM_SETTING_IP4_CONFIG_SETTING_NAME, relatedKeys: []string{NM_SETTING_IP4_CONFIG_ROUTES}, available: false, childKey: true, optional: false},
	{value: NM_SETTING_VK_IP6_CONFIG_ADDRESSES_ADDRESS, ktype: ktypeString, vkType: vkTypeWrapper, relatedSection: NM_SETTING_IP6_CONFIG_SETTING_NAME, relatedKeys: []string{NM_SETTING_IP6_CONFIG_ADDRESSES}, available: true, childKey: true, optional: false},
	{value: NM_SETTING_VK_IP6_CONFIG_ADDRESSES_PREFIX, ktype: ktypeUint32, vkType: vkTypeWrapper, relatedSection: NM_SETTING_IP6_CONFIG_SETTING_NAME, relatedKeys: []string{NM_SETTING_IP6_CONFIG_ADDRESSES}, available: true, childKey: true, optional: false},
	{value: NM_SETTING_VK_IP6_CONFIG_ADDRESSES_GATEWAY, ktype: ktypeString, vkType: vkTypeWrapper, relatedSection: NM_SETTING_IP6_CONFIG_SETTING_NAME, relatedKeys: []string{NM_SETTING_IP6_CONFIG_ADDRESSES}, available: true, childKey: true, optional: true},
	{value: NM_SETTING_VK_IP6_CONFIG_DNS, ktype: ktypeString, vkType: vkTypeWrapper, relatedSection: NM_SETTING_IP6_CONFIG_SETTING_NAME, relatedKeys: []string{NM_SETTING_IP6_CONFIG_DNS}, available: true, childKey: true, optional: false},
	{value: NM_SETTING_VK_IP6_CONFIG_ROUTES_ADDRESS, ktype: ktypeString, vkType: vkTypeWrapper, relatedSection: NM_SETTING_IP6_CONFIG_SETTING_NAME, relatedKeys: []string{NM_SETTING_IP6_CONFIG_ROUTES}, available: false, childKey: true, optional: false},
	{value: NM_SETTING_VK_IP6_CONFIG_ROUTES_PREFIX, ktype: ktypeUint32, vkType: vkTypeWrapper, relatedSection: NM_SETTING_IP6_CONFIG_SETTING_NAME, relatedKeys: []string{NM_SETTING_IP6_CONFIG_ROUTES}, available: false, childKey: true, optional: false},
	{value: NM_SETTING_VK_IP6_CONFIG_ROUTES_NEXTHOP, ktype: ktypeString, vkType: vkTypeWrapper, relatedSection: NM_SETTING_IP6_CONFIG_SETTING_NAME, relatedKeys: []string{NM_SETTING_IP6_CONFIG_ROUTES}, available: false, childKey: true, optional: false},
	{value: NM_SETTING_VK_IP6_CONFIG_ROUTES_METRIC, ktype: ktypeUint32, vkType: vkTypeWrapper, relatedSection: NM_SETTING_IP6_CONFIG_SETTING_NAME, relatedKeys: []string{NM_SETTING_IP6_CONFIG_ROUTES}, available: false, childKey: true, optional: false},
	{value: NM_SETTING_VK_PPP_ENABLE_LCP_ECHO, ktype: ktypeBoolean, vkType: vkTypeWrapper, relatedSection: NM_SETTING_PPP_SETTING_NAME, relatedKeys: []string{NM_SETTING_PPP_LCP_ECHO_FAILURE, NM_SETTING_PPP_LCP_ECHO_INTERVAL}, available: true, childKey: false, optional: false},
	{value: NM_SETTING_VK_CONNECTION_AUTOCONNECT, ktype: ktypeBoolean, vkType: vkTypeWrapper, relatedSection: NM_SETTING_CONNECTION_SETTING_NAME, relatedKeys: []string{NM_SETTING_CONNECTION_AUTOCONNECT}, available: true, childKey: false, optional: false},
	{value: NM_SETTING_VK_VPN_TYPE, ktype: ktypeString, vkType: vkTypeController, relatedSection: NM_SETTING_VS_VPN, relatedKeys: []string{}, available: false, childKey: false, optional: false},
	{value: NM_SETTING_VK_VPN_MISSING_PLUGIN, ktype: ktypeString, vkType: vkTypeController, relatedSection: NM_SETTING_VS_VPN, relatedKeys: []string{}, available: true, childKey: false, optional: false},
	{value: NM_SETTING_VK_VPN_L2TP_REQUIRE_MPPE, ktype: ktypeBoolean, vkType: vkTypeWrapper, relatedSection: NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, relatedKeys: []string{NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE}, available: true, childKey: false, optional: false},
	{value: NM_SETTING_VK_VPN_L2TP_MPPE_SECURITY, ktype: ktypeString, vkType: vkTypeWrapper, relatedSection: NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, relatedKeys: []string{NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE_40, NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE_128}, available: true, childKey: false, optional: false},
	{value: NM_SETTING_VK_VPN_L2TP_ENABLE_LCP_ECHO, ktype: ktypeBoolean, vkType: vkTypeWrapper, relatedSection: NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, relatedKeys: []string{NM_SETTING_VPN_L2TP_KEY_LCP_ECHO_FAILURE, NM_SETTING_VPN_L2TP_KEY_LCP_ECHO_INTERVAL}, available: true, childKey: false, optional: false},
	{value: NM_SETTING_VK_VPN_OPENVPN_KEY_ENABLE_PORT, ktype: ktypeBoolean, vkType: vkTypeEnableWrapper, relatedSection: NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, relatedKeys: []string{NM_SETTING_VPN_OPENVPN_KEY_PORT}, available: true, childKey: false, optional: false},
	{value: NM_SETTING_VK_VPN_OPENVPN_KEY_ENABLE_RENEG_SECONDS, ktype: ktypeBoolean, vkType: vkTypeEnableWrapper, relatedSection: NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, relatedKeys: []string{NM_SETTING_VPN_OPENVPN_KEY_RENEG_SECONDS}, available: true, childKey: false, optional: false},
	{value: NM_SETTING_VK_VPN_OPENVPN_KEY_ENABLE_TUNNEL_MTU, ktype: ktypeBoolean, vkType: vkTypeEnableWrapper, relatedSection: NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, relatedKeys: []string{NM_SETTING_VPN_OPENVPN_KEY_TUNNEL_MTU}, available: true, childKey: false, optional: false},
	{value: NM_SETTING_VK_VPN_OPENVPN_KEY_ENABLE_FRAGMENT_SIZE, ktype: ktypeBoolean, vkType: vkTypeEnableWrapper, relatedSection: NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, relatedKeys: []string{NM_SETTING_VPN_OPENVPN_KEY_FRAGMENT_SIZE}, available: true, childKey: false, optional: false},
	{value: NM_SETTING_VK_VPN_OPENVPN_KEY_ENABLE_STATIC_KEY_DIRECTION, ktype: ktypeBoolean, vkType: vkTypeEnableWrapper, relatedSection: NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, relatedKeys: []string{NM_SETTING_VPN_OPENVPN_KEY_STATIC_KEY_DIRECTION}, available: true, childKey: false, optional: false},
	{value: NM_SETTING_VK_VPN_OPENVPN_KEY_ENABLE_TA_DIR, ktype: ktypeBoolean, vkType: vkTypeEnableWrapper, relatedSection: NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME, relatedKeys: []string{NM_SETTING_VPN_OPENVPN_KEY_TA_DIR}, available: true, childKey: false, optional: false},
	{value: NM_SETTING_VK_VPN_PPTP_REQUIRE_MPPE, ktype: ktypeBoolean, vkType: vkTypeWrapper, relatedSection: NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, relatedKeys: []string{NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE}, available: true, childKey: false, optional: false},
	{value: NM_SETTING_VK_VPN_PPTP_MPPE_SECURITY, ktype: ktypeString, vkType: vkTypeWrapper, relatedSection: NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, relatedKeys: []string{NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE_40, NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE_128}, available: true, childKey: false, optional: false},
	{value: NM_SETTING_VK_VPN_PPTP_ENABLE_LCP_ECHO, ktype: ktypeBoolean, vkType: vkTypeWrapper, relatedSection: NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, relatedKeys: []string{NM_SETTING_VPN_PPTP_KEY_LCP_ECHO_FAILURE, NM_SETTING_VPN_PPTP_KEY_LCP_ECHO_INTERVAL}, available: true, childKey: false, optional: false},
	{value: NM_SETTING_VK_VPN_VPNC_KEY_HYBRID_AUTHMODE, ktype: ktypeBoolean, vkType: vkTypeWrapper, relatedSection: NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, relatedKeys: []string{NM_SETTING_VPN_VPNC_KEY_AUTHMODE}, available: true, childKey: false, optional: false},
	{value: NM_SETTING_VK_VPN_VPNC_KEY_ENCRYPTION_METHOD, ktype: ktypeString, vkType: vkTypeWrapper, relatedSection: NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, relatedKeys: []string{NM_SETTING_VPN_VPNC_KEY_SINGLE_DES, NM_SETTING_VPN_VPNC_KEY_NO_ENCRYPTION}, available: true, childKey: false, optional: false},
	{value: NM_SETTING_VK_VPN_VPNC_KEY_DISABLE_DPD, ktype: ktypeBoolean, vkType: vkTypeWrapper, relatedSection: NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, relatedKeys: []string{NM_SETTING_VPN_VPNC_KEY_DPD_IDLE_TIMEOUT}, available: true, childKey: false, optional: false},
	{value: NM_SETTING_VK_WIRED_ENABLE_MTU, ktype: ktypeBoolean, vkType: vkTypeEnableWrapper, relatedSection: NM_SETTING_WIRED_SETTING_NAME, relatedKeys: []string{NM_SETTING_WIRED_MTU}, available: true, childKey: false, optional: false},
	{value: NM_SETTING_VK_WIRELESS_ENABLE_MTU, ktype: ktypeBoolean, vkType: vkTypeEnableWrapper, relatedSection: NM_SETTING_WIRELESS_SETTING_NAME, relatedKeys: []string{NM_SETTING_WIRELESS_MTU}, available: true, childKey: false, optional: false},
	{value: NM_SETTING_VK_WIRELESS_SECURITY_KEY_MGMT, ktype: ktypeString, vkType: vkTypeWrapper, relatedSection: NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, relatedKeys: []string{NM_SETTING_WIRELESS_SECURITY_KEY_MGMT}, available: true, childKey: false, optional: false},
}

// Get JSON value generally
func generalGetVkeyJSON(data connectionData, section, key string) (valueJSON string) {
	switch section {
	case NM_SETTING_VS_SECURITY:
		switch key {
		case NM_SETTING_VK_802_1X_ENABLE:
			return getSettingVk8021xEnableJSON(data)
		}
	case NM_SETTING_802_1X_SETTING_NAME:
		switch key {
		case NM_SETTING_VK_802_1X_EAP:
			return getSettingVk8021xEapJSON(data)
		case NM_SETTING_VK_802_1X_PAC_FILE:
			return getSettingVk8021xPacFileJSON(data)
		case NM_SETTING_VK_802_1X_CA_CERT:
			return getSettingVk8021xCaCertJSON(data)
		case NM_SETTING_VK_802_1X_CLIENT_CERT:
			return getSettingVk8021xClientCertJSON(data)
		case NM_SETTING_VK_802_1X_PRIVATE_KEY:
			return getSettingVk8021xPrivateKeyJSON(data)
		}
	case NM_SETTING_CONNECTION_SETTING_NAME:
		switch key {
		case NM_SETTING_VK_CONNECTION_NO_PERMISSION:
			return getSettingVkConnectionNoPermissionJSON(data)
		case NM_SETTING_VK_CONNECTION_AUTOCONNECT:
			return getSettingVkConnectionAutoconnectJSON(data)
		}
	case NM_SETTING_VS_MOBILE:
		switch key {
		case NM_SETTING_VK_MOBILE_COUNTRY:
			return getSettingVkMobileCountryJSON(data)
		case NM_SETTING_VK_MOBILE_PROVIDER:
			return getSettingVkMobileProviderJSON(data)
		case NM_SETTING_VK_MOBILE_PLAN:
			return getSettingVkMobilePlanJSON(data)
		case NM_SETTING_VK_MOBILE_SERVICE_TYPE:
			return getSettingVkMobileServiceTypeJSON(data)
		case NM_SETTING_VK_MOBILE_APN_READONLY:
			return getSettingVkMobileApnReadonlyJSON(data)
		}
	case NM_SETTING_IP4_CONFIG_SETTING_NAME:
		switch key {
		case NM_SETTING_VK_IP4_CONFIG_ADDRESSES_ADDRESS:
			return getSettingVkIp4ConfigAddressesAddressJSON(data)
		case NM_SETTING_VK_IP4_CONFIG_ADDRESSES_MASK:
			return getSettingVkIp4ConfigAddressesMaskJSON(data)
		case NM_SETTING_VK_IP4_CONFIG_ADDRESSES_GATEWAY:
			return getSettingVkIp4ConfigAddressesGatewayJSON(data)
		case NM_SETTING_VK_IP4_CONFIG_DNS:
			return getSettingVkIp4ConfigDnsJSON(data)
		case NM_SETTING_VK_IP4_CONFIG_ROUTES_ADDRESS:
			return getSettingVkIp4ConfigRoutesAddressJSON(data)
		case NM_SETTING_VK_IP4_CONFIG_ROUTES_MASK:
			return getSettingVkIp4ConfigRoutesMaskJSON(data)
		case NM_SETTING_VK_IP4_CONFIG_ROUTES_NEXTHOP:
			return getSettingVkIp4ConfigRoutesNexthopJSON(data)
		case NM_SETTING_VK_IP4_CONFIG_ROUTES_METRIC:
			return getSettingVkIp4ConfigRoutesMetricJSON(data)
		}
	case NM_SETTING_IP6_CONFIG_SETTING_NAME:
		switch key {
		case NM_SETTING_VK_IP6_CONFIG_ADDRESSES_ADDRESS:
			return getSettingVkIp6ConfigAddressesAddressJSON(data)
		case NM_SETTING_VK_IP6_CONFIG_ADDRESSES_PREFIX:
			return getSettingVkIp6ConfigAddressesPrefixJSON(data)
		case NM_SETTING_VK_IP6_CONFIG_ADDRESSES_GATEWAY:
			return getSettingVkIp6ConfigAddressesGatewayJSON(data)
		case NM_SETTING_VK_IP6_CONFIG_DNS:
			return getSettingVkIp6ConfigDnsJSON(data)
		case NM_SETTING_VK_IP6_CONFIG_ROUTES_ADDRESS:
			return getSettingVkIp6ConfigRoutesAddressJSON(data)
		case NM_SETTING_VK_IP6_CONFIG_ROUTES_PREFIX:
			return getSettingVkIp6ConfigRoutesPrefixJSON(data)
		case NM_SETTING_VK_IP6_CONFIG_ROUTES_NEXTHOP:
			return getSettingVkIp6ConfigRoutesNexthopJSON(data)
		case NM_SETTING_VK_IP6_CONFIG_ROUTES_METRIC:
			return getSettingVkIp6ConfigRoutesMetricJSON(data)
		}
	case NM_SETTING_PPP_SETTING_NAME:
		switch key {
		case NM_SETTING_VK_PPP_ENABLE_LCP_ECHO:
			return getSettingVkPppEnableLcpEchoJSON(data)
		}
	case NM_SETTING_VS_VPN:
		switch key {
		case NM_SETTING_VK_VPN_TYPE:
			return getSettingVkVpnTypeJSON(data)
		case NM_SETTING_VK_VPN_MISSING_PLUGIN:
			return getSettingVkVpnMissingPluginJSON(data)
		}
	case NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME:
		switch key {
		case NM_SETTING_VK_VPN_L2TP_REQUIRE_MPPE:
			return getSettingVkVpnL2tpRequireMppeJSON(data)
		case NM_SETTING_VK_VPN_L2TP_MPPE_SECURITY:
			return getSettingVkVpnL2tpMppeSecurityJSON(data)
		case NM_SETTING_VK_VPN_L2TP_ENABLE_LCP_ECHO:
			return getSettingVkVpnL2tpEnableLcpEchoJSON(data)
		}
	case NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME:
		switch key {
		case NM_SETTING_VK_VPN_OPENVPN_KEY_ENABLE_PORT:
			return getSettingVkVpnOpenvpnKeyEnablePortJSON(data)
		case NM_SETTING_VK_VPN_OPENVPN_KEY_ENABLE_RENEG_SECONDS:
			return getSettingVkVpnOpenvpnKeyEnableRenegSecondsJSON(data)
		case NM_SETTING_VK_VPN_OPENVPN_KEY_ENABLE_TUNNEL_MTU:
			return getSettingVkVpnOpenvpnKeyEnableTunnelMtuJSON(data)
		case NM_SETTING_VK_VPN_OPENVPN_KEY_ENABLE_FRAGMENT_SIZE:
			return getSettingVkVpnOpenvpnKeyEnableFragmentSizeJSON(data)
		}
	case NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME:
		switch key {
		case NM_SETTING_VK_VPN_OPENVPN_KEY_ENABLE_STATIC_KEY_DIRECTION:
			return getSettingVkVpnOpenvpnKeyEnableStaticKeyDirectionJSON(data)
		}
	case NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME:
		switch key {
		case NM_SETTING_VK_VPN_OPENVPN_KEY_ENABLE_TA_DIR:
			return getSettingVkVpnOpenvpnKeyEnableTaDirJSON(data)
		}
	case NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME:
		switch key {
		case NM_SETTING_VK_VPN_PPTP_REQUIRE_MPPE:
			return getSettingVkVpnPptpRequireMppeJSON(data)
		case NM_SETTING_VK_VPN_PPTP_MPPE_SECURITY:
			return getSettingVkVpnPptpMppeSecurityJSON(data)
		case NM_SETTING_VK_VPN_PPTP_ENABLE_LCP_ECHO:
			return getSettingVkVpnPptpEnableLcpEchoJSON(data)
		}
	case NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME:
		switch key {
		case NM_SETTING_VK_VPN_VPNC_KEY_HYBRID_AUTHMODE:
			return getSettingVkVpnVpncKeyHybridAuthmodeJSON(data)
		}
	case NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME:
		switch key {
		case NM_SETTING_VK_VPN_VPNC_KEY_ENCRYPTION_METHOD:
			return getSettingVkVpnVpncKeyEncryptionMethodJSON(data)
		case NM_SETTING_VK_VPN_VPNC_KEY_DISABLE_DPD:
			return getSettingVkVpnVpncKeyDisableDpdJSON(data)
		}
	case NM_SETTING_WIRED_SETTING_NAME:
		switch key {
		case NM_SETTING_VK_WIRED_ENABLE_MTU:
			return getSettingVkWiredEnableMtuJSON(data)
		}
	case NM_SETTING_WIRELESS_SETTING_NAME:
		switch key {
		case NM_SETTING_VK_WIRELESS_ENABLE_MTU:
			return getSettingVkWirelessEnableMtuJSON(data)
		}
	case NM_SETTING_WIRELESS_SECURITY_SETTING_NAME:
		switch key {
		case NM_SETTING_VK_WIRELESS_SECURITY_KEY_MGMT:
			return getSettingVkWirelessSecurityKeyMgmtJSON(data)
		}
	}
	logger.Error("invalid virtual key:", section, key)
	return
}

// Set JSON value generally
func generalSetVkeyJSON(data connectionData, section, key string, valueJSON string) (err error) {
	if isJSONValueMeansToDeleteKey(valueJSON, getSettingVkeyType(section, key)) && !isChildVkey(section, key) {
		logger.Debugf("json value means to remove key, data[%s][%s]=%#v", section, key, valueJSON)
		removeVirtualKey(data, section, key)
		return
	}
	// each virtual key own a logic setter
	switch section {
	case NM_SETTING_VS_SECURITY:
		switch key {
		case NM_SETTING_VK_802_1X_ENABLE:
			err = logicSetSettingVk8021xEnableJSON(data, valueJSON)
			return
		}
	case NM_SETTING_802_1X_SETTING_NAME:
		switch key {
		case NM_SETTING_VK_802_1X_EAP:
			err = logicSetSettingVk8021xEapJSON(data, valueJSON)
			return
		case NM_SETTING_VK_802_1X_PAC_FILE:
			err = logicSetSettingVk8021xPacFileJSON(data, valueJSON)
			return
		case NM_SETTING_VK_802_1X_CA_CERT:
			err = logicSetSettingVk8021xCaCertJSON(data, valueJSON)
			return
		case NM_SETTING_VK_802_1X_CLIENT_CERT:
			err = logicSetSettingVk8021xClientCertJSON(data, valueJSON)
			return
		case NM_SETTING_VK_802_1X_PRIVATE_KEY:
			err = logicSetSettingVk8021xPrivateKeyJSON(data, valueJSON)
			return
		}
	case NM_SETTING_CONNECTION_SETTING_NAME:
		switch key {
		case NM_SETTING_VK_CONNECTION_NO_PERMISSION:
			err = logicSetSettingVkConnectionNoPermissionJSON(data, valueJSON)
			return
		case NM_SETTING_VK_CONNECTION_AUTOCONNECT:
			err = logicSetSettingVkConnectionAutoconnectJSON(data, valueJSON)
			return
		}
	case NM_SETTING_VS_MOBILE:
		switch key {
		case NM_SETTING_VK_MOBILE_COUNTRY:
			err = logicSetSettingVkMobileCountryJSON(data, valueJSON)
			return
		case NM_SETTING_VK_MOBILE_PROVIDER:
			err = logicSetSettingVkMobileProviderJSON(data, valueJSON)
			return
		case NM_SETTING_VK_MOBILE_PLAN:
			err = logicSetSettingVkMobilePlanJSON(data, valueJSON)
			return
		case NM_SETTING_VK_MOBILE_SERVICE_TYPE:
			err = logicSetSettingVkMobileServiceTypeJSON(data, valueJSON)
			return
		case NM_SETTING_VK_MOBILE_APN_READONLY:
			err = logicSetSettingVkMobileApnReadonlyJSON(data, valueJSON)
			return
		}
	case NM_SETTING_IP4_CONFIG_SETTING_NAME:
		switch key {
		case NM_SETTING_VK_IP4_CONFIG_ADDRESSES_ADDRESS:
			err = logicSetSettingVkIp4ConfigAddressesAddressJSON(data, valueJSON)
			return
		case NM_SETTING_VK_IP4_CONFIG_ADDRESSES_MASK:
			err = logicSetSettingVkIp4ConfigAddressesMaskJSON(data, valueJSON)
			return
		case NM_SETTING_VK_IP4_CONFIG_ADDRESSES_GATEWAY:
			err = logicSetSettingVkIp4ConfigAddressesGatewayJSON(data, valueJSON)
			return
		case NM_SETTING_VK_IP4_CONFIG_DNS:
			err = logicSetSettingVkIp4ConfigDnsJSON(data, valueJSON)
			return
		case NM_SETTING_VK_IP4_CONFIG_ROUTES_ADDRESS:
			err = logicSetSettingVkIp4ConfigRoutesAddressJSON(data, valueJSON)
			return
		case NM_SETTING_VK_IP4_CONFIG_ROUTES_MASK:
			err = logicSetSettingVkIp4ConfigRoutesMaskJSON(data, valueJSON)
			return
		case NM_SETTING_VK_IP4_CONFIG_ROUTES_NEXTHOP:
			err = logicSetSettingVkIp4ConfigRoutesNexthopJSON(data, valueJSON)
			return
		case NM_SETTING_VK_IP4_CONFIG_ROUTES_METRIC:
			err = logicSetSettingVkIp4ConfigRoutesMetricJSON(data, valueJSON)
			return
		}
	case NM_SETTING_IP6_CONFIG_SETTING_NAME:
		switch key {
		case NM_SETTING_VK_IP6_CONFIG_ADDRESSES_ADDRESS:
			err = logicSetSettingVkIp6ConfigAddressesAddressJSON(data, valueJSON)
			return
		case NM_SETTING_VK_IP6_CONFIG_ADDRESSES_PREFIX:
			err = logicSetSettingVkIp6ConfigAddressesPrefixJSON(data, valueJSON)
			return
		case NM_SETTING_VK_IP6_CONFIG_ADDRESSES_GATEWAY:
			err = logicSetSettingVkIp6ConfigAddressesGatewayJSON(data, valueJSON)
			return
		case NM_SETTING_VK_IP6_CONFIG_DNS:
			err = logicSetSettingVkIp6ConfigDnsJSON(data, valueJSON)
			return
		case NM_SETTING_VK_IP6_CONFIG_ROUTES_ADDRESS:
			err = logicSetSettingVkIp6ConfigRoutesAddressJSON(data, valueJSON)
			return
		case NM_SETTING_VK_IP6_CONFIG_ROUTES_PREFIX:
			err = logicSetSettingVkIp6ConfigRoutesPrefixJSON(data, valueJSON)
			return
		case NM_SETTING_VK_IP6_CONFIG_ROUTES_NEXTHOP:
			err = logicSetSettingVkIp6ConfigRoutesNexthopJSON(data, valueJSON)
			return
		case NM_SETTING_VK_IP6_CONFIG_ROUTES_METRIC:
			err = logicSetSettingVkIp6ConfigRoutesMetricJSON(data, valueJSON)
			return
		}
	case NM_SETTING_PPP_SETTING_NAME:
		switch key {
		case NM_SETTING_VK_PPP_ENABLE_LCP_ECHO:
			err = logicSetSettingVkPppEnableLcpEchoJSON(data, valueJSON)
			return
		}
	case NM_SETTING_VS_VPN:
		switch key {
		case NM_SETTING_VK_VPN_TYPE:
			err = logicSetSettingVkVpnTypeJSON(data, valueJSON)
			return
		case NM_SETTING_VK_VPN_MISSING_PLUGIN:
			err = logicSetSettingVkVpnMissingPluginJSON(data, valueJSON)
			return
		}
	case NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME:
		switch key {
		case NM_SETTING_VK_VPN_L2TP_REQUIRE_MPPE:
			err = logicSetSettingVkVpnL2tpRequireMppeJSON(data, valueJSON)
			return
		case NM_SETTING_VK_VPN_L2TP_MPPE_SECURITY:
			err = logicSetSettingVkVpnL2tpMppeSecurityJSON(data, valueJSON)
			return
		case NM_SETTING_VK_VPN_L2TP_ENABLE_LCP_ECHO:
			err = logicSetSettingVkVpnL2tpEnableLcpEchoJSON(data, valueJSON)
			return
		}
	case NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME:
		switch key {
		case NM_SETTING_VK_VPN_OPENVPN_KEY_ENABLE_PORT:
			err = logicSetSettingVkVpnOpenvpnKeyEnablePortJSON(data, valueJSON)
			return
		case NM_SETTING_VK_VPN_OPENVPN_KEY_ENABLE_RENEG_SECONDS:
			err = logicSetSettingVkVpnOpenvpnKeyEnableRenegSecondsJSON(data, valueJSON)
			return
		case NM_SETTING_VK_VPN_OPENVPN_KEY_ENABLE_TUNNEL_MTU:
			err = logicSetSettingVkVpnOpenvpnKeyEnableTunnelMtuJSON(data, valueJSON)
			return
		case NM_SETTING_VK_VPN_OPENVPN_KEY_ENABLE_FRAGMENT_SIZE:
			err = logicSetSettingVkVpnOpenvpnKeyEnableFragmentSizeJSON(data, valueJSON)
			return
		}
	case NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME:
		switch key {
		case NM_SETTING_VK_VPN_OPENVPN_KEY_ENABLE_STATIC_KEY_DIRECTION:
			err = logicSetSettingVkVpnOpenvpnKeyEnableStaticKeyDirectionJSON(data, valueJSON)
			return
		}
	case NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME:
		switch key {
		case NM_SETTING_VK_VPN_OPENVPN_KEY_ENABLE_TA_DIR:
			err = logicSetSettingVkVpnOpenvpnKeyEnableTaDirJSON(data, valueJSON)
			return
		}
	case NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME:
		switch key {
		case NM_SETTING_VK_VPN_PPTP_REQUIRE_MPPE:
			err = logicSetSettingVkVpnPptpRequireMppeJSON(data, valueJSON)
			return
		case NM_SETTING_VK_VPN_PPTP_MPPE_SECURITY:
			err = logicSetSettingVkVpnPptpMppeSecurityJSON(data, valueJSON)
			return
		case NM_SETTING_VK_VPN_PPTP_ENABLE_LCP_ECHO:
			err = logicSetSettingVkVpnPptpEnableLcpEchoJSON(data, valueJSON)
			return
		}
	case NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME:
		switch key {
		case NM_SETTING_VK_VPN_VPNC_KEY_HYBRID_AUTHMODE:
			err = logicSetSettingVkVpnVpncKeyHybridAuthmodeJSON(data, valueJSON)
			return
		}
	case NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME:
		switch key {
		case NM_SETTING_VK_VPN_VPNC_KEY_ENCRYPTION_METHOD:
			err = logicSetSettingVkVpnVpncKeyEncryptionMethodJSON(data, valueJSON)
			return
		case NM_SETTING_VK_VPN_VPNC_KEY_DISABLE_DPD:
			err = logicSetSettingVkVpnVpncKeyDisableDpdJSON(data, valueJSON)
			return
		}
	case NM_SETTING_WIRED_SETTING_NAME:
		switch key {
		case NM_SETTING_VK_WIRED_ENABLE_MTU:
			err = logicSetSettingVkWiredEnableMtuJSON(data, valueJSON)
			return
		}
	case NM_SETTING_WIRELESS_SETTING_NAME:
		switch key {
		case NM_SETTING_VK_WIRELESS_ENABLE_MTU:
			err = logicSetSettingVkWirelessEnableMtuJSON(data, valueJSON)
			return
		}
	case NM_SETTING_WIRELESS_SECURITY_SETTING_NAME:
		switch key {
		case NM_SETTING_VK_WIRELESS_SECURITY_KEY_MGMT:
			err = logicSetSettingVkWirelessSecurityKeyMgmtJSON(data, valueJSON)
			return
		}
	}
	logger.Error("invalid virtual key:", section, key)
	return
}

// JSON getter
func getSettingVk8021xEnableJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVk8021xEnable(data))
	return
}
func getSettingVk8021xEapJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVk8021xEap(data))
	return
}
func getSettingVk8021xPacFileJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVk8021xPacFile(data))
	return
}
func getSettingVk8021xCaCertJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVk8021xCaCert(data))
	return
}
func getSettingVk8021xClientCertJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVk8021xClientCert(data))
	return
}
func getSettingVk8021xPrivateKeyJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVk8021xPrivateKey(data))
	return
}
func getSettingVkConnectionNoPermissionJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkConnectionNoPermission(data))
	return
}
func getSettingVkMobileCountryJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkMobileCountry(data))
	return
}
func getSettingVkMobileProviderJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkMobileProvider(data))
	return
}
func getSettingVkMobilePlanJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkMobilePlan(data))
	return
}
func getSettingVkMobileServiceTypeJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkMobileServiceType(data))
	return
}
func getSettingVkMobileApnReadonlyJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkMobileApnReadonly(data))
	return
}
func getSettingVkIp4ConfigAddressesAddressJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkIp4ConfigAddressesAddress(data))
	return
}
func getSettingVkIp4ConfigAddressesMaskJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkIp4ConfigAddressesMask(data))
	return
}
func getSettingVkIp4ConfigAddressesGatewayJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkIp4ConfigAddressesGateway(data))
	return
}
func getSettingVkIp4ConfigDnsJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkIp4ConfigDns(data))
	return
}
func getSettingVkIp4ConfigRoutesAddressJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkIp4ConfigRoutesAddress(data))
	return
}
func getSettingVkIp4ConfigRoutesMaskJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkIp4ConfigRoutesMask(data))
	return
}
func getSettingVkIp4ConfigRoutesNexthopJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkIp4ConfigRoutesNexthop(data))
	return
}
func getSettingVkIp4ConfigRoutesMetricJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkIp4ConfigRoutesMetric(data))
	return
}
func getSettingVkIp6ConfigAddressesAddressJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkIp6ConfigAddressesAddress(data))
	return
}
func getSettingVkIp6ConfigAddressesPrefixJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkIp6ConfigAddressesPrefix(data))
	return
}
func getSettingVkIp6ConfigAddressesGatewayJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkIp6ConfigAddressesGateway(data))
	return
}
func getSettingVkIp6ConfigDnsJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkIp6ConfigDns(data))
	return
}
func getSettingVkIp6ConfigRoutesAddressJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkIp6ConfigRoutesAddress(data))
	return
}
func getSettingVkIp6ConfigRoutesPrefixJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkIp6ConfigRoutesPrefix(data))
	return
}
func getSettingVkIp6ConfigRoutesNexthopJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkIp6ConfigRoutesNexthop(data))
	return
}
func getSettingVkIp6ConfigRoutesMetricJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkIp6ConfigRoutesMetric(data))
	return
}
func getSettingVkPppEnableLcpEchoJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkPppEnableLcpEcho(data))
	return
}
func getSettingVkConnectionAutoconnectJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkConnectionAutoconnect(data))
	return
}
func getSettingVkVpnTypeJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkVpnType(data))
	return
}
func getSettingVkVpnMissingPluginJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkVpnMissingPlugin(data))
	return
}
func getSettingVkVpnL2tpRequireMppeJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkVpnL2tpRequireMppe(data))
	return
}
func getSettingVkVpnL2tpMppeSecurityJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkVpnL2tpMppeSecurity(data))
	return
}
func getSettingVkVpnL2tpEnableLcpEchoJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkVpnL2tpEnableLcpEcho(data))
	return
}
func getSettingVkVpnOpenvpnKeyEnablePortJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkVpnOpenvpnKeyEnablePort(data))
	return
}
func getSettingVkVpnOpenvpnKeyEnableRenegSecondsJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkVpnOpenvpnKeyEnableRenegSeconds(data))
	return
}
func getSettingVkVpnOpenvpnKeyEnableTunnelMtuJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkVpnOpenvpnKeyEnableTunnelMtu(data))
	return
}
func getSettingVkVpnOpenvpnKeyEnableFragmentSizeJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkVpnOpenvpnKeyEnableFragmentSize(data))
	return
}
func getSettingVkVpnOpenvpnKeyEnableStaticKeyDirectionJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkVpnOpenvpnKeyEnableStaticKeyDirection(data))
	return
}
func getSettingVkVpnOpenvpnKeyEnableTaDirJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkVpnOpenvpnKeyEnableTaDir(data))
	return
}
func getSettingVkVpnPptpRequireMppeJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkVpnPptpRequireMppe(data))
	return
}
func getSettingVkVpnPptpMppeSecurityJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkVpnPptpMppeSecurity(data))
	return
}
func getSettingVkVpnPptpEnableLcpEchoJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkVpnPptpEnableLcpEcho(data))
	return
}
func getSettingVkVpnVpncKeyHybridAuthmodeJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkVpnVpncKeyHybridAuthmode(data))
	return
}
func getSettingVkVpnVpncKeyEncryptionMethodJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkVpnVpncKeyEncryptionMethod(data))
	return
}
func getSettingVkVpnVpncKeyDisableDpdJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkVpnVpncKeyDisableDpd(data))
	return
}
func getSettingVkWiredEnableMtuJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkWiredEnableMtu(data))
	return
}
func getSettingVkWirelessEnableMtuJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkWirelessEnableMtu(data))
	return
}
func getSettingVkWirelessSecurityKeyMgmtJSON(data connectionData) (valueJSON string) {
	valueJSON, _ = marshalJSON(getSettingVkWirelessSecurityKeyMgmt(data))
	return
}

// Logic JSON setter
func logicSetSettingVk8021xEnableJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueBoolean(valueJSON)
	return logicSetSettingVk8021xEnable(data, value)
}
func logicSetSettingVk8021xEapJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueString(valueJSON)
	return logicSetSettingVk8021xEap(data, value)
}
func logicSetSettingVk8021xPacFileJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueString(valueJSON)
	return logicSetSettingVk8021xPacFile(data, value)
}
func logicSetSettingVk8021xCaCertJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueString(valueJSON)
	return logicSetSettingVk8021xCaCert(data, value)
}
func logicSetSettingVk8021xClientCertJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueString(valueJSON)
	return logicSetSettingVk8021xClientCert(data, value)
}
func logicSetSettingVk8021xPrivateKeyJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueString(valueJSON)
	return logicSetSettingVk8021xPrivateKey(data, value)
}
func logicSetSettingVkConnectionNoPermissionJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueBoolean(valueJSON)
	return logicSetSettingVkConnectionNoPermission(data, value)
}
func logicSetSettingVkMobileCountryJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueString(valueJSON)
	return logicSetSettingVkMobileCountry(data, value)
}
func logicSetSettingVkMobileProviderJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueString(valueJSON)
	return logicSetSettingVkMobileProvider(data, value)
}
func logicSetSettingVkMobilePlanJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueString(valueJSON)
	return logicSetSettingVkMobilePlan(data, value)
}
func logicSetSettingVkMobileServiceTypeJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueString(valueJSON)
	return logicSetSettingVkMobileServiceType(data, value)
}
func logicSetSettingVkMobileApnReadonlyJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueString(valueJSON)
	return logicSetSettingVkMobileApnReadonly(data, value)
}
func logicSetSettingVkIp4ConfigAddressesAddressJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueString(valueJSON)
	return logicSetSettingVkIp4ConfigAddressesAddress(data, value)
}
func logicSetSettingVkIp4ConfigAddressesMaskJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueString(valueJSON)
	return logicSetSettingVkIp4ConfigAddressesMask(data, value)
}
func logicSetSettingVkIp4ConfigAddressesGatewayJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueString(valueJSON)
	return logicSetSettingVkIp4ConfigAddressesGateway(data, value)
}
func logicSetSettingVkIp4ConfigDnsJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueString(valueJSON)
	return logicSetSettingVkIp4ConfigDns(data, value)
}
func logicSetSettingVkIp4ConfigRoutesAddressJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueString(valueJSON)
	return logicSetSettingVkIp4ConfigRoutesAddress(data, value)
}
func logicSetSettingVkIp4ConfigRoutesMaskJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueString(valueJSON)
	return logicSetSettingVkIp4ConfigRoutesMask(data, value)
}
func logicSetSettingVkIp4ConfigRoutesNexthopJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueString(valueJSON)
	return logicSetSettingVkIp4ConfigRoutesNexthop(data, value)
}
func logicSetSettingVkIp4ConfigRoutesMetricJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueString(valueJSON)
	return logicSetSettingVkIp4ConfigRoutesMetric(data, value)
}
func logicSetSettingVkIp6ConfigAddressesAddressJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueString(valueJSON)
	return logicSetSettingVkIp6ConfigAddressesAddress(data, value)
}
func logicSetSettingVkIp6ConfigAddressesPrefixJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueUint32(valueJSON)
	return logicSetSettingVkIp6ConfigAddressesPrefix(data, value)
}
func logicSetSettingVkIp6ConfigAddressesGatewayJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueString(valueJSON)
	return logicSetSettingVkIp6ConfigAddressesGateway(data, value)
}
func logicSetSettingVkIp6ConfigDnsJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueString(valueJSON)
	return logicSetSettingVkIp6ConfigDns(data, value)
}
func logicSetSettingVkIp6ConfigRoutesAddressJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueString(valueJSON)
	return logicSetSettingVkIp6ConfigRoutesAddress(data, value)
}
func logicSetSettingVkIp6ConfigRoutesPrefixJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueUint32(valueJSON)
	return logicSetSettingVkIp6ConfigRoutesPrefix(data, value)
}
func logicSetSettingVkIp6ConfigRoutesNexthopJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueString(valueJSON)
	return logicSetSettingVkIp6ConfigRoutesNexthop(data, value)
}
func logicSetSettingVkIp6ConfigRoutesMetricJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueUint32(valueJSON)
	return logicSetSettingVkIp6ConfigRoutesMetric(data, value)
}
func logicSetSettingVkPppEnableLcpEchoJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueBoolean(valueJSON)
	return logicSetSettingVkPppEnableLcpEcho(data, value)
}
func logicSetSettingVkConnectionAutoconnectJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueBoolean(valueJSON)
	return logicSetSettingVkConnectionAutoconnect(data, value)
}
func logicSetSettingVkVpnTypeJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueString(valueJSON)
	return logicSetSettingVkVpnType(data, value)
}
func logicSetSettingVkVpnMissingPluginJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueString(valueJSON)
	return logicSetSettingVkVpnMissingPlugin(data, value)
}
func logicSetSettingVkVpnL2tpRequireMppeJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueBoolean(valueJSON)
	return logicSetSettingVkVpnL2tpRequireMppe(data, value)
}
func logicSetSettingVkVpnL2tpMppeSecurityJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueString(valueJSON)
	return logicSetSettingVkVpnL2tpMppeSecurity(data, value)
}
func logicSetSettingVkVpnL2tpEnableLcpEchoJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueBoolean(valueJSON)
	return logicSetSettingVkVpnL2tpEnableLcpEcho(data, value)
}
func logicSetSettingVkVpnOpenvpnKeyEnablePortJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueBoolean(valueJSON)
	return logicSetSettingVkVpnOpenvpnKeyEnablePort(data, value)
}
func logicSetSettingVkVpnOpenvpnKeyEnableRenegSecondsJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueBoolean(valueJSON)
	return logicSetSettingVkVpnOpenvpnKeyEnableRenegSeconds(data, value)
}
func logicSetSettingVkVpnOpenvpnKeyEnableTunnelMtuJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueBoolean(valueJSON)
	return logicSetSettingVkVpnOpenvpnKeyEnableTunnelMtu(data, value)
}
func logicSetSettingVkVpnOpenvpnKeyEnableFragmentSizeJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueBoolean(valueJSON)
	return logicSetSettingVkVpnOpenvpnKeyEnableFragmentSize(data, value)
}
func logicSetSettingVkVpnOpenvpnKeyEnableStaticKeyDirectionJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueBoolean(valueJSON)
	return logicSetSettingVkVpnOpenvpnKeyEnableStaticKeyDirection(data, value)
}
func logicSetSettingVkVpnOpenvpnKeyEnableTaDirJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueBoolean(valueJSON)
	return logicSetSettingVkVpnOpenvpnKeyEnableTaDir(data, value)
}
func logicSetSettingVkVpnPptpRequireMppeJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueBoolean(valueJSON)
	return logicSetSettingVkVpnPptpRequireMppe(data, value)
}
func logicSetSettingVkVpnPptpMppeSecurityJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueString(valueJSON)
	return logicSetSettingVkVpnPptpMppeSecurity(data, value)
}
func logicSetSettingVkVpnPptpEnableLcpEchoJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueBoolean(valueJSON)
	return logicSetSettingVkVpnPptpEnableLcpEcho(data, value)
}
func logicSetSettingVkVpnVpncKeyHybridAuthmodeJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueBoolean(valueJSON)
	return logicSetSettingVkVpnVpncKeyHybridAuthmode(data, value)
}
func logicSetSettingVkVpnVpncKeyEncryptionMethodJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueString(valueJSON)
	return logicSetSettingVkVpnVpncKeyEncryptionMethod(data, value)
}
func logicSetSettingVkVpnVpncKeyDisableDpdJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueBoolean(valueJSON)
	return logicSetSettingVkVpnVpncKeyDisableDpd(data, value)
}
func logicSetSettingVkWiredEnableMtuJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueBoolean(valueJSON)
	return logicSetSettingVkWiredEnableMtu(data, value)
}
func logicSetSettingVkWirelessEnableMtuJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueBoolean(valueJSON)
	return logicSetSettingVkWirelessEnableMtu(data, value)
}
func logicSetSettingVkWirelessSecurityKeyMgmtJSON(data connectionData, valueJSON string) (err error) {
	value, _ := jsonToKeyValueString(valueJSON)
	return logicSetSettingVkWirelessSecurityKeyMgmt(data, value)
}

// Getter for key's enable wrapper
func getSettingVkVpnOpenvpnKeyEnablePort(data connectionData) (value bool) {
	if !isSettingVpnOpenvpnKeyPortExists(data) {
		return false
	}
	return true
}
func getSettingVkVpnOpenvpnKeyEnableRenegSeconds(data connectionData) (value bool) {
	if !isSettingVpnOpenvpnKeyRenegSecondsExists(data) {
		return false
	}
	return true
}
func getSettingVkVpnOpenvpnKeyEnableTunnelMtu(data connectionData) (value bool) {
	if !isSettingVpnOpenvpnKeyTunnelMtuExists(data) {
		return false
	}
	return true
}
func getSettingVkVpnOpenvpnKeyEnableFragmentSize(data connectionData) (value bool) {
	if !isSettingVpnOpenvpnKeyFragmentSizeExists(data) {
		return false
	}
	return true
}
func getSettingVkVpnOpenvpnKeyEnableStaticKeyDirection(data connectionData) (value bool) {
	if !isSettingVpnOpenvpnKeyStaticKeyDirectionExists(data) {
		return false
	}
	return true
}
func getSettingVkVpnOpenvpnKeyEnableTaDir(data connectionData) (value bool) {
	if !isSettingVpnOpenvpnKeyTaDirExists(data) {
		return false
	}
	return true
}
func getSettingVkWiredEnableMtu(data connectionData) (value bool) {
	if !isSettingWiredMtuExists(data) {
		return false
	}
	return true
}
func getSettingVkWirelessEnableMtu(data connectionData) (value bool) {
	if !isSettingWirelessMtuExists(data) {
		return false
	}
	return true
}

// Setter for key's enable wrapper
func logicSetSettingVkVpnOpenvpnKeyEnablePort(data connectionData, value bool) (err error) {
	if value {
		setSettingVpnOpenvpnKeyPort(data, 1194)
	} else {
		removeSettingVpnOpenvpnKeyPort(data)
	}
	return
}
func logicSetSettingVkVpnOpenvpnKeyEnableRenegSeconds(data connectionData, value bool) (err error) {
	if value {
		setSettingVpnOpenvpnKeyRenegSeconds(data, uint32(0))
	} else {
		removeSettingVpnOpenvpnKeyRenegSeconds(data)
	}
	return
}
func logicSetSettingVkVpnOpenvpnKeyEnableTunnelMtu(data connectionData, value bool) (err error) {
	if value {
		setSettingVpnOpenvpnKeyTunnelMtu(data, 1500)
	} else {
		removeSettingVpnOpenvpnKeyTunnelMtu(data)
	}
	return
}
func logicSetSettingVkVpnOpenvpnKeyEnableFragmentSize(data connectionData, value bool) (err error) {
	if value {
		setSettingVpnOpenvpnKeyFragmentSize(data, 1300)
	} else {
		removeSettingVpnOpenvpnKeyFragmentSize(data)
	}
	return
}
func logicSetSettingVkVpnOpenvpnKeyEnableStaticKeyDirection(data connectionData, value bool) (err error) {
	if value {
		setSettingVpnOpenvpnKeyStaticKeyDirection(data, uint32(0))
	} else {
		removeSettingVpnOpenvpnKeyStaticKeyDirection(data)
	}
	return
}
func logicSetSettingVkVpnOpenvpnKeyEnableTaDir(data connectionData, value bool) (err error) {
	if value {
		setSettingVpnOpenvpnKeyTaDir(data, uint32(0))
	} else {
		removeSettingVpnOpenvpnKeyTaDir(data)
	}
	return
}
func logicSetSettingVkWiredEnableMtu(data connectionData, value bool) (err error) {
	if value {
		setSettingWiredMtu(data, uint32(0))
	} else {
		removeSettingWiredMtu(data)
	}
	return
}
func logicSetSettingVkWirelessEnableMtu(data connectionData, value bool) (err error) {
	if value {
		setSettingWirelessMtu(data, uint32(0))
	} else {
		removeSettingWirelessMtu(data)
	}
	return
}

// Origin file name ../nm_setting_general_gen.go
func generalIsKeyInSettingSection(section, key string) bool {
	if isVirtualKey(section, key) {
		return true
	}
	switch section {
	default:
		logger.Error("invalid section name", section)
	case NM_SETTING_802_1X_SETTING_NAME:
		return isKeyInSetting8021x(key)
	case NM_SETTING_CDMA_SETTING_NAME:
		return isKeyInSettingCdma(key)
	case NM_SETTING_CONNECTION_SETTING_NAME:
		return isKeyInSettingConnection(key)
	case NM_SETTING_GSM_SETTING_NAME:
		return isKeyInSettingGsm(key)
	case NM_SETTING_IP4_CONFIG_SETTING_NAME:
		return isKeyInSettingIp4Config(key)
	case NM_SETTING_IP6_CONFIG_SETTING_NAME:
		return isKeyInSettingIp6Config(key)
	case NM_SETTING_PPP_SETTING_NAME:
		return isKeyInSettingPpp(key)
	case NM_SETTING_PPPOE_SETTING_NAME:
		return isKeyInSettingPppoe(key)
	case NM_SETTING_SERIAL_SETTING_NAME:
		return isKeyInSettingSerial(key)
	case NM_SETTING_VPN_SETTING_NAME:
		return isKeyInSettingVpn(key)
	case NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME:
		return isKeyInSettingVpnL2tp(key)
	case NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME:
		return isKeyInSettingVpnL2tpPpp(key)
	case NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME:
		return isKeyInSettingVpnL2tpIpsec(key)
	case NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME:
		return isKeyInSettingVpnOpenconnect(key)
	case NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME:
		return isKeyInSettingVpnOpenvpn(key)
	case NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME:
		return isKeyInSettingVpnOpenvpnAdvanced(key)
	case NM_SETTING_ALIAS_VPN_OPENVPN_SECURITY_SETTING_NAME:
		return isKeyInSettingVpnOpenvpnSecurity(key)
	case NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME:
		return isKeyInSettingVpnOpenvpnTlsauth(key)
	case NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME:
		return isKeyInSettingVpnOpenvpnProxies(key)
	case NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME:
		return isKeyInSettingVpnPptp(key)
	case NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME:
		return isKeyInSettingVpnPptpPpp(key)
	case NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME:
		return isKeyInSettingVpnVpnc(key)
	case NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME:
		return isKeyInSettingVpnVpncAdvanced(key)
	case NM_SETTING_WIRED_SETTING_NAME:
		return isKeyInSettingWired(key)
	case NM_SETTING_WIRELESS_SETTING_NAME:
		return isKeyInSettingWireless(key)
	case NM_SETTING_WIRELESS_SECURITY_SETTING_NAME:
		return isKeyInSettingWirelessSecurity(key)
	}
	return false
}

func generalGetSettingKeyType(section, key string) (t ktype) {
	if isVirtualKey(section, key) {
		t = getSettingVkeyType(section, key)
		return
	}
	switch section {
	default:
		logger.Error("invalid section name", section)
	case NM_SETTING_802_1X_SETTING_NAME:
		t = getSetting8021xKeyType(key)
	case NM_SETTING_CDMA_SETTING_NAME:
		t = getSettingCdmaKeyType(key)
	case NM_SETTING_CONNECTION_SETTING_NAME:
		t = getSettingConnectionKeyType(key)
	case NM_SETTING_GSM_SETTING_NAME:
		t = getSettingGsmKeyType(key)
	case NM_SETTING_IP4_CONFIG_SETTING_NAME:
		t = getSettingIp4ConfigKeyType(key)
	case NM_SETTING_IP6_CONFIG_SETTING_NAME:
		t = getSettingIp6ConfigKeyType(key)
	case NM_SETTING_PPP_SETTING_NAME:
		t = getSettingPppKeyType(key)
	case NM_SETTING_PPPOE_SETTING_NAME:
		t = getSettingPppoeKeyType(key)
	case NM_SETTING_SERIAL_SETTING_NAME:
		t = getSettingSerialKeyType(key)
	case NM_SETTING_VPN_SETTING_NAME:
		t = getSettingVpnKeyType(key)
	case NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME:
		t = getSettingVpnL2tpKeyType(key)
	case NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME:
		t = getSettingVpnL2tpPppKeyType(key)
	case NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME:
		t = getSettingVpnL2tpIpsecKeyType(key)
	case NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME:
		t = getSettingVpnOpenconnectKeyType(key)
	case NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME:
		t = getSettingVpnOpenvpnKeyType(key)
	case NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME:
		t = getSettingVpnOpenvpnAdvancedKeyType(key)
	case NM_SETTING_ALIAS_VPN_OPENVPN_SECURITY_SETTING_NAME:
		t = getSettingVpnOpenvpnSecurityKeyType(key)
	case NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME:
		t = getSettingVpnOpenvpnTlsauthKeyType(key)
	case NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME:
		t = getSettingVpnOpenvpnProxiesKeyType(key)
	case NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME:
		t = getSettingVpnPptpKeyType(key)
	case NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME:
		t = getSettingVpnPptpPppKeyType(key)
	case NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME:
		t = getSettingVpnVpncKeyType(key)
	case NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME:
		t = getSettingVpnVpncAdvancedKeyType(key)
	case NM_SETTING_WIRED_SETTING_NAME:
		t = getSettingWiredKeyType(key)
	case NM_SETTING_WIRELESS_SETTING_NAME:
		t = getSettingWirelessKeyType(key)
	case NM_SETTING_WIRELESS_SECURITY_SETTING_NAME:
		t = getSettingWirelessSecurityKeyType(key)
	}
	return
}

func generalGetSettingAvailableKeys(data connectionData, section string) (keys []string) {
	if isVirtualSection(section) {
		keys = generalGetSettingVsectionAvailableKeys(data, section)
		return
	}
	switch section {
	case NM_SETTING_802_1X_SETTING_NAME:
		keys = getSetting8021xAvailableKeys(data)
	case NM_SETTING_CDMA_SETTING_NAME:
		keys = getSettingCdmaAvailableKeys(data)
	case NM_SETTING_CONNECTION_SETTING_NAME:
		keys = getSettingConnectionAvailableKeys(data)
	case NM_SETTING_GSM_SETTING_NAME:
		keys = getSettingGsmAvailableKeys(data)
	case NM_SETTING_IP4_CONFIG_SETTING_NAME:
		keys = getSettingIp4ConfigAvailableKeys(data)
	case NM_SETTING_IP6_CONFIG_SETTING_NAME:
		keys = getSettingIp6ConfigAvailableKeys(data)
	case NM_SETTING_PPP_SETTING_NAME:
		keys = getSettingPppAvailableKeys(data)
	case NM_SETTING_PPPOE_SETTING_NAME:
		keys = getSettingPppoeAvailableKeys(data)
	case NM_SETTING_SERIAL_SETTING_NAME:
		keys = getSettingSerialAvailableKeys(data)
	case NM_SETTING_VPN_SETTING_NAME:
		keys = getSettingVpnAvailableKeys(data)
	case NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME:
		keys = getSettingVpnL2tpAvailableKeys(data)
	case NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME:
		keys = getSettingVpnL2tpPppAvailableKeys(data)
	case NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME:
		keys = getSettingVpnL2tpIpsecAvailableKeys(data)
	case NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME:
		keys = getSettingVpnOpenconnectAvailableKeys(data)
	case NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME:
		keys = getSettingVpnOpenvpnAvailableKeys(data)
	case NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME:
		keys = getSettingVpnOpenvpnAdvancedAvailableKeys(data)
	case NM_SETTING_ALIAS_VPN_OPENVPN_SECURITY_SETTING_NAME:
		keys = getSettingVpnOpenvpnSecurityAvailableKeys(data)
	case NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME:
		keys = getSettingVpnOpenvpnTlsauthAvailableKeys(data)
	case NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME:
		keys = getSettingVpnOpenvpnProxiesAvailableKeys(data)
	case NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME:
		keys = getSettingVpnPptpAvailableKeys(data)
	case NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME:
		keys = getSettingVpnPptpPppAvailableKeys(data)
	case NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME:
		keys = getSettingVpnVpncAvailableKeys(data)
	case NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME:
		keys = getSettingVpnVpncAdvancedAvailableKeys(data)
	case NM_SETTING_WIRED_SETTING_NAME:
		keys = getSettingWiredAvailableKeys(data)
	case NM_SETTING_WIRELESS_SETTING_NAME:
		keys = getSettingWirelessAvailableKeys(data)
	case NM_SETTING_WIRELESS_SECURITY_SETTING_NAME:
		keys = getSettingWirelessSecurityAvailableKeys(data)
	}
	return
}

func generalGetSettingAvailableValues(data connectionData, section, key string) (values []kvalue) {
	if isVirtualKey(section, key) {
		values = generalGetSettingVkeyAvailableValues(data, section, key)
		return
	}
	switch section {
	case NM_SETTING_802_1X_SETTING_NAME:
		values = getSetting8021xAvailableValues(data, key)
	case NM_SETTING_CDMA_SETTING_NAME:
		values = getSettingCdmaAvailableValues(data, key)
	case NM_SETTING_CONNECTION_SETTING_NAME:
		values = getSettingConnectionAvailableValues(data, key)
	case NM_SETTING_GSM_SETTING_NAME:
		values = getSettingGsmAvailableValues(data, key)
	case NM_SETTING_IP4_CONFIG_SETTING_NAME:
		values = getSettingIp4ConfigAvailableValues(data, key)
	case NM_SETTING_IP6_CONFIG_SETTING_NAME:
		values = getSettingIp6ConfigAvailableValues(data, key)
	case NM_SETTING_PPP_SETTING_NAME:
		values = getSettingPppAvailableValues(data, key)
	case NM_SETTING_PPPOE_SETTING_NAME:
		values = getSettingPppoeAvailableValues(data, key)
	case NM_SETTING_SERIAL_SETTING_NAME:
		values = getSettingSerialAvailableValues(data, key)
	case NM_SETTING_VPN_SETTING_NAME:
		values = getSettingVpnAvailableValues(data, key)
	case NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME:
		values = getSettingVpnL2tpAvailableValues(data, key)
	case NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME:
		values = getSettingVpnL2tpPppAvailableValues(data, key)
	case NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME:
		values = getSettingVpnL2tpIpsecAvailableValues(data, key)
	case NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME:
		values = getSettingVpnOpenconnectAvailableValues(data, key)
	case NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME:
		values = getSettingVpnOpenvpnAvailableValues(data, key)
	case NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME:
		values = getSettingVpnOpenvpnAdvancedAvailableValues(data, key)
	case NM_SETTING_ALIAS_VPN_OPENVPN_SECURITY_SETTING_NAME:
		values = getSettingVpnOpenvpnSecurityAvailableValues(data, key)
	case NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME:
		values = getSettingVpnOpenvpnTlsauthAvailableValues(data, key)
	case NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME:
		values = getSettingVpnOpenvpnProxiesAvailableValues(data, key)
	case NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME:
		values = getSettingVpnPptpAvailableValues(data, key)
	case NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME:
		values = getSettingVpnPptpPppAvailableValues(data, key)
	case NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME:
		values = getSettingVpnVpncAvailableValues(data, key)
	case NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME:
		values = getSettingVpnVpncAdvancedAvailableValues(data, key)
	case NM_SETTING_WIRED_SETTING_NAME:
		values = getSettingWiredAvailableValues(data, key)
	case NM_SETTING_WIRELESS_SETTING_NAME:
		values = getSettingWirelessAvailableValues(data, key)
	case NM_SETTING_WIRELESS_SECURITY_SETTING_NAME:
		values = getSettingWirelessSecurityAvailableValues(data, key)
	}
	return
}

func generalCheckSettingValues(data connectionData, section string) (errs sectionErrors) {
	if isVirtualSection(section) {
		return
	}
	switch section {
	default:
		logger.Error("invalid section name", section)
	case NM_SETTING_802_1X_SETTING_NAME:
		errs = checkSetting8021xValues(data)
	case NM_SETTING_CDMA_SETTING_NAME:
		errs = checkSettingCdmaValues(data)
	case NM_SETTING_CONNECTION_SETTING_NAME:
		errs = checkSettingConnectionValues(data)
	case NM_SETTING_GSM_SETTING_NAME:
		errs = checkSettingGsmValues(data)
	case NM_SETTING_IP4_CONFIG_SETTING_NAME:
		errs = checkSettingIp4ConfigValues(data)
	case NM_SETTING_IP6_CONFIG_SETTING_NAME:
		errs = checkSettingIp6ConfigValues(data)
	case NM_SETTING_PPP_SETTING_NAME:
		errs = checkSettingPppValues(data)
	case NM_SETTING_PPPOE_SETTING_NAME:
		errs = checkSettingPppoeValues(data)
	case NM_SETTING_SERIAL_SETTING_NAME:
		errs = checkSettingSerialValues(data)
	case NM_SETTING_VPN_SETTING_NAME:
		errs = checkSettingVpnValues(data)
	case NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME:
		errs = checkSettingVpnL2tpValues(data)
	case NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME:
		errs = checkSettingVpnL2tpPppValues(data)
	case NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME:
		errs = checkSettingVpnL2tpIpsecValues(data)
	case NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME:
		errs = checkSettingVpnOpenconnectValues(data)
	case NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME:
		errs = checkSettingVpnOpenvpnValues(data)
	case NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME:
		errs = checkSettingVpnOpenvpnAdvancedValues(data)
	case NM_SETTING_ALIAS_VPN_OPENVPN_SECURITY_SETTING_NAME:
		errs = checkSettingVpnOpenvpnSecurityValues(data)
	case NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME:
		errs = checkSettingVpnOpenvpnTlsauthValues(data)
	case NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME:
		errs = checkSettingVpnOpenvpnProxiesValues(data)
	case NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME:
		errs = checkSettingVpnPptpValues(data)
	case NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME:
		errs = checkSettingVpnPptpPppValues(data)
	case NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME:
		errs = checkSettingVpnVpncValues(data)
	case NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME:
		errs = checkSettingVpnVpncAdvancedValues(data)
	case NM_SETTING_WIRED_SETTING_NAME:
		errs = checkSettingWiredValues(data)
	case NM_SETTING_WIRELESS_SETTING_NAME:
		errs = checkSettingWirelessValues(data)
	case NM_SETTING_WIRELESS_SECURITY_SETTING_NAME:
		errs = checkSettingWirelessSecurityValues(data)
	}
	return
}

func generalGetSettingKeyJSON(data connectionData, section, key string) (valueJSON string) {
	if isVirtualKey(section, key) {
		valueJSON = generalGetVkeyJSON(data, section, key)
		return
	}
	switch section {
	default:
		logger.Error("invalid section name", section)
	case NM_SETTING_802_1X_SETTING_NAME:
		valueJSON = generalGetSetting8021xKeyJSON(data, key)
	case NM_SETTING_CDMA_SETTING_NAME:
		valueJSON = generalGetSettingCdmaKeyJSON(data, key)
	case NM_SETTING_CONNECTION_SETTING_NAME:
		valueJSON = generalGetSettingConnectionKeyJSON(data, key)
	case NM_SETTING_GSM_SETTING_NAME:
		valueJSON = generalGetSettingGsmKeyJSON(data, key)
	case NM_SETTING_IP4_CONFIG_SETTING_NAME:
		valueJSON = generalGetSettingIp4ConfigKeyJSON(data, key)
	case NM_SETTING_IP6_CONFIG_SETTING_NAME:
		valueJSON = generalGetSettingIp6ConfigKeyJSON(data, key)
	case NM_SETTING_PPP_SETTING_NAME:
		valueJSON = generalGetSettingPppKeyJSON(data, key)
	case NM_SETTING_PPPOE_SETTING_NAME:
		valueJSON = generalGetSettingPppoeKeyJSON(data, key)
	case NM_SETTING_SERIAL_SETTING_NAME:
		valueJSON = generalGetSettingSerialKeyJSON(data, key)
	case NM_SETTING_VPN_SETTING_NAME:
		valueJSON = generalGetSettingVpnKeyJSON(data, key)
	case NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME:
		valueJSON = generalGetSettingVpnL2tpKeyJSON(data, key)
	case NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME:
		valueJSON = generalGetSettingVpnL2tpPppKeyJSON(data, key)
	case NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME:
		valueJSON = generalGetSettingVpnL2tpIpsecKeyJSON(data, key)
	case NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME:
		valueJSON = generalGetSettingVpnOpenconnectKeyJSON(data, key)
	case NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME:
		valueJSON = generalGetSettingVpnOpenvpnKeyJSON(data, key)
	case NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME:
		valueJSON = generalGetSettingVpnOpenvpnAdvancedKeyJSON(data, key)
	case NM_SETTING_ALIAS_VPN_OPENVPN_SECURITY_SETTING_NAME:
		valueJSON = generalGetSettingVpnOpenvpnSecurityKeyJSON(data, key)
	case NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME:
		valueJSON = generalGetSettingVpnOpenvpnTlsauthKeyJSON(data, key)
	case NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME:
		valueJSON = generalGetSettingVpnOpenvpnProxiesKeyJSON(data, key)
	case NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME:
		valueJSON = generalGetSettingVpnPptpKeyJSON(data, key)
	case NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME:
		valueJSON = generalGetSettingVpnPptpPppKeyJSON(data, key)
	case NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME:
		valueJSON = generalGetSettingVpnVpncKeyJSON(data, key)
	case NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME:
		valueJSON = generalGetSettingVpnVpncAdvancedKeyJSON(data, key)
	case NM_SETTING_WIRED_SETTING_NAME:
		valueJSON = generalGetSettingWiredKeyJSON(data, key)
	case NM_SETTING_WIRELESS_SETTING_NAME:
		valueJSON = generalGetSettingWirelessKeyJSON(data, key)
	case NM_SETTING_WIRELESS_SECURITY_SETTING_NAME:
		valueJSON = generalGetSettingWirelessSecurityKeyJSON(data, key)
	}
	return
}

func generalSetSettingKeyJSON(data connectionData, section, key, valueJSON string) (err error) {
	if isVirtualKey(section, key) {
		err = generalSetVkeyJSON(data, section, key, valueJSON)
		return
	}
	switch section {
	default:
		logger.Error("invalid section name", section)
	case NM_SETTING_802_1X_SETTING_NAME:
		err = generalSetSetting8021xKeyJSON(data, key, valueJSON)
	case NM_SETTING_CDMA_SETTING_NAME:
		err = generalSetSettingCdmaKeyJSON(data, key, valueJSON)
	case NM_SETTING_CONNECTION_SETTING_NAME:
		err = generalSetSettingConnectionKeyJSON(data, key, valueJSON)
	case NM_SETTING_GSM_SETTING_NAME:
		err = generalSetSettingGsmKeyJSON(data, key, valueJSON)
	case NM_SETTING_IP4_CONFIG_SETTING_NAME:
		err = generalSetSettingIp4ConfigKeyJSON(data, key, valueJSON)
	case NM_SETTING_IP6_CONFIG_SETTING_NAME:
		err = generalSetSettingIp6ConfigKeyJSON(data, key, valueJSON)
	case NM_SETTING_PPP_SETTING_NAME:
		err = generalSetSettingPppKeyJSON(data, key, valueJSON)
	case NM_SETTING_PPPOE_SETTING_NAME:
		err = generalSetSettingPppoeKeyJSON(data, key, valueJSON)
	case NM_SETTING_SERIAL_SETTING_NAME:
		err = generalSetSettingSerialKeyJSON(data, key, valueJSON)
	case NM_SETTING_VPN_SETTING_NAME:
		err = generalSetSettingVpnKeyJSON(data, key, valueJSON)
	case NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME:
		err = generalSetSettingVpnL2tpKeyJSON(data, key, valueJSON)
	case NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME:
		err = generalSetSettingVpnL2tpPppKeyJSON(data, key, valueJSON)
	case NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME:
		err = generalSetSettingVpnL2tpIpsecKeyJSON(data, key, valueJSON)
	case NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME:
		err = generalSetSettingVpnOpenconnectKeyJSON(data, key, valueJSON)
	case NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME:
		err = generalSetSettingVpnOpenvpnKeyJSON(data, key, valueJSON)
	case NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME:
		err = generalSetSettingVpnOpenvpnAdvancedKeyJSON(data, key, valueJSON)
	case NM_SETTING_ALIAS_VPN_OPENVPN_SECURITY_SETTING_NAME:
		err = generalSetSettingVpnOpenvpnSecurityKeyJSON(data, key, valueJSON)
	case NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME:
		err = generalSetSettingVpnOpenvpnTlsauthKeyJSON(data, key, valueJSON)
	case NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME:
		err = generalSetSettingVpnOpenvpnProxiesKeyJSON(data, key, valueJSON)
	case NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME:
		err = generalSetSettingVpnPptpKeyJSON(data, key, valueJSON)
	case NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME:
		err = generalSetSettingVpnPptpPppKeyJSON(data, key, valueJSON)
	case NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME:
		err = generalSetSettingVpnVpncKeyJSON(data, key, valueJSON)
	case NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME:
		err = generalSetSettingVpnVpncAdvancedKeyJSON(data, key, valueJSON)
	case NM_SETTING_WIRED_SETTING_NAME:
		err = generalSetSettingWiredKeyJSON(data, key, valueJSON)
	case NM_SETTING_WIRELESS_SETTING_NAME:
		err = generalSetSettingWirelessKeyJSON(data, key, valueJSON)
	case NM_SETTING_WIRELESS_SECURITY_SETTING_NAME:
		err = generalSetSettingWirelessSecurityKeyJSON(data, key, valueJSON)
	}
	return
}

func generalGetSettingDefaultValue(section, key string) (value interface{}) {
	switch section {
	default:
		logger.Error("invalid section name", section)
	case NM_SETTING_802_1X_SETTING_NAME:
		value = getSetting8021xDefaultValue(key)
	case NM_SETTING_CDMA_SETTING_NAME:
		value = getSettingCdmaDefaultValue(key)
	case NM_SETTING_CONNECTION_SETTING_NAME:
		value = getSettingConnectionDefaultValue(key)
	case NM_SETTING_GSM_SETTING_NAME:
		value = getSettingGsmDefaultValue(key)
	case NM_SETTING_IP4_CONFIG_SETTING_NAME:
		value = getSettingIp4ConfigDefaultValue(key)
	case NM_SETTING_IP6_CONFIG_SETTING_NAME:
		value = getSettingIp6ConfigDefaultValue(key)
	case NM_SETTING_PPP_SETTING_NAME:
		value = getSettingPppDefaultValue(key)
	case NM_SETTING_PPPOE_SETTING_NAME:
		value = getSettingPppoeDefaultValue(key)
	case NM_SETTING_SERIAL_SETTING_NAME:
		value = getSettingSerialDefaultValue(key)
	case NM_SETTING_VPN_SETTING_NAME:
		value = getSettingVpnDefaultValue(key)
	case NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME:
		value = getSettingVpnL2tpDefaultValue(key)
	case NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME:
		value = getSettingVpnL2tpPppDefaultValue(key)
	case NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME:
		value = getSettingVpnL2tpIpsecDefaultValue(key)
	case NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME:
		value = getSettingVpnOpenconnectDefaultValue(key)
	case NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME:
		value = getSettingVpnOpenvpnDefaultValue(key)
	case NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME:
		value = getSettingVpnOpenvpnAdvancedDefaultValue(key)
	case NM_SETTING_ALIAS_VPN_OPENVPN_SECURITY_SETTING_NAME:
		value = getSettingVpnOpenvpnSecurityDefaultValue(key)
	case NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME:
		value = getSettingVpnOpenvpnTlsauthDefaultValue(key)
	case NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME:
		value = getSettingVpnOpenvpnProxiesDefaultValue(key)
	case NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME:
		value = getSettingVpnPptpDefaultValue(key)
	case NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME:
		value = getSettingVpnPptpPppDefaultValue(key)
	case NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME:
		value = getSettingVpnVpncDefaultValue(key)
	case NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME:
		value = getSettingVpnVpncAdvancedDefaultValue(key)
	case NM_SETTING_WIRED_SETTING_NAME:
		value = getSettingWiredDefaultValue(key)
	case NM_SETTING_WIRELESS_SETTING_NAME:
		value = getSettingWirelessDefaultValue(key)
	case NM_SETTING_WIRELESS_SECURITY_SETTING_NAME:
		value = getSettingWirelessSecurityDefaultValue(key)
	}
	return
}

// Origin file name ../nm_setting_802_1x_gen.go
// Get key type
func getSetting8021xKeyType(key string) (t ktype) {
	switch key {
	default:
		t = ktypeUnknown
	case NM_SETTING_802_1X_EAP:
		t = ktypeArrayString
	case NM_SETTING_802_1X_IDENTITY:
		t = ktypeString
	case NM_SETTING_802_1X_ANONYMOUS_IDENTITY:
		t = ktypeString
	case NM_SETTING_802_1X_CA_CERT:
		t = ktypeWrapperString
	case NM_SETTING_802_1X_CLIENT_CERT:
		t = ktypeWrapperString
	case NM_SETTING_802_1X_PHASE1_FAST_PROVISIONING:
		t = ktypeString
	case NM_SETTING_802_1X_PAC_FILE:
		t = ktypeString
	case NM_SETTING_802_1X_PHASE1_PEAPVER:
		t = ktypeString
	case NM_SETTING_802_1X_PHASE2_AUTH:
		t = ktypeString
	case NM_SETTING_802_1X_PRIVATE_KEY:
		t = ktypeWrapperString
	case NM_SETTING_802_1X_PASSWORD_FLAGS:
		t = ktypeUint32
	case NM_SETTING_802_1X_PASSWORD:
		t = ktypeString
	case NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD_FLAGS:
		t = ktypeUint32
	case NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD:
		t = ktypeString
	case NM_SETTING_802_1X_CA_PATH:
		t = ktypeString
	case NM_SETTING_802_1X_SUBJECT_MATCH:
		t = ktypeString
	case NM_SETTING_802_1X_ALTSUBJECT_MATCHES:
		t = ktypeArrayString
	case NM_SETTING_802_1X_PHASE1_PEAPLABEL:
		t = ktypeString
	case NM_SETTING_802_1X_PHASE2_AUTHEAP:
		t = ktypeString
	case NM_SETTING_802_1X_PHASE2_CA_CERT:
		t = ktypeWrapperString
	case NM_SETTING_802_1X_PHASE2_CA_PATH:
		t = ktypeString
	case NM_SETTING_802_1X_PHASE2_CLIENT_CERT:
		t = ktypeWrapperString
	case NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH:
		t = ktypeString
	case NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES:
		t = ktypeArrayString
	case NM_SETTING_802_1X_PASSWORD_RAW:
		t = ktypeArrayByte
	case NM_SETTING_802_1X_PASSWORD_RAW_FLAGS:
		t = ktypeUint32
	case NM_SETTING_802_1X_PHASE2_PRIVATE_KEY:
		t = ktypeWrapperString
	case NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD:
		t = ktypeString
	case NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD_FLAGS:
		t = ktypeUint32
	case NM_SETTING_802_1X_PIN:
		t = ktypeString
	case NM_SETTING_802_1X_PIN_FLAGS:
		t = ktypeUint32
	case NM_SETTING_802_1X_SYSTEM_CA_CERTS:
		t = ktypeBoolean
	}
	return
}

// Check is key in current setting section
func isKeyInSetting8021x(key string) bool {
	switch key {
	case NM_SETTING_802_1X_EAP:
		return true
	case NM_SETTING_802_1X_IDENTITY:
		return true
	case NM_SETTING_802_1X_ANONYMOUS_IDENTITY:
		return true
	case NM_SETTING_802_1X_CA_CERT:
		return true
	case NM_SETTING_802_1X_CLIENT_CERT:
		return true
	case NM_SETTING_802_1X_PHASE1_FAST_PROVISIONING:
		return true
	case NM_SETTING_802_1X_PAC_FILE:
		return true
	case NM_SETTING_802_1X_PHASE1_PEAPVER:
		return true
	case NM_SETTING_802_1X_PHASE2_AUTH:
		return true
	case NM_SETTING_802_1X_PRIVATE_KEY:
		return true
	case NM_SETTING_802_1X_PASSWORD_FLAGS:
		return true
	case NM_SETTING_802_1X_PASSWORD:
		return true
	case NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD_FLAGS:
		return true
	case NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD:
		return true
	case NM_SETTING_802_1X_CA_PATH:
		return true
	case NM_SETTING_802_1X_SUBJECT_MATCH:
		return true
	case NM_SETTING_802_1X_ALTSUBJECT_MATCHES:
		return true
	case NM_SETTING_802_1X_PHASE1_PEAPLABEL:
		return true
	case NM_SETTING_802_1X_PHASE2_AUTHEAP:
		return true
	case NM_SETTING_802_1X_PHASE2_CA_CERT:
		return true
	case NM_SETTING_802_1X_PHASE2_CA_PATH:
		return true
	case NM_SETTING_802_1X_PHASE2_CLIENT_CERT:
		return true
	case NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH:
		return true
	case NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES:
		return true
	case NM_SETTING_802_1X_PASSWORD_RAW:
		return true
	case NM_SETTING_802_1X_PASSWORD_RAW_FLAGS:
		return true
	case NM_SETTING_802_1X_PHASE2_PRIVATE_KEY:
		return true
	case NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD:
		return true
	case NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD_FLAGS:
		return true
	case NM_SETTING_802_1X_PIN:
		return true
	case NM_SETTING_802_1X_PIN_FLAGS:
		return true
	case NM_SETTING_802_1X_SYSTEM_CA_CERTS:
		return true
	}
	return false
}

// Get key's default value
func getSetting8021xDefaultValue(key string) (value interface{}) {
	switch key {
	default:
		logger.Error("invalid key:", key)
	case NM_SETTING_802_1X_EAP:
		value = make([]string, 0)
	case NM_SETTING_802_1X_IDENTITY:
		value = ""
	case NM_SETTING_802_1X_ANONYMOUS_IDENTITY:
		value = ""
	case NM_SETTING_802_1X_CA_CERT:
		value = make([]byte, 0)
	case NM_SETTING_802_1X_CLIENT_CERT:
		value = make([]byte, 0)
	case NM_SETTING_802_1X_PHASE1_FAST_PROVISIONING:
		value = ""
	case NM_SETTING_802_1X_PAC_FILE:
		value = ""
	case NM_SETTING_802_1X_PHASE1_PEAPVER:
		value = ""
	case NM_SETTING_802_1X_PHASE2_AUTH:
		value = ""
	case NM_SETTING_802_1X_PRIVATE_KEY:
		value = make([]byte, 0)
	case NM_SETTING_802_1X_PASSWORD_FLAGS:
		value = uint32(0)
	case NM_SETTING_802_1X_PASSWORD:
		value = ""
	case NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD_FLAGS:
		value = uint32(0)
	case NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD:
		value = ""
	case NM_SETTING_802_1X_CA_PATH:
		value = ""
	case NM_SETTING_802_1X_SUBJECT_MATCH:
		value = ""
	case NM_SETTING_802_1X_ALTSUBJECT_MATCHES:
		value = make([]string, 0)
	case NM_SETTING_802_1X_PHASE1_PEAPLABEL:
		value = ""
	case NM_SETTING_802_1X_PHASE2_AUTHEAP:
		value = ""
	case NM_SETTING_802_1X_PHASE2_CA_CERT:
		value = make([]byte, 0)
	case NM_SETTING_802_1X_PHASE2_CA_PATH:
		value = ""
	case NM_SETTING_802_1X_PHASE2_CLIENT_CERT:
		value = make([]byte, 0)
	case NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH:
		value = ""
	case NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES:
		value = make([]string, 0)
	case NM_SETTING_802_1X_PASSWORD_RAW:
		value = make([]byte, 0)
	case NM_SETTING_802_1X_PASSWORD_RAW_FLAGS:
		value = uint32(0)
	case NM_SETTING_802_1X_PHASE2_PRIVATE_KEY:
		value = make([]byte, 0)
	case NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD:
		value = ""
	case NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD_FLAGS:
		value = uint32(0)
	case NM_SETTING_802_1X_PIN:
		value = ""
	case NM_SETTING_802_1X_PIN_FLAGS:
		value = uint32(0)
	case NM_SETTING_802_1X_SYSTEM_CA_CERTS:
		value = false
	}
	return
}

// Get JSON value generally
func generalGetSetting8021xKeyJSON(data connectionData, key string) (value string) {
	switch key {
	default:
		logger.Error("generalGetSetting8021xKeyJSON: invalide key", key)
	case NM_SETTING_802_1X_EAP:
		value = getSetting8021xEapJSON(data)
	case NM_SETTING_802_1X_IDENTITY:
		value = getSetting8021xIdentityJSON(data)
	case NM_SETTING_802_1X_ANONYMOUS_IDENTITY:
		value = getSetting8021xAnonymousIdentityJSON(data)
	case NM_SETTING_802_1X_CA_CERT:
		value = getSetting8021xCaCertJSON(data)
	case NM_SETTING_802_1X_CLIENT_CERT:
		value = getSetting8021xClientCertJSON(data)
	case NM_SETTING_802_1X_PHASE1_FAST_PROVISIONING:
		value = getSetting8021xPhase1FastProvisioningJSON(data)
	case NM_SETTING_802_1X_PAC_FILE:
		value = getSetting8021xPacFileJSON(data)
	case NM_SETTING_802_1X_PHASE1_PEAPVER:
		value = getSetting8021xPhase1PeapverJSON(data)
	case NM_SETTING_802_1X_PHASE2_AUTH:
		value = getSetting8021xPhase2AuthJSON(data)
	case NM_SETTING_802_1X_PRIVATE_KEY:
		value = getSetting8021xPrivateKeyJSON(data)
	case NM_SETTING_802_1X_PASSWORD_FLAGS:
		value = getSetting8021xPasswordFlagsJSON(data)
	case NM_SETTING_802_1X_PASSWORD:
		value = getSetting8021xPasswordJSON(data)
	case NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD_FLAGS:
		value = getSetting8021xPrivateKeyPasswordFlagsJSON(data)
	case NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD:
		value = getSetting8021xPrivateKeyPasswordJSON(data)
	case NM_SETTING_802_1X_CA_PATH:
		value = getSetting8021xCaPathJSON(data)
	case NM_SETTING_802_1X_SUBJECT_MATCH:
		value = getSetting8021xSubjectMatchJSON(data)
	case NM_SETTING_802_1X_ALTSUBJECT_MATCHES:
		value = getSetting8021xAltsubjectMatchesJSON(data)
	case NM_SETTING_802_1X_PHASE1_PEAPLABEL:
		value = getSetting8021xPhase1PeaplabelJSON(data)
	case NM_SETTING_802_1X_PHASE2_AUTHEAP:
		value = getSetting8021xPhase2AutheapJSON(data)
	case NM_SETTING_802_1X_PHASE2_CA_CERT:
		value = getSetting8021xPhase2CaCertJSON(data)
	case NM_SETTING_802_1X_PHASE2_CA_PATH:
		value = getSetting8021xPhase2CaPathJSON(data)
	case NM_SETTING_802_1X_PHASE2_CLIENT_CERT:
		value = getSetting8021xPhase2ClientCertJSON(data)
	case NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH:
		value = getSetting8021xPhase2SubjectMatchJSON(data)
	case NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES:
		value = getSetting8021xPhase2AltsubjectMatchesJSON(data)
	case NM_SETTING_802_1X_PASSWORD_RAW:
		value = getSetting8021xPasswordRawJSON(data)
	case NM_SETTING_802_1X_PASSWORD_RAW_FLAGS:
		value = getSetting8021xPasswordRawFlagsJSON(data)
	case NM_SETTING_802_1X_PHASE2_PRIVATE_KEY:
		value = getSetting8021xPhase2PrivateKeyJSON(data)
	case NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD:
		value = getSetting8021xPhase2PrivateKeyPasswordJSON(data)
	case NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD_FLAGS:
		value = getSetting8021xPhase2PrivateKeyPasswordFlagsJSON(data)
	case NM_SETTING_802_1X_PIN:
		value = getSetting8021xPinJSON(data)
	case NM_SETTING_802_1X_PIN_FLAGS:
		value = getSetting8021xPinFlagsJSON(data)
	case NM_SETTING_802_1X_SYSTEM_CA_CERTS:
		value = getSetting8021xSystemCaCertsJSON(data)
	}
	return
}

// Set JSON value generally
func generalSetSetting8021xKeyJSON(data connectionData, key, valueJSON string) (err error) {
	switch key {
	default:
		logger.Error("generalSetSetting8021xKeyJSON: invalide key", key)
	case NM_SETTING_802_1X_EAP:
		err = logicSetSetting8021xEapJSON(data, valueJSON)
	case NM_SETTING_802_1X_IDENTITY:
		err = setSetting8021xIdentityJSON(data, valueJSON)
	case NM_SETTING_802_1X_ANONYMOUS_IDENTITY:
		err = setSetting8021xAnonymousIdentityJSON(data, valueJSON)
	case NM_SETTING_802_1X_CA_CERT:
		err = setSetting8021xCaCertJSON(data, valueJSON)
	case NM_SETTING_802_1X_CLIENT_CERT:
		err = setSetting8021xClientCertJSON(data, valueJSON)
	case NM_SETTING_802_1X_PHASE1_FAST_PROVISIONING:
		err = setSetting8021xPhase1FastProvisioningJSON(data, valueJSON)
	case NM_SETTING_802_1X_PAC_FILE:
		err = setSetting8021xPacFileJSON(data, valueJSON)
	case NM_SETTING_802_1X_PHASE1_PEAPVER:
		err = setSetting8021xPhase1PeapverJSON(data, valueJSON)
	case NM_SETTING_802_1X_PHASE2_AUTH:
		err = setSetting8021xPhase2AuthJSON(data, valueJSON)
	case NM_SETTING_802_1X_PRIVATE_KEY:
		err = setSetting8021xPrivateKeyJSON(data, valueJSON)
	case NM_SETTING_802_1X_PASSWORD_FLAGS:
		err = setSetting8021xPasswordFlagsJSON(data, valueJSON)
	case NM_SETTING_802_1X_PASSWORD:
		err = setSetting8021xPasswordJSON(data, valueJSON)
	case NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD_FLAGS:
		err = setSetting8021xPrivateKeyPasswordFlagsJSON(data, valueJSON)
	case NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD:
		err = setSetting8021xPrivateKeyPasswordJSON(data, valueJSON)
	case NM_SETTING_802_1X_CA_PATH:
		err = setSetting8021xCaPathJSON(data, valueJSON)
	case NM_SETTING_802_1X_SUBJECT_MATCH:
		err = setSetting8021xSubjectMatchJSON(data, valueJSON)
	case NM_SETTING_802_1X_ALTSUBJECT_MATCHES:
		err = setSetting8021xAltsubjectMatchesJSON(data, valueJSON)
	case NM_SETTING_802_1X_PHASE1_PEAPLABEL:
		err = setSetting8021xPhase1PeaplabelJSON(data, valueJSON)
	case NM_SETTING_802_1X_PHASE2_AUTHEAP:
		err = setSetting8021xPhase2AutheapJSON(data, valueJSON)
	case NM_SETTING_802_1X_PHASE2_CA_CERT:
		err = setSetting8021xPhase2CaCertJSON(data, valueJSON)
	case NM_SETTING_802_1X_PHASE2_CA_PATH:
		err = setSetting8021xPhase2CaPathJSON(data, valueJSON)
	case NM_SETTING_802_1X_PHASE2_CLIENT_CERT:
		err = setSetting8021xPhase2ClientCertJSON(data, valueJSON)
	case NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH:
		err = setSetting8021xPhase2SubjectMatchJSON(data, valueJSON)
	case NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES:
		err = setSetting8021xPhase2AltsubjectMatchesJSON(data, valueJSON)
	case NM_SETTING_802_1X_PASSWORD_RAW:
		err = setSetting8021xPasswordRawJSON(data, valueJSON)
	case NM_SETTING_802_1X_PASSWORD_RAW_FLAGS:
		err = setSetting8021xPasswordRawFlagsJSON(data, valueJSON)
	case NM_SETTING_802_1X_PHASE2_PRIVATE_KEY:
		err = setSetting8021xPhase2PrivateKeyJSON(data, valueJSON)
	case NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD:
		err = setSetting8021xPhase2PrivateKeyPasswordJSON(data, valueJSON)
	case NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD_FLAGS:
		err = setSetting8021xPhase2PrivateKeyPasswordFlagsJSON(data, valueJSON)
	case NM_SETTING_802_1X_PIN:
		err = setSetting8021xPinJSON(data, valueJSON)
	case NM_SETTING_802_1X_PIN_FLAGS:
		err = setSetting8021xPinFlagsJSON(data, valueJSON)
	case NM_SETTING_802_1X_SYSTEM_CA_CERTS:
		err = setSetting8021xSystemCaCertsJSON(data, valueJSON)
	}
	return
}

// Check if key exists
func isSetting8021xEapExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_EAP)
}
func isSetting8021xIdentityExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_IDENTITY)
}
func isSetting8021xAnonymousIdentityExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_ANONYMOUS_IDENTITY)
}
func isSetting8021xCaCertExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_CA_CERT)
}
func isSetting8021xClientCertExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_CLIENT_CERT)
}
func isSetting8021xPhase1FastProvisioningExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE1_FAST_PROVISIONING)
}
func isSetting8021xPacFileExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PAC_FILE)
}
func isSetting8021xPhase1PeapverExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE1_PEAPVER)
}
func isSetting8021xPhase2AuthExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_AUTH)
}
func isSetting8021xPrivateKeyExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PRIVATE_KEY)
}
func isSetting8021xPasswordFlagsExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PASSWORD_FLAGS)
}
func isSetting8021xPasswordExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PASSWORD)
}
func isSetting8021xPrivateKeyPasswordFlagsExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD_FLAGS)
}
func isSetting8021xPrivateKeyPasswordExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD)
}
func isSetting8021xCaPathExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_CA_PATH)
}
func isSetting8021xSubjectMatchExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_SUBJECT_MATCH)
}
func isSetting8021xAltsubjectMatchesExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_ALTSUBJECT_MATCHES)
}
func isSetting8021xPhase1PeaplabelExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE1_PEAPLABEL)
}
func isSetting8021xPhase2AutheapExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_AUTHEAP)
}
func isSetting8021xPhase2CaCertExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_CA_CERT)
}
func isSetting8021xPhase2CaPathExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_CA_PATH)
}
func isSetting8021xPhase2ClientCertExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_CLIENT_CERT)
}
func isSetting8021xPhase2SubjectMatchExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH)
}
func isSetting8021xPhase2AltsubjectMatchesExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES)
}
func isSetting8021xPasswordRawExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PASSWORD_RAW)
}
func isSetting8021xPasswordRawFlagsExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PASSWORD_RAW_FLAGS)
}
func isSetting8021xPhase2PrivateKeyExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_PRIVATE_KEY)
}
func isSetting8021xPhase2PrivateKeyPasswordExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD)
}
func isSetting8021xPhase2PrivateKeyPasswordFlagsExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD_FLAGS)
}
func isSetting8021xPinExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PIN)
}
func isSetting8021xPinFlagsExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PIN_FLAGS)
}
func isSetting8021xSystemCaCertsExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_SYSTEM_CA_CERTS)
}

// Ensure section and key exists and not empty
func ensureSectionSetting8021xExists(data connectionData, errs sectionErrors, relatedKey string) {
	if !isSettingSectionExists(data, NM_SETTING_802_1X_SETTING_NAME) {
		rememberError(errs, relatedKey, NM_SETTING_802_1X_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_MISSING_SECTION, NM_SETTING_802_1X_SETTING_NAME))
	}
	sectionData, _ := data[NM_SETTING_802_1X_SETTING_NAME]
	if len(sectionData) == 0 {
		rememberError(errs, relatedKey, NM_SETTING_802_1X_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_EMPTY_SECTION, NM_SETTING_802_1X_SETTING_NAME))
	}
}
func ensureSetting8021xEapNoEmpty(data connectionData, errs sectionErrors) {
	if !isSetting8021xEapExists(data) {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_EAP, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSetting8021xEap(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_EAP, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSetting8021xIdentityNoEmpty(data connectionData, errs sectionErrors) {
	if !isSetting8021xIdentityExists(data) {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_IDENTITY, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSetting8021xIdentity(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_IDENTITY, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSetting8021xAnonymousIdentityNoEmpty(data connectionData, errs sectionErrors) {
	if !isSetting8021xAnonymousIdentityExists(data) {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_ANONYMOUS_IDENTITY, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSetting8021xAnonymousIdentity(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_ANONYMOUS_IDENTITY, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSetting8021xCaCertNoEmpty(data connectionData, errs sectionErrors) {
	if !isSetting8021xCaCertExists(data) {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_CA_CERT, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSetting8021xCaCert(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_CA_CERT, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSetting8021xClientCertNoEmpty(data connectionData, errs sectionErrors) {
	if !isSetting8021xClientCertExists(data) {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_CLIENT_CERT, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSetting8021xClientCert(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_CLIENT_CERT, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSetting8021xPhase1FastProvisioningNoEmpty(data connectionData, errs sectionErrors) {
	if !isSetting8021xPhase1FastProvisioningExists(data) {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE1_FAST_PROVISIONING, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSetting8021xPhase1FastProvisioning(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE1_FAST_PROVISIONING, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSetting8021xPacFileNoEmpty(data connectionData, errs sectionErrors) {
	if !isSetting8021xPacFileExists(data) {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PAC_FILE, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSetting8021xPacFile(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PAC_FILE, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSetting8021xPhase1PeapverNoEmpty(data connectionData, errs sectionErrors) {
	if !isSetting8021xPhase1PeapverExists(data) {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE1_PEAPVER, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSetting8021xPhase1Peapver(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE1_PEAPVER, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSetting8021xPhase2AuthNoEmpty(data connectionData, errs sectionErrors) {
	if !isSetting8021xPhase2AuthExists(data) {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_AUTH, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSetting8021xPhase2Auth(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_AUTH, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSetting8021xPrivateKeyNoEmpty(data connectionData, errs sectionErrors) {
	if !isSetting8021xPrivateKeyExists(data) {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PRIVATE_KEY, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSetting8021xPrivateKey(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PRIVATE_KEY, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSetting8021xPasswordFlagsNoEmpty(data connectionData, errs sectionErrors) {
	if !isSetting8021xPasswordFlagsExists(data) {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PASSWORD_FLAGS, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSetting8021xPasswordNoEmpty(data connectionData, errs sectionErrors) {
	if !isSetting8021xPasswordExists(data) {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PASSWORD, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSetting8021xPassword(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PASSWORD, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSetting8021xPrivateKeyPasswordFlagsNoEmpty(data connectionData, errs sectionErrors) {
	if !isSetting8021xPrivateKeyPasswordFlagsExists(data) {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD_FLAGS, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSetting8021xPrivateKeyPasswordNoEmpty(data connectionData, errs sectionErrors) {
	if !isSetting8021xPrivateKeyPasswordExists(data) {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSetting8021xPrivateKeyPassword(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSetting8021xCaPathNoEmpty(data connectionData, errs sectionErrors) {
	if !isSetting8021xCaPathExists(data) {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_CA_PATH, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSetting8021xCaPath(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_CA_PATH, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSetting8021xSubjectMatchNoEmpty(data connectionData, errs sectionErrors) {
	if !isSetting8021xSubjectMatchExists(data) {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_SUBJECT_MATCH, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSetting8021xSubjectMatch(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_SUBJECT_MATCH, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSetting8021xAltsubjectMatchesNoEmpty(data connectionData, errs sectionErrors) {
	if !isSetting8021xAltsubjectMatchesExists(data) {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_ALTSUBJECT_MATCHES, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSetting8021xAltsubjectMatches(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_ALTSUBJECT_MATCHES, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSetting8021xPhase1PeaplabelNoEmpty(data connectionData, errs sectionErrors) {
	if !isSetting8021xPhase1PeaplabelExists(data) {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE1_PEAPLABEL, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSetting8021xPhase1Peaplabel(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE1_PEAPLABEL, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSetting8021xPhase2AutheapNoEmpty(data connectionData, errs sectionErrors) {
	if !isSetting8021xPhase2AutheapExists(data) {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_AUTHEAP, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSetting8021xPhase2Autheap(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_AUTHEAP, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSetting8021xPhase2CaCertNoEmpty(data connectionData, errs sectionErrors) {
	if !isSetting8021xPhase2CaCertExists(data) {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_CA_CERT, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSetting8021xPhase2CaCert(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_CA_CERT, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSetting8021xPhase2CaPathNoEmpty(data connectionData, errs sectionErrors) {
	if !isSetting8021xPhase2CaPathExists(data) {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_CA_PATH, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSetting8021xPhase2CaPath(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_CA_PATH, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSetting8021xPhase2ClientCertNoEmpty(data connectionData, errs sectionErrors) {
	if !isSetting8021xPhase2ClientCertExists(data) {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_CLIENT_CERT, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSetting8021xPhase2ClientCert(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_CLIENT_CERT, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSetting8021xPhase2SubjectMatchNoEmpty(data connectionData, errs sectionErrors) {
	if !isSetting8021xPhase2SubjectMatchExists(data) {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSetting8021xPhase2SubjectMatch(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSetting8021xPhase2AltsubjectMatchesNoEmpty(data connectionData, errs sectionErrors) {
	if !isSetting8021xPhase2AltsubjectMatchesExists(data) {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSetting8021xPhase2AltsubjectMatches(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSetting8021xPasswordRawNoEmpty(data connectionData, errs sectionErrors) {
	if !isSetting8021xPasswordRawExists(data) {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PASSWORD_RAW, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSetting8021xPasswordRaw(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PASSWORD_RAW, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSetting8021xPasswordRawFlagsNoEmpty(data connectionData, errs sectionErrors) {
	if !isSetting8021xPasswordRawFlagsExists(data) {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PASSWORD_RAW_FLAGS, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSetting8021xPhase2PrivateKeyNoEmpty(data connectionData, errs sectionErrors) {
	if !isSetting8021xPhase2PrivateKeyExists(data) {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_PRIVATE_KEY, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSetting8021xPhase2PrivateKey(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_PRIVATE_KEY, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSetting8021xPhase2PrivateKeyPasswordNoEmpty(data connectionData, errs sectionErrors) {
	if !isSetting8021xPhase2PrivateKeyPasswordExists(data) {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSetting8021xPhase2PrivateKeyPassword(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSetting8021xPhase2PrivateKeyPasswordFlagsNoEmpty(data connectionData, errs sectionErrors) {
	if !isSetting8021xPhase2PrivateKeyPasswordFlagsExists(data) {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD_FLAGS, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSetting8021xPinNoEmpty(data connectionData, errs sectionErrors) {
	if !isSetting8021xPinExists(data) {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PIN, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSetting8021xPin(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PIN, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSetting8021xPinFlagsNoEmpty(data connectionData, errs sectionErrors) {
	if !isSetting8021xPinFlagsExists(data) {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PIN_FLAGS, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSetting8021xSystemCaCertsNoEmpty(data connectionData, errs sectionErrors) {
	if !isSetting8021xSystemCaCertsExists(data) {
		rememberError(errs, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_SYSTEM_CA_CERTS, NM_KEY_ERROR_MISSING_VALUE)
	}
}

// Getter
func getSetting8021xEap(data connectionData) (value []string) {
	ivalue := getSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_EAP)
	value = interfaceToArrayString(ivalue)
	return
}
func getSetting8021xIdentity(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_IDENTITY)
	value = interfaceToString(ivalue)
	return
}
func getSetting8021xAnonymousIdentity(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_ANONYMOUS_IDENTITY)
	value = interfaceToString(ivalue)
	return
}
func getSetting8021xCaCert(data connectionData) (value []byte) {
	ivalue := getSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_CA_CERT)
	value = interfaceToArrayByte(ivalue)
	return
}
func getSetting8021xClientCert(data connectionData) (value []byte) {
	ivalue := getSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_CLIENT_CERT)
	value = interfaceToArrayByte(ivalue)
	return
}
func getSetting8021xPhase1FastProvisioning(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE1_FAST_PROVISIONING)
	value = interfaceToString(ivalue)
	return
}
func getSetting8021xPacFile(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PAC_FILE)
	value = interfaceToString(ivalue)
	return
}
func getSetting8021xPhase1Peapver(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE1_PEAPVER)
	value = interfaceToString(ivalue)
	return
}
func getSetting8021xPhase2Auth(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_AUTH)
	value = interfaceToString(ivalue)
	return
}
func getSetting8021xPrivateKey(data connectionData) (value []byte) {
	ivalue := getSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PRIVATE_KEY)
	value = interfaceToArrayByte(ivalue)
	return
}
func getSetting8021xPasswordFlags(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PASSWORD_FLAGS)
	value = interfaceToUint32(ivalue)
	return
}
func getSetting8021xPassword(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PASSWORD)
	value = interfaceToString(ivalue)
	return
}
func getSetting8021xPrivateKeyPasswordFlags(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD_FLAGS)
	value = interfaceToUint32(ivalue)
	return
}
func getSetting8021xPrivateKeyPassword(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD)
	value = interfaceToString(ivalue)
	return
}
func getSetting8021xCaPath(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_CA_PATH)
	value = interfaceToString(ivalue)
	return
}
func getSetting8021xSubjectMatch(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_SUBJECT_MATCH)
	value = interfaceToString(ivalue)
	return
}
func getSetting8021xAltsubjectMatches(data connectionData) (value []string) {
	ivalue := getSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_ALTSUBJECT_MATCHES)
	value = interfaceToArrayString(ivalue)
	return
}
func getSetting8021xPhase1Peaplabel(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE1_PEAPLABEL)
	value = interfaceToString(ivalue)
	return
}
func getSetting8021xPhase2Autheap(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_AUTHEAP)
	value = interfaceToString(ivalue)
	return
}
func getSetting8021xPhase2CaCert(data connectionData) (value []byte) {
	ivalue := getSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_CA_CERT)
	value = interfaceToArrayByte(ivalue)
	return
}
func getSetting8021xPhase2CaPath(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_CA_PATH)
	value = interfaceToString(ivalue)
	return
}
func getSetting8021xPhase2ClientCert(data connectionData) (value []byte) {
	ivalue := getSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_CLIENT_CERT)
	value = interfaceToArrayByte(ivalue)
	return
}
func getSetting8021xPhase2SubjectMatch(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH)
	value = interfaceToString(ivalue)
	return
}
func getSetting8021xPhase2AltsubjectMatches(data connectionData) (value []string) {
	ivalue := getSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES)
	value = interfaceToArrayString(ivalue)
	return
}
func getSetting8021xPasswordRaw(data connectionData) (value []byte) {
	ivalue := getSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PASSWORD_RAW)
	value = interfaceToArrayByte(ivalue)
	return
}
func getSetting8021xPasswordRawFlags(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PASSWORD_RAW_FLAGS)
	value = interfaceToUint32(ivalue)
	return
}
func getSetting8021xPhase2PrivateKey(data connectionData) (value []byte) {
	ivalue := getSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_PRIVATE_KEY)
	value = interfaceToArrayByte(ivalue)
	return
}
func getSetting8021xPhase2PrivateKeyPassword(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD)
	value = interfaceToString(ivalue)
	return
}
func getSetting8021xPhase2PrivateKeyPasswordFlags(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD_FLAGS)
	value = interfaceToUint32(ivalue)
	return
}
func getSetting8021xPin(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PIN)
	value = interfaceToString(ivalue)
	return
}
func getSetting8021xPinFlags(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PIN_FLAGS)
	value = interfaceToUint32(ivalue)
	return
}
func getSetting8021xSystemCaCerts(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_SYSTEM_CA_CERTS)
	value = interfaceToBoolean(ivalue)
	return
}

// Setter
func setSetting8021xEap(data connectionData, value []string) {
	setSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_EAP, value)
}
func setSetting8021xIdentity(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_IDENTITY, value)
}
func setSetting8021xAnonymousIdentity(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_ANONYMOUS_IDENTITY, value)
}
func setSetting8021xCaCert(data connectionData, value []byte) {
	setSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_CA_CERT, value)
}
func setSetting8021xClientCert(data connectionData, value []byte) {
	setSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_CLIENT_CERT, value)
}
func setSetting8021xPhase1FastProvisioning(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE1_FAST_PROVISIONING, value)
}
func setSetting8021xPacFile(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PAC_FILE, value)
}
func setSetting8021xPhase1Peapver(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE1_PEAPVER, value)
}
func setSetting8021xPhase2Auth(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_AUTH, value)
}
func setSetting8021xPrivateKey(data connectionData, value []byte) {
	setSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PRIVATE_KEY, value)
}
func setSetting8021xPasswordFlags(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PASSWORD_FLAGS, value)
}
func setSetting8021xPassword(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PASSWORD, value)
}
func setSetting8021xPrivateKeyPasswordFlags(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD_FLAGS, value)
}
func setSetting8021xPrivateKeyPassword(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD, value)
}
func setSetting8021xCaPath(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_CA_PATH, value)
}
func setSetting8021xSubjectMatch(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_SUBJECT_MATCH, value)
}
func setSetting8021xAltsubjectMatches(data connectionData, value []string) {
	setSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_ALTSUBJECT_MATCHES, value)
}
func setSetting8021xPhase1Peaplabel(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE1_PEAPLABEL, value)
}
func setSetting8021xPhase2Autheap(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_AUTHEAP, value)
}
func setSetting8021xPhase2CaCert(data connectionData, value []byte) {
	setSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_CA_CERT, value)
}
func setSetting8021xPhase2CaPath(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_CA_PATH, value)
}
func setSetting8021xPhase2ClientCert(data connectionData, value []byte) {
	setSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_CLIENT_CERT, value)
}
func setSetting8021xPhase2SubjectMatch(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH, value)
}
func setSetting8021xPhase2AltsubjectMatches(data connectionData, value []string) {
	setSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES, value)
}
func setSetting8021xPasswordRaw(data connectionData, value []byte) {
	setSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PASSWORD_RAW, value)
}
func setSetting8021xPasswordRawFlags(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PASSWORD_RAW_FLAGS, value)
}
func setSetting8021xPhase2PrivateKey(data connectionData, value []byte) {
	setSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_PRIVATE_KEY, value)
}
func setSetting8021xPhase2PrivateKeyPassword(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD, value)
}
func setSetting8021xPhase2PrivateKeyPasswordFlags(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD_FLAGS, value)
}
func setSetting8021xPin(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PIN, value)
}
func setSetting8021xPinFlags(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PIN_FLAGS, value)
}
func setSetting8021xSystemCaCerts(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_SYSTEM_CA_CERTS, value)
}

// JSON Getter
func getSetting8021xEapJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_EAP, getSetting8021xKeyType(NM_SETTING_802_1X_EAP))
	return
}
func getSetting8021xIdentityJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_IDENTITY, getSetting8021xKeyType(NM_SETTING_802_1X_IDENTITY))
	return
}
func getSetting8021xAnonymousIdentityJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_ANONYMOUS_IDENTITY, getSetting8021xKeyType(NM_SETTING_802_1X_ANONYMOUS_IDENTITY))
	return
}
func getSetting8021xCaCertJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_CA_CERT, getSetting8021xKeyType(NM_SETTING_802_1X_CA_CERT))
	return
}
func getSetting8021xClientCertJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_CLIENT_CERT, getSetting8021xKeyType(NM_SETTING_802_1X_CLIENT_CERT))
	return
}
func getSetting8021xPhase1FastProvisioningJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE1_FAST_PROVISIONING, getSetting8021xKeyType(NM_SETTING_802_1X_PHASE1_FAST_PROVISIONING))
	return
}
func getSetting8021xPacFileJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PAC_FILE, getSetting8021xKeyType(NM_SETTING_802_1X_PAC_FILE))
	return
}
func getSetting8021xPhase1PeapverJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE1_PEAPVER, getSetting8021xKeyType(NM_SETTING_802_1X_PHASE1_PEAPVER))
	return
}
func getSetting8021xPhase2AuthJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_AUTH, getSetting8021xKeyType(NM_SETTING_802_1X_PHASE2_AUTH))
	return
}
func getSetting8021xPrivateKeyJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PRIVATE_KEY, getSetting8021xKeyType(NM_SETTING_802_1X_PRIVATE_KEY))
	return
}
func getSetting8021xPasswordFlagsJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PASSWORD_FLAGS, getSetting8021xKeyType(NM_SETTING_802_1X_PASSWORD_FLAGS))
	return
}
func getSetting8021xPasswordJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PASSWORD, getSetting8021xKeyType(NM_SETTING_802_1X_PASSWORD))
	return
}
func getSetting8021xPrivateKeyPasswordFlagsJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD_FLAGS, getSetting8021xKeyType(NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD_FLAGS))
	return
}
func getSetting8021xPrivateKeyPasswordJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD, getSetting8021xKeyType(NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD))
	return
}
func getSetting8021xCaPathJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_CA_PATH, getSetting8021xKeyType(NM_SETTING_802_1X_CA_PATH))
	return
}
func getSetting8021xSubjectMatchJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_SUBJECT_MATCH, getSetting8021xKeyType(NM_SETTING_802_1X_SUBJECT_MATCH))
	return
}
func getSetting8021xAltsubjectMatchesJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_ALTSUBJECT_MATCHES, getSetting8021xKeyType(NM_SETTING_802_1X_ALTSUBJECT_MATCHES))
	return
}
func getSetting8021xPhase1PeaplabelJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE1_PEAPLABEL, getSetting8021xKeyType(NM_SETTING_802_1X_PHASE1_PEAPLABEL))
	return
}
func getSetting8021xPhase2AutheapJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_AUTHEAP, getSetting8021xKeyType(NM_SETTING_802_1X_PHASE2_AUTHEAP))
	return
}
func getSetting8021xPhase2CaCertJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_CA_CERT, getSetting8021xKeyType(NM_SETTING_802_1X_PHASE2_CA_CERT))
	return
}
func getSetting8021xPhase2CaPathJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_CA_PATH, getSetting8021xKeyType(NM_SETTING_802_1X_PHASE2_CA_PATH))
	return
}
func getSetting8021xPhase2ClientCertJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_CLIENT_CERT, getSetting8021xKeyType(NM_SETTING_802_1X_PHASE2_CLIENT_CERT))
	return
}
func getSetting8021xPhase2SubjectMatchJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH, getSetting8021xKeyType(NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH))
	return
}
func getSetting8021xPhase2AltsubjectMatchesJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES, getSetting8021xKeyType(NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES))
	return
}
func getSetting8021xPasswordRawJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PASSWORD_RAW, getSetting8021xKeyType(NM_SETTING_802_1X_PASSWORD_RAW))
	return
}
func getSetting8021xPasswordRawFlagsJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PASSWORD_RAW_FLAGS, getSetting8021xKeyType(NM_SETTING_802_1X_PASSWORD_RAW_FLAGS))
	return
}
func getSetting8021xPhase2PrivateKeyJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_PRIVATE_KEY, getSetting8021xKeyType(NM_SETTING_802_1X_PHASE2_PRIVATE_KEY))
	return
}
func getSetting8021xPhase2PrivateKeyPasswordJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD, getSetting8021xKeyType(NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD))
	return
}
func getSetting8021xPhase2PrivateKeyPasswordFlagsJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD_FLAGS, getSetting8021xKeyType(NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD_FLAGS))
	return
}
func getSetting8021xPinJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PIN, getSetting8021xKeyType(NM_SETTING_802_1X_PIN))
	return
}
func getSetting8021xPinFlagsJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PIN_FLAGS, getSetting8021xKeyType(NM_SETTING_802_1X_PIN_FLAGS))
	return
}
func getSetting8021xSystemCaCertsJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_SYSTEM_CA_CERTS, getSetting8021xKeyType(NM_SETTING_802_1X_SYSTEM_CA_CERTS))
	return
}

// JSON Setter
func setSetting8021xEapJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_EAP, valueJSON, getSetting8021xKeyType(NM_SETTING_802_1X_EAP))
}
func setSetting8021xIdentityJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_IDENTITY, valueJSON, getSetting8021xKeyType(NM_SETTING_802_1X_IDENTITY))
}
func setSetting8021xAnonymousIdentityJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_ANONYMOUS_IDENTITY, valueJSON, getSetting8021xKeyType(NM_SETTING_802_1X_ANONYMOUS_IDENTITY))
}
func setSetting8021xCaCertJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_CA_CERT, valueJSON, getSetting8021xKeyType(NM_SETTING_802_1X_CA_CERT))
}
func setSetting8021xClientCertJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_CLIENT_CERT, valueJSON, getSetting8021xKeyType(NM_SETTING_802_1X_CLIENT_CERT))
}
func setSetting8021xPhase1FastProvisioningJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE1_FAST_PROVISIONING, valueJSON, getSetting8021xKeyType(NM_SETTING_802_1X_PHASE1_FAST_PROVISIONING))
}
func setSetting8021xPacFileJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PAC_FILE, valueJSON, getSetting8021xKeyType(NM_SETTING_802_1X_PAC_FILE))
}
func setSetting8021xPhase1PeapverJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE1_PEAPVER, valueJSON, getSetting8021xKeyType(NM_SETTING_802_1X_PHASE1_PEAPVER))
}
func setSetting8021xPhase2AuthJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_AUTH, valueJSON, getSetting8021xKeyType(NM_SETTING_802_1X_PHASE2_AUTH))
}
func setSetting8021xPrivateKeyJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PRIVATE_KEY, valueJSON, getSetting8021xKeyType(NM_SETTING_802_1X_PRIVATE_KEY))
}
func setSetting8021xPasswordFlagsJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PASSWORD_FLAGS, valueJSON, getSetting8021xKeyType(NM_SETTING_802_1X_PASSWORD_FLAGS))
}
func setSetting8021xPasswordJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PASSWORD, valueJSON, getSetting8021xKeyType(NM_SETTING_802_1X_PASSWORD))
}
func setSetting8021xPrivateKeyPasswordFlagsJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD_FLAGS, valueJSON, getSetting8021xKeyType(NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD_FLAGS))
}
func setSetting8021xPrivateKeyPasswordJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD, valueJSON, getSetting8021xKeyType(NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD))
}
func setSetting8021xCaPathJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_CA_PATH, valueJSON, getSetting8021xKeyType(NM_SETTING_802_1X_CA_PATH))
}
func setSetting8021xSubjectMatchJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_SUBJECT_MATCH, valueJSON, getSetting8021xKeyType(NM_SETTING_802_1X_SUBJECT_MATCH))
}
func setSetting8021xAltsubjectMatchesJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_ALTSUBJECT_MATCHES, valueJSON, getSetting8021xKeyType(NM_SETTING_802_1X_ALTSUBJECT_MATCHES))
}
func setSetting8021xPhase1PeaplabelJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE1_PEAPLABEL, valueJSON, getSetting8021xKeyType(NM_SETTING_802_1X_PHASE1_PEAPLABEL))
}
func setSetting8021xPhase2AutheapJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_AUTHEAP, valueJSON, getSetting8021xKeyType(NM_SETTING_802_1X_PHASE2_AUTHEAP))
}
func setSetting8021xPhase2CaCertJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_CA_CERT, valueJSON, getSetting8021xKeyType(NM_SETTING_802_1X_PHASE2_CA_CERT))
}
func setSetting8021xPhase2CaPathJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_CA_PATH, valueJSON, getSetting8021xKeyType(NM_SETTING_802_1X_PHASE2_CA_PATH))
}
func setSetting8021xPhase2ClientCertJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_CLIENT_CERT, valueJSON, getSetting8021xKeyType(NM_SETTING_802_1X_PHASE2_CLIENT_CERT))
}
func setSetting8021xPhase2SubjectMatchJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH, valueJSON, getSetting8021xKeyType(NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH))
}
func setSetting8021xPhase2AltsubjectMatchesJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES, valueJSON, getSetting8021xKeyType(NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES))
}
func setSetting8021xPasswordRawJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PASSWORD_RAW, valueJSON, getSetting8021xKeyType(NM_SETTING_802_1X_PASSWORD_RAW))
}
func setSetting8021xPasswordRawFlagsJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PASSWORD_RAW_FLAGS, valueJSON, getSetting8021xKeyType(NM_SETTING_802_1X_PASSWORD_RAW_FLAGS))
}
func setSetting8021xPhase2PrivateKeyJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_PRIVATE_KEY, valueJSON, getSetting8021xKeyType(NM_SETTING_802_1X_PHASE2_PRIVATE_KEY))
}
func setSetting8021xPhase2PrivateKeyPasswordJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD, valueJSON, getSetting8021xKeyType(NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD))
}
func setSetting8021xPhase2PrivateKeyPasswordFlagsJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD_FLAGS, valueJSON, getSetting8021xKeyType(NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD_FLAGS))
}
func setSetting8021xPinJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PIN, valueJSON, getSetting8021xKeyType(NM_SETTING_802_1X_PIN))
}
func setSetting8021xPinFlagsJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PIN_FLAGS, valueJSON, getSetting8021xKeyType(NM_SETTING_802_1X_PIN_FLAGS))
}
func setSetting8021xSystemCaCertsJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_SYSTEM_CA_CERTS, valueJSON, getSetting8021xKeyType(NM_SETTING_802_1X_SYSTEM_CA_CERTS))
}

// Logic JSON Setter
func logicSetSetting8021xEapJSON(data connectionData, valueJSON string) (err error) {
	err = setSetting8021xEapJSON(data, valueJSON)
	if err != nil {
		return
	}
	if isSetting8021xEapExists(data) {
		value := getSetting8021xEap(data)
		err = logicSetSetting8021xEap(data, value)
	}
	return
}

// Remover
func removeSetting8021xEap(data connectionData) {
	removeSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_EAP)
}
func removeSetting8021xIdentity(data connectionData) {
	removeSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_IDENTITY)
}
func removeSetting8021xAnonymousIdentity(data connectionData) {
	removeSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_ANONYMOUS_IDENTITY)
}
func removeSetting8021xCaCert(data connectionData) {
	removeSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_CA_CERT)
}
func removeSetting8021xClientCert(data connectionData) {
	removeSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_CLIENT_CERT)
}
func removeSetting8021xPhase1FastProvisioning(data connectionData) {
	removeSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE1_FAST_PROVISIONING)
}
func removeSetting8021xPacFile(data connectionData) {
	removeSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PAC_FILE)
}
func removeSetting8021xPhase1Peapver(data connectionData) {
	removeSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE1_PEAPVER)
}
func removeSetting8021xPhase2Auth(data connectionData) {
	removeSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_AUTH)
}
func removeSetting8021xPrivateKey(data connectionData) {
	removeSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PRIVATE_KEY)
}
func removeSetting8021xPasswordFlags(data connectionData) {
	removeSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PASSWORD_FLAGS)
}
func removeSetting8021xPassword(data connectionData) {
	removeSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PASSWORD)
}
func removeSetting8021xPrivateKeyPasswordFlags(data connectionData) {
	removeSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD_FLAGS)
}
func removeSetting8021xPrivateKeyPassword(data connectionData) {
	removeSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD)
}
func removeSetting8021xCaPath(data connectionData) {
	removeSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_CA_PATH)
}
func removeSetting8021xSubjectMatch(data connectionData) {
	removeSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_SUBJECT_MATCH)
}
func removeSetting8021xAltsubjectMatches(data connectionData) {
	removeSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_ALTSUBJECT_MATCHES)
}
func removeSetting8021xPhase1Peaplabel(data connectionData) {
	removeSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE1_PEAPLABEL)
}
func removeSetting8021xPhase2Autheap(data connectionData) {
	removeSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_AUTHEAP)
}
func removeSetting8021xPhase2CaCert(data connectionData) {
	removeSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_CA_CERT)
}
func removeSetting8021xPhase2CaPath(data connectionData) {
	removeSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_CA_PATH)
}
func removeSetting8021xPhase2ClientCert(data connectionData) {
	removeSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_CLIENT_CERT)
}
func removeSetting8021xPhase2SubjectMatch(data connectionData) {
	removeSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_SUBJECT_MATCH)
}
func removeSetting8021xPhase2AltsubjectMatches(data connectionData) {
	removeSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_ALTSUBJECT_MATCHES)
}
func removeSetting8021xPasswordRaw(data connectionData) {
	removeSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PASSWORD_RAW)
}
func removeSetting8021xPasswordRawFlags(data connectionData) {
	removeSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PASSWORD_RAW_FLAGS)
}
func removeSetting8021xPhase2PrivateKey(data connectionData) {
	removeSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_PRIVATE_KEY)
}
func removeSetting8021xPhase2PrivateKeyPassword(data connectionData) {
	removeSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD)
}
func removeSetting8021xPhase2PrivateKeyPasswordFlags(data connectionData) {
	removeSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD_FLAGS)
}
func removeSetting8021xPin(data connectionData) {
	removeSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PIN)
}
func removeSetting8021xPinFlags(data connectionData) {
	removeSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_PIN_FLAGS)
}
func removeSetting8021xSystemCaCerts(data connectionData) {
	removeSettingKey(data, NM_SETTING_802_1X_SETTING_NAME, NM_SETTING_802_1X_SYSTEM_CA_CERTS)
}

// Origin file name ../nm_setting_cdma_gen.go
// Get key type
func getSettingCdmaKeyType(key string) (t ktype) {
	switch key {
	default:
		t = ktypeUnknown
	case NM_SETTING_CDMA_NUMBER:
		t = ktypeString
	case NM_SETTING_CDMA_USERNAME:
		t = ktypeString
	case NM_SETTING_CDMA_PASSWORD:
		t = ktypeString
	case NM_SETTING_CDMA_PASSWORD_FLAGS:
		t = ktypeUint32
	}
	return
}

// Check is key in current setting section
func isKeyInSettingCdma(key string) bool {
	switch key {
	case NM_SETTING_CDMA_NUMBER:
		return true
	case NM_SETTING_CDMA_USERNAME:
		return true
	case NM_SETTING_CDMA_PASSWORD:
		return true
	case NM_SETTING_CDMA_PASSWORD_FLAGS:
		return true
	}
	return false
}

// Get key's default value
func getSettingCdmaDefaultValue(key string) (value interface{}) {
	switch key {
	default:
		logger.Error("invalid key:", key)
	case NM_SETTING_CDMA_NUMBER:
		value = "#777"
	case NM_SETTING_CDMA_USERNAME:
		value = ""
	case NM_SETTING_CDMA_PASSWORD:
		value = ""
	case NM_SETTING_CDMA_PASSWORD_FLAGS:
		value = nil
	}
	return
}

// Get JSON value generally
func generalGetSettingCdmaKeyJSON(data connectionData, key string) (value string) {
	switch key {
	default:
		logger.Error("generalGetSettingCdmaKeyJSON: invalide key", key)
	case NM_SETTING_CDMA_NUMBER:
		value = getSettingCdmaNumberJSON(data)
	case NM_SETTING_CDMA_USERNAME:
		value = getSettingCdmaUsernameJSON(data)
	case NM_SETTING_CDMA_PASSWORD:
		value = getSettingCdmaPasswordJSON(data)
	case NM_SETTING_CDMA_PASSWORD_FLAGS:
		value = getSettingCdmaPasswordFlagsJSON(data)
	}
	return
}

// Set JSON value generally
func generalSetSettingCdmaKeyJSON(data connectionData, key, valueJSON string) (err error) {
	switch key {
	default:
		logger.Error("generalSetSettingCdmaKeyJSON: invalide key", key)
	case NM_SETTING_CDMA_NUMBER:
		err = setSettingCdmaNumberJSON(data, valueJSON)
	case NM_SETTING_CDMA_USERNAME:
		err = setSettingCdmaUsernameJSON(data, valueJSON)
	case NM_SETTING_CDMA_PASSWORD:
		err = setSettingCdmaPasswordJSON(data, valueJSON)
	case NM_SETTING_CDMA_PASSWORD_FLAGS:
		err = setSettingCdmaPasswordFlagsJSON(data, valueJSON)
	}
	return
}

// Check if key exists
func isSettingCdmaNumberExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_CDMA_SETTING_NAME, NM_SETTING_CDMA_NUMBER)
}
func isSettingCdmaUsernameExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_CDMA_SETTING_NAME, NM_SETTING_CDMA_USERNAME)
}
func isSettingCdmaPasswordExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_CDMA_SETTING_NAME, NM_SETTING_CDMA_PASSWORD)
}
func isSettingCdmaPasswordFlagsExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_CDMA_SETTING_NAME, NM_SETTING_CDMA_PASSWORD_FLAGS)
}

// Ensure section and key exists and not empty
func ensureSectionSettingCdmaExists(data connectionData, errs sectionErrors, relatedKey string) {
	if !isSettingSectionExists(data, NM_SETTING_CDMA_SETTING_NAME) {
		rememberError(errs, relatedKey, NM_SETTING_CDMA_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_MISSING_SECTION, NM_SETTING_CDMA_SETTING_NAME))
	}
	sectionData, _ := data[NM_SETTING_CDMA_SETTING_NAME]
	if len(sectionData) == 0 {
		rememberError(errs, relatedKey, NM_SETTING_CDMA_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_EMPTY_SECTION, NM_SETTING_CDMA_SETTING_NAME))
	}
}
func ensureSettingCdmaNumberNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingCdmaNumberExists(data) {
		rememberError(errs, NM_SETTING_CDMA_SETTING_NAME, NM_SETTING_CDMA_NUMBER, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingCdmaNumber(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_CDMA_SETTING_NAME, NM_SETTING_CDMA_NUMBER, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingCdmaUsernameNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingCdmaUsernameExists(data) {
		rememberError(errs, NM_SETTING_CDMA_SETTING_NAME, NM_SETTING_CDMA_USERNAME, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingCdmaUsername(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_CDMA_SETTING_NAME, NM_SETTING_CDMA_USERNAME, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingCdmaPasswordNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingCdmaPasswordExists(data) {
		rememberError(errs, NM_SETTING_CDMA_SETTING_NAME, NM_SETTING_CDMA_PASSWORD, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingCdmaPassword(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_CDMA_SETTING_NAME, NM_SETTING_CDMA_PASSWORD, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingCdmaPasswordFlagsNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingCdmaPasswordFlagsExists(data) {
		rememberError(errs, NM_SETTING_CDMA_SETTING_NAME, NM_SETTING_CDMA_PASSWORD_FLAGS, NM_KEY_ERROR_MISSING_VALUE)
	}
}

// Getter
func getSettingCdmaNumber(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_CDMA_SETTING_NAME, NM_SETTING_CDMA_NUMBER)
	value = interfaceToString(ivalue)
	return
}
func getSettingCdmaUsername(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_CDMA_SETTING_NAME, NM_SETTING_CDMA_USERNAME)
	value = interfaceToString(ivalue)
	return
}
func getSettingCdmaPassword(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_CDMA_SETTING_NAME, NM_SETTING_CDMA_PASSWORD)
	value = interfaceToString(ivalue)
	return
}
func getSettingCdmaPasswordFlags(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_CDMA_SETTING_NAME, NM_SETTING_CDMA_PASSWORD_FLAGS)
	value = interfaceToUint32(ivalue)
	return
}

// Setter
func setSettingCdmaNumber(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_CDMA_SETTING_NAME, NM_SETTING_CDMA_NUMBER, value)
}
func setSettingCdmaUsername(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_CDMA_SETTING_NAME, NM_SETTING_CDMA_USERNAME, value)
}
func setSettingCdmaPassword(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_CDMA_SETTING_NAME, NM_SETTING_CDMA_PASSWORD, value)
}
func setSettingCdmaPasswordFlags(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_CDMA_SETTING_NAME, NM_SETTING_CDMA_PASSWORD_FLAGS, value)
}

// JSON Getter
func getSettingCdmaNumberJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_CDMA_SETTING_NAME, NM_SETTING_CDMA_NUMBER, getSettingCdmaKeyType(NM_SETTING_CDMA_NUMBER))
	return
}
func getSettingCdmaUsernameJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_CDMA_SETTING_NAME, NM_SETTING_CDMA_USERNAME, getSettingCdmaKeyType(NM_SETTING_CDMA_USERNAME))
	return
}
func getSettingCdmaPasswordJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_CDMA_SETTING_NAME, NM_SETTING_CDMA_PASSWORD, getSettingCdmaKeyType(NM_SETTING_CDMA_PASSWORD))
	return
}
func getSettingCdmaPasswordFlagsJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_CDMA_SETTING_NAME, NM_SETTING_CDMA_PASSWORD_FLAGS, getSettingCdmaKeyType(NM_SETTING_CDMA_PASSWORD_FLAGS))
	return
}

// JSON Setter
func setSettingCdmaNumberJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_CDMA_SETTING_NAME, NM_SETTING_CDMA_NUMBER, valueJSON, getSettingCdmaKeyType(NM_SETTING_CDMA_NUMBER))
}
func setSettingCdmaUsernameJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_CDMA_SETTING_NAME, NM_SETTING_CDMA_USERNAME, valueJSON, getSettingCdmaKeyType(NM_SETTING_CDMA_USERNAME))
}
func setSettingCdmaPasswordJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_CDMA_SETTING_NAME, NM_SETTING_CDMA_PASSWORD, valueJSON, getSettingCdmaKeyType(NM_SETTING_CDMA_PASSWORD))
}
func setSettingCdmaPasswordFlagsJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_CDMA_SETTING_NAME, NM_SETTING_CDMA_PASSWORD_FLAGS, valueJSON, getSettingCdmaKeyType(NM_SETTING_CDMA_PASSWORD_FLAGS))
}

// Logic JSON Setter

// Remover
func removeSettingCdmaNumber(data connectionData) {
	removeSettingKey(data, NM_SETTING_CDMA_SETTING_NAME, NM_SETTING_CDMA_NUMBER)
}
func removeSettingCdmaUsername(data connectionData) {
	removeSettingKey(data, NM_SETTING_CDMA_SETTING_NAME, NM_SETTING_CDMA_USERNAME)
}
func removeSettingCdmaPassword(data connectionData) {
	removeSettingKey(data, NM_SETTING_CDMA_SETTING_NAME, NM_SETTING_CDMA_PASSWORD)
}
func removeSettingCdmaPasswordFlags(data connectionData) {
	removeSettingKey(data, NM_SETTING_CDMA_SETTING_NAME, NM_SETTING_CDMA_PASSWORD_FLAGS)
}

// Origin file name ../nm_setting_connection_gen.go
// Get key type
func getSettingConnectionKeyType(key string) (t ktype) {
	switch key {
	default:
		t = ktypeUnknown
	case NM_SETTING_CONNECTION_ID:
		t = ktypeString
	case NM_SETTING_CONNECTION_UUID:
		t = ktypeString
	case NM_SETTING_CONNECTION_TYPE:
		t = ktypeString
	case NM_SETTING_CONNECTION_AUTOCONNECT:
		t = ktypeBoolean
	case NM_SETTING_CONNECTION_PERMISSIONS:
		t = ktypeArrayString
	case NM_SETTING_CONNECTION_TIMESTAMP:
		t = ktypeUint64
	case NM_SETTING_CONNECTION_READ_ONLY:
		t = ktypeBoolean
	case NM_SETTING_CONNECTION_ZONE:
		t = ktypeString
	case NM_SETTING_CONNECTION_MASTER:
		t = ktypeString
	case NM_SETTING_CONNECTION_SLAVE_TYPE:
		t = ktypeString
	case NM_SETTING_CONNECTION_SECONDARIES:
		t = ktypeArrayString
	}
	return
}

// Check is key in current setting section
func isKeyInSettingConnection(key string) bool {
	switch key {
	case NM_SETTING_CONNECTION_ID:
		return true
	case NM_SETTING_CONNECTION_UUID:
		return true
	case NM_SETTING_CONNECTION_TYPE:
		return true
	case NM_SETTING_CONNECTION_AUTOCONNECT:
		return true
	case NM_SETTING_CONNECTION_PERMISSIONS:
		return true
	case NM_SETTING_CONNECTION_TIMESTAMP:
		return true
	case NM_SETTING_CONNECTION_READ_ONLY:
		return true
	case NM_SETTING_CONNECTION_ZONE:
		return true
	case NM_SETTING_CONNECTION_MASTER:
		return true
	case NM_SETTING_CONNECTION_SLAVE_TYPE:
		return true
	case NM_SETTING_CONNECTION_SECONDARIES:
		return true
	}
	return false
}

// Get key's default value
func getSettingConnectionDefaultValue(key string) (value interface{}) {
	switch key {
	default:
		logger.Error("invalid key:", key)
	case NM_SETTING_CONNECTION_ID:
		value = ""
	case NM_SETTING_CONNECTION_UUID:
		value = ""
	case NM_SETTING_CONNECTION_TYPE:
		value = ""
	case NM_SETTING_CONNECTION_AUTOCONNECT:
		value = true
	case NM_SETTING_CONNECTION_PERMISSIONS:
		value = make([]string, 0)
	case NM_SETTING_CONNECTION_TIMESTAMP:
		value = uint64(0)
	case NM_SETTING_CONNECTION_READ_ONLY:
		value = false
	case NM_SETTING_CONNECTION_ZONE:
		value = ""
	case NM_SETTING_CONNECTION_MASTER:
		value = ""
	case NM_SETTING_CONNECTION_SLAVE_TYPE:
		value = ""
	case NM_SETTING_CONNECTION_SECONDARIES:
		value = make([]string, 0)
	}
	return
}

// Get JSON value generally
func generalGetSettingConnectionKeyJSON(data connectionData, key string) (value string) {
	switch key {
	default:
		logger.Error("generalGetSettingConnectionKeyJSON: invalide key", key)
	case NM_SETTING_CONNECTION_ID:
		value = getSettingConnectionIdJSON(data)
	case NM_SETTING_CONNECTION_UUID:
		value = getSettingConnectionUuidJSON(data)
	case NM_SETTING_CONNECTION_TYPE:
		value = getSettingConnectionTypeJSON(data)
	case NM_SETTING_CONNECTION_AUTOCONNECT:
		value = getSettingConnectionAutoconnectJSON(data)
	case NM_SETTING_CONNECTION_PERMISSIONS:
		value = getSettingConnectionPermissionsJSON(data)
	case NM_SETTING_CONNECTION_TIMESTAMP:
		value = getSettingConnectionTimestampJSON(data)
	case NM_SETTING_CONNECTION_READ_ONLY:
		value = getSettingConnectionReadOnlyJSON(data)
	case NM_SETTING_CONNECTION_ZONE:
		value = getSettingConnectionZoneJSON(data)
	case NM_SETTING_CONNECTION_MASTER:
		value = getSettingConnectionMasterJSON(data)
	case NM_SETTING_CONNECTION_SLAVE_TYPE:
		value = getSettingConnectionSlaveTypeJSON(data)
	case NM_SETTING_CONNECTION_SECONDARIES:
		value = getSettingConnectionSecondariesJSON(data)
	}
	return
}

// Set JSON value generally
func generalSetSettingConnectionKeyJSON(data connectionData, key, valueJSON string) (err error) {
	switch key {
	default:
		logger.Error("generalSetSettingConnectionKeyJSON: invalide key", key)
	case NM_SETTING_CONNECTION_ID:
		err = setSettingConnectionIdJSON(data, valueJSON)
	case NM_SETTING_CONNECTION_UUID:
		err = setSettingConnectionUuidJSON(data, valueJSON)
	case NM_SETTING_CONNECTION_TYPE:
		err = setSettingConnectionTypeJSON(data, valueJSON)
	case NM_SETTING_CONNECTION_AUTOCONNECT:
		err = setSettingConnectionAutoconnectJSON(data, valueJSON)
	case NM_SETTING_CONNECTION_PERMISSIONS:
		err = setSettingConnectionPermissionsJSON(data, valueJSON)
	case NM_SETTING_CONNECTION_TIMESTAMP:
		err = setSettingConnectionTimestampJSON(data, valueJSON)
	case NM_SETTING_CONNECTION_READ_ONLY:
		err = setSettingConnectionReadOnlyJSON(data, valueJSON)
	case NM_SETTING_CONNECTION_ZONE:
		err = setSettingConnectionZoneJSON(data, valueJSON)
	case NM_SETTING_CONNECTION_MASTER:
		err = setSettingConnectionMasterJSON(data, valueJSON)
	case NM_SETTING_CONNECTION_SLAVE_TYPE:
		err = setSettingConnectionSlaveTypeJSON(data, valueJSON)
	case NM_SETTING_CONNECTION_SECONDARIES:
		err = setSettingConnectionSecondariesJSON(data, valueJSON)
	}
	return
}

// Check if key exists
func isSettingConnectionIdExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_ID)
}
func isSettingConnectionUuidExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_UUID)
}
func isSettingConnectionTypeExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_TYPE)
}
func isSettingConnectionAutoconnectExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_AUTOCONNECT)
}
func isSettingConnectionPermissionsExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_PERMISSIONS)
}
func isSettingConnectionTimestampExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_TIMESTAMP)
}
func isSettingConnectionReadOnlyExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_READ_ONLY)
}
func isSettingConnectionZoneExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_ZONE)
}
func isSettingConnectionMasterExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_MASTER)
}
func isSettingConnectionSlaveTypeExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_SLAVE_TYPE)
}
func isSettingConnectionSecondariesExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_SECONDARIES)
}

// Ensure section and key exists and not empty
func ensureSectionSettingConnectionExists(data connectionData, errs sectionErrors, relatedKey string) {
	if !isSettingSectionExists(data, NM_SETTING_CONNECTION_SETTING_NAME) {
		rememberError(errs, relatedKey, NM_SETTING_CONNECTION_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_MISSING_SECTION, NM_SETTING_CONNECTION_SETTING_NAME))
	}
	sectionData, _ := data[NM_SETTING_CONNECTION_SETTING_NAME]
	if len(sectionData) == 0 {
		rememberError(errs, relatedKey, NM_SETTING_CONNECTION_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_EMPTY_SECTION, NM_SETTING_CONNECTION_SETTING_NAME))
	}
}
func ensureSettingConnectionIdNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingConnectionIdExists(data) {
		rememberError(errs, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_ID, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingConnectionId(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_ID, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingConnectionUuidNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingConnectionUuidExists(data) {
		rememberError(errs, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_UUID, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingConnectionUuid(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_UUID, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingConnectionTypeNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingConnectionTypeExists(data) {
		rememberError(errs, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_TYPE, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingConnectionType(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_TYPE, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingConnectionAutoconnectNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingConnectionAutoconnectExists(data) {
		rememberError(errs, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_AUTOCONNECT, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingConnectionPermissionsNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingConnectionPermissionsExists(data) {
		rememberError(errs, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_PERMISSIONS, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingConnectionPermissions(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_PERMISSIONS, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingConnectionTimestampNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingConnectionTimestampExists(data) {
		rememberError(errs, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_TIMESTAMP, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingConnectionReadOnlyNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingConnectionReadOnlyExists(data) {
		rememberError(errs, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_READ_ONLY, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingConnectionZoneNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingConnectionZoneExists(data) {
		rememberError(errs, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_ZONE, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingConnectionZone(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_ZONE, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingConnectionMasterNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingConnectionMasterExists(data) {
		rememberError(errs, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_MASTER, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingConnectionMaster(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_MASTER, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingConnectionSlaveTypeNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingConnectionSlaveTypeExists(data) {
		rememberError(errs, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_SLAVE_TYPE, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingConnectionSlaveType(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_SLAVE_TYPE, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingConnectionSecondariesNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingConnectionSecondariesExists(data) {
		rememberError(errs, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_SECONDARIES, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingConnectionSecondaries(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_SECONDARIES, NM_KEY_ERROR_EMPTY_VALUE)
	}
}

// Getter
func getSettingConnectionId(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_ID)
	value = interfaceToString(ivalue)
	return
}
func getSettingConnectionUuid(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_UUID)
	value = interfaceToString(ivalue)
	return
}
func getSettingConnectionType(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_TYPE)
	value = interfaceToString(ivalue)
	return
}
func getSettingConnectionAutoconnect(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_AUTOCONNECT)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingConnectionPermissions(data connectionData) (value []string) {
	ivalue := getSettingKey(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_PERMISSIONS)
	value = interfaceToArrayString(ivalue)
	return
}
func getSettingConnectionTimestamp(data connectionData) (value uint64) {
	ivalue := getSettingKey(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_TIMESTAMP)
	value = interfaceToUint64(ivalue)
	return
}
func getSettingConnectionReadOnly(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_READ_ONLY)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingConnectionZone(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_ZONE)
	value = interfaceToString(ivalue)
	return
}
func getSettingConnectionMaster(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_MASTER)
	value = interfaceToString(ivalue)
	return
}
func getSettingConnectionSlaveType(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_SLAVE_TYPE)
	value = interfaceToString(ivalue)
	return
}
func getSettingConnectionSecondaries(data connectionData) (value []string) {
	ivalue := getSettingKey(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_SECONDARIES)
	value = interfaceToArrayString(ivalue)
	return
}

// Setter
func setSettingConnectionId(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_ID, value)
}
func setSettingConnectionUuid(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_UUID, value)
}
func setSettingConnectionType(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_TYPE, value)
}
func setSettingConnectionAutoconnect(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_AUTOCONNECT, value)
}
func setSettingConnectionPermissions(data connectionData, value []string) {
	setSettingKey(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_PERMISSIONS, value)
}
func setSettingConnectionTimestamp(data connectionData, value uint64) {
	setSettingKey(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_TIMESTAMP, value)
}
func setSettingConnectionReadOnly(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_READ_ONLY, value)
}
func setSettingConnectionZone(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_ZONE, value)
}
func setSettingConnectionMaster(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_MASTER, value)
}
func setSettingConnectionSlaveType(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_SLAVE_TYPE, value)
}
func setSettingConnectionSecondaries(data connectionData, value []string) {
	setSettingKey(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_SECONDARIES, value)
}

// JSON Getter
func getSettingConnectionIdJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_ID, getSettingConnectionKeyType(NM_SETTING_CONNECTION_ID))
	return
}
func getSettingConnectionUuidJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_UUID, getSettingConnectionKeyType(NM_SETTING_CONNECTION_UUID))
	return
}
func getSettingConnectionTypeJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_TYPE, getSettingConnectionKeyType(NM_SETTING_CONNECTION_TYPE))
	return
}
func getSettingConnectionAutoconnectJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_AUTOCONNECT, getSettingConnectionKeyType(NM_SETTING_CONNECTION_AUTOCONNECT))
	return
}
func getSettingConnectionPermissionsJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_PERMISSIONS, getSettingConnectionKeyType(NM_SETTING_CONNECTION_PERMISSIONS))
	return
}
func getSettingConnectionTimestampJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_TIMESTAMP, getSettingConnectionKeyType(NM_SETTING_CONNECTION_TIMESTAMP))
	return
}
func getSettingConnectionReadOnlyJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_READ_ONLY, getSettingConnectionKeyType(NM_SETTING_CONNECTION_READ_ONLY))
	return
}
func getSettingConnectionZoneJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_ZONE, getSettingConnectionKeyType(NM_SETTING_CONNECTION_ZONE))
	return
}
func getSettingConnectionMasterJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_MASTER, getSettingConnectionKeyType(NM_SETTING_CONNECTION_MASTER))
	return
}
func getSettingConnectionSlaveTypeJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_SLAVE_TYPE, getSettingConnectionKeyType(NM_SETTING_CONNECTION_SLAVE_TYPE))
	return
}
func getSettingConnectionSecondariesJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_SECONDARIES, getSettingConnectionKeyType(NM_SETTING_CONNECTION_SECONDARIES))
	return
}

// JSON Setter
func setSettingConnectionIdJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_ID, valueJSON, getSettingConnectionKeyType(NM_SETTING_CONNECTION_ID))
}
func setSettingConnectionUuidJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_UUID, valueJSON, getSettingConnectionKeyType(NM_SETTING_CONNECTION_UUID))
}
func setSettingConnectionTypeJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_TYPE, valueJSON, getSettingConnectionKeyType(NM_SETTING_CONNECTION_TYPE))
}
func setSettingConnectionAutoconnectJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_AUTOCONNECT, valueJSON, getSettingConnectionKeyType(NM_SETTING_CONNECTION_AUTOCONNECT))
}
func setSettingConnectionPermissionsJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_PERMISSIONS, valueJSON, getSettingConnectionKeyType(NM_SETTING_CONNECTION_PERMISSIONS))
}
func setSettingConnectionTimestampJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_TIMESTAMP, valueJSON, getSettingConnectionKeyType(NM_SETTING_CONNECTION_TIMESTAMP))
}
func setSettingConnectionReadOnlyJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_READ_ONLY, valueJSON, getSettingConnectionKeyType(NM_SETTING_CONNECTION_READ_ONLY))
}
func setSettingConnectionZoneJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_ZONE, valueJSON, getSettingConnectionKeyType(NM_SETTING_CONNECTION_ZONE))
}
func setSettingConnectionMasterJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_MASTER, valueJSON, getSettingConnectionKeyType(NM_SETTING_CONNECTION_MASTER))
}
func setSettingConnectionSlaveTypeJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_SLAVE_TYPE, valueJSON, getSettingConnectionKeyType(NM_SETTING_CONNECTION_SLAVE_TYPE))
}
func setSettingConnectionSecondariesJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_SECONDARIES, valueJSON, getSettingConnectionKeyType(NM_SETTING_CONNECTION_SECONDARIES))
}

// Logic JSON Setter

// Remover
func removeSettingConnectionId(data connectionData) {
	removeSettingKey(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_ID)
}
func removeSettingConnectionUuid(data connectionData) {
	removeSettingKey(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_UUID)
}
func removeSettingConnectionType(data connectionData) {
	removeSettingKey(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_TYPE)
}
func removeSettingConnectionAutoconnect(data connectionData) {
	removeSettingKey(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_AUTOCONNECT)
}
func removeSettingConnectionPermissions(data connectionData) {
	removeSettingKey(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_PERMISSIONS)
}
func removeSettingConnectionTimestamp(data connectionData) {
	removeSettingKey(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_TIMESTAMP)
}
func removeSettingConnectionReadOnly(data connectionData) {
	removeSettingKey(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_READ_ONLY)
}
func removeSettingConnectionZone(data connectionData) {
	removeSettingKey(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_ZONE)
}
func removeSettingConnectionMaster(data connectionData) {
	removeSettingKey(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_MASTER)
}
func removeSettingConnectionSlaveType(data connectionData) {
	removeSettingKey(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_SLAVE_TYPE)
}
func removeSettingConnectionSecondaries(data connectionData) {
	removeSettingKey(data, NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_SECONDARIES)
}

// Origin file name ../nm_setting_gsm_gen.go
// Get key type
func getSettingGsmKeyType(key string) (t ktype) {
	switch key {
	default:
		t = ktypeUnknown
	case NM_SETTING_GSM_APN:
		t = ktypeString
	case NM_SETTING_GSM_NUMBER:
		t = ktypeString
	case NM_SETTING_GSM_USERNAME:
		t = ktypeString
	case NM_SETTING_GSM_PASSWORD_FLAGS:
		t = ktypeUint32
	case NM_SETTING_GSM_PASSWORD:
		t = ktypeString
	case NM_SETTING_GSM_NETWORK_ID:
		t = ktypeString
	case NM_SETTING_GSM_HOME_ONLY:
		t = ktypeBoolean
	case NM_SETTING_GSM_PIN:
		t = ktypeString
	case NM_SETTING_GSM_PIN_FLAGS:
		t = ktypeUint32
	}
	return
}

// Check is key in current setting section
func isKeyInSettingGsm(key string) bool {
	switch key {
	case NM_SETTING_GSM_APN:
		return true
	case NM_SETTING_GSM_NUMBER:
		return true
	case NM_SETTING_GSM_USERNAME:
		return true
	case NM_SETTING_GSM_PASSWORD_FLAGS:
		return true
	case NM_SETTING_GSM_PASSWORD:
		return true
	case NM_SETTING_GSM_NETWORK_ID:
		return true
	case NM_SETTING_GSM_HOME_ONLY:
		return true
	case NM_SETTING_GSM_PIN:
		return true
	case NM_SETTING_GSM_PIN_FLAGS:
		return true
	}
	return false
}

// Get key's default value
func getSettingGsmDefaultValue(key string) (value interface{}) {
	switch key {
	default:
		logger.Error("invalid key:", key)
	case NM_SETTING_GSM_APN:
		value = ""
	case NM_SETTING_GSM_NUMBER:
		value = ""
	case NM_SETTING_GSM_USERNAME:
		value = ""
	case NM_SETTING_GSM_PASSWORD_FLAGS:
		value = uint32(0)
	case NM_SETTING_GSM_PASSWORD:
		value = ""
	case NM_SETTING_GSM_NETWORK_ID:
		value = ""
	case NM_SETTING_GSM_HOME_ONLY:
		value = false
	case NM_SETTING_GSM_PIN:
		value = ""
	case NM_SETTING_GSM_PIN_FLAGS:
		value = uint32(0)
	}
	return
}

// Get JSON value generally
func generalGetSettingGsmKeyJSON(data connectionData, key string) (value string) {
	switch key {
	default:
		logger.Error("generalGetSettingGsmKeyJSON: invalide key", key)
	case NM_SETTING_GSM_APN:
		value = getSettingGsmApnJSON(data)
	case NM_SETTING_GSM_NUMBER:
		value = getSettingGsmNumberJSON(data)
	case NM_SETTING_GSM_USERNAME:
		value = getSettingGsmUsernameJSON(data)
	case NM_SETTING_GSM_PASSWORD_FLAGS:
		value = getSettingGsmPasswordFlagsJSON(data)
	case NM_SETTING_GSM_PASSWORD:
		value = getSettingGsmPasswordJSON(data)
	case NM_SETTING_GSM_NETWORK_ID:
		value = getSettingGsmNetworkIdJSON(data)
	case NM_SETTING_GSM_HOME_ONLY:
		value = getSettingGsmHomeOnlyJSON(data)
	case NM_SETTING_GSM_PIN:
		value = getSettingGsmPinJSON(data)
	case NM_SETTING_GSM_PIN_FLAGS:
		value = getSettingGsmPinFlagsJSON(data)
	}
	return
}

// Set JSON value generally
func generalSetSettingGsmKeyJSON(data connectionData, key, valueJSON string) (err error) {
	switch key {
	default:
		logger.Error("generalSetSettingGsmKeyJSON: invalide key", key)
	case NM_SETTING_GSM_APN:
		err = setSettingGsmApnJSON(data, valueJSON)
	case NM_SETTING_GSM_NUMBER:
		err = setSettingGsmNumberJSON(data, valueJSON)
	case NM_SETTING_GSM_USERNAME:
		err = setSettingGsmUsernameJSON(data, valueJSON)
	case NM_SETTING_GSM_PASSWORD_FLAGS:
		err = setSettingGsmPasswordFlagsJSON(data, valueJSON)
	case NM_SETTING_GSM_PASSWORD:
		err = setSettingGsmPasswordJSON(data, valueJSON)
	case NM_SETTING_GSM_NETWORK_ID:
		err = setSettingGsmNetworkIdJSON(data, valueJSON)
	case NM_SETTING_GSM_HOME_ONLY:
		err = setSettingGsmHomeOnlyJSON(data, valueJSON)
	case NM_SETTING_GSM_PIN:
		err = setSettingGsmPinJSON(data, valueJSON)
	case NM_SETTING_GSM_PIN_FLAGS:
		err = setSettingGsmPinFlagsJSON(data, valueJSON)
	}
	return
}

// Check if key exists
func isSettingGsmApnExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_APN)
}
func isSettingGsmNumberExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_NUMBER)
}
func isSettingGsmUsernameExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_USERNAME)
}
func isSettingGsmPasswordFlagsExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_PASSWORD_FLAGS)
}
func isSettingGsmPasswordExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_PASSWORD)
}
func isSettingGsmNetworkIdExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_NETWORK_ID)
}
func isSettingGsmHomeOnlyExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_HOME_ONLY)
}
func isSettingGsmPinExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_PIN)
}
func isSettingGsmPinFlagsExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_PIN_FLAGS)
}

// Ensure section and key exists and not empty
func ensureSectionSettingGsmExists(data connectionData, errs sectionErrors, relatedKey string) {
	if !isSettingSectionExists(data, NM_SETTING_GSM_SETTING_NAME) {
		rememberError(errs, relatedKey, NM_SETTING_GSM_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_MISSING_SECTION, NM_SETTING_GSM_SETTING_NAME))
	}
	sectionData, _ := data[NM_SETTING_GSM_SETTING_NAME]
	if len(sectionData) == 0 {
		rememberError(errs, relatedKey, NM_SETTING_GSM_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_EMPTY_SECTION, NM_SETTING_GSM_SETTING_NAME))
	}
}
func ensureSettingGsmApnNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingGsmApnExists(data) {
		rememberError(errs, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_APN, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingGsmApn(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_APN, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingGsmNumberNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingGsmNumberExists(data) {
		rememberError(errs, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_NUMBER, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingGsmNumber(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_NUMBER, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingGsmUsernameNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingGsmUsernameExists(data) {
		rememberError(errs, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_USERNAME, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingGsmUsername(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_USERNAME, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingGsmPasswordFlagsNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingGsmPasswordFlagsExists(data) {
		rememberError(errs, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_PASSWORD_FLAGS, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingGsmPasswordNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingGsmPasswordExists(data) {
		rememberError(errs, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_PASSWORD, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingGsmPassword(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_PASSWORD, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingGsmNetworkIdNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingGsmNetworkIdExists(data) {
		rememberError(errs, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_NETWORK_ID, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingGsmNetworkId(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_NETWORK_ID, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingGsmHomeOnlyNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingGsmHomeOnlyExists(data) {
		rememberError(errs, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_HOME_ONLY, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingGsmPinNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingGsmPinExists(data) {
		rememberError(errs, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_PIN, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingGsmPin(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_PIN, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingGsmPinFlagsNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingGsmPinFlagsExists(data) {
		rememberError(errs, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_PIN_FLAGS, NM_KEY_ERROR_MISSING_VALUE)
	}
}

// Getter
func getSettingGsmApn(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_APN)
	value = interfaceToString(ivalue)
	return
}
func getSettingGsmNumber(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_NUMBER)
	value = interfaceToString(ivalue)
	return
}
func getSettingGsmUsername(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_USERNAME)
	value = interfaceToString(ivalue)
	return
}
func getSettingGsmPasswordFlags(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_PASSWORD_FLAGS)
	value = interfaceToUint32(ivalue)
	return
}
func getSettingGsmPassword(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_PASSWORD)
	value = interfaceToString(ivalue)
	return
}
func getSettingGsmNetworkId(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_NETWORK_ID)
	value = interfaceToString(ivalue)
	return
}
func getSettingGsmHomeOnly(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_HOME_ONLY)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingGsmPin(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_PIN)
	value = interfaceToString(ivalue)
	return
}
func getSettingGsmPinFlags(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_PIN_FLAGS)
	value = interfaceToUint32(ivalue)
	return
}

// Setter
func setSettingGsmApn(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_APN, value)
}
func setSettingGsmNumber(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_NUMBER, value)
}
func setSettingGsmUsername(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_USERNAME, value)
}
func setSettingGsmPasswordFlags(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_PASSWORD_FLAGS, value)
}
func setSettingGsmPassword(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_PASSWORD, value)
}
func setSettingGsmNetworkId(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_NETWORK_ID, value)
}
func setSettingGsmHomeOnly(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_HOME_ONLY, value)
}
func setSettingGsmPin(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_PIN, value)
}
func setSettingGsmPinFlags(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_PIN_FLAGS, value)
}

// JSON Getter
func getSettingGsmApnJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_APN, getSettingGsmKeyType(NM_SETTING_GSM_APN))
	return
}
func getSettingGsmNumberJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_NUMBER, getSettingGsmKeyType(NM_SETTING_GSM_NUMBER))
	return
}
func getSettingGsmUsernameJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_USERNAME, getSettingGsmKeyType(NM_SETTING_GSM_USERNAME))
	return
}
func getSettingGsmPasswordFlagsJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_PASSWORD_FLAGS, getSettingGsmKeyType(NM_SETTING_GSM_PASSWORD_FLAGS))
	return
}
func getSettingGsmPasswordJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_PASSWORD, getSettingGsmKeyType(NM_SETTING_GSM_PASSWORD))
	return
}
func getSettingGsmNetworkIdJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_NETWORK_ID, getSettingGsmKeyType(NM_SETTING_GSM_NETWORK_ID))
	return
}
func getSettingGsmHomeOnlyJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_HOME_ONLY, getSettingGsmKeyType(NM_SETTING_GSM_HOME_ONLY))
	return
}
func getSettingGsmPinJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_PIN, getSettingGsmKeyType(NM_SETTING_GSM_PIN))
	return
}
func getSettingGsmPinFlagsJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_PIN_FLAGS, getSettingGsmKeyType(NM_SETTING_GSM_PIN_FLAGS))
	return
}

// JSON Setter
func setSettingGsmApnJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_APN, valueJSON, getSettingGsmKeyType(NM_SETTING_GSM_APN))
}
func setSettingGsmNumberJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_NUMBER, valueJSON, getSettingGsmKeyType(NM_SETTING_GSM_NUMBER))
}
func setSettingGsmUsernameJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_USERNAME, valueJSON, getSettingGsmKeyType(NM_SETTING_GSM_USERNAME))
}
func setSettingGsmPasswordFlagsJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_PASSWORD_FLAGS, valueJSON, getSettingGsmKeyType(NM_SETTING_GSM_PASSWORD_FLAGS))
}
func setSettingGsmPasswordJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_PASSWORD, valueJSON, getSettingGsmKeyType(NM_SETTING_GSM_PASSWORD))
}
func setSettingGsmNetworkIdJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_NETWORK_ID, valueJSON, getSettingGsmKeyType(NM_SETTING_GSM_NETWORK_ID))
}
func setSettingGsmHomeOnlyJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_HOME_ONLY, valueJSON, getSettingGsmKeyType(NM_SETTING_GSM_HOME_ONLY))
}
func setSettingGsmPinJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_PIN, valueJSON, getSettingGsmKeyType(NM_SETTING_GSM_PIN))
}
func setSettingGsmPinFlagsJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_PIN_FLAGS, valueJSON, getSettingGsmKeyType(NM_SETTING_GSM_PIN_FLAGS))
}

// Logic JSON Setter

// Remover
func removeSettingGsmApn(data connectionData) {
	removeSettingKey(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_APN)
}
func removeSettingGsmNumber(data connectionData) {
	removeSettingKey(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_NUMBER)
}
func removeSettingGsmUsername(data connectionData) {
	removeSettingKey(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_USERNAME)
}
func removeSettingGsmPasswordFlags(data connectionData) {
	removeSettingKey(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_PASSWORD_FLAGS)
}
func removeSettingGsmPassword(data connectionData) {
	removeSettingKey(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_PASSWORD)
}
func removeSettingGsmNetworkId(data connectionData) {
	removeSettingKey(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_NETWORK_ID)
}
func removeSettingGsmHomeOnly(data connectionData) {
	removeSettingKey(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_HOME_ONLY)
}
func removeSettingGsmPin(data connectionData) {
	removeSettingKey(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_PIN)
}
func removeSettingGsmPinFlags(data connectionData) {
	removeSettingKey(data, NM_SETTING_GSM_SETTING_NAME, NM_SETTING_GSM_PIN_FLAGS)
}

// Origin file name ../nm_setting_ip4_config_gen.go
// Get key type
func getSettingIp4ConfigKeyType(key string) (t ktype) {
	switch key {
	default:
		t = ktypeUnknown
	case NM_SETTING_IP4_CONFIG_METHOD:
		t = ktypeString
	case NM_SETTING_IP4_CONFIG_ADDRESSES:
		t = ktypeWrapperIpv4Addresses
	case NM_SETTING_IP4_CONFIG_DNS:
		t = ktypeWrapperIpv4Dns
	case NM_SETTING_IP4_CONFIG_DNS_SEARCH:
		t = ktypeString
	case NM_SETTING_IP4_CONFIG_ROUTES:
		t = ktypeWrapperIpv4Routes
	case NM_SETTING_IP4_CONFIG_IGNORE_AUTO_ROUTES:
		t = ktypeBoolean
	case NM_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS:
		t = ktypeBoolean
	case NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID:
		t = ktypeString
	case NM_SETTING_IP4_CONFIG_DHCP_SEND_HOSTNAME:
		t = ktypeBoolean
	case NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME:
		t = ktypeString
	case NM_SETTING_IP4_CONFIG_NEVER_DEFAULT:
		t = ktypeBoolean
	case NM_SETTING_IP4_CONFIG_MAY_FAIL:
		t = ktypeBoolean
	}
	return
}

// Check is key in current setting section
func isKeyInSettingIp4Config(key string) bool {
	switch key {
	case NM_SETTING_IP4_CONFIG_METHOD:
		return true
	case NM_SETTING_IP4_CONFIG_ADDRESSES:
		return true
	case NM_SETTING_IP4_CONFIG_DNS:
		return true
	case NM_SETTING_IP4_CONFIG_DNS_SEARCH:
		return true
	case NM_SETTING_IP4_CONFIG_ROUTES:
		return true
	case NM_SETTING_IP4_CONFIG_IGNORE_AUTO_ROUTES:
		return true
	case NM_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS:
		return true
	case NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID:
		return true
	case NM_SETTING_IP4_CONFIG_DHCP_SEND_HOSTNAME:
		return true
	case NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME:
		return true
	case NM_SETTING_IP4_CONFIG_NEVER_DEFAULT:
		return true
	case NM_SETTING_IP4_CONFIG_MAY_FAIL:
		return true
	}
	return false
}

// Get key's default value
func getSettingIp4ConfigDefaultValue(key string) (value interface{}) {
	switch key {
	default:
		logger.Error("invalid key:", key)
	case NM_SETTING_IP4_CONFIG_METHOD:
		value = ""
	case NM_SETTING_IP4_CONFIG_ADDRESSES:
		value = make([][]uint32, 0)
	case NM_SETTING_IP4_CONFIG_DNS:
		value = make([]uint32, 0)
	case NM_SETTING_IP4_CONFIG_DNS_SEARCH:
		value = ""
	case NM_SETTING_IP4_CONFIG_ROUTES:
		value = make([][]uint32, 0)
	case NM_SETTING_IP4_CONFIG_IGNORE_AUTO_ROUTES:
		value = false
	case NM_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS:
		value = false
	case NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID:
		value = ""
	case NM_SETTING_IP4_CONFIG_DHCP_SEND_HOSTNAME:
		value = true
	case NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME:
		value = ""
	case NM_SETTING_IP4_CONFIG_NEVER_DEFAULT:
		value = false
	case NM_SETTING_IP4_CONFIG_MAY_FAIL:
		value = true
	}
	return
}

// Get JSON value generally
func generalGetSettingIp4ConfigKeyJSON(data connectionData, key string) (value string) {
	switch key {
	default:
		logger.Error("generalGetSettingIp4ConfigKeyJSON: invalide key", key)
	case NM_SETTING_IP4_CONFIG_METHOD:
		value = getSettingIp4ConfigMethodJSON(data)
	case NM_SETTING_IP4_CONFIG_ADDRESSES:
		value = getSettingIp4ConfigAddressesJSON(data)
	case NM_SETTING_IP4_CONFIG_DNS:
		value = getSettingIp4ConfigDnsJSON(data)
	case NM_SETTING_IP4_CONFIG_DNS_SEARCH:
		value = getSettingIp4ConfigDnsSearchJSON(data)
	case NM_SETTING_IP4_CONFIG_ROUTES:
		value = getSettingIp4ConfigRoutesJSON(data)
	case NM_SETTING_IP4_CONFIG_IGNORE_AUTO_ROUTES:
		value = getSettingIp4ConfigIgnoreAutoRoutesJSON(data)
	case NM_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS:
		value = getSettingIp4ConfigIgnoreAutoDnsJSON(data)
	case NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID:
		value = getSettingIp4ConfigDhcpClientIdJSON(data)
	case NM_SETTING_IP4_CONFIG_DHCP_SEND_HOSTNAME:
		value = getSettingIp4ConfigDhcpSendHostnameJSON(data)
	case NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME:
		value = getSettingIp4ConfigDhcpHostnameJSON(data)
	case NM_SETTING_IP4_CONFIG_NEVER_DEFAULT:
		value = getSettingIp4ConfigNeverDefaultJSON(data)
	case NM_SETTING_IP4_CONFIG_MAY_FAIL:
		value = getSettingIp4ConfigMayFailJSON(data)
	}
	return
}

// Set JSON value generally
func generalSetSettingIp4ConfigKeyJSON(data connectionData, key, valueJSON string) (err error) {
	switch key {
	default:
		logger.Error("generalSetSettingIp4ConfigKeyJSON: invalide key", key)
	case NM_SETTING_IP4_CONFIG_METHOD:
		err = logicSetSettingIp4ConfigMethodJSON(data, valueJSON)
	case NM_SETTING_IP4_CONFIG_ADDRESSES:
		err = setSettingIp4ConfigAddressesJSON(data, valueJSON)
	case NM_SETTING_IP4_CONFIG_DNS:
		err = setSettingIp4ConfigDnsJSON(data, valueJSON)
	case NM_SETTING_IP4_CONFIG_DNS_SEARCH:
		err = setSettingIp4ConfigDnsSearchJSON(data, valueJSON)
	case NM_SETTING_IP4_CONFIG_ROUTES:
		err = setSettingIp4ConfigRoutesJSON(data, valueJSON)
	case NM_SETTING_IP4_CONFIG_IGNORE_AUTO_ROUTES:
		err = setSettingIp4ConfigIgnoreAutoRoutesJSON(data, valueJSON)
	case NM_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS:
		err = setSettingIp4ConfigIgnoreAutoDnsJSON(data, valueJSON)
	case NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID:
		err = setSettingIp4ConfigDhcpClientIdJSON(data, valueJSON)
	case NM_SETTING_IP4_CONFIG_DHCP_SEND_HOSTNAME:
		err = setSettingIp4ConfigDhcpSendHostnameJSON(data, valueJSON)
	case NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME:
		err = setSettingIp4ConfigDhcpHostnameJSON(data, valueJSON)
	case NM_SETTING_IP4_CONFIG_NEVER_DEFAULT:
		err = setSettingIp4ConfigNeverDefaultJSON(data, valueJSON)
	case NM_SETTING_IP4_CONFIG_MAY_FAIL:
		err = setSettingIp4ConfigMayFailJSON(data, valueJSON)
	}
	return
}

// Check if key exists
func isSettingIp4ConfigMethodExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_METHOD)
}
func isSettingIp4ConfigAddressesExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_ADDRESSES)
}
func isSettingIp4ConfigDnsExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DNS)
}
func isSettingIp4ConfigDnsSearchExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DNS_SEARCH)
}
func isSettingIp4ConfigRoutesExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_ROUTES)
}
func isSettingIp4ConfigIgnoreAutoRoutesExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_IGNORE_AUTO_ROUTES)
}
func isSettingIp4ConfigIgnoreAutoDnsExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS)
}
func isSettingIp4ConfigDhcpClientIdExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID)
}
func isSettingIp4ConfigDhcpSendHostnameExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DHCP_SEND_HOSTNAME)
}
func isSettingIp4ConfigDhcpHostnameExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME)
}
func isSettingIp4ConfigNeverDefaultExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_NEVER_DEFAULT)
}
func isSettingIp4ConfigMayFailExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_MAY_FAIL)
}

// Ensure section and key exists and not empty
func ensureSectionSettingIp4ConfigExists(data connectionData, errs sectionErrors, relatedKey string) {
	if !isSettingSectionExists(data, NM_SETTING_IP4_CONFIG_SETTING_NAME) {
		rememberError(errs, relatedKey, NM_SETTING_IP4_CONFIG_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_MISSING_SECTION, NM_SETTING_IP4_CONFIG_SETTING_NAME))
	}
	sectionData, _ := data[NM_SETTING_IP4_CONFIG_SETTING_NAME]
	if len(sectionData) == 0 {
		rememberError(errs, relatedKey, NM_SETTING_IP4_CONFIG_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_EMPTY_SECTION, NM_SETTING_IP4_CONFIG_SETTING_NAME))
	}
}
func ensureSettingIp4ConfigMethodNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingIp4ConfigMethodExists(data) {
		rememberError(errs, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_METHOD, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingIp4ConfigMethod(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_METHOD, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingIp4ConfigAddressesNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingIp4ConfigAddressesExists(data) {
		rememberError(errs, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_ADDRESSES, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingIp4ConfigAddresses(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_ADDRESSES, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingIp4ConfigDnsNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingIp4ConfigDnsExists(data) {
		rememberError(errs, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DNS, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingIp4ConfigDns(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DNS, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingIp4ConfigDnsSearchNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingIp4ConfigDnsSearchExists(data) {
		rememberError(errs, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DNS_SEARCH, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingIp4ConfigDnsSearch(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DNS_SEARCH, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingIp4ConfigRoutesNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingIp4ConfigRoutesExists(data) {
		rememberError(errs, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_ROUTES, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingIp4ConfigRoutes(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_ROUTES, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingIp4ConfigIgnoreAutoRoutesNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingIp4ConfigIgnoreAutoRoutesExists(data) {
		rememberError(errs, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_IGNORE_AUTO_ROUTES, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingIp4ConfigIgnoreAutoDnsNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingIp4ConfigIgnoreAutoDnsExists(data) {
		rememberError(errs, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingIp4ConfigDhcpClientIdNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingIp4ConfigDhcpClientIdExists(data) {
		rememberError(errs, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingIp4ConfigDhcpClientId(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingIp4ConfigDhcpSendHostnameNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingIp4ConfigDhcpSendHostnameExists(data) {
		rememberError(errs, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DHCP_SEND_HOSTNAME, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingIp4ConfigDhcpHostnameNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingIp4ConfigDhcpHostnameExists(data) {
		rememberError(errs, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingIp4ConfigDhcpHostname(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingIp4ConfigNeverDefaultNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingIp4ConfigNeverDefaultExists(data) {
		rememberError(errs, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_NEVER_DEFAULT, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingIp4ConfigMayFailNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingIp4ConfigMayFailExists(data) {
		rememberError(errs, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_MAY_FAIL, NM_KEY_ERROR_MISSING_VALUE)
	}
}

// Getter
func getSettingIp4ConfigMethod(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_METHOD)
	value = interfaceToString(ivalue)
	return
}
func getSettingIp4ConfigAddresses(data connectionData) (value [][]uint32) {
	ivalue := getSettingKey(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_ADDRESSES)
	value = interfaceToArrayArrayUint32(ivalue)
	return
}
func getSettingIp4ConfigDns(data connectionData) (value []uint32) {
	ivalue := getSettingKey(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DNS)
	value = interfaceToArrayUint32(ivalue)
	return
}
func getSettingIp4ConfigDnsSearch(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DNS_SEARCH)
	value = interfaceToString(ivalue)
	return
}
func getSettingIp4ConfigRoutes(data connectionData) (value [][]uint32) {
	ivalue := getSettingKey(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_ROUTES)
	value = interfaceToArrayArrayUint32(ivalue)
	return
}
func getSettingIp4ConfigIgnoreAutoRoutes(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_IGNORE_AUTO_ROUTES)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingIp4ConfigIgnoreAutoDns(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingIp4ConfigDhcpClientId(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID)
	value = interfaceToString(ivalue)
	return
}
func getSettingIp4ConfigDhcpSendHostname(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DHCP_SEND_HOSTNAME)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingIp4ConfigDhcpHostname(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME)
	value = interfaceToString(ivalue)
	return
}
func getSettingIp4ConfigNeverDefault(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_NEVER_DEFAULT)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingIp4ConfigMayFail(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_MAY_FAIL)
	value = interfaceToBoolean(ivalue)
	return
}

// Setter
func setSettingIp4ConfigMethod(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_METHOD, value)
}
func setSettingIp4ConfigAddresses(data connectionData, value [][]uint32) {
	setSettingKey(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_ADDRESSES, value)
}
func setSettingIp4ConfigDns(data connectionData, value []uint32) {
	setSettingKey(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DNS, value)
}
func setSettingIp4ConfigDnsSearch(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DNS_SEARCH, value)
}
func setSettingIp4ConfigRoutes(data connectionData, value [][]uint32) {
	setSettingKey(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_ROUTES, value)
}
func setSettingIp4ConfigIgnoreAutoRoutes(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_IGNORE_AUTO_ROUTES, value)
}
func setSettingIp4ConfigIgnoreAutoDns(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS, value)
}
func setSettingIp4ConfigDhcpClientId(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID, value)
}
func setSettingIp4ConfigDhcpSendHostname(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DHCP_SEND_HOSTNAME, value)
}
func setSettingIp4ConfigDhcpHostname(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME, value)
}
func setSettingIp4ConfigNeverDefault(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_NEVER_DEFAULT, value)
}
func setSettingIp4ConfigMayFail(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_MAY_FAIL, value)
}

// JSON Getter
func getSettingIp4ConfigMethodJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_METHOD, getSettingIp4ConfigKeyType(NM_SETTING_IP4_CONFIG_METHOD))
	return
}
func getSettingIp4ConfigAddressesJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_ADDRESSES, getSettingIp4ConfigKeyType(NM_SETTING_IP4_CONFIG_ADDRESSES))
	return
}
func getSettingIp4ConfigDnsJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DNS, getSettingIp4ConfigKeyType(NM_SETTING_IP4_CONFIG_DNS))
	return
}
func getSettingIp4ConfigDnsSearchJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DNS_SEARCH, getSettingIp4ConfigKeyType(NM_SETTING_IP4_CONFIG_DNS_SEARCH))
	return
}
func getSettingIp4ConfigRoutesJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_ROUTES, getSettingIp4ConfigKeyType(NM_SETTING_IP4_CONFIG_ROUTES))
	return
}
func getSettingIp4ConfigIgnoreAutoRoutesJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_IGNORE_AUTO_ROUTES, getSettingIp4ConfigKeyType(NM_SETTING_IP4_CONFIG_IGNORE_AUTO_ROUTES))
	return
}
func getSettingIp4ConfigIgnoreAutoDnsJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS, getSettingIp4ConfigKeyType(NM_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS))
	return
}
func getSettingIp4ConfigDhcpClientIdJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID, getSettingIp4ConfigKeyType(NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID))
	return
}
func getSettingIp4ConfigDhcpSendHostnameJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DHCP_SEND_HOSTNAME, getSettingIp4ConfigKeyType(NM_SETTING_IP4_CONFIG_DHCP_SEND_HOSTNAME))
	return
}
func getSettingIp4ConfigDhcpHostnameJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME, getSettingIp4ConfigKeyType(NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME))
	return
}
func getSettingIp4ConfigNeverDefaultJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_NEVER_DEFAULT, getSettingIp4ConfigKeyType(NM_SETTING_IP4_CONFIG_NEVER_DEFAULT))
	return
}
func getSettingIp4ConfigMayFailJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_MAY_FAIL, getSettingIp4ConfigKeyType(NM_SETTING_IP4_CONFIG_MAY_FAIL))
	return
}

// JSON Setter
func setSettingIp4ConfigMethodJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_METHOD, valueJSON, getSettingIp4ConfigKeyType(NM_SETTING_IP4_CONFIG_METHOD))
}
func setSettingIp4ConfigAddressesJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_ADDRESSES, valueJSON, getSettingIp4ConfigKeyType(NM_SETTING_IP4_CONFIG_ADDRESSES))
}
func setSettingIp4ConfigDnsJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DNS, valueJSON, getSettingIp4ConfigKeyType(NM_SETTING_IP4_CONFIG_DNS))
}
func setSettingIp4ConfigDnsSearchJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DNS_SEARCH, valueJSON, getSettingIp4ConfigKeyType(NM_SETTING_IP4_CONFIG_DNS_SEARCH))
}
func setSettingIp4ConfigRoutesJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_ROUTES, valueJSON, getSettingIp4ConfigKeyType(NM_SETTING_IP4_CONFIG_ROUTES))
}
func setSettingIp4ConfigIgnoreAutoRoutesJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_IGNORE_AUTO_ROUTES, valueJSON, getSettingIp4ConfigKeyType(NM_SETTING_IP4_CONFIG_IGNORE_AUTO_ROUTES))
}
func setSettingIp4ConfigIgnoreAutoDnsJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS, valueJSON, getSettingIp4ConfigKeyType(NM_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS))
}
func setSettingIp4ConfigDhcpClientIdJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID, valueJSON, getSettingIp4ConfigKeyType(NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID))
}
func setSettingIp4ConfigDhcpSendHostnameJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DHCP_SEND_HOSTNAME, valueJSON, getSettingIp4ConfigKeyType(NM_SETTING_IP4_CONFIG_DHCP_SEND_HOSTNAME))
}
func setSettingIp4ConfigDhcpHostnameJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME, valueJSON, getSettingIp4ConfigKeyType(NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME))
}
func setSettingIp4ConfigNeverDefaultJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_NEVER_DEFAULT, valueJSON, getSettingIp4ConfigKeyType(NM_SETTING_IP4_CONFIG_NEVER_DEFAULT))
}
func setSettingIp4ConfigMayFailJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_MAY_FAIL, valueJSON, getSettingIp4ConfigKeyType(NM_SETTING_IP4_CONFIG_MAY_FAIL))
}

// Logic JSON Setter
func logicSetSettingIp4ConfigMethodJSON(data connectionData, valueJSON string) (err error) {
	err = setSettingIp4ConfigMethodJSON(data, valueJSON)
	if err != nil {
		return
	}
	if isSettingIp4ConfigMethodExists(data) {
		value := getSettingIp4ConfigMethod(data)
		err = logicSetSettingIp4ConfigMethod(data, value)
	}
	return
}

// Remover
func removeSettingIp4ConfigMethod(data connectionData) {
	removeSettingKey(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_METHOD)
}
func removeSettingIp4ConfigAddresses(data connectionData) {
	removeSettingKey(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_ADDRESSES)
}
func removeSettingIp4ConfigDns(data connectionData) {
	removeSettingKey(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DNS)
}
func removeSettingIp4ConfigDnsSearch(data connectionData) {
	removeSettingKey(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DNS_SEARCH)
}
func removeSettingIp4ConfigRoutes(data connectionData) {
	removeSettingKey(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_ROUTES)
}
func removeSettingIp4ConfigIgnoreAutoRoutes(data connectionData) {
	removeSettingKey(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_IGNORE_AUTO_ROUTES)
}
func removeSettingIp4ConfigIgnoreAutoDns(data connectionData) {
	removeSettingKey(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_IGNORE_AUTO_DNS)
}
func removeSettingIp4ConfigDhcpClientId(data connectionData) {
	removeSettingKey(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID)
}
func removeSettingIp4ConfigDhcpSendHostname(data connectionData) {
	removeSettingKey(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DHCP_SEND_HOSTNAME)
}
func removeSettingIp4ConfigDhcpHostname(data connectionData) {
	removeSettingKey(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME)
}
func removeSettingIp4ConfigNeverDefault(data connectionData) {
	removeSettingKey(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_NEVER_DEFAULT)
}
func removeSettingIp4ConfigMayFail(data connectionData) {
	removeSettingKey(data, NM_SETTING_IP4_CONFIG_SETTING_NAME, NM_SETTING_IP4_CONFIG_MAY_FAIL)
}

// Origin file name ../nm_setting_ip6_config_gen.go
// Get key type
func getSettingIp6ConfigKeyType(key string) (t ktype) {
	switch key {
	default:
		t = ktypeUnknown
	case NM_SETTING_IP6_CONFIG_METHOD:
		t = ktypeString
	case NM_SETTING_IP6_CONFIG_ADDRESSES:
		t = ktypeWrapperIpv6Addresses
	case NM_SETTING_IP6_CONFIG_DNS:
		t = ktypeWrapperIpv6Dns
	case NM_SETTING_IP6_CONFIG_DNS_SEARCH:
		t = ktypeArrayString
	case NM_SETTING_IP6_CONFIG_ROUTES:
		t = ktypeWrapperIpv6Routes
	case NM_SETTING_IP6_CONFIG_IGNORE_AUTO_ROUTES:
		t = ktypeBoolean
	case NM_SETTING_IP6_CONFIG_IGNORE_AUTO_DNS:
		t = ktypeBoolean
	case NM_SETTING_IP6_CONFIG_NEVER_DEFAULT:
		t = ktypeBoolean
	case NM_SETTING_IP6_CONFIG_MAY_FAIL:
		t = ktypeBoolean
	case NM_SETTING_IP6_CONFIG_IP6_PRIVACY:
		t = ktypeInt32
	case NM_SETTING_IP6_CONFIG_DHCP_HOSTNAME:
		t = ktypeString
	}
	return
}

// Check is key in current setting section
func isKeyInSettingIp6Config(key string) bool {
	switch key {
	case NM_SETTING_IP6_CONFIG_METHOD:
		return true
	case NM_SETTING_IP6_CONFIG_ADDRESSES:
		return true
	case NM_SETTING_IP6_CONFIG_DNS:
		return true
	case NM_SETTING_IP6_CONFIG_DNS_SEARCH:
		return true
	case NM_SETTING_IP6_CONFIG_ROUTES:
		return true
	case NM_SETTING_IP6_CONFIG_IGNORE_AUTO_ROUTES:
		return true
	case NM_SETTING_IP6_CONFIG_IGNORE_AUTO_DNS:
		return true
	case NM_SETTING_IP6_CONFIG_NEVER_DEFAULT:
		return true
	case NM_SETTING_IP6_CONFIG_MAY_FAIL:
		return true
	case NM_SETTING_IP6_CONFIG_IP6_PRIVACY:
		return true
	case NM_SETTING_IP6_CONFIG_DHCP_HOSTNAME:
		return true
	}
	return false
}

// Get key's default value
func getSettingIp6ConfigDefaultValue(key string) (value interface{}) {
	switch key {
	default:
		logger.Error("invalid key:", key)
	case NM_SETTING_IP6_CONFIG_METHOD:
		value = ""
	case NM_SETTING_IP6_CONFIG_ADDRESSES:
		value = make(ipv6Addresses, 0)
	case NM_SETTING_IP6_CONFIG_DNS:
		value = make([][]byte, 0)
	case NM_SETTING_IP6_CONFIG_DNS_SEARCH:
		value = make([]string, 0)
	case NM_SETTING_IP6_CONFIG_ROUTES:
		value = make(ipv6Routes, 0)
	case NM_SETTING_IP6_CONFIG_IGNORE_AUTO_ROUTES:
		value = false
	case NM_SETTING_IP6_CONFIG_IGNORE_AUTO_DNS:
		value = false
	case NM_SETTING_IP6_CONFIG_NEVER_DEFAULT:
		value = false
	case NM_SETTING_IP6_CONFIG_MAY_FAIL:
		value = true
	case NM_SETTING_IP6_CONFIG_IP6_PRIVACY:
		value = -1
	case NM_SETTING_IP6_CONFIG_DHCP_HOSTNAME:
		value = ""
	}
	return
}

// Get JSON value generally
func generalGetSettingIp6ConfigKeyJSON(data connectionData, key string) (value string) {
	switch key {
	default:
		logger.Error("generalGetSettingIp6ConfigKeyJSON: invalide key", key)
	case NM_SETTING_IP6_CONFIG_METHOD:
		value = getSettingIp6ConfigMethodJSON(data)
	case NM_SETTING_IP6_CONFIG_ADDRESSES:
		value = getSettingIp6ConfigAddressesJSON(data)
	case NM_SETTING_IP6_CONFIG_DNS:
		value = getSettingIp6ConfigDnsJSON(data)
	case NM_SETTING_IP6_CONFIG_DNS_SEARCH:
		value = getSettingIp6ConfigDnsSearchJSON(data)
	case NM_SETTING_IP6_CONFIG_ROUTES:
		value = getSettingIp6ConfigRoutesJSON(data)
	case NM_SETTING_IP6_CONFIG_IGNORE_AUTO_ROUTES:
		value = getSettingIp6ConfigIgnoreAutoRoutesJSON(data)
	case NM_SETTING_IP6_CONFIG_IGNORE_AUTO_DNS:
		value = getSettingIp6ConfigIgnoreAutoDnsJSON(data)
	case NM_SETTING_IP6_CONFIG_NEVER_DEFAULT:
		value = getSettingIp6ConfigNeverDefaultJSON(data)
	case NM_SETTING_IP6_CONFIG_MAY_FAIL:
		value = getSettingIp6ConfigMayFailJSON(data)
	case NM_SETTING_IP6_CONFIG_IP6_PRIVACY:
		value = getSettingIp6ConfigIp6PrivacyJSON(data)
	case NM_SETTING_IP6_CONFIG_DHCP_HOSTNAME:
		value = getSettingIp6ConfigDhcpHostnameJSON(data)
	}
	return
}

// Set JSON value generally
func generalSetSettingIp6ConfigKeyJSON(data connectionData, key, valueJSON string) (err error) {
	switch key {
	default:
		logger.Error("generalSetSettingIp6ConfigKeyJSON: invalide key", key)
	case NM_SETTING_IP6_CONFIG_METHOD:
		err = logicSetSettingIp6ConfigMethodJSON(data, valueJSON)
	case NM_SETTING_IP6_CONFIG_ADDRESSES:
		err = setSettingIp6ConfigAddressesJSON(data, valueJSON)
	case NM_SETTING_IP6_CONFIG_DNS:
		err = setSettingIp6ConfigDnsJSON(data, valueJSON)
	case NM_SETTING_IP6_CONFIG_DNS_SEARCH:
		err = setSettingIp6ConfigDnsSearchJSON(data, valueJSON)
	case NM_SETTING_IP6_CONFIG_ROUTES:
		err = setSettingIp6ConfigRoutesJSON(data, valueJSON)
	case NM_SETTING_IP6_CONFIG_IGNORE_AUTO_ROUTES:
		err = setSettingIp6ConfigIgnoreAutoRoutesJSON(data, valueJSON)
	case NM_SETTING_IP6_CONFIG_IGNORE_AUTO_DNS:
		err = setSettingIp6ConfigIgnoreAutoDnsJSON(data, valueJSON)
	case NM_SETTING_IP6_CONFIG_NEVER_DEFAULT:
		err = setSettingIp6ConfigNeverDefaultJSON(data, valueJSON)
	case NM_SETTING_IP6_CONFIG_MAY_FAIL:
		err = setSettingIp6ConfigMayFailJSON(data, valueJSON)
	case NM_SETTING_IP6_CONFIG_IP6_PRIVACY:
		err = setSettingIp6ConfigIp6PrivacyJSON(data, valueJSON)
	case NM_SETTING_IP6_CONFIG_DHCP_HOSTNAME:
		err = setSettingIp6ConfigDhcpHostnameJSON(data, valueJSON)
	}
	return
}

// Check if key exists
func isSettingIp6ConfigMethodExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_METHOD)
}
func isSettingIp6ConfigAddressesExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_ADDRESSES)
}
func isSettingIp6ConfigDnsExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_DNS)
}
func isSettingIp6ConfigDnsSearchExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_DNS_SEARCH)
}
func isSettingIp6ConfigRoutesExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_ROUTES)
}
func isSettingIp6ConfigIgnoreAutoRoutesExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_IGNORE_AUTO_ROUTES)
}
func isSettingIp6ConfigIgnoreAutoDnsExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_IGNORE_AUTO_DNS)
}
func isSettingIp6ConfigNeverDefaultExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_NEVER_DEFAULT)
}
func isSettingIp6ConfigMayFailExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_MAY_FAIL)
}
func isSettingIp6ConfigIp6PrivacyExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_IP6_PRIVACY)
}
func isSettingIp6ConfigDhcpHostnameExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_DHCP_HOSTNAME)
}

// Ensure section and key exists and not empty
func ensureSectionSettingIp6ConfigExists(data connectionData, errs sectionErrors, relatedKey string) {
	if !isSettingSectionExists(data, NM_SETTING_IP6_CONFIG_SETTING_NAME) {
		rememberError(errs, relatedKey, NM_SETTING_IP6_CONFIG_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_MISSING_SECTION, NM_SETTING_IP6_CONFIG_SETTING_NAME))
	}
	sectionData, _ := data[NM_SETTING_IP6_CONFIG_SETTING_NAME]
	if len(sectionData) == 0 {
		rememberError(errs, relatedKey, NM_SETTING_IP6_CONFIG_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_EMPTY_SECTION, NM_SETTING_IP6_CONFIG_SETTING_NAME))
	}
}
func ensureSettingIp6ConfigMethodNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingIp6ConfigMethodExists(data) {
		rememberError(errs, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_METHOD, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingIp6ConfigMethod(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_METHOD, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingIp6ConfigAddressesNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingIp6ConfigAddressesExists(data) {
		rememberError(errs, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_ADDRESSES, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingIp6ConfigAddresses(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_ADDRESSES, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingIp6ConfigDnsNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingIp6ConfigDnsExists(data) {
		rememberError(errs, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_DNS, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingIp6ConfigDns(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_DNS, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingIp6ConfigDnsSearchNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingIp6ConfigDnsSearchExists(data) {
		rememberError(errs, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_DNS_SEARCH, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingIp6ConfigDnsSearch(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_DNS_SEARCH, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingIp6ConfigRoutesNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingIp6ConfigRoutesExists(data) {
		rememberError(errs, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_ROUTES, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingIp6ConfigRoutes(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_ROUTES, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingIp6ConfigIgnoreAutoRoutesNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingIp6ConfigIgnoreAutoRoutesExists(data) {
		rememberError(errs, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_IGNORE_AUTO_ROUTES, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingIp6ConfigIgnoreAutoDnsNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingIp6ConfigIgnoreAutoDnsExists(data) {
		rememberError(errs, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_IGNORE_AUTO_DNS, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingIp6ConfigNeverDefaultNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingIp6ConfigNeverDefaultExists(data) {
		rememberError(errs, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_NEVER_DEFAULT, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingIp6ConfigMayFailNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingIp6ConfigMayFailExists(data) {
		rememberError(errs, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_MAY_FAIL, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingIp6ConfigIp6PrivacyNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingIp6ConfigIp6PrivacyExists(data) {
		rememberError(errs, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_IP6_PRIVACY, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingIp6ConfigDhcpHostnameNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingIp6ConfigDhcpHostnameExists(data) {
		rememberError(errs, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_DHCP_HOSTNAME, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingIp6ConfigDhcpHostname(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_DHCP_HOSTNAME, NM_KEY_ERROR_EMPTY_VALUE)
	}
}

// Getter
func getSettingIp6ConfigMethod(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_METHOD)
	value = interfaceToString(ivalue)
	return
}
func getSettingIp6ConfigAddresses(data connectionData) (value ipv6Addresses) {
	ivalue := getSettingKey(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_ADDRESSES)
	value = interfaceToIpv6Addresses(ivalue)
	return
}
func getSettingIp6ConfigDns(data connectionData) (value [][]byte) {
	ivalue := getSettingKey(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_DNS)
	value = interfaceToArrayArrayByte(ivalue)
	return
}
func getSettingIp6ConfigDnsSearch(data connectionData) (value []string) {
	ivalue := getSettingKey(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_DNS_SEARCH)
	value = interfaceToArrayString(ivalue)
	return
}
func getSettingIp6ConfigRoutes(data connectionData) (value ipv6Routes) {
	ivalue := getSettingKey(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_ROUTES)
	value = interfaceToIpv6Routes(ivalue)
	return
}
func getSettingIp6ConfigIgnoreAutoRoutes(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_IGNORE_AUTO_ROUTES)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingIp6ConfigIgnoreAutoDns(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_IGNORE_AUTO_DNS)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingIp6ConfigNeverDefault(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_NEVER_DEFAULT)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingIp6ConfigMayFail(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_MAY_FAIL)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingIp6ConfigIp6Privacy(data connectionData) (value int32) {
	ivalue := getSettingKey(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_IP6_PRIVACY)
	value = interfaceToInt32(ivalue)
	return
}
func getSettingIp6ConfigDhcpHostname(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_DHCP_HOSTNAME)
	value = interfaceToString(ivalue)
	return
}

// Setter
func setSettingIp6ConfigMethod(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_METHOD, value)
}
func setSettingIp6ConfigAddresses(data connectionData, value ipv6Addresses) {
	setSettingKey(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_ADDRESSES, value)
}
func setSettingIp6ConfigDns(data connectionData, value [][]byte) {
	setSettingKey(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_DNS, value)
}
func setSettingIp6ConfigDnsSearch(data connectionData, value []string) {
	setSettingKey(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_DNS_SEARCH, value)
}
func setSettingIp6ConfigRoutes(data connectionData, value ipv6Routes) {
	setSettingKey(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_ROUTES, value)
}
func setSettingIp6ConfigIgnoreAutoRoutes(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_IGNORE_AUTO_ROUTES, value)
}
func setSettingIp6ConfigIgnoreAutoDns(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_IGNORE_AUTO_DNS, value)
}
func setSettingIp6ConfigNeverDefault(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_NEVER_DEFAULT, value)
}
func setSettingIp6ConfigMayFail(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_MAY_FAIL, value)
}
func setSettingIp6ConfigIp6Privacy(data connectionData, value int32) {
	setSettingKey(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_IP6_PRIVACY, value)
}
func setSettingIp6ConfigDhcpHostname(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_DHCP_HOSTNAME, value)
}

// JSON Getter
func getSettingIp6ConfigMethodJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_METHOD, getSettingIp6ConfigKeyType(NM_SETTING_IP6_CONFIG_METHOD))
	return
}
func getSettingIp6ConfigAddressesJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_ADDRESSES, getSettingIp6ConfigKeyType(NM_SETTING_IP6_CONFIG_ADDRESSES))
	return
}
func getSettingIp6ConfigDnsJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_DNS, getSettingIp6ConfigKeyType(NM_SETTING_IP6_CONFIG_DNS))
	return
}
func getSettingIp6ConfigDnsSearchJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_DNS_SEARCH, getSettingIp6ConfigKeyType(NM_SETTING_IP6_CONFIG_DNS_SEARCH))
	return
}
func getSettingIp6ConfigRoutesJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_ROUTES, getSettingIp6ConfigKeyType(NM_SETTING_IP6_CONFIG_ROUTES))
	return
}
func getSettingIp6ConfigIgnoreAutoRoutesJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_IGNORE_AUTO_ROUTES, getSettingIp6ConfigKeyType(NM_SETTING_IP6_CONFIG_IGNORE_AUTO_ROUTES))
	return
}
func getSettingIp6ConfigIgnoreAutoDnsJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_IGNORE_AUTO_DNS, getSettingIp6ConfigKeyType(NM_SETTING_IP6_CONFIG_IGNORE_AUTO_DNS))
	return
}
func getSettingIp6ConfigNeverDefaultJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_NEVER_DEFAULT, getSettingIp6ConfigKeyType(NM_SETTING_IP6_CONFIG_NEVER_DEFAULT))
	return
}
func getSettingIp6ConfigMayFailJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_MAY_FAIL, getSettingIp6ConfigKeyType(NM_SETTING_IP6_CONFIG_MAY_FAIL))
	return
}
func getSettingIp6ConfigIp6PrivacyJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_IP6_PRIVACY, getSettingIp6ConfigKeyType(NM_SETTING_IP6_CONFIG_IP6_PRIVACY))
	return
}
func getSettingIp6ConfigDhcpHostnameJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_DHCP_HOSTNAME, getSettingIp6ConfigKeyType(NM_SETTING_IP6_CONFIG_DHCP_HOSTNAME))
	return
}

// JSON Setter
func setSettingIp6ConfigMethodJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_METHOD, valueJSON, getSettingIp6ConfigKeyType(NM_SETTING_IP6_CONFIG_METHOD))
}
func setSettingIp6ConfigAddressesJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_ADDRESSES, valueJSON, getSettingIp6ConfigKeyType(NM_SETTING_IP6_CONFIG_ADDRESSES))
}
func setSettingIp6ConfigDnsJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_DNS, valueJSON, getSettingIp6ConfigKeyType(NM_SETTING_IP6_CONFIG_DNS))
}
func setSettingIp6ConfigDnsSearchJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_DNS_SEARCH, valueJSON, getSettingIp6ConfigKeyType(NM_SETTING_IP6_CONFIG_DNS_SEARCH))
}
func setSettingIp6ConfigRoutesJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_ROUTES, valueJSON, getSettingIp6ConfigKeyType(NM_SETTING_IP6_CONFIG_ROUTES))
}
func setSettingIp6ConfigIgnoreAutoRoutesJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_IGNORE_AUTO_ROUTES, valueJSON, getSettingIp6ConfigKeyType(NM_SETTING_IP6_CONFIG_IGNORE_AUTO_ROUTES))
}
func setSettingIp6ConfigIgnoreAutoDnsJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_IGNORE_AUTO_DNS, valueJSON, getSettingIp6ConfigKeyType(NM_SETTING_IP6_CONFIG_IGNORE_AUTO_DNS))
}
func setSettingIp6ConfigNeverDefaultJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_NEVER_DEFAULT, valueJSON, getSettingIp6ConfigKeyType(NM_SETTING_IP6_CONFIG_NEVER_DEFAULT))
}
func setSettingIp6ConfigMayFailJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_MAY_FAIL, valueJSON, getSettingIp6ConfigKeyType(NM_SETTING_IP6_CONFIG_MAY_FAIL))
}
func setSettingIp6ConfigIp6PrivacyJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_IP6_PRIVACY, valueJSON, getSettingIp6ConfigKeyType(NM_SETTING_IP6_CONFIG_IP6_PRIVACY))
}
func setSettingIp6ConfigDhcpHostnameJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_DHCP_HOSTNAME, valueJSON, getSettingIp6ConfigKeyType(NM_SETTING_IP6_CONFIG_DHCP_HOSTNAME))
}

// Logic JSON Setter
func logicSetSettingIp6ConfigMethodJSON(data connectionData, valueJSON string) (err error) {
	err = setSettingIp6ConfigMethodJSON(data, valueJSON)
	if err != nil {
		return
	}
	if isSettingIp6ConfigMethodExists(data) {
		value := getSettingIp6ConfigMethod(data)
		err = logicSetSettingIp6ConfigMethod(data, value)
	}
	return
}

// Remover
func removeSettingIp6ConfigMethod(data connectionData) {
	removeSettingKey(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_METHOD)
}
func removeSettingIp6ConfigAddresses(data connectionData) {
	removeSettingKey(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_ADDRESSES)
}
func removeSettingIp6ConfigDns(data connectionData) {
	removeSettingKey(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_DNS)
}
func removeSettingIp6ConfigDnsSearch(data connectionData) {
	removeSettingKey(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_DNS_SEARCH)
}
func removeSettingIp6ConfigRoutes(data connectionData) {
	removeSettingKey(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_ROUTES)
}
func removeSettingIp6ConfigIgnoreAutoRoutes(data connectionData) {
	removeSettingKey(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_IGNORE_AUTO_ROUTES)
}
func removeSettingIp6ConfigIgnoreAutoDns(data connectionData) {
	removeSettingKey(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_IGNORE_AUTO_DNS)
}
func removeSettingIp6ConfigNeverDefault(data connectionData) {
	removeSettingKey(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_NEVER_DEFAULT)
}
func removeSettingIp6ConfigMayFail(data connectionData) {
	removeSettingKey(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_MAY_FAIL)
}
func removeSettingIp6ConfigIp6Privacy(data connectionData) {
	removeSettingKey(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_IP6_PRIVACY)
}
func removeSettingIp6ConfigDhcpHostname(data connectionData) {
	removeSettingKey(data, NM_SETTING_IP6_CONFIG_SETTING_NAME, NM_SETTING_IP6_CONFIG_DHCP_HOSTNAME)
}

// Origin file name ../nm_setting_ppp_gen.go
// Get key type
func getSettingPppKeyType(key string) (t ktype) {
	switch key {
	default:
		t = ktypeUnknown
	case NM_SETTING_PPP_REQUIRE_MPPE:
		t = ktypeBoolean
	case NM_SETTING_PPP_REQUIRE_MPPE_128:
		t = ktypeBoolean
	case NM_SETTING_PPP_MPPE_STATEFUL:
		t = ktypeBoolean
	case NM_SETTING_PPP_NOAUTH:
		t = ktypeBoolean
	case NM_SETTING_PPP_REFUSE_EAP:
		t = ktypeBoolean
	case NM_SETTING_PPP_REFUSE_PAP:
		t = ktypeBoolean
	case NM_SETTING_PPP_REFUSE_CHAP:
		t = ktypeBoolean
	case NM_SETTING_PPP_REFUSE_MSCHAP:
		t = ktypeBoolean
	case NM_SETTING_PPP_REFUSE_MSCHAPV2:
		t = ktypeBoolean
	case NM_SETTING_PPP_NOBSDCOMP:
		t = ktypeBoolean
	case NM_SETTING_PPP_NODEFLATE:
		t = ktypeBoolean
	case NM_SETTING_PPP_NO_VJ_COMP:
		t = ktypeBoolean
	case NM_SETTING_PPP_CRTSCTS:
		t = ktypeBoolean
	case NM_SETTING_PPP_BAUD:
		t = ktypeUint32
	case NM_SETTING_PPP_MRU:
		t = ktypeUint32
	case NM_SETTING_PPP_MTU:
		t = ktypeUint32
	case NM_SETTING_PPP_LCP_ECHO_FAILURE:
		t = ktypeUint32
	case NM_SETTING_PPP_LCP_ECHO_INTERVAL:
		t = ktypeUint32
	}
	return
}

// Check is key in current setting section
func isKeyInSettingPpp(key string) bool {
	switch key {
	case NM_SETTING_PPP_REQUIRE_MPPE:
		return true
	case NM_SETTING_PPP_REQUIRE_MPPE_128:
		return true
	case NM_SETTING_PPP_MPPE_STATEFUL:
		return true
	case NM_SETTING_PPP_NOAUTH:
		return true
	case NM_SETTING_PPP_REFUSE_EAP:
		return true
	case NM_SETTING_PPP_REFUSE_PAP:
		return true
	case NM_SETTING_PPP_REFUSE_CHAP:
		return true
	case NM_SETTING_PPP_REFUSE_MSCHAP:
		return true
	case NM_SETTING_PPP_REFUSE_MSCHAPV2:
		return true
	case NM_SETTING_PPP_NOBSDCOMP:
		return true
	case NM_SETTING_PPP_NODEFLATE:
		return true
	case NM_SETTING_PPP_NO_VJ_COMP:
		return true
	case NM_SETTING_PPP_CRTSCTS:
		return true
	case NM_SETTING_PPP_BAUD:
		return true
	case NM_SETTING_PPP_MRU:
		return true
	case NM_SETTING_PPP_MTU:
		return true
	case NM_SETTING_PPP_LCP_ECHO_FAILURE:
		return true
	case NM_SETTING_PPP_LCP_ECHO_INTERVAL:
		return true
	}
	return false
}

// Get key's default value
func getSettingPppDefaultValue(key string) (value interface{}) {
	switch key {
	default:
		logger.Error("invalid key:", key)
	case NM_SETTING_PPP_REQUIRE_MPPE:
		value = false
	case NM_SETTING_PPP_REQUIRE_MPPE_128:
		value = false
	case NM_SETTING_PPP_MPPE_STATEFUL:
		value = false
	case NM_SETTING_PPP_NOAUTH:
		value = true
	case NM_SETTING_PPP_REFUSE_EAP:
		value = false
	case NM_SETTING_PPP_REFUSE_PAP:
		value = false
	case NM_SETTING_PPP_REFUSE_CHAP:
		value = false
	case NM_SETTING_PPP_REFUSE_MSCHAP:
		value = false
	case NM_SETTING_PPP_REFUSE_MSCHAPV2:
		value = false
	case NM_SETTING_PPP_NOBSDCOMP:
		value = false
	case NM_SETTING_PPP_NODEFLATE:
		value = false
	case NM_SETTING_PPP_NO_VJ_COMP:
		value = false
	case NM_SETTING_PPP_CRTSCTS:
		value = false
	case NM_SETTING_PPP_BAUD:
		value = uint32(0)
	case NM_SETTING_PPP_MRU:
		value = uint32(0)
	case NM_SETTING_PPP_MTU:
		value = uint32(0)
	case NM_SETTING_PPP_LCP_ECHO_FAILURE:
		value = uint32(0)
	case NM_SETTING_PPP_LCP_ECHO_INTERVAL:
		value = uint32(0)
	}
	return
}

// Get JSON value generally
func generalGetSettingPppKeyJSON(data connectionData, key string) (value string) {
	switch key {
	default:
		logger.Error("generalGetSettingPppKeyJSON: invalide key", key)
	case NM_SETTING_PPP_REQUIRE_MPPE:
		value = getSettingPppRequireMppeJSON(data)
	case NM_SETTING_PPP_REQUIRE_MPPE_128:
		value = getSettingPppRequireMppe128JSON(data)
	case NM_SETTING_PPP_MPPE_STATEFUL:
		value = getSettingPppMppeStatefulJSON(data)
	case NM_SETTING_PPP_NOAUTH:
		value = getSettingPppNoauthJSON(data)
	case NM_SETTING_PPP_REFUSE_EAP:
		value = getSettingPppRefuseEapJSON(data)
	case NM_SETTING_PPP_REFUSE_PAP:
		value = getSettingPppRefusePapJSON(data)
	case NM_SETTING_PPP_REFUSE_CHAP:
		value = getSettingPppRefuseChapJSON(data)
	case NM_SETTING_PPP_REFUSE_MSCHAP:
		value = getSettingPppRefuseMschapJSON(data)
	case NM_SETTING_PPP_REFUSE_MSCHAPV2:
		value = getSettingPppRefuseMschapv2JSON(data)
	case NM_SETTING_PPP_NOBSDCOMP:
		value = getSettingPppNobsdcompJSON(data)
	case NM_SETTING_PPP_NODEFLATE:
		value = getSettingPppNodeflateJSON(data)
	case NM_SETTING_PPP_NO_VJ_COMP:
		value = getSettingPppNoVjCompJSON(data)
	case NM_SETTING_PPP_CRTSCTS:
		value = getSettingPppCrtsctsJSON(data)
	case NM_SETTING_PPP_BAUD:
		value = getSettingPppBaudJSON(data)
	case NM_SETTING_PPP_MRU:
		value = getSettingPppMruJSON(data)
	case NM_SETTING_PPP_MTU:
		value = getSettingPppMtuJSON(data)
	case NM_SETTING_PPP_LCP_ECHO_FAILURE:
		value = getSettingPppLcpEchoFailureJSON(data)
	case NM_SETTING_PPP_LCP_ECHO_INTERVAL:
		value = getSettingPppLcpEchoIntervalJSON(data)
	}
	return
}

// Set JSON value generally
func generalSetSettingPppKeyJSON(data connectionData, key, valueJSON string) (err error) {
	switch key {
	default:
		logger.Error("generalSetSettingPppKeyJSON: invalide key", key)
	case NM_SETTING_PPP_REQUIRE_MPPE:
		err = logicSetSettingPppRequireMppeJSON(data, valueJSON)
	case NM_SETTING_PPP_REQUIRE_MPPE_128:
		err = setSettingPppRequireMppe128JSON(data, valueJSON)
	case NM_SETTING_PPP_MPPE_STATEFUL:
		err = setSettingPppMppeStatefulJSON(data, valueJSON)
	case NM_SETTING_PPP_NOAUTH:
		err = setSettingPppNoauthJSON(data, valueJSON)
	case NM_SETTING_PPP_REFUSE_EAP:
		err = setSettingPppRefuseEapJSON(data, valueJSON)
	case NM_SETTING_PPP_REFUSE_PAP:
		err = setSettingPppRefusePapJSON(data, valueJSON)
	case NM_SETTING_PPP_REFUSE_CHAP:
		err = setSettingPppRefuseChapJSON(data, valueJSON)
	case NM_SETTING_PPP_REFUSE_MSCHAP:
		err = setSettingPppRefuseMschapJSON(data, valueJSON)
	case NM_SETTING_PPP_REFUSE_MSCHAPV2:
		err = setSettingPppRefuseMschapv2JSON(data, valueJSON)
	case NM_SETTING_PPP_NOBSDCOMP:
		err = setSettingPppNobsdcompJSON(data, valueJSON)
	case NM_SETTING_PPP_NODEFLATE:
		err = setSettingPppNodeflateJSON(data, valueJSON)
	case NM_SETTING_PPP_NO_VJ_COMP:
		err = setSettingPppNoVjCompJSON(data, valueJSON)
	case NM_SETTING_PPP_CRTSCTS:
		err = setSettingPppCrtsctsJSON(data, valueJSON)
	case NM_SETTING_PPP_BAUD:
		err = setSettingPppBaudJSON(data, valueJSON)
	case NM_SETTING_PPP_MRU:
		err = setSettingPppMruJSON(data, valueJSON)
	case NM_SETTING_PPP_MTU:
		err = setSettingPppMtuJSON(data, valueJSON)
	case NM_SETTING_PPP_LCP_ECHO_FAILURE:
		err = setSettingPppLcpEchoFailureJSON(data, valueJSON)
	case NM_SETTING_PPP_LCP_ECHO_INTERVAL:
		err = setSettingPppLcpEchoIntervalJSON(data, valueJSON)
	}
	return
}

// Check if key exists
func isSettingPppRequireMppeExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REQUIRE_MPPE)
}
func isSettingPppRequireMppe128Exists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REQUIRE_MPPE_128)
}
func isSettingPppMppeStatefulExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_MPPE_STATEFUL)
}
func isSettingPppNoauthExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_NOAUTH)
}
func isSettingPppRefuseEapExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REFUSE_EAP)
}
func isSettingPppRefusePapExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REFUSE_PAP)
}
func isSettingPppRefuseChapExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REFUSE_CHAP)
}
func isSettingPppRefuseMschapExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REFUSE_MSCHAP)
}
func isSettingPppRefuseMschapv2Exists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REFUSE_MSCHAPV2)
}
func isSettingPppNobsdcompExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_NOBSDCOMP)
}
func isSettingPppNodeflateExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_NODEFLATE)
}
func isSettingPppNoVjCompExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_NO_VJ_COMP)
}
func isSettingPppCrtsctsExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_CRTSCTS)
}
func isSettingPppBaudExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_BAUD)
}
func isSettingPppMruExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_MRU)
}
func isSettingPppMtuExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_MTU)
}
func isSettingPppLcpEchoFailureExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_LCP_ECHO_FAILURE)
}
func isSettingPppLcpEchoIntervalExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_LCP_ECHO_INTERVAL)
}

// Ensure section and key exists and not empty
func ensureSectionSettingPppExists(data connectionData, errs sectionErrors, relatedKey string) {
	if !isSettingSectionExists(data, NM_SETTING_PPP_SETTING_NAME) {
		rememberError(errs, relatedKey, NM_SETTING_PPP_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_MISSING_SECTION, NM_SETTING_PPP_SETTING_NAME))
	}
	sectionData, _ := data[NM_SETTING_PPP_SETTING_NAME]
	if len(sectionData) == 0 {
		rememberError(errs, relatedKey, NM_SETTING_PPP_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_EMPTY_SECTION, NM_SETTING_PPP_SETTING_NAME))
	}
}
func ensureSettingPppRequireMppeNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingPppRequireMppeExists(data) {
		rememberError(errs, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REQUIRE_MPPE, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingPppRequireMppe128NoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingPppRequireMppe128Exists(data) {
		rememberError(errs, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REQUIRE_MPPE_128, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingPppMppeStatefulNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingPppMppeStatefulExists(data) {
		rememberError(errs, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_MPPE_STATEFUL, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingPppNoauthNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingPppNoauthExists(data) {
		rememberError(errs, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_NOAUTH, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingPppRefuseEapNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingPppRefuseEapExists(data) {
		rememberError(errs, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REFUSE_EAP, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingPppRefusePapNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingPppRefusePapExists(data) {
		rememberError(errs, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REFUSE_PAP, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingPppRefuseChapNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingPppRefuseChapExists(data) {
		rememberError(errs, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REFUSE_CHAP, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingPppRefuseMschapNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingPppRefuseMschapExists(data) {
		rememberError(errs, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REFUSE_MSCHAP, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingPppRefuseMschapv2NoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingPppRefuseMschapv2Exists(data) {
		rememberError(errs, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REFUSE_MSCHAPV2, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingPppNobsdcompNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingPppNobsdcompExists(data) {
		rememberError(errs, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_NOBSDCOMP, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingPppNodeflateNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingPppNodeflateExists(data) {
		rememberError(errs, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_NODEFLATE, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingPppNoVjCompNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingPppNoVjCompExists(data) {
		rememberError(errs, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_NO_VJ_COMP, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingPppCrtsctsNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingPppCrtsctsExists(data) {
		rememberError(errs, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_CRTSCTS, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingPppBaudNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingPppBaudExists(data) {
		rememberError(errs, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_BAUD, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingPppMruNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingPppMruExists(data) {
		rememberError(errs, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_MRU, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingPppMtuNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingPppMtuExists(data) {
		rememberError(errs, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_MTU, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingPppLcpEchoFailureNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingPppLcpEchoFailureExists(data) {
		rememberError(errs, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_LCP_ECHO_FAILURE, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingPppLcpEchoIntervalNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingPppLcpEchoIntervalExists(data) {
		rememberError(errs, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_LCP_ECHO_INTERVAL, NM_KEY_ERROR_MISSING_VALUE)
	}
}

// Getter
func getSettingPppRequireMppe(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REQUIRE_MPPE)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingPppRequireMppe128(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REQUIRE_MPPE_128)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingPppMppeStateful(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_MPPE_STATEFUL)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingPppNoauth(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_NOAUTH)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingPppRefuseEap(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REFUSE_EAP)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingPppRefusePap(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REFUSE_PAP)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingPppRefuseChap(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REFUSE_CHAP)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingPppRefuseMschap(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REFUSE_MSCHAP)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingPppRefuseMschapv2(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REFUSE_MSCHAPV2)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingPppNobsdcomp(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_NOBSDCOMP)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingPppNodeflate(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_NODEFLATE)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingPppNoVjComp(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_NO_VJ_COMP)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingPppCrtscts(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_CRTSCTS)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingPppBaud(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_BAUD)
	value = interfaceToUint32(ivalue)
	return
}
func getSettingPppMru(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_MRU)
	value = interfaceToUint32(ivalue)
	return
}
func getSettingPppMtu(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_MTU)
	value = interfaceToUint32(ivalue)
	return
}
func getSettingPppLcpEchoFailure(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_LCP_ECHO_FAILURE)
	value = interfaceToUint32(ivalue)
	return
}
func getSettingPppLcpEchoInterval(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_LCP_ECHO_INTERVAL)
	value = interfaceToUint32(ivalue)
	return
}

// Setter
func setSettingPppRequireMppe(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REQUIRE_MPPE, value)
}
func setSettingPppRequireMppe128(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REQUIRE_MPPE_128, value)
}
func setSettingPppMppeStateful(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_MPPE_STATEFUL, value)
}
func setSettingPppNoauth(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_NOAUTH, value)
}
func setSettingPppRefuseEap(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REFUSE_EAP, value)
}
func setSettingPppRefusePap(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REFUSE_PAP, value)
}
func setSettingPppRefuseChap(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REFUSE_CHAP, value)
}
func setSettingPppRefuseMschap(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REFUSE_MSCHAP, value)
}
func setSettingPppRefuseMschapv2(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REFUSE_MSCHAPV2, value)
}
func setSettingPppNobsdcomp(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_NOBSDCOMP, value)
}
func setSettingPppNodeflate(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_NODEFLATE, value)
}
func setSettingPppNoVjComp(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_NO_VJ_COMP, value)
}
func setSettingPppCrtscts(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_CRTSCTS, value)
}
func setSettingPppBaud(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_BAUD, value)
}
func setSettingPppMru(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_MRU, value)
}
func setSettingPppMtu(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_MTU, value)
}
func setSettingPppLcpEchoFailure(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_LCP_ECHO_FAILURE, value)
}
func setSettingPppLcpEchoInterval(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_LCP_ECHO_INTERVAL, value)
}

// JSON Getter
func getSettingPppRequireMppeJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REQUIRE_MPPE, getSettingPppKeyType(NM_SETTING_PPP_REQUIRE_MPPE))
	return
}
func getSettingPppRequireMppe128JSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REQUIRE_MPPE_128, getSettingPppKeyType(NM_SETTING_PPP_REQUIRE_MPPE_128))
	return
}
func getSettingPppMppeStatefulJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_MPPE_STATEFUL, getSettingPppKeyType(NM_SETTING_PPP_MPPE_STATEFUL))
	return
}
func getSettingPppNoauthJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_NOAUTH, getSettingPppKeyType(NM_SETTING_PPP_NOAUTH))
	return
}
func getSettingPppRefuseEapJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REFUSE_EAP, getSettingPppKeyType(NM_SETTING_PPP_REFUSE_EAP))
	return
}
func getSettingPppRefusePapJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REFUSE_PAP, getSettingPppKeyType(NM_SETTING_PPP_REFUSE_PAP))
	return
}
func getSettingPppRefuseChapJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REFUSE_CHAP, getSettingPppKeyType(NM_SETTING_PPP_REFUSE_CHAP))
	return
}
func getSettingPppRefuseMschapJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REFUSE_MSCHAP, getSettingPppKeyType(NM_SETTING_PPP_REFUSE_MSCHAP))
	return
}
func getSettingPppRefuseMschapv2JSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REFUSE_MSCHAPV2, getSettingPppKeyType(NM_SETTING_PPP_REFUSE_MSCHAPV2))
	return
}
func getSettingPppNobsdcompJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_NOBSDCOMP, getSettingPppKeyType(NM_SETTING_PPP_NOBSDCOMP))
	return
}
func getSettingPppNodeflateJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_NODEFLATE, getSettingPppKeyType(NM_SETTING_PPP_NODEFLATE))
	return
}
func getSettingPppNoVjCompJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_NO_VJ_COMP, getSettingPppKeyType(NM_SETTING_PPP_NO_VJ_COMP))
	return
}
func getSettingPppCrtsctsJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_CRTSCTS, getSettingPppKeyType(NM_SETTING_PPP_CRTSCTS))
	return
}
func getSettingPppBaudJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_BAUD, getSettingPppKeyType(NM_SETTING_PPP_BAUD))
	return
}
func getSettingPppMruJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_MRU, getSettingPppKeyType(NM_SETTING_PPP_MRU))
	return
}
func getSettingPppMtuJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_MTU, getSettingPppKeyType(NM_SETTING_PPP_MTU))
	return
}
func getSettingPppLcpEchoFailureJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_LCP_ECHO_FAILURE, getSettingPppKeyType(NM_SETTING_PPP_LCP_ECHO_FAILURE))
	return
}
func getSettingPppLcpEchoIntervalJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_LCP_ECHO_INTERVAL, getSettingPppKeyType(NM_SETTING_PPP_LCP_ECHO_INTERVAL))
	return
}

// JSON Setter
func setSettingPppRequireMppeJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REQUIRE_MPPE, valueJSON, getSettingPppKeyType(NM_SETTING_PPP_REQUIRE_MPPE))
}
func setSettingPppRequireMppe128JSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REQUIRE_MPPE_128, valueJSON, getSettingPppKeyType(NM_SETTING_PPP_REQUIRE_MPPE_128))
}
func setSettingPppMppeStatefulJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_MPPE_STATEFUL, valueJSON, getSettingPppKeyType(NM_SETTING_PPP_MPPE_STATEFUL))
}
func setSettingPppNoauthJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_NOAUTH, valueJSON, getSettingPppKeyType(NM_SETTING_PPP_NOAUTH))
}
func setSettingPppRefuseEapJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REFUSE_EAP, valueJSON, getSettingPppKeyType(NM_SETTING_PPP_REFUSE_EAP))
}
func setSettingPppRefusePapJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REFUSE_PAP, valueJSON, getSettingPppKeyType(NM_SETTING_PPP_REFUSE_PAP))
}
func setSettingPppRefuseChapJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REFUSE_CHAP, valueJSON, getSettingPppKeyType(NM_SETTING_PPP_REFUSE_CHAP))
}
func setSettingPppRefuseMschapJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REFUSE_MSCHAP, valueJSON, getSettingPppKeyType(NM_SETTING_PPP_REFUSE_MSCHAP))
}
func setSettingPppRefuseMschapv2JSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REFUSE_MSCHAPV2, valueJSON, getSettingPppKeyType(NM_SETTING_PPP_REFUSE_MSCHAPV2))
}
func setSettingPppNobsdcompJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_NOBSDCOMP, valueJSON, getSettingPppKeyType(NM_SETTING_PPP_NOBSDCOMP))
}
func setSettingPppNodeflateJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_NODEFLATE, valueJSON, getSettingPppKeyType(NM_SETTING_PPP_NODEFLATE))
}
func setSettingPppNoVjCompJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_NO_VJ_COMP, valueJSON, getSettingPppKeyType(NM_SETTING_PPP_NO_VJ_COMP))
}
func setSettingPppCrtsctsJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_CRTSCTS, valueJSON, getSettingPppKeyType(NM_SETTING_PPP_CRTSCTS))
}
func setSettingPppBaudJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_BAUD, valueJSON, getSettingPppKeyType(NM_SETTING_PPP_BAUD))
}
func setSettingPppMruJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_MRU, valueJSON, getSettingPppKeyType(NM_SETTING_PPP_MRU))
}
func setSettingPppMtuJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_MTU, valueJSON, getSettingPppKeyType(NM_SETTING_PPP_MTU))
}
func setSettingPppLcpEchoFailureJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_LCP_ECHO_FAILURE, valueJSON, getSettingPppKeyType(NM_SETTING_PPP_LCP_ECHO_FAILURE))
}
func setSettingPppLcpEchoIntervalJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_LCP_ECHO_INTERVAL, valueJSON, getSettingPppKeyType(NM_SETTING_PPP_LCP_ECHO_INTERVAL))
}

// Logic JSON Setter
func logicSetSettingPppRequireMppeJSON(data connectionData, valueJSON string) (err error) {
	err = setSettingPppRequireMppeJSON(data, valueJSON)
	if err != nil {
		return
	}
	if isSettingPppRequireMppeExists(data) {
		value := getSettingPppRequireMppe(data)
		err = logicSetSettingPppRequireMppe(data, value)
	}
	return
}

// Remover
func removeSettingPppRequireMppe(data connectionData) {
	removeSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REQUIRE_MPPE)
}
func removeSettingPppRequireMppe128(data connectionData) {
	removeSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REQUIRE_MPPE_128)
}
func removeSettingPppMppeStateful(data connectionData) {
	removeSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_MPPE_STATEFUL)
}
func removeSettingPppNoauth(data connectionData) {
	removeSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_NOAUTH)
}
func removeSettingPppRefuseEap(data connectionData) {
	removeSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REFUSE_EAP)
}
func removeSettingPppRefusePap(data connectionData) {
	removeSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REFUSE_PAP)
}
func removeSettingPppRefuseChap(data connectionData) {
	removeSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REFUSE_CHAP)
}
func removeSettingPppRefuseMschap(data connectionData) {
	removeSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REFUSE_MSCHAP)
}
func removeSettingPppRefuseMschapv2(data connectionData) {
	removeSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_REFUSE_MSCHAPV2)
}
func removeSettingPppNobsdcomp(data connectionData) {
	removeSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_NOBSDCOMP)
}
func removeSettingPppNodeflate(data connectionData) {
	removeSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_NODEFLATE)
}
func removeSettingPppNoVjComp(data connectionData) {
	removeSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_NO_VJ_COMP)
}
func removeSettingPppCrtscts(data connectionData) {
	removeSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_CRTSCTS)
}
func removeSettingPppBaud(data connectionData) {
	removeSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_BAUD)
}
func removeSettingPppMru(data connectionData) {
	removeSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_MRU)
}
func removeSettingPppMtu(data connectionData) {
	removeSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_MTU)
}
func removeSettingPppLcpEchoFailure(data connectionData) {
	removeSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_LCP_ECHO_FAILURE)
}
func removeSettingPppLcpEchoInterval(data connectionData) {
	removeSettingKey(data, NM_SETTING_PPP_SETTING_NAME, NM_SETTING_PPP_LCP_ECHO_INTERVAL)
}

// Origin file name ../nm_setting_pppoe_gen.go
// Get key type
func getSettingPppoeKeyType(key string) (t ktype) {
	switch key {
	default:
		t = ktypeUnknown
	case NM_SETTING_PPPOE_USERNAME:
		t = ktypeString
	case NM_SETTING_PPPOE_SERVICE:
		t = ktypeString
	case NM_SETTING_PPPOE_PASSWORD:
		t = ktypeString
	case NM_SETTING_PPPOE_PASSWORD_FLAGS:
		t = ktypeUint32
	}
	return
}

// Check is key in current setting section
func isKeyInSettingPppoe(key string) bool {
	switch key {
	case NM_SETTING_PPPOE_USERNAME:
		return true
	case NM_SETTING_PPPOE_SERVICE:
		return true
	case NM_SETTING_PPPOE_PASSWORD:
		return true
	case NM_SETTING_PPPOE_PASSWORD_FLAGS:
		return true
	}
	return false
}

// Get key's default value
func getSettingPppoeDefaultValue(key string) (value interface{}) {
	switch key {
	default:
		logger.Error("invalid key:", key)
	case NM_SETTING_PPPOE_USERNAME:
		value = ""
	case NM_SETTING_PPPOE_SERVICE:
		value = ""
	case NM_SETTING_PPPOE_PASSWORD:
		value = ""
	case NM_SETTING_PPPOE_PASSWORD_FLAGS:
		value = uint32(0)
	}
	return
}

// Get JSON value generally
func generalGetSettingPppoeKeyJSON(data connectionData, key string) (value string) {
	switch key {
	default:
		logger.Error("generalGetSettingPppoeKeyJSON: invalide key", key)
	case NM_SETTING_PPPOE_USERNAME:
		value = getSettingPppoeUsernameJSON(data)
	case NM_SETTING_PPPOE_SERVICE:
		value = getSettingPppoeServiceJSON(data)
	case NM_SETTING_PPPOE_PASSWORD:
		value = getSettingPppoePasswordJSON(data)
	case NM_SETTING_PPPOE_PASSWORD_FLAGS:
		value = getSettingPppoePasswordFlagsJSON(data)
	}
	return
}

// Set JSON value generally
func generalSetSettingPppoeKeyJSON(data connectionData, key, valueJSON string) (err error) {
	switch key {
	default:
		logger.Error("generalSetSettingPppoeKeyJSON: invalide key", key)
	case NM_SETTING_PPPOE_USERNAME:
		err = setSettingPppoeUsernameJSON(data, valueJSON)
	case NM_SETTING_PPPOE_SERVICE:
		err = setSettingPppoeServiceJSON(data, valueJSON)
	case NM_SETTING_PPPOE_PASSWORD:
		err = setSettingPppoePasswordJSON(data, valueJSON)
	case NM_SETTING_PPPOE_PASSWORD_FLAGS:
		err = setSettingPppoePasswordFlagsJSON(data, valueJSON)
	}
	return
}

// Check if key exists
func isSettingPppoeUsernameExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_PPPOE_SETTING_NAME, NM_SETTING_PPPOE_USERNAME)
}
func isSettingPppoeServiceExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_PPPOE_SETTING_NAME, NM_SETTING_PPPOE_SERVICE)
}
func isSettingPppoePasswordExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_PPPOE_SETTING_NAME, NM_SETTING_PPPOE_PASSWORD)
}
func isSettingPppoePasswordFlagsExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_PPPOE_SETTING_NAME, NM_SETTING_PPPOE_PASSWORD_FLAGS)
}

// Ensure section and key exists and not empty
func ensureSectionSettingPppoeExists(data connectionData, errs sectionErrors, relatedKey string) {
	if !isSettingSectionExists(data, NM_SETTING_PPPOE_SETTING_NAME) {
		rememberError(errs, relatedKey, NM_SETTING_PPPOE_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_MISSING_SECTION, NM_SETTING_PPPOE_SETTING_NAME))
	}
	sectionData, _ := data[NM_SETTING_PPPOE_SETTING_NAME]
	if len(sectionData) == 0 {
		rememberError(errs, relatedKey, NM_SETTING_PPPOE_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_EMPTY_SECTION, NM_SETTING_PPPOE_SETTING_NAME))
	}
}
func ensureSettingPppoeUsernameNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingPppoeUsernameExists(data) {
		rememberError(errs, NM_SETTING_PPPOE_SETTING_NAME, NM_SETTING_PPPOE_USERNAME, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingPppoeUsername(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_PPPOE_SETTING_NAME, NM_SETTING_PPPOE_USERNAME, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingPppoeServiceNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingPppoeServiceExists(data) {
		rememberError(errs, NM_SETTING_PPPOE_SETTING_NAME, NM_SETTING_PPPOE_SERVICE, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingPppoeService(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_PPPOE_SETTING_NAME, NM_SETTING_PPPOE_SERVICE, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingPppoePasswordNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingPppoePasswordExists(data) {
		rememberError(errs, NM_SETTING_PPPOE_SETTING_NAME, NM_SETTING_PPPOE_PASSWORD, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingPppoePassword(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_PPPOE_SETTING_NAME, NM_SETTING_PPPOE_PASSWORD, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingPppoePasswordFlagsNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingPppoePasswordFlagsExists(data) {
		rememberError(errs, NM_SETTING_PPPOE_SETTING_NAME, NM_SETTING_PPPOE_PASSWORD_FLAGS, NM_KEY_ERROR_MISSING_VALUE)
	}
}

// Getter
func getSettingPppoeUsername(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_PPPOE_SETTING_NAME, NM_SETTING_PPPOE_USERNAME)
	value = interfaceToString(ivalue)
	return
}
func getSettingPppoeService(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_PPPOE_SETTING_NAME, NM_SETTING_PPPOE_SERVICE)
	value = interfaceToString(ivalue)
	return
}
func getSettingPppoePassword(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_PPPOE_SETTING_NAME, NM_SETTING_PPPOE_PASSWORD)
	value = interfaceToString(ivalue)
	return
}
func getSettingPppoePasswordFlags(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_PPPOE_SETTING_NAME, NM_SETTING_PPPOE_PASSWORD_FLAGS)
	value = interfaceToUint32(ivalue)
	return
}

// Setter
func setSettingPppoeUsername(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_PPPOE_SETTING_NAME, NM_SETTING_PPPOE_USERNAME, value)
}
func setSettingPppoeService(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_PPPOE_SETTING_NAME, NM_SETTING_PPPOE_SERVICE, value)
}
func setSettingPppoePassword(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_PPPOE_SETTING_NAME, NM_SETTING_PPPOE_PASSWORD, value)
}
func setSettingPppoePasswordFlags(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_PPPOE_SETTING_NAME, NM_SETTING_PPPOE_PASSWORD_FLAGS, value)
}

// JSON Getter
func getSettingPppoeUsernameJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_PPPOE_SETTING_NAME, NM_SETTING_PPPOE_USERNAME, getSettingPppoeKeyType(NM_SETTING_PPPOE_USERNAME))
	return
}
func getSettingPppoeServiceJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_PPPOE_SETTING_NAME, NM_SETTING_PPPOE_SERVICE, getSettingPppoeKeyType(NM_SETTING_PPPOE_SERVICE))
	return
}
func getSettingPppoePasswordJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_PPPOE_SETTING_NAME, NM_SETTING_PPPOE_PASSWORD, getSettingPppoeKeyType(NM_SETTING_PPPOE_PASSWORD))
	return
}
func getSettingPppoePasswordFlagsJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_PPPOE_SETTING_NAME, NM_SETTING_PPPOE_PASSWORD_FLAGS, getSettingPppoeKeyType(NM_SETTING_PPPOE_PASSWORD_FLAGS))
	return
}

// JSON Setter
func setSettingPppoeUsernameJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_PPPOE_SETTING_NAME, NM_SETTING_PPPOE_USERNAME, valueJSON, getSettingPppoeKeyType(NM_SETTING_PPPOE_USERNAME))
}
func setSettingPppoeServiceJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_PPPOE_SETTING_NAME, NM_SETTING_PPPOE_SERVICE, valueJSON, getSettingPppoeKeyType(NM_SETTING_PPPOE_SERVICE))
}
func setSettingPppoePasswordJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_PPPOE_SETTING_NAME, NM_SETTING_PPPOE_PASSWORD, valueJSON, getSettingPppoeKeyType(NM_SETTING_PPPOE_PASSWORD))
}
func setSettingPppoePasswordFlagsJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_PPPOE_SETTING_NAME, NM_SETTING_PPPOE_PASSWORD_FLAGS, valueJSON, getSettingPppoeKeyType(NM_SETTING_PPPOE_PASSWORD_FLAGS))
}

// Logic JSON Setter

// Remover
func removeSettingPppoeUsername(data connectionData) {
	removeSettingKey(data, NM_SETTING_PPPOE_SETTING_NAME, NM_SETTING_PPPOE_USERNAME)
}
func removeSettingPppoeService(data connectionData) {
	removeSettingKey(data, NM_SETTING_PPPOE_SETTING_NAME, NM_SETTING_PPPOE_SERVICE)
}
func removeSettingPppoePassword(data connectionData) {
	removeSettingKey(data, NM_SETTING_PPPOE_SETTING_NAME, NM_SETTING_PPPOE_PASSWORD)
}
func removeSettingPppoePasswordFlags(data connectionData) {
	removeSettingKey(data, NM_SETTING_PPPOE_SETTING_NAME, NM_SETTING_PPPOE_PASSWORD_FLAGS)
}

// Origin file name ../nm_setting_serial_gen.go
// Get key type
func getSettingSerialKeyType(key string) (t ktype) {
	switch key {
	default:
		t = ktypeUnknown
	case NM_SETTING_SERIAL_BAUD:
		t = ktypeUint32
	case NM_SETTING_SERIAL_BITS:
		t = ktypeUint32
	case NM_SETTING_SERIAL_PARITY:
		t = ktypeByte
	case NM_SETTING_SERIAL_STOPBITS:
		t = ktypeUint32
	case NM_SETTING_SERIAL_SEND_DELAY:
		t = ktypeUint64
	}
	return
}

// Check is key in current setting section
func isKeyInSettingSerial(key string) bool {
	switch key {
	case NM_SETTING_SERIAL_BAUD:
		return true
	case NM_SETTING_SERIAL_BITS:
		return true
	case NM_SETTING_SERIAL_PARITY:
		return true
	case NM_SETTING_SERIAL_STOPBITS:
		return true
	case NM_SETTING_SERIAL_SEND_DELAY:
		return true
	}
	return false
}

// Get key's default value
func getSettingSerialDefaultValue(key string) (value interface{}) {
	switch key {
	default:
		logger.Error("invalid key:", key)
	case NM_SETTING_SERIAL_BAUD:
		value = 57600
	case NM_SETTING_SERIAL_BITS:
		value = 8
	case NM_SETTING_SERIAL_PARITY:
		value = 110
	case NM_SETTING_SERIAL_STOPBITS:
		value = 1
	case NM_SETTING_SERIAL_SEND_DELAY:
		value = uint64(0)
	}
	return
}

// Get JSON value generally
func generalGetSettingSerialKeyJSON(data connectionData, key string) (value string) {
	switch key {
	default:
		logger.Error("generalGetSettingSerialKeyJSON: invalide key", key)
	case NM_SETTING_SERIAL_BAUD:
		value = getSettingSerialBaudJSON(data)
	case NM_SETTING_SERIAL_BITS:
		value = getSettingSerialBitsJSON(data)
	case NM_SETTING_SERIAL_PARITY:
		value = getSettingSerialParityJSON(data)
	case NM_SETTING_SERIAL_STOPBITS:
		value = getSettingSerialStopbitsJSON(data)
	case NM_SETTING_SERIAL_SEND_DELAY:
		value = getSettingSerialSendDelayJSON(data)
	}
	return
}

// Set JSON value generally
func generalSetSettingSerialKeyJSON(data connectionData, key, valueJSON string) (err error) {
	switch key {
	default:
		logger.Error("generalSetSettingSerialKeyJSON: invalide key", key)
	case NM_SETTING_SERIAL_BAUD:
		err = setSettingSerialBaudJSON(data, valueJSON)
	case NM_SETTING_SERIAL_BITS:
		err = setSettingSerialBitsJSON(data, valueJSON)
	case NM_SETTING_SERIAL_PARITY:
		err = setSettingSerialParityJSON(data, valueJSON)
	case NM_SETTING_SERIAL_STOPBITS:
		err = setSettingSerialStopbitsJSON(data, valueJSON)
	case NM_SETTING_SERIAL_SEND_DELAY:
		err = setSettingSerialSendDelayJSON(data, valueJSON)
	}
	return
}

// Check if key exists
func isSettingSerialBaudExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_SERIAL_SETTING_NAME, NM_SETTING_SERIAL_BAUD)
}
func isSettingSerialBitsExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_SERIAL_SETTING_NAME, NM_SETTING_SERIAL_BITS)
}
func isSettingSerialParityExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_SERIAL_SETTING_NAME, NM_SETTING_SERIAL_PARITY)
}
func isSettingSerialStopbitsExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_SERIAL_SETTING_NAME, NM_SETTING_SERIAL_STOPBITS)
}
func isSettingSerialSendDelayExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_SERIAL_SETTING_NAME, NM_SETTING_SERIAL_SEND_DELAY)
}

// Ensure section and key exists and not empty
func ensureSectionSettingSerialExists(data connectionData, errs sectionErrors, relatedKey string) {
	if !isSettingSectionExists(data, NM_SETTING_SERIAL_SETTING_NAME) {
		rememberError(errs, relatedKey, NM_SETTING_SERIAL_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_MISSING_SECTION, NM_SETTING_SERIAL_SETTING_NAME))
	}
	sectionData, _ := data[NM_SETTING_SERIAL_SETTING_NAME]
	if len(sectionData) == 0 {
		rememberError(errs, relatedKey, NM_SETTING_SERIAL_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_EMPTY_SECTION, NM_SETTING_SERIAL_SETTING_NAME))
	}
}
func ensureSettingSerialBaudNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingSerialBaudExists(data) {
		rememberError(errs, NM_SETTING_SERIAL_SETTING_NAME, NM_SETTING_SERIAL_BAUD, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingSerialBitsNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingSerialBitsExists(data) {
		rememberError(errs, NM_SETTING_SERIAL_SETTING_NAME, NM_SETTING_SERIAL_BITS, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingSerialParityNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingSerialParityExists(data) {
		rememberError(errs, NM_SETTING_SERIAL_SETTING_NAME, NM_SETTING_SERIAL_PARITY, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingSerialStopbitsNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingSerialStopbitsExists(data) {
		rememberError(errs, NM_SETTING_SERIAL_SETTING_NAME, NM_SETTING_SERIAL_STOPBITS, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingSerialSendDelayNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingSerialSendDelayExists(data) {
		rememberError(errs, NM_SETTING_SERIAL_SETTING_NAME, NM_SETTING_SERIAL_SEND_DELAY, NM_KEY_ERROR_MISSING_VALUE)
	}
}

// Getter
func getSettingSerialBaud(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_SERIAL_SETTING_NAME, NM_SETTING_SERIAL_BAUD)
	value = interfaceToUint32(ivalue)
	return
}
func getSettingSerialBits(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_SERIAL_SETTING_NAME, NM_SETTING_SERIAL_BITS)
	value = interfaceToUint32(ivalue)
	return
}
func getSettingSerialParity(data connectionData) (value byte) {
	ivalue := getSettingKey(data, NM_SETTING_SERIAL_SETTING_NAME, NM_SETTING_SERIAL_PARITY)
	value = interfaceToByte(ivalue)
	return
}
func getSettingSerialStopbits(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_SERIAL_SETTING_NAME, NM_SETTING_SERIAL_STOPBITS)
	value = interfaceToUint32(ivalue)
	return
}
func getSettingSerialSendDelay(data connectionData) (value uint64) {
	ivalue := getSettingKey(data, NM_SETTING_SERIAL_SETTING_NAME, NM_SETTING_SERIAL_SEND_DELAY)
	value = interfaceToUint64(ivalue)
	return
}

// Setter
func setSettingSerialBaud(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_SERIAL_SETTING_NAME, NM_SETTING_SERIAL_BAUD, value)
}
func setSettingSerialBits(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_SERIAL_SETTING_NAME, NM_SETTING_SERIAL_BITS, value)
}
func setSettingSerialParity(data connectionData, value byte) {
	setSettingKey(data, NM_SETTING_SERIAL_SETTING_NAME, NM_SETTING_SERIAL_PARITY, value)
}
func setSettingSerialStopbits(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_SERIAL_SETTING_NAME, NM_SETTING_SERIAL_STOPBITS, value)
}
func setSettingSerialSendDelay(data connectionData, value uint64) {
	setSettingKey(data, NM_SETTING_SERIAL_SETTING_NAME, NM_SETTING_SERIAL_SEND_DELAY, value)
}

// JSON Getter
func getSettingSerialBaudJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_SERIAL_SETTING_NAME, NM_SETTING_SERIAL_BAUD, getSettingSerialKeyType(NM_SETTING_SERIAL_BAUD))
	return
}
func getSettingSerialBitsJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_SERIAL_SETTING_NAME, NM_SETTING_SERIAL_BITS, getSettingSerialKeyType(NM_SETTING_SERIAL_BITS))
	return
}
func getSettingSerialParityJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_SERIAL_SETTING_NAME, NM_SETTING_SERIAL_PARITY, getSettingSerialKeyType(NM_SETTING_SERIAL_PARITY))
	return
}
func getSettingSerialStopbitsJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_SERIAL_SETTING_NAME, NM_SETTING_SERIAL_STOPBITS, getSettingSerialKeyType(NM_SETTING_SERIAL_STOPBITS))
	return
}
func getSettingSerialSendDelayJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_SERIAL_SETTING_NAME, NM_SETTING_SERIAL_SEND_DELAY, getSettingSerialKeyType(NM_SETTING_SERIAL_SEND_DELAY))
	return
}

// JSON Setter
func setSettingSerialBaudJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_SERIAL_SETTING_NAME, NM_SETTING_SERIAL_BAUD, valueJSON, getSettingSerialKeyType(NM_SETTING_SERIAL_BAUD))
}
func setSettingSerialBitsJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_SERIAL_SETTING_NAME, NM_SETTING_SERIAL_BITS, valueJSON, getSettingSerialKeyType(NM_SETTING_SERIAL_BITS))
}
func setSettingSerialParityJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_SERIAL_SETTING_NAME, NM_SETTING_SERIAL_PARITY, valueJSON, getSettingSerialKeyType(NM_SETTING_SERIAL_PARITY))
}
func setSettingSerialStopbitsJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_SERIAL_SETTING_NAME, NM_SETTING_SERIAL_STOPBITS, valueJSON, getSettingSerialKeyType(NM_SETTING_SERIAL_STOPBITS))
}
func setSettingSerialSendDelayJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_SERIAL_SETTING_NAME, NM_SETTING_SERIAL_SEND_DELAY, valueJSON, getSettingSerialKeyType(NM_SETTING_SERIAL_SEND_DELAY))
}

// Logic JSON Setter

// Remover
func removeSettingSerialBaud(data connectionData) {
	removeSettingKey(data, NM_SETTING_SERIAL_SETTING_NAME, NM_SETTING_SERIAL_BAUD)
}
func removeSettingSerialBits(data connectionData) {
	removeSettingKey(data, NM_SETTING_SERIAL_SETTING_NAME, NM_SETTING_SERIAL_BITS)
}
func removeSettingSerialParity(data connectionData) {
	removeSettingKey(data, NM_SETTING_SERIAL_SETTING_NAME, NM_SETTING_SERIAL_PARITY)
}
func removeSettingSerialStopbits(data connectionData) {
	removeSettingKey(data, NM_SETTING_SERIAL_SETTING_NAME, NM_SETTING_SERIAL_STOPBITS)
}
func removeSettingSerialSendDelay(data connectionData) {
	removeSettingKey(data, NM_SETTING_SERIAL_SETTING_NAME, NM_SETTING_SERIAL_SEND_DELAY)
}

// Origin file name ../nm_setting_vpn_gen.go
// Get key type
func getSettingVpnKeyType(key string) (t ktype) {
	switch key {
	default:
		t = ktypeUnknown
	case NM_SETTING_VPN_SERVICE_TYPE:
		t = ktypeString
	case NM_SETTING_VPN_USER_NAME:
		t = ktypeString
	case NM_SETTING_VPN_DATA:
		t = ktypeDictStringString
	case NM_SETTING_VPN_SECRETS:
		t = ktypeDictStringString
	}
	return
}

// Check is key in current setting section
func isKeyInSettingVpn(key string) bool {
	switch key {
	case NM_SETTING_VPN_SERVICE_TYPE:
		return true
	case NM_SETTING_VPN_USER_NAME:
		return true
	case NM_SETTING_VPN_DATA:
		return true
	case NM_SETTING_VPN_SECRETS:
		return true
	}
	return false
}

// Get key's default value
func getSettingVpnDefaultValue(key string) (value interface{}) {
	switch key {
	default:
		logger.Error("invalid key:", key)
	case NM_SETTING_VPN_SERVICE_TYPE:
		value = ""
	case NM_SETTING_VPN_USER_NAME:
		value = ""
	case NM_SETTING_VPN_DATA:
		value = make(map[string]string)
	case NM_SETTING_VPN_SECRETS:
		value = make(map[string]string)
	}
	return
}

// Get JSON value generally
func generalGetSettingVpnKeyJSON(data connectionData, key string) (value string) {
	switch key {
	default:
		logger.Error("generalGetSettingVpnKeyJSON: invalide key", key)
	case NM_SETTING_VPN_SERVICE_TYPE:
		value = getSettingVpnServiceTypeJSON(data)
	case NM_SETTING_VPN_USER_NAME:
		value = getSettingVpnUserNameJSON(data)
	case NM_SETTING_VPN_DATA:
		value = getSettingVpnDataJSON(data)
	case NM_SETTING_VPN_SECRETS:
		value = getSettingVpnSecretsJSON(data)
	}
	return
}

// Set JSON value generally
func generalSetSettingVpnKeyJSON(data connectionData, key, valueJSON string) (err error) {
	switch key {
	default:
		logger.Error("generalSetSettingVpnKeyJSON: invalide key", key)
	case NM_SETTING_VPN_SERVICE_TYPE:
		err = setSettingVpnServiceTypeJSON(data, valueJSON)
	case NM_SETTING_VPN_USER_NAME:
		err = setSettingVpnUserNameJSON(data, valueJSON)
	case NM_SETTING_VPN_DATA:
		err = setSettingVpnDataJSON(data, valueJSON)
	case NM_SETTING_VPN_SECRETS:
		err = setSettingVpnSecretsJSON(data, valueJSON)
	}
	return
}

// Check if key exists
func isSettingVpnServiceTypeExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_VPN_SETTING_NAME, NM_SETTING_VPN_SERVICE_TYPE)
}
func isSettingVpnUserNameExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_VPN_SETTING_NAME, NM_SETTING_VPN_USER_NAME)
}
func isSettingVpnDataExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_VPN_SETTING_NAME, NM_SETTING_VPN_DATA)
}
func isSettingVpnSecretsExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_VPN_SETTING_NAME, NM_SETTING_VPN_SECRETS)
}

// Ensure section and key exists and not empty
func ensureSectionSettingVpnExists(data connectionData, errs sectionErrors, relatedKey string) {
	if !isSettingSectionExists(data, NM_SETTING_VPN_SETTING_NAME) {
		rememberError(errs, relatedKey, NM_SETTING_VPN_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_MISSING_SECTION, NM_SETTING_VPN_SETTING_NAME))
	}
	sectionData, _ := data[NM_SETTING_VPN_SETTING_NAME]
	if len(sectionData) == 0 {
		rememberError(errs, relatedKey, NM_SETTING_VPN_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_EMPTY_SECTION, NM_SETTING_VPN_SETTING_NAME))
	}
}
func ensureSettingVpnServiceTypeNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnServiceTypeExists(data) {
		rememberError(errs, NM_SETTING_VPN_SETTING_NAME, NM_SETTING_VPN_SERVICE_TYPE, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnServiceType(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_VPN_SETTING_NAME, NM_SETTING_VPN_SERVICE_TYPE, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnUserNameNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnUserNameExists(data) {
		rememberError(errs, NM_SETTING_VPN_SETTING_NAME, NM_SETTING_VPN_USER_NAME, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnUserName(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_VPN_SETTING_NAME, NM_SETTING_VPN_USER_NAME, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnDataNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnDataExists(data) {
		rememberError(errs, NM_SETTING_VPN_SETTING_NAME, NM_SETTING_VPN_DATA, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnData(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_VPN_SETTING_NAME, NM_SETTING_VPN_DATA, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnSecretsNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnSecretsExists(data) {
		rememberError(errs, NM_SETTING_VPN_SETTING_NAME, NM_SETTING_VPN_SECRETS, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnSecrets(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_VPN_SETTING_NAME, NM_SETTING_VPN_SECRETS, NM_KEY_ERROR_EMPTY_VALUE)
	}
}

// Getter
func getSettingVpnServiceType(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_VPN_SETTING_NAME, NM_SETTING_VPN_SERVICE_TYPE)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnUserName(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_VPN_SETTING_NAME, NM_SETTING_VPN_USER_NAME)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnData(data connectionData) (value map[string]string) {
	ivalue := getSettingKey(data, NM_SETTING_VPN_SETTING_NAME, NM_SETTING_VPN_DATA)
	value = interfaceToDictStringString(ivalue)
	return
}
func getSettingVpnSecrets(data connectionData) (value map[string]string) {
	ivalue := getSettingKey(data, NM_SETTING_VPN_SETTING_NAME, NM_SETTING_VPN_SECRETS)
	value = interfaceToDictStringString(ivalue)
	return
}

// Setter
func setSettingVpnServiceType(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_VPN_SETTING_NAME, NM_SETTING_VPN_SERVICE_TYPE, value)
}
func setSettingVpnUserName(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_VPN_SETTING_NAME, NM_SETTING_VPN_USER_NAME, value)
}
func setSettingVpnData(data connectionData, value map[string]string) {
	setSettingKey(data, NM_SETTING_VPN_SETTING_NAME, NM_SETTING_VPN_DATA, value)
}
func setSettingVpnSecrets(data connectionData, value map[string]string) {
	setSettingKey(data, NM_SETTING_VPN_SETTING_NAME, NM_SETTING_VPN_SECRETS, value)
}

// JSON Getter
func getSettingVpnServiceTypeJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_VPN_SETTING_NAME, NM_SETTING_VPN_SERVICE_TYPE, getSettingVpnKeyType(NM_SETTING_VPN_SERVICE_TYPE))
	return
}
func getSettingVpnUserNameJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_VPN_SETTING_NAME, NM_SETTING_VPN_USER_NAME, getSettingVpnKeyType(NM_SETTING_VPN_USER_NAME))
	return
}
func getSettingVpnDataJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_VPN_SETTING_NAME, NM_SETTING_VPN_DATA, getSettingVpnKeyType(NM_SETTING_VPN_DATA))
	return
}
func getSettingVpnSecretsJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_VPN_SETTING_NAME, NM_SETTING_VPN_SECRETS, getSettingVpnKeyType(NM_SETTING_VPN_SECRETS))
	return
}

// JSON Setter
func setSettingVpnServiceTypeJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_VPN_SETTING_NAME, NM_SETTING_VPN_SERVICE_TYPE, valueJSON, getSettingVpnKeyType(NM_SETTING_VPN_SERVICE_TYPE))
}
func setSettingVpnUserNameJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_VPN_SETTING_NAME, NM_SETTING_VPN_USER_NAME, valueJSON, getSettingVpnKeyType(NM_SETTING_VPN_USER_NAME))
}
func setSettingVpnDataJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_VPN_SETTING_NAME, NM_SETTING_VPN_DATA, valueJSON, getSettingVpnKeyType(NM_SETTING_VPN_DATA))
}
func setSettingVpnSecretsJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_VPN_SETTING_NAME, NM_SETTING_VPN_SECRETS, valueJSON, getSettingVpnKeyType(NM_SETTING_VPN_SECRETS))
}

// Logic JSON Setter

// Remover
func removeSettingVpnServiceType(data connectionData) {
	removeSettingKey(data, NM_SETTING_VPN_SETTING_NAME, NM_SETTING_VPN_SERVICE_TYPE)
}
func removeSettingVpnUserName(data connectionData) {
	removeSettingKey(data, NM_SETTING_VPN_SETTING_NAME, NM_SETTING_VPN_USER_NAME)
}
func removeSettingVpnData(data connectionData) {
	removeSettingKey(data, NM_SETTING_VPN_SETTING_NAME, NM_SETTING_VPN_DATA)
}
func removeSettingVpnSecrets(data connectionData) {
	removeSettingKey(data, NM_SETTING_VPN_SETTING_NAME, NM_SETTING_VPN_SECRETS)
}

// Origin file name ../nm_setting_vpn_l2tp_gen.go
// Get key type
func getSettingVpnL2tpKeyType(key string) (t ktype) {
	switch key {
	default:
		t = ktypeUnknown
	case NM_SETTING_VPN_L2TP_KEY_GATEWAY:
		t = ktypeString
	case NM_SETTING_VPN_L2TP_KEY_USER:
		t = ktypeString
	case NM_SETTING_VPN_L2TP_KEY_PASSWORD_FLAGS:
		t = ktypeUint32
	case NM_SETTING_VPN_L2TP_KEY_PASSWORD:
		t = ktypeString
	case NM_SETTING_VPN_L2TP_KEY_DOMAIN:
		t = ktypeString
	}
	return
}

// Check is key in current setting section
func isKeyInSettingVpnL2tp(key string) bool {
	switch key {
	case NM_SETTING_VPN_L2TP_KEY_GATEWAY:
		return true
	case NM_SETTING_VPN_L2TP_KEY_USER:
		return true
	case NM_SETTING_VPN_L2TP_KEY_PASSWORD_FLAGS:
		return true
	case NM_SETTING_VPN_L2TP_KEY_PASSWORD:
		return true
	case NM_SETTING_VPN_L2TP_KEY_DOMAIN:
		return true
	}
	return false
}

// Get key's default value
func getSettingVpnL2tpDefaultValue(key string) (value interface{}) {
	switch key {
	default:
		logger.Error("invalid key:", key)
	case NM_SETTING_VPN_L2TP_KEY_GATEWAY:
		value = ""
	case NM_SETTING_VPN_L2TP_KEY_USER:
		value = ""
	case NM_SETTING_VPN_L2TP_KEY_PASSWORD_FLAGS:
		value = uint32(0)
	case NM_SETTING_VPN_L2TP_KEY_PASSWORD:
		value = ""
	case NM_SETTING_VPN_L2TP_KEY_DOMAIN:
		value = ""
	}
	return
}

// Get JSON value generally
func generalGetSettingVpnL2tpKeyJSON(data connectionData, key string) (value string) {
	switch key {
	default:
		logger.Error("generalGetSettingVpnL2tpKeyJSON: invalide key", key)
	case NM_SETTING_VPN_L2TP_KEY_GATEWAY:
		value = getSettingVpnL2tpKeyGatewayJSON(data)
	case NM_SETTING_VPN_L2TP_KEY_USER:
		value = getSettingVpnL2tpKeyUserJSON(data)
	case NM_SETTING_VPN_L2TP_KEY_PASSWORD_FLAGS:
		value = getSettingVpnL2tpKeyPasswordFlagsJSON(data)
	case NM_SETTING_VPN_L2TP_KEY_PASSWORD:
		value = getSettingVpnL2tpKeyPasswordJSON(data)
	case NM_SETTING_VPN_L2TP_KEY_DOMAIN:
		value = getSettingVpnL2tpKeyDomainJSON(data)
	}
	return
}

// Set JSON value generally
func generalSetSettingVpnL2tpKeyJSON(data connectionData, key, valueJSON string) (err error) {
	switch key {
	default:
		logger.Error("generalSetSettingVpnL2tpKeyJSON: invalide key", key)
	case NM_SETTING_VPN_L2TP_KEY_GATEWAY:
		err = setSettingVpnL2tpKeyGatewayJSON(data, valueJSON)
	case NM_SETTING_VPN_L2TP_KEY_USER:
		err = setSettingVpnL2tpKeyUserJSON(data, valueJSON)
	case NM_SETTING_VPN_L2TP_KEY_PASSWORD_FLAGS:
		err = setSettingVpnL2tpKeyPasswordFlagsJSON(data, valueJSON)
	case NM_SETTING_VPN_L2TP_KEY_PASSWORD:
		err = setSettingVpnL2tpKeyPasswordJSON(data, valueJSON)
	case NM_SETTING_VPN_L2TP_KEY_DOMAIN:
		err = setSettingVpnL2tpKeyDomainJSON(data, valueJSON)
	}
	return
}

// Check if key exists
func isSettingVpnL2tpKeyGatewayExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_GATEWAY)
}
func isSettingVpnL2tpKeyUserExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_USER)
}
func isSettingVpnL2tpKeyPasswordFlagsExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_PASSWORD_FLAGS)
}
func isSettingVpnL2tpKeyPasswordExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_PASSWORD)
}
func isSettingVpnL2tpKeyDomainExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_DOMAIN)
}

// Ensure section and key exists and not empty
func ensureSectionSettingVpnL2tpExists(data connectionData, errs sectionErrors, relatedKey string) {
	if !isSettingSectionExists(data, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME) {
		rememberError(errs, relatedKey, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_MISSING_SECTION, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME))
	}
	sectionData, _ := data[NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME]
	if len(sectionData) == 0 {
		rememberError(errs, relatedKey, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_EMPTY_SECTION, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME))
	}
}
func ensureSettingVpnL2tpKeyGatewayNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnL2tpKeyGatewayExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_GATEWAY, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnL2tpKeyGateway(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_GATEWAY, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnL2tpKeyUserNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnL2tpKeyUserExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_USER, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnL2tpKeyUser(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_USER, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnL2tpKeyPasswordFlagsNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnL2tpKeyPasswordFlagsExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_PASSWORD_FLAGS, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnL2tpKeyPasswordNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnL2tpKeyPasswordExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_PASSWORD, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnL2tpKeyPassword(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_PASSWORD, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnL2tpKeyDomainNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnL2tpKeyDomainExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_DOMAIN, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnL2tpKeyDomain(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_DOMAIN, NM_KEY_ERROR_EMPTY_VALUE)
	}
}

// Getter
func getSettingVpnL2tpKeyGateway(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_GATEWAY)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnL2tpKeyUser(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_USER)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnL2tpKeyPasswordFlags(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_PASSWORD_FLAGS)
	value = interfaceToUint32(ivalue)
	return
}
func getSettingVpnL2tpKeyPassword(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_PASSWORD)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnL2tpKeyDomain(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_DOMAIN)
	value = interfaceToString(ivalue)
	return
}

// Setter
func setSettingVpnL2tpKeyGateway(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_GATEWAY, value)
}
func setSettingVpnL2tpKeyUser(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_USER, value)
}
func setSettingVpnL2tpKeyPasswordFlags(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_PASSWORD_FLAGS, value)
}
func setSettingVpnL2tpKeyPassword(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_PASSWORD, value)
}
func setSettingVpnL2tpKeyDomain(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_DOMAIN, value)
}

// JSON Getter
func getSettingVpnL2tpKeyGatewayJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_GATEWAY, getSettingVpnL2tpKeyType(NM_SETTING_VPN_L2TP_KEY_GATEWAY))
	return
}
func getSettingVpnL2tpKeyUserJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_USER, getSettingVpnL2tpKeyType(NM_SETTING_VPN_L2TP_KEY_USER))
	return
}
func getSettingVpnL2tpKeyPasswordFlagsJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_PASSWORD_FLAGS, getSettingVpnL2tpKeyType(NM_SETTING_VPN_L2TP_KEY_PASSWORD_FLAGS))
	return
}
func getSettingVpnL2tpKeyPasswordJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_PASSWORD, getSettingVpnL2tpKeyType(NM_SETTING_VPN_L2TP_KEY_PASSWORD))
	return
}
func getSettingVpnL2tpKeyDomainJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_DOMAIN, getSettingVpnL2tpKeyType(NM_SETTING_VPN_L2TP_KEY_DOMAIN))
	return
}

// JSON Setter
func setSettingVpnL2tpKeyGatewayJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_GATEWAY, valueJSON, getSettingVpnL2tpKeyType(NM_SETTING_VPN_L2TP_KEY_GATEWAY))
}
func setSettingVpnL2tpKeyUserJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_USER, valueJSON, getSettingVpnL2tpKeyType(NM_SETTING_VPN_L2TP_KEY_USER))
}
func setSettingVpnL2tpKeyPasswordFlagsJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_PASSWORD_FLAGS, valueJSON, getSettingVpnL2tpKeyType(NM_SETTING_VPN_L2TP_KEY_PASSWORD_FLAGS))
}
func setSettingVpnL2tpKeyPasswordJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_PASSWORD, valueJSON, getSettingVpnL2tpKeyType(NM_SETTING_VPN_L2TP_KEY_PASSWORD))
}
func setSettingVpnL2tpKeyDomainJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_DOMAIN, valueJSON, getSettingVpnL2tpKeyType(NM_SETTING_VPN_L2TP_KEY_DOMAIN))
}

// Logic JSON Setter

// Remover
func removeSettingVpnL2tpKeyGateway(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_GATEWAY)
}
func removeSettingVpnL2tpKeyUser(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_USER)
}
func removeSettingVpnL2tpKeyPasswordFlags(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_PASSWORD_FLAGS)
}
func removeSettingVpnL2tpKeyPassword(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_PASSWORD)
}
func removeSettingVpnL2tpKeyDomain(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_DOMAIN)
}

// Origin file name ../nm_setting_vpn_l2tp_ppp_gen.go
// Get key type
func getSettingVpnL2tpPppKeyType(key string) (t ktype) {
	switch key {
	default:
		t = ktypeUnknown
	case NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE:
		t = ktypeBoolean
	case NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE_40:
		t = ktypeBoolean
	case NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE_128:
		t = ktypeBoolean
	case NM_SETTING_VPN_L2TP_KEY_MPPE_STATEFUL:
		t = ktypeBoolean
	case NM_SETTING_VPN_L2TP_KEY_REFUSE_EAP:
		t = ktypeBoolean
	case NM_SETTING_VPN_L2TP_KEY_REFUSE_PAP:
		t = ktypeBoolean
	case NM_SETTING_VPN_L2TP_KEY_REFUSE_CHAP:
		t = ktypeBoolean
	case NM_SETTING_VPN_L2TP_KEY_REFUSE_MSCHAP:
		t = ktypeBoolean
	case NM_SETTING_VPN_L2TP_KEY_REFUSE_MSCHAPV2:
		t = ktypeBoolean
	case NM_SETTING_VPN_L2TP_KEY_NOBSDCOMP:
		t = ktypeBoolean
	case NM_SETTING_VPN_L2TP_KEY_NODEFLATE:
		t = ktypeBoolean
	case NM_SETTING_VPN_L2TP_KEY_NO_VJ_COMP:
		t = ktypeBoolean
	case NM_SETTING_VPN_L2TP_KEY_NO_PCOMP:
		t = ktypeBoolean
	case NM_SETTING_VPN_L2TP_KEY_NO_ACCOMP:
		t = ktypeBoolean
	case NM_SETTING_VPN_L2TP_KEY_LCP_ECHO_FAILURE:
		t = ktypeUint32
	case NM_SETTING_VPN_L2TP_KEY_LCP_ECHO_INTERVAL:
		t = ktypeUint32
	}
	return
}

// Check is key in current setting section
func isKeyInSettingVpnL2tpPpp(key string) bool {
	switch key {
	case NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE:
		return true
	case NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE_40:
		return true
	case NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE_128:
		return true
	case NM_SETTING_VPN_L2TP_KEY_MPPE_STATEFUL:
		return true
	case NM_SETTING_VPN_L2TP_KEY_REFUSE_EAP:
		return true
	case NM_SETTING_VPN_L2TP_KEY_REFUSE_PAP:
		return true
	case NM_SETTING_VPN_L2TP_KEY_REFUSE_CHAP:
		return true
	case NM_SETTING_VPN_L2TP_KEY_REFUSE_MSCHAP:
		return true
	case NM_SETTING_VPN_L2TP_KEY_REFUSE_MSCHAPV2:
		return true
	case NM_SETTING_VPN_L2TP_KEY_NOBSDCOMP:
		return true
	case NM_SETTING_VPN_L2TP_KEY_NODEFLATE:
		return true
	case NM_SETTING_VPN_L2TP_KEY_NO_VJ_COMP:
		return true
	case NM_SETTING_VPN_L2TP_KEY_NO_PCOMP:
		return true
	case NM_SETTING_VPN_L2TP_KEY_NO_ACCOMP:
		return true
	case NM_SETTING_VPN_L2TP_KEY_LCP_ECHO_FAILURE:
		return true
	case NM_SETTING_VPN_L2TP_KEY_LCP_ECHO_INTERVAL:
		return true
	}
	return false
}

// Get key's default value
func getSettingVpnL2tpPppDefaultValue(key string) (value interface{}) {
	switch key {
	default:
		logger.Error("invalid key:", key)
	case NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE:
		value = false
	case NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE_40:
		value = false
	case NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE_128:
		value = false
	case NM_SETTING_VPN_L2TP_KEY_MPPE_STATEFUL:
		value = false
	case NM_SETTING_VPN_L2TP_KEY_REFUSE_EAP:
		value = false
	case NM_SETTING_VPN_L2TP_KEY_REFUSE_PAP:
		value = false
	case NM_SETTING_VPN_L2TP_KEY_REFUSE_CHAP:
		value = false
	case NM_SETTING_VPN_L2TP_KEY_REFUSE_MSCHAP:
		value = false
	case NM_SETTING_VPN_L2TP_KEY_REFUSE_MSCHAPV2:
		value = false
	case NM_SETTING_VPN_L2TP_KEY_NOBSDCOMP:
		value = false
	case NM_SETTING_VPN_L2TP_KEY_NODEFLATE:
		value = false
	case NM_SETTING_VPN_L2TP_KEY_NO_VJ_COMP:
		value = false
	case NM_SETTING_VPN_L2TP_KEY_NO_PCOMP:
		value = false
	case NM_SETTING_VPN_L2TP_KEY_NO_ACCOMP:
		value = false
	case NM_SETTING_VPN_L2TP_KEY_LCP_ECHO_FAILURE:
		value = uint32(0)
	case NM_SETTING_VPN_L2TP_KEY_LCP_ECHO_INTERVAL:
		value = uint32(0)
	}
	return
}

// Get JSON value generally
func generalGetSettingVpnL2tpPppKeyJSON(data connectionData, key string) (value string) {
	switch key {
	default:
		logger.Error("generalGetSettingVpnL2tpPppKeyJSON: invalide key", key)
	case NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE:
		value = getSettingVpnL2tpKeyRequireMppeJSON(data)
	case NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE_40:
		value = getSettingVpnL2tpKeyRequireMppe40JSON(data)
	case NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE_128:
		value = getSettingVpnL2tpKeyRequireMppe128JSON(data)
	case NM_SETTING_VPN_L2TP_KEY_MPPE_STATEFUL:
		value = getSettingVpnL2tpKeyMppeStatefulJSON(data)
	case NM_SETTING_VPN_L2TP_KEY_REFUSE_EAP:
		value = getSettingVpnL2tpKeyRefuseEapJSON(data)
	case NM_SETTING_VPN_L2TP_KEY_REFUSE_PAP:
		value = getSettingVpnL2tpKeyRefusePapJSON(data)
	case NM_SETTING_VPN_L2TP_KEY_REFUSE_CHAP:
		value = getSettingVpnL2tpKeyRefuseChapJSON(data)
	case NM_SETTING_VPN_L2TP_KEY_REFUSE_MSCHAP:
		value = getSettingVpnL2tpKeyRefuseMschapJSON(data)
	case NM_SETTING_VPN_L2TP_KEY_REFUSE_MSCHAPV2:
		value = getSettingVpnL2tpKeyRefuseMschapv2JSON(data)
	case NM_SETTING_VPN_L2TP_KEY_NOBSDCOMP:
		value = getSettingVpnL2tpKeyNobsdcompJSON(data)
	case NM_SETTING_VPN_L2TP_KEY_NODEFLATE:
		value = getSettingVpnL2tpKeyNodeflateJSON(data)
	case NM_SETTING_VPN_L2TP_KEY_NO_VJ_COMP:
		value = getSettingVpnL2tpKeyNoVjCompJSON(data)
	case NM_SETTING_VPN_L2TP_KEY_NO_PCOMP:
		value = getSettingVpnL2tpKeyNoPcompJSON(data)
	case NM_SETTING_VPN_L2TP_KEY_NO_ACCOMP:
		value = getSettingVpnL2tpKeyNoAccompJSON(data)
	case NM_SETTING_VPN_L2TP_KEY_LCP_ECHO_FAILURE:
		value = getSettingVpnL2tpKeyLcpEchoFailureJSON(data)
	case NM_SETTING_VPN_L2TP_KEY_LCP_ECHO_INTERVAL:
		value = getSettingVpnL2tpKeyLcpEchoIntervalJSON(data)
	}
	return
}

// Set JSON value generally
func generalSetSettingVpnL2tpPppKeyJSON(data connectionData, key, valueJSON string) (err error) {
	switch key {
	default:
		logger.Error("generalSetSettingVpnL2tpPppKeyJSON: invalide key", key)
	case NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE:
		err = setSettingVpnL2tpKeyRequireMppeJSON(data, valueJSON)
	case NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE_40:
		err = setSettingVpnL2tpKeyRequireMppe40JSON(data, valueJSON)
	case NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE_128:
		err = setSettingVpnL2tpKeyRequireMppe128JSON(data, valueJSON)
	case NM_SETTING_VPN_L2TP_KEY_MPPE_STATEFUL:
		err = setSettingVpnL2tpKeyMppeStatefulJSON(data, valueJSON)
	case NM_SETTING_VPN_L2TP_KEY_REFUSE_EAP:
		err = setSettingVpnL2tpKeyRefuseEapJSON(data, valueJSON)
	case NM_SETTING_VPN_L2TP_KEY_REFUSE_PAP:
		err = setSettingVpnL2tpKeyRefusePapJSON(data, valueJSON)
	case NM_SETTING_VPN_L2TP_KEY_REFUSE_CHAP:
		err = setSettingVpnL2tpKeyRefuseChapJSON(data, valueJSON)
	case NM_SETTING_VPN_L2TP_KEY_REFUSE_MSCHAP:
		err = setSettingVpnL2tpKeyRefuseMschapJSON(data, valueJSON)
	case NM_SETTING_VPN_L2TP_KEY_REFUSE_MSCHAPV2:
		err = setSettingVpnL2tpKeyRefuseMschapv2JSON(data, valueJSON)
	case NM_SETTING_VPN_L2TP_KEY_NOBSDCOMP:
		err = setSettingVpnL2tpKeyNobsdcompJSON(data, valueJSON)
	case NM_SETTING_VPN_L2TP_KEY_NODEFLATE:
		err = setSettingVpnL2tpKeyNodeflateJSON(data, valueJSON)
	case NM_SETTING_VPN_L2TP_KEY_NO_VJ_COMP:
		err = setSettingVpnL2tpKeyNoVjCompJSON(data, valueJSON)
	case NM_SETTING_VPN_L2TP_KEY_NO_PCOMP:
		err = setSettingVpnL2tpKeyNoPcompJSON(data, valueJSON)
	case NM_SETTING_VPN_L2TP_KEY_NO_ACCOMP:
		err = setSettingVpnL2tpKeyNoAccompJSON(data, valueJSON)
	case NM_SETTING_VPN_L2TP_KEY_LCP_ECHO_FAILURE:
		err = setSettingVpnL2tpKeyLcpEchoFailureJSON(data, valueJSON)
	case NM_SETTING_VPN_L2TP_KEY_LCP_ECHO_INTERVAL:
		err = setSettingVpnL2tpKeyLcpEchoIntervalJSON(data, valueJSON)
	}
	return
}

// Check if key exists
func isSettingVpnL2tpKeyRequireMppeExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE)
}
func isSettingVpnL2tpKeyRequireMppe40Exists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE_40)
}
func isSettingVpnL2tpKeyRequireMppe128Exists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE_128)
}
func isSettingVpnL2tpKeyMppeStatefulExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_MPPE_STATEFUL)
}
func isSettingVpnL2tpKeyRefuseEapExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REFUSE_EAP)
}
func isSettingVpnL2tpKeyRefusePapExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REFUSE_PAP)
}
func isSettingVpnL2tpKeyRefuseChapExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REFUSE_CHAP)
}
func isSettingVpnL2tpKeyRefuseMschapExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REFUSE_MSCHAP)
}
func isSettingVpnL2tpKeyRefuseMschapv2Exists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REFUSE_MSCHAPV2)
}
func isSettingVpnL2tpKeyNobsdcompExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_NOBSDCOMP)
}
func isSettingVpnL2tpKeyNodeflateExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_NODEFLATE)
}
func isSettingVpnL2tpKeyNoVjCompExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_NO_VJ_COMP)
}
func isSettingVpnL2tpKeyNoPcompExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_NO_PCOMP)
}
func isSettingVpnL2tpKeyNoAccompExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_NO_ACCOMP)
}
func isSettingVpnL2tpKeyLcpEchoFailureExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_LCP_ECHO_FAILURE)
}
func isSettingVpnL2tpKeyLcpEchoIntervalExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_LCP_ECHO_INTERVAL)
}

// Ensure section and key exists and not empty
func ensureSectionSettingVpnL2tpPppExists(data connectionData, errs sectionErrors, relatedKey string) {
	if !isSettingSectionExists(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME) {
		rememberError(errs, relatedKey, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_MISSING_SECTION, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME))
	}
	sectionData, _ := data[NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME]
	if len(sectionData) == 0 {
		rememberError(errs, relatedKey, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_EMPTY_SECTION, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME))
	}
}
func ensureSettingVpnL2tpKeyRequireMppeNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnL2tpKeyRequireMppeExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnL2tpKeyRequireMppe40NoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnL2tpKeyRequireMppe40Exists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE_40, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnL2tpKeyRequireMppe128NoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnL2tpKeyRequireMppe128Exists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE_128, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnL2tpKeyMppeStatefulNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnL2tpKeyMppeStatefulExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_MPPE_STATEFUL, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnL2tpKeyRefuseEapNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnL2tpKeyRefuseEapExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REFUSE_EAP, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnL2tpKeyRefusePapNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnL2tpKeyRefusePapExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REFUSE_PAP, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnL2tpKeyRefuseChapNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnL2tpKeyRefuseChapExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REFUSE_CHAP, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnL2tpKeyRefuseMschapNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnL2tpKeyRefuseMschapExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REFUSE_MSCHAP, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnL2tpKeyRefuseMschapv2NoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnL2tpKeyRefuseMschapv2Exists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REFUSE_MSCHAPV2, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnL2tpKeyNobsdcompNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnL2tpKeyNobsdcompExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_NOBSDCOMP, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnL2tpKeyNodeflateNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnL2tpKeyNodeflateExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_NODEFLATE, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnL2tpKeyNoVjCompNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnL2tpKeyNoVjCompExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_NO_VJ_COMP, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnL2tpKeyNoPcompNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnL2tpKeyNoPcompExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_NO_PCOMP, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnL2tpKeyNoAccompNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnL2tpKeyNoAccompExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_NO_ACCOMP, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnL2tpKeyLcpEchoFailureNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnL2tpKeyLcpEchoFailureExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_LCP_ECHO_FAILURE, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnL2tpKeyLcpEchoIntervalNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnL2tpKeyLcpEchoIntervalExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_LCP_ECHO_INTERVAL, NM_KEY_ERROR_MISSING_VALUE)
	}
}

// Getter
func getSettingVpnL2tpKeyRequireMppe(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingVpnL2tpKeyRequireMppe40(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE_40)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingVpnL2tpKeyRequireMppe128(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE_128)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingVpnL2tpKeyMppeStateful(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_MPPE_STATEFUL)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingVpnL2tpKeyRefuseEap(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REFUSE_EAP)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingVpnL2tpKeyRefusePap(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REFUSE_PAP)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingVpnL2tpKeyRefuseChap(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REFUSE_CHAP)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingVpnL2tpKeyRefuseMschap(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REFUSE_MSCHAP)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingVpnL2tpKeyRefuseMschapv2(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REFUSE_MSCHAPV2)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingVpnL2tpKeyNobsdcomp(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_NOBSDCOMP)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingVpnL2tpKeyNodeflate(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_NODEFLATE)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingVpnL2tpKeyNoVjComp(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_NO_VJ_COMP)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingVpnL2tpKeyNoPcomp(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_NO_PCOMP)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingVpnL2tpKeyNoAccomp(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_NO_ACCOMP)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingVpnL2tpKeyLcpEchoFailure(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_LCP_ECHO_FAILURE)
	value = interfaceToUint32(ivalue)
	return
}
func getSettingVpnL2tpKeyLcpEchoInterval(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_LCP_ECHO_INTERVAL)
	value = interfaceToUint32(ivalue)
	return
}

// Setter
func setSettingVpnL2tpKeyRequireMppe(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE, value)
}
func setSettingVpnL2tpKeyRequireMppe40(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE_40, value)
}
func setSettingVpnL2tpKeyRequireMppe128(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE_128, value)
}
func setSettingVpnL2tpKeyMppeStateful(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_MPPE_STATEFUL, value)
}
func setSettingVpnL2tpKeyRefuseEap(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REFUSE_EAP, value)
}
func setSettingVpnL2tpKeyRefusePap(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REFUSE_PAP, value)
}
func setSettingVpnL2tpKeyRefuseChap(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REFUSE_CHAP, value)
}
func setSettingVpnL2tpKeyRefuseMschap(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REFUSE_MSCHAP, value)
}
func setSettingVpnL2tpKeyRefuseMschapv2(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REFUSE_MSCHAPV2, value)
}
func setSettingVpnL2tpKeyNobsdcomp(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_NOBSDCOMP, value)
}
func setSettingVpnL2tpKeyNodeflate(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_NODEFLATE, value)
}
func setSettingVpnL2tpKeyNoVjComp(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_NO_VJ_COMP, value)
}
func setSettingVpnL2tpKeyNoPcomp(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_NO_PCOMP, value)
}
func setSettingVpnL2tpKeyNoAccomp(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_NO_ACCOMP, value)
}
func setSettingVpnL2tpKeyLcpEchoFailure(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_LCP_ECHO_FAILURE, value)
}
func setSettingVpnL2tpKeyLcpEchoInterval(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_LCP_ECHO_INTERVAL, value)
}

// JSON Getter
func getSettingVpnL2tpKeyRequireMppeJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE, getSettingVpnL2tpPppKeyType(NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE))
	return
}
func getSettingVpnL2tpKeyRequireMppe40JSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE_40, getSettingVpnL2tpPppKeyType(NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE_40))
	return
}
func getSettingVpnL2tpKeyRequireMppe128JSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE_128, getSettingVpnL2tpPppKeyType(NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE_128))
	return
}
func getSettingVpnL2tpKeyMppeStatefulJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_MPPE_STATEFUL, getSettingVpnL2tpPppKeyType(NM_SETTING_VPN_L2TP_KEY_MPPE_STATEFUL))
	return
}
func getSettingVpnL2tpKeyRefuseEapJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REFUSE_EAP, getSettingVpnL2tpPppKeyType(NM_SETTING_VPN_L2TP_KEY_REFUSE_EAP))
	return
}
func getSettingVpnL2tpKeyRefusePapJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REFUSE_PAP, getSettingVpnL2tpPppKeyType(NM_SETTING_VPN_L2TP_KEY_REFUSE_PAP))
	return
}
func getSettingVpnL2tpKeyRefuseChapJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REFUSE_CHAP, getSettingVpnL2tpPppKeyType(NM_SETTING_VPN_L2TP_KEY_REFUSE_CHAP))
	return
}
func getSettingVpnL2tpKeyRefuseMschapJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REFUSE_MSCHAP, getSettingVpnL2tpPppKeyType(NM_SETTING_VPN_L2TP_KEY_REFUSE_MSCHAP))
	return
}
func getSettingVpnL2tpKeyRefuseMschapv2JSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REFUSE_MSCHAPV2, getSettingVpnL2tpPppKeyType(NM_SETTING_VPN_L2TP_KEY_REFUSE_MSCHAPV2))
	return
}
func getSettingVpnL2tpKeyNobsdcompJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_NOBSDCOMP, getSettingVpnL2tpPppKeyType(NM_SETTING_VPN_L2TP_KEY_NOBSDCOMP))
	return
}
func getSettingVpnL2tpKeyNodeflateJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_NODEFLATE, getSettingVpnL2tpPppKeyType(NM_SETTING_VPN_L2TP_KEY_NODEFLATE))
	return
}
func getSettingVpnL2tpKeyNoVjCompJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_NO_VJ_COMP, getSettingVpnL2tpPppKeyType(NM_SETTING_VPN_L2TP_KEY_NO_VJ_COMP))
	return
}
func getSettingVpnL2tpKeyNoPcompJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_NO_PCOMP, getSettingVpnL2tpPppKeyType(NM_SETTING_VPN_L2TP_KEY_NO_PCOMP))
	return
}
func getSettingVpnL2tpKeyNoAccompJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_NO_ACCOMP, getSettingVpnL2tpPppKeyType(NM_SETTING_VPN_L2TP_KEY_NO_ACCOMP))
	return
}
func getSettingVpnL2tpKeyLcpEchoFailureJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_LCP_ECHO_FAILURE, getSettingVpnL2tpPppKeyType(NM_SETTING_VPN_L2TP_KEY_LCP_ECHO_FAILURE))
	return
}
func getSettingVpnL2tpKeyLcpEchoIntervalJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_LCP_ECHO_INTERVAL, getSettingVpnL2tpPppKeyType(NM_SETTING_VPN_L2TP_KEY_LCP_ECHO_INTERVAL))
	return
}

// JSON Setter
func setSettingVpnL2tpKeyRequireMppeJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE, valueJSON, getSettingVpnL2tpPppKeyType(NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE))
}
func setSettingVpnL2tpKeyRequireMppe40JSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE_40, valueJSON, getSettingVpnL2tpPppKeyType(NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE_40))
}
func setSettingVpnL2tpKeyRequireMppe128JSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE_128, valueJSON, getSettingVpnL2tpPppKeyType(NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE_128))
}
func setSettingVpnL2tpKeyMppeStatefulJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_MPPE_STATEFUL, valueJSON, getSettingVpnL2tpPppKeyType(NM_SETTING_VPN_L2TP_KEY_MPPE_STATEFUL))
}
func setSettingVpnL2tpKeyRefuseEapJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REFUSE_EAP, valueJSON, getSettingVpnL2tpPppKeyType(NM_SETTING_VPN_L2TP_KEY_REFUSE_EAP))
}
func setSettingVpnL2tpKeyRefusePapJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REFUSE_PAP, valueJSON, getSettingVpnL2tpPppKeyType(NM_SETTING_VPN_L2TP_KEY_REFUSE_PAP))
}
func setSettingVpnL2tpKeyRefuseChapJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REFUSE_CHAP, valueJSON, getSettingVpnL2tpPppKeyType(NM_SETTING_VPN_L2TP_KEY_REFUSE_CHAP))
}
func setSettingVpnL2tpKeyRefuseMschapJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REFUSE_MSCHAP, valueJSON, getSettingVpnL2tpPppKeyType(NM_SETTING_VPN_L2TP_KEY_REFUSE_MSCHAP))
}
func setSettingVpnL2tpKeyRefuseMschapv2JSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REFUSE_MSCHAPV2, valueJSON, getSettingVpnL2tpPppKeyType(NM_SETTING_VPN_L2TP_KEY_REFUSE_MSCHAPV2))
}
func setSettingVpnL2tpKeyNobsdcompJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_NOBSDCOMP, valueJSON, getSettingVpnL2tpPppKeyType(NM_SETTING_VPN_L2TP_KEY_NOBSDCOMP))
}
func setSettingVpnL2tpKeyNodeflateJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_NODEFLATE, valueJSON, getSettingVpnL2tpPppKeyType(NM_SETTING_VPN_L2TP_KEY_NODEFLATE))
}
func setSettingVpnL2tpKeyNoVjCompJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_NO_VJ_COMP, valueJSON, getSettingVpnL2tpPppKeyType(NM_SETTING_VPN_L2TP_KEY_NO_VJ_COMP))
}
func setSettingVpnL2tpKeyNoPcompJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_NO_PCOMP, valueJSON, getSettingVpnL2tpPppKeyType(NM_SETTING_VPN_L2TP_KEY_NO_PCOMP))
}
func setSettingVpnL2tpKeyNoAccompJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_NO_ACCOMP, valueJSON, getSettingVpnL2tpPppKeyType(NM_SETTING_VPN_L2TP_KEY_NO_ACCOMP))
}
func setSettingVpnL2tpKeyLcpEchoFailureJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_LCP_ECHO_FAILURE, valueJSON, getSettingVpnL2tpPppKeyType(NM_SETTING_VPN_L2TP_KEY_LCP_ECHO_FAILURE))
}
func setSettingVpnL2tpKeyLcpEchoIntervalJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_LCP_ECHO_INTERVAL, valueJSON, getSettingVpnL2tpPppKeyType(NM_SETTING_VPN_L2TP_KEY_LCP_ECHO_INTERVAL))
}

// Logic JSON Setter

// Remover
func removeSettingVpnL2tpKeyRequireMppe(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE)
}
func removeSettingVpnL2tpKeyRequireMppe40(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE_40)
}
func removeSettingVpnL2tpKeyRequireMppe128(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REQUIRE_MPPE_128)
}
func removeSettingVpnL2tpKeyMppeStateful(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_MPPE_STATEFUL)
}
func removeSettingVpnL2tpKeyRefuseEap(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REFUSE_EAP)
}
func removeSettingVpnL2tpKeyRefusePap(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REFUSE_PAP)
}
func removeSettingVpnL2tpKeyRefuseChap(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REFUSE_CHAP)
}
func removeSettingVpnL2tpKeyRefuseMschap(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REFUSE_MSCHAP)
}
func removeSettingVpnL2tpKeyRefuseMschapv2(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_REFUSE_MSCHAPV2)
}
func removeSettingVpnL2tpKeyNobsdcomp(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_NOBSDCOMP)
}
func removeSettingVpnL2tpKeyNodeflate(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_NODEFLATE)
}
func removeSettingVpnL2tpKeyNoVjComp(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_NO_VJ_COMP)
}
func removeSettingVpnL2tpKeyNoPcomp(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_NO_PCOMP)
}
func removeSettingVpnL2tpKeyNoAccomp(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_NO_ACCOMP)
}
func removeSettingVpnL2tpKeyLcpEchoFailure(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_LCP_ECHO_FAILURE)
}
func removeSettingVpnL2tpKeyLcpEchoInterval(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_PPP_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_LCP_ECHO_INTERVAL)
}

// Origin file name ../nm_setting_vpn_l2tp_ipsec_gen.go
// Get key type
func getSettingVpnL2tpIpsecKeyType(key string) (t ktype) {
	switch key {
	default:
		t = ktypeUnknown
	case NM_SETTING_VPN_L2TP_KEY_IPSEC_ENABLE:
		t = ktypeBoolean
	case NM_SETTING_VPN_L2TP_KEY_IPSEC_GROUP_NAME:
		t = ktypeString
	case NM_SETTING_VPN_L2TP_KEY_IPSEC_GATEWAY_ID:
		t = ktypeString
	case NM_SETTING_VPN_L2TP_KEY_IPSEC_PSK:
		t = ktypeString
	}
	return
}

// Check is key in current setting section
func isKeyInSettingVpnL2tpIpsec(key string) bool {
	switch key {
	case NM_SETTING_VPN_L2TP_KEY_IPSEC_ENABLE:
		return true
	case NM_SETTING_VPN_L2TP_KEY_IPSEC_GROUP_NAME:
		return true
	case NM_SETTING_VPN_L2TP_KEY_IPSEC_GATEWAY_ID:
		return true
	case NM_SETTING_VPN_L2TP_KEY_IPSEC_PSK:
		return true
	}
	return false
}

// Get key's default value
func getSettingVpnL2tpIpsecDefaultValue(key string) (value interface{}) {
	switch key {
	default:
		logger.Error("invalid key:", key)
	case NM_SETTING_VPN_L2TP_KEY_IPSEC_ENABLE:
		value = false
	case NM_SETTING_VPN_L2TP_KEY_IPSEC_GROUP_NAME:
		value = ""
	case NM_SETTING_VPN_L2TP_KEY_IPSEC_GATEWAY_ID:
		value = ""
	case NM_SETTING_VPN_L2TP_KEY_IPSEC_PSK:
		value = ""
	}
	return
}

// Get JSON value generally
func generalGetSettingVpnL2tpIpsecKeyJSON(data connectionData, key string) (value string) {
	switch key {
	default:
		logger.Error("generalGetSettingVpnL2tpIpsecKeyJSON: invalide key", key)
	case NM_SETTING_VPN_L2TP_KEY_IPSEC_ENABLE:
		value = getSettingVpnL2tpKeyIpsecEnableJSON(data)
	case NM_SETTING_VPN_L2TP_KEY_IPSEC_GROUP_NAME:
		value = getSettingVpnL2tpKeyIpsecGroupNameJSON(data)
	case NM_SETTING_VPN_L2TP_KEY_IPSEC_GATEWAY_ID:
		value = getSettingVpnL2tpKeyIpsecGatewayIdJSON(data)
	case NM_SETTING_VPN_L2TP_KEY_IPSEC_PSK:
		value = getSettingVpnL2tpKeyIpsecPskJSON(data)
	}
	return
}

// Set JSON value generally
func generalSetSettingVpnL2tpIpsecKeyJSON(data connectionData, key, valueJSON string) (err error) {
	switch key {
	default:
		logger.Error("generalSetSettingVpnL2tpIpsecKeyJSON: invalide key", key)
	case NM_SETTING_VPN_L2TP_KEY_IPSEC_ENABLE:
		err = logicSetSettingVpnL2tpKeyIpsecEnableJSON(data, valueJSON)
	case NM_SETTING_VPN_L2TP_KEY_IPSEC_GROUP_NAME:
		err = setSettingVpnL2tpKeyIpsecGroupNameJSON(data, valueJSON)
	case NM_SETTING_VPN_L2TP_KEY_IPSEC_GATEWAY_ID:
		err = setSettingVpnL2tpKeyIpsecGatewayIdJSON(data, valueJSON)
	case NM_SETTING_VPN_L2TP_KEY_IPSEC_PSK:
		err = setSettingVpnL2tpKeyIpsecPskJSON(data, valueJSON)
	}
	return
}

// Check if key exists
func isSettingVpnL2tpKeyIpsecEnableExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_IPSEC_ENABLE)
}
func isSettingVpnL2tpKeyIpsecGroupNameExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_IPSEC_GROUP_NAME)
}
func isSettingVpnL2tpKeyIpsecGatewayIdExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_IPSEC_GATEWAY_ID)
}
func isSettingVpnL2tpKeyIpsecPskExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_IPSEC_PSK)
}

// Ensure section and key exists and not empty
func ensureSectionSettingVpnL2tpIpsecExists(data connectionData, errs sectionErrors, relatedKey string) {
	if !isSettingSectionExists(data, NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME) {
		rememberError(errs, relatedKey, NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_MISSING_SECTION, NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME))
	}
	sectionData, _ := data[NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME]
	if len(sectionData) == 0 {
		rememberError(errs, relatedKey, NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_EMPTY_SECTION, NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME))
	}
}
func ensureSettingVpnL2tpKeyIpsecEnableNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnL2tpKeyIpsecEnableExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_IPSEC_ENABLE, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnL2tpKeyIpsecGroupNameNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnL2tpKeyIpsecGroupNameExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_IPSEC_GROUP_NAME, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnL2tpKeyIpsecGroupName(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_IPSEC_GROUP_NAME, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnL2tpKeyIpsecGatewayIdNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnL2tpKeyIpsecGatewayIdExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_IPSEC_GATEWAY_ID, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnL2tpKeyIpsecGatewayId(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_IPSEC_GATEWAY_ID, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnL2tpKeyIpsecPskNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnL2tpKeyIpsecPskExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_IPSEC_PSK, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnL2tpKeyIpsecPsk(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_IPSEC_PSK, NM_KEY_ERROR_EMPTY_VALUE)
	}
}

// Getter
func getSettingVpnL2tpKeyIpsecEnable(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_IPSEC_ENABLE)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingVpnL2tpKeyIpsecGroupName(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_IPSEC_GROUP_NAME)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnL2tpKeyIpsecGatewayId(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_IPSEC_GATEWAY_ID)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnL2tpKeyIpsecPsk(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_IPSEC_PSK)
	value = interfaceToString(ivalue)
	return
}

// Setter
func setSettingVpnL2tpKeyIpsecEnable(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_IPSEC_ENABLE, value)
}
func setSettingVpnL2tpKeyIpsecGroupName(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_IPSEC_GROUP_NAME, value)
}
func setSettingVpnL2tpKeyIpsecGatewayId(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_IPSEC_GATEWAY_ID, value)
}
func setSettingVpnL2tpKeyIpsecPsk(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_IPSEC_PSK, value)
}

// JSON Getter
func getSettingVpnL2tpKeyIpsecEnableJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_IPSEC_ENABLE, getSettingVpnL2tpIpsecKeyType(NM_SETTING_VPN_L2TP_KEY_IPSEC_ENABLE))
	return
}
func getSettingVpnL2tpKeyIpsecGroupNameJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_IPSEC_GROUP_NAME, getSettingVpnL2tpIpsecKeyType(NM_SETTING_VPN_L2TP_KEY_IPSEC_GROUP_NAME))
	return
}
func getSettingVpnL2tpKeyIpsecGatewayIdJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_IPSEC_GATEWAY_ID, getSettingVpnL2tpIpsecKeyType(NM_SETTING_VPN_L2TP_KEY_IPSEC_GATEWAY_ID))
	return
}
func getSettingVpnL2tpKeyIpsecPskJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_IPSEC_PSK, getSettingVpnL2tpIpsecKeyType(NM_SETTING_VPN_L2TP_KEY_IPSEC_PSK))
	return
}

// JSON Setter
func setSettingVpnL2tpKeyIpsecEnableJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_IPSEC_ENABLE, valueJSON, getSettingVpnL2tpIpsecKeyType(NM_SETTING_VPN_L2TP_KEY_IPSEC_ENABLE))
}
func setSettingVpnL2tpKeyIpsecGroupNameJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_IPSEC_GROUP_NAME, valueJSON, getSettingVpnL2tpIpsecKeyType(NM_SETTING_VPN_L2TP_KEY_IPSEC_GROUP_NAME))
}
func setSettingVpnL2tpKeyIpsecGatewayIdJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_IPSEC_GATEWAY_ID, valueJSON, getSettingVpnL2tpIpsecKeyType(NM_SETTING_VPN_L2TP_KEY_IPSEC_GATEWAY_ID))
}
func setSettingVpnL2tpKeyIpsecPskJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_IPSEC_PSK, valueJSON, getSettingVpnL2tpIpsecKeyType(NM_SETTING_VPN_L2TP_KEY_IPSEC_PSK))
}

// Logic JSON Setter
func logicSetSettingVpnL2tpKeyIpsecEnableJSON(data connectionData, valueJSON string) (err error) {
	err = setSettingVpnL2tpKeyIpsecEnableJSON(data, valueJSON)
	if err != nil {
		return
	}
	if isSettingVpnL2tpKeyIpsecEnableExists(data) {
		value := getSettingVpnL2tpKeyIpsecEnable(data)
		err = logicSetSettingVpnL2tpKeyIpsecEnable(data, value)
	}
	return
}

// Remover
func removeSettingVpnL2tpKeyIpsecEnable(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_IPSEC_ENABLE)
}
func removeSettingVpnL2tpKeyIpsecGroupName(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_IPSEC_GROUP_NAME)
}
func removeSettingVpnL2tpKeyIpsecGatewayId(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_IPSEC_GATEWAY_ID)
}
func removeSettingVpnL2tpKeyIpsecPsk(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_L2TP_IPSEC_SETTING_NAME, NM_SETTING_VPN_L2TP_KEY_IPSEC_PSK)
}

// Origin file name ../nm_setting_vpn_openconnect_gen.go
// Get key type
func getSettingVpnOpenconnectKeyType(key string) (t ktype) {
	switch key {
	default:
		t = ktypeUnknown
	case NM_SETTING_VPN_OPENCONNECT_KEY_GATEWAY:
		t = ktypeString
	case NM_SETTING_VPN_OPENCONNECT_KEY_CACERT:
		t = ktypeString
	case NM_SETTING_VPN_OPENCONNECT_KEY_PROXY:
		t = ktypeString
	case NM_SETTING_VPN_OPENCONNECT_KEY_CSD_ENABLE:
		t = ktypeBoolean
	case NM_SETTING_VPN_OPENCONNECT_KEY_CSD_WRAPPER:
		t = ktypeString
	case NM_SETTING_VPN_OPENCONNECT_KEY_USERCERT:
		t = ktypeString
	case NM_SETTING_VPN_OPENCONNECT_KEY_PRIVKEY:
		t = ktypeString
	case NM_SETTING_VPN_OPENCONNECT_KEY_PEM_PASSPHRASE_FSID:
		t = ktypeBoolean
	case NM_SETTING_VPN_OPENCONNECT_KEY_COOKIE:
		t = ktypeString
	case NM_SETTING_VPN_OPENCONNECT_KEY_GWCERT:
		t = ktypeString
	case NM_SETTING_VPN_OPENCONNECT_KEY_AUTHTYPE:
		t = ktypeString
	case NM_SETTING_VPN_OPENCONNECT_KEY_MTU:
		t = ktypeString
	case NM_SETTING_VPN_OPENCONNECT_KEY_STOKEN_SOURCE:
		t = ktypeString
	case NM_SETTING_VPN_OPENCONNECT_KEY_STOKEN_STRING:
		t = ktypeString
	}
	return
}

// Check is key in current setting section
func isKeyInSettingVpnOpenconnect(key string) bool {
	switch key {
	case NM_SETTING_VPN_OPENCONNECT_KEY_GATEWAY:
		return true
	case NM_SETTING_VPN_OPENCONNECT_KEY_CACERT:
		return true
	case NM_SETTING_VPN_OPENCONNECT_KEY_PROXY:
		return true
	case NM_SETTING_VPN_OPENCONNECT_KEY_CSD_ENABLE:
		return true
	case NM_SETTING_VPN_OPENCONNECT_KEY_CSD_WRAPPER:
		return true
	case NM_SETTING_VPN_OPENCONNECT_KEY_USERCERT:
		return true
	case NM_SETTING_VPN_OPENCONNECT_KEY_PRIVKEY:
		return true
	case NM_SETTING_VPN_OPENCONNECT_KEY_PEM_PASSPHRASE_FSID:
		return true
	case NM_SETTING_VPN_OPENCONNECT_KEY_COOKIE:
		return true
	case NM_SETTING_VPN_OPENCONNECT_KEY_GWCERT:
		return true
	case NM_SETTING_VPN_OPENCONNECT_KEY_AUTHTYPE:
		return true
	case NM_SETTING_VPN_OPENCONNECT_KEY_MTU:
		return true
	case NM_SETTING_VPN_OPENCONNECT_KEY_STOKEN_SOURCE:
		return true
	case NM_SETTING_VPN_OPENCONNECT_KEY_STOKEN_STRING:
		return true
	}
	return false
}

// Get key's default value
func getSettingVpnOpenconnectDefaultValue(key string) (value interface{}) {
	switch key {
	default:
		logger.Error("invalid key:", key)
	case NM_SETTING_VPN_OPENCONNECT_KEY_GATEWAY:
		value = ""
	case NM_SETTING_VPN_OPENCONNECT_KEY_CACERT:
		value = ""
	case NM_SETTING_VPN_OPENCONNECT_KEY_PROXY:
		value = ""
	case NM_SETTING_VPN_OPENCONNECT_KEY_CSD_ENABLE:
		value = false
	case NM_SETTING_VPN_OPENCONNECT_KEY_CSD_WRAPPER:
		value = ""
	case NM_SETTING_VPN_OPENCONNECT_KEY_USERCERT:
		value = ""
	case NM_SETTING_VPN_OPENCONNECT_KEY_PRIVKEY:
		value = ""
	case NM_SETTING_VPN_OPENCONNECT_KEY_PEM_PASSPHRASE_FSID:
		value = false
	case NM_SETTING_VPN_OPENCONNECT_KEY_COOKIE:
		value = ""
	case NM_SETTING_VPN_OPENCONNECT_KEY_GWCERT:
		value = ""
	case NM_SETTING_VPN_OPENCONNECT_KEY_AUTHTYPE:
		value = ""
	case NM_SETTING_VPN_OPENCONNECT_KEY_MTU:
		value = ""
	case NM_SETTING_VPN_OPENCONNECT_KEY_STOKEN_SOURCE:
		value = ""
	case NM_SETTING_VPN_OPENCONNECT_KEY_STOKEN_STRING:
		value = ""
	}
	return
}

// Get JSON value generally
func generalGetSettingVpnOpenconnectKeyJSON(data connectionData, key string) (value string) {
	switch key {
	default:
		logger.Error("generalGetSettingVpnOpenconnectKeyJSON: invalide key", key)
	case NM_SETTING_VPN_OPENCONNECT_KEY_GATEWAY:
		value = getSettingVpnOpenconnectKeyGatewayJSON(data)
	case NM_SETTING_VPN_OPENCONNECT_KEY_CACERT:
		value = getSettingVpnOpenconnectKeyCacertJSON(data)
	case NM_SETTING_VPN_OPENCONNECT_KEY_PROXY:
		value = getSettingVpnOpenconnectKeyProxyJSON(data)
	case NM_SETTING_VPN_OPENCONNECT_KEY_CSD_ENABLE:
		value = getSettingVpnOpenconnectKeyCsdEnableJSON(data)
	case NM_SETTING_VPN_OPENCONNECT_KEY_CSD_WRAPPER:
		value = getSettingVpnOpenconnectKeyCsdWrapperJSON(data)
	case NM_SETTING_VPN_OPENCONNECT_KEY_USERCERT:
		value = getSettingVpnOpenconnectKeyUsercertJSON(data)
	case NM_SETTING_VPN_OPENCONNECT_KEY_PRIVKEY:
		value = getSettingVpnOpenconnectKeyPrivkeyJSON(data)
	case NM_SETTING_VPN_OPENCONNECT_KEY_PEM_PASSPHRASE_FSID:
		value = getSettingVpnOpenconnectKeyPemPassphraseFsidJSON(data)
	case NM_SETTING_VPN_OPENCONNECT_KEY_COOKIE:
		value = getSettingVpnOpenconnectKeyCookieJSON(data)
	case NM_SETTING_VPN_OPENCONNECT_KEY_GWCERT:
		value = getSettingVpnOpenconnectKeyGwcertJSON(data)
	case NM_SETTING_VPN_OPENCONNECT_KEY_AUTHTYPE:
		value = getSettingVpnOpenconnectKeyAuthtypeJSON(data)
	case NM_SETTING_VPN_OPENCONNECT_KEY_MTU:
		value = getSettingVpnOpenconnectKeyMtuJSON(data)
	case NM_SETTING_VPN_OPENCONNECT_KEY_STOKEN_SOURCE:
		value = getSettingVpnOpenconnectKeyStokenSourceJSON(data)
	case NM_SETTING_VPN_OPENCONNECT_KEY_STOKEN_STRING:
		value = getSettingVpnOpenconnectKeyStokenStringJSON(data)
	}
	return
}

// Set JSON value generally
func generalSetSettingVpnOpenconnectKeyJSON(data connectionData, key, valueJSON string) (err error) {
	switch key {
	default:
		logger.Error("generalSetSettingVpnOpenconnectKeyJSON: invalide key", key)
	case NM_SETTING_VPN_OPENCONNECT_KEY_GATEWAY:
		err = setSettingVpnOpenconnectKeyGatewayJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENCONNECT_KEY_CACERT:
		err = setSettingVpnOpenconnectKeyCacertJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENCONNECT_KEY_PROXY:
		err = setSettingVpnOpenconnectKeyProxyJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENCONNECT_KEY_CSD_ENABLE:
		err = setSettingVpnOpenconnectKeyCsdEnableJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENCONNECT_KEY_CSD_WRAPPER:
		err = setSettingVpnOpenconnectKeyCsdWrapperJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENCONNECT_KEY_USERCERT:
		err = setSettingVpnOpenconnectKeyUsercertJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENCONNECT_KEY_PRIVKEY:
		err = setSettingVpnOpenconnectKeyPrivkeyJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENCONNECT_KEY_PEM_PASSPHRASE_FSID:
		err = setSettingVpnOpenconnectKeyPemPassphraseFsidJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENCONNECT_KEY_COOKIE:
		err = setSettingVpnOpenconnectKeyCookieJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENCONNECT_KEY_GWCERT:
		err = setSettingVpnOpenconnectKeyGwcertJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENCONNECT_KEY_AUTHTYPE:
		err = setSettingVpnOpenconnectKeyAuthtypeJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENCONNECT_KEY_MTU:
		err = setSettingVpnOpenconnectKeyMtuJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENCONNECT_KEY_STOKEN_SOURCE:
		err = setSettingVpnOpenconnectKeyStokenSourceJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENCONNECT_KEY_STOKEN_STRING:
		err = setSettingVpnOpenconnectKeyStokenStringJSON(data, valueJSON)
	}
	return
}

// Check if key exists
func isSettingVpnOpenconnectKeyGatewayExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_GATEWAY)
}
func isSettingVpnOpenconnectKeyCacertExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_CACERT)
}
func isSettingVpnOpenconnectKeyProxyExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_PROXY)
}
func isSettingVpnOpenconnectKeyCsdEnableExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_CSD_ENABLE)
}
func isSettingVpnOpenconnectKeyCsdWrapperExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_CSD_WRAPPER)
}
func isSettingVpnOpenconnectKeyUsercertExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_USERCERT)
}
func isSettingVpnOpenconnectKeyPrivkeyExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_PRIVKEY)
}
func isSettingVpnOpenconnectKeyPemPassphraseFsidExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_PEM_PASSPHRASE_FSID)
}
func isSettingVpnOpenconnectKeyCookieExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_COOKIE)
}
func isSettingVpnOpenconnectKeyGwcertExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_GWCERT)
}
func isSettingVpnOpenconnectKeyAuthtypeExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_AUTHTYPE)
}
func isSettingVpnOpenconnectKeyMtuExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_MTU)
}
func isSettingVpnOpenconnectKeyStokenSourceExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_STOKEN_SOURCE)
}
func isSettingVpnOpenconnectKeyStokenStringExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_STOKEN_STRING)
}

// Ensure section and key exists and not empty
func ensureSectionSettingVpnOpenconnectExists(data connectionData, errs sectionErrors, relatedKey string) {
	if !isSettingSectionExists(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME) {
		rememberError(errs, relatedKey, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_MISSING_SECTION, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME))
	}
	sectionData, _ := data[NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME]
	if len(sectionData) == 0 {
		rememberError(errs, relatedKey, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_EMPTY_SECTION, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME))
	}
}
func ensureSettingVpnOpenconnectKeyGatewayNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenconnectKeyGatewayExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_GATEWAY, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnOpenconnectKeyGateway(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_GATEWAY, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnOpenconnectKeyCacertNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenconnectKeyCacertExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_CACERT, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnOpenconnectKeyCacert(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_CACERT, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnOpenconnectKeyProxyNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenconnectKeyProxyExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_PROXY, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnOpenconnectKeyProxy(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_PROXY, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnOpenconnectKeyCsdEnableNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenconnectKeyCsdEnableExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_CSD_ENABLE, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnOpenconnectKeyCsdWrapperNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenconnectKeyCsdWrapperExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_CSD_WRAPPER, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnOpenconnectKeyCsdWrapper(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_CSD_WRAPPER, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnOpenconnectKeyUsercertNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenconnectKeyUsercertExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_USERCERT, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnOpenconnectKeyUsercert(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_USERCERT, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnOpenconnectKeyPrivkeyNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenconnectKeyPrivkeyExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_PRIVKEY, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnOpenconnectKeyPrivkey(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_PRIVKEY, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnOpenconnectKeyPemPassphraseFsidNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenconnectKeyPemPassphraseFsidExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_PEM_PASSPHRASE_FSID, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnOpenconnectKeyCookieNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenconnectKeyCookieExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_COOKIE, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnOpenconnectKeyCookie(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_COOKIE, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnOpenconnectKeyGwcertNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenconnectKeyGwcertExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_GWCERT, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnOpenconnectKeyGwcert(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_GWCERT, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnOpenconnectKeyAuthtypeNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenconnectKeyAuthtypeExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_AUTHTYPE, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnOpenconnectKeyAuthtype(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_AUTHTYPE, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnOpenconnectKeyMtuNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenconnectKeyMtuExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_MTU, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnOpenconnectKeyMtu(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_MTU, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnOpenconnectKeyStokenSourceNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenconnectKeyStokenSourceExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_STOKEN_SOURCE, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnOpenconnectKeyStokenSource(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_STOKEN_SOURCE, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnOpenconnectKeyStokenStringNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenconnectKeyStokenStringExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_STOKEN_STRING, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnOpenconnectKeyStokenString(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_STOKEN_STRING, NM_KEY_ERROR_EMPTY_VALUE)
	}
}

// Getter
func getSettingVpnOpenconnectKeyGateway(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_GATEWAY)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnOpenconnectKeyCacert(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_CACERT)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnOpenconnectKeyProxy(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_PROXY)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnOpenconnectKeyCsdEnable(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_CSD_ENABLE)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingVpnOpenconnectKeyCsdWrapper(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_CSD_WRAPPER)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnOpenconnectKeyUsercert(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_USERCERT)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnOpenconnectKeyPrivkey(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_PRIVKEY)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnOpenconnectKeyPemPassphraseFsid(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_PEM_PASSPHRASE_FSID)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingVpnOpenconnectKeyCookie(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_COOKIE)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnOpenconnectKeyGwcert(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_GWCERT)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnOpenconnectKeyAuthtype(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_AUTHTYPE)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnOpenconnectKeyMtu(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_MTU)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnOpenconnectKeyStokenSource(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_STOKEN_SOURCE)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnOpenconnectKeyStokenString(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_STOKEN_STRING)
	value = interfaceToString(ivalue)
	return
}

// Setter
func setSettingVpnOpenconnectKeyGateway(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_GATEWAY, value)
}
func setSettingVpnOpenconnectKeyCacert(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_CACERT, value)
}
func setSettingVpnOpenconnectKeyProxy(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_PROXY, value)
}
func setSettingVpnOpenconnectKeyCsdEnable(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_CSD_ENABLE, value)
}
func setSettingVpnOpenconnectKeyCsdWrapper(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_CSD_WRAPPER, value)
}
func setSettingVpnOpenconnectKeyUsercert(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_USERCERT, value)
}
func setSettingVpnOpenconnectKeyPrivkey(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_PRIVKEY, value)
}
func setSettingVpnOpenconnectKeyPemPassphraseFsid(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_PEM_PASSPHRASE_FSID, value)
}
func setSettingVpnOpenconnectKeyCookie(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_COOKIE, value)
}
func setSettingVpnOpenconnectKeyGwcert(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_GWCERT, value)
}
func setSettingVpnOpenconnectKeyAuthtype(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_AUTHTYPE, value)
}
func setSettingVpnOpenconnectKeyMtu(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_MTU, value)
}
func setSettingVpnOpenconnectKeyStokenSource(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_STOKEN_SOURCE, value)
}
func setSettingVpnOpenconnectKeyStokenString(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_STOKEN_STRING, value)
}

// JSON Getter
func getSettingVpnOpenconnectKeyGatewayJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_GATEWAY, getSettingVpnOpenconnectKeyType(NM_SETTING_VPN_OPENCONNECT_KEY_GATEWAY))
	return
}
func getSettingVpnOpenconnectKeyCacertJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_CACERT, getSettingVpnOpenconnectKeyType(NM_SETTING_VPN_OPENCONNECT_KEY_CACERT))
	return
}
func getSettingVpnOpenconnectKeyProxyJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_PROXY, getSettingVpnOpenconnectKeyType(NM_SETTING_VPN_OPENCONNECT_KEY_PROXY))
	return
}
func getSettingVpnOpenconnectKeyCsdEnableJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_CSD_ENABLE, getSettingVpnOpenconnectKeyType(NM_SETTING_VPN_OPENCONNECT_KEY_CSD_ENABLE))
	return
}
func getSettingVpnOpenconnectKeyCsdWrapperJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_CSD_WRAPPER, getSettingVpnOpenconnectKeyType(NM_SETTING_VPN_OPENCONNECT_KEY_CSD_WRAPPER))
	return
}
func getSettingVpnOpenconnectKeyUsercertJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_USERCERT, getSettingVpnOpenconnectKeyType(NM_SETTING_VPN_OPENCONNECT_KEY_USERCERT))
	return
}
func getSettingVpnOpenconnectKeyPrivkeyJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_PRIVKEY, getSettingVpnOpenconnectKeyType(NM_SETTING_VPN_OPENCONNECT_KEY_PRIVKEY))
	return
}
func getSettingVpnOpenconnectKeyPemPassphraseFsidJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_PEM_PASSPHRASE_FSID, getSettingVpnOpenconnectKeyType(NM_SETTING_VPN_OPENCONNECT_KEY_PEM_PASSPHRASE_FSID))
	return
}
func getSettingVpnOpenconnectKeyCookieJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_COOKIE, getSettingVpnOpenconnectKeyType(NM_SETTING_VPN_OPENCONNECT_KEY_COOKIE))
	return
}
func getSettingVpnOpenconnectKeyGwcertJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_GWCERT, getSettingVpnOpenconnectKeyType(NM_SETTING_VPN_OPENCONNECT_KEY_GWCERT))
	return
}
func getSettingVpnOpenconnectKeyAuthtypeJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_AUTHTYPE, getSettingVpnOpenconnectKeyType(NM_SETTING_VPN_OPENCONNECT_KEY_AUTHTYPE))
	return
}
func getSettingVpnOpenconnectKeyMtuJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_MTU, getSettingVpnOpenconnectKeyType(NM_SETTING_VPN_OPENCONNECT_KEY_MTU))
	return
}
func getSettingVpnOpenconnectKeyStokenSourceJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_STOKEN_SOURCE, getSettingVpnOpenconnectKeyType(NM_SETTING_VPN_OPENCONNECT_KEY_STOKEN_SOURCE))
	return
}
func getSettingVpnOpenconnectKeyStokenStringJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_STOKEN_STRING, getSettingVpnOpenconnectKeyType(NM_SETTING_VPN_OPENCONNECT_KEY_STOKEN_STRING))
	return
}

// JSON Setter
func setSettingVpnOpenconnectKeyGatewayJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_GATEWAY, valueJSON, getSettingVpnOpenconnectKeyType(NM_SETTING_VPN_OPENCONNECT_KEY_GATEWAY))
}
func setSettingVpnOpenconnectKeyCacertJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_CACERT, valueJSON, getSettingVpnOpenconnectKeyType(NM_SETTING_VPN_OPENCONNECT_KEY_CACERT))
}
func setSettingVpnOpenconnectKeyProxyJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_PROXY, valueJSON, getSettingVpnOpenconnectKeyType(NM_SETTING_VPN_OPENCONNECT_KEY_PROXY))
}
func setSettingVpnOpenconnectKeyCsdEnableJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_CSD_ENABLE, valueJSON, getSettingVpnOpenconnectKeyType(NM_SETTING_VPN_OPENCONNECT_KEY_CSD_ENABLE))
}
func setSettingVpnOpenconnectKeyCsdWrapperJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_CSD_WRAPPER, valueJSON, getSettingVpnOpenconnectKeyType(NM_SETTING_VPN_OPENCONNECT_KEY_CSD_WRAPPER))
}
func setSettingVpnOpenconnectKeyUsercertJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_USERCERT, valueJSON, getSettingVpnOpenconnectKeyType(NM_SETTING_VPN_OPENCONNECT_KEY_USERCERT))
}
func setSettingVpnOpenconnectKeyPrivkeyJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_PRIVKEY, valueJSON, getSettingVpnOpenconnectKeyType(NM_SETTING_VPN_OPENCONNECT_KEY_PRIVKEY))
}
func setSettingVpnOpenconnectKeyPemPassphraseFsidJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_PEM_PASSPHRASE_FSID, valueJSON, getSettingVpnOpenconnectKeyType(NM_SETTING_VPN_OPENCONNECT_KEY_PEM_PASSPHRASE_FSID))
}
func setSettingVpnOpenconnectKeyCookieJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_COOKIE, valueJSON, getSettingVpnOpenconnectKeyType(NM_SETTING_VPN_OPENCONNECT_KEY_COOKIE))
}
func setSettingVpnOpenconnectKeyGwcertJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_GWCERT, valueJSON, getSettingVpnOpenconnectKeyType(NM_SETTING_VPN_OPENCONNECT_KEY_GWCERT))
}
func setSettingVpnOpenconnectKeyAuthtypeJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_AUTHTYPE, valueJSON, getSettingVpnOpenconnectKeyType(NM_SETTING_VPN_OPENCONNECT_KEY_AUTHTYPE))
}
func setSettingVpnOpenconnectKeyMtuJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_MTU, valueJSON, getSettingVpnOpenconnectKeyType(NM_SETTING_VPN_OPENCONNECT_KEY_MTU))
}
func setSettingVpnOpenconnectKeyStokenSourceJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_STOKEN_SOURCE, valueJSON, getSettingVpnOpenconnectKeyType(NM_SETTING_VPN_OPENCONNECT_KEY_STOKEN_SOURCE))
}
func setSettingVpnOpenconnectKeyStokenStringJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_STOKEN_STRING, valueJSON, getSettingVpnOpenconnectKeyType(NM_SETTING_VPN_OPENCONNECT_KEY_STOKEN_STRING))
}

// Logic JSON Setter

// Remover
func removeSettingVpnOpenconnectKeyGateway(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_GATEWAY)
}
func removeSettingVpnOpenconnectKeyCacert(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_CACERT)
}
func removeSettingVpnOpenconnectKeyProxy(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_PROXY)
}
func removeSettingVpnOpenconnectKeyCsdEnable(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_CSD_ENABLE)
}
func removeSettingVpnOpenconnectKeyCsdWrapper(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_CSD_WRAPPER)
}
func removeSettingVpnOpenconnectKeyUsercert(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_USERCERT)
}
func removeSettingVpnOpenconnectKeyPrivkey(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_PRIVKEY)
}
func removeSettingVpnOpenconnectKeyPemPassphraseFsid(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_PEM_PASSPHRASE_FSID)
}
func removeSettingVpnOpenconnectKeyCookie(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_COOKIE)
}
func removeSettingVpnOpenconnectKeyGwcert(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_GWCERT)
}
func removeSettingVpnOpenconnectKeyAuthtype(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_AUTHTYPE)
}
func removeSettingVpnOpenconnectKeyMtu(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_MTU)
}
func removeSettingVpnOpenconnectKeyStokenSource(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_STOKEN_SOURCE)
}
func removeSettingVpnOpenconnectKeyStokenString(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENCONNECT_SETTING_NAME, NM_SETTING_VPN_OPENCONNECT_KEY_STOKEN_STRING)
}

// Origin file name ../nm_setting_vpn_openvpn_gen.go
// Get key type
func getSettingVpnOpenvpnKeyType(key string) (t ktype) {
	switch key {
	default:
		t = ktypeUnknown
	case NM_SETTING_VPN_OPENVPN_KEY_REMOTE:
		t = ktypeString
	case NM_SETTING_VPN_OPENVPN_KEY_CONNECTION_TYPE:
		t = ktypeString
	case NM_SETTING_VPN_OPENVPN_KEY_USERNAME:
		t = ktypeString
	case NM_SETTING_VPN_OPENVPN_KEY_PASSWORD_FLAGS:
		t = ktypeUint32
	case NM_SETTING_VPN_OPENVPN_KEY_PASSWORD:
		t = ktypeString
	case NM_SETTING_VPN_OPENVPN_KEY_CA:
		t = ktypeString
	case NM_SETTING_VPN_OPENVPN_KEY_CERT:
		t = ktypeString
	case NM_SETTING_VPN_OPENVPN_KEY_KEY:
		t = ktypeString
	case NM_SETTING_VPN_OPENVPN_KEY_CERTPASS_FLAGS:
		t = ktypeUint32
	case NM_SETTING_VPN_OPENVPN_KEY_CERTPASS:
		t = ktypeString
	case NM_SETTING_VPN_OPENVPN_KEY_STATIC_KEY:
		t = ktypeString
	case NM_SETTING_VPN_OPENVPN_KEY_STATIC_KEY_DIRECTION:
		t = ktypeUint32
	case NM_SETTING_VPN_OPENVPN_KEY_REMOTE_IP:
		t = ktypeString
	case NM_SETTING_VPN_OPENVPN_KEY_LOCAL_IP:
		t = ktypeString
	}
	return
}

// Check is key in current setting section
func isKeyInSettingVpnOpenvpn(key string) bool {
	switch key {
	case NM_SETTING_VPN_OPENVPN_KEY_REMOTE:
		return true
	case NM_SETTING_VPN_OPENVPN_KEY_CONNECTION_TYPE:
		return true
	case NM_SETTING_VPN_OPENVPN_KEY_USERNAME:
		return true
	case NM_SETTING_VPN_OPENVPN_KEY_PASSWORD_FLAGS:
		return true
	case NM_SETTING_VPN_OPENVPN_KEY_PASSWORD:
		return true
	case NM_SETTING_VPN_OPENVPN_KEY_CA:
		return true
	case NM_SETTING_VPN_OPENVPN_KEY_CERT:
		return true
	case NM_SETTING_VPN_OPENVPN_KEY_KEY:
		return true
	case NM_SETTING_VPN_OPENVPN_KEY_CERTPASS_FLAGS:
		return true
	case NM_SETTING_VPN_OPENVPN_KEY_CERTPASS:
		return true
	case NM_SETTING_VPN_OPENVPN_KEY_STATIC_KEY:
		return true
	case NM_SETTING_VPN_OPENVPN_KEY_STATIC_KEY_DIRECTION:
		return true
	case NM_SETTING_VPN_OPENVPN_KEY_REMOTE_IP:
		return true
	case NM_SETTING_VPN_OPENVPN_KEY_LOCAL_IP:
		return true
	}
	return false
}

// Get key's default value
func getSettingVpnOpenvpnDefaultValue(key string) (value interface{}) {
	switch key {
	default:
		logger.Error("invalid key:", key)
	case NM_SETTING_VPN_OPENVPN_KEY_REMOTE:
		value = ""
	case NM_SETTING_VPN_OPENVPN_KEY_CONNECTION_TYPE:
		value = ""
	case NM_SETTING_VPN_OPENVPN_KEY_USERNAME:
		value = ""
	case NM_SETTING_VPN_OPENVPN_KEY_PASSWORD_FLAGS:
		value = uint32(0)
	case NM_SETTING_VPN_OPENVPN_KEY_PASSWORD:
		value = ""
	case NM_SETTING_VPN_OPENVPN_KEY_CA:
		value = ""
	case NM_SETTING_VPN_OPENVPN_KEY_CERT:
		value = ""
	case NM_SETTING_VPN_OPENVPN_KEY_KEY:
		value = ""
	case NM_SETTING_VPN_OPENVPN_KEY_CERTPASS_FLAGS:
		value = uint32(0)
	case NM_SETTING_VPN_OPENVPN_KEY_CERTPASS:
		value = ""
	case NM_SETTING_VPN_OPENVPN_KEY_STATIC_KEY:
		value = ""
	case NM_SETTING_VPN_OPENVPN_KEY_STATIC_KEY_DIRECTION:
		value = uint32(0)
	case NM_SETTING_VPN_OPENVPN_KEY_REMOTE_IP:
		value = ""
	case NM_SETTING_VPN_OPENVPN_KEY_LOCAL_IP:
		value = ""
	}
	return
}

// Get JSON value generally
func generalGetSettingVpnOpenvpnKeyJSON(data connectionData, key string) (value string) {
	switch key {
	default:
		logger.Error("generalGetSettingVpnOpenvpnKeyJSON: invalide key", key)
	case NM_SETTING_VPN_OPENVPN_KEY_REMOTE:
		value = getSettingVpnOpenvpnKeyRemoteJSON(data)
	case NM_SETTING_VPN_OPENVPN_KEY_CONNECTION_TYPE:
		value = getSettingVpnOpenvpnKeyConnectionTypeJSON(data)
	case NM_SETTING_VPN_OPENVPN_KEY_USERNAME:
		value = getSettingVpnOpenvpnKeyUsernameJSON(data)
	case NM_SETTING_VPN_OPENVPN_KEY_PASSWORD_FLAGS:
		value = getSettingVpnOpenvpnKeyPasswordFlagsJSON(data)
	case NM_SETTING_VPN_OPENVPN_KEY_PASSWORD:
		value = getSettingVpnOpenvpnKeyPasswordJSON(data)
	case NM_SETTING_VPN_OPENVPN_KEY_CA:
		value = getSettingVpnOpenvpnKeyCaJSON(data)
	case NM_SETTING_VPN_OPENVPN_KEY_CERT:
		value = getSettingVpnOpenvpnKeyCertJSON(data)
	case NM_SETTING_VPN_OPENVPN_KEY_KEY:
		value = getSettingVpnOpenvpnKeyKeyJSON(data)
	case NM_SETTING_VPN_OPENVPN_KEY_CERTPASS_FLAGS:
		value = getSettingVpnOpenvpnKeyCertpassFlagsJSON(data)
	case NM_SETTING_VPN_OPENVPN_KEY_CERTPASS:
		value = getSettingVpnOpenvpnKeyCertpassJSON(data)
	case NM_SETTING_VPN_OPENVPN_KEY_STATIC_KEY:
		value = getSettingVpnOpenvpnKeyStaticKeyJSON(data)
	case NM_SETTING_VPN_OPENVPN_KEY_STATIC_KEY_DIRECTION:
		value = getSettingVpnOpenvpnKeyStaticKeyDirectionJSON(data)
	case NM_SETTING_VPN_OPENVPN_KEY_REMOTE_IP:
		value = getSettingVpnOpenvpnKeyRemoteIpJSON(data)
	case NM_SETTING_VPN_OPENVPN_KEY_LOCAL_IP:
		value = getSettingVpnOpenvpnKeyLocalIpJSON(data)
	}
	return
}

// Set JSON value generally
func generalSetSettingVpnOpenvpnKeyJSON(data connectionData, key, valueJSON string) (err error) {
	switch key {
	default:
		logger.Error("generalSetSettingVpnOpenvpnKeyJSON: invalide key", key)
	case NM_SETTING_VPN_OPENVPN_KEY_REMOTE:
		err = setSettingVpnOpenvpnKeyRemoteJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENVPN_KEY_CONNECTION_TYPE:
		err = logicSetSettingVpnOpenvpnKeyConnectionTypeJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENVPN_KEY_USERNAME:
		err = setSettingVpnOpenvpnKeyUsernameJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENVPN_KEY_PASSWORD_FLAGS:
		err = setSettingVpnOpenvpnKeyPasswordFlagsJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENVPN_KEY_PASSWORD:
		err = setSettingVpnOpenvpnKeyPasswordJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENVPN_KEY_CA:
		err = logicSetSettingVpnOpenvpnKeyCaJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENVPN_KEY_CERT:
		err = logicSetSettingVpnOpenvpnKeyCertJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENVPN_KEY_KEY:
		err = logicSetSettingVpnOpenvpnKeyKeyJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENVPN_KEY_CERTPASS_FLAGS:
		err = setSettingVpnOpenvpnKeyCertpassFlagsJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENVPN_KEY_CERTPASS:
		err = setSettingVpnOpenvpnKeyCertpassJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENVPN_KEY_STATIC_KEY:
		err = logicSetSettingVpnOpenvpnKeyStaticKeyJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENVPN_KEY_STATIC_KEY_DIRECTION:
		err = setSettingVpnOpenvpnKeyStaticKeyDirectionJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENVPN_KEY_REMOTE_IP:
		err = setSettingVpnOpenvpnKeyRemoteIpJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENVPN_KEY_LOCAL_IP:
		err = setSettingVpnOpenvpnKeyLocalIpJSON(data, valueJSON)
	}
	return
}

// Check if key exists
func isSettingVpnOpenvpnKeyRemoteExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_REMOTE)
}
func isSettingVpnOpenvpnKeyConnectionTypeExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CONNECTION_TYPE)
}
func isSettingVpnOpenvpnKeyUsernameExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_USERNAME)
}
func isSettingVpnOpenvpnKeyPasswordFlagsExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PASSWORD_FLAGS)
}
func isSettingVpnOpenvpnKeyPasswordExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PASSWORD)
}
func isSettingVpnOpenvpnKeyCaExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CA)
}
func isSettingVpnOpenvpnKeyCertExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CERT)
}
func isSettingVpnOpenvpnKeyKeyExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_KEY)
}
func isSettingVpnOpenvpnKeyCertpassFlagsExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CERTPASS_FLAGS)
}
func isSettingVpnOpenvpnKeyCertpassExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CERTPASS)
}
func isSettingVpnOpenvpnKeyStaticKeyExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_STATIC_KEY)
}
func isSettingVpnOpenvpnKeyStaticKeyDirectionExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_STATIC_KEY_DIRECTION)
}
func isSettingVpnOpenvpnKeyRemoteIpExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_REMOTE_IP)
}
func isSettingVpnOpenvpnKeyLocalIpExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_LOCAL_IP)
}

// Ensure section and key exists and not empty
func ensureSectionSettingVpnOpenvpnExists(data connectionData, errs sectionErrors, relatedKey string) {
	if !isSettingSectionExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME) {
		rememberError(errs, relatedKey, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_MISSING_SECTION, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME))
	}
	sectionData, _ := data[NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME]
	if len(sectionData) == 0 {
		rememberError(errs, relatedKey, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_EMPTY_SECTION, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME))
	}
}
func ensureSettingVpnOpenvpnKeyRemoteNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenvpnKeyRemoteExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_REMOTE, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnOpenvpnKeyRemote(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_REMOTE, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnOpenvpnKeyConnectionTypeNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenvpnKeyConnectionTypeExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CONNECTION_TYPE, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnOpenvpnKeyConnectionType(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CONNECTION_TYPE, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnOpenvpnKeyUsernameNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenvpnKeyUsernameExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_USERNAME, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnOpenvpnKeyUsername(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_USERNAME, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnOpenvpnKeyPasswordFlagsNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenvpnKeyPasswordFlagsExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PASSWORD_FLAGS, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnOpenvpnKeyPasswordNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenvpnKeyPasswordExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PASSWORD, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnOpenvpnKeyPassword(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PASSWORD, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnOpenvpnKeyCaNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenvpnKeyCaExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CA, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnOpenvpnKeyCa(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CA, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnOpenvpnKeyCertNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenvpnKeyCertExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CERT, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnOpenvpnKeyCert(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CERT, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnOpenvpnKeyKeyNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenvpnKeyKeyExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_KEY, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnOpenvpnKeyKey(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_KEY, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnOpenvpnKeyCertpassFlagsNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenvpnKeyCertpassFlagsExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CERTPASS_FLAGS, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnOpenvpnKeyCertpassNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenvpnKeyCertpassExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CERTPASS, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnOpenvpnKeyCertpass(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CERTPASS, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnOpenvpnKeyStaticKeyNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenvpnKeyStaticKeyExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_STATIC_KEY, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnOpenvpnKeyStaticKey(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_STATIC_KEY, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnOpenvpnKeyStaticKeyDirectionNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenvpnKeyStaticKeyDirectionExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_STATIC_KEY_DIRECTION, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnOpenvpnKeyRemoteIpNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenvpnKeyRemoteIpExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_REMOTE_IP, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnOpenvpnKeyRemoteIp(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_REMOTE_IP, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnOpenvpnKeyLocalIpNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenvpnKeyLocalIpExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_LOCAL_IP, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnOpenvpnKeyLocalIp(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_LOCAL_IP, NM_KEY_ERROR_EMPTY_VALUE)
	}
}

// Getter
func getSettingVpnOpenvpnKeyRemote(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_REMOTE)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnOpenvpnKeyConnectionType(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CONNECTION_TYPE)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnOpenvpnKeyUsername(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_USERNAME)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnOpenvpnKeyPasswordFlags(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PASSWORD_FLAGS)
	value = interfaceToUint32(ivalue)
	return
}
func getSettingVpnOpenvpnKeyPassword(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PASSWORD)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnOpenvpnKeyCa(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CA)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnOpenvpnKeyCert(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CERT)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnOpenvpnKeyKey(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_KEY)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnOpenvpnKeyCertpassFlags(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CERTPASS_FLAGS)
	value = interfaceToUint32(ivalue)
	return
}
func getSettingVpnOpenvpnKeyCertpass(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CERTPASS)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnOpenvpnKeyStaticKey(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_STATIC_KEY)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnOpenvpnKeyStaticKeyDirection(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_STATIC_KEY_DIRECTION)
	value = interfaceToUint32(ivalue)
	return
}
func getSettingVpnOpenvpnKeyRemoteIp(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_REMOTE_IP)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnOpenvpnKeyLocalIp(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_LOCAL_IP)
	value = interfaceToString(ivalue)
	return
}

// Setter
func setSettingVpnOpenvpnKeyRemote(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_REMOTE, value)
}
func setSettingVpnOpenvpnKeyConnectionType(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CONNECTION_TYPE, value)
}
func setSettingVpnOpenvpnKeyUsername(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_USERNAME, value)
}
func setSettingVpnOpenvpnKeyPasswordFlags(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PASSWORD_FLAGS, value)
}
func setSettingVpnOpenvpnKeyPassword(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PASSWORD, value)
}
func setSettingVpnOpenvpnKeyCa(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CA, value)
}
func setSettingVpnOpenvpnKeyCert(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CERT, value)
}
func setSettingVpnOpenvpnKeyKey(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_KEY, value)
}
func setSettingVpnOpenvpnKeyCertpassFlags(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CERTPASS_FLAGS, value)
}
func setSettingVpnOpenvpnKeyCertpass(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CERTPASS, value)
}
func setSettingVpnOpenvpnKeyStaticKey(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_STATIC_KEY, value)
}
func setSettingVpnOpenvpnKeyStaticKeyDirection(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_STATIC_KEY_DIRECTION, value)
}
func setSettingVpnOpenvpnKeyRemoteIp(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_REMOTE_IP, value)
}
func setSettingVpnOpenvpnKeyLocalIp(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_LOCAL_IP, value)
}

// JSON Getter
func getSettingVpnOpenvpnKeyRemoteJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_REMOTE, getSettingVpnOpenvpnKeyType(NM_SETTING_VPN_OPENVPN_KEY_REMOTE))
	return
}
func getSettingVpnOpenvpnKeyConnectionTypeJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CONNECTION_TYPE, getSettingVpnOpenvpnKeyType(NM_SETTING_VPN_OPENVPN_KEY_CONNECTION_TYPE))
	return
}
func getSettingVpnOpenvpnKeyUsernameJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_USERNAME, getSettingVpnOpenvpnKeyType(NM_SETTING_VPN_OPENVPN_KEY_USERNAME))
	return
}
func getSettingVpnOpenvpnKeyPasswordFlagsJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PASSWORD_FLAGS, getSettingVpnOpenvpnKeyType(NM_SETTING_VPN_OPENVPN_KEY_PASSWORD_FLAGS))
	return
}
func getSettingVpnOpenvpnKeyPasswordJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PASSWORD, getSettingVpnOpenvpnKeyType(NM_SETTING_VPN_OPENVPN_KEY_PASSWORD))
	return
}
func getSettingVpnOpenvpnKeyCaJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CA, getSettingVpnOpenvpnKeyType(NM_SETTING_VPN_OPENVPN_KEY_CA))
	return
}
func getSettingVpnOpenvpnKeyCertJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CERT, getSettingVpnOpenvpnKeyType(NM_SETTING_VPN_OPENVPN_KEY_CERT))
	return
}
func getSettingVpnOpenvpnKeyKeyJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_KEY, getSettingVpnOpenvpnKeyType(NM_SETTING_VPN_OPENVPN_KEY_KEY))
	return
}
func getSettingVpnOpenvpnKeyCertpassFlagsJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CERTPASS_FLAGS, getSettingVpnOpenvpnKeyType(NM_SETTING_VPN_OPENVPN_KEY_CERTPASS_FLAGS))
	return
}
func getSettingVpnOpenvpnKeyCertpassJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CERTPASS, getSettingVpnOpenvpnKeyType(NM_SETTING_VPN_OPENVPN_KEY_CERTPASS))
	return
}
func getSettingVpnOpenvpnKeyStaticKeyJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_STATIC_KEY, getSettingVpnOpenvpnKeyType(NM_SETTING_VPN_OPENVPN_KEY_STATIC_KEY))
	return
}
func getSettingVpnOpenvpnKeyStaticKeyDirectionJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_STATIC_KEY_DIRECTION, getSettingVpnOpenvpnKeyType(NM_SETTING_VPN_OPENVPN_KEY_STATIC_KEY_DIRECTION))
	return
}
func getSettingVpnOpenvpnKeyRemoteIpJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_REMOTE_IP, getSettingVpnOpenvpnKeyType(NM_SETTING_VPN_OPENVPN_KEY_REMOTE_IP))
	return
}
func getSettingVpnOpenvpnKeyLocalIpJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_LOCAL_IP, getSettingVpnOpenvpnKeyType(NM_SETTING_VPN_OPENVPN_KEY_LOCAL_IP))
	return
}

// JSON Setter
func setSettingVpnOpenvpnKeyRemoteJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_REMOTE, valueJSON, getSettingVpnOpenvpnKeyType(NM_SETTING_VPN_OPENVPN_KEY_REMOTE))
}
func setSettingVpnOpenvpnKeyConnectionTypeJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CONNECTION_TYPE, valueJSON, getSettingVpnOpenvpnKeyType(NM_SETTING_VPN_OPENVPN_KEY_CONNECTION_TYPE))
}
func setSettingVpnOpenvpnKeyUsernameJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_USERNAME, valueJSON, getSettingVpnOpenvpnKeyType(NM_SETTING_VPN_OPENVPN_KEY_USERNAME))
}
func setSettingVpnOpenvpnKeyPasswordFlagsJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PASSWORD_FLAGS, valueJSON, getSettingVpnOpenvpnKeyType(NM_SETTING_VPN_OPENVPN_KEY_PASSWORD_FLAGS))
}
func setSettingVpnOpenvpnKeyPasswordJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PASSWORD, valueJSON, getSettingVpnOpenvpnKeyType(NM_SETTING_VPN_OPENVPN_KEY_PASSWORD))
}
func setSettingVpnOpenvpnKeyCaJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CA, valueJSON, getSettingVpnOpenvpnKeyType(NM_SETTING_VPN_OPENVPN_KEY_CA))
}
func setSettingVpnOpenvpnKeyCertJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CERT, valueJSON, getSettingVpnOpenvpnKeyType(NM_SETTING_VPN_OPENVPN_KEY_CERT))
}
func setSettingVpnOpenvpnKeyKeyJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_KEY, valueJSON, getSettingVpnOpenvpnKeyType(NM_SETTING_VPN_OPENVPN_KEY_KEY))
}
func setSettingVpnOpenvpnKeyCertpassFlagsJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CERTPASS_FLAGS, valueJSON, getSettingVpnOpenvpnKeyType(NM_SETTING_VPN_OPENVPN_KEY_CERTPASS_FLAGS))
}
func setSettingVpnOpenvpnKeyCertpassJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CERTPASS, valueJSON, getSettingVpnOpenvpnKeyType(NM_SETTING_VPN_OPENVPN_KEY_CERTPASS))
}
func setSettingVpnOpenvpnKeyStaticKeyJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_STATIC_KEY, valueJSON, getSettingVpnOpenvpnKeyType(NM_SETTING_VPN_OPENVPN_KEY_STATIC_KEY))
}
func setSettingVpnOpenvpnKeyStaticKeyDirectionJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_STATIC_KEY_DIRECTION, valueJSON, getSettingVpnOpenvpnKeyType(NM_SETTING_VPN_OPENVPN_KEY_STATIC_KEY_DIRECTION))
}
func setSettingVpnOpenvpnKeyRemoteIpJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_REMOTE_IP, valueJSON, getSettingVpnOpenvpnKeyType(NM_SETTING_VPN_OPENVPN_KEY_REMOTE_IP))
}
func setSettingVpnOpenvpnKeyLocalIpJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_LOCAL_IP, valueJSON, getSettingVpnOpenvpnKeyType(NM_SETTING_VPN_OPENVPN_KEY_LOCAL_IP))
}

// Logic JSON Setter
func logicSetSettingVpnOpenvpnKeyConnectionTypeJSON(data connectionData, valueJSON string) (err error) {
	err = setSettingVpnOpenvpnKeyConnectionTypeJSON(data, valueJSON)
	if err != nil {
		return
	}
	if isSettingVpnOpenvpnKeyConnectionTypeExists(data) {
		value := getSettingVpnOpenvpnKeyConnectionType(data)
		err = logicSetSettingVpnOpenvpnKeyConnectionType(data, value)
	}
	return
}
func logicSetSettingVpnOpenvpnKeyCaJSON(data connectionData, valueJSON string) (err error) {
	err = setSettingVpnOpenvpnKeyCaJSON(data, valueJSON)
	if err != nil {
		return
	}
	if isSettingVpnOpenvpnKeyCaExists(data) {
		value := getSettingVpnOpenvpnKeyCa(data)
		err = logicSetSettingVpnOpenvpnKeyCa(data, value)
	}
	return
}
func logicSetSettingVpnOpenvpnKeyCertJSON(data connectionData, valueJSON string) (err error) {
	err = setSettingVpnOpenvpnKeyCertJSON(data, valueJSON)
	if err != nil {
		return
	}
	if isSettingVpnOpenvpnKeyCertExists(data) {
		value := getSettingVpnOpenvpnKeyCert(data)
		err = logicSetSettingVpnOpenvpnKeyCert(data, value)
	}
	return
}
func logicSetSettingVpnOpenvpnKeyKeyJSON(data connectionData, valueJSON string) (err error) {
	err = setSettingVpnOpenvpnKeyKeyJSON(data, valueJSON)
	if err != nil {
		return
	}
	if isSettingVpnOpenvpnKeyKeyExists(data) {
		value := getSettingVpnOpenvpnKeyKey(data)
		err = logicSetSettingVpnOpenvpnKeyKey(data, value)
	}
	return
}
func logicSetSettingVpnOpenvpnKeyStaticKeyJSON(data connectionData, valueJSON string) (err error) {
	err = setSettingVpnOpenvpnKeyStaticKeyJSON(data, valueJSON)
	if err != nil {
		return
	}
	if isSettingVpnOpenvpnKeyStaticKeyExists(data) {
		value := getSettingVpnOpenvpnKeyStaticKey(data)
		err = logicSetSettingVpnOpenvpnKeyStaticKey(data, value)
	}
	return
}

// Remover
func removeSettingVpnOpenvpnKeyRemote(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_REMOTE)
}
func removeSettingVpnOpenvpnKeyConnectionType(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CONNECTION_TYPE)
}
func removeSettingVpnOpenvpnKeyUsername(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_USERNAME)
}
func removeSettingVpnOpenvpnKeyPasswordFlags(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PASSWORD_FLAGS)
}
func removeSettingVpnOpenvpnKeyPassword(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PASSWORD)
}
func removeSettingVpnOpenvpnKeyCa(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CA)
}
func removeSettingVpnOpenvpnKeyCert(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CERT)
}
func removeSettingVpnOpenvpnKeyKey(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_KEY)
}
func removeSettingVpnOpenvpnKeyCertpassFlags(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CERTPASS_FLAGS)
}
func removeSettingVpnOpenvpnKeyCertpass(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CERTPASS)
}
func removeSettingVpnOpenvpnKeyStaticKey(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_STATIC_KEY)
}
func removeSettingVpnOpenvpnKeyStaticKeyDirection(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_STATIC_KEY_DIRECTION)
}
func removeSettingVpnOpenvpnKeyRemoteIp(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_REMOTE_IP)
}
func removeSettingVpnOpenvpnKeyLocalIp(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_LOCAL_IP)
}

// Origin file name ../nm_setting_vpn_openvpn_advanced_gen.go
// Get key type
func getSettingVpnOpenvpnAdvancedKeyType(key string) (t ktype) {
	switch key {
	default:
		t = ktypeUnknown
	case NM_SETTING_VPN_OPENVPN_KEY_PORT:
		t = ktypeUint32
	case NM_SETTING_VPN_OPENVPN_KEY_RENEG_SECONDS:
		t = ktypeUint32
	case NM_SETTING_VPN_OPENVPN_KEY_COMP_LZO:
		t = ktypeBoolean
	case NM_SETTING_VPN_OPENVPN_KEY_PROTO_TCP:
		t = ktypeBoolean
	case NM_SETTING_VPN_OPENVPN_KEY_TAP_DEV:
		t = ktypeBoolean
	case NM_SETTING_VPN_OPENVPN_KEY_TUNNEL_MTU:
		t = ktypeUint32
	case NM_SETTING_VPN_OPENVPN_KEY_FRAGMENT_SIZE:
		t = ktypeUint32
	case NM_SETTING_VPN_OPENVPN_KEY_MSSFIX:
		t = ktypeBoolean
	case NM_SETTING_VPN_OPENVPN_KEY_REMOTE_RANDOM:
		t = ktypeBoolean
	}
	return
}

// Check is key in current setting section
func isKeyInSettingVpnOpenvpnAdvanced(key string) bool {
	switch key {
	case NM_SETTING_VPN_OPENVPN_KEY_PORT:
		return true
	case NM_SETTING_VPN_OPENVPN_KEY_RENEG_SECONDS:
		return true
	case NM_SETTING_VPN_OPENVPN_KEY_COMP_LZO:
		return true
	case NM_SETTING_VPN_OPENVPN_KEY_PROTO_TCP:
		return true
	case NM_SETTING_VPN_OPENVPN_KEY_TAP_DEV:
		return true
	case NM_SETTING_VPN_OPENVPN_KEY_TUNNEL_MTU:
		return true
	case NM_SETTING_VPN_OPENVPN_KEY_FRAGMENT_SIZE:
		return true
	case NM_SETTING_VPN_OPENVPN_KEY_MSSFIX:
		return true
	case NM_SETTING_VPN_OPENVPN_KEY_REMOTE_RANDOM:
		return true
	}
	return false
}

// Get key's default value
func getSettingVpnOpenvpnAdvancedDefaultValue(key string) (value interface{}) {
	switch key {
	default:
		logger.Error("invalid key:", key)
	case NM_SETTING_VPN_OPENVPN_KEY_PORT:
		value = 1194
	case NM_SETTING_VPN_OPENVPN_KEY_RENEG_SECONDS:
		value = uint32(0)
	case NM_SETTING_VPN_OPENVPN_KEY_COMP_LZO:
		value = false
	case NM_SETTING_VPN_OPENVPN_KEY_PROTO_TCP:
		value = false
	case NM_SETTING_VPN_OPENVPN_KEY_TAP_DEV:
		value = false
	case NM_SETTING_VPN_OPENVPN_KEY_TUNNEL_MTU:
		value = 1500
	case NM_SETTING_VPN_OPENVPN_KEY_FRAGMENT_SIZE:
		value = 1300
	case NM_SETTING_VPN_OPENVPN_KEY_MSSFIX:
		value = false
	case NM_SETTING_VPN_OPENVPN_KEY_REMOTE_RANDOM:
		value = false
	}
	return
}

// Get JSON value generally
func generalGetSettingVpnOpenvpnAdvancedKeyJSON(data connectionData, key string) (value string) {
	switch key {
	default:
		logger.Error("generalGetSettingVpnOpenvpnAdvancedKeyJSON: invalide key", key)
	case NM_SETTING_VPN_OPENVPN_KEY_PORT:
		value = getSettingVpnOpenvpnKeyPortJSON(data)
	case NM_SETTING_VPN_OPENVPN_KEY_RENEG_SECONDS:
		value = getSettingVpnOpenvpnKeyRenegSecondsJSON(data)
	case NM_SETTING_VPN_OPENVPN_KEY_COMP_LZO:
		value = getSettingVpnOpenvpnKeyCompLzoJSON(data)
	case NM_SETTING_VPN_OPENVPN_KEY_PROTO_TCP:
		value = getSettingVpnOpenvpnKeyProtoTcpJSON(data)
	case NM_SETTING_VPN_OPENVPN_KEY_TAP_DEV:
		value = getSettingVpnOpenvpnKeyTapDevJSON(data)
	case NM_SETTING_VPN_OPENVPN_KEY_TUNNEL_MTU:
		value = getSettingVpnOpenvpnKeyTunnelMtuJSON(data)
	case NM_SETTING_VPN_OPENVPN_KEY_FRAGMENT_SIZE:
		value = getSettingVpnOpenvpnKeyFragmentSizeJSON(data)
	case NM_SETTING_VPN_OPENVPN_KEY_MSSFIX:
		value = getSettingVpnOpenvpnKeyMssfixJSON(data)
	case NM_SETTING_VPN_OPENVPN_KEY_REMOTE_RANDOM:
		value = getSettingVpnOpenvpnKeyRemoteRandomJSON(data)
	}
	return
}

// Set JSON value generally
func generalSetSettingVpnOpenvpnAdvancedKeyJSON(data connectionData, key, valueJSON string) (err error) {
	switch key {
	default:
		logger.Error("generalSetSettingVpnOpenvpnAdvancedKeyJSON: invalide key", key)
	case NM_SETTING_VPN_OPENVPN_KEY_PORT:
		err = setSettingVpnOpenvpnKeyPortJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENVPN_KEY_RENEG_SECONDS:
		err = setSettingVpnOpenvpnKeyRenegSecondsJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENVPN_KEY_COMP_LZO:
		err = setSettingVpnOpenvpnKeyCompLzoJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENVPN_KEY_PROTO_TCP:
		err = setSettingVpnOpenvpnKeyProtoTcpJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENVPN_KEY_TAP_DEV:
		err = setSettingVpnOpenvpnKeyTapDevJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENVPN_KEY_TUNNEL_MTU:
		err = setSettingVpnOpenvpnKeyTunnelMtuJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENVPN_KEY_FRAGMENT_SIZE:
		err = setSettingVpnOpenvpnKeyFragmentSizeJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENVPN_KEY_MSSFIX:
		err = setSettingVpnOpenvpnKeyMssfixJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENVPN_KEY_REMOTE_RANDOM:
		err = setSettingVpnOpenvpnKeyRemoteRandomJSON(data, valueJSON)
	}
	return
}

// Check if key exists
func isSettingVpnOpenvpnKeyPortExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PORT)
}
func isSettingVpnOpenvpnKeyRenegSecondsExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_RENEG_SECONDS)
}
func isSettingVpnOpenvpnKeyCompLzoExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_COMP_LZO)
}
func isSettingVpnOpenvpnKeyProtoTcpExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROTO_TCP)
}
func isSettingVpnOpenvpnKeyTapDevExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TAP_DEV)
}
func isSettingVpnOpenvpnKeyTunnelMtuExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TUNNEL_MTU)
}
func isSettingVpnOpenvpnKeyFragmentSizeExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_FRAGMENT_SIZE)
}
func isSettingVpnOpenvpnKeyMssfixExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_MSSFIX)
}
func isSettingVpnOpenvpnKeyRemoteRandomExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_REMOTE_RANDOM)
}

// Ensure section and key exists and not empty
func ensureSectionSettingVpnOpenvpnAdvancedExists(data connectionData, errs sectionErrors, relatedKey string) {
	if !isSettingSectionExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME) {
		rememberError(errs, relatedKey, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_MISSING_SECTION, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME))
	}
	sectionData, _ := data[NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME]
	if len(sectionData) == 0 {
		rememberError(errs, relatedKey, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_EMPTY_SECTION, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME))
	}
}
func ensureSettingVpnOpenvpnKeyPortNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenvpnKeyPortExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PORT, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnOpenvpnKeyRenegSecondsNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenvpnKeyRenegSecondsExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_RENEG_SECONDS, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnOpenvpnKeyCompLzoNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenvpnKeyCompLzoExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_COMP_LZO, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnOpenvpnKeyProtoTcpNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenvpnKeyProtoTcpExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROTO_TCP, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnOpenvpnKeyTapDevNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenvpnKeyTapDevExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TAP_DEV, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnOpenvpnKeyTunnelMtuNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenvpnKeyTunnelMtuExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TUNNEL_MTU, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnOpenvpnKeyFragmentSizeNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenvpnKeyFragmentSizeExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_FRAGMENT_SIZE, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnOpenvpnKeyMssfixNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenvpnKeyMssfixExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_MSSFIX, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnOpenvpnKeyRemoteRandomNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenvpnKeyRemoteRandomExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_REMOTE_RANDOM, NM_KEY_ERROR_MISSING_VALUE)
	}
}

// Getter
func getSettingVpnOpenvpnKeyPort(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PORT)
	value = interfaceToUint32(ivalue)
	return
}
func getSettingVpnOpenvpnKeyRenegSeconds(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_RENEG_SECONDS)
	value = interfaceToUint32(ivalue)
	return
}
func getSettingVpnOpenvpnKeyCompLzo(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_COMP_LZO)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingVpnOpenvpnKeyProtoTcp(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROTO_TCP)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingVpnOpenvpnKeyTapDev(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TAP_DEV)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingVpnOpenvpnKeyTunnelMtu(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TUNNEL_MTU)
	value = interfaceToUint32(ivalue)
	return
}
func getSettingVpnOpenvpnKeyFragmentSize(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_FRAGMENT_SIZE)
	value = interfaceToUint32(ivalue)
	return
}
func getSettingVpnOpenvpnKeyMssfix(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_MSSFIX)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingVpnOpenvpnKeyRemoteRandom(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_REMOTE_RANDOM)
	value = interfaceToBoolean(ivalue)
	return
}

// Setter
func setSettingVpnOpenvpnKeyPort(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PORT, value)
}
func setSettingVpnOpenvpnKeyRenegSeconds(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_RENEG_SECONDS, value)
}
func setSettingVpnOpenvpnKeyCompLzo(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_COMP_LZO, value)
}
func setSettingVpnOpenvpnKeyProtoTcp(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROTO_TCP, value)
}
func setSettingVpnOpenvpnKeyTapDev(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TAP_DEV, value)
}
func setSettingVpnOpenvpnKeyTunnelMtu(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TUNNEL_MTU, value)
}
func setSettingVpnOpenvpnKeyFragmentSize(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_FRAGMENT_SIZE, value)
}
func setSettingVpnOpenvpnKeyMssfix(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_MSSFIX, value)
}
func setSettingVpnOpenvpnKeyRemoteRandom(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_REMOTE_RANDOM, value)
}

// JSON Getter
func getSettingVpnOpenvpnKeyPortJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PORT, getSettingVpnOpenvpnAdvancedKeyType(NM_SETTING_VPN_OPENVPN_KEY_PORT))
	return
}
func getSettingVpnOpenvpnKeyRenegSecondsJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_RENEG_SECONDS, getSettingVpnOpenvpnAdvancedKeyType(NM_SETTING_VPN_OPENVPN_KEY_RENEG_SECONDS))
	return
}
func getSettingVpnOpenvpnKeyCompLzoJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_COMP_LZO, getSettingVpnOpenvpnAdvancedKeyType(NM_SETTING_VPN_OPENVPN_KEY_COMP_LZO))
	return
}
func getSettingVpnOpenvpnKeyProtoTcpJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROTO_TCP, getSettingVpnOpenvpnAdvancedKeyType(NM_SETTING_VPN_OPENVPN_KEY_PROTO_TCP))
	return
}
func getSettingVpnOpenvpnKeyTapDevJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TAP_DEV, getSettingVpnOpenvpnAdvancedKeyType(NM_SETTING_VPN_OPENVPN_KEY_TAP_DEV))
	return
}
func getSettingVpnOpenvpnKeyTunnelMtuJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TUNNEL_MTU, getSettingVpnOpenvpnAdvancedKeyType(NM_SETTING_VPN_OPENVPN_KEY_TUNNEL_MTU))
	return
}
func getSettingVpnOpenvpnKeyFragmentSizeJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_FRAGMENT_SIZE, getSettingVpnOpenvpnAdvancedKeyType(NM_SETTING_VPN_OPENVPN_KEY_FRAGMENT_SIZE))
	return
}
func getSettingVpnOpenvpnKeyMssfixJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_MSSFIX, getSettingVpnOpenvpnAdvancedKeyType(NM_SETTING_VPN_OPENVPN_KEY_MSSFIX))
	return
}
func getSettingVpnOpenvpnKeyRemoteRandomJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_REMOTE_RANDOM, getSettingVpnOpenvpnAdvancedKeyType(NM_SETTING_VPN_OPENVPN_KEY_REMOTE_RANDOM))
	return
}

// JSON Setter
func setSettingVpnOpenvpnKeyPortJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PORT, valueJSON, getSettingVpnOpenvpnAdvancedKeyType(NM_SETTING_VPN_OPENVPN_KEY_PORT))
}
func setSettingVpnOpenvpnKeyRenegSecondsJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_RENEG_SECONDS, valueJSON, getSettingVpnOpenvpnAdvancedKeyType(NM_SETTING_VPN_OPENVPN_KEY_RENEG_SECONDS))
}
func setSettingVpnOpenvpnKeyCompLzoJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_COMP_LZO, valueJSON, getSettingVpnOpenvpnAdvancedKeyType(NM_SETTING_VPN_OPENVPN_KEY_COMP_LZO))
}
func setSettingVpnOpenvpnKeyProtoTcpJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROTO_TCP, valueJSON, getSettingVpnOpenvpnAdvancedKeyType(NM_SETTING_VPN_OPENVPN_KEY_PROTO_TCP))
}
func setSettingVpnOpenvpnKeyTapDevJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TAP_DEV, valueJSON, getSettingVpnOpenvpnAdvancedKeyType(NM_SETTING_VPN_OPENVPN_KEY_TAP_DEV))
}
func setSettingVpnOpenvpnKeyTunnelMtuJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TUNNEL_MTU, valueJSON, getSettingVpnOpenvpnAdvancedKeyType(NM_SETTING_VPN_OPENVPN_KEY_TUNNEL_MTU))
}
func setSettingVpnOpenvpnKeyFragmentSizeJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_FRAGMENT_SIZE, valueJSON, getSettingVpnOpenvpnAdvancedKeyType(NM_SETTING_VPN_OPENVPN_KEY_FRAGMENT_SIZE))
}
func setSettingVpnOpenvpnKeyMssfixJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_MSSFIX, valueJSON, getSettingVpnOpenvpnAdvancedKeyType(NM_SETTING_VPN_OPENVPN_KEY_MSSFIX))
}
func setSettingVpnOpenvpnKeyRemoteRandomJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_REMOTE_RANDOM, valueJSON, getSettingVpnOpenvpnAdvancedKeyType(NM_SETTING_VPN_OPENVPN_KEY_REMOTE_RANDOM))
}

// Logic JSON Setter

// Remover
func removeSettingVpnOpenvpnKeyPort(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PORT)
}
func removeSettingVpnOpenvpnKeyRenegSeconds(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_RENEG_SECONDS)
}
func removeSettingVpnOpenvpnKeyCompLzo(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_COMP_LZO)
}
func removeSettingVpnOpenvpnKeyProtoTcp(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROTO_TCP)
}
func removeSettingVpnOpenvpnKeyTapDev(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TAP_DEV)
}
func removeSettingVpnOpenvpnKeyTunnelMtu(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TUNNEL_MTU)
}
func removeSettingVpnOpenvpnKeyFragmentSize(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_FRAGMENT_SIZE)
}
func removeSettingVpnOpenvpnKeyMssfix(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_MSSFIX)
}
func removeSettingVpnOpenvpnKeyRemoteRandom(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_ADVANCED_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_REMOTE_RANDOM)
}

// Origin file name ../nm_setting_vpn_openvpn_security_gen.go
// Get key type
func getSettingVpnOpenvpnSecurityKeyType(key string) (t ktype) {
	switch key {
	default:
		t = ktypeUnknown
	case NM_SETTING_VPN_OPENVPN_KEY_CIPHER:
		t = ktypeString
	case NM_SETTING_VPN_OPENVPN_KEY_AUTH:
		t = ktypeString
	}
	return
}

// Check is key in current setting section
func isKeyInSettingVpnOpenvpnSecurity(key string) bool {
	switch key {
	case NM_SETTING_VPN_OPENVPN_KEY_CIPHER:
		return true
	case NM_SETTING_VPN_OPENVPN_KEY_AUTH:
		return true
	}
	return false
}

// Get key's default value
func getSettingVpnOpenvpnSecurityDefaultValue(key string) (value interface{}) {
	switch key {
	default:
		logger.Error("invalid key:", key)
	case NM_SETTING_VPN_OPENVPN_KEY_CIPHER:
		value = ""
	case NM_SETTING_VPN_OPENVPN_KEY_AUTH:
		value = ""
	}
	return
}

// Get JSON value generally
func generalGetSettingVpnOpenvpnSecurityKeyJSON(data connectionData, key string) (value string) {
	switch key {
	default:
		logger.Error("generalGetSettingVpnOpenvpnSecurityKeyJSON: invalide key", key)
	case NM_SETTING_VPN_OPENVPN_KEY_CIPHER:
		value = getSettingVpnOpenvpnKeyCipherJSON(data)
	case NM_SETTING_VPN_OPENVPN_KEY_AUTH:
		value = getSettingVpnOpenvpnKeyAuthJSON(data)
	}
	return
}

// Set JSON value generally
func generalSetSettingVpnOpenvpnSecurityKeyJSON(data connectionData, key, valueJSON string) (err error) {
	switch key {
	default:
		logger.Error("generalSetSettingVpnOpenvpnSecurityKeyJSON: invalide key", key)
	case NM_SETTING_VPN_OPENVPN_KEY_CIPHER:
		err = setSettingVpnOpenvpnKeyCipherJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENVPN_KEY_AUTH:
		err = setSettingVpnOpenvpnKeyAuthJSON(data, valueJSON)
	}
	return
}

// Check if key exists
func isSettingVpnOpenvpnKeyCipherExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_SECURITY_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CIPHER)
}
func isSettingVpnOpenvpnKeyAuthExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_SECURITY_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_AUTH)
}

// Ensure section and key exists and not empty
func ensureSectionSettingVpnOpenvpnSecurityExists(data connectionData, errs sectionErrors, relatedKey string) {
	if !isSettingSectionExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_SECURITY_SETTING_NAME) {
		rememberError(errs, relatedKey, NM_SETTING_ALIAS_VPN_OPENVPN_SECURITY_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_MISSING_SECTION, NM_SETTING_ALIAS_VPN_OPENVPN_SECURITY_SETTING_NAME))
	}
	sectionData, _ := data[NM_SETTING_ALIAS_VPN_OPENVPN_SECURITY_SETTING_NAME]
	if len(sectionData) == 0 {
		rememberError(errs, relatedKey, NM_SETTING_ALIAS_VPN_OPENVPN_SECURITY_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_EMPTY_SECTION, NM_SETTING_ALIAS_VPN_OPENVPN_SECURITY_SETTING_NAME))
	}
}
func ensureSettingVpnOpenvpnKeyCipherNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenvpnKeyCipherExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_SECURITY_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CIPHER, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnOpenvpnKeyCipher(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_SECURITY_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CIPHER, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnOpenvpnKeyAuthNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenvpnKeyAuthExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_SECURITY_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_AUTH, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnOpenvpnKeyAuth(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_SECURITY_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_AUTH, NM_KEY_ERROR_EMPTY_VALUE)
	}
}

// Getter
func getSettingVpnOpenvpnKeyCipher(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SECURITY_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CIPHER)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnOpenvpnKeyAuth(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SECURITY_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_AUTH)
	value = interfaceToString(ivalue)
	return
}

// Setter
func setSettingVpnOpenvpnKeyCipher(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SECURITY_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CIPHER, value)
}
func setSettingVpnOpenvpnKeyAuth(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SECURITY_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_AUTH, value)
}

// JSON Getter
func getSettingVpnOpenvpnKeyCipherJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_SECURITY_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CIPHER, getSettingVpnOpenvpnSecurityKeyType(NM_SETTING_VPN_OPENVPN_KEY_CIPHER))
	return
}
func getSettingVpnOpenvpnKeyAuthJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_SECURITY_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_AUTH, getSettingVpnOpenvpnSecurityKeyType(NM_SETTING_VPN_OPENVPN_KEY_AUTH))
	return
}

// JSON Setter
func setSettingVpnOpenvpnKeyCipherJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_SECURITY_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CIPHER, valueJSON, getSettingVpnOpenvpnSecurityKeyType(NM_SETTING_VPN_OPENVPN_KEY_CIPHER))
}
func setSettingVpnOpenvpnKeyAuthJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_SECURITY_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_AUTH, valueJSON, getSettingVpnOpenvpnSecurityKeyType(NM_SETTING_VPN_OPENVPN_KEY_AUTH))
}

// Logic JSON Setter

// Remover
func removeSettingVpnOpenvpnKeyCipher(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SECURITY_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_CIPHER)
}
func removeSettingVpnOpenvpnKeyAuth(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_SECURITY_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_AUTH)
}

// Origin file name ../nm_setting_vpn_openvpn_tlsauth_gen.go
// Get key type
func getSettingVpnOpenvpnTlsauthKeyType(key string) (t ktype) {
	switch key {
	default:
		t = ktypeUnknown
	case NM_SETTING_VPN_OPENVPN_KEY_TLS_REMOTE:
		t = ktypeString
	case NM_SETTING_VPN_OPENVPN_KEY_REMOTE_CERT_TLS:
		t = ktypeString
	case NM_SETTING_VPN_OPENVPN_KEY_TA:
		t = ktypeString
	case NM_SETTING_VPN_OPENVPN_KEY_TA_DIR:
		t = ktypeUint32
	}
	return
}

// Check is key in current setting section
func isKeyInSettingVpnOpenvpnTlsauth(key string) bool {
	switch key {
	case NM_SETTING_VPN_OPENVPN_KEY_TLS_REMOTE:
		return true
	case NM_SETTING_VPN_OPENVPN_KEY_REMOTE_CERT_TLS:
		return true
	case NM_SETTING_VPN_OPENVPN_KEY_TA:
		return true
	case NM_SETTING_VPN_OPENVPN_KEY_TA_DIR:
		return true
	}
	return false
}

// Get key's default value
func getSettingVpnOpenvpnTlsauthDefaultValue(key string) (value interface{}) {
	switch key {
	default:
		logger.Error("invalid key:", key)
	case NM_SETTING_VPN_OPENVPN_KEY_TLS_REMOTE:
		value = ""
	case NM_SETTING_VPN_OPENVPN_KEY_REMOTE_CERT_TLS:
		value = ""
	case NM_SETTING_VPN_OPENVPN_KEY_TA:
		value = ""
	case NM_SETTING_VPN_OPENVPN_KEY_TA_DIR:
		value = uint32(0)
	}
	return
}

// Get JSON value generally
func generalGetSettingVpnOpenvpnTlsauthKeyJSON(data connectionData, key string) (value string) {
	switch key {
	default:
		logger.Error("generalGetSettingVpnOpenvpnTlsauthKeyJSON: invalide key", key)
	case NM_SETTING_VPN_OPENVPN_KEY_TLS_REMOTE:
		value = getSettingVpnOpenvpnKeyTlsRemoteJSON(data)
	case NM_SETTING_VPN_OPENVPN_KEY_REMOTE_CERT_TLS:
		value = getSettingVpnOpenvpnKeyRemoteCertTlsJSON(data)
	case NM_SETTING_VPN_OPENVPN_KEY_TA:
		value = getSettingVpnOpenvpnKeyTaJSON(data)
	case NM_SETTING_VPN_OPENVPN_KEY_TA_DIR:
		value = getSettingVpnOpenvpnKeyTaDirJSON(data)
	}
	return
}

// Set JSON value generally
func generalSetSettingVpnOpenvpnTlsauthKeyJSON(data connectionData, key, valueJSON string) (err error) {
	switch key {
	default:
		logger.Error("generalSetSettingVpnOpenvpnTlsauthKeyJSON: invalide key", key)
	case NM_SETTING_VPN_OPENVPN_KEY_TLS_REMOTE:
		err = setSettingVpnOpenvpnKeyTlsRemoteJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENVPN_KEY_REMOTE_CERT_TLS:
		err = setSettingVpnOpenvpnKeyRemoteCertTlsJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENVPN_KEY_TA:
		err = setSettingVpnOpenvpnKeyTaJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENVPN_KEY_TA_DIR:
		err = setSettingVpnOpenvpnKeyTaDirJSON(data, valueJSON)
	}
	return
}

// Check if key exists
func isSettingVpnOpenvpnKeyTlsRemoteExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TLS_REMOTE)
}
func isSettingVpnOpenvpnKeyRemoteCertTlsExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_REMOTE_CERT_TLS)
}
func isSettingVpnOpenvpnKeyTaExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TA)
}
func isSettingVpnOpenvpnKeyTaDirExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TA_DIR)
}

// Ensure section and key exists and not empty
func ensureSectionSettingVpnOpenvpnTlsauthExists(data connectionData, errs sectionErrors, relatedKey string) {
	if !isSettingSectionExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME) {
		rememberError(errs, relatedKey, NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_MISSING_SECTION, NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME))
	}
	sectionData, _ := data[NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME]
	if len(sectionData) == 0 {
		rememberError(errs, relatedKey, NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_EMPTY_SECTION, NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME))
	}
}
func ensureSettingVpnOpenvpnKeyTlsRemoteNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenvpnKeyTlsRemoteExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TLS_REMOTE, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnOpenvpnKeyTlsRemote(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TLS_REMOTE, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnOpenvpnKeyRemoteCertTlsNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenvpnKeyRemoteCertTlsExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_REMOTE_CERT_TLS, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnOpenvpnKeyRemoteCertTls(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_REMOTE_CERT_TLS, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnOpenvpnKeyTaNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenvpnKeyTaExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TA, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnOpenvpnKeyTa(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TA, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnOpenvpnKeyTaDirNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenvpnKeyTaDirExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TA_DIR, NM_KEY_ERROR_MISSING_VALUE)
	}
}

// Getter
func getSettingVpnOpenvpnKeyTlsRemote(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TLS_REMOTE)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnOpenvpnKeyRemoteCertTls(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_REMOTE_CERT_TLS)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnOpenvpnKeyTa(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TA)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnOpenvpnKeyTaDir(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TA_DIR)
	value = interfaceToUint32(ivalue)
	return
}

// Setter
func setSettingVpnOpenvpnKeyTlsRemote(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TLS_REMOTE, value)
}
func setSettingVpnOpenvpnKeyRemoteCertTls(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_REMOTE_CERT_TLS, value)
}
func setSettingVpnOpenvpnKeyTa(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TA, value)
}
func setSettingVpnOpenvpnKeyTaDir(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TA_DIR, value)
}

// JSON Getter
func getSettingVpnOpenvpnKeyTlsRemoteJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TLS_REMOTE, getSettingVpnOpenvpnTlsauthKeyType(NM_SETTING_VPN_OPENVPN_KEY_TLS_REMOTE))
	return
}
func getSettingVpnOpenvpnKeyRemoteCertTlsJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_REMOTE_CERT_TLS, getSettingVpnOpenvpnTlsauthKeyType(NM_SETTING_VPN_OPENVPN_KEY_REMOTE_CERT_TLS))
	return
}
func getSettingVpnOpenvpnKeyTaJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TA, getSettingVpnOpenvpnTlsauthKeyType(NM_SETTING_VPN_OPENVPN_KEY_TA))
	return
}
func getSettingVpnOpenvpnKeyTaDirJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TA_DIR, getSettingVpnOpenvpnTlsauthKeyType(NM_SETTING_VPN_OPENVPN_KEY_TA_DIR))
	return
}

// JSON Setter
func setSettingVpnOpenvpnKeyTlsRemoteJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TLS_REMOTE, valueJSON, getSettingVpnOpenvpnTlsauthKeyType(NM_SETTING_VPN_OPENVPN_KEY_TLS_REMOTE))
}
func setSettingVpnOpenvpnKeyRemoteCertTlsJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_REMOTE_CERT_TLS, valueJSON, getSettingVpnOpenvpnTlsauthKeyType(NM_SETTING_VPN_OPENVPN_KEY_REMOTE_CERT_TLS))
}
func setSettingVpnOpenvpnKeyTaJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TA, valueJSON, getSettingVpnOpenvpnTlsauthKeyType(NM_SETTING_VPN_OPENVPN_KEY_TA))
}
func setSettingVpnOpenvpnKeyTaDirJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TA_DIR, valueJSON, getSettingVpnOpenvpnTlsauthKeyType(NM_SETTING_VPN_OPENVPN_KEY_TA_DIR))
}

// Logic JSON Setter

// Remover
func removeSettingVpnOpenvpnKeyTlsRemote(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TLS_REMOTE)
}
func removeSettingVpnOpenvpnKeyRemoteCertTls(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_REMOTE_CERT_TLS)
}
func removeSettingVpnOpenvpnKeyTa(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TA)
}
func removeSettingVpnOpenvpnKeyTaDir(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_TLSAUTH_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_TA_DIR)
}

// Origin file name ../nm_setting_vpn_openvpn_proxies_gen.go
// Get key type
func getSettingVpnOpenvpnProxiesKeyType(key string) (t ktype) {
	switch key {
	default:
		t = ktypeUnknown
	case NM_SETTING_VPN_OPENVPN_KEY_PROXY_TYPE:
		t = ktypeString
	case NM_SETTING_VPN_OPENVPN_KEY_PROXY_SERVER:
		t = ktypeString
	case NM_SETTING_VPN_OPENVPN_KEY_PROXY_PORT:
		t = ktypeUint32
	case NM_SETTING_VPN_OPENVPN_KEY_PROXY_RETRY:
		t = ktypeBoolean
	case NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_USERNAME:
		t = ktypeString
	case NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_PASSWORD:
		t = ktypeString
	case NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_PASSWORD_FLAGS:
		t = ktypeUint32
	}
	return
}

// Check is key in current setting section
func isKeyInSettingVpnOpenvpnProxies(key string) bool {
	switch key {
	case NM_SETTING_VPN_OPENVPN_KEY_PROXY_TYPE:
		return true
	case NM_SETTING_VPN_OPENVPN_KEY_PROXY_SERVER:
		return true
	case NM_SETTING_VPN_OPENVPN_KEY_PROXY_PORT:
		return true
	case NM_SETTING_VPN_OPENVPN_KEY_PROXY_RETRY:
		return true
	case NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_USERNAME:
		return true
	case NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_PASSWORD:
		return true
	case NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_PASSWORD_FLAGS:
		return true
	}
	return false
}

// Get key's default value
func getSettingVpnOpenvpnProxiesDefaultValue(key string) (value interface{}) {
	switch key {
	default:
		logger.Error("invalid key:", key)
	case NM_SETTING_VPN_OPENVPN_KEY_PROXY_TYPE:
		value = "none"
	case NM_SETTING_VPN_OPENVPN_KEY_PROXY_SERVER:
		value = ""
	case NM_SETTING_VPN_OPENVPN_KEY_PROXY_PORT:
		value = uint32(0)
	case NM_SETTING_VPN_OPENVPN_KEY_PROXY_RETRY:
		value = false
	case NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_USERNAME:
		value = ""
	case NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_PASSWORD:
		value = ""
	case NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_PASSWORD_FLAGS:
		value = uint32(0)
	}
	return
}

// Get JSON value generally
func generalGetSettingVpnOpenvpnProxiesKeyJSON(data connectionData, key string) (value string) {
	switch key {
	default:
		logger.Error("generalGetSettingVpnOpenvpnProxiesKeyJSON: invalide key", key)
	case NM_SETTING_VPN_OPENVPN_KEY_PROXY_TYPE:
		value = getSettingVpnOpenvpnKeyProxyTypeJSON(data)
	case NM_SETTING_VPN_OPENVPN_KEY_PROXY_SERVER:
		value = getSettingVpnOpenvpnKeyProxyServerJSON(data)
	case NM_SETTING_VPN_OPENVPN_KEY_PROXY_PORT:
		value = getSettingVpnOpenvpnKeyProxyPortJSON(data)
	case NM_SETTING_VPN_OPENVPN_KEY_PROXY_RETRY:
		value = getSettingVpnOpenvpnKeyProxyRetryJSON(data)
	case NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_USERNAME:
		value = getSettingVpnOpenvpnKeyHttpProxyUsernameJSON(data)
	case NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_PASSWORD:
		value = getSettingVpnOpenvpnKeyHttpProxyPasswordJSON(data)
	case NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_PASSWORD_FLAGS:
		value = getSettingVpnOpenvpnKeyHttpProxyPasswordFlagsJSON(data)
	}
	return
}

// Set JSON value generally
func generalSetSettingVpnOpenvpnProxiesKeyJSON(data connectionData, key, valueJSON string) (err error) {
	switch key {
	default:
		logger.Error("generalSetSettingVpnOpenvpnProxiesKeyJSON: invalide key", key)
	case NM_SETTING_VPN_OPENVPN_KEY_PROXY_TYPE:
		err = logicSetSettingVpnOpenvpnKeyProxyTypeJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENVPN_KEY_PROXY_SERVER:
		err = setSettingVpnOpenvpnKeyProxyServerJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENVPN_KEY_PROXY_PORT:
		err = setSettingVpnOpenvpnKeyProxyPortJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENVPN_KEY_PROXY_RETRY:
		err = setSettingVpnOpenvpnKeyProxyRetryJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_USERNAME:
		err = setSettingVpnOpenvpnKeyHttpProxyUsernameJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_PASSWORD:
		err = setSettingVpnOpenvpnKeyHttpProxyPasswordJSON(data, valueJSON)
	case NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_PASSWORD_FLAGS:
		err = setSettingVpnOpenvpnKeyHttpProxyPasswordFlagsJSON(data, valueJSON)
	}
	return
}

// Check if key exists
func isSettingVpnOpenvpnKeyProxyTypeExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROXY_TYPE)
}
func isSettingVpnOpenvpnKeyProxyServerExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROXY_SERVER)
}
func isSettingVpnOpenvpnKeyProxyPortExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROXY_PORT)
}
func isSettingVpnOpenvpnKeyProxyRetryExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROXY_RETRY)
}
func isSettingVpnOpenvpnKeyHttpProxyUsernameExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_USERNAME)
}
func isSettingVpnOpenvpnKeyHttpProxyPasswordExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_PASSWORD)
}
func isSettingVpnOpenvpnKeyHttpProxyPasswordFlagsExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_PASSWORD_FLAGS)
}

// Ensure section and key exists and not empty
func ensureSectionSettingVpnOpenvpnProxiesExists(data connectionData, errs sectionErrors, relatedKey string) {
	if !isSettingSectionExists(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME) {
		rememberError(errs, relatedKey, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_MISSING_SECTION, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME))
	}
	sectionData, _ := data[NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME]
	if len(sectionData) == 0 {
		rememberError(errs, relatedKey, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_EMPTY_SECTION, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME))
	}
}
func ensureSettingVpnOpenvpnKeyProxyTypeNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenvpnKeyProxyTypeExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROXY_TYPE, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnOpenvpnKeyProxyType(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROXY_TYPE, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnOpenvpnKeyProxyServerNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenvpnKeyProxyServerExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROXY_SERVER, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnOpenvpnKeyProxyServer(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROXY_SERVER, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnOpenvpnKeyProxyPortNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenvpnKeyProxyPortExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROXY_PORT, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnOpenvpnKeyProxyRetryNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenvpnKeyProxyRetryExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROXY_RETRY, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnOpenvpnKeyHttpProxyUsernameNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenvpnKeyHttpProxyUsernameExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_USERNAME, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnOpenvpnKeyHttpProxyUsername(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_USERNAME, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnOpenvpnKeyHttpProxyPasswordNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenvpnKeyHttpProxyPasswordExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_PASSWORD, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnOpenvpnKeyHttpProxyPassword(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_PASSWORD, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnOpenvpnKeyHttpProxyPasswordFlagsNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnOpenvpnKeyHttpProxyPasswordFlagsExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_PASSWORD_FLAGS, NM_KEY_ERROR_MISSING_VALUE)
	}
}

// Getter
func getSettingVpnOpenvpnKeyProxyType(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROXY_TYPE)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnOpenvpnKeyProxyServer(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROXY_SERVER)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnOpenvpnKeyProxyPort(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROXY_PORT)
	value = interfaceToUint32(ivalue)
	return
}
func getSettingVpnOpenvpnKeyProxyRetry(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROXY_RETRY)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingVpnOpenvpnKeyHttpProxyUsername(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_USERNAME)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnOpenvpnKeyHttpProxyPassword(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_PASSWORD)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnOpenvpnKeyHttpProxyPasswordFlags(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_PASSWORD_FLAGS)
	value = interfaceToUint32(ivalue)
	return
}

// Setter
func setSettingVpnOpenvpnKeyProxyType(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROXY_TYPE, value)
}
func setSettingVpnOpenvpnKeyProxyServer(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROXY_SERVER, value)
}
func setSettingVpnOpenvpnKeyProxyPort(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROXY_PORT, value)
}
func setSettingVpnOpenvpnKeyProxyRetry(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROXY_RETRY, value)
}
func setSettingVpnOpenvpnKeyHttpProxyUsername(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_USERNAME, value)
}
func setSettingVpnOpenvpnKeyHttpProxyPassword(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_PASSWORD, value)
}
func setSettingVpnOpenvpnKeyHttpProxyPasswordFlags(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_PASSWORD_FLAGS, value)
}

// JSON Getter
func getSettingVpnOpenvpnKeyProxyTypeJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROXY_TYPE, getSettingVpnOpenvpnProxiesKeyType(NM_SETTING_VPN_OPENVPN_KEY_PROXY_TYPE))
	return
}
func getSettingVpnOpenvpnKeyProxyServerJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROXY_SERVER, getSettingVpnOpenvpnProxiesKeyType(NM_SETTING_VPN_OPENVPN_KEY_PROXY_SERVER))
	return
}
func getSettingVpnOpenvpnKeyProxyPortJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROXY_PORT, getSettingVpnOpenvpnProxiesKeyType(NM_SETTING_VPN_OPENVPN_KEY_PROXY_PORT))
	return
}
func getSettingVpnOpenvpnKeyProxyRetryJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROXY_RETRY, getSettingVpnOpenvpnProxiesKeyType(NM_SETTING_VPN_OPENVPN_KEY_PROXY_RETRY))
	return
}
func getSettingVpnOpenvpnKeyHttpProxyUsernameJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_USERNAME, getSettingVpnOpenvpnProxiesKeyType(NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_USERNAME))
	return
}
func getSettingVpnOpenvpnKeyHttpProxyPasswordJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_PASSWORD, getSettingVpnOpenvpnProxiesKeyType(NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_PASSWORD))
	return
}
func getSettingVpnOpenvpnKeyHttpProxyPasswordFlagsJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_PASSWORD_FLAGS, getSettingVpnOpenvpnProxiesKeyType(NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_PASSWORD_FLAGS))
	return
}

// JSON Setter
func setSettingVpnOpenvpnKeyProxyTypeJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROXY_TYPE, valueJSON, getSettingVpnOpenvpnProxiesKeyType(NM_SETTING_VPN_OPENVPN_KEY_PROXY_TYPE))
}
func setSettingVpnOpenvpnKeyProxyServerJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROXY_SERVER, valueJSON, getSettingVpnOpenvpnProxiesKeyType(NM_SETTING_VPN_OPENVPN_KEY_PROXY_SERVER))
}
func setSettingVpnOpenvpnKeyProxyPortJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROXY_PORT, valueJSON, getSettingVpnOpenvpnProxiesKeyType(NM_SETTING_VPN_OPENVPN_KEY_PROXY_PORT))
}
func setSettingVpnOpenvpnKeyProxyRetryJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROXY_RETRY, valueJSON, getSettingVpnOpenvpnProxiesKeyType(NM_SETTING_VPN_OPENVPN_KEY_PROXY_RETRY))
}
func setSettingVpnOpenvpnKeyHttpProxyUsernameJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_USERNAME, valueJSON, getSettingVpnOpenvpnProxiesKeyType(NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_USERNAME))
}
func setSettingVpnOpenvpnKeyHttpProxyPasswordJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_PASSWORD, valueJSON, getSettingVpnOpenvpnProxiesKeyType(NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_PASSWORD))
}
func setSettingVpnOpenvpnKeyHttpProxyPasswordFlagsJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_PASSWORD_FLAGS, valueJSON, getSettingVpnOpenvpnProxiesKeyType(NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_PASSWORD_FLAGS))
}

// Logic JSON Setter
func logicSetSettingVpnOpenvpnKeyProxyTypeJSON(data connectionData, valueJSON string) (err error) {
	err = setSettingVpnOpenvpnKeyProxyTypeJSON(data, valueJSON)
	if err != nil {
		return
	}
	if isSettingVpnOpenvpnKeyProxyTypeExists(data) {
		value := getSettingVpnOpenvpnKeyProxyType(data)
		err = logicSetSettingVpnOpenvpnKeyProxyType(data, value)
	}
	return
}

// Remover
func removeSettingVpnOpenvpnKeyProxyType(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROXY_TYPE)
}
func removeSettingVpnOpenvpnKeyProxyServer(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROXY_SERVER)
}
func removeSettingVpnOpenvpnKeyProxyPort(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROXY_PORT)
}
func removeSettingVpnOpenvpnKeyProxyRetry(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_PROXY_RETRY)
}
func removeSettingVpnOpenvpnKeyHttpProxyUsername(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_USERNAME)
}
func removeSettingVpnOpenvpnKeyHttpProxyPassword(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_PASSWORD)
}
func removeSettingVpnOpenvpnKeyHttpProxyPasswordFlags(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_OPENVPN_PROXIES_SETTING_NAME, NM_SETTING_VPN_OPENVPN_KEY_HTTP_PROXY_PASSWORD_FLAGS)
}

// Origin file name ../nm_setting_vpn_pptp_gen.go
// Get key type
func getSettingVpnPptpKeyType(key string) (t ktype) {
	switch key {
	default:
		t = ktypeUnknown
	case NM_SETTING_VPN_PPTP_KEY_GATEWAY:
		t = ktypeString
	case NM_SETTING_VPN_PPTP_KEY_USER:
		t = ktypeString
	case NM_SETTING_VPN_PPTP_KEY_PASSWORD_FLAGS:
		t = ktypeUint32
	case NM_SETTING_VPN_PPTP_KEY_PASSWORD:
		t = ktypeString
	case NM_SETTING_VPN_PPTP_KEY_DOMAIN:
		t = ktypeString
	}
	return
}

// Check is key in current setting section
func isKeyInSettingVpnPptp(key string) bool {
	switch key {
	case NM_SETTING_VPN_PPTP_KEY_GATEWAY:
		return true
	case NM_SETTING_VPN_PPTP_KEY_USER:
		return true
	case NM_SETTING_VPN_PPTP_KEY_PASSWORD_FLAGS:
		return true
	case NM_SETTING_VPN_PPTP_KEY_PASSWORD:
		return true
	case NM_SETTING_VPN_PPTP_KEY_DOMAIN:
		return true
	}
	return false
}

// Get key's default value
func getSettingVpnPptpDefaultValue(key string) (value interface{}) {
	switch key {
	default:
		logger.Error("invalid key:", key)
	case NM_SETTING_VPN_PPTP_KEY_GATEWAY:
		value = ""
	case NM_SETTING_VPN_PPTP_KEY_USER:
		value = ""
	case NM_SETTING_VPN_PPTP_KEY_PASSWORD_FLAGS:
		value = uint32(0)
	case NM_SETTING_VPN_PPTP_KEY_PASSWORD:
		value = ""
	case NM_SETTING_VPN_PPTP_KEY_DOMAIN:
		value = ""
	}
	return
}

// Get JSON value generally
func generalGetSettingVpnPptpKeyJSON(data connectionData, key string) (value string) {
	switch key {
	default:
		logger.Error("generalGetSettingVpnPptpKeyJSON: invalide key", key)
	case NM_SETTING_VPN_PPTP_KEY_GATEWAY:
		value = getSettingVpnPptpKeyGatewayJSON(data)
	case NM_SETTING_VPN_PPTP_KEY_USER:
		value = getSettingVpnPptpKeyUserJSON(data)
	case NM_SETTING_VPN_PPTP_KEY_PASSWORD_FLAGS:
		value = getSettingVpnPptpKeyPasswordFlagsJSON(data)
	case NM_SETTING_VPN_PPTP_KEY_PASSWORD:
		value = getSettingVpnPptpKeyPasswordJSON(data)
	case NM_SETTING_VPN_PPTP_KEY_DOMAIN:
		value = getSettingVpnPptpKeyDomainJSON(data)
	}
	return
}

// Set JSON value generally
func generalSetSettingVpnPptpKeyJSON(data connectionData, key, valueJSON string) (err error) {
	switch key {
	default:
		logger.Error("generalSetSettingVpnPptpKeyJSON: invalide key", key)
	case NM_SETTING_VPN_PPTP_KEY_GATEWAY:
		err = setSettingVpnPptpKeyGatewayJSON(data, valueJSON)
	case NM_SETTING_VPN_PPTP_KEY_USER:
		err = setSettingVpnPptpKeyUserJSON(data, valueJSON)
	case NM_SETTING_VPN_PPTP_KEY_PASSWORD_FLAGS:
		err = setSettingVpnPptpKeyPasswordFlagsJSON(data, valueJSON)
	case NM_SETTING_VPN_PPTP_KEY_PASSWORD:
		err = setSettingVpnPptpKeyPasswordJSON(data, valueJSON)
	case NM_SETTING_VPN_PPTP_KEY_DOMAIN:
		err = setSettingVpnPptpKeyDomainJSON(data, valueJSON)
	}
	return
}

// Check if key exists
func isSettingVpnPptpKeyGatewayExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_GATEWAY)
}
func isSettingVpnPptpKeyUserExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_USER)
}
func isSettingVpnPptpKeyPasswordFlagsExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_PASSWORD_FLAGS)
}
func isSettingVpnPptpKeyPasswordExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_PASSWORD)
}
func isSettingVpnPptpKeyDomainExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_DOMAIN)
}

// Ensure section and key exists and not empty
func ensureSectionSettingVpnPptpExists(data connectionData, errs sectionErrors, relatedKey string) {
	if !isSettingSectionExists(data, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME) {
		rememberError(errs, relatedKey, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_MISSING_SECTION, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME))
	}
	sectionData, _ := data[NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME]
	if len(sectionData) == 0 {
		rememberError(errs, relatedKey, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_EMPTY_SECTION, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME))
	}
}
func ensureSettingVpnPptpKeyGatewayNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnPptpKeyGatewayExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_GATEWAY, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnPptpKeyGateway(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_GATEWAY, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnPptpKeyUserNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnPptpKeyUserExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_USER, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnPptpKeyUser(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_USER, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnPptpKeyPasswordFlagsNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnPptpKeyPasswordFlagsExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_PASSWORD_FLAGS, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnPptpKeyPasswordNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnPptpKeyPasswordExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_PASSWORD, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnPptpKeyPassword(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_PASSWORD, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnPptpKeyDomainNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnPptpKeyDomainExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_DOMAIN, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnPptpKeyDomain(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_DOMAIN, NM_KEY_ERROR_EMPTY_VALUE)
	}
}

// Getter
func getSettingVpnPptpKeyGateway(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_GATEWAY)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnPptpKeyUser(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_USER)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnPptpKeyPasswordFlags(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_PASSWORD_FLAGS)
	value = interfaceToUint32(ivalue)
	return
}
func getSettingVpnPptpKeyPassword(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_PASSWORD)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnPptpKeyDomain(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_DOMAIN)
	value = interfaceToString(ivalue)
	return
}

// Setter
func setSettingVpnPptpKeyGateway(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_GATEWAY, value)
}
func setSettingVpnPptpKeyUser(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_USER, value)
}
func setSettingVpnPptpKeyPasswordFlags(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_PASSWORD_FLAGS, value)
}
func setSettingVpnPptpKeyPassword(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_PASSWORD, value)
}
func setSettingVpnPptpKeyDomain(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_DOMAIN, value)
}

// JSON Getter
func getSettingVpnPptpKeyGatewayJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_GATEWAY, getSettingVpnPptpKeyType(NM_SETTING_VPN_PPTP_KEY_GATEWAY))
	return
}
func getSettingVpnPptpKeyUserJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_USER, getSettingVpnPptpKeyType(NM_SETTING_VPN_PPTP_KEY_USER))
	return
}
func getSettingVpnPptpKeyPasswordFlagsJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_PASSWORD_FLAGS, getSettingVpnPptpKeyType(NM_SETTING_VPN_PPTP_KEY_PASSWORD_FLAGS))
	return
}
func getSettingVpnPptpKeyPasswordJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_PASSWORD, getSettingVpnPptpKeyType(NM_SETTING_VPN_PPTP_KEY_PASSWORD))
	return
}
func getSettingVpnPptpKeyDomainJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_DOMAIN, getSettingVpnPptpKeyType(NM_SETTING_VPN_PPTP_KEY_DOMAIN))
	return
}

// JSON Setter
func setSettingVpnPptpKeyGatewayJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_GATEWAY, valueJSON, getSettingVpnPptpKeyType(NM_SETTING_VPN_PPTP_KEY_GATEWAY))
}
func setSettingVpnPptpKeyUserJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_USER, valueJSON, getSettingVpnPptpKeyType(NM_SETTING_VPN_PPTP_KEY_USER))
}
func setSettingVpnPptpKeyPasswordFlagsJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_PASSWORD_FLAGS, valueJSON, getSettingVpnPptpKeyType(NM_SETTING_VPN_PPTP_KEY_PASSWORD_FLAGS))
}
func setSettingVpnPptpKeyPasswordJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_PASSWORD, valueJSON, getSettingVpnPptpKeyType(NM_SETTING_VPN_PPTP_KEY_PASSWORD))
}
func setSettingVpnPptpKeyDomainJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_DOMAIN, valueJSON, getSettingVpnPptpKeyType(NM_SETTING_VPN_PPTP_KEY_DOMAIN))
}

// Logic JSON Setter

// Remover
func removeSettingVpnPptpKeyGateway(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_GATEWAY)
}
func removeSettingVpnPptpKeyUser(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_USER)
}
func removeSettingVpnPptpKeyPasswordFlags(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_PASSWORD_FLAGS)
}
func removeSettingVpnPptpKeyPassword(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_PASSWORD)
}
func removeSettingVpnPptpKeyDomain(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_DOMAIN)
}

// Origin file name ../nm_setting_vpn_pptp_ppp_gen.go
// Get key type
func getSettingVpnPptpPppKeyType(key string) (t ktype) {
	switch key {
	default:
		t = ktypeUnknown
	case NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE:
		t = ktypeBoolean
	case NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE_40:
		t = ktypeBoolean
	case NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE_128:
		t = ktypeBoolean
	case NM_SETTING_VPN_PPTP_KEY_MPPE_STATEFUL:
		t = ktypeBoolean
	case NM_SETTING_VPN_PPTP_KEY_REFUSE_EAP:
		t = ktypeBoolean
	case NM_SETTING_VPN_PPTP_KEY_REFUSE_PAP:
		t = ktypeBoolean
	case NM_SETTING_VPN_PPTP_KEY_REFUSE_CHAP:
		t = ktypeBoolean
	case NM_SETTING_VPN_PPTP_KEY_REFUSE_MSCHAP:
		t = ktypeBoolean
	case NM_SETTING_VPN_PPTP_KEY_REFUSE_MSCHAPV2:
		t = ktypeBoolean
	case NM_SETTING_VPN_PPTP_KEY_NOBSDCOMP:
		t = ktypeBoolean
	case NM_SETTING_VPN_PPTP_KEY_NODEFLATE:
		t = ktypeBoolean
	case NM_SETTING_VPN_PPTP_KEY_NO_VJ_COMP:
		t = ktypeBoolean
	case NM_SETTING_VPN_PPTP_KEY_LCP_ECHO_FAILURE:
		t = ktypeUint32
	case NM_SETTING_VPN_PPTP_KEY_LCP_ECHO_INTERVAL:
		t = ktypeUint32
	}
	return
}

// Check is key in current setting section
func isKeyInSettingVpnPptpPpp(key string) bool {
	switch key {
	case NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE:
		return true
	case NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE_40:
		return true
	case NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE_128:
		return true
	case NM_SETTING_VPN_PPTP_KEY_MPPE_STATEFUL:
		return true
	case NM_SETTING_VPN_PPTP_KEY_REFUSE_EAP:
		return true
	case NM_SETTING_VPN_PPTP_KEY_REFUSE_PAP:
		return true
	case NM_SETTING_VPN_PPTP_KEY_REFUSE_CHAP:
		return true
	case NM_SETTING_VPN_PPTP_KEY_REFUSE_MSCHAP:
		return true
	case NM_SETTING_VPN_PPTP_KEY_REFUSE_MSCHAPV2:
		return true
	case NM_SETTING_VPN_PPTP_KEY_NOBSDCOMP:
		return true
	case NM_SETTING_VPN_PPTP_KEY_NODEFLATE:
		return true
	case NM_SETTING_VPN_PPTP_KEY_NO_VJ_COMP:
		return true
	case NM_SETTING_VPN_PPTP_KEY_LCP_ECHO_FAILURE:
		return true
	case NM_SETTING_VPN_PPTP_KEY_LCP_ECHO_INTERVAL:
		return true
	}
	return false
}

// Get key's default value
func getSettingVpnPptpPppDefaultValue(key string) (value interface{}) {
	switch key {
	default:
		logger.Error("invalid key:", key)
	case NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE:
		value = false
	case NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE_40:
		value = false
	case NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE_128:
		value = false
	case NM_SETTING_VPN_PPTP_KEY_MPPE_STATEFUL:
		value = false
	case NM_SETTING_VPN_PPTP_KEY_REFUSE_EAP:
		value = false
	case NM_SETTING_VPN_PPTP_KEY_REFUSE_PAP:
		value = false
	case NM_SETTING_VPN_PPTP_KEY_REFUSE_CHAP:
		value = false
	case NM_SETTING_VPN_PPTP_KEY_REFUSE_MSCHAP:
		value = false
	case NM_SETTING_VPN_PPTP_KEY_REFUSE_MSCHAPV2:
		value = false
	case NM_SETTING_VPN_PPTP_KEY_NOBSDCOMP:
		value = false
	case NM_SETTING_VPN_PPTP_KEY_NODEFLATE:
		value = false
	case NM_SETTING_VPN_PPTP_KEY_NO_VJ_COMP:
		value = false
	case NM_SETTING_VPN_PPTP_KEY_LCP_ECHO_FAILURE:
		value = uint32(0)
	case NM_SETTING_VPN_PPTP_KEY_LCP_ECHO_INTERVAL:
		value = uint32(0)
	}
	return
}

// Get JSON value generally
func generalGetSettingVpnPptpPppKeyJSON(data connectionData, key string) (value string) {
	switch key {
	default:
		logger.Error("generalGetSettingVpnPptpPppKeyJSON: invalide key", key)
	case NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE:
		value = getSettingVpnPptpKeyRequireMppeJSON(data)
	case NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE_40:
		value = getSettingVpnPptpKeyRequireMppe40JSON(data)
	case NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE_128:
		value = getSettingVpnPptpKeyRequireMppe128JSON(data)
	case NM_SETTING_VPN_PPTP_KEY_MPPE_STATEFUL:
		value = getSettingVpnPptpKeyMppeStatefulJSON(data)
	case NM_SETTING_VPN_PPTP_KEY_REFUSE_EAP:
		value = getSettingVpnPptpKeyRefuseEapJSON(data)
	case NM_SETTING_VPN_PPTP_KEY_REFUSE_PAP:
		value = getSettingVpnPptpKeyRefusePapJSON(data)
	case NM_SETTING_VPN_PPTP_KEY_REFUSE_CHAP:
		value = getSettingVpnPptpKeyRefuseChapJSON(data)
	case NM_SETTING_VPN_PPTP_KEY_REFUSE_MSCHAP:
		value = getSettingVpnPptpKeyRefuseMschapJSON(data)
	case NM_SETTING_VPN_PPTP_KEY_REFUSE_MSCHAPV2:
		value = getSettingVpnPptpKeyRefuseMschapv2JSON(data)
	case NM_SETTING_VPN_PPTP_KEY_NOBSDCOMP:
		value = getSettingVpnPptpKeyNobsdcompJSON(data)
	case NM_SETTING_VPN_PPTP_KEY_NODEFLATE:
		value = getSettingVpnPptpKeyNodeflateJSON(data)
	case NM_SETTING_VPN_PPTP_KEY_NO_VJ_COMP:
		value = getSettingVpnPptpKeyNoVjCompJSON(data)
	case NM_SETTING_VPN_PPTP_KEY_LCP_ECHO_FAILURE:
		value = getSettingVpnPptpKeyLcpEchoFailureJSON(data)
	case NM_SETTING_VPN_PPTP_KEY_LCP_ECHO_INTERVAL:
		value = getSettingVpnPptpKeyLcpEchoIntervalJSON(data)
	}
	return
}

// Set JSON value generally
func generalSetSettingVpnPptpPppKeyJSON(data connectionData, key, valueJSON string) (err error) {
	switch key {
	default:
		logger.Error("generalSetSettingVpnPptpPppKeyJSON: invalide key", key)
	case NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE:
		err = setSettingVpnPptpKeyRequireMppeJSON(data, valueJSON)
	case NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE_40:
		err = setSettingVpnPptpKeyRequireMppe40JSON(data, valueJSON)
	case NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE_128:
		err = setSettingVpnPptpKeyRequireMppe128JSON(data, valueJSON)
	case NM_SETTING_VPN_PPTP_KEY_MPPE_STATEFUL:
		err = setSettingVpnPptpKeyMppeStatefulJSON(data, valueJSON)
	case NM_SETTING_VPN_PPTP_KEY_REFUSE_EAP:
		err = setSettingVpnPptpKeyRefuseEapJSON(data, valueJSON)
	case NM_SETTING_VPN_PPTP_KEY_REFUSE_PAP:
		err = setSettingVpnPptpKeyRefusePapJSON(data, valueJSON)
	case NM_SETTING_VPN_PPTP_KEY_REFUSE_CHAP:
		err = setSettingVpnPptpKeyRefuseChapJSON(data, valueJSON)
	case NM_SETTING_VPN_PPTP_KEY_REFUSE_MSCHAP:
		err = setSettingVpnPptpKeyRefuseMschapJSON(data, valueJSON)
	case NM_SETTING_VPN_PPTP_KEY_REFUSE_MSCHAPV2:
		err = setSettingVpnPptpKeyRefuseMschapv2JSON(data, valueJSON)
	case NM_SETTING_VPN_PPTP_KEY_NOBSDCOMP:
		err = setSettingVpnPptpKeyNobsdcompJSON(data, valueJSON)
	case NM_SETTING_VPN_PPTP_KEY_NODEFLATE:
		err = setSettingVpnPptpKeyNodeflateJSON(data, valueJSON)
	case NM_SETTING_VPN_PPTP_KEY_NO_VJ_COMP:
		err = setSettingVpnPptpKeyNoVjCompJSON(data, valueJSON)
	case NM_SETTING_VPN_PPTP_KEY_LCP_ECHO_FAILURE:
		err = setSettingVpnPptpKeyLcpEchoFailureJSON(data, valueJSON)
	case NM_SETTING_VPN_PPTP_KEY_LCP_ECHO_INTERVAL:
		err = setSettingVpnPptpKeyLcpEchoIntervalJSON(data, valueJSON)
	}
	return
}

// Check if key exists
func isSettingVpnPptpKeyRequireMppeExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE)
}
func isSettingVpnPptpKeyRequireMppe40Exists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE_40)
}
func isSettingVpnPptpKeyRequireMppe128Exists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE_128)
}
func isSettingVpnPptpKeyMppeStatefulExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_MPPE_STATEFUL)
}
func isSettingVpnPptpKeyRefuseEapExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REFUSE_EAP)
}
func isSettingVpnPptpKeyRefusePapExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REFUSE_PAP)
}
func isSettingVpnPptpKeyRefuseChapExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REFUSE_CHAP)
}
func isSettingVpnPptpKeyRefuseMschapExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REFUSE_MSCHAP)
}
func isSettingVpnPptpKeyRefuseMschapv2Exists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REFUSE_MSCHAPV2)
}
func isSettingVpnPptpKeyNobsdcompExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_NOBSDCOMP)
}
func isSettingVpnPptpKeyNodeflateExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_NODEFLATE)
}
func isSettingVpnPptpKeyNoVjCompExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_NO_VJ_COMP)
}
func isSettingVpnPptpKeyLcpEchoFailureExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_LCP_ECHO_FAILURE)
}
func isSettingVpnPptpKeyLcpEchoIntervalExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_LCP_ECHO_INTERVAL)
}

// Ensure section and key exists and not empty
func ensureSectionSettingVpnPptpPppExists(data connectionData, errs sectionErrors, relatedKey string) {
	if !isSettingSectionExists(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME) {
		rememberError(errs, relatedKey, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_MISSING_SECTION, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME))
	}
	sectionData, _ := data[NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME]
	if len(sectionData) == 0 {
		rememberError(errs, relatedKey, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_EMPTY_SECTION, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME))
	}
}
func ensureSettingVpnPptpKeyRequireMppeNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnPptpKeyRequireMppeExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnPptpKeyRequireMppe40NoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnPptpKeyRequireMppe40Exists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE_40, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnPptpKeyRequireMppe128NoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnPptpKeyRequireMppe128Exists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE_128, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnPptpKeyMppeStatefulNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnPptpKeyMppeStatefulExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_MPPE_STATEFUL, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnPptpKeyRefuseEapNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnPptpKeyRefuseEapExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REFUSE_EAP, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnPptpKeyRefusePapNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnPptpKeyRefusePapExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REFUSE_PAP, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnPptpKeyRefuseChapNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnPptpKeyRefuseChapExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REFUSE_CHAP, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnPptpKeyRefuseMschapNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnPptpKeyRefuseMschapExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REFUSE_MSCHAP, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnPptpKeyRefuseMschapv2NoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnPptpKeyRefuseMschapv2Exists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REFUSE_MSCHAPV2, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnPptpKeyNobsdcompNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnPptpKeyNobsdcompExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_NOBSDCOMP, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnPptpKeyNodeflateNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnPptpKeyNodeflateExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_NODEFLATE, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnPptpKeyNoVjCompNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnPptpKeyNoVjCompExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_NO_VJ_COMP, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnPptpKeyLcpEchoFailureNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnPptpKeyLcpEchoFailureExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_LCP_ECHO_FAILURE, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnPptpKeyLcpEchoIntervalNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnPptpKeyLcpEchoIntervalExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_LCP_ECHO_INTERVAL, NM_KEY_ERROR_MISSING_VALUE)
	}
}

// Getter
func getSettingVpnPptpKeyRequireMppe(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingVpnPptpKeyRequireMppe40(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE_40)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingVpnPptpKeyRequireMppe128(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE_128)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingVpnPptpKeyMppeStateful(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_MPPE_STATEFUL)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingVpnPptpKeyRefuseEap(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REFUSE_EAP)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingVpnPptpKeyRefusePap(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REFUSE_PAP)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingVpnPptpKeyRefuseChap(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REFUSE_CHAP)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingVpnPptpKeyRefuseMschap(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REFUSE_MSCHAP)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingVpnPptpKeyRefuseMschapv2(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REFUSE_MSCHAPV2)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingVpnPptpKeyNobsdcomp(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_NOBSDCOMP)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingVpnPptpKeyNodeflate(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_NODEFLATE)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingVpnPptpKeyNoVjComp(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_NO_VJ_COMP)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingVpnPptpKeyLcpEchoFailure(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_LCP_ECHO_FAILURE)
	value = interfaceToUint32(ivalue)
	return
}
func getSettingVpnPptpKeyLcpEchoInterval(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_LCP_ECHO_INTERVAL)
	value = interfaceToUint32(ivalue)
	return
}

// Setter
func setSettingVpnPptpKeyRequireMppe(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE, value)
}
func setSettingVpnPptpKeyRequireMppe40(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE_40, value)
}
func setSettingVpnPptpKeyRequireMppe128(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE_128, value)
}
func setSettingVpnPptpKeyMppeStateful(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_MPPE_STATEFUL, value)
}
func setSettingVpnPptpKeyRefuseEap(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REFUSE_EAP, value)
}
func setSettingVpnPptpKeyRefusePap(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REFUSE_PAP, value)
}
func setSettingVpnPptpKeyRefuseChap(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REFUSE_CHAP, value)
}
func setSettingVpnPptpKeyRefuseMschap(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REFUSE_MSCHAP, value)
}
func setSettingVpnPptpKeyRefuseMschapv2(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REFUSE_MSCHAPV2, value)
}
func setSettingVpnPptpKeyNobsdcomp(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_NOBSDCOMP, value)
}
func setSettingVpnPptpKeyNodeflate(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_NODEFLATE, value)
}
func setSettingVpnPptpKeyNoVjComp(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_NO_VJ_COMP, value)
}
func setSettingVpnPptpKeyLcpEchoFailure(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_LCP_ECHO_FAILURE, value)
}
func setSettingVpnPptpKeyLcpEchoInterval(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_LCP_ECHO_INTERVAL, value)
}

// JSON Getter
func getSettingVpnPptpKeyRequireMppeJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE, getSettingVpnPptpPppKeyType(NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE))
	return
}
func getSettingVpnPptpKeyRequireMppe40JSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE_40, getSettingVpnPptpPppKeyType(NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE_40))
	return
}
func getSettingVpnPptpKeyRequireMppe128JSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE_128, getSettingVpnPptpPppKeyType(NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE_128))
	return
}
func getSettingVpnPptpKeyMppeStatefulJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_MPPE_STATEFUL, getSettingVpnPptpPppKeyType(NM_SETTING_VPN_PPTP_KEY_MPPE_STATEFUL))
	return
}
func getSettingVpnPptpKeyRefuseEapJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REFUSE_EAP, getSettingVpnPptpPppKeyType(NM_SETTING_VPN_PPTP_KEY_REFUSE_EAP))
	return
}
func getSettingVpnPptpKeyRefusePapJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REFUSE_PAP, getSettingVpnPptpPppKeyType(NM_SETTING_VPN_PPTP_KEY_REFUSE_PAP))
	return
}
func getSettingVpnPptpKeyRefuseChapJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REFUSE_CHAP, getSettingVpnPptpPppKeyType(NM_SETTING_VPN_PPTP_KEY_REFUSE_CHAP))
	return
}
func getSettingVpnPptpKeyRefuseMschapJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REFUSE_MSCHAP, getSettingVpnPptpPppKeyType(NM_SETTING_VPN_PPTP_KEY_REFUSE_MSCHAP))
	return
}
func getSettingVpnPptpKeyRefuseMschapv2JSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REFUSE_MSCHAPV2, getSettingVpnPptpPppKeyType(NM_SETTING_VPN_PPTP_KEY_REFUSE_MSCHAPV2))
	return
}
func getSettingVpnPptpKeyNobsdcompJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_NOBSDCOMP, getSettingVpnPptpPppKeyType(NM_SETTING_VPN_PPTP_KEY_NOBSDCOMP))
	return
}
func getSettingVpnPptpKeyNodeflateJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_NODEFLATE, getSettingVpnPptpPppKeyType(NM_SETTING_VPN_PPTP_KEY_NODEFLATE))
	return
}
func getSettingVpnPptpKeyNoVjCompJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_NO_VJ_COMP, getSettingVpnPptpPppKeyType(NM_SETTING_VPN_PPTP_KEY_NO_VJ_COMP))
	return
}
func getSettingVpnPptpKeyLcpEchoFailureJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_LCP_ECHO_FAILURE, getSettingVpnPptpPppKeyType(NM_SETTING_VPN_PPTP_KEY_LCP_ECHO_FAILURE))
	return
}
func getSettingVpnPptpKeyLcpEchoIntervalJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_LCP_ECHO_INTERVAL, getSettingVpnPptpPppKeyType(NM_SETTING_VPN_PPTP_KEY_LCP_ECHO_INTERVAL))
	return
}

// JSON Setter
func setSettingVpnPptpKeyRequireMppeJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE, valueJSON, getSettingVpnPptpPppKeyType(NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE))
}
func setSettingVpnPptpKeyRequireMppe40JSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE_40, valueJSON, getSettingVpnPptpPppKeyType(NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE_40))
}
func setSettingVpnPptpKeyRequireMppe128JSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE_128, valueJSON, getSettingVpnPptpPppKeyType(NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE_128))
}
func setSettingVpnPptpKeyMppeStatefulJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_MPPE_STATEFUL, valueJSON, getSettingVpnPptpPppKeyType(NM_SETTING_VPN_PPTP_KEY_MPPE_STATEFUL))
}
func setSettingVpnPptpKeyRefuseEapJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REFUSE_EAP, valueJSON, getSettingVpnPptpPppKeyType(NM_SETTING_VPN_PPTP_KEY_REFUSE_EAP))
}
func setSettingVpnPptpKeyRefusePapJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REFUSE_PAP, valueJSON, getSettingVpnPptpPppKeyType(NM_SETTING_VPN_PPTP_KEY_REFUSE_PAP))
}
func setSettingVpnPptpKeyRefuseChapJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REFUSE_CHAP, valueJSON, getSettingVpnPptpPppKeyType(NM_SETTING_VPN_PPTP_KEY_REFUSE_CHAP))
}
func setSettingVpnPptpKeyRefuseMschapJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REFUSE_MSCHAP, valueJSON, getSettingVpnPptpPppKeyType(NM_SETTING_VPN_PPTP_KEY_REFUSE_MSCHAP))
}
func setSettingVpnPptpKeyRefuseMschapv2JSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REFUSE_MSCHAPV2, valueJSON, getSettingVpnPptpPppKeyType(NM_SETTING_VPN_PPTP_KEY_REFUSE_MSCHAPV2))
}
func setSettingVpnPptpKeyNobsdcompJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_NOBSDCOMP, valueJSON, getSettingVpnPptpPppKeyType(NM_SETTING_VPN_PPTP_KEY_NOBSDCOMP))
}
func setSettingVpnPptpKeyNodeflateJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_NODEFLATE, valueJSON, getSettingVpnPptpPppKeyType(NM_SETTING_VPN_PPTP_KEY_NODEFLATE))
}
func setSettingVpnPptpKeyNoVjCompJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_NO_VJ_COMP, valueJSON, getSettingVpnPptpPppKeyType(NM_SETTING_VPN_PPTP_KEY_NO_VJ_COMP))
}
func setSettingVpnPptpKeyLcpEchoFailureJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_LCP_ECHO_FAILURE, valueJSON, getSettingVpnPptpPppKeyType(NM_SETTING_VPN_PPTP_KEY_LCP_ECHO_FAILURE))
}
func setSettingVpnPptpKeyLcpEchoIntervalJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_LCP_ECHO_INTERVAL, valueJSON, getSettingVpnPptpPppKeyType(NM_SETTING_VPN_PPTP_KEY_LCP_ECHO_INTERVAL))
}

// Logic JSON Setter

// Remover
func removeSettingVpnPptpKeyRequireMppe(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE)
}
func removeSettingVpnPptpKeyRequireMppe40(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE_40)
}
func removeSettingVpnPptpKeyRequireMppe128(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REQUIRE_MPPE_128)
}
func removeSettingVpnPptpKeyMppeStateful(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_MPPE_STATEFUL)
}
func removeSettingVpnPptpKeyRefuseEap(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REFUSE_EAP)
}
func removeSettingVpnPptpKeyRefusePap(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REFUSE_PAP)
}
func removeSettingVpnPptpKeyRefuseChap(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REFUSE_CHAP)
}
func removeSettingVpnPptpKeyRefuseMschap(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REFUSE_MSCHAP)
}
func removeSettingVpnPptpKeyRefuseMschapv2(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_REFUSE_MSCHAPV2)
}
func removeSettingVpnPptpKeyNobsdcomp(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_NOBSDCOMP)
}
func removeSettingVpnPptpKeyNodeflate(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_NODEFLATE)
}
func removeSettingVpnPptpKeyNoVjComp(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_NO_VJ_COMP)
}
func removeSettingVpnPptpKeyLcpEchoFailure(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_LCP_ECHO_FAILURE)
}
func removeSettingVpnPptpKeyLcpEchoInterval(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_PPTP_PPP_SETTING_NAME, NM_SETTING_VPN_PPTP_KEY_LCP_ECHO_INTERVAL)
}

// Origin file name ../nm_setting_vpn_vpnc_gen.go
// Get key type
func getSettingVpnVpncKeyType(key string) (t ktype) {
	switch key {
	default:
		t = ktypeUnknown
	case NM_SETTING_VPN_VPNC_KEY_GATEWAY:
		t = ktypeString
	case NM_SETTING_VPN_VPNC_KEY_XAUTH_USER:
		t = ktypeString
	case NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD_TYPE:
		t = ktypeString
	case NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD_FLAGS:
		t = ktypeUint32
	case NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD:
		t = ktypeString
	case NM_SETTING_VPN_VPNC_KEY_ID:
		t = ktypeString
	case NM_SETTING_VPN_VPNC_KEY_SECRET_TYPE:
		t = ktypeString
	case NM_SETTING_VPN_VPNC_KEY_SECRET_FLAGS:
		t = ktypeUint32
	case NM_SETTING_VPN_VPNC_KEY_SECRET:
		t = ktypeString
	case NM_SETTING_VPN_VPNC_KEY_AUTHMODE:
		t = ktypeString
	case NM_SETTING_VPN_VPNC_KEY_CA_FILE:
		t = ktypeString
	}
	return
}

// Check is key in current setting section
func isKeyInSettingVpnVpnc(key string) bool {
	switch key {
	case NM_SETTING_VPN_VPNC_KEY_GATEWAY:
		return true
	case NM_SETTING_VPN_VPNC_KEY_XAUTH_USER:
		return true
	case NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD_TYPE:
		return true
	case NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD_FLAGS:
		return true
	case NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD:
		return true
	case NM_SETTING_VPN_VPNC_KEY_ID:
		return true
	case NM_SETTING_VPN_VPNC_KEY_SECRET_TYPE:
		return true
	case NM_SETTING_VPN_VPNC_KEY_SECRET_FLAGS:
		return true
	case NM_SETTING_VPN_VPNC_KEY_SECRET:
		return true
	case NM_SETTING_VPN_VPNC_KEY_AUTHMODE:
		return true
	case NM_SETTING_VPN_VPNC_KEY_CA_FILE:
		return true
	}
	return false
}

// Get key's default value
func getSettingVpnVpncDefaultValue(key string) (value interface{}) {
	switch key {
	default:
		logger.Error("invalid key:", key)
	case NM_SETTING_VPN_VPNC_KEY_GATEWAY:
		value = ""
	case NM_SETTING_VPN_VPNC_KEY_XAUTH_USER:
		value = ""
	case NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD_TYPE:
		value = ""
	case NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD_FLAGS:
		value = uint32(0)
	case NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD:
		value = ""
	case NM_SETTING_VPN_VPNC_KEY_ID:
		value = ""
	case NM_SETTING_VPN_VPNC_KEY_SECRET_TYPE:
		value = ""
	case NM_SETTING_VPN_VPNC_KEY_SECRET_FLAGS:
		value = uint32(0)
	case NM_SETTING_VPN_VPNC_KEY_SECRET:
		value = ""
	case NM_SETTING_VPN_VPNC_KEY_AUTHMODE:
		value = ""
	case NM_SETTING_VPN_VPNC_KEY_CA_FILE:
		value = ""
	}
	return
}

// Get JSON value generally
func generalGetSettingVpnVpncKeyJSON(data connectionData, key string) (value string) {
	switch key {
	default:
		logger.Error("generalGetSettingVpnVpncKeyJSON: invalide key", key)
	case NM_SETTING_VPN_VPNC_KEY_GATEWAY:
		value = getSettingVpnVpncKeyGatewayJSON(data)
	case NM_SETTING_VPN_VPNC_KEY_XAUTH_USER:
		value = getSettingVpnVpncKeyXauthUserJSON(data)
	case NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD_TYPE:
		value = getSettingVpnVpncKeyXauthPasswordTypeJSON(data)
	case NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD_FLAGS:
		value = getSettingVpnVpncKeyXauthPasswordFlagsJSON(data)
	case NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD:
		value = getSettingVpnVpncKeyXauthPasswordJSON(data)
	case NM_SETTING_VPN_VPNC_KEY_ID:
		value = getSettingVpnVpncKeyIdJSON(data)
	case NM_SETTING_VPN_VPNC_KEY_SECRET_TYPE:
		value = getSettingVpnVpncKeySecretTypeJSON(data)
	case NM_SETTING_VPN_VPNC_KEY_SECRET_FLAGS:
		value = getSettingVpnVpncKeySecretFlagsJSON(data)
	case NM_SETTING_VPN_VPNC_KEY_SECRET:
		value = getSettingVpnVpncKeySecretJSON(data)
	case NM_SETTING_VPN_VPNC_KEY_AUTHMODE:
		value = getSettingVpnVpncKeyAuthmodeJSON(data)
	case NM_SETTING_VPN_VPNC_KEY_CA_FILE:
		value = getSettingVpnVpncKeyCaFileJSON(data)
	}
	return
}

// Set JSON value generally
func generalSetSettingVpnVpncKeyJSON(data connectionData, key, valueJSON string) (err error) {
	switch key {
	default:
		logger.Error("generalSetSettingVpnVpncKeyJSON: invalide key", key)
	case NM_SETTING_VPN_VPNC_KEY_GATEWAY:
		err = setSettingVpnVpncKeyGatewayJSON(data, valueJSON)
	case NM_SETTING_VPN_VPNC_KEY_XAUTH_USER:
		err = setSettingVpnVpncKeyXauthUserJSON(data, valueJSON)
	case NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD_TYPE:
		err = setSettingVpnVpncKeyXauthPasswordTypeJSON(data, valueJSON)
	case NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD_FLAGS:
		err = logicSetSettingVpnVpncKeyXauthPasswordFlagsJSON(data, valueJSON)
	case NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD:
		err = setSettingVpnVpncKeyXauthPasswordJSON(data, valueJSON)
	case NM_SETTING_VPN_VPNC_KEY_ID:
		err = setSettingVpnVpncKeyIdJSON(data, valueJSON)
	case NM_SETTING_VPN_VPNC_KEY_SECRET_TYPE:
		err = setSettingVpnVpncKeySecretTypeJSON(data, valueJSON)
	case NM_SETTING_VPN_VPNC_KEY_SECRET_FLAGS:
		err = logicSetSettingVpnVpncKeySecretFlagsJSON(data, valueJSON)
	case NM_SETTING_VPN_VPNC_KEY_SECRET:
		err = setSettingVpnVpncKeySecretJSON(data, valueJSON)
	case NM_SETTING_VPN_VPNC_KEY_AUTHMODE:
		err = setSettingVpnVpncKeyAuthmodeJSON(data, valueJSON)
	case NM_SETTING_VPN_VPNC_KEY_CA_FILE:
		err = setSettingVpnVpncKeyCaFileJSON(data, valueJSON)
	}
	return
}

// Check if key exists
func isSettingVpnVpncKeyGatewayExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_GATEWAY)
}
func isSettingVpnVpncKeyXauthUserExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_XAUTH_USER)
}
func isSettingVpnVpncKeyXauthPasswordTypeExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD_TYPE)
}
func isSettingVpnVpncKeyXauthPasswordFlagsExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD_FLAGS)
}
func isSettingVpnVpncKeyXauthPasswordExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD)
}
func isSettingVpnVpncKeyIdExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_ID)
}
func isSettingVpnVpncKeySecretTypeExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_SECRET_TYPE)
}
func isSettingVpnVpncKeySecretFlagsExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_SECRET_FLAGS)
}
func isSettingVpnVpncKeySecretExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_SECRET)
}
func isSettingVpnVpncKeyAuthmodeExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_AUTHMODE)
}
func isSettingVpnVpncKeyCaFileExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_CA_FILE)
}

// Ensure section and key exists and not empty
func ensureSectionSettingVpnVpncExists(data connectionData, errs sectionErrors, relatedKey string) {
	if !isSettingSectionExists(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME) {
		rememberError(errs, relatedKey, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_MISSING_SECTION, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME))
	}
	sectionData, _ := data[NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME]
	if len(sectionData) == 0 {
		rememberError(errs, relatedKey, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_EMPTY_SECTION, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME))
	}
}
func ensureSettingVpnVpncKeyGatewayNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnVpncKeyGatewayExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_GATEWAY, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnVpncKeyGateway(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_GATEWAY, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnVpncKeyXauthUserNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnVpncKeyXauthUserExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_XAUTH_USER, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnVpncKeyXauthUser(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_XAUTH_USER, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnVpncKeyXauthPasswordTypeNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnVpncKeyXauthPasswordTypeExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD_TYPE, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnVpncKeyXauthPasswordType(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD_TYPE, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnVpncKeyXauthPasswordFlagsNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnVpncKeyXauthPasswordFlagsExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD_FLAGS, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnVpncKeyXauthPasswordNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnVpncKeyXauthPasswordExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnVpncKeyXauthPassword(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnVpncKeyIdNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnVpncKeyIdExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_ID, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnVpncKeyId(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_ID, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnVpncKeySecretTypeNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnVpncKeySecretTypeExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_SECRET_TYPE, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnVpncKeySecretType(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_SECRET_TYPE, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnVpncKeySecretFlagsNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnVpncKeySecretFlagsExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_SECRET_FLAGS, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnVpncKeySecretNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnVpncKeySecretExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_SECRET, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnVpncKeySecret(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_SECRET, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnVpncKeyAuthmodeNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnVpncKeyAuthmodeExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_AUTHMODE, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnVpncKeyAuthmode(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_AUTHMODE, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnVpncKeyCaFileNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnVpncKeyCaFileExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_CA_FILE, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnVpncKeyCaFile(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_CA_FILE, NM_KEY_ERROR_EMPTY_VALUE)
	}
}

// Getter
func getSettingVpnVpncKeyGateway(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_GATEWAY)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnVpncKeyXauthUser(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_XAUTH_USER)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnVpncKeyXauthPasswordType(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD_TYPE)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnVpncKeyXauthPasswordFlags(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD_FLAGS)
	value = interfaceToUint32(ivalue)
	return
}
func getSettingVpnVpncKeyXauthPassword(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnVpncKeyId(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_ID)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnVpncKeySecretType(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_SECRET_TYPE)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnVpncKeySecretFlags(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_SECRET_FLAGS)
	value = interfaceToUint32(ivalue)
	return
}
func getSettingVpnVpncKeySecret(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_SECRET)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnVpncKeyAuthmode(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_AUTHMODE)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnVpncKeyCaFile(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_CA_FILE)
	value = interfaceToString(ivalue)
	return
}

// Setter
func setSettingVpnVpncKeyGateway(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_GATEWAY, value)
}
func setSettingVpnVpncKeyXauthUser(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_XAUTH_USER, value)
}
func setSettingVpnVpncKeyXauthPasswordType(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD_TYPE, value)
}
func setSettingVpnVpncKeyXauthPasswordFlags(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD_FLAGS, value)
}
func setSettingVpnVpncKeyXauthPassword(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD, value)
}
func setSettingVpnVpncKeyId(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_ID, value)
}
func setSettingVpnVpncKeySecretType(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_SECRET_TYPE, value)
}
func setSettingVpnVpncKeySecretFlags(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_SECRET_FLAGS, value)
}
func setSettingVpnVpncKeySecret(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_SECRET, value)
}
func setSettingVpnVpncKeyAuthmode(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_AUTHMODE, value)
}
func setSettingVpnVpncKeyCaFile(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_CA_FILE, value)
}

// JSON Getter
func getSettingVpnVpncKeyGatewayJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_GATEWAY, getSettingVpnVpncKeyType(NM_SETTING_VPN_VPNC_KEY_GATEWAY))
	return
}
func getSettingVpnVpncKeyXauthUserJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_XAUTH_USER, getSettingVpnVpncKeyType(NM_SETTING_VPN_VPNC_KEY_XAUTH_USER))
	return
}
func getSettingVpnVpncKeyXauthPasswordTypeJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD_TYPE, getSettingVpnVpncKeyType(NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD_TYPE))
	return
}
func getSettingVpnVpncKeyXauthPasswordFlagsJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD_FLAGS, getSettingVpnVpncKeyType(NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD_FLAGS))
	return
}
func getSettingVpnVpncKeyXauthPasswordJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD, getSettingVpnVpncKeyType(NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD))
	return
}
func getSettingVpnVpncKeyIdJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_ID, getSettingVpnVpncKeyType(NM_SETTING_VPN_VPNC_KEY_ID))
	return
}
func getSettingVpnVpncKeySecretTypeJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_SECRET_TYPE, getSettingVpnVpncKeyType(NM_SETTING_VPN_VPNC_KEY_SECRET_TYPE))
	return
}
func getSettingVpnVpncKeySecretFlagsJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_SECRET_FLAGS, getSettingVpnVpncKeyType(NM_SETTING_VPN_VPNC_KEY_SECRET_FLAGS))
	return
}
func getSettingVpnVpncKeySecretJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_SECRET, getSettingVpnVpncKeyType(NM_SETTING_VPN_VPNC_KEY_SECRET))
	return
}
func getSettingVpnVpncKeyAuthmodeJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_AUTHMODE, getSettingVpnVpncKeyType(NM_SETTING_VPN_VPNC_KEY_AUTHMODE))
	return
}
func getSettingVpnVpncKeyCaFileJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_CA_FILE, getSettingVpnVpncKeyType(NM_SETTING_VPN_VPNC_KEY_CA_FILE))
	return
}

// JSON Setter
func setSettingVpnVpncKeyGatewayJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_GATEWAY, valueJSON, getSettingVpnVpncKeyType(NM_SETTING_VPN_VPNC_KEY_GATEWAY))
}
func setSettingVpnVpncKeyXauthUserJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_XAUTH_USER, valueJSON, getSettingVpnVpncKeyType(NM_SETTING_VPN_VPNC_KEY_XAUTH_USER))
}
func setSettingVpnVpncKeyXauthPasswordTypeJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD_TYPE, valueJSON, getSettingVpnVpncKeyType(NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD_TYPE))
}
func setSettingVpnVpncKeyXauthPasswordFlagsJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD_FLAGS, valueJSON, getSettingVpnVpncKeyType(NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD_FLAGS))
}
func setSettingVpnVpncKeyXauthPasswordJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD, valueJSON, getSettingVpnVpncKeyType(NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD))
}
func setSettingVpnVpncKeyIdJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_ID, valueJSON, getSettingVpnVpncKeyType(NM_SETTING_VPN_VPNC_KEY_ID))
}
func setSettingVpnVpncKeySecretTypeJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_SECRET_TYPE, valueJSON, getSettingVpnVpncKeyType(NM_SETTING_VPN_VPNC_KEY_SECRET_TYPE))
}
func setSettingVpnVpncKeySecretFlagsJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_SECRET_FLAGS, valueJSON, getSettingVpnVpncKeyType(NM_SETTING_VPN_VPNC_KEY_SECRET_FLAGS))
}
func setSettingVpnVpncKeySecretJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_SECRET, valueJSON, getSettingVpnVpncKeyType(NM_SETTING_VPN_VPNC_KEY_SECRET))
}
func setSettingVpnVpncKeyAuthmodeJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_AUTHMODE, valueJSON, getSettingVpnVpncKeyType(NM_SETTING_VPN_VPNC_KEY_AUTHMODE))
}
func setSettingVpnVpncKeyCaFileJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_CA_FILE, valueJSON, getSettingVpnVpncKeyType(NM_SETTING_VPN_VPNC_KEY_CA_FILE))
}

// Logic JSON Setter
func logicSetSettingVpnVpncKeyXauthPasswordFlagsJSON(data connectionData, valueJSON string) (err error) {
	err = setSettingVpnVpncKeyXauthPasswordFlagsJSON(data, valueJSON)
	if err != nil {
		return
	}
	if isSettingVpnVpncKeyXauthPasswordFlagsExists(data) {
		value := getSettingVpnVpncKeyXauthPasswordFlags(data)
		err = logicSetSettingVpnVpncKeyXauthPasswordFlags(data, value)
	}
	return
}
func logicSetSettingVpnVpncKeySecretFlagsJSON(data connectionData, valueJSON string) (err error) {
	err = setSettingVpnVpncKeySecretFlagsJSON(data, valueJSON)
	if err != nil {
		return
	}
	if isSettingVpnVpncKeySecretFlagsExists(data) {
		value := getSettingVpnVpncKeySecretFlags(data)
		err = logicSetSettingVpnVpncKeySecretFlags(data, value)
	}
	return
}

// Remover
func removeSettingVpnVpncKeyGateway(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_GATEWAY)
}
func removeSettingVpnVpncKeyXauthUser(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_XAUTH_USER)
}
func removeSettingVpnVpncKeyXauthPasswordType(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD_TYPE)
}
func removeSettingVpnVpncKeyXauthPasswordFlags(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD_FLAGS)
}
func removeSettingVpnVpncKeyXauthPassword(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_XAUTH_PASSWORD)
}
func removeSettingVpnVpncKeyId(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_ID)
}
func removeSettingVpnVpncKeySecretType(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_SECRET_TYPE)
}
func removeSettingVpnVpncKeySecretFlags(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_SECRET_FLAGS)
}
func removeSettingVpnVpncKeySecret(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_SECRET)
}
func removeSettingVpnVpncKeyAuthmode(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_AUTHMODE)
}
func removeSettingVpnVpncKeyCaFile(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_CA_FILE)
}

// Origin file name ../nm_setting_vpn_vpnc_advanced_gen.go
// Get key type
func getSettingVpnVpncAdvancedKeyType(key string) (t ktype) {
	switch key {
	default:
		t = ktypeUnknown
	case NM_SETTING_VPN_VPNC_KEY_DOMAIN:
		t = ktypeString
	case NM_SETTING_VPN_VPNC_KEY_VENDOR:
		t = ktypeString
	case NM_SETTING_VPN_VPNC_KEY_APP_VERSION:
		t = ktypeString
	case NM_SETTING_VPN_VPNC_KEY_SINGLE_DES:
		t = ktypeBoolean
	case NM_SETTING_VPN_VPNC_KEY_NO_ENCRYPTION:
		t = ktypeBoolean
	case NM_SETTING_VPN_VPNC_KEY_NAT_TRAVERSAL_MODE:
		t = ktypeString
	case NM_SETTING_VPN_VPNC_KEY_DHGROUP:
		t = ktypeString
	case NM_SETTING_VPN_VPNC_KEY_PERFECT_FORWARD:
		t = ktypeString
	case NM_SETTING_VPN_VPNC_KEY_LOCAL_PORT:
		t = ktypeUint32
	case NM_SETTING_VPN_VPNC_KEY_DPD_IDLE_TIMEOUT:
		t = ktypeUint32
	case NM_SETTING_VPN_VPNC_KEY_CISCO_UDP_ENCAPS_PORT:
		t = ktypeUint32
	}
	return
}

// Check is key in current setting section
func isKeyInSettingVpnVpncAdvanced(key string) bool {
	switch key {
	case NM_SETTING_VPN_VPNC_KEY_DOMAIN:
		return true
	case NM_SETTING_VPN_VPNC_KEY_VENDOR:
		return true
	case NM_SETTING_VPN_VPNC_KEY_APP_VERSION:
		return true
	case NM_SETTING_VPN_VPNC_KEY_SINGLE_DES:
		return true
	case NM_SETTING_VPN_VPNC_KEY_NO_ENCRYPTION:
		return true
	case NM_SETTING_VPN_VPNC_KEY_NAT_TRAVERSAL_MODE:
		return true
	case NM_SETTING_VPN_VPNC_KEY_DHGROUP:
		return true
	case NM_SETTING_VPN_VPNC_KEY_PERFECT_FORWARD:
		return true
	case NM_SETTING_VPN_VPNC_KEY_LOCAL_PORT:
		return true
	case NM_SETTING_VPN_VPNC_KEY_DPD_IDLE_TIMEOUT:
		return true
	case NM_SETTING_VPN_VPNC_KEY_CISCO_UDP_ENCAPS_PORT:
		return true
	}
	return false
}

// Get key's default value
func getSettingVpnVpncAdvancedDefaultValue(key string) (value interface{}) {
	switch key {
	default:
		logger.Error("invalid key:", key)
	case NM_SETTING_VPN_VPNC_KEY_DOMAIN:
		value = ""
	case NM_SETTING_VPN_VPNC_KEY_VENDOR:
		value = ""
	case NM_SETTING_VPN_VPNC_KEY_APP_VERSION:
		value = ""
	case NM_SETTING_VPN_VPNC_KEY_SINGLE_DES:
		value = false
	case NM_SETTING_VPN_VPNC_KEY_NO_ENCRYPTION:
		value = false
	case NM_SETTING_VPN_VPNC_KEY_NAT_TRAVERSAL_MODE:
		value = ""
	case NM_SETTING_VPN_VPNC_KEY_DHGROUP:
		value = ""
	case NM_SETTING_VPN_VPNC_KEY_PERFECT_FORWARD:
		value = ""
	case NM_SETTING_VPN_VPNC_KEY_LOCAL_PORT:
		value = uint32(0)
	case NM_SETTING_VPN_VPNC_KEY_DPD_IDLE_TIMEOUT:
		value = uint32(0)
	case NM_SETTING_VPN_VPNC_KEY_CISCO_UDP_ENCAPS_PORT:
		value = uint32(0)
	}
	return
}

// Get JSON value generally
func generalGetSettingVpnVpncAdvancedKeyJSON(data connectionData, key string) (value string) {
	switch key {
	default:
		logger.Error("generalGetSettingVpnVpncAdvancedKeyJSON: invalide key", key)
	case NM_SETTING_VPN_VPNC_KEY_DOMAIN:
		value = getSettingVpnVpncKeyDomainJSON(data)
	case NM_SETTING_VPN_VPNC_KEY_VENDOR:
		value = getSettingVpnVpncKeyVendorJSON(data)
	case NM_SETTING_VPN_VPNC_KEY_APP_VERSION:
		value = getSettingVpnVpncKeyAppVersionJSON(data)
	case NM_SETTING_VPN_VPNC_KEY_SINGLE_DES:
		value = getSettingVpnVpncKeySingleDesJSON(data)
	case NM_SETTING_VPN_VPNC_KEY_NO_ENCRYPTION:
		value = getSettingVpnVpncKeyNoEncryptionJSON(data)
	case NM_SETTING_VPN_VPNC_KEY_NAT_TRAVERSAL_MODE:
		value = getSettingVpnVpncKeyNatTraversalModeJSON(data)
	case NM_SETTING_VPN_VPNC_KEY_DHGROUP:
		value = getSettingVpnVpncKeyDhgroupJSON(data)
	case NM_SETTING_VPN_VPNC_KEY_PERFECT_FORWARD:
		value = getSettingVpnVpncKeyPerfectForwardJSON(data)
	case NM_SETTING_VPN_VPNC_KEY_LOCAL_PORT:
		value = getSettingVpnVpncKeyLocalPortJSON(data)
	case NM_SETTING_VPN_VPNC_KEY_DPD_IDLE_TIMEOUT:
		value = getSettingVpnVpncKeyDpdIdleTimeoutJSON(data)
	case NM_SETTING_VPN_VPNC_KEY_CISCO_UDP_ENCAPS_PORT:
		value = getSettingVpnVpncKeyCiscoUdpEncapsPortJSON(data)
	}
	return
}

// Set JSON value generally
func generalSetSettingVpnVpncAdvancedKeyJSON(data connectionData, key, valueJSON string) (err error) {
	switch key {
	default:
		logger.Error("generalSetSettingVpnVpncAdvancedKeyJSON: invalide key", key)
	case NM_SETTING_VPN_VPNC_KEY_DOMAIN:
		err = setSettingVpnVpncKeyDomainJSON(data, valueJSON)
	case NM_SETTING_VPN_VPNC_KEY_VENDOR:
		err = setSettingVpnVpncKeyVendorJSON(data, valueJSON)
	case NM_SETTING_VPN_VPNC_KEY_APP_VERSION:
		err = setSettingVpnVpncKeyAppVersionJSON(data, valueJSON)
	case NM_SETTING_VPN_VPNC_KEY_SINGLE_DES:
		err = setSettingVpnVpncKeySingleDesJSON(data, valueJSON)
	case NM_SETTING_VPN_VPNC_KEY_NO_ENCRYPTION:
		err = setSettingVpnVpncKeyNoEncryptionJSON(data, valueJSON)
	case NM_SETTING_VPN_VPNC_KEY_NAT_TRAVERSAL_MODE:
		err = setSettingVpnVpncKeyNatTraversalModeJSON(data, valueJSON)
	case NM_SETTING_VPN_VPNC_KEY_DHGROUP:
		err = setSettingVpnVpncKeyDhgroupJSON(data, valueJSON)
	case NM_SETTING_VPN_VPNC_KEY_PERFECT_FORWARD:
		err = setSettingVpnVpncKeyPerfectForwardJSON(data, valueJSON)
	case NM_SETTING_VPN_VPNC_KEY_LOCAL_PORT:
		err = setSettingVpnVpncKeyLocalPortJSON(data, valueJSON)
	case NM_SETTING_VPN_VPNC_KEY_DPD_IDLE_TIMEOUT:
		err = setSettingVpnVpncKeyDpdIdleTimeoutJSON(data, valueJSON)
	case NM_SETTING_VPN_VPNC_KEY_CISCO_UDP_ENCAPS_PORT:
		err = setSettingVpnVpncKeyCiscoUdpEncapsPortJSON(data, valueJSON)
	}
	return
}

// Check if key exists
func isSettingVpnVpncKeyDomainExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_DOMAIN)
}
func isSettingVpnVpncKeyVendorExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_VENDOR)
}
func isSettingVpnVpncKeyAppVersionExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_APP_VERSION)
}
func isSettingVpnVpncKeySingleDesExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_SINGLE_DES)
}
func isSettingVpnVpncKeyNoEncryptionExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_NO_ENCRYPTION)
}
func isSettingVpnVpncKeyNatTraversalModeExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_NAT_TRAVERSAL_MODE)
}
func isSettingVpnVpncKeyDhgroupExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_DHGROUP)
}
func isSettingVpnVpncKeyPerfectForwardExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_PERFECT_FORWARD)
}
func isSettingVpnVpncKeyLocalPortExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_LOCAL_PORT)
}
func isSettingVpnVpncKeyDpdIdleTimeoutExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_DPD_IDLE_TIMEOUT)
}
func isSettingVpnVpncKeyCiscoUdpEncapsPortExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_CISCO_UDP_ENCAPS_PORT)
}

// Ensure section and key exists and not empty
func ensureSectionSettingVpnVpncAdvancedExists(data connectionData, errs sectionErrors, relatedKey string) {
	if !isSettingSectionExists(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME) {
		rememberError(errs, relatedKey, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_MISSING_SECTION, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME))
	}
	sectionData, _ := data[NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME]
	if len(sectionData) == 0 {
		rememberError(errs, relatedKey, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_EMPTY_SECTION, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME))
	}
}
func ensureSettingVpnVpncKeyDomainNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnVpncKeyDomainExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_DOMAIN, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnVpncKeyDomain(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_DOMAIN, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnVpncKeyVendorNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnVpncKeyVendorExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_VENDOR, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnVpncKeyVendor(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_VENDOR, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnVpncKeyAppVersionNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnVpncKeyAppVersionExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_APP_VERSION, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnVpncKeyAppVersion(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_APP_VERSION, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnVpncKeySingleDesNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnVpncKeySingleDesExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_SINGLE_DES, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnVpncKeyNoEncryptionNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnVpncKeyNoEncryptionExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_NO_ENCRYPTION, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnVpncKeyNatTraversalModeNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnVpncKeyNatTraversalModeExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_NAT_TRAVERSAL_MODE, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnVpncKeyNatTraversalMode(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_NAT_TRAVERSAL_MODE, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnVpncKeyDhgroupNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnVpncKeyDhgroupExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_DHGROUP, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnVpncKeyDhgroup(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_DHGROUP, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnVpncKeyPerfectForwardNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnVpncKeyPerfectForwardExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_PERFECT_FORWARD, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingVpnVpncKeyPerfectForward(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_PERFECT_FORWARD, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingVpnVpncKeyLocalPortNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnVpncKeyLocalPortExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_LOCAL_PORT, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnVpncKeyDpdIdleTimeoutNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnVpncKeyDpdIdleTimeoutExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_DPD_IDLE_TIMEOUT, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingVpnVpncKeyCiscoUdpEncapsPortNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingVpnVpncKeyCiscoUdpEncapsPortExists(data) {
		rememberError(errs, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_CISCO_UDP_ENCAPS_PORT, NM_KEY_ERROR_MISSING_VALUE)
	}
}

// Getter
func getSettingVpnVpncKeyDomain(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_DOMAIN)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnVpncKeyVendor(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_VENDOR)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnVpncKeyAppVersion(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_APP_VERSION)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnVpncKeySingleDes(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_SINGLE_DES)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingVpnVpncKeyNoEncryption(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_NO_ENCRYPTION)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingVpnVpncKeyNatTraversalMode(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_NAT_TRAVERSAL_MODE)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnVpncKeyDhgroup(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_DHGROUP)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnVpncKeyPerfectForward(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_PERFECT_FORWARD)
	value = interfaceToString(ivalue)
	return
}
func getSettingVpnVpncKeyLocalPort(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_LOCAL_PORT)
	value = interfaceToUint32(ivalue)
	return
}
func getSettingVpnVpncKeyDpdIdleTimeout(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_DPD_IDLE_TIMEOUT)
	value = interfaceToUint32(ivalue)
	return
}
func getSettingVpnVpncKeyCiscoUdpEncapsPort(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_CISCO_UDP_ENCAPS_PORT)
	value = interfaceToUint32(ivalue)
	return
}

// Setter
func setSettingVpnVpncKeyDomain(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_DOMAIN, value)
}
func setSettingVpnVpncKeyVendor(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_VENDOR, value)
}
func setSettingVpnVpncKeyAppVersion(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_APP_VERSION, value)
}
func setSettingVpnVpncKeySingleDes(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_SINGLE_DES, value)
}
func setSettingVpnVpncKeyNoEncryption(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_NO_ENCRYPTION, value)
}
func setSettingVpnVpncKeyNatTraversalMode(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_NAT_TRAVERSAL_MODE, value)
}
func setSettingVpnVpncKeyDhgroup(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_DHGROUP, value)
}
func setSettingVpnVpncKeyPerfectForward(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_PERFECT_FORWARD, value)
}
func setSettingVpnVpncKeyLocalPort(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_LOCAL_PORT, value)
}
func setSettingVpnVpncKeyDpdIdleTimeout(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_DPD_IDLE_TIMEOUT, value)
}
func setSettingVpnVpncKeyCiscoUdpEncapsPort(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_CISCO_UDP_ENCAPS_PORT, value)
}

// JSON Getter
func getSettingVpnVpncKeyDomainJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_DOMAIN, getSettingVpnVpncAdvancedKeyType(NM_SETTING_VPN_VPNC_KEY_DOMAIN))
	return
}
func getSettingVpnVpncKeyVendorJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_VENDOR, getSettingVpnVpncAdvancedKeyType(NM_SETTING_VPN_VPNC_KEY_VENDOR))
	return
}
func getSettingVpnVpncKeyAppVersionJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_APP_VERSION, getSettingVpnVpncAdvancedKeyType(NM_SETTING_VPN_VPNC_KEY_APP_VERSION))
	return
}
func getSettingVpnVpncKeySingleDesJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_SINGLE_DES, getSettingVpnVpncAdvancedKeyType(NM_SETTING_VPN_VPNC_KEY_SINGLE_DES))
	return
}
func getSettingVpnVpncKeyNoEncryptionJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_NO_ENCRYPTION, getSettingVpnVpncAdvancedKeyType(NM_SETTING_VPN_VPNC_KEY_NO_ENCRYPTION))
	return
}
func getSettingVpnVpncKeyNatTraversalModeJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_NAT_TRAVERSAL_MODE, getSettingVpnVpncAdvancedKeyType(NM_SETTING_VPN_VPNC_KEY_NAT_TRAVERSAL_MODE))
	return
}
func getSettingVpnVpncKeyDhgroupJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_DHGROUP, getSettingVpnVpncAdvancedKeyType(NM_SETTING_VPN_VPNC_KEY_DHGROUP))
	return
}
func getSettingVpnVpncKeyPerfectForwardJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_PERFECT_FORWARD, getSettingVpnVpncAdvancedKeyType(NM_SETTING_VPN_VPNC_KEY_PERFECT_FORWARD))
	return
}
func getSettingVpnVpncKeyLocalPortJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_LOCAL_PORT, getSettingVpnVpncAdvancedKeyType(NM_SETTING_VPN_VPNC_KEY_LOCAL_PORT))
	return
}
func getSettingVpnVpncKeyDpdIdleTimeoutJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_DPD_IDLE_TIMEOUT, getSettingVpnVpncAdvancedKeyType(NM_SETTING_VPN_VPNC_KEY_DPD_IDLE_TIMEOUT))
	return
}
func getSettingVpnVpncKeyCiscoUdpEncapsPortJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_CISCO_UDP_ENCAPS_PORT, getSettingVpnVpncAdvancedKeyType(NM_SETTING_VPN_VPNC_KEY_CISCO_UDP_ENCAPS_PORT))
	return
}

// JSON Setter
func setSettingVpnVpncKeyDomainJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_DOMAIN, valueJSON, getSettingVpnVpncAdvancedKeyType(NM_SETTING_VPN_VPNC_KEY_DOMAIN))
}
func setSettingVpnVpncKeyVendorJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_VENDOR, valueJSON, getSettingVpnVpncAdvancedKeyType(NM_SETTING_VPN_VPNC_KEY_VENDOR))
}
func setSettingVpnVpncKeyAppVersionJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_APP_VERSION, valueJSON, getSettingVpnVpncAdvancedKeyType(NM_SETTING_VPN_VPNC_KEY_APP_VERSION))
}
func setSettingVpnVpncKeySingleDesJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_SINGLE_DES, valueJSON, getSettingVpnVpncAdvancedKeyType(NM_SETTING_VPN_VPNC_KEY_SINGLE_DES))
}
func setSettingVpnVpncKeyNoEncryptionJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_NO_ENCRYPTION, valueJSON, getSettingVpnVpncAdvancedKeyType(NM_SETTING_VPN_VPNC_KEY_NO_ENCRYPTION))
}
func setSettingVpnVpncKeyNatTraversalModeJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_NAT_TRAVERSAL_MODE, valueJSON, getSettingVpnVpncAdvancedKeyType(NM_SETTING_VPN_VPNC_KEY_NAT_TRAVERSAL_MODE))
}
func setSettingVpnVpncKeyDhgroupJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_DHGROUP, valueJSON, getSettingVpnVpncAdvancedKeyType(NM_SETTING_VPN_VPNC_KEY_DHGROUP))
}
func setSettingVpnVpncKeyPerfectForwardJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_PERFECT_FORWARD, valueJSON, getSettingVpnVpncAdvancedKeyType(NM_SETTING_VPN_VPNC_KEY_PERFECT_FORWARD))
}
func setSettingVpnVpncKeyLocalPortJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_LOCAL_PORT, valueJSON, getSettingVpnVpncAdvancedKeyType(NM_SETTING_VPN_VPNC_KEY_LOCAL_PORT))
}
func setSettingVpnVpncKeyDpdIdleTimeoutJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_DPD_IDLE_TIMEOUT, valueJSON, getSettingVpnVpncAdvancedKeyType(NM_SETTING_VPN_VPNC_KEY_DPD_IDLE_TIMEOUT))
}
func setSettingVpnVpncKeyCiscoUdpEncapsPortJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_CISCO_UDP_ENCAPS_PORT, valueJSON, getSettingVpnVpncAdvancedKeyType(NM_SETTING_VPN_VPNC_KEY_CISCO_UDP_ENCAPS_PORT))
}

// Logic JSON Setter

// Remover
func removeSettingVpnVpncKeyDomain(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_DOMAIN)
}
func removeSettingVpnVpncKeyVendor(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_VENDOR)
}
func removeSettingVpnVpncKeyAppVersion(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_APP_VERSION)
}
func removeSettingVpnVpncKeySingleDes(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_SINGLE_DES)
}
func removeSettingVpnVpncKeyNoEncryption(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_NO_ENCRYPTION)
}
func removeSettingVpnVpncKeyNatTraversalMode(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_NAT_TRAVERSAL_MODE)
}
func removeSettingVpnVpncKeyDhgroup(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_DHGROUP)
}
func removeSettingVpnVpncKeyPerfectForward(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_PERFECT_FORWARD)
}
func removeSettingVpnVpncKeyLocalPort(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_LOCAL_PORT)
}
func removeSettingVpnVpncKeyDpdIdleTimeout(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_DPD_IDLE_TIMEOUT)
}
func removeSettingVpnVpncKeyCiscoUdpEncapsPort(data connectionData) {
	removeSettingKey(data, NM_SETTING_ALIAS_VPN_VPNC_ADVANCED_SETTING_NAME, NM_SETTING_VPN_VPNC_KEY_CISCO_UDP_ENCAPS_PORT)
}

// Origin file name ../nm_setting_wired_gen.go
// Get key type
func getSettingWiredKeyType(key string) (t ktype) {
	switch key {
	default:
		t = ktypeUnknown
	case NM_SETTING_WIRED_PORT:
		t = ktypeString
	case NM_SETTING_WIRED_SPEED:
		t = ktypeUint32
	case NM_SETTING_WIRED_DUPLEX:
		t = ktypeString
	case NM_SETTING_WIRED_AUTO_NEGOTIATE:
		t = ktypeBoolean
	case NM_SETTING_WIRED_MAC_ADDRESS:
		t = ktypeWrapperMacAddress
	case NM_SETTING_WIRED_CLONED_MAC_ADDRESS:
		t = ktypeWrapperMacAddress
	case NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST:
		t = ktypeArrayString
	case NM_SETTING_WIRED_MTU:
		t = ktypeUint32
	case NM_SETTING_WIRED_S390_SUBCHANNELS:
		t = ktypeArrayString
	case NM_SETTING_WIRED_S390_NETTYPE:
		t = ktypeString
	case NM_SETTING_WIRED_S390_OPTIONS:
		t = ktypeDictStringString
	}
	return
}

// Check is key in current setting section
func isKeyInSettingWired(key string) bool {
	switch key {
	case NM_SETTING_WIRED_PORT:
		return true
	case NM_SETTING_WIRED_SPEED:
		return true
	case NM_SETTING_WIRED_DUPLEX:
		return true
	case NM_SETTING_WIRED_AUTO_NEGOTIATE:
		return true
	case NM_SETTING_WIRED_MAC_ADDRESS:
		return true
	case NM_SETTING_WIRED_CLONED_MAC_ADDRESS:
		return true
	case NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST:
		return true
	case NM_SETTING_WIRED_MTU:
		return true
	case NM_SETTING_WIRED_S390_SUBCHANNELS:
		return true
	case NM_SETTING_WIRED_S390_NETTYPE:
		return true
	case NM_SETTING_WIRED_S390_OPTIONS:
		return true
	}
	return false
}

// Get key's default value
func getSettingWiredDefaultValue(key string) (value interface{}) {
	switch key {
	default:
		logger.Error("invalid key:", key)
	case NM_SETTING_WIRED_PORT:
		value = ""
	case NM_SETTING_WIRED_SPEED:
		value = uint32(0)
	case NM_SETTING_WIRED_DUPLEX:
		value = ""
	case NM_SETTING_WIRED_AUTO_NEGOTIATE:
		value = true
	case NM_SETTING_WIRED_MAC_ADDRESS:
		value = make([]byte, 0)
	case NM_SETTING_WIRED_CLONED_MAC_ADDRESS:
		value = make([]byte, 0)
	case NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST:
		value = make([]string, 0)
	case NM_SETTING_WIRED_MTU:
		value = uint32(0)
	case NM_SETTING_WIRED_S390_SUBCHANNELS:
		value = make([]string, 0)
	case NM_SETTING_WIRED_S390_NETTYPE:
		value = ""
	case NM_SETTING_WIRED_S390_OPTIONS:
		value = make(map[string]string)
	}
	return
}

// Get JSON value generally
func generalGetSettingWiredKeyJSON(data connectionData, key string) (value string) {
	switch key {
	default:
		logger.Error("generalGetSettingWiredKeyJSON: invalide key", key)
	case NM_SETTING_WIRED_PORT:
		value = getSettingWiredPortJSON(data)
	case NM_SETTING_WIRED_SPEED:
		value = getSettingWiredSpeedJSON(data)
	case NM_SETTING_WIRED_DUPLEX:
		value = getSettingWiredDuplexJSON(data)
	case NM_SETTING_WIRED_AUTO_NEGOTIATE:
		value = getSettingWiredAutoNegotiateJSON(data)
	case NM_SETTING_WIRED_MAC_ADDRESS:
		value = getSettingWiredMacAddressJSON(data)
	case NM_SETTING_WIRED_CLONED_MAC_ADDRESS:
		value = getSettingWiredClonedMacAddressJSON(data)
	case NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST:
		value = getSettingWiredMacAddressBlacklistJSON(data)
	case NM_SETTING_WIRED_MTU:
		value = getSettingWiredMtuJSON(data)
	case NM_SETTING_WIRED_S390_SUBCHANNELS:
		value = getSettingWiredS390SubchannelsJSON(data)
	case NM_SETTING_WIRED_S390_NETTYPE:
		value = getSettingWiredS390NettypeJSON(data)
	case NM_SETTING_WIRED_S390_OPTIONS:
		value = getSettingWiredS390OptionsJSON(data)
	}
	return
}

// Set JSON value generally
func generalSetSettingWiredKeyJSON(data connectionData, key, valueJSON string) (err error) {
	switch key {
	default:
		logger.Error("generalSetSettingWiredKeyJSON: invalide key", key)
	case NM_SETTING_WIRED_PORT:
		err = setSettingWiredPortJSON(data, valueJSON)
	case NM_SETTING_WIRED_SPEED:
		err = setSettingWiredSpeedJSON(data, valueJSON)
	case NM_SETTING_WIRED_DUPLEX:
		err = setSettingWiredDuplexJSON(data, valueJSON)
	case NM_SETTING_WIRED_AUTO_NEGOTIATE:
		err = setSettingWiredAutoNegotiateJSON(data, valueJSON)
	case NM_SETTING_WIRED_MAC_ADDRESS:
		err = setSettingWiredMacAddressJSON(data, valueJSON)
	case NM_SETTING_WIRED_CLONED_MAC_ADDRESS:
		err = setSettingWiredClonedMacAddressJSON(data, valueJSON)
	case NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST:
		err = setSettingWiredMacAddressBlacklistJSON(data, valueJSON)
	case NM_SETTING_WIRED_MTU:
		err = setSettingWiredMtuJSON(data, valueJSON)
	case NM_SETTING_WIRED_S390_SUBCHANNELS:
		err = setSettingWiredS390SubchannelsJSON(data, valueJSON)
	case NM_SETTING_WIRED_S390_NETTYPE:
		err = setSettingWiredS390NettypeJSON(data, valueJSON)
	case NM_SETTING_WIRED_S390_OPTIONS:
		err = setSettingWiredS390OptionsJSON(data, valueJSON)
	}
	return
}

// Check if key exists
func isSettingWiredPortExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_PORT)
}
func isSettingWiredSpeedExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_SPEED)
}
func isSettingWiredDuplexExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_DUPLEX)
}
func isSettingWiredAutoNegotiateExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_AUTO_NEGOTIATE)
}
func isSettingWiredMacAddressExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_MAC_ADDRESS)
}
func isSettingWiredClonedMacAddressExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_CLONED_MAC_ADDRESS)
}
func isSettingWiredMacAddressBlacklistExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST)
}
func isSettingWiredMtuExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_MTU)
}
func isSettingWiredS390SubchannelsExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_S390_SUBCHANNELS)
}
func isSettingWiredS390NettypeExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_S390_NETTYPE)
}
func isSettingWiredS390OptionsExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_S390_OPTIONS)
}

// Ensure section and key exists and not empty
func ensureSectionSettingWiredExists(data connectionData, errs sectionErrors, relatedKey string) {
	if !isSettingSectionExists(data, NM_SETTING_WIRED_SETTING_NAME) {
		rememberError(errs, relatedKey, NM_SETTING_WIRED_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_MISSING_SECTION, NM_SETTING_WIRED_SETTING_NAME))
	}
	sectionData, _ := data[NM_SETTING_WIRED_SETTING_NAME]
	if len(sectionData) == 0 {
		rememberError(errs, relatedKey, NM_SETTING_WIRED_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_EMPTY_SECTION, NM_SETTING_WIRED_SETTING_NAME))
	}
}
func ensureSettingWiredPortNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWiredPortExists(data) {
		rememberError(errs, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_PORT, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingWiredPort(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_PORT, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingWiredSpeedNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWiredSpeedExists(data) {
		rememberError(errs, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_SPEED, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingWiredDuplexNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWiredDuplexExists(data) {
		rememberError(errs, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_DUPLEX, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingWiredDuplex(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_DUPLEX, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingWiredAutoNegotiateNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWiredAutoNegotiateExists(data) {
		rememberError(errs, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_AUTO_NEGOTIATE, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingWiredMacAddressNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWiredMacAddressExists(data) {
		rememberError(errs, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_MAC_ADDRESS, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingWiredMacAddress(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_MAC_ADDRESS, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingWiredClonedMacAddressNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWiredClonedMacAddressExists(data) {
		rememberError(errs, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_CLONED_MAC_ADDRESS, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingWiredClonedMacAddress(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_CLONED_MAC_ADDRESS, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingWiredMacAddressBlacklistNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWiredMacAddressBlacklistExists(data) {
		rememberError(errs, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingWiredMacAddressBlacklist(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingWiredMtuNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWiredMtuExists(data) {
		rememberError(errs, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_MTU, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingWiredS390SubchannelsNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWiredS390SubchannelsExists(data) {
		rememberError(errs, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_S390_SUBCHANNELS, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingWiredS390Subchannels(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_S390_SUBCHANNELS, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingWiredS390NettypeNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWiredS390NettypeExists(data) {
		rememberError(errs, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_S390_NETTYPE, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingWiredS390Nettype(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_S390_NETTYPE, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingWiredS390OptionsNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWiredS390OptionsExists(data) {
		rememberError(errs, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_S390_OPTIONS, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingWiredS390Options(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_S390_OPTIONS, NM_KEY_ERROR_EMPTY_VALUE)
	}
}

// Getter
func getSettingWiredPort(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_PORT)
	value = interfaceToString(ivalue)
	return
}
func getSettingWiredSpeed(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_SPEED)
	value = interfaceToUint32(ivalue)
	return
}
func getSettingWiredDuplex(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_DUPLEX)
	value = interfaceToString(ivalue)
	return
}
func getSettingWiredAutoNegotiate(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_AUTO_NEGOTIATE)
	value = interfaceToBoolean(ivalue)
	return
}
func getSettingWiredMacAddress(data connectionData) (value []byte) {
	ivalue := getSettingKey(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_MAC_ADDRESS)
	value = interfaceToArrayByte(ivalue)
	return
}
func getSettingWiredClonedMacAddress(data connectionData) (value []byte) {
	ivalue := getSettingKey(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_CLONED_MAC_ADDRESS)
	value = interfaceToArrayByte(ivalue)
	return
}
func getSettingWiredMacAddressBlacklist(data connectionData) (value []string) {
	ivalue := getSettingKey(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST)
	value = interfaceToArrayString(ivalue)
	return
}
func getSettingWiredMtu(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_MTU)
	value = interfaceToUint32(ivalue)
	return
}
func getSettingWiredS390Subchannels(data connectionData) (value []string) {
	ivalue := getSettingKey(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_S390_SUBCHANNELS)
	value = interfaceToArrayString(ivalue)
	return
}
func getSettingWiredS390Nettype(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_S390_NETTYPE)
	value = interfaceToString(ivalue)
	return
}
func getSettingWiredS390Options(data connectionData) (value map[string]string) {
	ivalue := getSettingKey(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_S390_OPTIONS)
	value = interfaceToDictStringString(ivalue)
	return
}

// Setter
func setSettingWiredPort(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_PORT, value)
}
func setSettingWiredSpeed(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_SPEED, value)
}
func setSettingWiredDuplex(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_DUPLEX, value)
}
func setSettingWiredAutoNegotiate(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_AUTO_NEGOTIATE, value)
}
func setSettingWiredMacAddress(data connectionData, value []byte) {
	setSettingKey(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_MAC_ADDRESS, value)
}
func setSettingWiredClonedMacAddress(data connectionData, value []byte) {
	setSettingKey(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_CLONED_MAC_ADDRESS, value)
}
func setSettingWiredMacAddressBlacklist(data connectionData, value []string) {
	setSettingKey(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST, value)
}
func setSettingWiredMtu(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_MTU, value)
}
func setSettingWiredS390Subchannels(data connectionData, value []string) {
	setSettingKey(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_S390_SUBCHANNELS, value)
}
func setSettingWiredS390Nettype(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_S390_NETTYPE, value)
}
func setSettingWiredS390Options(data connectionData, value map[string]string) {
	setSettingKey(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_S390_OPTIONS, value)
}

// JSON Getter
func getSettingWiredPortJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_PORT, getSettingWiredKeyType(NM_SETTING_WIRED_PORT))
	return
}
func getSettingWiredSpeedJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_SPEED, getSettingWiredKeyType(NM_SETTING_WIRED_SPEED))
	return
}
func getSettingWiredDuplexJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_DUPLEX, getSettingWiredKeyType(NM_SETTING_WIRED_DUPLEX))
	return
}
func getSettingWiredAutoNegotiateJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_AUTO_NEGOTIATE, getSettingWiredKeyType(NM_SETTING_WIRED_AUTO_NEGOTIATE))
	return
}
func getSettingWiredMacAddressJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_MAC_ADDRESS, getSettingWiredKeyType(NM_SETTING_WIRED_MAC_ADDRESS))
	return
}
func getSettingWiredClonedMacAddressJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_CLONED_MAC_ADDRESS, getSettingWiredKeyType(NM_SETTING_WIRED_CLONED_MAC_ADDRESS))
	return
}
func getSettingWiredMacAddressBlacklistJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST, getSettingWiredKeyType(NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST))
	return
}
func getSettingWiredMtuJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_MTU, getSettingWiredKeyType(NM_SETTING_WIRED_MTU))
	return
}
func getSettingWiredS390SubchannelsJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_S390_SUBCHANNELS, getSettingWiredKeyType(NM_SETTING_WIRED_S390_SUBCHANNELS))
	return
}
func getSettingWiredS390NettypeJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_S390_NETTYPE, getSettingWiredKeyType(NM_SETTING_WIRED_S390_NETTYPE))
	return
}
func getSettingWiredS390OptionsJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_S390_OPTIONS, getSettingWiredKeyType(NM_SETTING_WIRED_S390_OPTIONS))
	return
}

// JSON Setter
func setSettingWiredPortJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_PORT, valueJSON, getSettingWiredKeyType(NM_SETTING_WIRED_PORT))
}
func setSettingWiredSpeedJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_SPEED, valueJSON, getSettingWiredKeyType(NM_SETTING_WIRED_SPEED))
}
func setSettingWiredDuplexJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_DUPLEX, valueJSON, getSettingWiredKeyType(NM_SETTING_WIRED_DUPLEX))
}
func setSettingWiredAutoNegotiateJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_AUTO_NEGOTIATE, valueJSON, getSettingWiredKeyType(NM_SETTING_WIRED_AUTO_NEGOTIATE))
}
func setSettingWiredMacAddressJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_MAC_ADDRESS, valueJSON, getSettingWiredKeyType(NM_SETTING_WIRED_MAC_ADDRESS))
}
func setSettingWiredClonedMacAddressJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_CLONED_MAC_ADDRESS, valueJSON, getSettingWiredKeyType(NM_SETTING_WIRED_CLONED_MAC_ADDRESS))
}
func setSettingWiredMacAddressBlacklistJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST, valueJSON, getSettingWiredKeyType(NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST))
}
func setSettingWiredMtuJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_MTU, valueJSON, getSettingWiredKeyType(NM_SETTING_WIRED_MTU))
}
func setSettingWiredS390SubchannelsJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_S390_SUBCHANNELS, valueJSON, getSettingWiredKeyType(NM_SETTING_WIRED_S390_SUBCHANNELS))
}
func setSettingWiredS390NettypeJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_S390_NETTYPE, valueJSON, getSettingWiredKeyType(NM_SETTING_WIRED_S390_NETTYPE))
}
func setSettingWiredS390OptionsJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_S390_OPTIONS, valueJSON, getSettingWiredKeyType(NM_SETTING_WIRED_S390_OPTIONS))
}

// Logic JSON Setter

// Remover
func removeSettingWiredPort(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_PORT)
}
func removeSettingWiredSpeed(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_SPEED)
}
func removeSettingWiredDuplex(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_DUPLEX)
}
func removeSettingWiredAutoNegotiate(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_AUTO_NEGOTIATE)
}
func removeSettingWiredMacAddress(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_MAC_ADDRESS)
}
func removeSettingWiredClonedMacAddress(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_CLONED_MAC_ADDRESS)
}
func removeSettingWiredMacAddressBlacklist(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_MAC_ADDRESS_BLACKLIST)
}
func removeSettingWiredMtu(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_MTU)
}
func removeSettingWiredS390Subchannels(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_S390_SUBCHANNELS)
}
func removeSettingWiredS390Nettype(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_S390_NETTYPE)
}
func removeSettingWiredS390Options(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRED_SETTING_NAME, NM_SETTING_WIRED_S390_OPTIONS)
}

// Origin file name ../nm_setting_wireless_gen.go
// Get key type
func getSettingWirelessKeyType(key string) (t ktype) {
	switch key {
	default:
		t = ktypeUnknown
	case NM_SETTING_WIRELESS_SSID:
		t = ktypeWrapperString
	case NM_SETTING_WIRELESS_MODE:
		t = ktypeString
	case NM_SETTING_WIRELESS_BAND:
		t = ktypeString
	case NM_SETTING_WIRELESS_CHANNEL:
		t = ktypeString
	case NM_SETTING_WIRELESS_BSSID:
		t = ktypeWrapperString
	case NM_SETTING_WIRELESS_RATE:
		t = ktypeUint32
	case NM_SETTING_WIRELESS_TX_POWER:
		t = ktypeUint32
	case NM_SETTING_WIRELESS_MAC_ADDRESS:
		t = ktypeWrapperMacAddress
	case NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS:
		t = ktypeWrapperMacAddress
	case NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST:
		t = ktypeArrayString
	case NM_SETTING_WIRELESS_MTU:
		t = ktypeUint32
	case NM_SETTING_WIRELESS_SEEN_BSSIDS:
		t = ktypeArrayString
	case NM_SETTING_WIRELESS_HIDDEN:
		t = ktypeBoolean
	}
	return
}

// Check is key in current setting section
func isKeyInSettingWireless(key string) bool {
	switch key {
	case NM_SETTING_WIRELESS_SSID:
		return true
	case NM_SETTING_WIRELESS_MODE:
		return true
	case NM_SETTING_WIRELESS_BAND:
		return true
	case NM_SETTING_WIRELESS_CHANNEL:
		return true
	case NM_SETTING_WIRELESS_BSSID:
		return true
	case NM_SETTING_WIRELESS_RATE:
		return true
	case NM_SETTING_WIRELESS_TX_POWER:
		return true
	case NM_SETTING_WIRELESS_MAC_ADDRESS:
		return true
	case NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS:
		return true
	case NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST:
		return true
	case NM_SETTING_WIRELESS_MTU:
		return true
	case NM_SETTING_WIRELESS_SEEN_BSSIDS:
		return true
	case NM_SETTING_WIRELESS_HIDDEN:
		return true
	}
	return false
}

// Get key's default value
func getSettingWirelessDefaultValue(key string) (value interface{}) {
	switch key {
	default:
		logger.Error("invalid key:", key)
	case NM_SETTING_WIRELESS_SSID:
		value = make([]byte, 0)
	case NM_SETTING_WIRELESS_MODE:
		value = ""
	case NM_SETTING_WIRELESS_BAND:
		value = ""
	case NM_SETTING_WIRELESS_CHANNEL:
		value = ""
	case NM_SETTING_WIRELESS_BSSID:
		value = make([]byte, 0)
	case NM_SETTING_WIRELESS_RATE:
		value = uint32(0)
	case NM_SETTING_WIRELESS_TX_POWER:
		value = uint32(0)
	case NM_SETTING_WIRELESS_MAC_ADDRESS:
		value = make([]byte, 0)
	case NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS:
		value = make([]byte, 0)
	case NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST:
		value = make([]string, 0)
	case NM_SETTING_WIRELESS_MTU:
		value = uint32(0)
	case NM_SETTING_WIRELESS_SEEN_BSSIDS:
		value = make([]string, 0)
	case NM_SETTING_WIRELESS_HIDDEN:
		value = false
	}
	return
}

// Get JSON value generally
func generalGetSettingWirelessKeyJSON(data connectionData, key string) (value string) {
	switch key {
	default:
		logger.Error("generalGetSettingWirelessKeyJSON: invalide key", key)
	case NM_SETTING_WIRELESS_SSID:
		value = getSettingWirelessSsidJSON(data)
	case NM_SETTING_WIRELESS_MODE:
		value = getSettingWirelessModeJSON(data)
	case NM_SETTING_WIRELESS_BAND:
		value = getSettingWirelessBandJSON(data)
	case NM_SETTING_WIRELESS_CHANNEL:
		value = getSettingWirelessChannelJSON(data)
	case NM_SETTING_WIRELESS_BSSID:
		value = getSettingWirelessBssidJSON(data)
	case NM_SETTING_WIRELESS_RATE:
		value = getSettingWirelessRateJSON(data)
	case NM_SETTING_WIRELESS_TX_POWER:
		value = getSettingWirelessTxPowerJSON(data)
	case NM_SETTING_WIRELESS_MAC_ADDRESS:
		value = getSettingWirelessMacAddressJSON(data)
	case NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS:
		value = getSettingWirelessClonedMacAddressJSON(data)
	case NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST:
		value = getSettingWirelessMacAddressBlacklistJSON(data)
	case NM_SETTING_WIRELESS_MTU:
		value = getSettingWirelessMtuJSON(data)
	case NM_SETTING_WIRELESS_SEEN_BSSIDS:
		value = getSettingWirelessSeenBssidsJSON(data)
	case NM_SETTING_WIRELESS_HIDDEN:
		value = getSettingWirelessHiddenJSON(data)
	}
	return
}

// Set JSON value generally
func generalSetSettingWirelessKeyJSON(data connectionData, key, valueJSON string) (err error) {
	switch key {
	default:
		logger.Error("generalSetSettingWirelessKeyJSON: invalide key", key)
	case NM_SETTING_WIRELESS_SSID:
		err = setSettingWirelessSsidJSON(data, valueJSON)
	case NM_SETTING_WIRELESS_MODE:
		err = logicSetSettingWirelessModeJSON(data, valueJSON)
	case NM_SETTING_WIRELESS_BAND:
		err = logicSetSettingWirelessBandJSON(data, valueJSON)
	case NM_SETTING_WIRELESS_CHANNEL:
		err = setSettingWirelessChannelJSON(data, valueJSON)
	case NM_SETTING_WIRELESS_BSSID:
		err = setSettingWirelessBssidJSON(data, valueJSON)
	case NM_SETTING_WIRELESS_RATE:
		err = setSettingWirelessRateJSON(data, valueJSON)
	case NM_SETTING_WIRELESS_TX_POWER:
		err = setSettingWirelessTxPowerJSON(data, valueJSON)
	case NM_SETTING_WIRELESS_MAC_ADDRESS:
		err = setSettingWirelessMacAddressJSON(data, valueJSON)
	case NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS:
		err = setSettingWirelessClonedMacAddressJSON(data, valueJSON)
	case NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST:
		err = setSettingWirelessMacAddressBlacklistJSON(data, valueJSON)
	case NM_SETTING_WIRELESS_MTU:
		err = setSettingWirelessMtuJSON(data, valueJSON)
	case NM_SETTING_WIRELESS_SEEN_BSSIDS:
		err = setSettingWirelessSeenBssidsJSON(data, valueJSON)
	case NM_SETTING_WIRELESS_HIDDEN:
		err = setSettingWirelessHiddenJSON(data, valueJSON)
	}
	return
}

// Check if key exists
func isSettingWirelessSsidExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_SSID)
}
func isSettingWirelessModeExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_MODE)
}
func isSettingWirelessBandExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_BAND)
}
func isSettingWirelessChannelExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_CHANNEL)
}
func isSettingWirelessBssidExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_BSSID)
}
func isSettingWirelessRateExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_RATE)
}
func isSettingWirelessTxPowerExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_TX_POWER)
}
func isSettingWirelessMacAddressExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_MAC_ADDRESS)
}
func isSettingWirelessClonedMacAddressExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS)
}
func isSettingWirelessMacAddressBlacklistExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST)
}
func isSettingWirelessMtuExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_MTU)
}
func isSettingWirelessSeenBssidsExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_SEEN_BSSIDS)
}
func isSettingWirelessHiddenExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_HIDDEN)
}

// Ensure section and key exists and not empty
func ensureSectionSettingWirelessExists(data connectionData, errs sectionErrors, relatedKey string) {
	if !isSettingSectionExists(data, NM_SETTING_WIRELESS_SETTING_NAME) {
		rememberError(errs, relatedKey, NM_SETTING_WIRELESS_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_MISSING_SECTION, NM_SETTING_WIRELESS_SETTING_NAME))
	}
	sectionData, _ := data[NM_SETTING_WIRELESS_SETTING_NAME]
	if len(sectionData) == 0 {
		rememberError(errs, relatedKey, NM_SETTING_WIRELESS_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_EMPTY_SECTION, NM_SETTING_WIRELESS_SETTING_NAME))
	}
}
func ensureSettingWirelessSsidNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWirelessSsidExists(data) {
		rememberError(errs, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_SSID, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingWirelessSsid(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_SSID, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingWirelessModeNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWirelessModeExists(data) {
		rememberError(errs, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_MODE, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingWirelessMode(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_MODE, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingWirelessBandNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWirelessBandExists(data) {
		rememberError(errs, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_BAND, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingWirelessBand(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_BAND, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingWirelessChannelNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWirelessChannelExists(data) {
		rememberError(errs, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_CHANNEL, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingWirelessChannel(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_CHANNEL, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingWirelessBssidNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWirelessBssidExists(data) {
		rememberError(errs, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_BSSID, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingWirelessBssid(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_BSSID, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingWirelessRateNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWirelessRateExists(data) {
		rememberError(errs, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_RATE, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingWirelessTxPowerNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWirelessTxPowerExists(data) {
		rememberError(errs, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_TX_POWER, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingWirelessMacAddressNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWirelessMacAddressExists(data) {
		rememberError(errs, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_MAC_ADDRESS, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingWirelessMacAddress(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_MAC_ADDRESS, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingWirelessClonedMacAddressNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWirelessClonedMacAddressExists(data) {
		rememberError(errs, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingWirelessClonedMacAddress(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingWirelessMacAddressBlacklistNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWirelessMacAddressBlacklistExists(data) {
		rememberError(errs, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingWirelessMacAddressBlacklist(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingWirelessMtuNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWirelessMtuExists(data) {
		rememberError(errs, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_MTU, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingWirelessSeenBssidsNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWirelessSeenBssidsExists(data) {
		rememberError(errs, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_SEEN_BSSIDS, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingWirelessSeenBssids(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_SEEN_BSSIDS, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingWirelessHiddenNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWirelessHiddenExists(data) {
		rememberError(errs, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_HIDDEN, NM_KEY_ERROR_MISSING_VALUE)
	}
}

// Getter
func getSettingWirelessSsid(data connectionData) (value []byte) {
	ivalue := getSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_SSID)
	value = interfaceToArrayByte(ivalue)
	return
}
func getSettingWirelessMode(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_MODE)
	value = interfaceToString(ivalue)
	return
}
func getSettingWirelessBand(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_BAND)
	value = interfaceToString(ivalue)
	return
}
func getSettingWirelessChannel(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_CHANNEL)
	value = interfaceToString(ivalue)
	return
}
func getSettingWirelessBssid(data connectionData) (value []byte) {
	ivalue := getSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_BSSID)
	value = interfaceToArrayByte(ivalue)
	return
}
func getSettingWirelessRate(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_RATE)
	value = interfaceToUint32(ivalue)
	return
}
func getSettingWirelessTxPower(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_TX_POWER)
	value = interfaceToUint32(ivalue)
	return
}
func getSettingWirelessMacAddress(data connectionData) (value []byte) {
	ivalue := getSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_MAC_ADDRESS)
	value = interfaceToArrayByte(ivalue)
	return
}
func getSettingWirelessClonedMacAddress(data connectionData) (value []byte) {
	ivalue := getSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS)
	value = interfaceToArrayByte(ivalue)
	return
}
func getSettingWirelessMacAddressBlacklist(data connectionData) (value []string) {
	ivalue := getSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST)
	value = interfaceToArrayString(ivalue)
	return
}
func getSettingWirelessMtu(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_MTU)
	value = interfaceToUint32(ivalue)
	return
}
func getSettingWirelessSeenBssids(data connectionData) (value []string) {
	ivalue := getSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_SEEN_BSSIDS)
	value = interfaceToArrayString(ivalue)
	return
}
func getSettingWirelessHidden(data connectionData) (value bool) {
	ivalue := getSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_HIDDEN)
	value = interfaceToBoolean(ivalue)
	return
}

// Setter
func setSettingWirelessSsid(data connectionData, value []byte) {
	setSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_SSID, value)
}
func setSettingWirelessMode(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_MODE, value)
}
func setSettingWirelessBand(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_BAND, value)
}
func setSettingWirelessChannel(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_CHANNEL, value)
}
func setSettingWirelessBssid(data connectionData, value []byte) {
	setSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_BSSID, value)
}
func setSettingWirelessRate(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_RATE, value)
}
func setSettingWirelessTxPower(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_TX_POWER, value)
}
func setSettingWirelessMacAddress(data connectionData, value []byte) {
	setSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_MAC_ADDRESS, value)
}
func setSettingWirelessClonedMacAddress(data connectionData, value []byte) {
	setSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS, value)
}
func setSettingWirelessMacAddressBlacklist(data connectionData, value []string) {
	setSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST, value)
}
func setSettingWirelessMtu(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_MTU, value)
}
func setSettingWirelessSeenBssids(data connectionData, value []string) {
	setSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_SEEN_BSSIDS, value)
}
func setSettingWirelessHidden(data connectionData, value bool) {
	setSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_HIDDEN, value)
}

// JSON Getter
func getSettingWirelessSsidJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_SSID, getSettingWirelessKeyType(NM_SETTING_WIRELESS_SSID))
	return
}
func getSettingWirelessModeJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_MODE, getSettingWirelessKeyType(NM_SETTING_WIRELESS_MODE))
	return
}
func getSettingWirelessBandJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_BAND, getSettingWirelessKeyType(NM_SETTING_WIRELESS_BAND))
	return
}
func getSettingWirelessChannelJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_CHANNEL, getSettingWirelessKeyType(NM_SETTING_WIRELESS_CHANNEL))
	return
}
func getSettingWirelessBssidJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_BSSID, getSettingWirelessKeyType(NM_SETTING_WIRELESS_BSSID))
	return
}
func getSettingWirelessRateJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_RATE, getSettingWirelessKeyType(NM_SETTING_WIRELESS_RATE))
	return
}
func getSettingWirelessTxPowerJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_TX_POWER, getSettingWirelessKeyType(NM_SETTING_WIRELESS_TX_POWER))
	return
}
func getSettingWirelessMacAddressJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_MAC_ADDRESS, getSettingWirelessKeyType(NM_SETTING_WIRELESS_MAC_ADDRESS))
	return
}
func getSettingWirelessClonedMacAddressJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS, getSettingWirelessKeyType(NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS))
	return
}
func getSettingWirelessMacAddressBlacklistJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST, getSettingWirelessKeyType(NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST))
	return
}
func getSettingWirelessMtuJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_MTU, getSettingWirelessKeyType(NM_SETTING_WIRELESS_MTU))
	return
}
func getSettingWirelessSeenBssidsJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_SEEN_BSSIDS, getSettingWirelessKeyType(NM_SETTING_WIRELESS_SEEN_BSSIDS))
	return
}
func getSettingWirelessHiddenJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_HIDDEN, getSettingWirelessKeyType(NM_SETTING_WIRELESS_HIDDEN))
	return
}

// JSON Setter
func setSettingWirelessSsidJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_SSID, valueJSON, getSettingWirelessKeyType(NM_SETTING_WIRELESS_SSID))
}
func setSettingWirelessModeJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_MODE, valueJSON, getSettingWirelessKeyType(NM_SETTING_WIRELESS_MODE))
}
func setSettingWirelessBandJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_BAND, valueJSON, getSettingWirelessKeyType(NM_SETTING_WIRELESS_BAND))
}
func setSettingWirelessChannelJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_CHANNEL, valueJSON, getSettingWirelessKeyType(NM_SETTING_WIRELESS_CHANNEL))
}
func setSettingWirelessBssidJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_BSSID, valueJSON, getSettingWirelessKeyType(NM_SETTING_WIRELESS_BSSID))
}
func setSettingWirelessRateJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_RATE, valueJSON, getSettingWirelessKeyType(NM_SETTING_WIRELESS_RATE))
}
func setSettingWirelessTxPowerJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_TX_POWER, valueJSON, getSettingWirelessKeyType(NM_SETTING_WIRELESS_TX_POWER))
}
func setSettingWirelessMacAddressJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_MAC_ADDRESS, valueJSON, getSettingWirelessKeyType(NM_SETTING_WIRELESS_MAC_ADDRESS))
}
func setSettingWirelessClonedMacAddressJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS, valueJSON, getSettingWirelessKeyType(NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS))
}
func setSettingWirelessMacAddressBlacklistJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST, valueJSON, getSettingWirelessKeyType(NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST))
}
func setSettingWirelessMtuJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_MTU, valueJSON, getSettingWirelessKeyType(NM_SETTING_WIRELESS_MTU))
}
func setSettingWirelessSeenBssidsJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_SEEN_BSSIDS, valueJSON, getSettingWirelessKeyType(NM_SETTING_WIRELESS_SEEN_BSSIDS))
}
func setSettingWirelessHiddenJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_HIDDEN, valueJSON, getSettingWirelessKeyType(NM_SETTING_WIRELESS_HIDDEN))
}

// Logic JSON Setter
func logicSetSettingWirelessModeJSON(data connectionData, valueJSON string) (err error) {
	err = setSettingWirelessModeJSON(data, valueJSON)
	if err != nil {
		return
	}
	if isSettingWirelessModeExists(data) {
		value := getSettingWirelessMode(data)
		err = logicSetSettingWirelessMode(data, value)
	}
	return
}
func logicSetSettingWirelessBandJSON(data connectionData, valueJSON string) (err error) {
	err = setSettingWirelessBandJSON(data, valueJSON)
	if err != nil {
		return
	}
	if isSettingWirelessBandExists(data) {
		value := getSettingWirelessBand(data)
		err = logicSetSettingWirelessBand(data, value)
	}
	return
}

// Remover
func removeSettingWirelessSsid(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_SSID)
}
func removeSettingWirelessMode(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_MODE)
}
func removeSettingWirelessBand(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_BAND)
}
func removeSettingWirelessChannel(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_CHANNEL)
}
func removeSettingWirelessBssid(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_BSSID)
}
func removeSettingWirelessRate(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_RATE)
}
func removeSettingWirelessTxPower(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_TX_POWER)
}
func removeSettingWirelessMacAddress(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_MAC_ADDRESS)
}
func removeSettingWirelessClonedMacAddress(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS)
}
func removeSettingWirelessMacAddressBlacklist(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_MAC_ADDRESS_BLACKLIST)
}
func removeSettingWirelessMtu(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_MTU)
}
func removeSettingWirelessSeenBssids(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_SEEN_BSSIDS)
}
func removeSettingWirelessHidden(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRELESS_SETTING_NAME, NM_SETTING_WIRELESS_HIDDEN)
}

// Origin file name ../nm_setting_wireless_security_gen.go
// Get key type
func getSettingWirelessSecurityKeyType(key string) (t ktype) {
	switch key {
	default:
		t = ktypeUnknown
	case NM_SETTING_WIRELESS_SECURITY_KEY_MGMT:
		t = ktypeString
	case NM_SETTING_WIRELESS_SECURITY_WEP_TX_KEYIDX:
		t = ktypeUint32
	case NM_SETTING_WIRELESS_SECURITY_AUTH_ALG:
		t = ktypeString
	case NM_SETTING_WIRELESS_SECURITY_PROTO:
		t = ktypeArrayString
	case NM_SETTING_WIRELESS_SECURITY_PAIRWISE:
		t = ktypeArrayString
	case NM_SETTING_WIRELESS_SECURITY_GROUP:
		t = ktypeArrayString
	case NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME:
		t = ktypeString
	case NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD:
		t = ktypeString
	case NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD_FLAGS:
		t = ktypeUint32
	case NM_SETTING_WIRELESS_SECURITY_WEP_KEY0:
		t = ktypeString
	case NM_SETTING_WIRELESS_SECURITY_WEP_KEY1:
		t = ktypeString
	case NM_SETTING_WIRELESS_SECURITY_WEP_KEY2:
		t = ktypeString
	case NM_SETTING_WIRELESS_SECURITY_WEP_KEY3:
		t = ktypeString
	case NM_SETTING_WIRELESS_SECURITY_WEP_KEY_FLAGS:
		t = ktypeUint32
	case NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE:
		t = ktypeUint32
	case NM_SETTING_WIRELESS_SECURITY_PSK:
		t = ktypeString
	case NM_SETTING_WIRELESS_SECURITY_PSK_FLAGS:
		t = ktypeUint32
	}
	return
}

// Check is key in current setting section
func isKeyInSettingWirelessSecurity(key string) bool {
	switch key {
	case NM_SETTING_WIRELESS_SECURITY_KEY_MGMT:
		return true
	case NM_SETTING_WIRELESS_SECURITY_WEP_TX_KEYIDX:
		return true
	case NM_SETTING_WIRELESS_SECURITY_AUTH_ALG:
		return true
	case NM_SETTING_WIRELESS_SECURITY_PROTO:
		return true
	case NM_SETTING_WIRELESS_SECURITY_PAIRWISE:
		return true
	case NM_SETTING_WIRELESS_SECURITY_GROUP:
		return true
	case NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME:
		return true
	case NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD:
		return true
	case NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD_FLAGS:
		return true
	case NM_SETTING_WIRELESS_SECURITY_WEP_KEY0:
		return true
	case NM_SETTING_WIRELESS_SECURITY_WEP_KEY1:
		return true
	case NM_SETTING_WIRELESS_SECURITY_WEP_KEY2:
		return true
	case NM_SETTING_WIRELESS_SECURITY_WEP_KEY3:
		return true
	case NM_SETTING_WIRELESS_SECURITY_WEP_KEY_FLAGS:
		return true
	case NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE:
		return true
	case NM_SETTING_WIRELESS_SECURITY_PSK:
		return true
	case NM_SETTING_WIRELESS_SECURITY_PSK_FLAGS:
		return true
	}
	return false
}

// Get key's default value
func getSettingWirelessSecurityDefaultValue(key string) (value interface{}) {
	switch key {
	default:
		logger.Error("invalid key:", key)
	case NM_SETTING_WIRELESS_SECURITY_KEY_MGMT:
		value = ""
	case NM_SETTING_WIRELESS_SECURITY_WEP_TX_KEYIDX:
		value = uint32(0)
	case NM_SETTING_WIRELESS_SECURITY_AUTH_ALG:
		value = ""
	case NM_SETTING_WIRELESS_SECURITY_PROTO:
		value = make([]string, 0)
	case NM_SETTING_WIRELESS_SECURITY_PAIRWISE:
		value = make([]string, 0)
	case NM_SETTING_WIRELESS_SECURITY_GROUP:
		value = make([]string, 0)
	case NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME:
		value = ""
	case NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD:
		value = ""
	case NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD_FLAGS:
		value = uint32(0)
	case NM_SETTING_WIRELESS_SECURITY_WEP_KEY0:
		value = ""
	case NM_SETTING_WIRELESS_SECURITY_WEP_KEY1:
		value = ""
	case NM_SETTING_WIRELESS_SECURITY_WEP_KEY2:
		value = ""
	case NM_SETTING_WIRELESS_SECURITY_WEP_KEY3:
		value = ""
	case NM_SETTING_WIRELESS_SECURITY_WEP_KEY_FLAGS:
		value = uint32(0)
	case NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE:
		value = uint32(0)
	case NM_SETTING_WIRELESS_SECURITY_PSK:
		value = ""
	case NM_SETTING_WIRELESS_SECURITY_PSK_FLAGS:
		value = uint32(0)
	}
	return
}

// Get JSON value generally
func generalGetSettingWirelessSecurityKeyJSON(data connectionData, key string) (value string) {
	switch key {
	default:
		logger.Error("generalGetSettingWirelessSecurityKeyJSON: invalide key", key)
	case NM_SETTING_WIRELESS_SECURITY_KEY_MGMT:
		value = getSettingWirelessSecurityKeyMgmtJSON(data)
	case NM_SETTING_WIRELESS_SECURITY_WEP_TX_KEYIDX:
		value = getSettingWirelessSecurityWepTxKeyidxJSON(data)
	case NM_SETTING_WIRELESS_SECURITY_AUTH_ALG:
		value = getSettingWirelessSecurityAuthAlgJSON(data)
	case NM_SETTING_WIRELESS_SECURITY_PROTO:
		value = getSettingWirelessSecurityProtoJSON(data)
	case NM_SETTING_WIRELESS_SECURITY_PAIRWISE:
		value = getSettingWirelessSecurityPairwiseJSON(data)
	case NM_SETTING_WIRELESS_SECURITY_GROUP:
		value = getSettingWirelessSecurityGroupJSON(data)
	case NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME:
		value = getSettingWirelessSecurityLeapUsernameJSON(data)
	case NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD:
		value = getSettingWirelessSecurityLeapPasswordJSON(data)
	case NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD_FLAGS:
		value = getSettingWirelessSecurityLeapPasswordFlagsJSON(data)
	case NM_SETTING_WIRELESS_SECURITY_WEP_KEY0:
		value = getSettingWirelessSecurityWepKey0JSON(data)
	case NM_SETTING_WIRELESS_SECURITY_WEP_KEY1:
		value = getSettingWirelessSecurityWepKey1JSON(data)
	case NM_SETTING_WIRELESS_SECURITY_WEP_KEY2:
		value = getSettingWirelessSecurityWepKey2JSON(data)
	case NM_SETTING_WIRELESS_SECURITY_WEP_KEY3:
		value = getSettingWirelessSecurityWepKey3JSON(data)
	case NM_SETTING_WIRELESS_SECURITY_WEP_KEY_FLAGS:
		value = getSettingWirelessSecurityWepKeyFlagsJSON(data)
	case NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE:
		value = getSettingWirelessSecurityWepKeyTypeJSON(data)
	case NM_SETTING_WIRELESS_SECURITY_PSK:
		value = getSettingWirelessSecurityPskJSON(data)
	case NM_SETTING_WIRELESS_SECURITY_PSK_FLAGS:
		value = getSettingWirelessSecurityPskFlagsJSON(data)
	}
	return
}

// Set JSON value generally
func generalSetSettingWirelessSecurityKeyJSON(data connectionData, key, valueJSON string) (err error) {
	switch key {
	default:
		logger.Error("generalSetSettingWirelessSecurityKeyJSON: invalide key", key)
	case NM_SETTING_WIRELESS_SECURITY_KEY_MGMT:
		err = setSettingWirelessSecurityKeyMgmtJSON(data, valueJSON)
	case NM_SETTING_WIRELESS_SECURITY_WEP_TX_KEYIDX:
		err = setSettingWirelessSecurityWepTxKeyidxJSON(data, valueJSON)
	case NM_SETTING_WIRELESS_SECURITY_AUTH_ALG:
		err = setSettingWirelessSecurityAuthAlgJSON(data, valueJSON)
	case NM_SETTING_WIRELESS_SECURITY_PROTO:
		err = setSettingWirelessSecurityProtoJSON(data, valueJSON)
	case NM_SETTING_WIRELESS_SECURITY_PAIRWISE:
		err = setSettingWirelessSecurityPairwiseJSON(data, valueJSON)
	case NM_SETTING_WIRELESS_SECURITY_GROUP:
		err = setSettingWirelessSecurityGroupJSON(data, valueJSON)
	case NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME:
		err = setSettingWirelessSecurityLeapUsernameJSON(data, valueJSON)
	case NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD:
		err = setSettingWirelessSecurityLeapPasswordJSON(data, valueJSON)
	case NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD_FLAGS:
		err = setSettingWirelessSecurityLeapPasswordFlagsJSON(data, valueJSON)
	case NM_SETTING_WIRELESS_SECURITY_WEP_KEY0:
		err = setSettingWirelessSecurityWepKey0JSON(data, valueJSON)
	case NM_SETTING_WIRELESS_SECURITY_WEP_KEY1:
		err = setSettingWirelessSecurityWepKey1JSON(data, valueJSON)
	case NM_SETTING_WIRELESS_SECURITY_WEP_KEY2:
		err = setSettingWirelessSecurityWepKey2JSON(data, valueJSON)
	case NM_SETTING_WIRELESS_SECURITY_WEP_KEY3:
		err = setSettingWirelessSecurityWepKey3JSON(data, valueJSON)
	case NM_SETTING_WIRELESS_SECURITY_WEP_KEY_FLAGS:
		err = setSettingWirelessSecurityWepKeyFlagsJSON(data, valueJSON)
	case NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE:
		err = setSettingWirelessSecurityWepKeyTypeJSON(data, valueJSON)
	case NM_SETTING_WIRELESS_SECURITY_PSK:
		err = setSettingWirelessSecurityPskJSON(data, valueJSON)
	case NM_SETTING_WIRELESS_SECURITY_PSK_FLAGS:
		err = setSettingWirelessSecurityPskFlagsJSON(data, valueJSON)
	}
	return
}

// Check if key exists
func isSettingWirelessSecurityKeyMgmtExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_KEY_MGMT)
}
func isSettingWirelessSecurityWepTxKeyidxExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_TX_KEYIDX)
}
func isSettingWirelessSecurityAuthAlgExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_AUTH_ALG)
}
func isSettingWirelessSecurityProtoExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_PROTO)
}
func isSettingWirelessSecurityPairwiseExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_PAIRWISE)
}
func isSettingWirelessSecurityGroupExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_GROUP)
}
func isSettingWirelessSecurityLeapUsernameExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME)
}
func isSettingWirelessSecurityLeapPasswordExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD)
}
func isSettingWirelessSecurityLeapPasswordFlagsExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD_FLAGS)
}
func isSettingWirelessSecurityWepKey0Exists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY0)
}
func isSettingWirelessSecurityWepKey1Exists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY1)
}
func isSettingWirelessSecurityWepKey2Exists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY2)
}
func isSettingWirelessSecurityWepKey3Exists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY3)
}
func isSettingWirelessSecurityWepKeyFlagsExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY_FLAGS)
}
func isSettingWirelessSecurityWepKeyTypeExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE)
}
func isSettingWirelessSecurityPskExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_PSK)
}
func isSettingWirelessSecurityPskFlagsExists(data connectionData) bool {
	return isSettingKeyExists(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_PSK_FLAGS)
}

// Ensure section and key exists and not empty
func ensureSectionSettingWirelessSecurityExists(data connectionData, errs sectionErrors, relatedKey string) {
	if !isSettingSectionExists(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME) {
		rememberError(errs, relatedKey, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_MISSING_SECTION, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME))
	}
	sectionData, _ := data[NM_SETTING_WIRELESS_SECURITY_SETTING_NAME]
	if len(sectionData) == 0 {
		rememberError(errs, relatedKey, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, fmt.Sprintf(NM_KEY_ERROR_EMPTY_SECTION, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME))
	}
}
func ensureSettingWirelessSecurityKeyMgmtNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWirelessSecurityKeyMgmtExists(data) {
		rememberError(errs, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingWirelessSecurityKeyMgmt(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingWirelessSecurityWepTxKeyidxNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWirelessSecurityWepTxKeyidxExists(data) {
		rememberError(errs, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_TX_KEYIDX, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingWirelessSecurityAuthAlgNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWirelessSecurityAuthAlgExists(data) {
		rememberError(errs, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_AUTH_ALG, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingWirelessSecurityAuthAlg(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_AUTH_ALG, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingWirelessSecurityProtoNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWirelessSecurityProtoExists(data) {
		rememberError(errs, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_PROTO, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingWirelessSecurityProto(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_PROTO, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingWirelessSecurityPairwiseNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWirelessSecurityPairwiseExists(data) {
		rememberError(errs, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_PAIRWISE, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingWirelessSecurityPairwise(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_PAIRWISE, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingWirelessSecurityGroupNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWirelessSecurityGroupExists(data) {
		rememberError(errs, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_GROUP, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingWirelessSecurityGroup(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_GROUP, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingWirelessSecurityLeapUsernameNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWirelessSecurityLeapUsernameExists(data) {
		rememberError(errs, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingWirelessSecurityLeapUsername(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingWirelessSecurityLeapPasswordNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWirelessSecurityLeapPasswordExists(data) {
		rememberError(errs, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingWirelessSecurityLeapPassword(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingWirelessSecurityLeapPasswordFlagsNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWirelessSecurityLeapPasswordFlagsExists(data) {
		rememberError(errs, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD_FLAGS, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingWirelessSecurityWepKey0NoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWirelessSecurityWepKey0Exists(data) {
		rememberError(errs, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY0, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingWirelessSecurityWepKey0(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY0, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingWirelessSecurityWepKey1NoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWirelessSecurityWepKey1Exists(data) {
		rememberError(errs, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY1, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingWirelessSecurityWepKey1(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY1, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingWirelessSecurityWepKey2NoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWirelessSecurityWepKey2Exists(data) {
		rememberError(errs, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY2, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingWirelessSecurityWepKey2(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY2, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingWirelessSecurityWepKey3NoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWirelessSecurityWepKey3Exists(data) {
		rememberError(errs, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY3, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingWirelessSecurityWepKey3(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY3, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingWirelessSecurityWepKeyFlagsNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWirelessSecurityWepKeyFlagsExists(data) {
		rememberError(errs, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY_FLAGS, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingWirelessSecurityWepKeyTypeNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWirelessSecurityWepKeyTypeExists(data) {
		rememberError(errs, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE, NM_KEY_ERROR_MISSING_VALUE)
	}
}
func ensureSettingWirelessSecurityPskNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWirelessSecurityPskExists(data) {
		rememberError(errs, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_PSK, NM_KEY_ERROR_MISSING_VALUE)
	}
	value := getSettingWirelessSecurityPsk(data)
	if len(value) == 0 {
		rememberError(errs, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_PSK, NM_KEY_ERROR_EMPTY_VALUE)
	}
}
func ensureSettingWirelessSecurityPskFlagsNoEmpty(data connectionData, errs sectionErrors) {
	if !isSettingWirelessSecurityPskFlagsExists(data) {
		rememberError(errs, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_PSK_FLAGS, NM_KEY_ERROR_MISSING_VALUE)
	}
}

// Getter
func getSettingWirelessSecurityKeyMgmt(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_KEY_MGMT)
	value = interfaceToString(ivalue)
	return
}
func getSettingWirelessSecurityWepTxKeyidx(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_TX_KEYIDX)
	value = interfaceToUint32(ivalue)
	return
}
func getSettingWirelessSecurityAuthAlg(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_AUTH_ALG)
	value = interfaceToString(ivalue)
	return
}
func getSettingWirelessSecurityProto(data connectionData) (value []string) {
	ivalue := getSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_PROTO)
	value = interfaceToArrayString(ivalue)
	return
}
func getSettingWirelessSecurityPairwise(data connectionData) (value []string) {
	ivalue := getSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_PAIRWISE)
	value = interfaceToArrayString(ivalue)
	return
}
func getSettingWirelessSecurityGroup(data connectionData) (value []string) {
	ivalue := getSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_GROUP)
	value = interfaceToArrayString(ivalue)
	return
}
func getSettingWirelessSecurityLeapUsername(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME)
	value = interfaceToString(ivalue)
	return
}
func getSettingWirelessSecurityLeapPassword(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD)
	value = interfaceToString(ivalue)
	return
}
func getSettingWirelessSecurityLeapPasswordFlags(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD_FLAGS)
	value = interfaceToUint32(ivalue)
	return
}
func getSettingWirelessSecurityWepKey0(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY0)
	value = interfaceToString(ivalue)
	return
}
func getSettingWirelessSecurityWepKey1(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY1)
	value = interfaceToString(ivalue)
	return
}
func getSettingWirelessSecurityWepKey2(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY2)
	value = interfaceToString(ivalue)
	return
}
func getSettingWirelessSecurityWepKey3(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY3)
	value = interfaceToString(ivalue)
	return
}
func getSettingWirelessSecurityWepKeyFlags(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY_FLAGS)
	value = interfaceToUint32(ivalue)
	return
}
func getSettingWirelessSecurityWepKeyType(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE)
	value = interfaceToUint32(ivalue)
	return
}
func getSettingWirelessSecurityPsk(data connectionData) (value string) {
	ivalue := getSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_PSK)
	value = interfaceToString(ivalue)
	return
}
func getSettingWirelessSecurityPskFlags(data connectionData) (value uint32) {
	ivalue := getSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_PSK_FLAGS)
	value = interfaceToUint32(ivalue)
	return
}

// Setter
func setSettingWirelessSecurityKeyMgmt(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, value)
}
func setSettingWirelessSecurityWepTxKeyidx(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_TX_KEYIDX, value)
}
func setSettingWirelessSecurityAuthAlg(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_AUTH_ALG, value)
}
func setSettingWirelessSecurityProto(data connectionData, value []string) {
	setSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_PROTO, value)
}
func setSettingWirelessSecurityPairwise(data connectionData, value []string) {
	setSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_PAIRWISE, value)
}
func setSettingWirelessSecurityGroup(data connectionData, value []string) {
	setSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_GROUP, value)
}
func setSettingWirelessSecurityLeapUsername(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME, value)
}
func setSettingWirelessSecurityLeapPassword(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD, value)
}
func setSettingWirelessSecurityLeapPasswordFlags(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD_FLAGS, value)
}
func setSettingWirelessSecurityWepKey0(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY0, value)
}
func setSettingWirelessSecurityWepKey1(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY1, value)
}
func setSettingWirelessSecurityWepKey2(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY2, value)
}
func setSettingWirelessSecurityWepKey3(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY3, value)
}
func setSettingWirelessSecurityWepKeyFlags(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY_FLAGS, value)
}
func setSettingWirelessSecurityWepKeyType(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE, value)
}
func setSettingWirelessSecurityPsk(data connectionData, value string) {
	setSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_PSK, value)
}
func setSettingWirelessSecurityPskFlags(data connectionData, value uint32) {
	setSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_PSK_FLAGS, value)
}

// JSON Getter
func getSettingWirelessSecurityKeyMgmtJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, getSettingWirelessSecurityKeyType(NM_SETTING_WIRELESS_SECURITY_KEY_MGMT))
	return
}
func getSettingWirelessSecurityWepTxKeyidxJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_TX_KEYIDX, getSettingWirelessSecurityKeyType(NM_SETTING_WIRELESS_SECURITY_WEP_TX_KEYIDX))
	return
}
func getSettingWirelessSecurityAuthAlgJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_AUTH_ALG, getSettingWirelessSecurityKeyType(NM_SETTING_WIRELESS_SECURITY_AUTH_ALG))
	return
}
func getSettingWirelessSecurityProtoJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_PROTO, getSettingWirelessSecurityKeyType(NM_SETTING_WIRELESS_SECURITY_PROTO))
	return
}
func getSettingWirelessSecurityPairwiseJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_PAIRWISE, getSettingWirelessSecurityKeyType(NM_SETTING_WIRELESS_SECURITY_PAIRWISE))
	return
}
func getSettingWirelessSecurityGroupJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_GROUP, getSettingWirelessSecurityKeyType(NM_SETTING_WIRELESS_SECURITY_GROUP))
	return
}
func getSettingWirelessSecurityLeapUsernameJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME, getSettingWirelessSecurityKeyType(NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME))
	return
}
func getSettingWirelessSecurityLeapPasswordJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD, getSettingWirelessSecurityKeyType(NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD))
	return
}
func getSettingWirelessSecurityLeapPasswordFlagsJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD_FLAGS, getSettingWirelessSecurityKeyType(NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD_FLAGS))
	return
}
func getSettingWirelessSecurityWepKey0JSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY0, getSettingWirelessSecurityKeyType(NM_SETTING_WIRELESS_SECURITY_WEP_KEY0))
	return
}
func getSettingWirelessSecurityWepKey1JSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY1, getSettingWirelessSecurityKeyType(NM_SETTING_WIRELESS_SECURITY_WEP_KEY1))
	return
}
func getSettingWirelessSecurityWepKey2JSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY2, getSettingWirelessSecurityKeyType(NM_SETTING_WIRELESS_SECURITY_WEP_KEY2))
	return
}
func getSettingWirelessSecurityWepKey3JSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY3, getSettingWirelessSecurityKeyType(NM_SETTING_WIRELESS_SECURITY_WEP_KEY3))
	return
}
func getSettingWirelessSecurityWepKeyFlagsJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY_FLAGS, getSettingWirelessSecurityKeyType(NM_SETTING_WIRELESS_SECURITY_WEP_KEY_FLAGS))
	return
}
func getSettingWirelessSecurityWepKeyTypeJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE, getSettingWirelessSecurityKeyType(NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE))
	return
}
func getSettingWirelessSecurityPskJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_PSK, getSettingWirelessSecurityKeyType(NM_SETTING_WIRELESS_SECURITY_PSK))
	return
}
func getSettingWirelessSecurityPskFlagsJSON(data connectionData) (valueJSON string) {
	valueJSON = getSettingKeyJSON(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_PSK_FLAGS, getSettingWirelessSecurityKeyType(NM_SETTING_WIRELESS_SECURITY_PSK_FLAGS))
	return
}

// JSON Setter
func setSettingWirelessSecurityKeyMgmtJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, valueJSON, getSettingWirelessSecurityKeyType(NM_SETTING_WIRELESS_SECURITY_KEY_MGMT))
}
func setSettingWirelessSecurityWepTxKeyidxJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_TX_KEYIDX, valueJSON, getSettingWirelessSecurityKeyType(NM_SETTING_WIRELESS_SECURITY_WEP_TX_KEYIDX))
}
func setSettingWirelessSecurityAuthAlgJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_AUTH_ALG, valueJSON, getSettingWirelessSecurityKeyType(NM_SETTING_WIRELESS_SECURITY_AUTH_ALG))
}
func setSettingWirelessSecurityProtoJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_PROTO, valueJSON, getSettingWirelessSecurityKeyType(NM_SETTING_WIRELESS_SECURITY_PROTO))
}
func setSettingWirelessSecurityPairwiseJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_PAIRWISE, valueJSON, getSettingWirelessSecurityKeyType(NM_SETTING_WIRELESS_SECURITY_PAIRWISE))
}
func setSettingWirelessSecurityGroupJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_GROUP, valueJSON, getSettingWirelessSecurityKeyType(NM_SETTING_WIRELESS_SECURITY_GROUP))
}
func setSettingWirelessSecurityLeapUsernameJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME, valueJSON, getSettingWirelessSecurityKeyType(NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME))
}
func setSettingWirelessSecurityLeapPasswordJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD, valueJSON, getSettingWirelessSecurityKeyType(NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD))
}
func setSettingWirelessSecurityLeapPasswordFlagsJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD_FLAGS, valueJSON, getSettingWirelessSecurityKeyType(NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD_FLAGS))
}
func setSettingWirelessSecurityWepKey0JSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY0, valueJSON, getSettingWirelessSecurityKeyType(NM_SETTING_WIRELESS_SECURITY_WEP_KEY0))
}
func setSettingWirelessSecurityWepKey1JSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY1, valueJSON, getSettingWirelessSecurityKeyType(NM_SETTING_WIRELESS_SECURITY_WEP_KEY1))
}
func setSettingWirelessSecurityWepKey2JSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY2, valueJSON, getSettingWirelessSecurityKeyType(NM_SETTING_WIRELESS_SECURITY_WEP_KEY2))
}
func setSettingWirelessSecurityWepKey3JSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY3, valueJSON, getSettingWirelessSecurityKeyType(NM_SETTING_WIRELESS_SECURITY_WEP_KEY3))
}
func setSettingWirelessSecurityWepKeyFlagsJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY_FLAGS, valueJSON, getSettingWirelessSecurityKeyType(NM_SETTING_WIRELESS_SECURITY_WEP_KEY_FLAGS))
}
func setSettingWirelessSecurityWepKeyTypeJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE, valueJSON, getSettingWirelessSecurityKeyType(NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE))
}
func setSettingWirelessSecurityPskJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_PSK, valueJSON, getSettingWirelessSecurityKeyType(NM_SETTING_WIRELESS_SECURITY_PSK))
}
func setSettingWirelessSecurityPskFlagsJSON(data connectionData, valueJSON string) (err error) {
	return setSettingKeyJSON(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_PSK_FLAGS, valueJSON, getSettingWirelessSecurityKeyType(NM_SETTING_WIRELESS_SECURITY_PSK_FLAGS))
}

// Logic JSON Setter

// Remover
func removeSettingWirelessSecurityKeyMgmt(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_KEY_MGMT)
}
func removeSettingWirelessSecurityWepTxKeyidx(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_TX_KEYIDX)
}
func removeSettingWirelessSecurityAuthAlg(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_AUTH_ALG)
}
func removeSettingWirelessSecurityProto(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_PROTO)
}
func removeSettingWirelessSecurityPairwise(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_PAIRWISE)
}
func removeSettingWirelessSecurityGroup(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_GROUP)
}
func removeSettingWirelessSecurityLeapUsername(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME)
}
func removeSettingWirelessSecurityLeapPassword(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD)
}
func removeSettingWirelessSecurityLeapPasswordFlags(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD_FLAGS)
}
func removeSettingWirelessSecurityWepKey0(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY0)
}
func removeSettingWirelessSecurityWepKey1(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY1)
}
func removeSettingWirelessSecurityWepKey2(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY2)
}
func removeSettingWirelessSecurityWepKey3(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY3)
}
func removeSettingWirelessSecurityWepKeyFlags(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY_FLAGS)
}
func removeSettingWirelessSecurityWepKeyType(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_WEP_KEY_TYPE)
}
func removeSettingWirelessSecurityPsk(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_PSK)
}
func removeSettingWirelessSecurityPskFlags(data connectionData) {
	removeSettingKey(data, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME, NM_SETTING_WIRELESS_SECURITY_PSK_FLAGS)
}
