{-# LANGUAGE TypeApplications #-}


-- | Copyright  : Will Thompson and Iñaki García Etxebarria
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- IPv6 Settings

#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif

module GI.NM.Objects.SettingIP6Config
    ( 

-- * Exported types
    SettingIP6Config(..)                    ,
    IsSettingIP6Config                      ,
    toSettingIP6Config                      ,


 -- * Methods
-- | 
-- 
--  === __Click to display all available methods, including inherited ones__
-- ==== Methods
-- [addAddress]("GI.NM.Objects.SettingIPConfig#g:method:addAddress"), [addDhcpRejectServer]("GI.NM.Objects.SettingIPConfig#g:method:addDhcpRejectServer"), [addDns]("GI.NM.Objects.SettingIPConfig#g:method:addDns"), [addDnsOption]("GI.NM.Objects.SettingIPConfig#g:method:addDnsOption"), [addDnsSearch]("GI.NM.Objects.SettingIPConfig#g:method:addDnsSearch"), [addRoute]("GI.NM.Objects.SettingIPConfig#g:method:addRoute"), [addRoutingRule]("GI.NM.Objects.SettingIPConfig#g:method:addRoutingRule"), [bindProperty]("GI.GObject.Objects.Object#g:method:bindProperty"), [bindPropertyFull]("GI.GObject.Objects.Object#g:method:bindPropertyFull"), [clearAddresses]("GI.NM.Objects.SettingIPConfig#g:method:clearAddresses"), [clearDhcpRejectServers]("GI.NM.Objects.SettingIPConfig#g:method:clearDhcpRejectServers"), [clearDns]("GI.NM.Objects.SettingIPConfig#g:method:clearDns"), [clearDnsOptions]("GI.NM.Objects.SettingIPConfig#g:method:clearDnsOptions"), [clearDnsSearches]("GI.NM.Objects.SettingIPConfig#g:method:clearDnsSearches"), [clearRoutes]("GI.NM.Objects.SettingIPConfig#g:method:clearRoutes"), [clearRoutingRules]("GI.NM.Objects.SettingIPConfig#g:method:clearRoutingRules"), [compare]("GI.NM.Objects.Setting#g:method:compare"), [diff]("GI.NM.Objects.Setting#g:method:diff"), [duplicate]("GI.NM.Objects.Setting#g:method:duplicate"), [enumerateValues]("GI.NM.Objects.Setting#g:method:enumerateValues"), [forceFloating]("GI.GObject.Objects.Object#g:method:forceFloating"), [freezeNotify]("GI.GObject.Objects.Object#g:method:freezeNotify"), [getv]("GI.GObject.Objects.Object#g:method:getv"), [hasDnsOptions]("GI.NM.Objects.SettingIPConfig#g:method:hasDnsOptions"), [isFloating]("GI.GObject.Objects.Object#g:method:isFloating"), [notify]("GI.GObject.Objects.Object#g:method:notify"), [notifyByPspec]("GI.GObject.Objects.Object#g:method:notifyByPspec"), [optionClearByName]("GI.NM.Objects.Setting#g:method:optionClearByName"), [optionGet]("GI.NM.Objects.Setting#g:method:optionGet"), [optionGetAllNames]("GI.NM.Objects.Setting#g:method:optionGetAllNames"), [optionGetBoolean]("GI.NM.Objects.Setting#g:method:optionGetBoolean"), [optionGetUint32]("GI.NM.Objects.Setting#g:method:optionGetUint32"), [optionSet]("GI.NM.Objects.Setting#g:method:optionSet"), [optionSetBoolean]("GI.NM.Objects.Setting#g:method:optionSetBoolean"), [optionSetUint32]("GI.NM.Objects.Setting#g:method:optionSetUint32"), [ref]("GI.GObject.Objects.Object#g:method:ref"), [refSink]("GI.GObject.Objects.Object#g:method:refSink"), [removeAddress]("GI.NM.Objects.SettingIPConfig#g:method:removeAddress"), [removeAddressByValue]("GI.NM.Objects.SettingIPConfig#g:method:removeAddressByValue"), [removeDhcpRejectServer]("GI.NM.Objects.SettingIPConfig#g:method:removeDhcpRejectServer"), [removeDns]("GI.NM.Objects.SettingIPConfig#g:method:removeDns"), [removeDnsByValue]("GI.NM.Objects.SettingIPConfig#g:method:removeDnsByValue"), [removeDnsOption]("GI.NM.Objects.SettingIPConfig#g:method:removeDnsOption"), [removeDnsOptionByValue]("GI.NM.Objects.SettingIPConfig#g:method:removeDnsOptionByValue"), [removeDnsSearch]("GI.NM.Objects.SettingIPConfig#g:method:removeDnsSearch"), [removeDnsSearchByValue]("GI.NM.Objects.SettingIPConfig#g:method:removeDnsSearchByValue"), [removeRoute]("GI.NM.Objects.SettingIPConfig#g:method:removeRoute"), [removeRouteByValue]("GI.NM.Objects.SettingIPConfig#g:method:removeRouteByValue"), [removeRoutingRule]("GI.NM.Objects.SettingIPConfig#g:method:removeRoutingRule"), [runDispose]("GI.GObject.Objects.Object#g:method:runDispose"), [stealData]("GI.GObject.Objects.Object#g:method:stealData"), [stealQdata]("GI.GObject.Objects.Object#g:method:stealQdata"), [thawNotify]("GI.GObject.Objects.Object#g:method:thawNotify"), [toString]("GI.NM.Objects.Setting#g:method:toString"), [unref]("GI.GObject.Objects.Object#g:method:unref"), [verify]("GI.NM.Objects.Setting#g:method:verify"), [verifySecrets]("GI.NM.Objects.Setting#g:method:verifySecrets"), [watchClosure]("GI.GObject.Objects.Object#g:method:watchClosure").
-- 
-- ==== Getters
-- [getAddrGenMode]("GI.NM.Objects.SettingIP6Config#g:method:getAddrGenMode"), [getAddress]("GI.NM.Objects.SettingIPConfig#g:method:getAddress"), [getAutoRouteExtGw]("GI.NM.Objects.SettingIPConfig#g:method:getAutoRouteExtGw"), [getDadTimeout]("GI.NM.Objects.SettingIPConfig#g:method:getDadTimeout"), [getData]("GI.GObject.Objects.Object#g:method:getData"), [getDbusPropertyType]("GI.NM.Objects.Setting#g:method:getDbusPropertyType"), [getDhcpDscp]("GI.NM.Objects.SettingIPConfig#g:method:getDhcpDscp"), [getDhcpDuid]("GI.NM.Objects.SettingIP6Config#g:method:getDhcpDuid"), [getDhcpHostname]("GI.NM.Objects.SettingIPConfig#g:method:getDhcpHostname"), [getDhcpHostnameFlags]("GI.NM.Objects.SettingIPConfig#g:method:getDhcpHostnameFlags"), [getDhcpIaid]("GI.NM.Objects.SettingIPConfig#g:method:getDhcpIaid"), [getDhcpPdHint]("GI.NM.Objects.SettingIP6Config#g:method:getDhcpPdHint"), [getDhcpRejectServers]("GI.NM.Objects.SettingIPConfig#g:method:getDhcpRejectServers"), [getDhcpSendHostname]("GI.NM.Objects.SettingIPConfig#g:method:getDhcpSendHostname"), [getDhcpSendRelease]("GI.NM.Objects.SettingIPConfig#g:method:getDhcpSendRelease"), [getDhcpTimeout]("GI.NM.Objects.SettingIPConfig#g:method:getDhcpTimeout"), [getDns]("GI.NM.Objects.SettingIPConfig#g:method:getDns"), [getDnsOption]("GI.NM.Objects.SettingIPConfig#g:method:getDnsOption"), [getDnsPriority]("GI.NM.Objects.SettingIPConfig#g:method:getDnsPriority"), [getDnsSearch]("GI.NM.Objects.SettingIPConfig#g:method:getDnsSearch"), [getGateway]("GI.NM.Objects.SettingIPConfig#g:method:getGateway"), [getIgnoreAutoDns]("GI.NM.Objects.SettingIPConfig#g:method:getIgnoreAutoDns"), [getIgnoreAutoRoutes]("GI.NM.Objects.SettingIPConfig#g:method:getIgnoreAutoRoutes"), [getIp6Privacy]("GI.NM.Objects.SettingIP6Config#g:method:getIp6Privacy"), [getMayFail]("GI.NM.Objects.SettingIPConfig#g:method:getMayFail"), [getMethod]("GI.NM.Objects.SettingIPConfig#g:method:getMethod"), [getMtu]("GI.NM.Objects.SettingIP6Config#g:method:getMtu"), [getName]("GI.NM.Objects.Setting#g:method:getName"), [getNeverDefault]("GI.NM.Objects.SettingIPConfig#g:method:getNeverDefault"), [getNumAddresses]("GI.NM.Objects.SettingIPConfig#g:method:getNumAddresses"), [getNumDns]("GI.NM.Objects.SettingIPConfig#g:method:getNumDns"), [getNumDnsOptions]("GI.NM.Objects.SettingIPConfig#g:method:getNumDnsOptions"), [getNumDnsSearches]("GI.NM.Objects.SettingIPConfig#g:method:getNumDnsSearches"), [getNumRoutes]("GI.NM.Objects.SettingIPConfig#g:method:getNumRoutes"), [getNumRoutingRules]("GI.NM.Objects.SettingIPConfig#g:method:getNumRoutingRules"), [getProperty]("GI.GObject.Objects.Object#g:method:getProperty"), [getQdata]("GI.GObject.Objects.Object#g:method:getQdata"), [getRaTimeout]("GI.NM.Objects.SettingIP6Config#g:method:getRaTimeout"), [getReplaceLocalRule]("GI.NM.Objects.SettingIPConfig#g:method:getReplaceLocalRule"), [getRequiredTimeout]("GI.NM.Objects.SettingIPConfig#g:method:getRequiredTimeout"), [getRoute]("GI.NM.Objects.SettingIPConfig#g:method:getRoute"), [getRouteMetric]("GI.NM.Objects.SettingIPConfig#g:method:getRouteMetric"), [getRouteTable]("GI.NM.Objects.SettingIPConfig#g:method:getRouteTable"), [getRoutingRule]("GI.NM.Objects.SettingIPConfig#g:method:getRoutingRule"), [getSecretFlags]("GI.NM.Objects.Setting#g:method:getSecretFlags"), [getTempPreferredLifetime]("GI.NM.Objects.SettingIP6Config#g:method:getTempPreferredLifetime"), [getTempValidLifetime]("GI.NM.Objects.SettingIP6Config#g:method:getTempValidLifetime"), [getToken]("GI.NM.Objects.SettingIP6Config#g:method:getToken").
-- 
-- ==== Setters
-- [setData]("GI.GObject.Objects.Object#g:method:setData"), [setDataFull]("GI.GObject.Objects.Object#g:method:setDataFull"), [setProperty]("GI.GObject.Objects.Object#g:method:setProperty"), [setSecretFlags]("GI.NM.Objects.Setting#g:method:setSecretFlags").

#if defined(ENABLE_OVERLOADING)
    ResolveSettingIP6ConfigMethod           ,
#endif

-- ** getAddrGenMode #method:getAddrGenMode#

#if defined(ENABLE_OVERLOADING)
    SettingIP6ConfigGetAddrGenModeMethodInfo,
#endif
    settingIP6ConfigGetAddrGenMode          ,


-- ** getDhcpDuid #method:getDhcpDuid#

#if defined(ENABLE_OVERLOADING)
    SettingIP6ConfigGetDhcpDuidMethodInfo   ,
#endif
    settingIP6ConfigGetDhcpDuid             ,


-- ** getDhcpPdHint #method:getDhcpPdHint#

#if defined(ENABLE_OVERLOADING)
    SettingIP6ConfigGetDhcpPdHintMethodInfo ,
#endif
    settingIP6ConfigGetDhcpPdHint           ,


-- ** getIp6Privacy #method:getIp6Privacy#

#if defined(ENABLE_OVERLOADING)
    SettingIP6ConfigGetIp6PrivacyMethodInfo ,
#endif
    settingIP6ConfigGetIp6Privacy           ,


-- ** getMtu #method:getMtu#

#if defined(ENABLE_OVERLOADING)
    SettingIP6ConfigGetMtuMethodInfo        ,
#endif
    settingIP6ConfigGetMtu                  ,


-- ** getRaTimeout #method:getRaTimeout#

#if defined(ENABLE_OVERLOADING)
    SettingIP6ConfigGetRaTimeoutMethodInfo  ,
#endif
    settingIP6ConfigGetRaTimeout            ,


-- ** getTempPreferredLifetime #method:getTempPreferredLifetime#

#if defined(ENABLE_OVERLOADING)
    SettingIP6ConfigGetTempPreferredLifetimeMethodInfo,
#endif
    settingIP6ConfigGetTempPreferredLifetime,


-- ** getTempValidLifetime #method:getTempValidLifetime#

#if defined(ENABLE_OVERLOADING)
    SettingIP6ConfigGetTempValidLifetimeMethodInfo,
#endif
    settingIP6ConfigGetTempValidLifetime    ,


-- ** getToken #method:getToken#

#if defined(ENABLE_OVERLOADING)
    SettingIP6ConfigGetTokenMethodInfo      ,
#endif
    settingIP6ConfigGetToken                ,


-- ** new #method:new#

    settingIP6ConfigNew                     ,




 -- * Properties


-- ** addrGenMode #attr:addrGenMode#
-- | Configure the method for creating the IPv6 interface identifier of
-- addresses for RFC4862 IPv6 Stateless Address Autoconfiguration and IPv6
-- Link Local.
-- 
-- The permitted values are: 'GI.NM.Enums.SettingIP6ConfigAddrGenModeEui64',
-- 'GI.NM.Enums.SettingIP6ConfigAddrGenModeStablePrivacy'.
-- 'GI.NM.Enums.SettingIP6ConfigAddrGenModeDefaultOrEui64' or
-- 'GI.NM.Enums.SettingIP6ConfigAddrGenModeDefault'.
-- 
-- If the property is set to \"eui64\", the addresses will be generated using
-- the interface token derived from the hardware address. This makes the
-- host part of the address constant, making it possible to track the
-- host\'s presence when it changes networks. The address changes when the
-- interface hardware is replaced. If a duplicate address is detected,
-- there is no fallback to generate another address. When configured, the
-- \"ipv6.token\" is used instead of the MAC address to generate addresses
-- for stateless autoconfiguration.
-- 
-- If the property is set to \"stable-privacy\", the interface identifier is
-- generated as specified by RFC7217. This works by hashing a host specific
-- key (see NetworkManager(8) manual), the interface name, the connection\'s
-- \"connection.stable-id\" property and the address prefix.  This improves
-- privacy by making it harder to use the address to track the host\'s
-- presence as every prefix and network has a different identifier. Also,
-- the address is stable when the network interface hardware is replaced.
-- 
-- The special values \"default\" and \"default-or-eui64\" will fallback to the
-- global connection default as documented in the NetworkManager.conf(5)
-- manual. If the global default is not specified, the fallback value is
-- \"stable-privacy\" or \"eui64\", respectively.
-- 
-- For libnm, the property defaults to \"default\" since 1.40.  Previously it
-- used to default to \"stable-privacy\".  On D-Bus, the absence of an
-- addr-gen-mode setting equals \"default\". For keyfile plugin, the absence
-- of the setting on disk means \"default-or-eui64\" so that the property
-- doesn\'t change on upgrade from older versions.
-- 
-- Note that this setting is distinct from the Privacy Extensions as
-- configured by \"ip6-privacy\" property and it does not affect the
-- temporary addresses configured with this option.
-- 
-- /Since: 1.2/

#if defined(ENABLE_OVERLOADING)
    SettingIP6ConfigAddrGenModePropertyInfo ,
#endif
    constructSettingIP6ConfigAddrGenMode    ,
    getSettingIP6ConfigAddrGenMode          ,
    setSettingIP6ConfigAddrGenMode          ,
#if defined(ENABLE_OVERLOADING)
    settingIP6ConfigAddrGenMode             ,
#endif


-- ** dhcpDuid #attr:dhcpDuid#
-- | A string containing the DHCPv6 Unique Identifier (DUID) used by the dhcp
-- client to identify itself to DHCPv6 servers (RFC 3315). The DUID is carried
-- in the Client Identifier option.
-- If the property is a hex string (\'aa:bb:cc\') it is interpreted as a binary
-- DUID and filled as an opaque value in the Client Identifier option.
-- 
-- The special value \"lease\" will retrieve the DUID previously used from the
-- lease file belonging to the connection. If no DUID is found and \"dhclient\"
-- is the configured dhcp client, the DUID is searched in the system-wide
-- dhclient lease file. If still no DUID is found, or another dhcp client is
-- used, a global and permanent DUID-UUID (RFC 6355) will be generated based
-- on the machine-id.
-- 
-- The special values \"llt\" and \"ll\" will generate a DUID of type LLT or LL
-- (see RFC 3315) based on the current MAC address of the device. In order to
-- try providing a stable DUID-LLT, the time field will contain a constant
-- timestamp that is used globally (for all profiles) and persisted to disk.
-- 
-- The special values \"stable-llt\", \"stable-ll\" and \"stable-uuid\" will generate
-- a DUID of the corresponding type, derived from the connection\'s stable-id and
-- a per-host unique key. You may want to include the \"${DEVICE}\" or \"${MAC}\" specifier
-- in the stable-id, in case this profile gets activated on multiple devices.
-- So, the link-layer address of \"stable-ll\" and \"stable-llt\" will be a generated
-- address derived from the stable id. The DUID-LLT time value in the \"stable-llt\"
-- option will be picked among a static timespan of three years (the upper bound
-- of the interval is the same constant timestamp used in \"llt\").
-- 
-- When the property is unset, the global value provided for \"ipv6.dhcp-duid\" is
-- used. If no global value is provided, the default \"lease\" value is assumed.
-- 
-- /Since: 1.12/

#if defined(ENABLE_OVERLOADING)
    SettingIP6ConfigDhcpDuidPropertyInfo    ,
#endif
    clearSettingIP6ConfigDhcpDuid           ,
    constructSettingIP6ConfigDhcpDuid       ,
    getSettingIP6ConfigDhcpDuid             ,
    setSettingIP6ConfigDhcpDuid             ,
#if defined(ENABLE_OVERLOADING)
    settingIP6ConfigDhcpDuid                ,
#endif


-- ** dhcpPdHint #attr:dhcpPdHint#
-- | A IPv6 address followed by a slash and a prefix length. If set, the value is
-- sent to the DHCPv6 server as hint indicating the prefix delegation (IA_PD) we
-- want to receive.
-- To only hint a prefix length without prefix, set the address part to the
-- zero address (for example \"::\/60\").
-- 
-- /Since: 1.44/

#if defined(ENABLE_OVERLOADING)
    SettingIP6ConfigDhcpPdHintPropertyInfo  ,
#endif
    clearSettingIP6ConfigDhcpPdHint         ,
    constructSettingIP6ConfigDhcpPdHint     ,
    getSettingIP6ConfigDhcpPdHint           ,
    setSettingIP6ConfigDhcpPdHint           ,
#if defined(ENABLE_OVERLOADING)
    settingIP6ConfigDhcpPdHint              ,
#endif


-- ** ip6Privacy #attr:ip6Privacy#
-- | Configure IPv6 Privacy Extensions for SLAAC, described in RFC4941.  If
-- enabled, it makes the kernel generate a temporary IPv6 address in
-- addition to the public one generated from MAC address via modified
-- EUI-64.  This enhances privacy, but could cause problems in some
-- applications, on the other hand.  The permitted values are: -1: unknown,
-- 0: disabled, 1: enabled (prefer public address), 2: enabled (prefer temporary
-- addresses).
-- 
-- Having a per-connection setting set to \"-1\" (default) means fallback to
-- global configuration \"ipv6.ip6-privacy\". If it\'s also unspecified or set
-- to \"-1\", fallback to read \"\/proc\/sys\/net\/ipv6\/conf\/default\/use_tempaddr\".
-- 
-- Note that this setting is distinct from the Stable Privacy addresses
-- that can be enabled with the \"addr-gen-mode\" property\'s \"stable-privacy\"
-- setting as another way of avoiding host tracking with IPv6 addresses.

#if defined(ENABLE_OVERLOADING)
    SettingIP6ConfigIp6PrivacyPropertyInfo  ,
#endif
    constructSettingIP6ConfigIp6Privacy     ,
    getSettingIP6ConfigIp6Privacy           ,
    setSettingIP6ConfigIp6Privacy           ,
#if defined(ENABLE_OVERLOADING)
    settingIP6ConfigIp6Privacy              ,
#endif


-- ** mtu #attr:mtu#
-- | Maximum transmission unit size, in bytes. If zero (the default), the MTU
-- is set automatically from router advertisements or is left equal to the
-- link-layer MTU. If greater than the link-layer MTU, or greater than zero
-- but less than the minimum IPv6 MTU of 1280, this value has no effect.
-- 
-- /Since: 1.40/

#if defined(ENABLE_OVERLOADING)
    SettingIP6ConfigMtuPropertyInfo         ,
#endif
    constructSettingIP6ConfigMtu            ,
    getSettingIP6ConfigMtu                  ,
    setSettingIP6ConfigMtu                  ,
#if defined(ENABLE_OVERLOADING)
    settingIP6ConfigMtu                     ,
#endif


-- ** raTimeout #attr:raTimeout#
-- | A timeout for waiting Router Advertisements in seconds. If zero (the default), a
-- globally configured default is used. If still unspecified, the timeout depends on the
-- sysctl settings of the device.
-- 
-- Set to 2147483647 (MAXINT32) for infinity.
-- 
-- /Since: 1.24/

#if defined(ENABLE_OVERLOADING)
    SettingIP6ConfigRaTimeoutPropertyInfo   ,
#endif
    constructSettingIP6ConfigRaTimeout      ,
    getSettingIP6ConfigRaTimeout            ,
    setSettingIP6ConfigRaTimeout            ,
#if defined(ENABLE_OVERLOADING)
    settingIP6ConfigRaTimeout               ,
#endif


-- ** tempPreferredLifetime #attr:tempPreferredLifetime#
-- | The preferred lifetime of autogenerated temporary addresses, in seconds.
-- 
-- Having a per-connection setting set to \"0\" (default) means fallback to
-- global configuration \"ipv6.temp-preferred-lifetime\" setting\". If it\'s also
-- unspecified or set to \"0\", fallback to read
-- \"\/proc\/sys\/net\/ipv6\/conf\/default\/temp_prefered_lft\".
-- 
-- /Since: 1.48/

#if defined(ENABLE_OVERLOADING)
    SettingIP6ConfigTempPreferredLifetimePropertyInfo,
#endif
    constructSettingIP6ConfigTempPreferredLifetime,
    getSettingIP6ConfigTempPreferredLifetime,
    setSettingIP6ConfigTempPreferredLifetime,
#if defined(ENABLE_OVERLOADING)
    settingIP6ConfigTempPreferredLifetime   ,
#endif


-- ** tempValidLifetime #attr:tempValidLifetime#
-- | The valid lifetime of autogenerated temporary addresses, in seconds.
-- 
-- Having a per-connection setting set to \"0\" (default) means fallback to
-- global configuration \"ipv6.temp-valid-lifetime\" setting\". If it\'s also
-- unspecified or set to \"0\", fallback to read
-- \"\/proc\/sys\/net\/ipv6\/conf\/default\/temp_valid_lft\".
-- 
-- /Since: 1.48/

#if defined(ENABLE_OVERLOADING)
    SettingIP6ConfigTempValidLifetimePropertyInfo,
#endif
    constructSettingIP6ConfigTempValidLifetime,
    getSettingIP6ConfigTempValidLifetime    ,
    setSettingIP6ConfigTempValidLifetime    ,
#if defined(ENABLE_OVERLOADING)
    settingIP6ConfigTempValidLifetime       ,
#endif


-- ** token #attr:token#
-- | Configure the token for draft-chown-6man-tokenised-ipv6-identifiers-02
-- IPv6 tokenized interface identifiers. Useful with eui64 addr-gen-mode.
-- 
-- When set, the token is used as IPv6 interface identifier instead of the
-- hardware address. This only applies to addresses from stateless
-- autoconfiguration, not to IPv6 link local addresses.
-- 
-- /Since: 1.4/

#if defined(ENABLE_OVERLOADING)
    SettingIP6ConfigTokenPropertyInfo       ,
#endif
    clearSettingIP6ConfigToken              ,
    constructSettingIP6ConfigToken          ,
    getSettingIP6ConfigToken                ,
    setSettingIP6ConfigToken                ,
#if defined(ENABLE_OVERLOADING)
    settingIP6ConfigToken                   ,
#endif




    ) where

import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P

import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GHashTable as B.GHT
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
import qualified Data.Coerce as Coerce
import qualified Data.Text as T
import qualified Data.Kind as DK
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GHC.Records as R
import qualified Data.Word as DW
import qualified Data.Int as DI
import qualified System.Posix.Types as SPT
import qualified Foreign.C.Types as FCT

-- Workaround for https://gitlab.haskell.org/ghc/ghc/-/issues/23392
#if MIN_VERSION_base(4,18,0)
import qualified GI.GLib.Structs.Bytes as GLib.Bytes
import qualified GI.GLib.Structs.VariantType as GLib.VariantType
import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.NM.Callbacks as NM.Callbacks
import {-# SOURCE #-} qualified GI.NM.Enums as NM.Enums
import {-# SOURCE #-} qualified GI.NM.Flags as NM.Flags
import {-# SOURCE #-} qualified GI.NM.Interfaces.Connection as NM.Connection
import {-# SOURCE #-} qualified GI.NM.Objects.Setting as NM.Setting
import {-# SOURCE #-} qualified GI.NM.Objects.Setting8021x as NM.Setting8021x
import {-# SOURCE #-} qualified GI.NM.Objects.SettingAdsl as NM.SettingAdsl
import {-# SOURCE #-} qualified GI.NM.Objects.SettingBluetooth as NM.SettingBluetooth
import {-# SOURCE #-} qualified GI.NM.Objects.SettingBond as NM.SettingBond
import {-# SOURCE #-} qualified GI.NM.Objects.SettingBridge as NM.SettingBridge
import {-# SOURCE #-} qualified GI.NM.Objects.SettingBridgePort as NM.SettingBridgePort
import {-# SOURCE #-} qualified GI.NM.Objects.SettingCdma as NM.SettingCdma
import {-# SOURCE #-} qualified GI.NM.Objects.SettingConnection as NM.SettingConnection
import {-# SOURCE #-} qualified GI.NM.Objects.SettingDcb as NM.SettingDcb
import {-# SOURCE #-} qualified GI.NM.Objects.SettingDummy as NM.SettingDummy
import {-# SOURCE #-} qualified GI.NM.Objects.SettingGeneric as NM.SettingGeneric
import {-# SOURCE #-} qualified GI.NM.Objects.SettingGsm as NM.SettingGsm
import {-# SOURCE #-} qualified GI.NM.Objects.SettingIP4Config as NM.SettingIP4Config
import {-# SOURCE #-} qualified GI.NM.Objects.SettingIPConfig as NM.SettingIPConfig
import {-# SOURCE #-} qualified GI.NM.Objects.SettingIPTunnel as NM.SettingIPTunnel
import {-# SOURCE #-} qualified GI.NM.Objects.SettingInfiniband as NM.SettingInfiniband
import {-# SOURCE #-} qualified GI.NM.Objects.SettingMacsec as NM.SettingMacsec
import {-# SOURCE #-} qualified GI.NM.Objects.SettingMacvlan as NM.SettingMacvlan
import {-# SOURCE #-} qualified GI.NM.Objects.SettingOlpcMesh as NM.SettingOlpcMesh
import {-# SOURCE #-} qualified GI.NM.Objects.SettingOvsBridge as NM.SettingOvsBridge
import {-# SOURCE #-} qualified GI.NM.Objects.SettingOvsInterface as NM.SettingOvsInterface
import {-# SOURCE #-} qualified GI.NM.Objects.SettingOvsPatch as NM.SettingOvsPatch
import {-# SOURCE #-} qualified GI.NM.Objects.SettingOvsPort as NM.SettingOvsPort
import {-# SOURCE #-} qualified GI.NM.Objects.SettingPpp as NM.SettingPpp
import {-# SOURCE #-} qualified GI.NM.Objects.SettingPppoe as NM.SettingPppoe
import {-# SOURCE #-} qualified GI.NM.Objects.SettingProxy as NM.SettingProxy
import {-# SOURCE #-} qualified GI.NM.Objects.SettingSerial as NM.SettingSerial
import {-# SOURCE #-} qualified GI.NM.Objects.SettingTCConfig as NM.SettingTCConfig
import {-# SOURCE #-} qualified GI.NM.Objects.SettingTeam as NM.SettingTeam
import {-# SOURCE #-} qualified GI.NM.Objects.SettingTeamPort as NM.SettingTeamPort
import {-# SOURCE #-} qualified GI.NM.Objects.SettingTun as NM.SettingTun
import {-# SOURCE #-} qualified GI.NM.Objects.SettingVlan as NM.SettingVlan
import {-# SOURCE #-} qualified GI.NM.Objects.SettingVpn as NM.SettingVpn
import {-# SOURCE #-} qualified GI.NM.Objects.SettingVxlan as NM.SettingVxlan
import {-# SOURCE #-} qualified GI.NM.Objects.SettingWimax as NM.SettingWimax
import {-# SOURCE #-} qualified GI.NM.Objects.SettingWired as NM.SettingWired
import {-# SOURCE #-} qualified GI.NM.Objects.SettingWireless as NM.SettingWireless
import {-# SOURCE #-} qualified GI.NM.Objects.SettingWirelessSecurity as NM.SettingWirelessSecurity
import {-# SOURCE #-} qualified GI.NM.Structs.BridgeVlan as NM.BridgeVlan
import {-# SOURCE #-} qualified GI.NM.Structs.IPAddress as NM.IPAddress
import {-# SOURCE #-} qualified GI.NM.Structs.IPRoute as NM.IPRoute
import {-# SOURCE #-} qualified GI.NM.Structs.IPRoutingRule as NM.IPRoutingRule
import {-# SOURCE #-} qualified GI.NM.Structs.Range as NM.Range
import {-# SOURCE #-} qualified GI.NM.Structs.TCAction as NM.TCAction
import {-# SOURCE #-} qualified GI.NM.Structs.TCQdisc as NM.TCQdisc
import {-# SOURCE #-} qualified GI.NM.Structs.TCTfilter as NM.TCTfilter
import {-# SOURCE #-} qualified GI.NM.Structs.TeamLinkWatcher as NM.TeamLinkWatcher
import {-# SOURCE #-} qualified GI.NM.Structs.VariantAttributeSpec as NM.VariantAttributeSpec

#else
import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.NM.Enums as NM.Enums
import {-# SOURCE #-} qualified GI.NM.Objects.Setting as NM.Setting
import {-# SOURCE #-} qualified GI.NM.Objects.SettingIPConfig as NM.SettingIPConfig

#endif

-- | Memory-managed wrapper type.
newtype SettingIP6Config = SettingIP6Config (SP.ManagedPtr SettingIP6Config)
    deriving (SettingIP6Config -> SettingIP6Config -> Bool
(SettingIP6Config -> SettingIP6Config -> Bool)
-> (SettingIP6Config -> SettingIP6Config -> Bool)
-> Eq SettingIP6Config
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SettingIP6Config -> SettingIP6Config -> Bool
== :: SettingIP6Config -> SettingIP6Config -> Bool
$c/= :: SettingIP6Config -> SettingIP6Config -> Bool
/= :: SettingIP6Config -> SettingIP6Config -> Bool
Eq)

instance SP.ManagedPtrNewtype SettingIP6Config where
    toManagedPtr :: SettingIP6Config -> ManagedPtr SettingIP6Config
toManagedPtr (SettingIP6Config ManagedPtr SettingIP6Config
p) = ManagedPtr SettingIP6Config
p

foreign import ccall "nm_setting_ip6_config_get_type"
    c_nm_setting_ip6_config_get_type :: IO B.Types.GType

instance B.Types.TypedObject SettingIP6Config where
    glibType :: IO GType
glibType = IO GType
c_nm_setting_ip6_config_get_type

instance B.Types.GObject SettingIP6Config

-- | Type class for types which can be safely cast to t'SettingIP6Config', for instance with `toSettingIP6Config`.
class (SP.GObject o, O.IsDescendantOf SettingIP6Config o) => IsSettingIP6Config o
instance (SP.GObject o, O.IsDescendantOf SettingIP6Config o) => IsSettingIP6Config o

instance O.HasParentTypes SettingIP6Config
type instance O.ParentTypes SettingIP6Config = '[NM.SettingIPConfig.SettingIPConfig, NM.Setting.Setting, GObject.Object.Object]

-- | Cast to t'SettingIP6Config', for types for which this is known to be safe. For general casts, use 'Data.GI.Base.ManagedPtr.castTo'.
toSettingIP6Config :: (MIO.MonadIO m, IsSettingIP6Config o) => o -> m SettingIP6Config
toSettingIP6Config :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIP6Config o) =>
o -> m SettingIP6Config
toSettingIP6Config = IO SettingIP6Config -> m SettingIP6Config
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO SettingIP6Config -> m SettingIP6Config)
-> (o -> IO SettingIP6Config) -> o -> m SettingIP6Config
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr SettingIP6Config -> SettingIP6Config)
-> o -> IO SettingIP6Config
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
 ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr SettingIP6Config -> SettingIP6Config
SettingIP6Config

-- | Convert t'SettingIP6Config' to and from t'Data.GI.Base.GValue.GValue'. See 'Data.GI.Base.GValue.toGValue' and 'Data.GI.Base.GValue.fromGValue'.
instance B.GValue.IsGValue (Maybe SettingIP6Config) where
    gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_nm_setting_ip6_config_get_type
    gvalueSet_ :: Ptr GValue -> Maybe SettingIP6Config -> IO ()
gvalueSet_ Ptr GValue
gv Maybe SettingIP6Config
P.Nothing = Ptr GValue -> Ptr SettingIP6Config -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr SettingIP6Config
forall a. Ptr a
FP.nullPtr :: FP.Ptr SettingIP6Config)
    gvalueSet_ Ptr GValue
gv (P.Just SettingIP6Config
obj) = SettingIP6Config -> (Ptr SettingIP6Config -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr SettingIP6Config
obj (Ptr GValue -> Ptr SettingIP6Config -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
    gvalueGet_ :: Ptr GValue -> IO (Maybe SettingIP6Config)
gvalueGet_ Ptr GValue
gv = do
        Ptr SettingIP6Config
ptr <- Ptr GValue -> IO (Ptr SettingIP6Config)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr SettingIP6Config)
        if Ptr SettingIP6Config
ptr Ptr SettingIP6Config -> Ptr SettingIP6Config -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr SettingIP6Config
forall a. Ptr a
FP.nullPtr
        then SettingIP6Config -> Maybe SettingIP6Config
forall a. a -> Maybe a
P.Just (SettingIP6Config -> Maybe SettingIP6Config)
-> IO SettingIP6Config -> IO (Maybe SettingIP6Config)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr SettingIP6Config -> SettingIP6Config)
-> Ptr SettingIP6Config -> IO SettingIP6Config
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr SettingIP6Config -> SettingIP6Config
SettingIP6Config Ptr SettingIP6Config
ptr
        else Maybe SettingIP6Config -> IO (Maybe SettingIP6Config)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe SettingIP6Config
forall a. Maybe a
P.Nothing
        
    

#if defined(ENABLE_OVERLOADING)
type family ResolveSettingIP6ConfigMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
    ResolveSettingIP6ConfigMethod "addAddress" o = NM.SettingIPConfig.SettingIPConfigAddAddressMethodInfo
    ResolveSettingIP6ConfigMethod "addDhcpRejectServer" o = NM.SettingIPConfig.SettingIPConfigAddDhcpRejectServerMethodInfo
    ResolveSettingIP6ConfigMethod "addDns" o = NM.SettingIPConfig.SettingIPConfigAddDnsMethodInfo
    ResolveSettingIP6ConfigMethod "addDnsOption" o = NM.SettingIPConfig.SettingIPConfigAddDnsOptionMethodInfo
    ResolveSettingIP6ConfigMethod "addDnsSearch" o = NM.SettingIPConfig.SettingIPConfigAddDnsSearchMethodInfo
    ResolveSettingIP6ConfigMethod "addRoute" o = NM.SettingIPConfig.SettingIPConfigAddRouteMethodInfo
    ResolveSettingIP6ConfigMethod "addRoutingRule" o = NM.SettingIPConfig.SettingIPConfigAddRoutingRuleMethodInfo
    ResolveSettingIP6ConfigMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveSettingIP6ConfigMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveSettingIP6ConfigMethod "clearAddresses" o = NM.SettingIPConfig.SettingIPConfigClearAddressesMethodInfo
    ResolveSettingIP6ConfigMethod "clearDhcpRejectServers" o = NM.SettingIPConfig.SettingIPConfigClearDhcpRejectServersMethodInfo
    ResolveSettingIP6ConfigMethod "clearDns" o = NM.SettingIPConfig.SettingIPConfigClearDnsMethodInfo
    ResolveSettingIP6ConfigMethod "clearDnsOptions" o = NM.SettingIPConfig.SettingIPConfigClearDnsOptionsMethodInfo
    ResolveSettingIP6ConfigMethod "clearDnsSearches" o = NM.SettingIPConfig.SettingIPConfigClearDnsSearchesMethodInfo
    ResolveSettingIP6ConfigMethod "clearRoutes" o = NM.SettingIPConfig.SettingIPConfigClearRoutesMethodInfo
    ResolveSettingIP6ConfigMethod "clearRoutingRules" o = NM.SettingIPConfig.SettingIPConfigClearRoutingRulesMethodInfo
    ResolveSettingIP6ConfigMethod "compare" o = NM.Setting.SettingCompareMethodInfo
    ResolveSettingIP6ConfigMethod "diff" o = NM.Setting.SettingDiffMethodInfo
    ResolveSettingIP6ConfigMethod "duplicate" o = NM.Setting.SettingDuplicateMethodInfo
    ResolveSettingIP6ConfigMethod "enumerateValues" o = NM.Setting.SettingEnumerateValuesMethodInfo
    ResolveSettingIP6ConfigMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveSettingIP6ConfigMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveSettingIP6ConfigMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveSettingIP6ConfigMethod "hasDnsOptions" o = NM.SettingIPConfig.SettingIPConfigHasDnsOptionsMethodInfo
    ResolveSettingIP6ConfigMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveSettingIP6ConfigMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveSettingIP6ConfigMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveSettingIP6ConfigMethod "optionClearByName" o = NM.Setting.SettingOptionClearByNameMethodInfo
    ResolveSettingIP6ConfigMethod "optionGet" o = NM.Setting.SettingOptionGetMethodInfo
    ResolveSettingIP6ConfigMethod "optionGetAllNames" o = NM.Setting.SettingOptionGetAllNamesMethodInfo
    ResolveSettingIP6ConfigMethod "optionGetBoolean" o = NM.Setting.SettingOptionGetBooleanMethodInfo
    ResolveSettingIP6ConfigMethod "optionGetUint32" o = NM.Setting.SettingOptionGetUint32MethodInfo
    ResolveSettingIP6ConfigMethod "optionSet" o = NM.Setting.SettingOptionSetMethodInfo
    ResolveSettingIP6ConfigMethod "optionSetBoolean" o = NM.Setting.SettingOptionSetBooleanMethodInfo
    ResolveSettingIP6ConfigMethod "optionSetUint32" o = NM.Setting.SettingOptionSetUint32MethodInfo
    ResolveSettingIP6ConfigMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveSettingIP6ConfigMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveSettingIP6ConfigMethod "removeAddress" o = NM.SettingIPConfig.SettingIPConfigRemoveAddressMethodInfo
    ResolveSettingIP6ConfigMethod "removeAddressByValue" o = NM.SettingIPConfig.SettingIPConfigRemoveAddressByValueMethodInfo
    ResolveSettingIP6ConfigMethod "removeDhcpRejectServer" o = NM.SettingIPConfig.SettingIPConfigRemoveDhcpRejectServerMethodInfo
    ResolveSettingIP6ConfigMethod "removeDns" o = NM.SettingIPConfig.SettingIPConfigRemoveDnsMethodInfo
    ResolveSettingIP6ConfigMethod "removeDnsByValue" o = NM.SettingIPConfig.SettingIPConfigRemoveDnsByValueMethodInfo
    ResolveSettingIP6ConfigMethod "removeDnsOption" o = NM.SettingIPConfig.SettingIPConfigRemoveDnsOptionMethodInfo
    ResolveSettingIP6ConfigMethod "removeDnsOptionByValue" o = NM.SettingIPConfig.SettingIPConfigRemoveDnsOptionByValueMethodInfo
    ResolveSettingIP6ConfigMethod "removeDnsSearch" o = NM.SettingIPConfig.SettingIPConfigRemoveDnsSearchMethodInfo
    ResolveSettingIP6ConfigMethod "removeDnsSearchByValue" o = NM.SettingIPConfig.SettingIPConfigRemoveDnsSearchByValueMethodInfo
    ResolveSettingIP6ConfigMethod "removeRoute" o = NM.SettingIPConfig.SettingIPConfigRemoveRouteMethodInfo
    ResolveSettingIP6ConfigMethod "removeRouteByValue" o = NM.SettingIPConfig.SettingIPConfigRemoveRouteByValueMethodInfo
    ResolveSettingIP6ConfigMethod "removeRoutingRule" o = NM.SettingIPConfig.SettingIPConfigRemoveRoutingRuleMethodInfo
    ResolveSettingIP6ConfigMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveSettingIP6ConfigMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveSettingIP6ConfigMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveSettingIP6ConfigMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveSettingIP6ConfigMethod "toString" o = NM.Setting.SettingToStringMethodInfo
    ResolveSettingIP6ConfigMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveSettingIP6ConfigMethod "verify" o = NM.Setting.SettingVerifyMethodInfo
    ResolveSettingIP6ConfigMethod "verifySecrets" o = NM.Setting.SettingVerifySecretsMethodInfo
    ResolveSettingIP6ConfigMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveSettingIP6ConfigMethod "getAddrGenMode" o = SettingIP6ConfigGetAddrGenModeMethodInfo
    ResolveSettingIP6ConfigMethod "getAddress" o = NM.SettingIPConfig.SettingIPConfigGetAddressMethodInfo
    ResolveSettingIP6ConfigMethod "getAutoRouteExtGw" o = NM.SettingIPConfig.SettingIPConfigGetAutoRouteExtGwMethodInfo
    ResolveSettingIP6ConfigMethod "getDadTimeout" o = NM.SettingIPConfig.SettingIPConfigGetDadTimeoutMethodInfo
    ResolveSettingIP6ConfigMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveSettingIP6ConfigMethod "getDbusPropertyType" o = NM.Setting.SettingGetDbusPropertyTypeMethodInfo
    ResolveSettingIP6ConfigMethod "getDhcpDscp" o = NM.SettingIPConfig.SettingIPConfigGetDhcpDscpMethodInfo
    ResolveSettingIP6ConfigMethod "getDhcpDuid" o = SettingIP6ConfigGetDhcpDuidMethodInfo
    ResolveSettingIP6ConfigMethod "getDhcpHostname" o = NM.SettingIPConfig.SettingIPConfigGetDhcpHostnameMethodInfo
    ResolveSettingIP6ConfigMethod "getDhcpHostnameFlags" o = NM.SettingIPConfig.SettingIPConfigGetDhcpHostnameFlagsMethodInfo
    ResolveSettingIP6ConfigMethod "getDhcpIaid" o = NM.SettingIPConfig.SettingIPConfigGetDhcpIaidMethodInfo
    ResolveSettingIP6ConfigMethod "getDhcpPdHint" o = SettingIP6ConfigGetDhcpPdHintMethodInfo
    ResolveSettingIP6ConfigMethod "getDhcpRejectServers" o = NM.SettingIPConfig.SettingIPConfigGetDhcpRejectServersMethodInfo
    ResolveSettingIP6ConfigMethod "getDhcpSendHostname" o = NM.SettingIPConfig.SettingIPConfigGetDhcpSendHostnameMethodInfo
    ResolveSettingIP6ConfigMethod "getDhcpSendRelease" o = NM.SettingIPConfig.SettingIPConfigGetDhcpSendReleaseMethodInfo
    ResolveSettingIP6ConfigMethod "getDhcpTimeout" o = NM.SettingIPConfig.SettingIPConfigGetDhcpTimeoutMethodInfo
    ResolveSettingIP6ConfigMethod "getDns" o = NM.SettingIPConfig.SettingIPConfigGetDnsMethodInfo
    ResolveSettingIP6ConfigMethod "getDnsOption" o = NM.SettingIPConfig.SettingIPConfigGetDnsOptionMethodInfo
    ResolveSettingIP6ConfigMethod "getDnsPriority" o = NM.SettingIPConfig.SettingIPConfigGetDnsPriorityMethodInfo
    ResolveSettingIP6ConfigMethod "getDnsSearch" o = NM.SettingIPConfig.SettingIPConfigGetDnsSearchMethodInfo
    ResolveSettingIP6ConfigMethod "getGateway" o = NM.SettingIPConfig.SettingIPConfigGetGatewayMethodInfo
    ResolveSettingIP6ConfigMethod "getIgnoreAutoDns" o = NM.SettingIPConfig.SettingIPConfigGetIgnoreAutoDnsMethodInfo
    ResolveSettingIP6ConfigMethod "getIgnoreAutoRoutes" o = NM.SettingIPConfig.SettingIPConfigGetIgnoreAutoRoutesMethodInfo
    ResolveSettingIP6ConfigMethod "getIp6Privacy" o = SettingIP6ConfigGetIp6PrivacyMethodInfo
    ResolveSettingIP6ConfigMethod "getMayFail" o = NM.SettingIPConfig.SettingIPConfigGetMayFailMethodInfo
    ResolveSettingIP6ConfigMethod "getMethod" o = NM.SettingIPConfig.SettingIPConfigGetMethodMethodInfo
    ResolveSettingIP6ConfigMethod "getMtu" o = SettingIP6ConfigGetMtuMethodInfo
    ResolveSettingIP6ConfigMethod "getName" o = NM.Setting.SettingGetNameMethodInfo
    ResolveSettingIP6ConfigMethod "getNeverDefault" o = NM.SettingIPConfig.SettingIPConfigGetNeverDefaultMethodInfo
    ResolveSettingIP6ConfigMethod "getNumAddresses" o = NM.SettingIPConfig.SettingIPConfigGetNumAddressesMethodInfo
    ResolveSettingIP6ConfigMethod "getNumDns" o = NM.SettingIPConfig.SettingIPConfigGetNumDnsMethodInfo
    ResolveSettingIP6ConfigMethod "getNumDnsOptions" o = NM.SettingIPConfig.SettingIPConfigGetNumDnsOptionsMethodInfo
    ResolveSettingIP6ConfigMethod "getNumDnsSearches" o = NM.SettingIPConfig.SettingIPConfigGetNumDnsSearchesMethodInfo
    ResolveSettingIP6ConfigMethod "getNumRoutes" o = NM.SettingIPConfig.SettingIPConfigGetNumRoutesMethodInfo
    ResolveSettingIP6ConfigMethod "getNumRoutingRules" o = NM.SettingIPConfig.SettingIPConfigGetNumRoutingRulesMethodInfo
    ResolveSettingIP6ConfigMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveSettingIP6ConfigMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveSettingIP6ConfigMethod "getRaTimeout" o = SettingIP6ConfigGetRaTimeoutMethodInfo
    ResolveSettingIP6ConfigMethod "getReplaceLocalRule" o = NM.SettingIPConfig.SettingIPConfigGetReplaceLocalRuleMethodInfo
    ResolveSettingIP6ConfigMethod "getRequiredTimeout" o = NM.SettingIPConfig.SettingIPConfigGetRequiredTimeoutMethodInfo
    ResolveSettingIP6ConfigMethod "getRoute" o = NM.SettingIPConfig.SettingIPConfigGetRouteMethodInfo
    ResolveSettingIP6ConfigMethod "getRouteMetric" o = NM.SettingIPConfig.SettingIPConfigGetRouteMetricMethodInfo
    ResolveSettingIP6ConfigMethod "getRouteTable" o = NM.SettingIPConfig.SettingIPConfigGetRouteTableMethodInfo
    ResolveSettingIP6ConfigMethod "getRoutingRule" o = NM.SettingIPConfig.SettingIPConfigGetRoutingRuleMethodInfo
    ResolveSettingIP6ConfigMethod "getSecretFlags" o = NM.Setting.SettingGetSecretFlagsMethodInfo
    ResolveSettingIP6ConfigMethod "getTempPreferredLifetime" o = SettingIP6ConfigGetTempPreferredLifetimeMethodInfo
    ResolveSettingIP6ConfigMethod "getTempValidLifetime" o = SettingIP6ConfigGetTempValidLifetimeMethodInfo
    ResolveSettingIP6ConfigMethod "getToken" o = SettingIP6ConfigGetTokenMethodInfo
    ResolveSettingIP6ConfigMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveSettingIP6ConfigMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveSettingIP6ConfigMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveSettingIP6ConfigMethod "setSecretFlags" o = NM.Setting.SettingSetSecretFlagsMethodInfo
    ResolveSettingIP6ConfigMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveSettingIP6ConfigMethod t SettingIP6Config, O.OverloadedMethod info SettingIP6Config p) => OL.IsLabel t (SettingIP6Config -> p) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.overloadedMethod @info
#else
    fromLabel _ = O.overloadedMethod @info
#endif

#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveSettingIP6ConfigMethod t SettingIP6Config, O.OverloadedMethod info SettingIP6Config p, R.HasField t SettingIP6Config p) => R.HasField t SettingIP6Config p where
    getField = O.overloadedMethod @info

#endif

instance (info ~ ResolveSettingIP6ConfigMethod t SettingIP6Config, O.OverloadedMethodInfo info SettingIP6Config) => OL.IsLabel t (O.MethodProxy info SettingIP6Config) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.MethodProxy
#else
    fromLabel _ = O.MethodProxy
#endif

#endif

-- VVV Prop "addr-gen-mode"
   -- Type: TBasicType TInt
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

-- | Get the value of the “@addr-gen-mode@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' settingIP6Config #addrGenMode
-- @
getSettingIP6ConfigAddrGenMode :: (MonadIO m, IsSettingIP6Config o) => o -> m Int32
getSettingIP6ConfigAddrGenMode :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIP6Config o) =>
o -> m Int32
getSettingIP6ConfigAddrGenMode o
obj = IO Int32 -> m Int32
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Int32
forall a. GObject a => a -> String -> IO Int32
B.Properties.getObjectPropertyInt32 o
obj String
"addr-gen-mode"

-- | Set the value of the “@addr-gen-mode@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingIP6Config [ #addrGenMode 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingIP6ConfigAddrGenMode :: (MonadIO m, IsSettingIP6Config o) => o -> Int32 -> m ()
setSettingIP6ConfigAddrGenMode :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIP6Config o) =>
o -> Int32 -> m ()
setSettingIP6ConfigAddrGenMode o
obj Int32
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Int32 -> IO ()
forall a. GObject a => a -> String -> Int32 -> IO ()
B.Properties.setObjectPropertyInt32 o
obj String
"addr-gen-mode" Int32
val

-- | Construct a t'GValueConstruct' with valid value for the “@addr-gen-mode@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingIP6ConfigAddrGenMode :: (IsSettingIP6Config o, MIO.MonadIO m) => Int32 -> m (GValueConstruct o)
constructSettingIP6ConfigAddrGenMode :: forall o (m :: * -> *).
(IsSettingIP6Config o, MonadIO m) =>
Int32 -> m (GValueConstruct o)
constructSettingIP6ConfigAddrGenMode Int32
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Int32 -> IO (GValueConstruct o)
forall o. String -> Int32 -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyInt32 String
"addr-gen-mode" Int32
val

#if defined(ENABLE_OVERLOADING)
data SettingIP6ConfigAddrGenModePropertyInfo
instance AttrInfo SettingIP6ConfigAddrGenModePropertyInfo where
    type AttrAllowedOps SettingIP6ConfigAddrGenModePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint SettingIP6ConfigAddrGenModePropertyInfo = IsSettingIP6Config
    type AttrSetTypeConstraint SettingIP6ConfigAddrGenModePropertyInfo = (~) Int32
    type AttrTransferTypeConstraint SettingIP6ConfigAddrGenModePropertyInfo = (~) Int32
    type AttrTransferType SettingIP6ConfigAddrGenModePropertyInfo = Int32
    type AttrGetType SettingIP6ConfigAddrGenModePropertyInfo = Int32
    type AttrLabel SettingIP6ConfigAddrGenModePropertyInfo = "addr-gen-mode"
    type AttrOrigin SettingIP6ConfigAddrGenModePropertyInfo = SettingIP6Config
    attrGet = getSettingIP6ConfigAddrGenMode
    attrSet = setSettingIP6ConfigAddrGenMode
    attrTransfer _ v = do
        return v
    attrConstruct = constructSettingIP6ConfigAddrGenMode
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingIP6Config.addrGenMode"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingIP6Config.html#g:attr:addrGenMode"
        })
#endif

-- VVV Prop "dhcp-duid"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Nothing)

-- | Get the value of the “@dhcp-duid@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' settingIP6Config #dhcpDuid
-- @
getSettingIP6ConfigDhcpDuid :: (MonadIO m, IsSettingIP6Config o) => o -> m T.Text
getSettingIP6ConfigDhcpDuid :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIP6Config o) =>
o -> m Text
getSettingIP6ConfigDhcpDuid o
obj = IO Text -> m Text
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ Text -> IO (Maybe Text) -> IO Text
forall a. HasCallStack => Text -> IO (Maybe a) -> IO a
checkUnexpectedNothing Text
"getSettingIP6ConfigDhcpDuid" (IO (Maybe Text) -> IO Text) -> IO (Maybe Text) -> IO Text
forall a b. (a -> b) -> a -> b
$ o -> String -> IO (Maybe Text)
forall a. GObject a => a -> String -> IO (Maybe Text)
B.Properties.getObjectPropertyString o
obj String
"dhcp-duid"

-- | Set the value of the “@dhcp-duid@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingIP6Config [ #dhcpDuid 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingIP6ConfigDhcpDuid :: (MonadIO m, IsSettingIP6Config o) => o -> T.Text -> m ()
setSettingIP6ConfigDhcpDuid :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIP6Config o) =>
o -> Text -> m ()
setSettingIP6ConfigDhcpDuid o
obj Text
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Maybe Text -> IO ()
forall a. GObject a => a -> String -> Maybe Text -> IO ()
B.Properties.setObjectPropertyString o
obj String
"dhcp-duid" (Text -> Maybe Text
forall a. a -> Maybe a
Just Text
val)

-- | Construct a t'GValueConstruct' with valid value for the “@dhcp-duid@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingIP6ConfigDhcpDuid :: (IsSettingIP6Config o, MIO.MonadIO m) => T.Text -> m (GValueConstruct o)
constructSettingIP6ConfigDhcpDuid :: forall o (m :: * -> *).
(IsSettingIP6Config o, MonadIO m) =>
Text -> m (GValueConstruct o)
constructSettingIP6ConfigDhcpDuid Text
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Maybe Text -> IO (GValueConstruct o)
forall o. String -> Maybe Text -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyString String
"dhcp-duid" (Text -> Maybe Text
forall a. a -> Maybe a
P.Just Text
val)

-- | Set the value of the “@dhcp-duid@” property to `Nothing`.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.clear' #dhcpDuid
-- @
clearSettingIP6ConfigDhcpDuid :: (MonadIO m, IsSettingIP6Config o) => o -> m ()
clearSettingIP6ConfigDhcpDuid :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIP6Config o) =>
o -> m ()
clearSettingIP6ConfigDhcpDuid o
obj = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ o -> String -> Maybe Text -> IO ()
forall a. GObject a => a -> String -> Maybe Text -> IO ()
B.Properties.setObjectPropertyString o
obj String
"dhcp-duid" (Maybe Text
forall a. Maybe a
Nothing :: Maybe T.Text)

#if defined(ENABLE_OVERLOADING)
data SettingIP6ConfigDhcpDuidPropertyInfo
instance AttrInfo SettingIP6ConfigDhcpDuidPropertyInfo where
    type AttrAllowedOps SettingIP6ConfigDhcpDuidPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint SettingIP6ConfigDhcpDuidPropertyInfo = IsSettingIP6Config
    type AttrSetTypeConstraint SettingIP6ConfigDhcpDuidPropertyInfo = (~) T.Text
    type AttrTransferTypeConstraint SettingIP6ConfigDhcpDuidPropertyInfo = (~) T.Text
    type AttrTransferType SettingIP6ConfigDhcpDuidPropertyInfo = T.Text
    type AttrGetType SettingIP6ConfigDhcpDuidPropertyInfo = T.Text
    type AttrLabel SettingIP6ConfigDhcpDuidPropertyInfo = "dhcp-duid"
    type AttrOrigin SettingIP6ConfigDhcpDuidPropertyInfo = SettingIP6Config
    attrGet = getSettingIP6ConfigDhcpDuid
    attrSet = setSettingIP6ConfigDhcpDuid
    attrTransfer _ v = do
        return v
    attrConstruct = constructSettingIP6ConfigDhcpDuid
    attrClear = clearSettingIP6ConfigDhcpDuid
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingIP6Config.dhcpDuid"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingIP6Config.html#g:attr:dhcpDuid"
        })
#endif

-- VVV Prop "dhcp-pd-hint"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Nothing)

-- | Get the value of the “@dhcp-pd-hint@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' settingIP6Config #dhcpPdHint
-- @
getSettingIP6ConfigDhcpPdHint :: (MonadIO m, IsSettingIP6Config o) => o -> m T.Text
getSettingIP6ConfigDhcpPdHint :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIP6Config o) =>
o -> m Text
getSettingIP6ConfigDhcpPdHint o
obj = IO Text -> m Text
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ Text -> IO (Maybe Text) -> IO Text
forall a. HasCallStack => Text -> IO (Maybe a) -> IO a
checkUnexpectedNothing Text
"getSettingIP6ConfigDhcpPdHint" (IO (Maybe Text) -> IO Text) -> IO (Maybe Text) -> IO Text
forall a b. (a -> b) -> a -> b
$ o -> String -> IO (Maybe Text)
forall a. GObject a => a -> String -> IO (Maybe Text)
B.Properties.getObjectPropertyString o
obj String
"dhcp-pd-hint"

-- | Set the value of the “@dhcp-pd-hint@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingIP6Config [ #dhcpPdHint 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingIP6ConfigDhcpPdHint :: (MonadIO m, IsSettingIP6Config o) => o -> T.Text -> m ()
setSettingIP6ConfigDhcpPdHint :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIP6Config o) =>
o -> Text -> m ()
setSettingIP6ConfigDhcpPdHint o
obj Text
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Maybe Text -> IO ()
forall a. GObject a => a -> String -> Maybe Text -> IO ()
B.Properties.setObjectPropertyString o
obj String
"dhcp-pd-hint" (Text -> Maybe Text
forall a. a -> Maybe a
Just Text
val)

-- | Construct a t'GValueConstruct' with valid value for the “@dhcp-pd-hint@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingIP6ConfigDhcpPdHint :: (IsSettingIP6Config o, MIO.MonadIO m) => T.Text -> m (GValueConstruct o)
constructSettingIP6ConfigDhcpPdHint :: forall o (m :: * -> *).
(IsSettingIP6Config o, MonadIO m) =>
Text -> m (GValueConstruct o)
constructSettingIP6ConfigDhcpPdHint Text
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Maybe Text -> IO (GValueConstruct o)
forall o. String -> Maybe Text -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyString String
"dhcp-pd-hint" (Text -> Maybe Text
forall a. a -> Maybe a
P.Just Text
val)

-- | Set the value of the “@dhcp-pd-hint@” property to `Nothing`.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.clear' #dhcpPdHint
-- @
clearSettingIP6ConfigDhcpPdHint :: (MonadIO m, IsSettingIP6Config o) => o -> m ()
clearSettingIP6ConfigDhcpPdHint :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIP6Config o) =>
o -> m ()
clearSettingIP6ConfigDhcpPdHint o
obj = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ o -> String -> Maybe Text -> IO ()
forall a. GObject a => a -> String -> Maybe Text -> IO ()
B.Properties.setObjectPropertyString o
obj String
"dhcp-pd-hint" (Maybe Text
forall a. Maybe a
Nothing :: Maybe T.Text)

#if defined(ENABLE_OVERLOADING)
data SettingIP6ConfigDhcpPdHintPropertyInfo
instance AttrInfo SettingIP6ConfigDhcpPdHintPropertyInfo where
    type AttrAllowedOps SettingIP6ConfigDhcpPdHintPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint SettingIP6ConfigDhcpPdHintPropertyInfo = IsSettingIP6Config
    type AttrSetTypeConstraint SettingIP6ConfigDhcpPdHintPropertyInfo = (~) T.Text
    type AttrTransferTypeConstraint SettingIP6ConfigDhcpPdHintPropertyInfo = (~) T.Text
    type AttrTransferType SettingIP6ConfigDhcpPdHintPropertyInfo = T.Text
    type AttrGetType SettingIP6ConfigDhcpPdHintPropertyInfo = T.Text
    type AttrLabel SettingIP6ConfigDhcpPdHintPropertyInfo = "dhcp-pd-hint"
    type AttrOrigin SettingIP6ConfigDhcpPdHintPropertyInfo = SettingIP6Config
    attrGet = getSettingIP6ConfigDhcpPdHint
    attrSet = setSettingIP6ConfigDhcpPdHint
    attrTransfer _ v = do
        return v
    attrConstruct = constructSettingIP6ConfigDhcpPdHint
    attrClear = clearSettingIP6ConfigDhcpPdHint
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingIP6Config.dhcpPdHint"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingIP6Config.html#g:attr:dhcpPdHint"
        })
#endif

-- VVV Prop "ip6-privacy"
   -- Type: TInterface (Name {namespace = "NM", name = "SettingIP6ConfigPrivacy"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Nothing)

-- | Get the value of the “@ip6-privacy@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' settingIP6Config #ip6Privacy
-- @
getSettingIP6ConfigIp6Privacy :: (MonadIO m, IsSettingIP6Config o) => o -> m NM.Enums.SettingIP6ConfigPrivacy
getSettingIP6ConfigIp6Privacy :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIP6Config o) =>
o -> m SettingIP6ConfigPrivacy
getSettingIP6ConfigIp6Privacy o
obj = IO SettingIP6ConfigPrivacy -> m SettingIP6ConfigPrivacy
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO SettingIP6ConfigPrivacy -> m SettingIP6ConfigPrivacy)
-> IO SettingIP6ConfigPrivacy -> m SettingIP6ConfigPrivacy
forall a b. (a -> b) -> a -> b
$ o -> String -> IO SettingIP6ConfigPrivacy
forall a b. (GObject a, Enum b, BoxedEnum b) => a -> String -> IO b
B.Properties.getObjectPropertyEnum o
obj String
"ip6-privacy"

-- | Set the value of the “@ip6-privacy@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingIP6Config [ #ip6Privacy 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingIP6ConfigIp6Privacy :: (MonadIO m, IsSettingIP6Config o) => o -> NM.Enums.SettingIP6ConfigPrivacy -> m ()
setSettingIP6ConfigIp6Privacy :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIP6Config o) =>
o -> SettingIP6ConfigPrivacy -> m ()
setSettingIP6ConfigIp6Privacy o
obj SettingIP6ConfigPrivacy
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> SettingIP6ConfigPrivacy -> IO ()
forall a b.
(GObject a, Enum b, BoxedEnum b) =>
a -> String -> b -> IO ()
B.Properties.setObjectPropertyEnum o
obj String
"ip6-privacy" SettingIP6ConfigPrivacy
val

-- | Construct a t'GValueConstruct' with valid value for the “@ip6-privacy@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingIP6ConfigIp6Privacy :: (IsSettingIP6Config o, MIO.MonadIO m) => NM.Enums.SettingIP6ConfigPrivacy -> m (GValueConstruct o)
constructSettingIP6ConfigIp6Privacy :: forall o (m :: * -> *).
(IsSettingIP6Config o, MonadIO m) =>
SettingIP6ConfigPrivacy -> m (GValueConstruct o)
constructSettingIP6ConfigIp6Privacy SettingIP6ConfigPrivacy
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> SettingIP6ConfigPrivacy -> IO (GValueConstruct o)
forall a o.
(Enum a, BoxedEnum a) =>
String -> a -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyEnum String
"ip6-privacy" SettingIP6ConfigPrivacy
val

#if defined(ENABLE_OVERLOADING)
data SettingIP6ConfigIp6PrivacyPropertyInfo
instance AttrInfo SettingIP6ConfigIp6PrivacyPropertyInfo where
    type AttrAllowedOps SettingIP6ConfigIp6PrivacyPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint SettingIP6ConfigIp6PrivacyPropertyInfo = IsSettingIP6Config
    type AttrSetTypeConstraint SettingIP6ConfigIp6PrivacyPropertyInfo = (~) NM.Enums.SettingIP6ConfigPrivacy
    type AttrTransferTypeConstraint SettingIP6ConfigIp6PrivacyPropertyInfo = (~) NM.Enums.SettingIP6ConfigPrivacy
    type AttrTransferType SettingIP6ConfigIp6PrivacyPropertyInfo = NM.Enums.SettingIP6ConfigPrivacy
    type AttrGetType SettingIP6ConfigIp6PrivacyPropertyInfo = NM.Enums.SettingIP6ConfigPrivacy
    type AttrLabel SettingIP6ConfigIp6PrivacyPropertyInfo = "ip6-privacy"
    type AttrOrigin SettingIP6ConfigIp6PrivacyPropertyInfo = SettingIP6Config
    attrGet = getSettingIP6ConfigIp6Privacy
    attrSet = setSettingIP6ConfigIp6Privacy
    attrTransfer _ v = do
        return v
    attrConstruct = constructSettingIP6ConfigIp6Privacy
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingIP6Config.ip6Privacy"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingIP6Config.html#g:attr:ip6Privacy"
        })
#endif

-- VVV Prop "mtu"
   -- Type: TBasicType TUInt
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

-- | Get the value of the “@mtu@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' settingIP6Config #mtu
-- @
getSettingIP6ConfigMtu :: (MonadIO m, IsSettingIP6Config o) => o -> m Word32
getSettingIP6ConfigMtu :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIP6Config o) =>
o -> m Word32
getSettingIP6ConfigMtu o
obj = IO Word32 -> m Word32
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Word32
forall a. GObject a => a -> String -> IO Word32
B.Properties.getObjectPropertyUInt32 o
obj String
"mtu"

-- | Set the value of the “@mtu@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingIP6Config [ #mtu 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingIP6ConfigMtu :: (MonadIO m, IsSettingIP6Config o) => o -> Word32 -> m ()
setSettingIP6ConfigMtu :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIP6Config o) =>
o -> Word32 -> m ()
setSettingIP6ConfigMtu o
obj Word32
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Word32 -> IO ()
forall a. GObject a => a -> String -> Word32 -> IO ()
B.Properties.setObjectPropertyUInt32 o
obj String
"mtu" Word32
val

-- | Construct a t'GValueConstruct' with valid value for the “@mtu@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingIP6ConfigMtu :: (IsSettingIP6Config o, MIO.MonadIO m) => Word32 -> m (GValueConstruct o)
constructSettingIP6ConfigMtu :: forall o (m :: * -> *).
(IsSettingIP6Config o, MonadIO m) =>
Word32 -> m (GValueConstruct o)
constructSettingIP6ConfigMtu Word32
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Word32 -> IO (GValueConstruct o)
forall o. String -> Word32 -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyUInt32 String
"mtu" Word32
val

#if defined(ENABLE_OVERLOADING)
data SettingIP6ConfigMtuPropertyInfo
instance AttrInfo SettingIP6ConfigMtuPropertyInfo where
    type AttrAllowedOps SettingIP6ConfigMtuPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint SettingIP6ConfigMtuPropertyInfo = IsSettingIP6Config
    type AttrSetTypeConstraint SettingIP6ConfigMtuPropertyInfo = (~) Word32
    type AttrTransferTypeConstraint SettingIP6ConfigMtuPropertyInfo = (~) Word32
    type AttrTransferType SettingIP6ConfigMtuPropertyInfo = Word32
    type AttrGetType SettingIP6ConfigMtuPropertyInfo = Word32
    type AttrLabel SettingIP6ConfigMtuPropertyInfo = "mtu"
    type AttrOrigin SettingIP6ConfigMtuPropertyInfo = SettingIP6Config
    attrGet = getSettingIP6ConfigMtu
    attrSet = setSettingIP6ConfigMtu
    attrTransfer _ v = do
        return v
    attrConstruct = constructSettingIP6ConfigMtu
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingIP6Config.mtu"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingIP6Config.html#g:attr:mtu"
        })
#endif

-- VVV Prop "ra-timeout"
   -- Type: TBasicType TInt
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

-- | Get the value of the “@ra-timeout@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' settingIP6Config #raTimeout
-- @
getSettingIP6ConfigRaTimeout :: (MonadIO m, IsSettingIP6Config o) => o -> m Int32
getSettingIP6ConfigRaTimeout :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIP6Config o) =>
o -> m Int32
getSettingIP6ConfigRaTimeout o
obj = IO Int32 -> m Int32
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Int32
forall a. GObject a => a -> String -> IO Int32
B.Properties.getObjectPropertyInt32 o
obj String
"ra-timeout"

-- | Set the value of the “@ra-timeout@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingIP6Config [ #raTimeout 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingIP6ConfigRaTimeout :: (MonadIO m, IsSettingIP6Config o) => o -> Int32 -> m ()
setSettingIP6ConfigRaTimeout :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIP6Config o) =>
o -> Int32 -> m ()
setSettingIP6ConfigRaTimeout o
obj Int32
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Int32 -> IO ()
forall a. GObject a => a -> String -> Int32 -> IO ()
B.Properties.setObjectPropertyInt32 o
obj String
"ra-timeout" Int32
val

-- | Construct a t'GValueConstruct' with valid value for the “@ra-timeout@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingIP6ConfigRaTimeout :: (IsSettingIP6Config o, MIO.MonadIO m) => Int32 -> m (GValueConstruct o)
constructSettingIP6ConfigRaTimeout :: forall o (m :: * -> *).
(IsSettingIP6Config o, MonadIO m) =>
Int32 -> m (GValueConstruct o)
constructSettingIP6ConfigRaTimeout Int32
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Int32 -> IO (GValueConstruct o)
forall o. String -> Int32 -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyInt32 String
"ra-timeout" Int32
val

#if defined(ENABLE_OVERLOADING)
data SettingIP6ConfigRaTimeoutPropertyInfo
instance AttrInfo SettingIP6ConfigRaTimeoutPropertyInfo where
    type AttrAllowedOps SettingIP6ConfigRaTimeoutPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint SettingIP6ConfigRaTimeoutPropertyInfo = IsSettingIP6Config
    type AttrSetTypeConstraint SettingIP6ConfigRaTimeoutPropertyInfo = (~) Int32
    type AttrTransferTypeConstraint SettingIP6ConfigRaTimeoutPropertyInfo = (~) Int32
    type AttrTransferType SettingIP6ConfigRaTimeoutPropertyInfo = Int32
    type AttrGetType SettingIP6ConfigRaTimeoutPropertyInfo = Int32
    type AttrLabel SettingIP6ConfigRaTimeoutPropertyInfo = "ra-timeout"
    type AttrOrigin SettingIP6ConfigRaTimeoutPropertyInfo = SettingIP6Config
    attrGet = getSettingIP6ConfigRaTimeout
    attrSet = setSettingIP6ConfigRaTimeout
    attrTransfer _ v = do
        return v
    attrConstruct = constructSettingIP6ConfigRaTimeout
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingIP6Config.raTimeout"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingIP6Config.html#g:attr:raTimeout"
        })
#endif

-- VVV Prop "temp-preferred-lifetime"
   -- Type: TBasicType TInt
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

-- | Get the value of the “@temp-preferred-lifetime@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' settingIP6Config #tempPreferredLifetime
-- @
getSettingIP6ConfigTempPreferredLifetime :: (MonadIO m, IsSettingIP6Config o) => o -> m Int32
getSettingIP6ConfigTempPreferredLifetime :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIP6Config o) =>
o -> m Int32
getSettingIP6ConfigTempPreferredLifetime o
obj = IO Int32 -> m Int32
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Int32
forall a. GObject a => a -> String -> IO Int32
B.Properties.getObjectPropertyInt32 o
obj String
"temp-preferred-lifetime"

-- | Set the value of the “@temp-preferred-lifetime@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingIP6Config [ #tempPreferredLifetime 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingIP6ConfigTempPreferredLifetime :: (MonadIO m, IsSettingIP6Config o) => o -> Int32 -> m ()
setSettingIP6ConfigTempPreferredLifetime :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIP6Config o) =>
o -> Int32 -> m ()
setSettingIP6ConfigTempPreferredLifetime o
obj Int32
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Int32 -> IO ()
forall a. GObject a => a -> String -> Int32 -> IO ()
B.Properties.setObjectPropertyInt32 o
obj String
"temp-preferred-lifetime" Int32
val

-- | Construct a t'GValueConstruct' with valid value for the “@temp-preferred-lifetime@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingIP6ConfigTempPreferredLifetime :: (IsSettingIP6Config o, MIO.MonadIO m) => Int32 -> m (GValueConstruct o)
constructSettingIP6ConfigTempPreferredLifetime :: forall o (m :: * -> *).
(IsSettingIP6Config o, MonadIO m) =>
Int32 -> m (GValueConstruct o)
constructSettingIP6ConfigTempPreferredLifetime Int32
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Int32 -> IO (GValueConstruct o)
forall o. String -> Int32 -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyInt32 String
"temp-preferred-lifetime" Int32
val

#if defined(ENABLE_OVERLOADING)
data SettingIP6ConfigTempPreferredLifetimePropertyInfo
instance AttrInfo SettingIP6ConfigTempPreferredLifetimePropertyInfo where
    type AttrAllowedOps SettingIP6ConfigTempPreferredLifetimePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint SettingIP6ConfigTempPreferredLifetimePropertyInfo = IsSettingIP6Config
    type AttrSetTypeConstraint SettingIP6ConfigTempPreferredLifetimePropertyInfo = (~) Int32
    type AttrTransferTypeConstraint SettingIP6ConfigTempPreferredLifetimePropertyInfo = (~) Int32
    type AttrTransferType SettingIP6ConfigTempPreferredLifetimePropertyInfo = Int32
    type AttrGetType SettingIP6ConfigTempPreferredLifetimePropertyInfo = Int32
    type AttrLabel SettingIP6ConfigTempPreferredLifetimePropertyInfo = "temp-preferred-lifetime"
    type AttrOrigin SettingIP6ConfigTempPreferredLifetimePropertyInfo = SettingIP6Config
    attrGet = getSettingIP6ConfigTempPreferredLifetime
    attrSet = setSettingIP6ConfigTempPreferredLifetime
    attrTransfer _ v = do
        return v
    attrConstruct = constructSettingIP6ConfigTempPreferredLifetime
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingIP6Config.tempPreferredLifetime"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingIP6Config.html#g:attr:tempPreferredLifetime"
        })
#endif

-- VVV Prop "temp-valid-lifetime"
   -- Type: TBasicType TInt
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

-- | Get the value of the “@temp-valid-lifetime@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' settingIP6Config #tempValidLifetime
-- @
getSettingIP6ConfigTempValidLifetime :: (MonadIO m, IsSettingIP6Config o) => o -> m Int32
getSettingIP6ConfigTempValidLifetime :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIP6Config o) =>
o -> m Int32
getSettingIP6ConfigTempValidLifetime o
obj = IO Int32 -> m Int32
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Int32
forall a. GObject a => a -> String -> IO Int32
B.Properties.getObjectPropertyInt32 o
obj String
"temp-valid-lifetime"

-- | Set the value of the “@temp-valid-lifetime@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingIP6Config [ #tempValidLifetime 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingIP6ConfigTempValidLifetime :: (MonadIO m, IsSettingIP6Config o) => o -> Int32 -> m ()
setSettingIP6ConfigTempValidLifetime :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIP6Config o) =>
o -> Int32 -> m ()
setSettingIP6ConfigTempValidLifetime o
obj Int32
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Int32 -> IO ()
forall a. GObject a => a -> String -> Int32 -> IO ()
B.Properties.setObjectPropertyInt32 o
obj String
"temp-valid-lifetime" Int32
val

-- | Construct a t'GValueConstruct' with valid value for the “@temp-valid-lifetime@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingIP6ConfigTempValidLifetime :: (IsSettingIP6Config o, MIO.MonadIO m) => Int32 -> m (GValueConstruct o)
constructSettingIP6ConfigTempValidLifetime :: forall o (m :: * -> *).
(IsSettingIP6Config o, MonadIO m) =>
Int32 -> m (GValueConstruct o)
constructSettingIP6ConfigTempValidLifetime Int32
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Int32 -> IO (GValueConstruct o)
forall o. String -> Int32 -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyInt32 String
"temp-valid-lifetime" Int32
val

#if defined(ENABLE_OVERLOADING)
data SettingIP6ConfigTempValidLifetimePropertyInfo
instance AttrInfo SettingIP6ConfigTempValidLifetimePropertyInfo where
    type AttrAllowedOps SettingIP6ConfigTempValidLifetimePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint SettingIP6ConfigTempValidLifetimePropertyInfo = IsSettingIP6Config
    type AttrSetTypeConstraint SettingIP6ConfigTempValidLifetimePropertyInfo = (~) Int32
    type AttrTransferTypeConstraint SettingIP6ConfigTempValidLifetimePropertyInfo = (~) Int32
    type AttrTransferType SettingIP6ConfigTempValidLifetimePropertyInfo = Int32
    type AttrGetType SettingIP6ConfigTempValidLifetimePropertyInfo = Int32
    type AttrLabel SettingIP6ConfigTempValidLifetimePropertyInfo = "temp-valid-lifetime"
    type AttrOrigin SettingIP6ConfigTempValidLifetimePropertyInfo = SettingIP6Config
    attrGet = getSettingIP6ConfigTempValidLifetime
    attrSet = setSettingIP6ConfigTempValidLifetime
    attrTransfer _ v = do
        return v
    attrConstruct = constructSettingIP6ConfigTempValidLifetime
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingIP6Config.tempValidLifetime"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingIP6Config.html#g:attr:tempValidLifetime"
        })
#endif

-- VVV Prop "token"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Nothing)

-- | Get the value of the “@token@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' settingIP6Config #token
-- @
getSettingIP6ConfigToken :: (MonadIO m, IsSettingIP6Config o) => o -> m T.Text
getSettingIP6ConfigToken :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIP6Config o) =>
o -> m Text
getSettingIP6ConfigToken o
obj = IO Text -> m Text
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ Text -> IO (Maybe Text) -> IO Text
forall a. HasCallStack => Text -> IO (Maybe a) -> IO a
checkUnexpectedNothing Text
"getSettingIP6ConfigToken" (IO (Maybe Text) -> IO Text) -> IO (Maybe Text) -> IO Text
forall a b. (a -> b) -> a -> b
$ o -> String -> IO (Maybe Text)
forall a. GObject a => a -> String -> IO (Maybe Text)
B.Properties.getObjectPropertyString o
obj String
"token"

-- | Set the value of the “@token@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingIP6Config [ #token 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingIP6ConfigToken :: (MonadIO m, IsSettingIP6Config o) => o -> T.Text -> m ()
setSettingIP6ConfigToken :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIP6Config o) =>
o -> Text -> m ()
setSettingIP6ConfigToken o
obj Text
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Maybe Text -> IO ()
forall a. GObject a => a -> String -> Maybe Text -> IO ()
B.Properties.setObjectPropertyString o
obj String
"token" (Text -> Maybe Text
forall a. a -> Maybe a
Just Text
val)

-- | Construct a t'GValueConstruct' with valid value for the “@token@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingIP6ConfigToken :: (IsSettingIP6Config o, MIO.MonadIO m) => T.Text -> m (GValueConstruct o)
constructSettingIP6ConfigToken :: forall o (m :: * -> *).
(IsSettingIP6Config o, MonadIO m) =>
Text -> m (GValueConstruct o)
constructSettingIP6ConfigToken Text
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Maybe Text -> IO (GValueConstruct o)
forall o. String -> Maybe Text -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyString String
"token" (Text -> Maybe Text
forall a. a -> Maybe a
P.Just Text
val)

-- | Set the value of the “@token@” property to `Nothing`.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.clear' #token
-- @
clearSettingIP6ConfigToken :: (MonadIO m, IsSettingIP6Config o) => o -> m ()
clearSettingIP6ConfigToken :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIP6Config o) =>
o -> m ()
clearSettingIP6ConfigToken o
obj = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ o -> String -> Maybe Text -> IO ()
forall a. GObject a => a -> String -> Maybe Text -> IO ()
B.Properties.setObjectPropertyString o
obj String
"token" (Maybe Text
forall a. Maybe a
Nothing :: Maybe T.Text)

#if defined(ENABLE_OVERLOADING)
data SettingIP6ConfigTokenPropertyInfo
instance AttrInfo SettingIP6ConfigTokenPropertyInfo where
    type AttrAllowedOps SettingIP6ConfigTokenPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint SettingIP6ConfigTokenPropertyInfo = IsSettingIP6Config
    type AttrSetTypeConstraint SettingIP6ConfigTokenPropertyInfo = (~) T.Text
    type AttrTransferTypeConstraint SettingIP6ConfigTokenPropertyInfo = (~) T.Text
    type AttrTransferType SettingIP6ConfigTokenPropertyInfo = T.Text
    type AttrGetType SettingIP6ConfigTokenPropertyInfo = T.Text
    type AttrLabel SettingIP6ConfigTokenPropertyInfo = "token"
    type AttrOrigin SettingIP6ConfigTokenPropertyInfo = SettingIP6Config
    attrGet = getSettingIP6ConfigToken
    attrSet = setSettingIP6ConfigToken
    attrTransfer _ v = do
        return v
    attrConstruct = constructSettingIP6ConfigToken
    attrClear = clearSettingIP6ConfigToken
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingIP6Config.token"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingIP6Config.html#g:attr:token"
        })
#endif

#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList SettingIP6Config
type instance O.AttributeList SettingIP6Config = SettingIP6ConfigAttributeList
type SettingIP6ConfigAttributeList = ('[ '("addrGenMode", SettingIP6ConfigAddrGenModePropertyInfo), '("addresses", NM.SettingIPConfig.SettingIPConfigAddressesPropertyInfo), '("autoRouteExtGw", NM.SettingIPConfig.SettingIPConfigAutoRouteExtGwPropertyInfo), '("dadTimeout", NM.SettingIPConfig.SettingIPConfigDadTimeoutPropertyInfo), '("dhcpDscp", NM.SettingIPConfig.SettingIPConfigDhcpDscpPropertyInfo), '("dhcpDuid", SettingIP6ConfigDhcpDuidPropertyInfo), '("dhcpHostname", NM.SettingIPConfig.SettingIPConfigDhcpHostnamePropertyInfo), '("dhcpHostnameFlags", NM.SettingIPConfig.SettingIPConfigDhcpHostnameFlagsPropertyInfo), '("dhcpIaid", NM.SettingIPConfig.SettingIPConfigDhcpIaidPropertyInfo), '("dhcpPdHint", SettingIP6ConfigDhcpPdHintPropertyInfo), '("dhcpRejectServers", NM.SettingIPConfig.SettingIPConfigDhcpRejectServersPropertyInfo), '("dhcpSendHostname", NM.SettingIPConfig.SettingIPConfigDhcpSendHostnamePropertyInfo), '("dhcpSendRelease", NM.SettingIPConfig.SettingIPConfigDhcpSendReleasePropertyInfo), '("dhcpTimeout", NM.SettingIPConfig.SettingIPConfigDhcpTimeoutPropertyInfo), '("dns", NM.SettingIPConfig.SettingIPConfigDnsPropertyInfo), '("dnsOptions", NM.SettingIPConfig.SettingIPConfigDnsOptionsPropertyInfo), '("dnsPriority", NM.SettingIPConfig.SettingIPConfigDnsPriorityPropertyInfo), '("dnsSearch", NM.SettingIPConfig.SettingIPConfigDnsSearchPropertyInfo), '("gateway", NM.SettingIPConfig.SettingIPConfigGatewayPropertyInfo), '("ignoreAutoDns", NM.SettingIPConfig.SettingIPConfigIgnoreAutoDnsPropertyInfo), '("ignoreAutoRoutes", NM.SettingIPConfig.SettingIPConfigIgnoreAutoRoutesPropertyInfo), '("ip6Privacy", SettingIP6ConfigIp6PrivacyPropertyInfo), '("mayFail", NM.SettingIPConfig.SettingIPConfigMayFailPropertyInfo), '("method", NM.SettingIPConfig.SettingIPConfigMethodPropertyInfo), '("mtu", SettingIP6ConfigMtuPropertyInfo), '("name", NM.Setting.SettingNamePropertyInfo), '("neverDefault", NM.SettingIPConfig.SettingIPConfigNeverDefaultPropertyInfo), '("raTimeout", SettingIP6ConfigRaTimeoutPropertyInfo), '("replaceLocalRule", NM.SettingIPConfig.SettingIPConfigReplaceLocalRulePropertyInfo), '("requiredTimeout", NM.SettingIPConfig.SettingIPConfigRequiredTimeoutPropertyInfo), '("routeMetric", NM.SettingIPConfig.SettingIPConfigRouteMetricPropertyInfo), '("routeTable", NM.SettingIPConfig.SettingIPConfigRouteTablePropertyInfo), '("routes", NM.SettingIPConfig.SettingIPConfigRoutesPropertyInfo), '("tempPreferredLifetime", SettingIP6ConfigTempPreferredLifetimePropertyInfo), '("tempValidLifetime", SettingIP6ConfigTempValidLifetimePropertyInfo), '("token", SettingIP6ConfigTokenPropertyInfo)] :: [(Symbol, DK.Type)])
#endif

#if defined(ENABLE_OVERLOADING)
settingIP6ConfigAddrGenMode :: AttrLabelProxy "addrGenMode"
settingIP6ConfigAddrGenMode = AttrLabelProxy

settingIP6ConfigDhcpDuid :: AttrLabelProxy "dhcpDuid"
settingIP6ConfigDhcpDuid = AttrLabelProxy

settingIP6ConfigDhcpPdHint :: AttrLabelProxy "dhcpPdHint"
settingIP6ConfigDhcpPdHint = AttrLabelProxy

settingIP6ConfigIp6Privacy :: AttrLabelProxy "ip6Privacy"
settingIP6ConfigIp6Privacy = AttrLabelProxy

settingIP6ConfigMtu :: AttrLabelProxy "mtu"
settingIP6ConfigMtu = AttrLabelProxy

settingIP6ConfigRaTimeout :: AttrLabelProxy "raTimeout"
settingIP6ConfigRaTimeout = AttrLabelProxy

settingIP6ConfigTempPreferredLifetime :: AttrLabelProxy "tempPreferredLifetime"
settingIP6ConfigTempPreferredLifetime = AttrLabelProxy

settingIP6ConfigTempValidLifetime :: AttrLabelProxy "tempValidLifetime"
settingIP6ConfigTempValidLifetime = AttrLabelProxy

settingIP6ConfigToken :: AttrLabelProxy "token"
settingIP6ConfigToken = AttrLabelProxy

#endif

#if defined(ENABLE_OVERLOADING)
type instance O.SignalList SettingIP6Config = SettingIP6ConfigSignalList
type SettingIP6ConfigSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, DK.Type)])

#endif

-- method SettingIP6Config::new
-- method type : Constructor
-- Args: []
-- Lengths: []
-- returnType: Just
--               (TInterface Name { namespace = "NM" , name = "SettingIP6Config" })
-- throws : False
-- Skip return : False

foreign import ccall "nm_setting_ip6_config_new" nm_setting_ip6_config_new :: 
    IO (Ptr SettingIP6Config)

-- | Creates a new t'GI.NM.Objects.SettingIP6Config.SettingIP6Config' object with default values.
settingIP6ConfigNew ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    m SettingIP6Config
    -- ^ __Returns:__ the new empty t'GI.NM.Objects.SettingIP6Config.SettingIP6Config' object
settingIP6ConfigNew :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
m SettingIP6Config
settingIP6ConfigNew  = IO SettingIP6Config -> m SettingIP6Config
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SettingIP6Config -> m SettingIP6Config)
-> IO SettingIP6Config -> m SettingIP6Config
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingIP6Config
result <- IO (Ptr SettingIP6Config)
nm_setting_ip6_config_new
    Text -> Ptr SettingIP6Config -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"settingIP6ConfigNew" Ptr SettingIP6Config
result
    SettingIP6Config
result' <- ((ManagedPtr SettingIP6Config -> SettingIP6Config)
-> Ptr SettingIP6Config -> IO SettingIP6Config
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr SettingIP6Config -> SettingIP6Config
SettingIP6Config) Ptr SettingIP6Config
result
    SettingIP6Config -> IO SettingIP6Config
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return SettingIP6Config
result'

#if defined(ENABLE_OVERLOADING)
#endif

-- method SettingIP6Config::get_addr_gen_mode
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingIP6Config" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingIP6Config"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just
--               (TInterface
--                  Name { namespace = "NM" , name = "SettingIP6ConfigAddrGenMode" })
-- throws : False
-- Skip return : False

foreign import ccall "nm_setting_ip6_config_get_addr_gen_mode" nm_setting_ip6_config_get_addr_gen_mode :: 
    Ptr SettingIP6Config ->                 -- setting : TInterface (Name {namespace = "NM", name = "SettingIP6Config"})
    IO CUInt

-- | Returns the value contained in the [SettingIP6Config:addrGenMode]("GI.NM.Objects.SettingIP6Config#g:attr:addrGenMode")
-- property.
-- 
-- /Since: 1.2/
settingIP6ConfigGetAddrGenMode ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIP6Config a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIP6Config.SettingIP6Config'
    -> m NM.Enums.SettingIP6ConfigAddrGenMode
    -- ^ __Returns:__ IPv6 Address Generation Mode.
settingIP6ConfigGetAddrGenMode :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIP6Config a) =>
a -> m SettingIP6ConfigAddrGenMode
settingIP6ConfigGetAddrGenMode a
setting = IO SettingIP6ConfigAddrGenMode -> m SettingIP6ConfigAddrGenMode
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SettingIP6ConfigAddrGenMode -> m SettingIP6ConfigAddrGenMode)
-> IO SettingIP6ConfigAddrGenMode -> m SettingIP6ConfigAddrGenMode
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingIP6Config
setting' <- a -> IO (Ptr SettingIP6Config)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    CUInt
result <- Ptr SettingIP6Config -> IO CUInt
nm_setting_ip6_config_get_addr_gen_mode Ptr SettingIP6Config
setting'
    let result' :: SettingIP6ConfigAddrGenMode
result' = (Int -> SettingIP6ConfigAddrGenMode
forall a. Enum a => Int -> a
toEnum (Int -> SettingIP6ConfigAddrGenMode)
-> (CUInt -> Int) -> CUInt -> SettingIP6ConfigAddrGenMode
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    SettingIP6ConfigAddrGenMode -> IO SettingIP6ConfigAddrGenMode
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return SettingIP6ConfigAddrGenMode
result'

#if defined(ENABLE_OVERLOADING)
data SettingIP6ConfigGetAddrGenModeMethodInfo
instance (signature ~ (m NM.Enums.SettingIP6ConfigAddrGenMode), MonadIO m, IsSettingIP6Config a) => O.OverloadedMethod SettingIP6ConfigGetAddrGenModeMethodInfo a signature where
    overloadedMethod = settingIP6ConfigGetAddrGenMode

instance O.OverloadedMethodInfo SettingIP6ConfigGetAddrGenModeMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingIP6Config.settingIP6ConfigGetAddrGenMode",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingIP6Config.html#v:settingIP6ConfigGetAddrGenMode"
        })


#endif

-- method SettingIP6Config::get_dhcp_duid
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingIP6Config" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingIP6Config"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "nm_setting_ip6_config_get_dhcp_duid" nm_setting_ip6_config_get_dhcp_duid :: 
    Ptr SettingIP6Config ->                 -- setting : TInterface (Name {namespace = "NM", name = "SettingIP6Config"})
    IO CString

-- | Returns the value contained in the [SettingIP6Config:dhcpDuid]("GI.NM.Objects.SettingIP6Config#g:attr:dhcpDuid")
-- property.
-- 
-- /Since: 1.12/
settingIP6ConfigGetDhcpDuid ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIP6Config a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIP6Config.SettingIP6Config'
    -> m T.Text
    -- ^ __Returns:__ The configured DUID value to be included in the DHCPv6 requests
    -- sent to the DHCPv6 servers.
settingIP6ConfigGetDhcpDuid :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIP6Config a) =>
a -> m Text
settingIP6ConfigGetDhcpDuid a
setting = IO Text -> m Text
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingIP6Config
setting' <- a -> IO (Ptr SettingIP6Config)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    CString
result <- Ptr SettingIP6Config -> IO CString
nm_setting_ip6_config_get_dhcp_duid Ptr SettingIP6Config
setting'
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"settingIP6ConfigGetDhcpDuid" CString
result
    Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    Text -> IO Text
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'

#if defined(ENABLE_OVERLOADING)
data SettingIP6ConfigGetDhcpDuidMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsSettingIP6Config a) => O.OverloadedMethod SettingIP6ConfigGetDhcpDuidMethodInfo a signature where
    overloadedMethod = settingIP6ConfigGetDhcpDuid

instance O.OverloadedMethodInfo SettingIP6ConfigGetDhcpDuidMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingIP6Config.settingIP6ConfigGetDhcpDuid",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingIP6Config.html#v:settingIP6ConfigGetDhcpDuid"
        })


#endif

-- method SettingIP6Config::get_dhcp_pd_hint
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingIP6Config" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingIP6Config"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "nm_setting_ip6_config_get_dhcp_pd_hint" nm_setting_ip6_config_get_dhcp_pd_hint :: 
    Ptr SettingIP6Config ->                 -- setting : TInterface (Name {namespace = "NM", name = "SettingIP6Config"})
    IO CString

-- | Returns the value contained in the [SettingIP6Config:dhcpPdHint]("GI.NM.Objects.SettingIP6Config#g:attr:dhcpPdHint")
-- property.
-- 
-- /Since: 1.44/
settingIP6ConfigGetDhcpPdHint ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIP6Config a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIP6Config.SettingIP6Config'
    -> m T.Text
    -- ^ __Returns:__ a string containing an address and prefix length to be used
    -- as hint for DHCPv6 prefix delegation.
settingIP6ConfigGetDhcpPdHint :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIP6Config a) =>
a -> m Text
settingIP6ConfigGetDhcpPdHint a
setting = IO Text -> m Text
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingIP6Config
setting' <- a -> IO (Ptr SettingIP6Config)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    CString
result <- Ptr SettingIP6Config -> IO CString
nm_setting_ip6_config_get_dhcp_pd_hint Ptr SettingIP6Config
setting'
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"settingIP6ConfigGetDhcpPdHint" CString
result
    Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    Text -> IO Text
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'

#if defined(ENABLE_OVERLOADING)
data SettingIP6ConfigGetDhcpPdHintMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsSettingIP6Config a) => O.OverloadedMethod SettingIP6ConfigGetDhcpPdHintMethodInfo a signature where
    overloadedMethod = settingIP6ConfigGetDhcpPdHint

instance O.OverloadedMethodInfo SettingIP6ConfigGetDhcpPdHintMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingIP6Config.settingIP6ConfigGetDhcpPdHint",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingIP6Config.html#v:settingIP6ConfigGetDhcpPdHint"
        })


#endif

-- method SettingIP6Config::get_ip6_privacy
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingIP6Config" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingIP6Config"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just
--               (TInterface
--                  Name { namespace = "NM" , name = "SettingIP6ConfigPrivacy" })
-- throws : False
-- Skip return : False

foreign import ccall "nm_setting_ip6_config_get_ip6_privacy" nm_setting_ip6_config_get_ip6_privacy :: 
    Ptr SettingIP6Config ->                 -- setting : TInterface (Name {namespace = "NM", name = "SettingIP6Config"})
    IO CInt

-- | Returns the value contained in the [SettingIP6Config:ip6Privacy]("GI.NM.Objects.SettingIP6Config#g:attr:ip6Privacy")
-- property.
settingIP6ConfigGetIp6Privacy ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIP6Config a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIP6Config.SettingIP6Config'
    -> m NM.Enums.SettingIP6ConfigPrivacy
    -- ^ __Returns:__ IPv6 Privacy Extensions configuration value (t'GI.NM.Enums.SettingIP6ConfigPrivacy').
settingIP6ConfigGetIp6Privacy :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIP6Config a) =>
a -> m SettingIP6ConfigPrivacy
settingIP6ConfigGetIp6Privacy a
setting = IO SettingIP6ConfigPrivacy -> m SettingIP6ConfigPrivacy
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SettingIP6ConfigPrivacy -> m SettingIP6ConfigPrivacy)
-> IO SettingIP6ConfigPrivacy -> m SettingIP6ConfigPrivacy
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingIP6Config
setting' <- a -> IO (Ptr SettingIP6Config)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    CInt
result <- Ptr SettingIP6Config -> IO CInt
nm_setting_ip6_config_get_ip6_privacy Ptr SettingIP6Config
setting'
    let result' :: SettingIP6ConfigPrivacy
result' = (Int -> SettingIP6ConfigPrivacy
forall a. Enum a => Int -> a
toEnum (Int -> SettingIP6ConfigPrivacy)
-> (CInt -> Int) -> CInt -> SettingIP6ConfigPrivacy
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    SettingIP6ConfigPrivacy -> IO SettingIP6ConfigPrivacy
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return SettingIP6ConfigPrivacy
result'

#if defined(ENABLE_OVERLOADING)
data SettingIP6ConfigGetIp6PrivacyMethodInfo
instance (signature ~ (m NM.Enums.SettingIP6ConfigPrivacy), MonadIO m, IsSettingIP6Config a) => O.OverloadedMethod SettingIP6ConfigGetIp6PrivacyMethodInfo a signature where
    overloadedMethod = settingIP6ConfigGetIp6Privacy

instance O.OverloadedMethodInfo SettingIP6ConfigGetIp6PrivacyMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingIP6Config.settingIP6ConfigGetIp6Privacy",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingIP6Config.html#v:settingIP6ConfigGetIp6Privacy"
        })


