{-# LANGUAGE TypeApplications #-}


-- | Copyright  : Will Thompson and Iñaki García Etxebarria
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- /No description available in the introspection data./

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

module GI.NM.Objects.SettingIPConfig
    ( 

-- * Exported types
    SettingIPConfig(..)                     ,
    IsSettingIPConfig                       ,
    toSettingIPConfig                       ,


 -- * 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
-- [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"), [getDhcpHostname]("GI.NM.Objects.SettingIPConfig#g:method:getDhcpHostname"), [getDhcpHostnameFlags]("GI.NM.Objects.SettingIPConfig#g:method:getDhcpHostnameFlags"), [getDhcpIaid]("GI.NM.Objects.SettingIPConfig#g:method:getDhcpIaid"), [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"), [getMayFail]("GI.NM.Objects.SettingIPConfig#g:method:getMayFail"), [getMethod]("GI.NM.Objects.SettingIPConfig#g:method:getMethod"), [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"), [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").
-- 
-- ==== 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)
    ResolveSettingIPConfigMethod            ,
#endif

-- ** addAddress #method:addAddress#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigAddAddressMethodInfo     ,
#endif
    settingIPConfigAddAddress               ,


-- ** addDhcpRejectServer #method:addDhcpRejectServer#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigAddDhcpRejectServerMethodInfo,
#endif
    settingIPConfigAddDhcpRejectServer      ,


-- ** addDns #method:addDns#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigAddDnsMethodInfo         ,
#endif
    settingIPConfigAddDns                   ,


-- ** addDnsOption #method:addDnsOption#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigAddDnsOptionMethodInfo   ,
#endif
    settingIPConfigAddDnsOption             ,


-- ** addDnsSearch #method:addDnsSearch#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigAddDnsSearchMethodInfo   ,
#endif
    settingIPConfigAddDnsSearch             ,


-- ** addRoute #method:addRoute#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigAddRouteMethodInfo       ,
#endif
    settingIPConfigAddRoute                 ,


-- ** addRoutingRule #method:addRoutingRule#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigAddRoutingRuleMethodInfo ,
#endif
    settingIPConfigAddRoutingRule           ,


-- ** clearAddresses #method:clearAddresses#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigClearAddressesMethodInfo ,
#endif
    settingIPConfigClearAddresses           ,


-- ** clearDhcpRejectServers #method:clearDhcpRejectServers#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigClearDhcpRejectServersMethodInfo,
#endif
    settingIPConfigClearDhcpRejectServers   ,


-- ** clearDns #method:clearDns#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigClearDnsMethodInfo       ,
#endif
    settingIPConfigClearDns                 ,


-- ** clearDnsOptions #method:clearDnsOptions#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigClearDnsOptionsMethodInfo,
#endif
    settingIPConfigClearDnsOptions          ,


-- ** clearDnsSearches #method:clearDnsSearches#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigClearDnsSearchesMethodInfo,
#endif
    settingIPConfigClearDnsSearches         ,


-- ** clearRoutes #method:clearRoutes#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigClearRoutesMethodInfo    ,
#endif
    settingIPConfigClearRoutes              ,


-- ** clearRoutingRules #method:clearRoutingRules#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigClearRoutingRulesMethodInfo,
#endif
    settingIPConfigClearRoutingRules        ,


-- ** getAddress #method:getAddress#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigGetAddressMethodInfo     ,
#endif
    settingIPConfigGetAddress               ,


-- ** getAutoRouteExtGw #method:getAutoRouteExtGw#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigGetAutoRouteExtGwMethodInfo,
#endif
    settingIPConfigGetAutoRouteExtGw        ,


-- ** getDadTimeout #method:getDadTimeout#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigGetDadTimeoutMethodInfo  ,
#endif
    settingIPConfigGetDadTimeout            ,


-- ** getDhcpDscp #method:getDhcpDscp#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigGetDhcpDscpMethodInfo    ,
#endif
    settingIPConfigGetDhcpDscp              ,


-- ** getDhcpHostname #method:getDhcpHostname#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigGetDhcpHostnameMethodInfo,
#endif
    settingIPConfigGetDhcpHostname          ,


-- ** getDhcpHostnameFlags #method:getDhcpHostnameFlags#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigGetDhcpHostnameFlagsMethodInfo,
#endif
    settingIPConfigGetDhcpHostnameFlags     ,


-- ** getDhcpIaid #method:getDhcpIaid#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigGetDhcpIaidMethodInfo    ,
#endif
    settingIPConfigGetDhcpIaid              ,


-- ** getDhcpRejectServers #method:getDhcpRejectServers#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigGetDhcpRejectServersMethodInfo,
#endif
    settingIPConfigGetDhcpRejectServers     ,


-- ** getDhcpSendHostname #method:getDhcpSendHostname#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigGetDhcpSendHostnameMethodInfo,
#endif
    settingIPConfigGetDhcpSendHostname      ,


-- ** getDhcpSendRelease #method:getDhcpSendRelease#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigGetDhcpSendReleaseMethodInfo,
#endif
    settingIPConfigGetDhcpSendRelease       ,


-- ** getDhcpTimeout #method:getDhcpTimeout#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigGetDhcpTimeoutMethodInfo ,
#endif
    settingIPConfigGetDhcpTimeout           ,


-- ** getDns #method:getDns#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigGetDnsMethodInfo         ,
#endif
    settingIPConfigGetDns                   ,


-- ** getDnsOption #method:getDnsOption#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigGetDnsOptionMethodInfo   ,
#endif
    settingIPConfigGetDnsOption             ,


-- ** getDnsPriority #method:getDnsPriority#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigGetDnsPriorityMethodInfo ,
#endif
    settingIPConfigGetDnsPriority           ,


-- ** getDnsSearch #method:getDnsSearch#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigGetDnsSearchMethodInfo   ,
#endif
    settingIPConfigGetDnsSearch             ,


-- ** getGateway #method:getGateway#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigGetGatewayMethodInfo     ,
#endif
    settingIPConfigGetGateway               ,


-- ** getIgnoreAutoDns #method:getIgnoreAutoDns#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigGetIgnoreAutoDnsMethodInfo,
#endif
    settingIPConfigGetIgnoreAutoDns         ,


-- ** getIgnoreAutoRoutes #method:getIgnoreAutoRoutes#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigGetIgnoreAutoRoutesMethodInfo,
#endif
    settingIPConfigGetIgnoreAutoRoutes      ,


-- ** getMayFail #method:getMayFail#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigGetMayFailMethodInfo     ,
#endif
    settingIPConfigGetMayFail               ,


-- ** getMethod #method:getMethod#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigGetMethodMethodInfo      ,
#endif
    settingIPConfigGetMethod                ,


-- ** getNeverDefault #method:getNeverDefault#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigGetNeverDefaultMethodInfo,
#endif
    settingIPConfigGetNeverDefault          ,


-- ** getNumAddresses #method:getNumAddresses#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigGetNumAddressesMethodInfo,
#endif
    settingIPConfigGetNumAddresses          ,


-- ** getNumDns #method:getNumDns#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigGetNumDnsMethodInfo      ,
#endif
    settingIPConfigGetNumDns                ,


-- ** getNumDnsOptions #method:getNumDnsOptions#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigGetNumDnsOptionsMethodInfo,
#endif
    settingIPConfigGetNumDnsOptions         ,


-- ** getNumDnsSearches #method:getNumDnsSearches#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigGetNumDnsSearchesMethodInfo,
#endif
    settingIPConfigGetNumDnsSearches        ,


-- ** getNumRoutes #method:getNumRoutes#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigGetNumRoutesMethodInfo   ,
#endif
    settingIPConfigGetNumRoutes             ,


-- ** getNumRoutingRules #method:getNumRoutingRules#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigGetNumRoutingRulesMethodInfo,
#endif
    settingIPConfigGetNumRoutingRules       ,


-- ** getReplaceLocalRule #method:getReplaceLocalRule#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigGetReplaceLocalRuleMethodInfo,
#endif
    settingIPConfigGetReplaceLocalRule      ,


-- ** getRequiredTimeout #method:getRequiredTimeout#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigGetRequiredTimeoutMethodInfo,
#endif
    settingIPConfigGetRequiredTimeout       ,


-- ** getRoute #method:getRoute#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigGetRouteMethodInfo       ,
#endif
    settingIPConfigGetRoute                 ,


-- ** getRouteMetric #method:getRouteMetric#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigGetRouteMetricMethodInfo ,
#endif
    settingIPConfigGetRouteMetric           ,


-- ** getRouteTable #method:getRouteTable#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigGetRouteTableMethodInfo  ,
#endif
    settingIPConfigGetRouteTable            ,


-- ** getRoutingRule #method:getRoutingRule#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigGetRoutingRuleMethodInfo ,
#endif
    settingIPConfigGetRoutingRule           ,


-- ** hasDnsOptions #method:hasDnsOptions#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigHasDnsOptionsMethodInfo  ,
#endif
    settingIPConfigHasDnsOptions            ,


-- ** removeAddress #method:removeAddress#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigRemoveAddressMethodInfo  ,
#endif
    settingIPConfigRemoveAddress            ,


-- ** removeAddressByValue #method:removeAddressByValue#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigRemoveAddressByValueMethodInfo,
#endif
    settingIPConfigRemoveAddressByValue     ,


-- ** removeDhcpRejectServer #method:removeDhcpRejectServer#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigRemoveDhcpRejectServerMethodInfo,
#endif
    settingIPConfigRemoveDhcpRejectServer   ,


-- ** removeDns #method:removeDns#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigRemoveDnsMethodInfo      ,
#endif
    settingIPConfigRemoveDns                ,


-- ** removeDnsByValue #method:removeDnsByValue#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigRemoveDnsByValueMethodInfo,
#endif
    settingIPConfigRemoveDnsByValue         ,


-- ** removeDnsOption #method:removeDnsOption#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigRemoveDnsOptionMethodInfo,
#endif
    settingIPConfigRemoveDnsOption          ,


-- ** removeDnsOptionByValue #method:removeDnsOptionByValue#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigRemoveDnsOptionByValueMethodInfo,
#endif
    settingIPConfigRemoveDnsOptionByValue   ,


-- ** removeDnsSearch #method:removeDnsSearch#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigRemoveDnsSearchMethodInfo,
#endif
    settingIPConfigRemoveDnsSearch          ,


-- ** removeDnsSearchByValue #method:removeDnsSearchByValue#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigRemoveDnsSearchByValueMethodInfo,
#endif
    settingIPConfigRemoveDnsSearchByValue   ,


-- ** removeRoute #method:removeRoute#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigRemoveRouteMethodInfo    ,
#endif
    settingIPConfigRemoveRoute              ,


-- ** removeRouteByValue #method:removeRouteByValue#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigRemoveRouteByValueMethodInfo,
#endif
    settingIPConfigRemoveRouteByValue       ,


-- ** removeRoutingRule #method:removeRoutingRule#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigRemoveRoutingRuleMethodInfo,
#endif
    settingIPConfigRemoveRoutingRule        ,




 -- * Properties


-- ** addresses #attr:addresses#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigAddressesPropertyInfo    ,
#endif
#if defined(ENABLE_OVERLOADING)
    settingIPConfigAddresses                ,
#endif


-- ** autoRouteExtGw #attr:autoRouteExtGw#
-- | VPN connections will default to add the route automatically unless this
-- setting is set to 'P.False'.
-- 
-- For other connection types, adding such an automatic route is currently
-- not supported and setting this to 'P.True' has no effect.
-- 
-- /Since: 1.42/

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigAutoRouteExtGwPropertyInfo,
#endif
    constructSettingIPConfigAutoRouteExtGw  ,
    getSettingIPConfigAutoRouteExtGw        ,
    setSettingIPConfigAutoRouteExtGw        ,
#if defined(ENABLE_OVERLOADING)
    settingIPConfigAutoRouteExtGw           ,
#endif


-- ** dadTimeout #attr:dadTimeout#
-- | Maximum timeout in milliseconds used to check for the presence of duplicate
-- IP addresses on the network.  If an address conflict is detected, the
-- activation will fail. The property is currently implemented only for IPv4.
-- 
-- A zero value means that no duplicate address detection is performed, -1 means
-- the default value (either the value configured globally in NetworkManger.conf
-- or 200ms).  A value greater than zero is a timeout in milliseconds.  Note that
-- the time intervals are subject to randomization as per RFC 5227 and so the
-- actual duration can be between half and the full time specified in this
-- property.
-- 
-- /Since: 1.2/

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigDadTimeoutPropertyInfo   ,
#endif
    constructSettingIPConfigDadTimeout      ,
    getSettingIPConfigDadTimeout            ,
    setSettingIPConfigDadTimeout            ,
#if defined(ENABLE_OVERLOADING)
    settingIPConfigDadTimeout               ,
#endif


-- ** dhcpDscp #attr:dhcpDscp#
-- | Specifies the value for the DSCP field (traffic class) of the IP header. When
-- empty, the global default value is used; if no global default is specified, it is
-- assumed to be \"CS0\". Allowed values are: \"CS0\", \"CS4\" and \"CS6\".
-- 
-- The property is currently valid only for IPv4, and it is supported only by the
-- \"internal\" DHCP plugin.
-- 
-- /Since: 1.46/

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigDhcpDscpPropertyInfo     ,
#endif
    clearSettingIPConfigDhcpDscp            ,
    constructSettingIPConfigDhcpDscp        ,
    getSettingIPConfigDhcpDscp              ,
    setSettingIPConfigDhcpDscp              ,
#if defined(ENABLE_OVERLOADING)
    settingIPConfigDhcpDscp                 ,
#endif


-- ** dhcpHostname #attr:dhcpHostname#
-- | If the [SettingIPConfig:dhcpSendHostname]("GI.NM.Objects.SettingIPConfig#g:attr:dhcpSendHostname") property is 'P.True', then the
-- specified name will be sent to the DHCP server when acquiring a lease.
-- This property and [SettingIP4Config:dhcpFqdn]("GI.NM.Objects.SettingIP4Config#g:attr:dhcpFqdn") are mutually exclusive and
-- cannot be set at the same time.

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigDhcpHostnamePropertyInfo ,
#endif
    clearSettingIPConfigDhcpHostname        ,
    constructSettingIPConfigDhcpHostname    ,
    getSettingIPConfigDhcpHostname          ,
    setSettingIPConfigDhcpHostname          ,
#if defined(ENABLE_OVERLOADING)
    settingIPConfigDhcpHostname             ,
#endif


-- ** dhcpHostnameFlags #attr:dhcpHostnameFlags#
-- | Flags for the DHCP hostname and FQDN.
-- 
-- Currently, this property only includes flags to control the FQDN flags
-- set in the DHCP FQDN option. Supported FQDN flags are
-- 'GI.NM.Flags.DhcpHostnameFlagsFqdnServUpdate',
-- 'GI.NM.Flags.DhcpHostnameFlagsFqdnEncoded' and
-- 'GI.NM.Flags.DhcpHostnameFlagsFqdnNoUpdate'.  When no FQDN flag is set and
-- 'GI.NM.Flags.DhcpHostnameFlagsFqdnClearFlags' is set, the DHCP FQDN option will
-- contain no flag. Otherwise, if no FQDN flag is set and
-- 'GI.NM.Flags.DhcpHostnameFlagsFqdnClearFlags' is not set, the standard FQDN flags
-- are set in the request:
-- 'GI.NM.Flags.DhcpHostnameFlagsFqdnServUpdate',
-- 'GI.NM.Flags.DhcpHostnameFlagsFqdnEncoded' for IPv4 and
-- 'GI.NM.Flags.DhcpHostnameFlagsFqdnServUpdate' for IPv6.
-- 
-- When this property is set to the default value 'GI.NM.Flags.DhcpHostnameFlagsNone',
-- a global default is looked up in NetworkManager configuration. If that value
-- is unset or also 'GI.NM.Flags.DhcpHostnameFlagsNone', then the standard FQDN flags
-- described above are sent in the DHCP requests.
-- 
-- /Since: 1.22/

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigDhcpHostnameFlagsPropertyInfo,
#endif
    constructSettingIPConfigDhcpHostnameFlags,
    getSettingIPConfigDhcpHostnameFlags     ,
    setSettingIPConfigDhcpHostnameFlags     ,
#if defined(ENABLE_OVERLOADING)
    settingIPConfigDhcpHostnameFlags        ,
#endif


-- ** dhcpIaid #attr:dhcpIaid#
-- | A string containing the \"Identity Association Identifier\" (IAID) used by
-- the DHCP client. The string can be a 32-bit number (either decimal,
-- hexadecimal or as colon separated hexadecimal numbers). Alternatively
-- it can be set to the special values \"mac\", \"perm-mac\", \"ifname\" or
-- \"stable\". When set to \"mac\" (or \"perm-mac\"), the last 4 bytes of the
-- current (or permanent) MAC address are used as IAID. When set to
-- \"ifname\", the IAID is computed by hashing the interface name. The
-- special value \"stable\" can be used to generate an IAID based on the
-- stable-id (see connection.stable-id), a per-host key and the interface
-- name. When the property is unset, the value from global configuration is
-- used; if no global default is set then the IAID is assumed to be
-- \"ifname\".
-- 
-- For DHCPv4, the IAID is only used with \"ipv4.dhcp-client-id\"
-- values \"duid\" and \"ipv6-duid\" to generate the client-id.
-- 
-- For DHCPv6, note that at the moment this property is
-- only supported by the \"internal\" DHCPv6 plugin. The \"dhclient\" DHCPv6
-- plugin always derives the IAID from the MAC address.
-- 
-- The actually used DHCPv6 IAID for a currently activated interface is
-- exposed in the lease information of the device.
-- 
-- /Since: 1.22/

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigDhcpIaidPropertyInfo     ,
#endif
    clearSettingIPConfigDhcpIaid            ,
    constructSettingIPConfigDhcpIaid        ,
    getSettingIPConfigDhcpIaid              ,
    setSettingIPConfigDhcpIaid              ,
#if defined(ENABLE_OVERLOADING)
    settingIPConfigDhcpIaid                 ,
#endif


-- ** dhcpRejectServers #attr:dhcpRejectServers#
-- | Array of servers from which DHCP offers must be rejected. This property
-- is useful to avoid getting a lease from misconfigured or rogue servers.
-- 
-- For DHCPv4, each element must be an IPv4 address, optionally
-- followed by a slash and a prefix length (e.g. \"192.168.122.0\/24\").
-- 
-- This property is currently not implemented for DHCPv6.
-- 
-- /Since: 1.28/

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigDhcpRejectServersPropertyInfo,
#endif
    clearSettingIPConfigDhcpRejectServers   ,
    constructSettingIPConfigDhcpRejectServers,
    getSettingIPConfigDhcpRejectServers     ,
    setSettingIPConfigDhcpRejectServers     ,
#if defined(ENABLE_OVERLOADING)
    settingIPConfigDhcpRejectServers        ,
#endif


-- ** dhcpSendHostname #attr:dhcpSendHostname#
-- | If 'P.True', a hostname is sent to the DHCP server when acquiring a lease.
-- Some DHCP servers use this hostname to update DNS databases, essentially
-- providing a static hostname for the computer.  If the
-- [SettingIPConfig:dhcpHostname]("GI.NM.Objects.SettingIPConfig#g:attr:dhcpHostname") property is 'P.Nothing' and this property is
-- 'P.True', the current persistent hostname of the computer is sent.

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigDhcpSendHostnamePropertyInfo,
#endif
    constructSettingIPConfigDhcpSendHostname,
    getSettingIPConfigDhcpSendHostname      ,
    setSettingIPConfigDhcpSendHostname      ,
#if defined(ENABLE_OVERLOADING)
    settingIPConfigDhcpSendHostname         ,
#endif


-- ** dhcpSendRelease #attr:dhcpSendRelease#
-- | Whether the DHCP client will send RELEASE message when
-- bringing the connection down. The default value is 'GI.NM.Enums.TernaryDefault'.
-- When the default value is specified, then the global value from NetworkManager
-- configuration is looked up, if not set, it is considered as 'P.False'.
-- 
-- /Since: 1.48/

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigDhcpSendReleasePropertyInfo,
#endif
    constructSettingIPConfigDhcpSendRelease ,
    getSettingIPConfigDhcpSendRelease       ,
    setSettingIPConfigDhcpSendRelease       ,
#if defined(ENABLE_OVERLOADING)
    settingIPConfigDhcpSendRelease          ,
#endif


-- ** dhcpTimeout #attr:dhcpTimeout#
-- | A timeout for a DHCP transaction in seconds. If zero (the default), a
-- globally configured default is used. If still unspecified, a device specific
-- timeout is used (usually 45 seconds).
-- 
-- Set to 2147483647 (MAXINT32) for infinity.

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigDhcpTimeoutPropertyInfo  ,
#endif
    constructSettingIPConfigDhcpTimeout     ,
    getSettingIPConfigDhcpTimeout           ,
    setSettingIPConfigDhcpTimeout           ,
#if defined(ENABLE_OVERLOADING)
    settingIPConfigDhcpTimeout              ,
#endif


-- ** dns #attr:dns#
-- | Array of IP addresses of DNS servers.
-- 
-- For DoT (DNS over TLS), the SNI server name can be specified by appending
-- \"@/example.com/@\" to the IP address of the DNS server. This currently only has
-- effect when using systemd-resolved.

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigDnsPropertyInfo          ,
#endif
    clearSettingIPConfigDns                 ,
    constructSettingIPConfigDns             ,
    getSettingIPConfigDns                   ,
    setSettingIPConfigDns                   ,
#if defined(ENABLE_OVERLOADING)
    settingIPConfigDns                      ,
#endif


-- ** dnsOptions #attr:dnsOptions#
-- | Array of DNS options to be added to resolv.conf.
-- 
-- 'P.Nothing' means that the options are unset and left at the default.
-- In this case NetworkManager will use default options. This is
-- distinct from an empty list of properties.
-- 
-- The following options are directly added to resolv.conf: \"attempts\",
--  \"debug\", \"edns0\",
-- \"inet6\", \"ip6-bytestring\", \"ip6-dotint\", \"ndots\", \"no-aaaa\",
-- \"no-check-names\", \"no-ip6-dotint\", \"no-reload\", \"no-tld-query\",
-- \"rotate\", \"single-request\", \"single-request-reopen\", \"timeout\",
-- \"trust-ad\", \"use-vc\". See the resolv.conf(5) man page for a
-- detailed description of these options.
-- 
-- In addition, NetworkManager supports the special options \"_no-add-edns0\"
-- and \"_no-add-trust-ad\". They are not added to resolv.conf, and can be
-- used to prevent the automatic addition of options \"edns0\" and \"trust-ad\"
-- when using caching DNS plugins (see below).
-- 
-- The \"trust-ad\" setting is only honored if the profile contributes
-- name servers to resolv.conf, and if all contributing profiles have
-- \"trust-ad\" enabled.
-- 
-- When using a caching DNS plugin (dnsmasq or systemd-resolved in
-- NetworkManager.conf) then \"edns0\" and \"trust-ad\" are automatically
-- added, unless \"_no-add-edns0\" and \"_no-add-trust-ad\" are present.
-- 
-- /Since: 1.2/

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigDnsOptionsPropertyInfo   ,
#endif
    clearSettingIPConfigDnsOptions          ,
    constructSettingIPConfigDnsOptions      ,
    getSettingIPConfigDnsOptions            ,
    setSettingIPConfigDnsOptions            ,
#if defined(ENABLE_OVERLOADING)
    settingIPConfigDnsOptions               ,
#endif


-- ** dnsPriority #attr:dnsPriority#
-- | DNS servers priority.
-- 
-- The relative priority for DNS servers specified by this setting.  A lower
-- numerical value is better (higher priority).
-- 
-- Negative values have the special effect of excluding other configurations
-- with a greater numerical priority value; so in presence of at least one negative
-- priority, only DNS servers from connections with the lowest priority value will be used.
-- To avoid all DNS leaks, set the priority of the profile that should be used
-- to the most negative value of all active connections profiles.
-- 
-- Zero selects a globally configured default value. If the latter is missing
-- or zero too, it defaults to 50 for VPNs (including WireGuard) and 100 for
-- other connections.
-- 
-- Note that the priority is to order DNS settings for multiple active
-- connections.  It does not disambiguate multiple DNS servers within the
-- same connection profile.
-- 
-- When multiple devices have configurations with the same priority, VPNs will be
-- considered first, then devices with the best (lowest metric) default
-- route and then all other devices.
-- 
-- When using dns=default, servers with higher priority will be on top of
-- resolv.conf. To prioritize a given server over another one within the
-- same connection, just specify them in the desired order.
-- Note that commonly the resolver tries name servers in \/etc\/resolv.conf
-- in the order listed, proceeding with the next server in the list
-- on failure. See for example the \"rotate\" option of the dns-options setting.
-- If there are any negative DNS priorities, then only name servers from
-- the devices with that lowest priority will be considered.
-- 
-- When using a DNS resolver that supports Conditional Forwarding or
-- Split DNS (with dns=dnsmasq or dns=systemd-resolved settings), each connection
-- is used to query domains in its search list. The search domains determine which
-- name servers to ask, and the DNS priority is used to prioritize
-- name servers based on the domain.  Queries for domains not present in any
-- search list are routed through connections having the \'~.\' special wildcard
-- domain, which is added automatically to connections with the default route
-- (or can be added manually).  When multiple connections specify the same domain, the
-- one with the best priority (lowest numerical value) wins.  If a sub domain
-- is configured on another interface it will be accepted regardless the priority,
-- unless parent domain on the other interface has a negative priority, which causes
-- the sub domain to be shadowed.
-- With Split DNS one can avoid undesired DNS leaks by properly configuring
-- DNS priorities and the search domains, so that only name servers of the desired
-- interface are configured.
-- 
-- /Since: 1.4/

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigDnsPriorityPropertyInfo  ,
#endif
    constructSettingIPConfigDnsPriority     ,
    getSettingIPConfigDnsPriority           ,
    setSettingIPConfigDnsPriority           ,
#if defined(ENABLE_OVERLOADING)
    settingIPConfigDnsPriority              ,
#endif


-- ** dnsSearch #attr:dnsSearch#
-- | List of DNS search domains. Domains starting with a tilde (\'~\')
-- are considered \'routing\' domains and are used only to decide the
-- interface over which a query must be forwarded; they are not used
-- to complete unqualified host names.
-- 
-- When using a DNS plugin that supports Conditional Forwarding or
-- Split DNS, then the search domains specify which name servers to
-- query. This makes the behavior different from running with plain
-- \/etc\/resolv.conf. For more information see also the dns-priority setting.
-- 
-- When set on a profile that also enabled DHCP, the DNS search list
-- received automatically (option 119 for DHCPv4 and option 24 for DHCPv6)
-- gets merged with the manual list. This can be prevented by setting
-- \"ignore-auto-dns\". Note that if no DNS searches are configured, the
-- fallback will be derived from the domain from DHCP (option 15).

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigDnsSearchPropertyInfo    ,
#endif
    clearSettingIPConfigDnsSearch           ,
    constructSettingIPConfigDnsSearch       ,
    getSettingIPConfigDnsSearch             ,
    setSettingIPConfigDnsSearch             ,
#if defined(ENABLE_OVERLOADING)
    settingIPConfigDnsSearch                ,
#endif


-- ** gateway #attr:gateway#
-- | The gateway associated with this configuration. This is only meaningful
-- if [SettingIPConfig:addresses]("GI.NM.Objects.SettingIPConfig#g:attr:addresses") is also set.
-- 
-- Setting the gateway causes NetworkManager to configure a standard default route
-- with the gateway as next hop. This is ignored if [SettingIPConfig:neverDefault]("GI.NM.Objects.SettingIPConfig#g:attr:neverDefault")
-- is set. An alternative is to configure the default route explicitly with a manual
-- route and \/0 as prefix length.
-- 
-- Note that the gateway usually conflicts with routing that NetworkManager configures
-- for WireGuard interfaces, so usually it should not be set in that case. See
-- [SettingWireGuard:ip4AutoDefaultRoute]("GI.NM.Objects.SettingWireGuard#g:attr:ip4AutoDefaultRoute").

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigGatewayPropertyInfo      ,
#endif
    clearSettingIPConfigGateway             ,
    constructSettingIPConfigGateway         ,
    getSettingIPConfigGateway               ,
    setSettingIPConfigGateway               ,
#if defined(ENABLE_OVERLOADING)
    settingIPConfigGateway                  ,
#endif


-- ** ignoreAutoDns #attr:ignoreAutoDns#
-- | When [SettingIPConfig:method]("GI.NM.Objects.SettingIPConfig#g:attr:method") is set to \"auto\" and this property to
-- 'P.True', automatically configured name servers and search domains are
-- ignored and only name servers and search domains specified in the
-- [SettingIPConfig:dns]("GI.NM.Objects.SettingIPConfig#g:attr:dns") and [SettingIPConfig:dnsSearch]("GI.NM.Objects.SettingIPConfig#g:attr:dnsSearch") properties, if
-- any, are used.

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigIgnoreAutoDnsPropertyInfo,
#endif
    constructSettingIPConfigIgnoreAutoDns   ,
    getSettingIPConfigIgnoreAutoDns         ,
    setSettingIPConfigIgnoreAutoDns         ,
#if defined(ENABLE_OVERLOADING)
    settingIPConfigIgnoreAutoDns            ,
#endif


-- ** ignoreAutoRoutes #attr:ignoreAutoRoutes#
-- | When [SettingIPConfig:method]("GI.NM.Objects.SettingIPConfig#g:attr:method") is set to \"auto\" and this property to
-- 'P.True', automatically configured routes are ignored and only routes
-- specified in the [SettingIPConfig:routes]("GI.NM.Objects.SettingIPConfig#g:attr:routes") property, if any, are used.

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigIgnoreAutoRoutesPropertyInfo,
#endif
    constructSettingIPConfigIgnoreAutoRoutes,
    getSettingIPConfigIgnoreAutoRoutes      ,
    setSettingIPConfigIgnoreAutoRoutes      ,
#if defined(ENABLE_OVERLOADING)
    settingIPConfigIgnoreAutoRoutes         ,
#endif


-- ** mayFail #attr:mayFail#
-- | If 'P.True', allow overall network configuration to proceed even if the
-- configuration specified by this property times out.  Note that at least
-- one IP configuration must succeed or overall network configuration will
-- still fail.  For example, in IPv6-only networks, setting this property to
-- 'P.True' on the t'GI.NM.Objects.SettingIP4Config.SettingIP4Config' allows the overall network configuration
-- to succeed if IPv4 configuration fails but IPv6 configuration completes
-- successfully.

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigMayFailPropertyInfo      ,
#endif
    constructSettingIPConfigMayFail         ,
    getSettingIPConfigMayFail               ,
    setSettingIPConfigMayFail               ,
#if defined(ENABLE_OVERLOADING)
    settingIPConfigMayFail                  ,
#endif


-- ** method #attr:method#
-- | IP configuration method.
-- 
-- t'GI.NM.Objects.SettingIP4Config.SettingIP4Config' and t'GI.NM.Objects.SettingIP6Config.SettingIP6Config' both support \"disabled\",
-- \"auto\", \"manual\", and \"link-local\". See the subclass-specific
-- documentation for other values.
-- 
-- In general, for the \"auto\" method, properties such as
-- [SettingIPConfig:dns]("GI.NM.Objects.SettingIPConfig#g:attr:dns") and [SettingIPConfig:routes]("GI.NM.Objects.SettingIPConfig#g:attr:routes") specify information
-- that is added on to the information returned from automatic
-- configuration.  The [SettingIPConfig:ignoreAutoRoutes]("GI.NM.Objects.SettingIPConfig#g:attr:ignoreAutoRoutes") and
-- [SettingIPConfig:ignoreAutoDns]("GI.NM.Objects.SettingIPConfig#g:attr:ignoreAutoDns") properties modify this behavior.
-- 
-- For methods that imply no upstream network, such as \"shared\" or
-- \"link-local\", these properties must be empty.
-- 
-- For IPv4 method \"shared\", the IP subnet can be configured by adding one
-- manual IPv4 address or otherwise 10.42.x.0\/24 is chosen. Note that the
-- shared method must be configured on the interface which shares the internet
-- to a subnet, not on the uplink which is shared.

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigMethodPropertyInfo       ,
#endif
    clearSettingIPConfigMethod              ,
    constructSettingIPConfigMethod          ,
    getSettingIPConfigMethod                ,
    setSettingIPConfigMethod                ,
#if defined(ENABLE_OVERLOADING)
    settingIPConfigMethod                   ,
#endif


-- ** neverDefault #attr:neverDefault#
-- | If 'P.True', this connection will never be the default connection for this
-- IP type, meaning it will never be assigned the default route by
-- NetworkManager.

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigNeverDefaultPropertyInfo ,
#endif
    constructSettingIPConfigNeverDefault    ,
    getSettingIPConfigNeverDefault          ,
    setSettingIPConfigNeverDefault          ,
#if defined(ENABLE_OVERLOADING)
    settingIPConfigNeverDefault             ,
#endif


-- ** replaceLocalRule #attr:replaceLocalRule#
-- | Connections will default to keep the autogenerated priority 0 local rule
-- unless this setting is set to 'P.True'.
-- 
-- /Since: 1.44/

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigReplaceLocalRulePropertyInfo,
#endif
    constructSettingIPConfigReplaceLocalRule,
    getSettingIPConfigReplaceLocalRule      ,
    setSettingIPConfigReplaceLocalRule      ,
#if defined(ENABLE_OVERLOADING)
    settingIPConfigReplaceLocalRule         ,
#endif


-- ** requiredTimeout #attr:requiredTimeout#
-- | The minimum time interval in milliseconds for which dynamic IP configuration
-- should be tried before the connection succeeds.
-- 
-- This property is useful for example if both IPv4 and IPv6 are enabled and
-- are allowed to fail. Normally the connection succeeds as soon as one of
-- the two address families completes; by setting a required timeout for
-- e.g. IPv4, one can ensure that even if IP6 succeeds earlier than IPv4,
-- NetworkManager waits some time for IPv4 before the connection becomes
-- active.
-- 
-- Note that if [SettingIPConfig:mayFail]("GI.NM.Objects.SettingIPConfig#g:attr:mayFail") is FALSE for the same address
-- family, this property has no effect as NetworkManager needs to wait for
-- the full DHCP timeout.
-- 
-- A zero value means that no required timeout is present, -1 means the
-- default value (either configuration ipvx.required-timeout override or
-- zero).
-- 
-- /Since: 1.34/

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigRequiredTimeoutPropertyInfo,
#endif
    constructSettingIPConfigRequiredTimeout ,
    getSettingIPConfigRequiredTimeout       ,
    setSettingIPConfigRequiredTimeout       ,
#if defined(ENABLE_OVERLOADING)
    settingIPConfigRequiredTimeout          ,
#endif


-- ** routeMetric #attr:routeMetric#
-- | The default metric for routes that don\'t explicitly specify a metric.
-- The default value -1 means that the metric is chosen automatically
-- based on the device type.
-- The metric applies to dynamic routes, manual (static) routes that
-- don\'t have an explicit metric setting, address prefix routes, and
-- the default route.
-- Note that for IPv6, the kernel accepts zero (0) but coerces it to
-- 1024 (user default). Hence, setting this property to zero effectively
-- mean setting it to 1024.
-- For IPv4, zero is a regular value for the metric.

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigRouteMetricPropertyInfo  ,
#endif
    constructSettingIPConfigRouteMetric     ,
    getSettingIPConfigRouteMetric           ,
    setSettingIPConfigRouteMetric           ,
#if defined(ENABLE_OVERLOADING)
    settingIPConfigRouteMetric              ,
#endif


-- ** routeTable #attr:routeTable#
-- | Enable policy routing (source routing) and set the routing table used when adding routes.
-- 
-- This affects all routes, including device-routes, IPv4LL, DHCP, SLAAC, default-routes
-- and static routes. But note that static routes can individually overwrite the setting
-- by explicitly specifying a non-zero routing table.
-- 
-- If the table setting is left at zero, it is eligible to be overwritten via global
-- configuration. If the property is zero even after applying the global configuration
-- value, policy routing is disabled for the address family of this connection.
-- 
-- Policy routing disabled means that NetworkManager will add all routes to the main
-- table (except static routes that explicitly configure a different table). Additionally,
-- NetworkManager will not delete any extraneous routes from tables except the main table.
-- This is to preserve backward compatibility for users who manage routing tables outside
-- of NetworkManager.
-- 
-- /Since: 1.10/

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigRouteTablePropertyInfo   ,
#endif
    constructSettingIPConfigRouteTable      ,
    getSettingIPConfigRouteTable            ,
    setSettingIPConfigRouteTable            ,
#if defined(ENABLE_OVERLOADING)
    settingIPConfigRouteTable               ,
#endif


-- ** routes #attr:routes#

#if defined(ENABLE_OVERLOADING)
    SettingIPConfigRoutesPropertyInfo       ,
#endif
#if defined(ENABLE_OVERLOADING)
    settingIPConfigRoutes                   ,
#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.SettingIP6Config as NM.SettingIP6Config
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.Flags as NM.Flags
import {-# SOURCE #-} qualified GI.NM.Objects.Setting as NM.Setting
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

#endif

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

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

foreign import ccall "nm_setting_ip_config_get_type"
    c_nm_setting_ip_config_get_type :: IO B.Types.GType

instance B.Types.TypedObject SettingIPConfig where
    glibType :: IO GType
glibType = IO GType
c_nm_setting_ip_config_get_type

instance B.Types.GObject SettingIPConfig

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

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

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

-- | Convert t'SettingIPConfig' 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 SettingIPConfig) where
    gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_nm_setting_ip_config_get_type
    gvalueSet_ :: Ptr GValue -> Maybe SettingIPConfig -> IO ()
gvalueSet_ Ptr GValue
gv Maybe SettingIPConfig
P.Nothing = Ptr GValue -> Ptr SettingIPConfig -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr SettingIPConfig
forall a. Ptr a
FP.nullPtr :: FP.Ptr SettingIPConfig)
    gvalueSet_ Ptr GValue
gv (P.Just SettingIPConfig
obj) = SettingIPConfig -> (Ptr SettingIPConfig -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr SettingIPConfig
obj (Ptr GValue -> Ptr SettingIPConfig -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
    gvalueGet_ :: Ptr GValue -> IO (Maybe SettingIPConfig)
gvalueGet_ Ptr GValue
gv = do
        Ptr SettingIPConfig
ptr <- Ptr GValue -> IO (Ptr SettingIPConfig)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr SettingIPConfig)
        if Ptr SettingIPConfig
ptr Ptr SettingIPConfig -> Ptr SettingIPConfig -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr SettingIPConfig
forall a. Ptr a
FP.nullPtr
        then SettingIPConfig -> Maybe SettingIPConfig
forall a. a -> Maybe a
P.Just (SettingIPConfig -> Maybe SettingIPConfig)
-> IO SettingIPConfig -> IO (Maybe SettingIPConfig)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr SettingIPConfig -> SettingIPConfig)
-> Ptr SettingIPConfig -> IO SettingIPConfig
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr SettingIPConfig -> SettingIPConfig
SettingIPConfig Ptr SettingIPConfig
ptr
        else Maybe SettingIPConfig -> IO (Maybe SettingIPConfig)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe SettingIPConfig
forall a. Maybe a
P.Nothing
        
    

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

instance (info ~ ResolveSettingIPConfigMethod t SettingIPConfig, O.OverloadedMethod info SettingIPConfig p) => OL.IsLabel t (SettingIPConfig -> 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 ~ ResolveSettingIPConfigMethod t SettingIPConfig, O.OverloadedMethod info SettingIPConfig p, R.HasField t SettingIPConfig p) => R.HasField t SettingIPConfig p where
    getField = O.overloadedMethod @info

#endif

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

#endif

-- XXX Generation of property "addresses" of object "SettingIPConfig" failed.
-- Not implemented: Don't know how to handle properties of type TPtrArray (TInterface (Name {namespace = "NM", name = "IPAddress"}))
#if defined(ENABLE_OVERLOADING)
-- XXX Placeholder
data SettingIPConfigAddressesPropertyInfo
instance AttrInfo SettingIPConfigAddressesPropertyInfo where
    type AttrAllowedOps SettingIPConfigAddressesPropertyInfo = '[]
    type AttrSetTypeConstraint SettingIPConfigAddressesPropertyInfo = (~) ()
    type AttrTransferTypeConstraint SettingIPConfigAddressesPropertyInfo = (~) ()
    type AttrTransferType SettingIPConfigAddressesPropertyInfo = ()
    type AttrBaseTypeConstraint SettingIPConfigAddressesPropertyInfo = (~) ()
    type AttrGetType SettingIPConfigAddressesPropertyInfo = ()
    type AttrLabel SettingIPConfigAddressesPropertyInfo = ""
    type AttrOrigin SettingIPConfigAddressesPropertyInfo = SettingIPConfig
    attrGet = undefined
    attrSet = undefined
    attrConstruct = undefined
    attrClear = undefined
    attrTransfer = undefined
#endif

-- VVV Prop "auto-route-ext-gw"
   -- Type: TInterface (Name {namespace = "NM", name = "Ternary"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Nothing)

-- | Get the value of the “@auto-route-ext-gw@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' settingIPConfig #autoRouteExtGw
-- @
getSettingIPConfigAutoRouteExtGw :: (MonadIO m, IsSettingIPConfig o) => o -> m NM.Enums.Ternary
getSettingIPConfigAutoRouteExtGw :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> m Ternary
getSettingIPConfigAutoRouteExtGw o
obj = IO Ternary -> m Ternary
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Ternary -> m Ternary) -> IO Ternary -> m Ternary
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Ternary
forall a b. (GObject a, Enum b, BoxedEnum b) => a -> String -> IO b
B.Properties.getObjectPropertyEnum o
obj String
"auto-route-ext-gw"

-- | Set the value of the “@auto-route-ext-gw@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingIPConfig [ #autoRouteExtGw 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingIPConfigAutoRouteExtGw :: (MonadIO m, IsSettingIPConfig o) => o -> NM.Enums.Ternary -> m ()
setSettingIPConfigAutoRouteExtGw :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> Ternary -> m ()
setSettingIPConfigAutoRouteExtGw o
obj Ternary
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 -> Ternary -> IO ()
forall a b.
(GObject a, Enum b, BoxedEnum b) =>
a -> String -> b -> IO ()
B.Properties.setObjectPropertyEnum o
obj String
"auto-route-ext-gw" Ternary
val

-- | Construct a t'GValueConstruct' with valid value for the “@auto-route-ext-gw@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingIPConfigAutoRouteExtGw :: (IsSettingIPConfig o, MIO.MonadIO m) => NM.Enums.Ternary -> m (GValueConstruct o)
constructSettingIPConfigAutoRouteExtGw :: forall o (m :: * -> *).
(IsSettingIPConfig o, MonadIO m) =>
Ternary -> m (GValueConstruct o)
constructSettingIPConfigAutoRouteExtGw Ternary
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 -> Ternary -> IO (GValueConstruct o)
forall a o.
(Enum a, BoxedEnum a) =>
String -> a -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyEnum String
"auto-route-ext-gw" Ternary
val

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigAutoRouteExtGwPropertyInfo
instance AttrInfo SettingIPConfigAutoRouteExtGwPropertyInfo where
    type AttrAllowedOps SettingIPConfigAutoRouteExtGwPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint SettingIPConfigAutoRouteExtGwPropertyInfo = IsSettingIPConfig
    type AttrSetTypeConstraint SettingIPConfigAutoRouteExtGwPropertyInfo = (~) NM.Enums.Ternary
    type AttrTransferTypeConstraint SettingIPConfigAutoRouteExtGwPropertyInfo = (~) NM.Enums.Ternary
    type AttrTransferType SettingIPConfigAutoRouteExtGwPropertyInfo = NM.Enums.Ternary
    type AttrGetType SettingIPConfigAutoRouteExtGwPropertyInfo = NM.Enums.Ternary
    type AttrLabel SettingIPConfigAutoRouteExtGwPropertyInfo = "auto-route-ext-gw"
    type AttrOrigin SettingIPConfigAutoRouteExtGwPropertyInfo = SettingIPConfig
    attrGet = getSettingIPConfigAutoRouteExtGw
    attrSet = setSettingIPConfigAutoRouteExtGw
    attrTransfer _ v = do
        return v
    attrConstruct = constructSettingIPConfigAutoRouteExtGw
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingIPConfig.autoRouteExtGw"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingIPConfig.html#g:attr:autoRouteExtGw"
        })
#endif

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

-- | Get the value of the “@dad-timeout@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' settingIPConfig #dadTimeout
-- @
getSettingIPConfigDadTimeout :: (MonadIO m, IsSettingIPConfig o) => o -> m Int32
getSettingIPConfigDadTimeout :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> m Int32
getSettingIPConfigDadTimeout 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
"dad-timeout"

-- | Set the value of the “@dad-timeout@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingIPConfig [ #dadTimeout 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingIPConfigDadTimeout :: (MonadIO m, IsSettingIPConfig o) => o -> Int32 -> m ()
setSettingIPConfigDadTimeout :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> Int32 -> m ()
setSettingIPConfigDadTimeout 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
"dad-timeout" Int32
val

-- | Construct a t'GValueConstruct' with valid value for the “@dad-timeout@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingIPConfigDadTimeout :: (IsSettingIPConfig o, MIO.MonadIO m) => Int32 -> m (GValueConstruct o)
constructSettingIPConfigDadTimeout :: forall o (m :: * -> *).
(IsSettingIPConfig o, MonadIO m) =>
Int32 -> m (GValueConstruct o)
constructSettingIPConfigDadTimeout 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
"dad-timeout" Int32
val

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

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

-- | Get the value of the “@dhcp-dscp@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' settingIPConfig #dhcpDscp
-- @
getSettingIPConfigDhcpDscp :: (MonadIO m, IsSettingIPConfig o) => o -> m T.Text
getSettingIPConfigDhcpDscp :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> m Text
getSettingIPConfigDhcpDscp 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
"getSettingIPConfigDhcpDscp" (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-dscp"

-- | Set the value of the “@dhcp-dscp@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingIPConfig [ #dhcpDscp 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingIPConfigDhcpDscp :: (MonadIO m, IsSettingIPConfig o) => o -> T.Text -> m ()
setSettingIPConfigDhcpDscp :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> Text -> m ()
setSettingIPConfigDhcpDscp 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-dscp" (Text -> Maybe Text
forall a. a -> Maybe a
Just Text
val)

-- | Construct a t'GValueConstruct' with valid value for the “@dhcp-dscp@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingIPConfigDhcpDscp :: (IsSettingIPConfig o, MIO.MonadIO m) => T.Text -> m (GValueConstruct o)
constructSettingIPConfigDhcpDscp :: forall o (m :: * -> *).
(IsSettingIPConfig o, MonadIO m) =>
Text -> m (GValueConstruct o)
constructSettingIPConfigDhcpDscp 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-dscp" (Text -> Maybe Text
forall a. a -> Maybe a
P.Just Text
val)

-- | Set the value of the “@dhcp-dscp@” 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' #dhcpDscp
-- @
clearSettingIPConfigDhcpDscp :: (MonadIO m, IsSettingIPConfig o) => o -> m ()
clearSettingIPConfigDhcpDscp :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> m ()
clearSettingIPConfigDhcpDscp 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-dscp" (Maybe Text
forall a. Maybe a
Nothing :: Maybe T.Text)

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigDhcpDscpPropertyInfo
instance AttrInfo SettingIPConfigDhcpDscpPropertyInfo where
    type AttrAllowedOps SettingIPConfigDhcpDscpPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint SettingIPConfigDhcpDscpPropertyInfo = IsSettingIPConfig
    type AttrSetTypeConstraint SettingIPConfigDhcpDscpPropertyInfo = (~) T.Text
    type AttrTransferTypeConstraint SettingIPConfigDhcpDscpPropertyInfo = (~) T.Text
    type AttrTransferType SettingIPConfigDhcpDscpPropertyInfo = T.Text
    type AttrGetType SettingIPConfigDhcpDscpPropertyInfo = T.Text
    type AttrLabel SettingIPConfigDhcpDscpPropertyInfo = "dhcp-dscp"
    type AttrOrigin SettingIPConfigDhcpDscpPropertyInfo = SettingIPConfig
    attrGet = getSettingIPConfigDhcpDscp
    attrSet = setSettingIPConfigDhcpDscp
    attrTransfer _ v = do
        return v
    attrConstruct = constructSettingIPConfigDhcpDscp
    attrClear = clearSettingIPConfigDhcpDscp
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingIPConfig.dhcpDscp"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingIPConfig.html#g:attr:dhcpDscp"
        })