#endif

-- method SettingIP6Config::get_mtu
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingIP6Config" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingIP6Config"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TUInt32)
-- throws : False
-- Skip return : False

foreign import ccall "nm_setting_ip6_config_get_mtu" nm_setting_ip6_config_get_mtu :: 
    Ptr SettingIP6Config ->                 -- setting : TInterface (Name {namespace = "NM", name = "SettingIP6Config"})
    IO Word32

-- | /No description available in the introspection data./
-- 
-- /Since: 1.40/
settingIP6ConfigGetMtu ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIP6Config a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIP6Config.SettingIP6Config'
    -> m Word32
    -- ^ __Returns:__ The configured 'GI.NM.Constants.SETTING_IP6_CONFIG_MTU' value for the maximum
    -- transmission unit.
settingIP6ConfigGetMtu :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIP6Config a) =>
a -> m Word32
settingIP6ConfigGetMtu a
setting = IO Word32 -> m Word32
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingIP6Config
setting' <- a -> IO (Ptr SettingIP6Config)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Word32
result <- Ptr SettingIP6Config -> IO Word32
nm_setting_ip6_config_get_mtu Ptr SettingIP6Config
setting'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    Word32 -> IO Word32
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result

#if defined(ENABLE_OVERLOADING)
data SettingIP6ConfigGetMtuMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsSettingIP6Config a) => O.OverloadedMethod SettingIP6ConfigGetMtuMethodInfo a signature where
    overloadedMethod = settingIP6ConfigGetMtu

instance O.OverloadedMethodInfo SettingIP6ConfigGetMtuMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingIP6Config.settingIP6ConfigGetMtu",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingIP6Config.html#v:settingIP6ConfigGetMtu"
        })


#endif

-- method SettingIP6Config::get_ra_timeout
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingIP6Config" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingIP6Config"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TInt32)
-- throws : False
-- Skip return : False

foreign import ccall "nm_setting_ip6_config_get_ra_timeout" nm_setting_ip6_config_get_ra_timeout :: 
    Ptr SettingIP6Config ->                 -- setting : TInterface (Name {namespace = "NM", name = "SettingIP6Config"})
    IO Int32

-- | /No description available in the introspection data./
-- 
-- /Since: 1.24/
settingIP6ConfigGetRaTimeout ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIP6Config a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIP6Config.SettingIP6Config'
    -> m Int32
    -- ^ __Returns:__ The configured 'GI.NM.Constants.SETTING_IP6_CONFIG_RA_TIMEOUT' value with the
    -- timeout for router advertisements in seconds.
settingIP6ConfigGetRaTimeout :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIP6Config a) =>
a -> m Int32
settingIP6ConfigGetRaTimeout a
setting = IO Int32 -> m Int32
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingIP6Config
setting' <- a -> IO (Ptr SettingIP6Config)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Int32
result <- Ptr SettingIP6Config -> IO Int32
nm_setting_ip6_config_get_ra_timeout Ptr SettingIP6Config
setting'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    Int32 -> IO Int32
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result