#endif

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

-- | Get the value of the “@dhcp-hostname@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' settingIPConfig #dhcpHostname
-- @
getSettingIPConfigDhcpHostname :: (MonadIO m, IsSettingIPConfig o) => o -> m T.Text
getSettingIPConfigDhcpHostname :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> m Text
getSettingIPConfigDhcpHostname 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
"getSettingIPConfigDhcpHostname" (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-hostname"

-- | Set the value of the “@dhcp-hostname@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingIPConfig [ #dhcpHostname 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingIPConfigDhcpHostname :: (MonadIO m, IsSettingIPConfig o) => o -> T.Text -> m ()
setSettingIPConfigDhcpHostname :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> Text -> m ()
setSettingIPConfigDhcpHostname 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-hostname" (Text -> Maybe Text
forall a. a -> Maybe a
Just Text
val)

-- | Construct a t'GValueConstruct' with valid value for the “@dhcp-hostname@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingIPConfigDhcpHostname :: (IsSettingIPConfig o, MIO.MonadIO m) => T.Text -> m (GValueConstruct o)
constructSettingIPConfigDhcpHostname :: forall o (m :: * -> *).
(IsSettingIPConfig o, MonadIO m) =>
Text -> m (GValueConstruct o)
constructSettingIPConfigDhcpHostname 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-hostname" (Text -> Maybe Text
forall a. a -> Maybe a
P.Just Text
val)