#if defined(ENABLE_OVERLOADING)
data SettingIP6ConfigGetRaTimeoutMethodInfo
instance (signature ~ (m Int32), MonadIO m, IsSettingIP6Config a) => O.OverloadedMethod SettingIP6ConfigGetRaTimeoutMethodInfo a signature where
    overloadedMethod = settingIP6ConfigGetRaTimeout

instance O.OverloadedMethodInfo SettingIP6ConfigGetRaTimeoutMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingIP6Config.settingIP6ConfigGetRaTimeout",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingIP6Config.html#v:settingIP6ConfigGetRaTimeout"
        })


#endif

-- method SettingIP6Config::get_temp_preferred_lifetime
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingIP6Config" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingIP6Config"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TInt32)
-- throws : False
-- Skip return : False

foreign import ccall "nm_setting_ip6_config_get_temp_preferred_lifetime" nm_setting_ip6_config_get_temp_preferred_lifetime :: 
    Ptr SettingIP6Config ->                 -- setting : TInterface (Name {namespace = "NM", name = "SettingIP6Config"})
    IO Int32

-- | Returns the value contained in the [SettingIP6Config:tempPreferredLifetime]("GI.NM.Objects.SettingIP6Config#g:attr:tempPreferredLifetime")
-- property.
-- 
-- /Since: 1.48/
settingIP6ConfigGetTempPreferredLifetime ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIP6Config a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIP6Config.SettingIP6Config'
    -> m Int32
    -- ^ __Returns:__ The preferred lifetime of autogenerated temporary addresses.