-- | Set the value of the “@dhcp-hostname@” 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' #dhcpHostname
-- @
clearSettingIPConfigDhcpHostname :: (MonadIO m, IsSettingIPConfig o) => o -> m ()
clearSettingIPConfigDhcpHostname :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> m ()
clearSettingIPConfigDhcpHostname 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-hostname" (Maybe Text
forall a. Maybe a
Nothing :: Maybe T.Text)

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigDhcpHostnamePropertyInfo
instance AttrInfo SettingIPConfigDhcpHostnamePropertyInfo where
    type AttrAllowedOps SettingIPConfigDhcpHostnamePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint SettingIPConfigDhcpHostnamePropertyInfo = IsSettingIPConfig
    type AttrSetTypeConstraint SettingIPConfigDhcpHostnamePropertyInfo = (~) T.Text
    type AttrTransferTypeConstraint SettingIPConfigDhcpHostnamePropertyInfo = (~) T.Text
    type AttrTransferType SettingIPConfigDhcpHostnamePropertyInfo = T.Text
    type AttrGetType SettingIPConfigDhcpHostnamePropertyInfo = T.Text
    type AttrLabel SettingIPConfigDhcpHostnamePropertyInfo = "dhcp-hostname"
    type AttrOrigin SettingIPConfigDhcpHostnamePropertyInfo = SettingIPConfig
    attrGet = getSettingIPConfigDhcpHostname
    attrSet = setSettingIPConfigDhcpHostname
    attrTransfer _ v = do
        return v
    attrConstruct = constructSettingIPConfigDhcpHostname
    attrClear = clearSettingIPConfigDhcpHostname
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingIPConfig.dhcpHostname"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingIPConfig.html#g:attr:dhcpHostname"
        })
#endif

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

-- | Get the value of the “@dhcp-hostname-flags@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' settingIPConfig #dhcpHostnameFlags
-- @
getSettingIPConfigDhcpHostnameFlags :: (MonadIO m, IsSettingIPConfig o) => o -> m Word32
getSettingIPConfigDhcpHostnameFlags :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> m Word32
getSettingIPConfigDhcpHostnameFlags 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
"dhcp-hostname-flags"

-- | Set the value of the “@dhcp-hostname-flags@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingIPConfig [ #dhcpHostnameFlags 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingIPConfigDhcpHostnameFlags :: (MonadIO m, IsSettingIPConfig o) => o -> Word32 -> m ()
setSettingIPConfigDhcpHostnameFlags :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> Word32 -> m ()
setSettingIPConfigDhcpHostnameFlags 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
"dhcp-hostname-flags" Word32
val

-- | Construct a t'GValueConstruct' with valid value for the “@dhcp-hostname-flags@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingIPConfigDhcpHostnameFlags :: (IsSettingIPConfig o, MIO.MonadIO m) => Word32 -> m (GValueConstruct o)
constructSettingIPConfigDhcpHostnameFlags :: forall o (m :: * -> *).
(IsSettingIPConfig o, MonadIO m) =>
Word32 -> m (GValueConstruct o)
constructSettingIPConfigDhcpHostnameFlags 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
"dhcp-hostname-flags" Word32
val

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

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

-- | Get the value of the “@dhcp-iaid@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' settingIPConfig #dhcpIaid
-- @
getSettingIPConfigDhcpIaid :: (MonadIO m, IsSettingIPConfig o) => o -> m T.Text
getSettingIPConfigDhcpIaid :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> m Text
getSettingIPConfigDhcpIaid 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
"getSettingIPConfigDhcpIaid" (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-iaid"

-- | Set the value of the “@dhcp-iaid@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingIPConfig [ #dhcpIaid 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingIPConfigDhcpIaid :: (MonadIO m, IsSettingIPConfig o) => o -> T.Text -> m ()
setSettingIPConfigDhcpIaid :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> Text -> m ()
setSettingIPConfigDhcpIaid 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-iaid" (Text -> Maybe Text
forall a. a -> Maybe a
Just Text
val)

-- | Construct a t'GValueConstruct' with valid value for the “@dhcp-iaid@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingIPConfigDhcpIaid :: (IsSettingIPConfig o, MIO.MonadIO m) => T.Text -> m (GValueConstruct o)
constructSettingIPConfigDhcpIaid :: forall o (m :: * -> *).
(IsSettingIPConfig o, MonadIO m) =>
Text -> m (GValueConstruct o)
constructSettingIPConfigDhcpIaid 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-iaid" (Text -> Maybe Text
forall a. a -> Maybe a
P.Just Text
val)

-- | Set the value of the “@dhcp-iaid@” 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' #dhcpIaid
-- @
clearSettingIPConfigDhcpIaid :: (MonadIO m, IsSettingIPConfig o) => o -> m ()
clearSettingIPConfigDhcpIaid :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> m ()
clearSettingIPConfigDhcpIaid 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-iaid" (Maybe Text
forall a. Maybe a
Nothing :: Maybe T.Text)

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigDhcpIaidPropertyInfo
instance AttrInfo SettingIPConfigDhcpIaidPropertyInfo where
    type AttrAllowedOps SettingIPConfigDhcpIaidPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint SettingIPConfigDhcpIaidPropertyInfo = IsSettingIPConfig
    type AttrSetTypeConstraint SettingIPConfigDhcpIaidPropertyInfo = (~) T.Text
    type AttrTransferTypeConstraint SettingIPConfigDhcpIaidPropertyInfo = (~) T.Text
    type AttrTransferType SettingIPConfigDhcpIaidPropertyInfo = T.Text
    type AttrGetType SettingIPConfigDhcpIaidPropertyInfo = T.Text
    type AttrLabel SettingIPConfigDhcpIaidPropertyInfo = "dhcp-iaid"
    type AttrOrigin SettingIPConfigDhcpIaidPropertyInfo = SettingIPConfig
    attrGet = getSettingIPConfigDhcpIaid
    attrSet = setSettingIPConfigDhcpIaid
    attrTransfer _ v = do
        return v
    attrConstruct = constructSettingIPConfigDhcpIaid
    attrClear = clearSettingIPConfigDhcpIaid
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingIPConfig.dhcpIaid"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingIPConfig.html#g:attr:dhcpIaid"
        })
#endif

-- VVV Prop "dhcp-reject-servers"
   -- Type: TCArray True (-1) (-1) (TBasicType TUTF8)
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

-- | Get the value of the “@dhcp-reject-servers@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' settingIPConfig #dhcpRejectServers
-- @
getSettingIPConfigDhcpRejectServers :: (MonadIO m, IsSettingIPConfig o) => o -> m (Maybe [T.Text])
getSettingIPConfigDhcpRejectServers :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> m (Maybe [Text])
getSettingIPConfigDhcpRejectServers o
obj = IO (Maybe [Text]) -> m (Maybe [Text])
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (Maybe [Text]) -> m (Maybe [Text]))
-> IO (Maybe [Text]) -> m (Maybe [Text])
forall a b. (a -> b) -> a -> b
$ o -> String -> IO (Maybe [Text])
forall a. GObject a => a -> String -> IO (Maybe [Text])
B.Properties.getObjectPropertyStringArray o
obj String
"dhcp-reject-servers"

-- | Set the value of the “@dhcp-reject-servers@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingIPConfig [ #dhcpRejectServers 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingIPConfigDhcpRejectServers :: (MonadIO m, IsSettingIPConfig o) => o -> [T.Text] -> m ()
setSettingIPConfigDhcpRejectServers :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> [Text] -> m ()
setSettingIPConfigDhcpRejectServers 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.setObjectPropertyStringArray o
obj String
"dhcp-reject-servers" ([Text] -> Maybe [Text]
forall a. a -> Maybe a
Just [Text]
val)

-- | Construct a t'GValueConstruct' with valid value for the “@dhcp-reject-servers@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingIPConfigDhcpRejectServers :: (IsSettingIPConfig o, MIO.MonadIO m) => [T.Text] -> m (GValueConstruct o)
constructSettingIPConfigDhcpRejectServers :: forall o (m :: * -> *).
(IsSettingIPConfig o, MonadIO m) =>
[Text] -> m (GValueConstruct o)
constructSettingIPConfigDhcpRejectServers [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.constructObjectPropertyStringArray String
"dhcp-reject-servers" ([Text] -> Maybe [Text]
forall a. a -> Maybe a
P.Just [Text]
val)

-- | Set the value of the “@dhcp-reject-servers@” 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' #dhcpRejectServers
-- @
clearSettingIPConfigDhcpRejectServers :: (MonadIO m, IsSettingIPConfig o) => o -> m ()
clearSettingIPConfigDhcpRejectServers :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> m ()
clearSettingIPConfigDhcpRejectServers 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.setObjectPropertyStringArray o
obj String
"dhcp-reject-servers" (Maybe [Text]
forall a. Maybe a
Nothing :: Maybe [T.Text])

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigDhcpRejectServersPropertyInfo
instance AttrInfo SettingIPConfigDhcpRejectServersPropertyInfo where
    type AttrAllowedOps SettingIPConfigDhcpRejectServersPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint SettingIPConfigDhcpRejectServersPropertyInfo = IsSettingIPConfig
    type AttrSetTypeConstraint SettingIPConfigDhcpRejectServersPropertyInfo = (~) [T.Text]
    type AttrTransferTypeConstraint SettingIPConfigDhcpRejectServersPropertyInfo = (~) [T.Text]
    type AttrTransferType SettingIPConfigDhcpRejectServersPropertyInfo = [T.Text]
    type AttrGetType SettingIPConfigDhcpRejectServersPropertyInfo = (Maybe [T.Text])
    type AttrLabel SettingIPConfigDhcpRejectServersPropertyInfo = "dhcp-reject-servers"
    type AttrOrigin SettingIPConfigDhcpRejectServersPropertyInfo = SettingIPConfig
    attrGet = getSettingIPConfigDhcpRejectServers
    attrSet = setSettingIPConfigDhcpRejectServers
    attrTransfer _ v = do
        return v
    attrConstruct = constructSettingIPConfigDhcpRejectServers
    attrClear = clearSettingIPConfigDhcpRejectServers
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingIPConfig.dhcpRejectServers"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingIPConfig.html#g:attr:dhcpRejectServers"
        })
#endif

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

-- | Get the value of the “@dhcp-send-hostname@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' settingIPConfig #dhcpSendHostname
-- @
getSettingIPConfigDhcpSendHostname :: (MonadIO m, IsSettingIPConfig o) => o -> m Bool
getSettingIPConfigDhcpSendHostname :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> m Bool
getSettingIPConfigDhcpSendHostname o
obj = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Bool
forall a. GObject a => a -> String -> IO Bool
B.Properties.getObjectPropertyBool o
obj String
"dhcp-send-hostname"

-- | Set the value of the “@dhcp-send-hostname@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingIPConfig [ #dhcpSendHostname 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingIPConfigDhcpSendHostname :: (MonadIO m, IsSettingIPConfig o) => o -> Bool -> m ()
setSettingIPConfigDhcpSendHostname :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> Bool -> m ()
setSettingIPConfigDhcpSendHostname o
obj Bool
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 -> Bool -> IO ()
forall a. GObject a => a -> String -> Bool -> IO ()
B.Properties.setObjectPropertyBool o
obj String
"dhcp-send-hostname" Bool
val

-- | Construct a t'GValueConstruct' with valid value for the “@dhcp-send-hostname@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingIPConfigDhcpSendHostname :: (IsSettingIPConfig o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
constructSettingIPConfigDhcpSendHostname :: forall o (m :: * -> *).
(IsSettingIPConfig o, MonadIO m) =>
Bool -> m (GValueConstruct o)
constructSettingIPConfigDhcpSendHostname Bool
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 -> Bool -> IO (GValueConstruct o)
forall o. String -> Bool -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyBool String
"dhcp-send-hostname" Bool
val

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigDhcpSendHostnamePropertyInfo
instance AttrInfo SettingIPConfigDhcpSendHostnamePropertyInfo where
    type AttrAllowedOps SettingIPConfigDhcpSendHostnamePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint SettingIPConfigDhcpSendHostnamePropertyInfo = IsSettingIPConfig
    type AttrSetTypeConstraint SettingIPConfigDhcpSendHostnamePropertyInfo = (~) Bool
    type AttrTransferTypeConstraint SettingIPConfigDhcpSendHostnamePropertyInfo = (~) Bool
    type AttrTransferType SettingIPConfigDhcpSendHostnamePropertyInfo = Bool
    type AttrGetType SettingIPConfigDhcpSendHostnamePropertyInfo = Bool
    type AttrLabel SettingIPConfigDhcpSendHostnamePropertyInfo = "dhcp-send-hostname"
    type AttrOrigin SettingIPConfigDhcpSendHostnamePropertyInfo = SettingIPConfig
    attrGet = getSettingIPConfigDhcpSendHostname
    attrSet = setSettingIPConfigDhcpSendHostname
    attrTransfer _ v = do
        return v
    attrConstruct = constructSettingIPConfigDhcpSendHostname
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingIPConfig.dhcpSendHostname"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingIPConfig.html#g:attr:dhcpSendHostname"
        })
#endif

-- VVV Prop "dhcp-send-release"
   -- Type: TInterface (Name {namespace = "NM", name = "Ternary"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Nothing)

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

-- | Set the value of the “@dhcp-send-release@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingIPConfig [ #dhcpSendRelease 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingIPConfigDhcpSendRelease :: (MonadIO m, IsSettingIPConfig o) => o -> NM.Enums.Ternary -> m ()
setSettingIPConfigDhcpSendRelease :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> Ternary -> m ()
setSettingIPConfigDhcpSendRelease o
obj Ternary
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 -> Ternary -> IO ()
forall a b.
(GObject a, Enum b, BoxedEnum b) =>
a -> String -> b -> IO ()
B.Properties.setObjectPropertyEnum o
obj String
"dhcp-send-release" Ternary
val

-- | Construct a t'GValueConstruct' with valid value for the “@dhcp-send-release@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingIPConfigDhcpSendRelease :: (IsSettingIPConfig o, MIO.MonadIO m) => NM.Enums.Ternary -> m (GValueConstruct o)
constructSettingIPConfigDhcpSendRelease :: forall o (m :: * -> *).
(IsSettingIPConfig o, MonadIO m) =>
Ternary -> m (GValueConstruct o)
constructSettingIPConfigDhcpSendRelease Ternary
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 -> Ternary -> IO (GValueConstruct o)
forall a o.
(Enum a, BoxedEnum a) =>
String -> a -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyEnum String
"dhcp-send-release" Ternary
val

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigDhcpSendReleasePropertyInfo
instance AttrInfo SettingIPConfigDhcpSendReleasePropertyInfo where
    type AttrAllowedOps SettingIPConfigDhcpSendReleasePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint SettingIPConfigDhcpSendReleasePropertyInfo = IsSettingIPConfig
    type AttrSetTypeConstraint SettingIPConfigDhcpSendReleasePropertyInfo = (~) NM.Enums.Ternary
    type AttrTransferTypeConstraint SettingIPConfigDhcpSendReleasePropertyInfo = (~) NM.Enums.Ternary
    type AttrTransferType SettingIPConfigDhcpSendReleasePropertyInfo = NM.Enums.Ternary
    type AttrGetType SettingIPConfigDhcpSendReleasePropertyInfo = NM.Enums.Ternary
    type AttrLabel SettingIPConfigDhcpSendReleasePropertyInfo = "dhcp-send-release"
    type AttrOrigin SettingIPConfigDhcpSendReleasePropertyInfo = SettingIPConfig
    attrGet = getSettingIPConfigDhcpSendRelease
    attrSet = setSettingIPConfigDhcpSendRelease
    attrTransfer _ v = do
        return v
    attrConstruct = constructSettingIPConfigDhcpSendRelease
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingIPConfig.dhcpSendRelease"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingIPConfig.html#g:attr:dhcpSendRelease"
        })
#endif

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

-- | Get the value of the “@dhcp-timeout@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' settingIPConfig #dhcpTimeout
-- @
getSettingIPConfigDhcpTimeout :: (MonadIO m, IsSettingIPConfig o) => o -> m Int32
getSettingIPConfigDhcpTimeout :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> m Int32
getSettingIPConfigDhcpTimeout 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
"dhcp-timeout"

-- | Set the value of the “@dhcp-timeout@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingIPConfig [ #dhcpTimeout 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingIPConfigDhcpTimeout :: (MonadIO m, IsSettingIPConfig o) => o -> Int32 -> m ()
setSettingIPConfigDhcpTimeout :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> Int32 -> m ()
setSettingIPConfigDhcpTimeout 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
"dhcp-timeout" Int32
val

-- | Construct a t'GValueConstruct' with valid value for the “@dhcp-timeout@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingIPConfigDhcpTimeout :: (IsSettingIPConfig o, MIO.MonadIO m) => Int32 -> m (GValueConstruct o)
constructSettingIPConfigDhcpTimeout :: forall o (m :: * -> *).
(IsSettingIPConfig o, MonadIO m) =>
Int32 -> m (GValueConstruct o)
constructSettingIPConfigDhcpTimeout 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
"dhcp-timeout" Int32
val

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

-- VVV Prop "dns"
   -- Type: TCArray True (-1) (-1) (TBasicType TUTF8)
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

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

-- | Set the value of the “@dns@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingIPConfig [ #dns 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingIPConfigDns :: (MonadIO m, IsSettingIPConfig o) => o -> [T.Text] -> m ()
setSettingIPConfigDns :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> [Text] -> m ()
setSettingIPConfigDns 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.setObjectPropertyStringArray o
obj String
"dns" ([Text] -> Maybe [Text]
forall a. a -> Maybe a
Just [Text]
val)

-- | Construct a t'GValueConstruct' with valid value for the “@dns@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingIPConfigDns :: (IsSettingIPConfig o, MIO.MonadIO m) => [T.Text] -> m (GValueConstruct o)
constructSettingIPConfigDns :: forall o (m :: * -> *).
(IsSettingIPConfig o, MonadIO m) =>
[Text] -> m (GValueConstruct o)
constructSettingIPConfigDns [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.constructObjectPropertyStringArray String
"dns" ([Text] -> Maybe [Text]
forall a. a -> Maybe a
P.Just [Text]
val)

-- | Set the value of the “@dns@” 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' #dns
-- @
clearSettingIPConfigDns :: (MonadIO m, IsSettingIPConfig o) => o -> m ()
clearSettingIPConfigDns :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> m ()
clearSettingIPConfigDns 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.setObjectPropertyStringArray o
obj String
"dns" (Maybe [Text]
forall a. Maybe a
Nothing :: Maybe [T.Text])

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

-- VVV Prop "dns-options"
   -- Type: TCArray True (-1) (-1) (TBasicType TUTF8)
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

-- | Get the value of the “@dns-options@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' settingIPConfig #dnsOptions
-- @
getSettingIPConfigDnsOptions :: (MonadIO m, IsSettingIPConfig o) => o -> m (Maybe [T.Text])
getSettingIPConfigDnsOptions :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> m (Maybe [Text])
getSettingIPConfigDnsOptions o
obj = IO (Maybe [Text]) -> m (Maybe [Text])
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (Maybe [Text]) -> m (Maybe [Text]))
-> IO (Maybe [Text]) -> m (Maybe [Text])
forall a b. (a -> b) -> a -> b
$ o -> String -> IO (Maybe [Text])
forall a. GObject a => a -> String -> IO (Maybe [Text])
B.Properties.getObjectPropertyStringArray o
obj String
"dns-options"

-- | Set the value of the “@dns-options@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingIPConfig [ #dnsOptions 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingIPConfigDnsOptions :: (MonadIO m, IsSettingIPConfig o) => o -> [T.Text] -> m ()
setSettingIPConfigDnsOptions :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> [Text] -> m ()
setSettingIPConfigDnsOptions 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.setObjectPropertyStringArray o
obj String
"dns-options" ([Text] -> Maybe [Text]
forall a. a -> Maybe a
Just [Text]
val)

-- | Construct a t'GValueConstruct' with valid value for the “@dns-options@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingIPConfigDnsOptions :: (IsSettingIPConfig o, MIO.MonadIO m) => [T.Text] -> m (GValueConstruct o)
constructSettingIPConfigDnsOptions :: forall o (m :: * -> *).
(IsSettingIPConfig o, MonadIO m) =>
[Text] -> m (GValueConstruct o)
constructSettingIPConfigDnsOptions [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.constructObjectPropertyStringArray String
"dns-options" ([Text] -> Maybe [Text]
forall a. a -> Maybe a
P.Just [Text]
val)

-- | Set the value of the “@dns-options@” 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' #dnsOptions
-- @
clearSettingIPConfigDnsOptions :: (MonadIO m, IsSettingIPConfig o) => o -> m ()
clearSettingIPConfigDnsOptions :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> m ()
clearSettingIPConfigDnsOptions 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.setObjectPropertyStringArray o
obj String
"dns-options" (Maybe [Text]
forall a. Maybe a
Nothing :: Maybe [T.Text])

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigDnsOptionsPropertyInfo
instance AttrInfo SettingIPConfigDnsOptionsPropertyInfo where
    type AttrAllowedOps SettingIPConfigDnsOptionsPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint SettingIPConfigDnsOptionsPropertyInfo = IsSettingIPConfig
    type AttrSetTypeConstraint SettingIPConfigDnsOptionsPropertyInfo = (~) [T.Text]
    type AttrTransferTypeConstraint SettingIPConfigDnsOptionsPropertyInfo = (~) [T.Text]
    type AttrTransferType SettingIPConfigDnsOptionsPropertyInfo = [T.Text]
    type AttrGetType SettingIPConfigDnsOptionsPropertyInfo = (Maybe [T.Text])
    type AttrLabel SettingIPConfigDnsOptionsPropertyInfo = "dns-options"
    type AttrOrigin SettingIPConfigDnsOptionsPropertyInfo = SettingIPConfig
    attrGet = getSettingIPConfigDnsOptions
    attrSet = setSettingIPConfigDnsOptions
    attrTransfer _ v = do
        return v
    attrConstruct = constructSettingIPConfigDnsOptions
    attrClear = clearSettingIPConfigDnsOptions
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingIPConfig.dnsOptions"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingIPConfig.html#g:attr:dnsOptions"
        })
#endif

-- VVV Prop "dns-priority"
   -- Type: TBasicType TInt
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Nothing)

-- | Get the value of the “@dns-priority@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' settingIPConfig #dnsPriority
-- @
getSettingIPConfigDnsPriority :: (MonadIO m, IsSettingIPConfig o) => o -> m Int32
getSettingIPConfigDnsPriority :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> m Int32
getSettingIPConfigDnsPriority 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
"dns-priority"

-- | Set the value of the “@dns-priority@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingIPConfig [ #dnsPriority 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingIPConfigDnsPriority :: (MonadIO m, IsSettingIPConfig o) => o -> Int32 -> m ()
setSettingIPConfigDnsPriority :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> Int32 -> m ()
setSettingIPConfigDnsPriority 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
"dns-priority" Int32
val

-- | Construct a t'GValueConstruct' with valid value for the “@dns-priority@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingIPConfigDnsPriority :: (IsSettingIPConfig o, MIO.MonadIO m) => Int32 -> m (GValueConstruct o)
constructSettingIPConfigDnsPriority :: forall o (m :: * -> *).
(IsSettingIPConfig o, MonadIO m) =>
Int32 -> m (GValueConstruct o)
constructSettingIPConfigDnsPriority 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
"dns-priority" Int32
val

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigDnsPriorityPropertyInfo
instance AttrInfo SettingIPConfigDnsPriorityPropertyInfo where
    type AttrAllowedOps SettingIPConfigDnsPriorityPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint SettingIPConfigDnsPriorityPropertyInfo = IsSettingIPConfig
    type AttrSetTypeConstraint SettingIPConfigDnsPriorityPropertyInfo = (~) Int32
    type AttrTransferTypeConstraint SettingIPConfigDnsPriorityPropertyInfo = (~) Int32
    type AttrTransferType SettingIPConfigDnsPriorityPropertyInfo = Int32
    type AttrGetType SettingIPConfigDnsPriorityPropertyInfo = Int32
    type AttrLabel SettingIPConfigDnsPriorityPropertyInfo = "dns-priority"
    type AttrOrigin SettingIPConfigDnsPriorityPropertyInfo = SettingIPConfig
    attrGet = getSettingIPConfigDnsPriority
    attrSet = setSettingIPConfigDnsPriority
    attrTransfer _ v = do
        return v
    attrConstruct = constructSettingIPConfigDnsPriority
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingIPConfig.dnsPriority"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingIPConfig.html#g:attr:dnsPriority"
        })
#endif

-- VVV Prop "dns-search"
   -- Type: TCArray True (-1) (-1) (TBasicType TUTF8)
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

-- | Get the value of the “@dns-search@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' settingIPConfig #dnsSearch
-- @
getSettingIPConfigDnsSearch :: (MonadIO m, IsSettingIPConfig o) => o -> m (Maybe [T.Text])
getSettingIPConfigDnsSearch :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> m (Maybe [Text])
getSettingIPConfigDnsSearch o
obj = IO (Maybe [Text]) -> m (Maybe [Text])
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (Maybe [Text]) -> m (Maybe [Text]))
-> IO (Maybe [Text]) -> m (Maybe [Text])
forall a b. (a -> b) -> a -> b
$ o -> String -> IO (Maybe [Text])
forall a. GObject a => a -> String -> IO (Maybe [Text])
B.Properties.getObjectPropertyStringArray o
obj String
"dns-search"

-- | Set the value of the “@dns-search@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingIPConfig [ #dnsSearch 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingIPConfigDnsSearch :: (MonadIO m, IsSettingIPConfig o) => o -> [T.Text] -> m ()
setSettingIPConfigDnsSearch :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> [Text] -> m ()
setSettingIPConfigDnsSearch 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.setObjectPropertyStringArray o
obj String
"dns-search" ([Text] -> Maybe [Text]
forall a. a -> Maybe a
Just [Text]
val)

-- | Construct a t'GValueConstruct' with valid value for the “@dns-search@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingIPConfigDnsSearch :: (IsSettingIPConfig o, MIO.MonadIO m) => [T.Text] -> m (GValueConstruct o)
constructSettingIPConfigDnsSearch :: forall o (m :: * -> *).
(IsSettingIPConfig o, MonadIO m) =>
[Text] -> m (GValueConstruct o)
constructSettingIPConfigDnsSearch [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.constructObjectPropertyStringArray String
"dns-search" ([Text] -> Maybe [Text]
forall a. a -> Maybe a
P.Just [Text]
val)

-- | Set the value of the “@dns-search@” 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' #dnsSearch
-- @
clearSettingIPConfigDnsSearch :: (MonadIO m, IsSettingIPConfig o) => o -> m ()
clearSettingIPConfigDnsSearch :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> m ()
clearSettingIPConfigDnsSearch 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.setObjectPropertyStringArray o
obj String
"dns-search" (Maybe [Text]
forall a. Maybe a
Nothing :: Maybe [T.Text])

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigDnsSearchPropertyInfo
instance AttrInfo SettingIPConfigDnsSearchPropertyInfo where
    type AttrAllowedOps SettingIPConfigDnsSearchPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint SettingIPConfigDnsSearchPropertyInfo = IsSettingIPConfig
    type AttrSetTypeConstraint SettingIPConfigDnsSearchPropertyInfo = (~) [T.Text]
    type AttrTransferTypeConstraint SettingIPConfigDnsSearchPropertyInfo = (~) [T.Text]
    type AttrTransferType SettingIPConfigDnsSearchPropertyInfo = [T.Text]
    type AttrGetType SettingIPConfigDnsSearchPropertyInfo = (Maybe [T.Text])
    type AttrLabel SettingIPConfigDnsSearchPropertyInfo = "dns-search"
    type AttrOrigin SettingIPConfigDnsSearchPropertyInfo = SettingIPConfig
    attrGet = getSettingIPConfigDnsSearch
    attrSet = setSettingIPConfigDnsSearch
    attrTransfer _ v = do
        return v
    attrConstruct = constructSettingIPConfigDnsSearch
    attrClear = clearSettingIPConfigDnsSearch
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingIPConfig.dnsSearch"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingIPConfig.html#g:attr:dnsSearch"
        })
#endif

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

-- | Get the value of the “@gateway@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' settingIPConfig #gateway
-- @
getSettingIPConfigGateway :: (MonadIO m, IsSettingIPConfig o) => o -> m T.Text
getSettingIPConfigGateway :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> m Text
getSettingIPConfigGateway 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
"getSettingIPConfigGateway" (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
"gateway"

-- | Set the value of the “@gateway@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingIPConfig [ #gateway 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingIPConfigGateway :: (MonadIO m, IsSettingIPConfig o) => o -> T.Text -> m ()
setSettingIPConfigGateway :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> Text -> m ()
setSettingIPConfigGateway 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
"gateway" (Text -> Maybe Text
forall a. a -> Maybe a
Just Text
val)

-- | Construct a t'GValueConstruct' with valid value for the “@gateway@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingIPConfigGateway :: (IsSettingIPConfig o, MIO.MonadIO m) => T.Text -> m (GValueConstruct o)
constructSettingIPConfigGateway :: forall o (m :: * -> *).
(IsSettingIPConfig o, MonadIO m) =>
Text -> m (GValueConstruct o)
constructSettingIPConfigGateway 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
"gateway" (Text -> Maybe Text
forall a. a -> Maybe a
P.Just Text
val)

-- | Set the value of the “@gateway@” 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' #gateway
-- @
clearSettingIPConfigGateway :: (MonadIO m, IsSettingIPConfig o) => o -> m ()
clearSettingIPConfigGateway :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> m ()
clearSettingIPConfigGateway 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
"gateway" (Maybe Text
forall a. Maybe a
Nothing :: Maybe T.Text)

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

-- VVV Prop "ignore-auto-dns"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Nothing)

-- | Get the value of the “@ignore-auto-dns@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' settingIPConfig #ignoreAutoDns
-- @
getSettingIPConfigIgnoreAutoDns :: (MonadIO m, IsSettingIPConfig o) => o -> m Bool
getSettingIPConfigIgnoreAutoDns :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> m Bool
getSettingIPConfigIgnoreAutoDns o
obj = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Bool
forall a. GObject a => a -> String -> IO Bool
B.Properties.getObjectPropertyBool o
obj String
"ignore-auto-dns"

-- | Set the value of the “@ignore-auto-dns@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingIPConfig [ #ignoreAutoDns 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingIPConfigIgnoreAutoDns :: (MonadIO m, IsSettingIPConfig o) => o -> Bool -> m ()
setSettingIPConfigIgnoreAutoDns :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> Bool -> m ()
setSettingIPConfigIgnoreAutoDns o
obj Bool
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 -> Bool -> IO ()
forall a. GObject a => a -> String -> Bool -> IO ()
B.Properties.setObjectPropertyBool o
obj String
"ignore-auto-dns" Bool
val

-- | Construct a t'GValueConstruct' with valid value for the “@ignore-auto-dns@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingIPConfigIgnoreAutoDns :: (IsSettingIPConfig o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
constructSettingIPConfigIgnoreAutoDns :: forall o (m :: * -> *).
(IsSettingIPConfig o, MonadIO m) =>
Bool -> m (GValueConstruct o)
constructSettingIPConfigIgnoreAutoDns Bool
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 -> Bool -> IO (GValueConstruct o)
forall o. String -> Bool -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyBool String
"ignore-auto-dns" Bool
val

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigIgnoreAutoDnsPropertyInfo
instance AttrInfo SettingIPConfigIgnoreAutoDnsPropertyInfo where
    type AttrAllowedOps SettingIPConfigIgnoreAutoDnsPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint SettingIPConfigIgnoreAutoDnsPropertyInfo = IsSettingIPConfig
    type AttrSetTypeConstraint SettingIPConfigIgnoreAutoDnsPropertyInfo = (~) Bool
    type AttrTransferTypeConstraint SettingIPConfigIgnoreAutoDnsPropertyInfo = (~) Bool
    type AttrTransferType SettingIPConfigIgnoreAutoDnsPropertyInfo = Bool
    type AttrGetType SettingIPConfigIgnoreAutoDnsPropertyInfo = Bool
    type AttrLabel SettingIPConfigIgnoreAutoDnsPropertyInfo = "ignore-auto-dns"
    type AttrOrigin SettingIPConfigIgnoreAutoDnsPropertyInfo = SettingIPConfig
    attrGet = getSettingIPConfigIgnoreAutoDns
    attrSet = setSettingIPConfigIgnoreAutoDns
    attrTransfer _ v = do
        return v
    attrConstruct = constructSettingIPConfigIgnoreAutoDns
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingIPConfig.ignoreAutoDns"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingIPConfig.html#g:attr:ignoreAutoDns"
        })
#endif

-- VVV Prop "ignore-auto-routes"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Nothing)

-- | Get the value of the “@ignore-auto-routes@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' settingIPConfig #ignoreAutoRoutes
-- @
getSettingIPConfigIgnoreAutoRoutes :: (MonadIO m, IsSettingIPConfig o) => o -> m Bool
getSettingIPConfigIgnoreAutoRoutes :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> m Bool
getSettingIPConfigIgnoreAutoRoutes o
obj = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Bool
forall a. GObject a => a -> String -> IO Bool
B.Properties.getObjectPropertyBool o
obj String
"ignore-auto-routes"

-- | Set the value of the “@ignore-auto-routes@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingIPConfig [ #ignoreAutoRoutes 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingIPConfigIgnoreAutoRoutes :: (MonadIO m, IsSettingIPConfig o) => o -> Bool -> m ()
setSettingIPConfigIgnoreAutoRoutes :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> Bool -> m ()
setSettingIPConfigIgnoreAutoRoutes o
obj Bool
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 -> Bool -> IO ()
forall a. GObject a => a -> String -> Bool -> IO ()
B.Properties.setObjectPropertyBool o
obj String
"ignore-auto-routes" Bool
val

-- | Construct a t'GValueConstruct' with valid value for the “@ignore-auto-routes@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingIPConfigIgnoreAutoRoutes :: (IsSettingIPConfig o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
constructSettingIPConfigIgnoreAutoRoutes :: forall o (m :: * -> *).
(IsSettingIPConfig o, MonadIO m) =>
Bool -> m (GValueConstruct o)
constructSettingIPConfigIgnoreAutoRoutes Bool
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 -> Bool -> IO (GValueConstruct o)
forall o. String -> Bool -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyBool String
"ignore-auto-routes" Bool
val

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigIgnoreAutoRoutesPropertyInfo
instance AttrInfo SettingIPConfigIgnoreAutoRoutesPropertyInfo where
    type AttrAllowedOps SettingIPConfigIgnoreAutoRoutesPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint SettingIPConfigIgnoreAutoRoutesPropertyInfo = IsSettingIPConfig
    type AttrSetTypeConstraint SettingIPConfigIgnoreAutoRoutesPropertyInfo = (~) Bool
    type AttrTransferTypeConstraint SettingIPConfigIgnoreAutoRoutesPropertyInfo = (~) Bool
    type AttrTransferType SettingIPConfigIgnoreAutoRoutesPropertyInfo = Bool
    type AttrGetType SettingIPConfigIgnoreAutoRoutesPropertyInfo = Bool
    type AttrLabel SettingIPConfigIgnoreAutoRoutesPropertyInfo = "ignore-auto-routes"
    type AttrOrigin SettingIPConfigIgnoreAutoRoutesPropertyInfo = SettingIPConfig
    attrGet = getSettingIPConfigIgnoreAutoRoutes
    attrSet = setSettingIPConfigIgnoreAutoRoutes
    attrTransfer _ v = do
        return v
    attrConstruct = constructSettingIPConfigIgnoreAutoRoutes
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingIPConfig.ignoreAutoRoutes"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingIPConfig.html#g:attr:ignoreAutoRoutes"
        })
#endif

-- VVV Prop "may-fail"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Nothing)

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