settingIP6ConfigGetTempPreferredLifetime :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIP6Config a) =>
a -> m Int32
settingIP6ConfigGetTempPreferredLifetime a
setting = IO Int32 -> m Int32
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingIP6Config
setting' <- a -> IO (Ptr SettingIP6Config)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Int32
result <- Ptr SettingIP6Config -> IO Int32
nm_setting_ip6_config_get_temp_preferred_lifetime Ptr SettingIP6Config
setting'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    Int32 -> IO Int32
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result

#if defined(ENABLE_OVERLOADING)
data SettingIP6ConfigGetTempPreferredLifetimeMethodInfo
instance (signature ~ (m Int32), MonadIO m, IsSettingIP6Config a) => O.OverloadedMethod SettingIP6ConfigGetTempPreferredLifetimeMethodInfo a signature where
    overloadedMethod = settingIP6ConfigGetTempPreferredLifetime

instance O.OverloadedMethodInfo SettingIP6ConfigGetTempPreferredLifetimeMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingIP6Config.settingIP6ConfigGetTempPreferredLifetime",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingIP6Config.html#v:settingIP6ConfigGetTempPreferredLifetime"
        })


#endif

-- method SettingIP6Config::get_temp_valid_lifetime
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingIP6Config" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingIP6Config"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TInt32)
-- throws : False
-- Skip return : False

foreign import ccall "nm_setting_ip6_config_get_temp_valid_lifetime" nm_setting_ip6_config_get_temp_valid_lifetime :: 
    Ptr SettingIP6Config ->                 -- setting : TInterface (Name {namespace = "NM", name = "SettingIP6Config"})
    IO Int32

-- | Returns the value contained in the [SettingIP6Config:tempValidLifetime]("GI.NM.Objects.SettingIP6Config#g:attr:tempValidLifetime")
-- property.
-- 
-- /Since: 1.48/
settingIP6ConfigGetTempValidLifetime ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIP6Config a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIP6Config.SettingIP6Config'
    -> m Int32
    -- ^ __Returns:__ The valid lifetime of autogenerated temporary addresses.
settingIP6ConfigGetTempValidLifetime :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIP6Config a) =>
a -> m Int32
settingIP6ConfigGetTempValidLifetime a
setting = IO Int32 -> m Int32
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingIP6Config
setting' <- a -> IO (Ptr SettingIP6Config)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Int32
result <- Ptr SettingIP6Config -> IO Int32
nm_setting_ip6_config_get_temp_valid_lifetime Ptr SettingIP6Config
setting'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    Int32 -> IO Int32
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result

#if defined(ENABLE_OVERLOADING)
data SettingIP6ConfigGetTempValidLifetimeMethodInfo
instance (signature ~ (m Int32), MonadIO m, IsSettingIP6Config a) => O.OverloadedMethod SettingIP6ConfigGetTempValidLifetimeMethodInfo a signature where
    overloadedMethod = settingIP6ConfigGetTempValidLifetime