-- | Set the value of the “@may-fail@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingIPConfig [ #mayFail 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingIPConfigMayFail :: (MonadIO m, IsSettingIPConfig o) => o -> Bool -> m ()
setSettingIPConfigMayFail :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> Bool -> m ()
setSettingIPConfigMayFail o
obj Bool
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 -> Bool -> IO ()
forall a. GObject a => a -> String -> Bool -> IO ()
B.Properties.setObjectPropertyBool o
obj String
"may-fail" Bool
val

-- | Construct a t'GValueConstruct' with valid value for the “@may-fail@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingIPConfigMayFail :: (IsSettingIPConfig o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
constructSettingIPConfigMayFail :: forall o (m :: * -> *).
(IsSettingIPConfig o, MonadIO m) =>
Bool -> m (GValueConstruct o)
constructSettingIPConfigMayFail Bool
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 -> Bool -> IO (GValueConstruct o)
forall o. String -> Bool -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyBool String
"may-fail" Bool
val

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigMayFailPropertyInfo
instance AttrInfo SettingIPConfigMayFailPropertyInfo where
    type AttrAllowedOps SettingIPConfigMayFailPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint SettingIPConfigMayFailPropertyInfo = IsSettingIPConfig
    type AttrSetTypeConstraint SettingIPConfigMayFailPropertyInfo = (~) Bool
    type AttrTransferTypeConstraint SettingIPConfigMayFailPropertyInfo = (~) Bool
    type AttrTransferType SettingIPConfigMayFailPropertyInfo = Bool
    type AttrGetType SettingIPConfigMayFailPropertyInfo = Bool
    type AttrLabel SettingIPConfigMayFailPropertyInfo = "may-fail"
    type AttrOrigin SettingIPConfigMayFailPropertyInfo = SettingIPConfig
    attrGet = getSettingIPConfigMayFail
    attrSet = setSettingIPConfigMayFail
    attrTransfer _ v = do
        return v
    attrConstruct = constructSettingIPConfigMayFail
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingIPConfig.mayFail"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingIPConfig.html#g:attr:mayFail"
        })
#endif

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

-- | Get the value of the “@method@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' settingIPConfig #method
-- @
getSettingIPConfigMethod :: (MonadIO m, IsSettingIPConfig o) => o -> m T.Text
getSettingIPConfigMethod :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> m Text
getSettingIPConfigMethod 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
"getSettingIPConfigMethod" (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
"method"

-- | Set the value of the “@method@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingIPConfig [ #method 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingIPConfigMethod :: (MonadIO m, IsSettingIPConfig o) => o -> T.Text -> m ()
setSettingIPConfigMethod :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> Text -> m ()
setSettingIPConfigMethod 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
"method" (Text -> Maybe Text
forall a. a -> Maybe a
Just Text
val)

-- | Construct a t'GValueConstruct' with valid value for the “@method@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingIPConfigMethod :: (IsSettingIPConfig o, MIO.MonadIO m) => T.Text -> m (GValueConstruct o)
constructSettingIPConfigMethod :: forall o (m :: * -> *).
(IsSettingIPConfig o, MonadIO m) =>
Text -> m (GValueConstruct o)
constructSettingIPConfigMethod 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
"method" (Text -> Maybe Text
forall a. a -> Maybe a
P.Just Text
val)

-- | Set the value of the “@method@” 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' #method
-- @
clearSettingIPConfigMethod :: (MonadIO m, IsSettingIPConfig o) => o -> m ()
clearSettingIPConfigMethod :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> m ()
clearSettingIPConfigMethod 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
"method" (Maybe Text
forall a. Maybe a
Nothing :: Maybe T.Text)

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

-- VVV Prop "never-default"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Nothing)

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

-- | Set the value of the “@never-default@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingIPConfig [ #neverDefault 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingIPConfigNeverDefault :: (MonadIO m, IsSettingIPConfig o) => o -> Bool -> m ()
setSettingIPConfigNeverDefault :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> Bool -> m ()
setSettingIPConfigNeverDefault o
obj Bool
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 -> Bool -> IO ()
forall a. GObject a => a -> String -> Bool -> IO ()
B.Properties.setObjectPropertyBool o
obj String
"never-default" Bool
val

-- | Construct a t'GValueConstruct' with valid value for the “@never-default@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingIPConfigNeverDefault :: (IsSettingIPConfig o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
constructSettingIPConfigNeverDefault :: forall o (m :: * -> *).
(IsSettingIPConfig o, MonadIO m) =>
Bool -> m (GValueConstruct o)
constructSettingIPConfigNeverDefault Bool
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 -> Bool -> IO (GValueConstruct o)
forall o. String -> Bool -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyBool String
"never-default" Bool
val

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigNeverDefaultPropertyInfo
instance AttrInfo SettingIPConfigNeverDefaultPropertyInfo where
    type AttrAllowedOps SettingIPConfigNeverDefaultPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint SettingIPConfigNeverDefaultPropertyInfo = IsSettingIPConfig
    type AttrSetTypeConstraint SettingIPConfigNeverDefaultPropertyInfo = (~) Bool
    type AttrTransferTypeConstraint SettingIPConfigNeverDefaultPropertyInfo = (~) Bool
    type AttrTransferType SettingIPConfigNeverDefaultPropertyInfo = Bool
    type AttrGetType SettingIPConfigNeverDefaultPropertyInfo = Bool
    type AttrLabel SettingIPConfigNeverDefaultPropertyInfo = "never-default"
    type AttrOrigin SettingIPConfigNeverDefaultPropertyInfo = SettingIPConfig
    attrGet = getSettingIPConfigNeverDefault
    attrSet = setSettingIPConfigNeverDefault
    attrTransfer _ v = do
        return v
    attrConstruct = constructSettingIPConfigNeverDefault
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingIPConfig.neverDefault"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingIPConfig.html#g:attr:neverDefault"
        })
#endif

-- VVV Prop "replace-local-rule"
   -- Type: TInterface (Name {namespace = "NM", name = "Ternary"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Nothing)

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

-- | Set the value of the “@replace-local-rule@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingIPConfig [ #replaceLocalRule 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingIPConfigReplaceLocalRule :: (MonadIO m, IsSettingIPConfig o) => o -> NM.Enums.Ternary -> m ()
setSettingIPConfigReplaceLocalRule :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> Ternary -> m ()
setSettingIPConfigReplaceLocalRule o
obj Ternary
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 -> Ternary -> IO ()
forall a b.
(GObject a, Enum b, BoxedEnum b) =>
a -> String -> b -> IO ()
B.Properties.setObjectPropertyEnum o
obj String
"replace-local-rule" Ternary
val

-- | Construct a t'GValueConstruct' with valid value for the “@replace-local-rule@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingIPConfigReplaceLocalRule :: (IsSettingIPConfig o, MIO.MonadIO m) => NM.Enums.Ternary -> m (GValueConstruct o)
constructSettingIPConfigReplaceLocalRule :: forall o (m :: * -> *).
(IsSettingIPConfig o, MonadIO m) =>
Ternary -> m (GValueConstruct o)
constructSettingIPConfigReplaceLocalRule Ternary
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 -> Ternary -> IO (GValueConstruct o)
forall a o.
(Enum a, BoxedEnum a) =>
String -> a -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyEnum String
"replace-local-rule" Ternary
val

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigReplaceLocalRulePropertyInfo
instance AttrInfo SettingIPConfigReplaceLocalRulePropertyInfo where
    type AttrAllowedOps SettingIPConfigReplaceLocalRulePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint SettingIPConfigReplaceLocalRulePropertyInfo = IsSettingIPConfig
    type AttrSetTypeConstraint SettingIPConfigReplaceLocalRulePropertyInfo = (~) NM.Enums.Ternary
    type AttrTransferTypeConstraint SettingIPConfigReplaceLocalRulePropertyInfo = (~) NM.Enums.Ternary
    type AttrTransferType SettingIPConfigReplaceLocalRulePropertyInfo = NM.Enums.Ternary
    type AttrGetType SettingIPConfigReplaceLocalRulePropertyInfo = NM.Enums.Ternary
    type AttrLabel SettingIPConfigReplaceLocalRulePropertyInfo = "replace-local-rule"
    type AttrOrigin SettingIPConfigReplaceLocalRulePropertyInfo = SettingIPConfig
    attrGet = getSettingIPConfigReplaceLocalRule
    attrSet = setSettingIPConfigReplaceLocalRule
    attrTransfer _ v = do
        return v
    attrConstruct = constructSettingIPConfigReplaceLocalRule
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingIPConfig.replaceLocalRule"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingIPConfig.html#g:attr:replaceLocalRule"
        })
#endif

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

-- | Get the value of the “@required-timeout@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' settingIPConfig #requiredTimeout
-- @
getSettingIPConfigRequiredTimeout :: (MonadIO m, IsSettingIPConfig o) => o -> m Int32
getSettingIPConfigRequiredTimeout :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> m Int32
getSettingIPConfigRequiredTimeout 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
"required-timeout"

-- | Set the value of the “@required-timeout@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingIPConfig [ #requiredTimeout 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingIPConfigRequiredTimeout :: (MonadIO m, IsSettingIPConfig o) => o -> Int32 -> m ()
setSettingIPConfigRequiredTimeout :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> Int32 -> m ()
setSettingIPConfigRequiredTimeout 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
"required-timeout" Int32
val

-- | Construct a t'GValueConstruct' with valid value for the “@required-timeout@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingIPConfigRequiredTimeout :: (IsSettingIPConfig o, MIO.MonadIO m) => Int32 -> m (GValueConstruct o)
constructSettingIPConfigRequiredTimeout :: forall o (m :: * -> *).
(IsSettingIPConfig o, MonadIO m) =>
Int32 -> m (GValueConstruct o)
constructSettingIPConfigRequiredTimeout 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
"required-timeout" Int32
val

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

-- VVV Prop "route-metric"
   -- Type: TBasicType TInt64
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Nothing)

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

-- | Set the value of the “@route-metric@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingIPConfig [ #routeMetric 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingIPConfigRouteMetric :: (MonadIO m, IsSettingIPConfig o) => o -> Int64 -> m ()
setSettingIPConfigRouteMetric :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> Int64 -> m ()
setSettingIPConfigRouteMetric o
obj Int64
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 -> Int64 -> IO ()
forall a. GObject a => a -> String -> Int64 -> IO ()
B.Properties.setObjectPropertyInt64 o
obj String
"route-metric" Int64
val

-- | Construct a t'GValueConstruct' with valid value for the “@route-metric@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingIPConfigRouteMetric :: (IsSettingIPConfig o, MIO.MonadIO m) => Int64 -> m (GValueConstruct o)
constructSettingIPConfigRouteMetric :: forall o (m :: * -> *).
(IsSettingIPConfig o, MonadIO m) =>
Int64 -> m (GValueConstruct o)
constructSettingIPConfigRouteMetric Int64
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 -> Int64 -> IO (GValueConstruct o)
forall o. String -> Int64 -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyInt64 String
"route-metric" Int64
val

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigRouteMetricPropertyInfo
instance AttrInfo SettingIPConfigRouteMetricPropertyInfo where
    type AttrAllowedOps SettingIPConfigRouteMetricPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint SettingIPConfigRouteMetricPropertyInfo = IsSettingIPConfig
    type AttrSetTypeConstraint SettingIPConfigRouteMetricPropertyInfo = (~) Int64
    type AttrTransferTypeConstraint SettingIPConfigRouteMetricPropertyInfo = (~) Int64
    type AttrTransferType SettingIPConfigRouteMetricPropertyInfo = Int64
    type AttrGetType SettingIPConfigRouteMetricPropertyInfo = Int64
    type AttrLabel SettingIPConfigRouteMetricPropertyInfo = "route-metric"
    type AttrOrigin SettingIPConfigRouteMetricPropertyInfo = SettingIPConfig
    attrGet = getSettingIPConfigRouteMetric
    attrSet = setSettingIPConfigRouteMetric
    attrTransfer _ v = do
        return v
    attrConstruct = constructSettingIPConfigRouteMetric
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingIPConfig.routeMetric"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingIPConfig.html#g:attr:routeMetric"
        })
#endif

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

-- | Get the value of the “@route-table@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' settingIPConfig #routeTable
-- @
getSettingIPConfigRouteTable :: (MonadIO m, IsSettingIPConfig o) => o -> m Word32
getSettingIPConfigRouteTable :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> m Word32
getSettingIPConfigRouteTable 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
"route-table"

-- | Set the value of the “@route-table@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' settingIPConfig [ #routeTable 'Data.GI.Base.Attributes.:=' value ]
-- @
setSettingIPConfigRouteTable :: (MonadIO m, IsSettingIPConfig o) => o -> Word32 -> m ()
setSettingIPConfigRouteTable :: forall (m :: * -> *) o.
(MonadIO m, IsSettingIPConfig o) =>
o -> Word32 -> m ()
setSettingIPConfigRouteTable 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
"route-table" Word32
val

-- | Construct a t'GValueConstruct' with valid value for the “@route-table@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructSettingIPConfigRouteTable :: (IsSettingIPConfig o, MIO.MonadIO m) => Word32 -> m (GValueConstruct o)
constructSettingIPConfigRouteTable :: forall o (m :: * -> *).
(IsSettingIPConfig o, MonadIO m) =>
Word32 -> m (GValueConstruct o)
constructSettingIPConfigRouteTable 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
"route-table" Word32
val

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

-- XXX Generation of property "routes" of object "SettingIPConfig" failed.
-- Not implemented: Don't know how to handle properties of type TPtrArray (TInterface (Name {namespace = "NM", name = "IPRoute"}))
#if defined(ENABLE_OVERLOADING)
-- XXX Placeholder
data SettingIPConfigRoutesPropertyInfo
instance AttrInfo SettingIPConfigRoutesPropertyInfo where
    type AttrAllowedOps SettingIPConfigRoutesPropertyInfo = '[]
    type AttrSetTypeConstraint SettingIPConfigRoutesPropertyInfo = (~) ()
    type AttrTransferTypeConstraint SettingIPConfigRoutesPropertyInfo = (~) ()
    type AttrTransferType SettingIPConfigRoutesPropertyInfo = ()
    type AttrBaseTypeConstraint SettingIPConfigRoutesPropertyInfo = (~) ()
    type AttrGetType SettingIPConfigRoutesPropertyInfo = ()
    type AttrLabel SettingIPConfigRoutesPropertyInfo = ""
    type AttrOrigin SettingIPConfigRoutesPropertyInfo = SettingIPConfig
    attrGet = undefined
    attrSet = undefined
    attrConstruct = undefined
    attrClear = undefined
    attrTransfer = undefined
#endif

#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList SettingIPConfig
type instance O.AttributeList SettingIPConfig = SettingIPConfigAttributeList
type SettingIPConfigAttributeList = ('[ '("addresses", SettingIPConfigAddressesPropertyInfo), '("autoRouteExtGw", SettingIPConfigAutoRouteExtGwPropertyInfo), '("dadTimeout", SettingIPConfigDadTimeoutPropertyInfo), '("dhcpDscp", SettingIPConfigDhcpDscpPropertyInfo), '("dhcpHostname", SettingIPConfigDhcpHostnamePropertyInfo), '("dhcpHostnameFlags", SettingIPConfigDhcpHostnameFlagsPropertyInfo), '("dhcpIaid", SettingIPConfigDhcpIaidPropertyInfo), '("dhcpRejectServers", SettingIPConfigDhcpRejectServersPropertyInfo), '("dhcpSendHostname", SettingIPConfigDhcpSendHostnamePropertyInfo), '("dhcpSendRelease", SettingIPConfigDhcpSendReleasePropertyInfo), '("dhcpTimeout", SettingIPConfigDhcpTimeoutPropertyInfo), '("dns", SettingIPConfigDnsPropertyInfo), '("dnsOptions", SettingIPConfigDnsOptionsPropertyInfo), '("dnsPriority", SettingIPConfigDnsPriorityPropertyInfo), '("dnsSearch", SettingIPConfigDnsSearchPropertyInfo), '("gateway", SettingIPConfigGatewayPropertyInfo), '("ignoreAutoDns", SettingIPConfigIgnoreAutoDnsPropertyInfo), '("ignoreAutoRoutes", SettingIPConfigIgnoreAutoRoutesPropertyInfo), '("mayFail", SettingIPConfigMayFailPropertyInfo), '("method", SettingIPConfigMethodPropertyInfo), '("name", NM.Setting.SettingNamePropertyInfo), '("neverDefault", SettingIPConfigNeverDefaultPropertyInfo), '("replaceLocalRule", SettingIPConfigReplaceLocalRulePropertyInfo), '("requiredTimeout", SettingIPConfigRequiredTimeoutPropertyInfo), '("routeMetric", SettingIPConfigRouteMetricPropertyInfo), '("routeTable", SettingIPConfigRouteTablePropertyInfo), '("routes", SettingIPConfigRoutesPropertyInfo)] :: [(Symbol, DK.Type)])
#endif

#if defined(ENABLE_OVERLOADING)
settingIPConfigAddresses :: AttrLabelProxy "addresses"
settingIPConfigAddresses = AttrLabelProxy

settingIPConfigAutoRouteExtGw :: AttrLabelProxy "autoRouteExtGw"
settingIPConfigAutoRouteExtGw = AttrLabelProxy

settingIPConfigDadTimeout :: AttrLabelProxy "dadTimeout"
settingIPConfigDadTimeout = AttrLabelProxy

settingIPConfigDhcpDscp :: AttrLabelProxy "dhcpDscp"
settingIPConfigDhcpDscp = AttrLabelProxy

settingIPConfigDhcpHostname :: AttrLabelProxy "dhcpHostname"
settingIPConfigDhcpHostname = AttrLabelProxy

settingIPConfigDhcpHostnameFlags :: AttrLabelProxy "dhcpHostnameFlags"
settingIPConfigDhcpHostnameFlags = AttrLabelProxy

settingIPConfigDhcpIaid :: AttrLabelProxy "dhcpIaid"
settingIPConfigDhcpIaid = AttrLabelProxy

settingIPConfigDhcpRejectServers :: AttrLabelProxy "dhcpRejectServers"
settingIPConfigDhcpRejectServers = AttrLabelProxy

settingIPConfigDhcpSendHostname :: AttrLabelProxy "dhcpSendHostname"
settingIPConfigDhcpSendHostname = AttrLabelProxy

settingIPConfigDhcpSendRelease :: AttrLabelProxy "dhcpSendRelease"
settingIPConfigDhcpSendRelease = AttrLabelProxy

settingIPConfigDhcpTimeout :: AttrLabelProxy "dhcpTimeout"
settingIPConfigDhcpTimeout = AttrLabelProxy

settingIPConfigDns :: AttrLabelProxy "dns"
settingIPConfigDns = AttrLabelProxy

settingIPConfigDnsOptions :: AttrLabelProxy "dnsOptions"
settingIPConfigDnsOptions = AttrLabelProxy

settingIPConfigDnsPriority :: AttrLabelProxy "dnsPriority"
settingIPConfigDnsPriority = AttrLabelProxy

settingIPConfigDnsSearch :: AttrLabelProxy "dnsSearch"
settingIPConfigDnsSearch = AttrLabelProxy

settingIPConfigGateway :: AttrLabelProxy "gateway"
settingIPConfigGateway = AttrLabelProxy

settingIPConfigIgnoreAutoDns :: AttrLabelProxy "ignoreAutoDns"
settingIPConfigIgnoreAutoDns = AttrLabelProxy

settingIPConfigIgnoreAutoRoutes :: AttrLabelProxy "ignoreAutoRoutes"
settingIPConfigIgnoreAutoRoutes = AttrLabelProxy

settingIPConfigMayFail :: AttrLabelProxy "mayFail"
settingIPConfigMayFail = AttrLabelProxy

settingIPConfigMethod :: AttrLabelProxy "method"
settingIPConfigMethod = AttrLabelProxy

settingIPConfigNeverDefault :: AttrLabelProxy "neverDefault"
settingIPConfigNeverDefault = AttrLabelProxy

settingIPConfigReplaceLocalRule :: AttrLabelProxy "replaceLocalRule"
settingIPConfigReplaceLocalRule = AttrLabelProxy

settingIPConfigRequiredTimeout :: AttrLabelProxy "requiredTimeout"
settingIPConfigRequiredTimeout = AttrLabelProxy

settingIPConfigRouteMetric :: AttrLabelProxy "routeMetric"
settingIPConfigRouteMetric = AttrLabelProxy

settingIPConfigRouteTable :: AttrLabelProxy "routeTable"
settingIPConfigRouteTable = AttrLabelProxy

settingIPConfigRoutes :: AttrLabelProxy "routes"
settingIPConfigRoutes = AttrLabelProxy

#endif

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

#endif

-- method SettingIPConfig::add_address
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingIPConfig" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingIPConfig"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "address"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "IPAddress" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the new address to add"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "nm_setting_ip_config_add_address" nm_setting_ip_config_add_address :: 
    Ptr SettingIPConfig ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingIPConfig"})
    Ptr NM.IPAddress.IPAddress ->           -- address : TInterface (Name {namespace = "NM", name = "IPAddress"})
    IO CInt

-- | Adds a new IP address and associated information to the setting.  The
-- given address is duplicated internally and is not changed by this function.
settingIPConfigAddAddress ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> NM.IPAddress.IPAddress
    -- ^ /@address@/: the new address to add
    -> m Bool
    -- ^ __Returns:__ 'P.True' if the address was added; 'P.False' if the address was already
    -- known.
settingIPConfigAddAddress :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> IPAddress -> m Bool
settingIPConfigAddAddress a
setting IPAddress
address = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Ptr IPAddress
address' <- IPAddress -> IO (Ptr IPAddress)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr IPAddress
address
    CInt
result <- Ptr SettingIPConfig -> Ptr IPAddress -> IO CInt
nm_setting_ip_config_add_address Ptr SettingIPConfig
setting' Ptr IPAddress
address'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    IPAddress -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr IPAddress
address
    Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigAddAddressMethodInfo
instance (signature ~ (NM.IPAddress.IPAddress -> m Bool), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigAddAddressMethodInfo a signature where
    overloadedMethod = settingIPConfigAddAddress

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


#endif

-- method SettingIPConfig::add_dhcp_reject_server
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingIPConfig" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingIPConfig"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "server"
--           , argType = TBasicType TUTF8
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the DHCP reject server to add"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "nm_setting_ip_config_add_dhcp_reject_server" nm_setting_ip_config_add_dhcp_reject_server :: 
    Ptr SettingIPConfig ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingIPConfig"})
    CString ->                              -- server : TBasicType TUTF8
    IO ()

-- | Adds a new DHCP reject server to the setting.
-- 
-- /Since: 1.28/
settingIPConfigAddDhcpRejectServer ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> T.Text
    -- ^ /@server@/: the DHCP reject server to add
    -> m ()
settingIPConfigAddDhcpRejectServer :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> Text -> m ()
settingIPConfigAddDhcpRejectServer a
setting Text
server = 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
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    CString
server' <- Text -> IO CString
textToCString Text
server
    Ptr SettingIPConfig -> CString -> IO ()
nm_setting_ip_config_add_dhcp_reject_server Ptr SettingIPConfig
setting' CString
server'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
server'
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigAddDhcpRejectServerMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigAddDhcpRejectServerMethodInfo a signature where
    overloadedMethod = settingIPConfigAddDhcpRejectServer

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


#endif

-- method SettingIPConfig::add_dns
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingIPConfig" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingIPConfig"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "dns"
--           , argType = TBasicType TUTF8
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the IP address of the DNS server to add"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "nm_setting_ip_config_add_dns" nm_setting_ip_config_add_dns :: 
    Ptr SettingIPConfig ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingIPConfig"})
    CString ->                              -- dns : TBasicType TUTF8
    IO CInt

-- | Adds a new DNS server to the setting.
settingIPConfigAddDns ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> T.Text
    -- ^ /@dns@/: the IP address of the DNS server to add
    -> m Bool
    -- ^ __Returns:__ 'P.True' if the DNS server was added; 'P.False' if the server was already
    -- known
    -- 
    -- Before 1.42, setting /@dns@/ to an invalid string was treated as user-error.
    -- Now, also invalid DNS values can be set, but will be rejected later during
    -- 'GI.NM.Interfaces.Connection.connectionVerify'.
settingIPConfigAddDns :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> Text -> m Bool
settingIPConfigAddDns a
setting Text
dns = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    CString
dns' <- Text -> IO CString
textToCString Text
dns
    CInt
result <- Ptr SettingIPConfig -> CString -> IO CInt
nm_setting_ip_config_add_dns Ptr SettingIPConfig
setting' CString
dns'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
dns'
    Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigAddDnsMethodInfo
instance (signature ~ (T.Text -> m Bool), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigAddDnsMethodInfo a signature where
    overloadedMethod = settingIPConfigAddDns

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


#endif

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

foreign import ccall "nm_setting_ip_config_add_dns_option" nm_setting_ip_config_add_dns_option :: 
    Ptr SettingIPConfig ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingIPConfig"})
    CString ->                              -- dns_option : TBasicType TUTF8
    IO CInt

-- | Adds a new DNS option to the setting.
-- 
-- /Since: 1.2/
settingIPConfigAddDnsOption ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> T.Text
    -- ^ /@dnsOption@/: the DNS option to add
    -> m Bool
    -- ^ __Returns:__ 'P.True' if the DNS option was added; 'P.False' otherwise
settingIPConfigAddDnsOption :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> Text -> m Bool
settingIPConfigAddDnsOption a
setting Text
dnsOption = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    CString
dnsOption' <- Text -> IO CString
textToCString Text
dnsOption
    CInt
result <- Ptr SettingIPConfig -> CString -> IO CInt
nm_setting_ip_config_add_dns_option Ptr SettingIPConfig
setting' CString
dnsOption'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
dnsOption'
    Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigAddDnsOptionMethodInfo
instance (signature ~ (T.Text -> m Bool), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigAddDnsOptionMethodInfo a signature where
    overloadedMethod = settingIPConfigAddDnsOption

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


#endif

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

foreign import ccall "nm_setting_ip_config_add_dns_search" nm_setting_ip_config_add_dns_search :: 
    Ptr SettingIPConfig ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingIPConfig"})
    CString ->                              -- dns_search : TBasicType TUTF8
    IO CInt

-- | Adds a new DNS search domain to the setting.
settingIPConfigAddDnsSearch ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> T.Text
    -- ^ /@dnsSearch@/: the search domain to add
    -> m Bool
    -- ^ __Returns:__ 'P.True' if the DNS search domain was added; 'P.False' if the search
    -- domain was already known
settingIPConfigAddDnsSearch :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> Text -> m Bool
settingIPConfigAddDnsSearch a
setting Text
dnsSearch = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    CString
dnsSearch' <- Text -> IO CString
textToCString Text
dnsSearch
    CInt
result <- Ptr SettingIPConfig -> CString -> IO CInt
nm_setting_ip_config_add_dns_search Ptr SettingIPConfig
setting' CString
dnsSearch'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
dnsSearch'
    Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigAddDnsSearchMethodInfo
instance (signature ~ (T.Text -> m Bool), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigAddDnsSearchMethodInfo a signature where
    overloadedMethod = settingIPConfigAddDnsSearch

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


#endif

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

foreign import ccall "nm_setting_ip_config_add_route" nm_setting_ip_config_add_route :: 
    Ptr SettingIPConfig ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingIPConfig"})
    Ptr NM.IPRoute.IPRoute ->               -- route : TInterface (Name {namespace = "NM", name = "IPRoute"})
    IO CInt

-- | Appends a new route and associated information to the setting.  The
-- given route is duplicated internally and is not changed by this function.
-- If an identical route (considering attributes as well) already exists, the
-- route is not added and the function returns 'P.False'.
-- 
-- Note that before 1.10, this function would not consider route attributes
-- and not add a route that has an existing route with same dest\/prefix,next_hop,metric
-- parameters.
settingIPConfigAddRoute ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> NM.IPRoute.IPRoute
    -- ^ /@route@/: the route to add
    -> m Bool
    -- ^ __Returns:__ 'P.True' if the route was added; 'P.False' if the route was already known.
settingIPConfigAddRoute :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> IPRoute -> m Bool
settingIPConfigAddRoute a
setting IPRoute
route = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Ptr IPRoute
route' <- IPRoute -> IO (Ptr IPRoute)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr IPRoute
route
    CInt
result <- Ptr SettingIPConfig -> Ptr IPRoute -> IO CInt
nm_setting_ip_config_add_route Ptr SettingIPConfig
setting' Ptr IPRoute
route'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    IPRoute -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr IPRoute
route
    Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigAddRouteMethodInfo
instance (signature ~ (NM.IPRoute.IPRoute -> m Bool), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigAddRouteMethodInfo a signature where
    overloadedMethod = settingIPConfigAddRoute

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


#endif

-- method SettingIPConfig::add_routing_rule
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingIPConfig" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingIPConfig"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "routing_rule"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "IPRoutingRule" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "the #NMIPRoutingRule to add. The address family\n  of the added rule must be compatible with the setting."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "nm_setting_ip_config_add_routing_rule" nm_setting_ip_config_add_routing_rule :: 
    Ptr SettingIPConfig ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingIPConfig"})
    Ptr NM.IPRoutingRule.IPRoutingRule ->   -- routing_rule : TInterface (Name {namespace = "NM", name = "IPRoutingRule"})
    IO ()

-- | Appends a new routing-rule and associated information to the setting. The
-- given routing rules gets sealed and the reference count is incremented.
-- The function does not check whether an identical rule already exists
-- and always appends the rule to the end of the list.
-- 
-- /Since: 1.18/
settingIPConfigAddRoutingRule ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> NM.IPRoutingRule.IPRoutingRule
    -- ^ /@routingRule@/: the t'GI.NM.Structs.IPRoutingRule.IPRoutingRule' to add. The address family
    --   of the added rule must be compatible with the setting.
    -> m ()
settingIPConfigAddRoutingRule :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> IPRoutingRule -> m ()
settingIPConfigAddRoutingRule a
setting IPRoutingRule
routingRule = 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
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Ptr IPRoutingRule
routingRule' <- IPRoutingRule -> IO (Ptr IPRoutingRule)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr IPRoutingRule
routingRule
    Ptr SettingIPConfig -> Ptr IPRoutingRule -> IO ()
nm_setting_ip_config_add_routing_rule Ptr SettingIPConfig
setting' Ptr IPRoutingRule
routingRule'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    IPRoutingRule -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr IPRoutingRule
routingRule
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigAddRoutingRuleMethodInfo
instance (signature ~ (NM.IPRoutingRule.IPRoutingRule -> m ()), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigAddRoutingRuleMethodInfo a signature where
    overloadedMethod = settingIPConfigAddRoutingRule

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


#endif

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

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

-- | Removes all configured addresses.
settingIPConfigClearAddresses ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> m ()
settingIPConfigClearAddresses :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> m ()
settingIPConfigClearAddresses a
setting = 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
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Ptr SettingIPConfig -> IO ()
nm_setting_ip_config_clear_addresses Ptr SettingIPConfig
setting'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigClearAddressesMethodInfo
instance (signature ~ (m ()), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigClearAddressesMethodInfo a signature where
    overloadedMethod = settingIPConfigClearAddresses

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


#endif

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

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

-- | Removes all configured DHCP reject servers.
-- 
-- /Since: 1.28/
settingIPConfigClearDhcpRejectServers ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> m ()
settingIPConfigClearDhcpRejectServers :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> m ()
settingIPConfigClearDhcpRejectServers a
setting = 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
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Ptr SettingIPConfig -> IO ()
nm_setting_ip_config_clear_dhcp_reject_servers Ptr SettingIPConfig
setting'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigClearDhcpRejectServersMethodInfo
instance (signature ~ (m ()), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigClearDhcpRejectServersMethodInfo a signature where
    overloadedMethod = settingIPConfigClearDhcpRejectServers

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


#endif

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

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

-- | Removes all configured DNS servers.
settingIPConfigClearDns ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> m ()
settingIPConfigClearDns :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> m ()
settingIPConfigClearDns a
setting = 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
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Ptr SettingIPConfig -> IO ()
nm_setting_ip_config_clear_dns Ptr SettingIPConfig
setting'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigClearDnsMethodInfo
instance (signature ~ (m ()), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigClearDnsMethodInfo a signature where
    overloadedMethod = settingIPConfigClearDns

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


#endif

-- method SettingIPConfig::clear_dns_options
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingIPConfig" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingIPConfig"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "is_set"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "the dns-options can be either empty or unset (default).\n  Specify how to clear the options."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "nm_setting_ip_config_clear_dns_options" nm_setting_ip_config_clear_dns_options :: 
    Ptr SettingIPConfig ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingIPConfig"})
    CInt ->                                 -- is_set : TBasicType TBoolean
    IO ()

-- | Removes all configured DNS options.
-- 
-- /Since: 1.2/
settingIPConfigClearDnsOptions ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> Bool
    -- ^ /@isSet@/: the dns-options can be either empty or unset (default).
    --   Specify how to clear the options.
    -> m ()
settingIPConfigClearDnsOptions :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> Bool -> m ()
settingIPConfigClearDnsOptions a
setting Bool
isSet = 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
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    let isSet' :: CInt
isSet' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
P.fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
P.fromEnum) Bool
isSet
    Ptr SettingIPConfig -> CInt -> IO ()
nm_setting_ip_config_clear_dns_options Ptr SettingIPConfig
setting' CInt
isSet'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigClearDnsOptionsMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigClearDnsOptionsMethodInfo a signature where
    overloadedMethod = settingIPConfigClearDnsOptions

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


#endif

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

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

-- | Removes all configured DNS search domains.
settingIPConfigClearDnsSearches ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> m ()
settingIPConfigClearDnsSearches :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> m ()
settingIPConfigClearDnsSearches a
setting = 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
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Ptr SettingIPConfig -> IO ()
nm_setting_ip_config_clear_dns_searches Ptr SettingIPConfig
setting'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigClearDnsSearchesMethodInfo
instance (signature ~ (m ()), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigClearDnsSearchesMethodInfo a signature where
    overloadedMethod = settingIPConfigClearDnsSearches

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


#endif

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

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

-- | Removes all configured routes.
settingIPConfigClearRoutes ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> m ()
settingIPConfigClearRoutes :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> m ()
settingIPConfigClearRoutes a
setting = 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
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Ptr SettingIPConfig -> IO ()
nm_setting_ip_config_clear_routes Ptr SettingIPConfig
setting'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigClearRoutesMethodInfo
instance (signature ~ (m ()), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigClearRoutesMethodInfo a signature where
    overloadedMethod = settingIPConfigClearRoutes

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


#endif

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

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

-- | Removes all configured routing rules.
-- 
-- /Since: 1.18/
settingIPConfigClearRoutingRules ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> m ()
settingIPConfigClearRoutingRules :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> m ()
settingIPConfigClearRoutingRules a
setting = 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
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Ptr SettingIPConfig -> IO ()
nm_setting_ip_config_clear_routing_rules Ptr SettingIPConfig
setting'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigClearRoutingRulesMethodInfo
instance (signature ~ (m ()), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigClearRoutingRulesMethodInfo a signature where
    overloadedMethod = settingIPConfigClearRoutingRules

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


#endif

-- method SettingIPConfig::get_address
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingIPConfig" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingIPConfig"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "idx"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "index number of the address to return"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TInterface Name { namespace = "NM" , name = "IPAddress" })
-- throws : False
-- Skip return : False

foreign import ccall "nm_setting_ip_config_get_address" nm_setting_ip_config_get_address :: 
    Ptr SettingIPConfig ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingIPConfig"})
    Int32 ->                                -- idx : TBasicType TInt
    IO (Ptr NM.IPAddress.IPAddress)

-- | /No description available in the introspection data./
settingIPConfigGetAddress ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> Int32
    -- ^ /@idx@/: index number of the address to return
    -> m NM.IPAddress.IPAddress
    -- ^ __Returns:__ the address at index /@idx@/
settingIPConfigGetAddress :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> Int32 -> m IPAddress
settingIPConfigGetAddress a
setting Int32
idx = IO IPAddress -> m IPAddress
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO IPAddress -> m IPAddress) -> IO IPAddress -> m IPAddress
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Ptr IPAddress
result <- Ptr SettingIPConfig -> Int32 -> IO (Ptr IPAddress)
nm_setting_ip_config_get_address Ptr SettingIPConfig
setting' Int32
idx
    Text -> Ptr IPAddress -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"settingIPConfigGetAddress" Ptr IPAddress
result
    IPAddress
result' <- ((ManagedPtr IPAddress -> IPAddress)
-> Ptr IPAddress -> IO IPAddress
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr IPAddress -> IPAddress
NM.IPAddress.IPAddress) Ptr IPAddress
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    IPAddress -> IO IPAddress
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return IPAddress
result'

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigGetAddressMethodInfo
instance (signature ~ (Int32 -> m NM.IPAddress.IPAddress), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigGetAddressMethodInfo a signature where
    overloadedMethod = settingIPConfigGetAddress

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


#endif

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

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

-- | /No description available in the introspection data./
-- 
-- /Since: 1.42/
settingIPConfigGetAutoRouteExtGw ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> m NM.Enums.Ternary
    -- ^ __Returns:__ the [SettingIPConfig:autoRouteExtGw]("GI.NM.Objects.SettingIPConfig#g:attr:autoRouteExtGw") property of the setting
settingIPConfigGetAutoRouteExtGw :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> m Ternary
settingIPConfigGetAutoRouteExtGw a
setting = IO Ternary -> m Ternary
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Ternary -> m Ternary) -> IO Ternary -> m Ternary
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    CInt
result <- Ptr SettingIPConfig -> IO CInt
nm_setting_ip_config_get_auto_route_ext_gw Ptr SettingIPConfig
setting'
    let result' :: Ternary
result' = (Int -> Ternary
forall a. Enum a => Int -> a
toEnum (Int -> Ternary) -> (CInt -> Int) -> CInt -> Ternary
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
    Ternary -> IO Ternary
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ternary
result'

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigGetAutoRouteExtGwMethodInfo
instance (signature ~ (m NM.Enums.Ternary), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigGetAutoRouteExtGwMethodInfo a signature where
    overloadedMethod = settingIPConfigGetAutoRouteExtGw

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


#endif

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

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

-- | /No description available in the introspection data./
-- 
-- /Since: 1.2/
settingIPConfigGetDadTimeout ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> m Int32
    -- ^ __Returns:__ the [SettingIPConfig:dadTimeout]("GI.NM.Objects.SettingIPConfig#g:attr:dadTimeout") property.
settingIPConfigGetDadTimeout :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> m Int32
settingIPConfigGetDadTimeout 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 SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Int32
result <- Ptr SettingIPConfig -> IO Int32
nm_setting_ip_config_get_dad_timeout Ptr SettingIPConfig
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 SettingIPConfigGetDadTimeoutMethodInfo
instance (signature ~ (m Int32), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigGetDadTimeoutMethodInfo a signature where
    overloadedMethod = settingIPConfigGetDadTimeout

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


#endif

-- method SettingIPConfig::get_dhcp_dscp
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingIPConfig" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingIPConfig"
--                 , 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_ip_config_get_dhcp_dscp" nm_setting_ip_config_get_dhcp_dscp :: 
    Ptr SettingIPConfig ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingIPConfig"})
    IO CString

-- | Returns the value contained in the [SettingIPConfig:dhcpDscp]("GI.NM.Objects.SettingIPConfig#g:attr:dhcpDscp")
-- property.
-- 
-- /Since: 1.46/
settingIPConfigGetDhcpDscp ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> m T.Text
    -- ^ __Returns:__ the value for the DSCP field for DHCP
settingIPConfigGetDhcpDscp :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> m Text
settingIPConfigGetDhcpDscp 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 SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    CString
result <- Ptr SettingIPConfig -> IO CString
nm_setting_ip_config_get_dhcp_dscp Ptr SettingIPConfig
setting'
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"settingIPConfigGetDhcpDscp" 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 SettingIPConfigGetDhcpDscpMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigGetDhcpDscpMethodInfo a signature where
    overloadedMethod = settingIPConfigGetDhcpDscp

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


#endif

-- method SettingIPConfig::get_dhcp_hostname
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingIPConfig" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingIPConfig"
--                 , 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_ip_config_get_dhcp_hostname" nm_setting_ip_config_get_dhcp_hostname :: 
    Ptr SettingIPConfig ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingIPConfig"})
    IO CString

-- | Returns the value contained in the [SettingIPConfig:dhcpHostname]("GI.NM.Objects.SettingIPConfig#g:attr:dhcpHostname")
-- property.
settingIPConfigGetDhcpHostname ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> m T.Text
    -- ^ __Returns:__ the configured hostname to send to the DHCP server
settingIPConfigGetDhcpHostname :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> m Text
settingIPConfigGetDhcpHostname 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 SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    CString
result <- Ptr SettingIPConfig -> IO CString
nm_setting_ip_config_get_dhcp_hostname Ptr SettingIPConfig
setting'
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"settingIPConfigGetDhcpHostname" 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 SettingIPConfigGetDhcpHostnameMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigGetDhcpHostnameMethodInfo a signature where
    overloadedMethod = settingIPConfigGetDhcpHostname

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


#endif

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

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

-- | Returns the value contained in the [SettingIPConfig:dhcpHostnameFlags]("GI.NM.Objects.SettingIPConfig#g:attr:dhcpHostnameFlags")
-- property.
-- 
-- /Since: 1.22/
settingIPConfigGetDhcpHostnameFlags ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> m [NM.Flags.DhcpHostnameFlags]
    -- ^ __Returns:__ flags for the DHCP hostname and FQDN
settingIPConfigGetDhcpHostnameFlags :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> m [DhcpHostnameFlags]
settingIPConfigGetDhcpHostnameFlags a
setting = IO [DhcpHostnameFlags] -> m [DhcpHostnameFlags]
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO [DhcpHostnameFlags] -> m [DhcpHostnameFlags])
-> IO [DhcpHostnameFlags] -> m [DhcpHostnameFlags]
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    CUInt
result <- Ptr SettingIPConfig -> IO CUInt
nm_setting_ip_config_get_dhcp_hostname_flags Ptr SettingIPConfig
setting'
    let result' :: [DhcpHostnameFlags]
result' = CUInt -> [DhcpHostnameFlags]
forall a b. (Storable a, Integral a, Bits a, IsGFlag b) => a -> [b]
wordToGFlags CUInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    [DhcpHostnameFlags] -> IO [DhcpHostnameFlags]
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return [DhcpHostnameFlags]
result'

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigGetDhcpHostnameFlagsMethodInfo
instance (signature ~ (m [NM.Flags.DhcpHostnameFlags]), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigGetDhcpHostnameFlagsMethodInfo a signature where
    overloadedMethod = settingIPConfigGetDhcpHostnameFlags

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


#endif

-- method SettingIPConfig::get_dhcp_iaid
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingIPConfig" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingIPConfig"
--                 , 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_ip_config_get_dhcp_iaid" nm_setting_ip_config_get_dhcp_iaid :: 
    Ptr SettingIPConfig ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingIPConfig"})
    IO CString

-- | Returns the value contained in the [SettingIPConfig:dhcpIaid]("GI.NM.Objects.SettingIPConfig#g:attr:dhcpIaid")
-- property.
-- 
-- /Since: 1.42/
settingIPConfigGetDhcpIaid ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> m T.Text
    -- ^ __Returns:__ the configured DHCP IAID (Identity Association Identifier)
settingIPConfigGetDhcpIaid :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> m Text
settingIPConfigGetDhcpIaid 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 SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    CString
result <- Ptr SettingIPConfig -> IO CString
nm_setting_ip_config_get_dhcp_iaid Ptr SettingIPConfig
setting'
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"settingIPConfigGetDhcpIaid" 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 SettingIPConfigGetDhcpIaidMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigGetDhcpIaidMethodInfo a signature where
    overloadedMethod = settingIPConfigGetDhcpIaid

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


#endif

-- method SettingIPConfig::get_dhcp_reject_servers
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingIPConfig" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingIPConfig"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "out_len"
--           , argType = TBasicType TUInt
--           , direction = DirectionOut
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the number of returned elements"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferEverything
--           }
--       ]
-- Lengths: []
-- returnType: Just (TCArray True (-1) 1 (TBasicType TUTF8))
-- throws : False
-- Skip return : False

foreign import ccall "nm_setting_ip_config_get_dhcp_reject_servers" nm_setting_ip_config_get_dhcp_reject_servers :: 
    Ptr SettingIPConfig ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingIPConfig"})
    Ptr Word32 ->                           -- out_len : TBasicType TUInt
    IO (Ptr CString)

-- | /No description available in the introspection data./
-- 
-- /Since: 1.28/
settingIPConfigGetDhcpRejectServers ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> m (([T.Text], Word32))
    -- ^ __Returns:__ 
    --   A 'P.Nothing' terminated array of DHCP reject servers. Even if no reject
    --   servers are configured, this always returns a non 'P.Nothing' value.
settingIPConfigGetDhcpRejectServers :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> m ([Text], Word32)
settingIPConfigGetDhcpRejectServers a
setting = IO ([Text], Word32) -> m ([Text], Word32)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO ([Text], Word32) -> m ([Text], Word32))
-> IO ([Text], Word32) -> m ([Text], Word32)
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Ptr Word32
outLen <- IO (Ptr Word32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Word32)
    Ptr CString
result <- Ptr SettingIPConfig -> Ptr Word32 -> IO (Ptr CString)
nm_setting_ip_config_get_dhcp_reject_servers Ptr SettingIPConfig
setting' Ptr Word32
outLen
    Text -> Ptr CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"settingIPConfigGetDhcpRejectServers" Ptr CString
result
    [Text]
result' <- HasCallStack => Ptr CString -> IO [Text]
Ptr CString -> IO [Text]
unpackZeroTerminatedUTF8CArray Ptr CString
result
    Word32
outLen' <- Ptr Word32 -> IO Word32
forall a. Storable a => Ptr a -> IO a
peek Ptr Word32
outLen
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    Ptr Word32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Word32
outLen
    ([Text], Word32) -> IO ([Text], Word32)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ([Text]
result', Word32
outLen')

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigGetDhcpRejectServersMethodInfo
instance (signature ~ (m (([T.Text], Word32))), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigGetDhcpRejectServersMethodInfo a signature where
    overloadedMethod = settingIPConfigGetDhcpRejectServers

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


#endif

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

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

-- | Returns the value contained in the [SettingIPConfig:dhcpSendHostname]("GI.NM.Objects.SettingIPConfig#g:attr:dhcpSendHostname")
-- property.
settingIPConfigGetDhcpSendHostname ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> m Bool
    -- ^ __Returns:__ 'P.True' if NetworkManager should send the machine hostname to the
    -- DHCP server when requesting addresses to allow the server to automatically
    -- update DNS information for this machine.
settingIPConfigGetDhcpSendHostname :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> m Bool
settingIPConfigGetDhcpSendHostname a
setting = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    CInt
result <- Ptr SettingIPConfig -> IO CInt
nm_setting_ip_config_get_dhcp_send_hostname Ptr SettingIPConfig
setting'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigGetDhcpSendHostnameMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigGetDhcpSendHostnameMethodInfo a signature where
    overloadedMethod = settingIPConfigGetDhcpSendHostname

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


#endif

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

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

-- | /No description available in the introspection data./
-- 
-- /Since: 1.48/
settingIPConfigGetDhcpSendRelease ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> m NM.Enums.Ternary
    -- ^ __Returns:__ the [SettingIPConfig:dhcpSendRelease]("GI.NM.Objects.SettingIPConfig#g:attr:dhcpSendRelease") property of the setting
settingIPConfigGetDhcpSendRelease :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> m Ternary
settingIPConfigGetDhcpSendRelease a
setting = IO Ternary -> m Ternary
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Ternary -> m Ternary) -> IO Ternary -> m Ternary
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    CInt
result <- Ptr SettingIPConfig -> IO CInt
nm_setting_ip_config_get_dhcp_send_release Ptr SettingIPConfig
setting'
    let result' :: Ternary
result' = (Int -> Ternary
forall a. Enum a => Int -> a
toEnum (Int -> Ternary) -> (CInt -> Int) -> CInt -> Ternary
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
    Ternary -> IO Ternary
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ternary
result'

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigGetDhcpSendReleaseMethodInfo
instance (signature ~ (m NM.Enums.Ternary), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigGetDhcpSendReleaseMethodInfo a signature where
    overloadedMethod = settingIPConfigGetDhcpSendRelease

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


#endif

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

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

-- | Returns the value contained in the [SettingIPConfig:dhcpTimeout]("GI.NM.Objects.SettingIPConfig#g:attr:dhcpTimeout")
-- property.
-- 
-- /Since: 1.2/
settingIPConfigGetDhcpTimeout ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> m Int32
    -- ^ __Returns:__ the configured DHCP timeout in seconds. 0 = default for
    -- the particular kind of device.
settingIPConfigGetDhcpTimeout :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> m Int32
settingIPConfigGetDhcpTimeout 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 SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Int32
result <- Ptr SettingIPConfig -> IO Int32
nm_setting_ip_config_get_dhcp_timeout Ptr SettingIPConfig
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 SettingIPConfigGetDhcpTimeoutMethodInfo
instance (signature ~ (m Int32), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigGetDhcpTimeoutMethodInfo a signature where
    overloadedMethod = settingIPConfigGetDhcpTimeout

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


#endif

-- method SettingIPConfig::get_dns
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingIPConfig" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingIPConfig"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "idx"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "index number of the DNS server to return"
--                 , 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_ip_config_get_dns" nm_setting_ip_config_get_dns :: 
    Ptr SettingIPConfig ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingIPConfig"})
    Int32 ->                                -- idx : TBasicType TInt
    IO CString

-- | /No description available in the introspection data./
settingIPConfigGetDns ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> Int32
    -- ^ /@idx@/: index number of the DNS server to return
    -> m T.Text
    -- ^ __Returns:__ the IP address of the DNS server at index /@idx@/
settingIPConfigGetDns :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> Int32 -> m Text
settingIPConfigGetDns a
setting Int32
idx = 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 SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    CString
result <- Ptr SettingIPConfig -> Int32 -> IO CString
nm_setting_ip_config_get_dns Ptr SettingIPConfig
setting' Int32
idx
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"settingIPConfigGetDns" 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 SettingIPConfigGetDnsMethodInfo
instance (signature ~ (Int32 -> m T.Text), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigGetDnsMethodInfo a signature where
    overloadedMethod = settingIPConfigGetDns

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


#endif

-- method SettingIPConfig::get_dns_option
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingIPConfig" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingIPConfig"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "idx"
--           , argType = TBasicType TUInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "index number of the DNS option"
--                 , 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_ip_config_get_dns_option" nm_setting_ip_config_get_dns_option :: 
    Ptr SettingIPConfig ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingIPConfig"})
    Word32 ->                               -- idx : TBasicType TUInt
    IO CString

-- | Since 1.46, access at index \"len\" is allowed and returns NULL.
-- 
-- /Since: 1.2/
settingIPConfigGetDnsOption ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> Word32
    -- ^ /@idx@/: index number of the DNS option
    -> m T.Text
    -- ^ __Returns:__ the DNS option at index /@idx@/
settingIPConfigGetDnsOption :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> Word32 -> m Text
settingIPConfigGetDnsOption a
setting Word32
idx = 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 SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    CString
result <- Ptr SettingIPConfig -> Word32 -> IO CString
nm_setting_ip_config_get_dns_option Ptr SettingIPConfig
setting' Word32
idx
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"settingIPConfigGetDnsOption" 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 SettingIPConfigGetDnsOptionMethodInfo
instance (signature ~ (Word32 -> m T.Text), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigGetDnsOptionMethodInfo a signature where
    overloadedMethod = settingIPConfigGetDnsOption

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


#endif

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

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

-- | /No description available in the introspection data./
-- 
-- /Since: 1.4/
settingIPConfigGetDnsPriority ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> m Int32
    -- ^ __Returns:__ the priority of DNS servers
settingIPConfigGetDnsPriority :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> m Int32
settingIPConfigGetDnsPriority 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 SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Int32
result <- Ptr SettingIPConfig -> IO Int32
nm_setting_ip_config_get_dns_priority Ptr SettingIPConfig
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 SettingIPConfigGetDnsPriorityMethodInfo
instance (signature ~ (m Int32), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigGetDnsPriorityMethodInfo a signature where
    overloadedMethod = settingIPConfigGetDnsPriority

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


#endif

-- method SettingIPConfig::get_dns_search
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingIPConfig" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingIPConfig"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "idx"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "index number of the DNS search domain to return"
--                 , 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_ip_config_get_dns_search" nm_setting_ip_config_get_dns_search :: 
    Ptr SettingIPConfig ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingIPConfig"})
    Int32 ->                                -- idx : TBasicType TInt
    IO CString

-- | Since 1.46, access at index \"len\" is allowed and returns NULL.
settingIPConfigGetDnsSearch ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> Int32
    -- ^ /@idx@/: index number of the DNS search domain to return
    -> m T.Text
    -- ^ __Returns:__ the DNS search domain at index /@idx@/
settingIPConfigGetDnsSearch :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> Int32 -> m Text
settingIPConfigGetDnsSearch a
setting Int32
idx = 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 SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    CString
result <- Ptr SettingIPConfig -> Int32 -> IO CString
nm_setting_ip_config_get_dns_search Ptr SettingIPConfig
setting' Int32
idx
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"settingIPConfigGetDnsSearch" 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 SettingIPConfigGetDnsSearchMethodInfo
instance (signature ~ (Int32 -> m T.Text), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigGetDnsSearchMethodInfo a signature where
    overloadedMethod = settingIPConfigGetDnsSearch

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


#endif

-- method SettingIPConfig::get_gateway
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingIPConfig" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingIPConfig"
--                 , 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_ip_config_get_gateway" nm_setting_ip_config_get_gateway :: 
    Ptr SettingIPConfig ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingIPConfig"})
    IO CString

-- | /No description available in the introspection data./
settingIPConfigGetGateway ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> m T.Text
    -- ^ __Returns:__ the IP address of the gateway associated with this configuration, or
    -- 'P.Nothing'.
settingIPConfigGetGateway :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> m Text
settingIPConfigGetGateway 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 SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    CString
result <- Ptr SettingIPConfig -> IO CString
nm_setting_ip_config_get_gateway Ptr SettingIPConfig
setting'
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"settingIPConfigGetGateway" 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 SettingIPConfigGetGatewayMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigGetGatewayMethodInfo a signature where
    overloadedMethod = settingIPConfigGetGateway

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


#endif

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

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

-- | Returns the value contained in the [SettingIPConfig:ignoreAutoDns]("GI.NM.Objects.SettingIPConfig#g:attr:ignoreAutoDns")
-- property.
settingIPConfigGetIgnoreAutoDns ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> m Bool
    -- ^ __Returns:__ 'P.True' if automatically configured (ie via DHCP) DNS information
    -- should be ignored.
settingIPConfigGetIgnoreAutoDns :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> m Bool
settingIPConfigGetIgnoreAutoDns a
setting = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    CInt
result <- Ptr SettingIPConfig -> IO CInt
nm_setting_ip_config_get_ignore_auto_dns Ptr SettingIPConfig
setting'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigGetIgnoreAutoDnsMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigGetIgnoreAutoDnsMethodInfo a signature where
    overloadedMethod = settingIPConfigGetIgnoreAutoDns

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


#endif

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

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

-- | Returns the value contained in the [SettingIPConfig:ignoreAutoRoutes]("GI.NM.Objects.SettingIPConfig#g:attr:ignoreAutoRoutes")
-- property.
settingIPConfigGetIgnoreAutoRoutes ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> m Bool
    -- ^ __Returns:__ 'P.True' if automatically configured (ie via DHCP) routes should be
    -- ignored.
settingIPConfigGetIgnoreAutoRoutes :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> m Bool
settingIPConfigGetIgnoreAutoRoutes a
setting = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    CInt
result <- Ptr SettingIPConfig -> IO CInt
nm_setting_ip_config_get_ignore_auto_routes Ptr SettingIPConfig
setting'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigGetIgnoreAutoRoutesMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigGetIgnoreAutoRoutesMethodInfo a signature where
    overloadedMethod = settingIPConfigGetIgnoreAutoRoutes

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


#endif

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

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

-- | Returns the value contained in the [SettingIPConfig:mayFail]("GI.NM.Objects.SettingIPConfig#g:attr:mayFail")
-- property.
settingIPConfigGetMayFail ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> m Bool
    -- ^ __Returns:__ 'P.True' if this connection doesn\'t require this type of IP
    -- addressing to complete for the connection to succeed.
settingIPConfigGetMayFail :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> m Bool
settingIPConfigGetMayFail a
setting = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    CInt
result <- Ptr SettingIPConfig -> IO CInt
nm_setting_ip_config_get_may_fail Ptr SettingIPConfig
setting'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigGetMayFailMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigGetMayFailMethodInfo a signature where
    overloadedMethod = settingIPConfigGetMayFail

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


#endif

-- method SettingIPConfig::get_method
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingIPConfig" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingIPConfig"
--                 , 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_ip_config_get_method" nm_setting_ip_config_get_method :: 
    Ptr SettingIPConfig ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingIPConfig"})
    IO CString

-- | /No description available in the introspection data./
settingIPConfigGetMethod ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> m T.Text
    -- ^ __Returns:__ the [SettingIPConfig:method]("GI.NM.Objects.SettingIPConfig#g:attr:method") property of the setting; see
    -- t'GI.NM.Objects.SettingIP4Config.SettingIP4Config' and t'GI.NM.Objects.SettingIP6Config.SettingIP6Config' for details of the
    -- methods available with each type.
settingIPConfigGetMethod :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> m Text
settingIPConfigGetMethod 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 SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    CString
result <- Ptr SettingIPConfig -> IO CString
nm_setting_ip_config_get_method Ptr SettingIPConfig
setting'
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"settingIPConfigGetMethod" 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 SettingIPConfigGetMethodMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigGetMethodMethodInfo a signature where
    overloadedMethod = settingIPConfigGetMethod

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


#endif

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

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

-- | Returns the value contained in the [SettingIPConfig:neverDefault]("GI.NM.Objects.SettingIPConfig#g:attr:neverDefault")
-- property.
settingIPConfigGetNeverDefault ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> m Bool
    -- ^ __Returns:__ 'P.True' if this connection should never be the default
    --   connection
settingIPConfigGetNeverDefault :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> m Bool
settingIPConfigGetNeverDefault a
setting = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    CInt
result <- Ptr SettingIPConfig -> IO CInt
nm_setting_ip_config_get_never_default Ptr SettingIPConfig
setting'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigGetNeverDefaultMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigGetNeverDefaultMethodInfo a signature where
    overloadedMethod = settingIPConfigGetNeverDefault

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


#endif

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

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

-- | /No description available in the introspection data./
settingIPConfigGetNumAddresses ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> m Word32
    -- ^ __Returns:__ the number of configured addresses
settingIPConfigGetNumAddresses :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> m Word32
settingIPConfigGetNumAddresses 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 SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Word32
result <- Ptr SettingIPConfig -> IO Word32
nm_setting_ip_config_get_num_addresses Ptr SettingIPConfig
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 SettingIPConfigGetNumAddressesMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigGetNumAddressesMethodInfo a signature where
    overloadedMethod = settingIPConfigGetNumAddresses

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


#endif

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

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

-- | /No description available in the introspection data./
settingIPConfigGetNumDns ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> m Word32
    -- ^ __Returns:__ the number of configured DNS servers
settingIPConfigGetNumDns :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> m Word32
settingIPConfigGetNumDns 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 SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Word32
result <- Ptr SettingIPConfig -> IO Word32
nm_setting_ip_config_get_num_dns Ptr SettingIPConfig
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 SettingIPConfigGetNumDnsMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigGetNumDnsMethodInfo a signature where
    overloadedMethod = settingIPConfigGetNumDns

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


#endif

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

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

-- | /No description available in the introspection data./
-- 
-- /Since: 1.2/
settingIPConfigGetNumDnsOptions ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> m Word32
    -- ^ __Returns:__ the number of configured DNS options
settingIPConfigGetNumDnsOptions :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> m Word32
settingIPConfigGetNumDnsOptions 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 SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Word32
result <- Ptr SettingIPConfig -> IO Word32
nm_setting_ip_config_get_num_dns_options Ptr SettingIPConfig
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 SettingIPConfigGetNumDnsOptionsMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigGetNumDnsOptionsMethodInfo a signature where
    overloadedMethod = settingIPConfigGetNumDnsOptions

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


#endif

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

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

-- | /No description available in the introspection data./
settingIPConfigGetNumDnsSearches ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> m Word32
    -- ^ __Returns:__ the number of configured DNS search domains
settingIPConfigGetNumDnsSearches :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> m Word32
settingIPConfigGetNumDnsSearches 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 SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Word32
result <- Ptr SettingIPConfig -> IO Word32
nm_setting_ip_config_get_num_dns_searches Ptr SettingIPConfig
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 SettingIPConfigGetNumDnsSearchesMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigGetNumDnsSearchesMethodInfo a signature where
    overloadedMethod = settingIPConfigGetNumDnsSearches

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


#endif

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

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

-- | /No description available in the introspection data./
settingIPConfigGetNumRoutes ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> m Word32
    -- ^ __Returns:__ the number of configured routes
settingIPConfigGetNumRoutes :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> m Word32
settingIPConfigGetNumRoutes 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 SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Word32
result <- Ptr SettingIPConfig -> IO Word32
nm_setting_ip_config_get_num_routes Ptr SettingIPConfig
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 SettingIPConfigGetNumRoutesMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigGetNumRoutesMethodInfo a signature where
    overloadedMethod = settingIPConfigGetNumRoutes

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


#endif

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

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

-- | /No description available in the introspection data./
-- 
-- /Since: 1.18/
settingIPConfigGetNumRoutingRules ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> m Word32
    -- ^ __Returns:__ the number of configured routing rules
settingIPConfigGetNumRoutingRules :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> m Word32
settingIPConfigGetNumRoutingRules 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 SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Word32
result <- Ptr SettingIPConfig -> IO Word32
nm_setting_ip_config_get_num_routing_rules Ptr SettingIPConfig
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 SettingIPConfigGetNumRoutingRulesMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigGetNumRoutingRulesMethodInfo a signature where
    overloadedMethod = settingIPConfigGetNumRoutingRules

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


#endif

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

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

-- | /No description available in the introspection data./
-- 
-- /Since: 1.44/
settingIPConfigGetReplaceLocalRule ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> m NM.Enums.Ternary
    -- ^ __Returns:__ the [SettingIPConfig:replaceLocalRule]("GI.NM.Objects.SettingIPConfig#g:attr:replaceLocalRule") property of the setting
settingIPConfigGetReplaceLocalRule :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> m Ternary
settingIPConfigGetReplaceLocalRule a
setting = IO Ternary -> m Ternary
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Ternary -> m Ternary) -> IO Ternary -> m Ternary
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    CInt
result <- Ptr SettingIPConfig -> IO CInt
nm_setting_ip_config_get_replace_local_rule Ptr SettingIPConfig
setting'
    let result' :: Ternary
result' = (Int -> Ternary
forall a. Enum a => Int -> a
toEnum (Int -> Ternary) -> (CInt -> Int) -> CInt -> Ternary
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
    Ternary -> IO Ternary
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ternary
result'

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigGetReplaceLocalRuleMethodInfo
instance (signature ~ (m NM.Enums.Ternary), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigGetReplaceLocalRuleMethodInfo a signature where
    overloadedMethod = settingIPConfigGetReplaceLocalRule

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


#endif

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

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

-- | Returns the value contained in the [SettingIPConfig:requiredTimeout]("GI.NM.Objects.SettingIPConfig#g:attr:requiredTimeout")
-- property.
-- 
-- /Since: 1.34/
settingIPConfigGetRequiredTimeout ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> m Int32
    -- ^ __Returns:__ the required timeout for the address family
settingIPConfigGetRequiredTimeout :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> m Int32
settingIPConfigGetRequiredTimeout 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 SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Int32
result <- Ptr SettingIPConfig -> IO Int32
nm_setting_ip_config_get_required_timeout Ptr SettingIPConfig
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 SettingIPConfigGetRequiredTimeoutMethodInfo
instance (signature ~ (m Int32), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigGetRequiredTimeoutMethodInfo a signature where
    overloadedMethod = settingIPConfigGetRequiredTimeout

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


#endif

-- method SettingIPConfig::get_route
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingIPConfig" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingIPConfig"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "idx"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "index number of the route to return"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TInterface Name { namespace = "NM" , name = "IPRoute" })
-- throws : False
-- Skip return : False

foreign import ccall "nm_setting_ip_config_get_route" nm_setting_ip_config_get_route :: 
    Ptr SettingIPConfig ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingIPConfig"})
    Int32 ->                                -- idx : TBasicType TInt
    IO (Ptr NM.IPRoute.IPRoute)

-- | /No description available in the introspection data./
settingIPConfigGetRoute ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> Int32
    -- ^ /@idx@/: index number of the route to return
    -> m NM.IPRoute.IPRoute
    -- ^ __Returns:__ the route at index /@idx@/
settingIPConfigGetRoute :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> Int32 -> m IPRoute
settingIPConfigGetRoute a
setting Int32
idx = IO IPRoute -> m IPRoute
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO IPRoute -> m IPRoute) -> IO IPRoute -> m IPRoute
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Ptr IPRoute
result <- Ptr SettingIPConfig -> Int32 -> IO (Ptr IPRoute)
nm_setting_ip_config_get_route Ptr SettingIPConfig
setting' Int32
idx
    Text -> Ptr IPRoute -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"settingIPConfigGetRoute" Ptr IPRoute
result
    IPRoute
result' <- ((ManagedPtr IPRoute -> IPRoute) -> Ptr IPRoute -> IO IPRoute
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr IPRoute -> IPRoute
NM.IPRoute.IPRoute) Ptr IPRoute
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    IPRoute -> IO IPRoute
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return IPRoute
result'

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigGetRouteMethodInfo
instance (signature ~ (Int32 -> m NM.IPRoute.IPRoute), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigGetRouteMethodInfo a signature where
    overloadedMethod = settingIPConfigGetRoute

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


#endif

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

foreign import ccall "nm_setting_ip_config_get_route_metric" nm_setting_ip_config_get_route_metric :: 
    Ptr SettingIPConfig ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingIPConfig"})
    IO Int64

-- | Returns the value contained in the [SettingIPConfig:routeMetric]("GI.NM.Objects.SettingIPConfig#g:attr:routeMetric")
-- property.
settingIPConfigGetRouteMetric ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> m Int64
    -- ^ __Returns:__ the route metric that is used for routes that don\'t explicitly
    -- specify a metric. See [SettingIPConfig:routeMetric]("GI.NM.Objects.SettingIPConfig#g:attr:routeMetric") for more details.
settingIPConfigGetRouteMetric :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> m Int64
settingIPConfigGetRouteMetric a
setting = IO Int64 -> m Int64
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int64 -> m Int64) -> IO Int64 -> m Int64
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Int64
result <- Ptr SettingIPConfig -> IO Int64
nm_setting_ip_config_get_route_metric Ptr SettingIPConfig
setting'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    Int64 -> IO Int64
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Int64
result

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigGetRouteMetricMethodInfo
instance (signature ~ (m Int64), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigGetRouteMetricMethodInfo a signature where
    overloadedMethod = settingIPConfigGetRouteMetric

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


#endif

-- method SettingIPConfig::get_route_table
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingIPConfig" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingIPConfig"
--                 , 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_ip_config_get_route_table" nm_setting_ip_config_get_route_table :: 
    Ptr SettingIPConfig ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingIPConfig"})
    IO Word32

-- | Returns the value contained in the [SettingIPConfig:routeTable]("GI.NM.Objects.SettingIPConfig#g:attr:routeTable")
-- property.
-- 
-- /Since: 1.10/
settingIPConfigGetRouteTable ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> m Word32
    -- ^ __Returns:__ the configured route-table.
settingIPConfigGetRouteTable :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> m Word32
settingIPConfigGetRouteTable 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 SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Word32
result <- Ptr SettingIPConfig -> IO Word32
nm_setting_ip_config_get_route_table Ptr SettingIPConfig
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 SettingIPConfigGetRouteTableMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigGetRouteTableMethodInfo a signature where
    overloadedMethod = settingIPConfigGetRouteTable

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


#endif

-- method SettingIPConfig::get_routing_rule
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingIPConfig" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingIPConfig"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "idx"
--           , argType = TBasicType TUInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "index number of the routing_rule to return"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just
--               (TInterface Name { namespace = "NM" , name = "IPRoutingRule" })
-- throws : False
-- Skip return : False

foreign import ccall "nm_setting_ip_config_get_routing_rule" nm_setting_ip_config_get_routing_rule :: 
    Ptr SettingIPConfig ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingIPConfig"})
    Word32 ->                               -- idx : TBasicType TUInt
    IO (Ptr NM.IPRoutingRule.IPRoutingRule)

-- | /No description available in the introspection data./
-- 
-- /Since: 1.18/
settingIPConfigGetRoutingRule ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> Word32
    -- ^ /@idx@/: index number of the routing_rule to return
    -> m NM.IPRoutingRule.IPRoutingRule
    -- ^ __Returns:__ the routing rule at index /@idx@/
settingIPConfigGetRoutingRule :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> Word32 -> m IPRoutingRule
settingIPConfigGetRoutingRule a
setting Word32
idx = IO IPRoutingRule -> m IPRoutingRule
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO IPRoutingRule -> m IPRoutingRule)
-> IO IPRoutingRule -> m IPRoutingRule
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Ptr IPRoutingRule
result <- Ptr SettingIPConfig -> Word32 -> IO (Ptr IPRoutingRule)
nm_setting_ip_config_get_routing_rule Ptr SettingIPConfig
setting' Word32
idx
    Text -> Ptr IPRoutingRule -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"settingIPConfigGetRoutingRule" Ptr IPRoutingRule
result
    IPRoutingRule
result' <- ((ManagedPtr IPRoutingRule -> IPRoutingRule)
-> Ptr IPRoutingRule -> IO IPRoutingRule
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr IPRoutingRule -> IPRoutingRule
NM.IPRoutingRule.IPRoutingRule) Ptr IPRoutingRule
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    IPRoutingRule -> IO IPRoutingRule
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return IPRoutingRule
result'

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigGetRoutingRuleMethodInfo
instance (signature ~ (Word32 -> m NM.IPRoutingRule.IPRoutingRule), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigGetRoutingRuleMethodInfo a signature where
    overloadedMethod = settingIPConfigGetRoutingRule

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


#endif

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

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

-- | NMSettingIPConfig can have a list of dns-options. If the list
-- is empty, there are two similar (but differentiated) states.
-- Either the options are explicitly set to have no values,
-- or the options are left undefined. The latter means to use
-- a default configuration, while the former explicitly means \"no-options\".
-- 
-- /Since: 1.2/
settingIPConfigHasDnsOptions ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> m Bool
    -- ^ __Returns:__ whether DNS options are initialized or left unset (the default).
settingIPConfigHasDnsOptions :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> m Bool
settingIPConfigHasDnsOptions a
setting = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    CInt
result <- Ptr SettingIPConfig -> IO CInt
nm_setting_ip_config_has_dns_options Ptr SettingIPConfig
setting'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigHasDnsOptionsMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigHasDnsOptionsMethodInfo a signature where
    overloadedMethod = settingIPConfigHasDnsOptions

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


#endif

-- method SettingIPConfig::remove_address
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingIPConfig" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingIPConfig"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "idx"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "index number of the address to remove"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "nm_setting_ip_config_remove_address" nm_setting_ip_config_remove_address :: 
    Ptr SettingIPConfig ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingIPConfig"})
    Int32 ->                                -- idx : TBasicType TInt
    IO ()

-- | Removes the address at index /@idx@/.
settingIPConfigRemoveAddress ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> Int32
    -- ^ /@idx@/: index number of the address to remove
    -> m ()
settingIPConfigRemoveAddress :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> Int32 -> m ()
settingIPConfigRemoveAddress a
setting Int32
idx = 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
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Ptr SettingIPConfig -> Int32 -> IO ()
nm_setting_ip_config_remove_address Ptr SettingIPConfig
setting' Int32
idx
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigRemoveAddressMethodInfo
instance (signature ~ (Int32 -> m ()), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigRemoveAddressMethodInfo a signature where
    overloadedMethod = settingIPConfigRemoveAddress

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


#endif

-- method SettingIPConfig::remove_address_by_value
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingIPConfig" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingIPConfig"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "address"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "IPAddress" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the IP address to remove"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "nm_setting_ip_config_remove_address_by_value" nm_setting_ip_config_remove_address_by_value :: 
    Ptr SettingIPConfig ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingIPConfig"})
    Ptr NM.IPAddress.IPAddress ->           -- address : TInterface (Name {namespace = "NM", name = "IPAddress"})
    IO CInt

-- | Removes the address /@address@/.
settingIPConfigRemoveAddressByValue ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> NM.IPAddress.IPAddress
    -- ^ /@address@/: the IP address to remove
    -> m Bool
    -- ^ __Returns:__ 'P.True' if the address was found and removed; 'P.False' if it was not.
settingIPConfigRemoveAddressByValue :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> IPAddress -> m Bool
settingIPConfigRemoveAddressByValue a
setting IPAddress
address = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Ptr IPAddress
address' <- IPAddress -> IO (Ptr IPAddress)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr IPAddress
address
    CInt
result <- Ptr SettingIPConfig -> Ptr IPAddress -> IO CInt
nm_setting_ip_config_remove_address_by_value Ptr SettingIPConfig
setting' Ptr IPAddress
address'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    IPAddress -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr IPAddress
address
    Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigRemoveAddressByValueMethodInfo
instance (signature ~ (NM.IPAddress.IPAddress -> m Bool), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigRemoveAddressByValueMethodInfo a signature where
    overloadedMethod = settingIPConfigRemoveAddressByValue

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


#endif

-- method SettingIPConfig::remove_dhcp_reject_server
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingIPConfig" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingIPConfig"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "idx"
--           , argType = TBasicType TUInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "index number of the DHCP reject server"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "nm_setting_ip_config_remove_dhcp_reject_server" nm_setting_ip_config_remove_dhcp_reject_server :: 
    Ptr SettingIPConfig ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingIPConfig"})
    Word32 ->                               -- idx : TBasicType TUInt
    IO ()

-- | Removes the DHCP reject server at index /@idx@/.
-- 
-- /Since: 1.28/
settingIPConfigRemoveDhcpRejectServer ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> Word32
    -- ^ /@idx@/: index number of the DHCP reject server
    -> m ()
settingIPConfigRemoveDhcpRejectServer :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> Word32 -> m ()
settingIPConfigRemoveDhcpRejectServer a
setting Word32
idx = 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
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Ptr SettingIPConfig -> Word32 -> IO ()
nm_setting_ip_config_remove_dhcp_reject_server Ptr SettingIPConfig
setting' Word32
idx
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigRemoveDhcpRejectServerMethodInfo
instance (signature ~ (Word32 -> m ()), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigRemoveDhcpRejectServerMethodInfo a signature where
    overloadedMethod = settingIPConfigRemoveDhcpRejectServer

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


#endif

-- method SettingIPConfig::remove_dns
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingIPConfig" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingIPConfig"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "idx"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "index number of the DNS server to remove"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "nm_setting_ip_config_remove_dns" nm_setting_ip_config_remove_dns :: 
    Ptr SettingIPConfig ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingIPConfig"})
    Int32 ->                                -- idx : TBasicType TInt
    IO ()

-- | Removes the DNS server at index /@idx@/.
settingIPConfigRemoveDns ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> Int32
    -- ^ /@idx@/: index number of the DNS server to remove
    -> m ()
settingIPConfigRemoveDns :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> Int32 -> m ()
settingIPConfigRemoveDns a
setting Int32
idx = 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
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Ptr SettingIPConfig -> Int32 -> IO ()
nm_setting_ip_config_remove_dns Ptr SettingIPConfig
setting' Int32
idx
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigRemoveDnsMethodInfo
instance (signature ~ (Int32 -> m ()), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigRemoveDnsMethodInfo a signature where
    overloadedMethod = settingIPConfigRemoveDns

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


#endif

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

foreign import ccall "nm_setting_ip_config_remove_dns_by_value" nm_setting_ip_config_remove_dns_by_value :: 
    Ptr SettingIPConfig ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingIPConfig"})
    CString ->                              -- dns : TBasicType TUTF8
    IO CInt

-- | Removes the DNS server /@dns@/.
settingIPConfigRemoveDnsByValue ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> T.Text
    -- ^ /@dns@/: the DNS server to remove
    -> m Bool
    -- ^ __Returns:__ 'P.True' if the DNS server was found and removed; 'P.False' if it was not.
    -- 
    -- Before 1.42, setting /@dns@/ to an invalid string was treated as user-error.
settingIPConfigRemoveDnsByValue :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> Text -> m Bool
settingIPConfigRemoveDnsByValue a
setting Text
dns = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    CString
dns' <- Text -> IO CString
textToCString Text
dns
    CInt
result <- Ptr SettingIPConfig -> CString -> IO CInt
nm_setting_ip_config_remove_dns_by_value Ptr SettingIPConfig
setting' CString
dns'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
dns'
    Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigRemoveDnsByValueMethodInfo
instance (signature ~ (T.Text -> m Bool), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigRemoveDnsByValueMethodInfo a signature where
    overloadedMethod = settingIPConfigRemoveDnsByValue

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


#endif

-- method SettingIPConfig::remove_dns_option
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingIPConfig" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingIPConfig"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "idx"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "index number of the DNS option"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "nm_setting_ip_config_remove_dns_option" nm_setting_ip_config_remove_dns_option :: 
    Ptr SettingIPConfig ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingIPConfig"})
    Int32 ->                                -- idx : TBasicType TInt
    IO ()

-- | Removes the DNS option at index /@idx@/.
-- 
-- /Since: 1.2/
settingIPConfigRemoveDnsOption ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> Int32
    -- ^ /@idx@/: index number of the DNS option
    -> m ()
settingIPConfigRemoveDnsOption :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> Int32 -> m ()
settingIPConfigRemoveDnsOption a
setting Int32
idx = 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
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Ptr SettingIPConfig -> Int32 -> IO ()
nm_setting_ip_config_remove_dns_option Ptr SettingIPConfig
setting' Int32
idx
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigRemoveDnsOptionMethodInfo
instance (signature ~ (Int32 -> m ()), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigRemoveDnsOptionMethodInfo a signature where
    overloadedMethod = settingIPConfigRemoveDnsOption

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


#endif

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

foreign import ccall "nm_setting_ip_config_remove_dns_option_by_value" nm_setting_ip_config_remove_dns_option_by_value :: 
    Ptr SettingIPConfig ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingIPConfig"})
    CString ->                              -- dns_option : TBasicType TUTF8
    IO CInt

-- | Removes the DNS option /@dnsOption@/.
-- 
-- /Since: 1.2/
settingIPConfigRemoveDnsOptionByValue ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> T.Text
    -- ^ /@dnsOption@/: the DNS option to remove
    -> m Bool
    -- ^ __Returns:__ 'P.True' if the DNS option was found and removed; 'P.False' if it was not.
settingIPConfigRemoveDnsOptionByValue :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> Text -> m Bool
settingIPConfigRemoveDnsOptionByValue a
setting Text
dnsOption = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    CString
dnsOption' <- Text -> IO CString
textToCString Text
dnsOption
    CInt
result <- Ptr SettingIPConfig -> CString -> IO CInt
nm_setting_ip_config_remove_dns_option_by_value Ptr SettingIPConfig
setting' CString
dnsOption'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
dnsOption'
    Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigRemoveDnsOptionByValueMethodInfo
instance (signature ~ (T.Text -> m Bool), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigRemoveDnsOptionByValueMethodInfo a signature where
    overloadedMethod = settingIPConfigRemoveDnsOptionByValue

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


#endif

-- method SettingIPConfig::remove_dns_search
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingIPConfig" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingIPConfig"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "idx"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "index number of the DNS search domain"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "nm_setting_ip_config_remove_dns_search" nm_setting_ip_config_remove_dns_search :: 
    Ptr SettingIPConfig ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingIPConfig"})
    Int32 ->                                -- idx : TBasicType TInt
    IO ()

-- | Removes the DNS search domain at index /@idx@/.
settingIPConfigRemoveDnsSearch ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> Int32
    -- ^ /@idx@/: index number of the DNS search domain
    -> m ()
settingIPConfigRemoveDnsSearch :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> Int32 -> m ()
settingIPConfigRemoveDnsSearch a
setting Int32
idx = 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
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Ptr SettingIPConfig -> Int32 -> IO ()
nm_setting_ip_config_remove_dns_search Ptr SettingIPConfig
setting' Int32
idx
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigRemoveDnsSearchMethodInfo
instance (signature ~ (Int32 -> m ()), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigRemoveDnsSearchMethodInfo a signature where
    overloadedMethod = settingIPConfigRemoveDnsSearch

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


#endif

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

foreign import ccall "nm_setting_ip_config_remove_dns_search_by_value" nm_setting_ip_config_remove_dns_search_by_value :: 
    Ptr SettingIPConfig ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingIPConfig"})
    CString ->                              -- dns_search : TBasicType TUTF8
    IO CInt

-- | Removes the DNS search domain /@dnsSearch@/.
settingIPConfigRemoveDnsSearchByValue ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> T.Text
    -- ^ /@dnsSearch@/: the search domain to remove
    -> m Bool
    -- ^ __Returns:__ 'P.True' if the DNS search domain was found and removed; 'P.False' if it was not.
settingIPConfigRemoveDnsSearchByValue :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> Text -> m Bool
settingIPConfigRemoveDnsSearchByValue a
setting Text
dnsSearch = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    CString
dnsSearch' <- Text -> IO CString
textToCString Text
dnsSearch
    CInt
result <- Ptr SettingIPConfig -> CString -> IO CInt
nm_setting_ip_config_remove_dns_search_by_value Ptr SettingIPConfig
setting' CString
dnsSearch'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
dnsSearch'
    Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigRemoveDnsSearchByValueMethodInfo
instance (signature ~ (T.Text -> m Bool), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigRemoveDnsSearchByValueMethodInfo a signature where
    overloadedMethod = settingIPConfigRemoveDnsSearchByValue

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


#endif

-- method SettingIPConfig::remove_route
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingIPConfig" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingIPConfig"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "idx"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "index number of the route"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "nm_setting_ip_config_remove_route" nm_setting_ip_config_remove_route :: 
    Ptr SettingIPConfig ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingIPConfig"})
    Int32 ->                                -- idx : TBasicType TInt
    IO ()

-- | Removes the route at index /@idx@/.
settingIPConfigRemoveRoute ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> Int32
    -- ^ /@idx@/: index number of the route
    -> m ()
settingIPConfigRemoveRoute :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> Int32 -> m ()
settingIPConfigRemoveRoute a
setting Int32
idx = 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
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Ptr SettingIPConfig -> Int32 -> IO ()
nm_setting_ip_config_remove_route Ptr SettingIPConfig
setting' Int32
idx
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigRemoveRouteMethodInfo
instance (signature ~ (Int32 -> m ()), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigRemoveRouteMethodInfo a signature where
    overloadedMethod = settingIPConfigRemoveRoute

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


#endif

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

foreign import ccall "nm_setting_ip_config_remove_route_by_value" nm_setting_ip_config_remove_route_by_value :: 
    Ptr SettingIPConfig ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingIPConfig"})
    Ptr NM.IPRoute.IPRoute ->               -- route : TInterface (Name {namespace = "NM", name = "IPRoute"})
    IO CInt

-- | Removes the first matching route that matches /@route@/.
-- Note that before 1.10, this function would only compare dest\/prefix,next_hop,metric
-- and ignore route attributes. Now, /@route@/ must match exactly.
settingIPConfigRemoveRouteByValue ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> NM.IPRoute.IPRoute
    -- ^ /@route@/: the route to remove
    -> m Bool
    -- ^ __Returns:__ 'P.True' if the route was found and removed; 'P.False' if it was not.
settingIPConfigRemoveRouteByValue :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> IPRoute -> m Bool
settingIPConfigRemoveRouteByValue a
setting IPRoute
route = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Ptr IPRoute
route' <- IPRoute -> IO (Ptr IPRoute)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr IPRoute
route
    CInt
result <- Ptr SettingIPConfig -> Ptr IPRoute -> IO CInt
nm_setting_ip_config_remove_route_by_value Ptr SettingIPConfig
setting' Ptr IPRoute
route'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    IPRoute -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr IPRoute
route
    Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigRemoveRouteByValueMethodInfo
instance (signature ~ (NM.IPRoute.IPRoute -> m Bool), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigRemoveRouteByValueMethodInfo a signature where
    overloadedMethod = settingIPConfigRemoveRouteByValue

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


#endif

-- method SettingIPConfig::remove_routing_rule
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingIPConfig" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingIPConfig"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "idx"
--           , argType = TBasicType TUInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "index number of the routing_rule"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "nm_setting_ip_config_remove_routing_rule" nm_setting_ip_config_remove_routing_rule :: 
    Ptr SettingIPConfig ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingIPConfig"})
    Word32 ->                               -- idx : TBasicType TUInt
    IO ()

-- | Removes the routing_rule at index /@idx@/.
-- 
-- /Since: 1.18/
settingIPConfigRemoveRoutingRule ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingIPConfig a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingIPConfig.SettingIPConfig'
    -> Word32
    -- ^ /@idx@/: index number of the routing_rule
    -> m ()
settingIPConfigRemoveRoutingRule :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingIPConfig a) =>
a -> Word32 -> m ()
settingIPConfigRemoveRoutingRule a
setting Word32
idx = 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
$ do
    Ptr SettingIPConfig
setting' <- a -> IO (Ptr SettingIPConfig)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Ptr SettingIPConfig -> Word32 -> IO ()
nm_setting_ip_config_remove_routing_rule Ptr SettingIPConfig
setting' Word32
idx
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data SettingIPConfigRemoveRoutingRuleMethodInfo
instance (signature ~ (Word32 -> m ()), MonadIO m, IsSettingIPConfig a) => O.OverloadedMethod SettingIPConfigRemoveRoutingRuleMethodInfo a signature where
    overloadedMethod = settingIPConfigRemoveRoutingRule

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


#endif