instance O.OverloadedMethodInfo SettingIP6ConfigGetTempValidLifetimeMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingIP6Config.settingIP6ConfigGetTempValidLifetime",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingIP6Config.html#v:settingIP6ConfigGetTempValidLifetime"
        })


#endif

-- method SettingIP6Config::get_token
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingIP6Config" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingIP6Config"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "nm_setting_ip6_config_get_token" nm_setting_ip6_config_get_token :: 
    Ptr SettingIP6Config ->                 -- setting : TInterface (Name {namespace = "NM", name = "SettingIP6Config"})
    IO CString

-- | Returns the value contained in the [SettingIP6Config:token]("GI.NM.Objects.SettingIP6Config#g:attr:token")
-- property.
-- 
-- /Since: 1.4/
settingIP6ConfigGetToken ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIP6Config a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIP6Config.SettingIP6Config'
    -> m T.Text
    -- ^ __Returns:__ A string.
settingIP6ConfigGetToken :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIP6Config a) =>
a -> m Text
settingIP6ConfigGetToken a
setting = IO Text -> m Text
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingIP6Config
setting' <- a -> IO (Ptr SettingIP6Config)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    CString
result <- Ptr SettingIP6Config -> IO CString
nm_setting_ip6_config_get_token Ptr SettingIP6Config
setting'
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"settingIP6ConfigGetToken" CString
result
    Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    Text -> IO Text
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'

#if defined(ENABLE_OVERLOADING)
data SettingIP6ConfigGetTokenMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsSettingIP6Config a) => O.OverloadedMethod SettingIP6ConfigGetTokenMethodInfo a signature where
    overloadedMethod = settingIP6ConfigGetToken

instance O.OverloadedMethodInfo SettingIP6ConfigGetTokenMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingIP6Config.settingIP6ConfigGetToken",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingIP6Config.html#v:settingIP6ConfigGetToken"
        })


#endif